- 重装系统……备份数据时把这个文件夹抛弃了……且不可能重新整理
- 本文来源于能寻觅到的最后残骸
- 目录如下,待有缘人使用
- 文章不宜阅读and本系列文章止于此
在软件开发中,需要经历这几个阶段
其中设计过程中需要进行数据库设计
关于E-R模式的引入
设计E-R模型的观点是,世界是由一组称为实体的基本对象和这些对象之间的联系构成的
E-R图的作用
帮助澄清用户数据需求,使分析人员和用户对数据需求达成高度一致
是数据逻辑模型设计的基础
??数据库可被建模为:实体集合和实体间联系。
? 实体用一个属性集合来表示,即实体集中所有成员都具有的描述性特性,域表示所有属性允许的值的集合。属性的种类有以下几种:
简单属性与复合属性
单值属性与多值属性
派生属性
复合属性的图例如下:
联系是指多个实体之间的联系,联系集是相同类型联系的集合。
advisor(s_ID,i_ID)
一般联系集存放的是两个表的主键,对应的图示如下:
? 联系集的度指的是参加联系的实体集的个数,涉及两个实体集的联系集称为二元的,联系集可以涉及多于两个的实体集,例:一个student在每个项目上最多只能有一位导师,如下图,包含三个实体集instructor、student和project(三元联系)(多于两个实体集之间的联系较少见,数据库系统中的联系集一般多为二元的)
二元联系集的映射基数有以下几种情况:
? 实体集的超码是能够唯一标识每个实体的一个或多个属性,候选码是实体集的最小超码,候选码可能存在多个,我们只会选择一个候选码作为主码或主键
例:instructor (ID,name,dept_name,salary
候选码:ID
超码:{ID},{ID, name},{ID,…}
自主忽略~
? E-R图(E-R diagram)可以图形化表示数据库的全局逻辑结构。E-R图既简单又清晰,这些是致使E-R模型广泛使用的重要性质。
实体集之间不可以相连,必须通过联系集。
? 在前面的7.3.1我们已经讨论过映射技术的四种形式,可以说任意二元联系都属于下面四种类型,现在我们用E-R图的形式表现出来。
? 即上述简单-复合属性,单值-多值属性,派生属性等,见图7-11.
? 如果一个实体的所有属性合在一起都不足以形成主码,则称这样的实体为弱实体,反之称为强实体。同一类型的弱实体形成弱实体集
? 依赖于其他实体集的实体集都叫做弱实体集,例如课程实体集(course)和开课学期实体集(section),所开课程需要依赖于课程实体集,因为没有课程,也就没有开课信息,如下图所示:
在E-R图中,弱实体集和强实体集有相似之处,但有两点主要的区别
? E-R图如下图所示,矩形代表实体集,有阴影的第一部分包含实体集的名字, 第二部分包含实体集中所有属性的名字,菱形代表联系集,未分割的矩形代表联系集的属性。构成主码的属性以下划线标明,线段将实体集连接到联系集:
参加联系的实体集不必是互不相同的
例,下图给出了course实体集和preq联系集之间的角色标识course_id和 prereq_id:
上图中course_id表示课程id,prereq_id表示学习某一个课程的前置课程。
在开发中一般我们使用二元联系,任何非二元联系都能转换成二元联系,例,将如下非二元联系schooling 转换成二元联系
特化用从特化实体指向另一方实体的空心箭头来表示。这种关系为ISA关 系,代表“is a”(“是一个”)。例如,一个教师“是一个”雇员:
实体集和联系集都可以转化为关系模式,用以存储数据库中的内容。
若数据库符合E-R图,则可以表示成模式的集合。
在E-R图中,每个实体集和联系集均对应一个唯一的模式。
在每个模式中,均有多个列,且模式内列名不重复。
步骤:
1.转换强实体集; 2.转换弱实体集; 3.转换联系集(注意分情况讨论);
对于只有简单属性的强实体集,直接将E-R图转换为关系模式即可
对于复合属性:将每个组合属性作为复合属性所在实体的属性
对于多值属性:将其转换为新的关系+所在实体的主码
复合属性全部拆开,多值属性建了一张新的表
如果一个域被认为是不可再分的单元,那么这个域是原子的
如果一个关系模式R的所有属性都是原子的,那么这个关系模式R属于第一范式(1NF)
注意要对这个原子性有正确的理解,具体的例子课本里有
? 首先明确,我们学习和使用函数依赖的目的是什么?
? 利用函数依赖,可以对现有关系进行分解,所以,函数依赖的本质作用是对现有的冗余的关系模式进行分解
关于后续相关符号的介绍
在现实世界中,数据通常存在各种约束,而满足所有这种约束的实例,被称为合法实例
现实世界中的约束可以转换为数据库中的码(超码,候选码,主码)
? 事务(transaction)由查询和更新语句的序列组成。SQL标准规定当一条SQL语句被执行,就隐式地开始了一个事务。下列SQL语句之一会结束一个事务:
Commit work:提交当前事务,也就是将该事务所做的更新在数据库中持久保存。在事务被提交后,一个新的事务自动开始。
Rollback work:回滚当前事务,即撤销该事务中所有SQL语句对数据库的更新。这样,数据库就恢复到执行该事务第一条语句之前的状态
数据库系统概念笔记——第十四章:事务_设有两个事务t1和t2: t1从帐户a过户500元到帐户b t2从帐户a过户20%的余额到帐户b-CSDN博客
方法: