“请问正方二辩,你有女朋友吗?”
“这跟今天的辩题没有关系。”
“请正面回答我的问题。”
“……没有。”
“那你愿意做我男朋友吗?”
“啊???我愿意……”
1、 基本术语
a) 关系模型:用二维表格表示实体集,用关键码表示实体之间联系的数据模型;
b) 属性:在关系模型中,字段称为属性;
c) 属性值:字段值称为属性值;
d) 关系模式:记录类型称为关系模式;
e) 元组:记录称为元组;
f) 关系:元组的集合称为关系;
g) 元数:关系中属性个数称为元数;
h) 基数:元组个数称为基数;
i) 关键码:由一个或多个属性组成的称为关键码;
j) 超键:在关系中能唯一标识元组的属性集称为关系模式的超键;
k) 候选键:不含有多余属性的超键称为候选键;
l) 主键:用户选作元组标识的候选键称为主键;
m) 外键:如果模式R中属性K是其他模式的主键,那么K在模式R中称为外键。
2、 集合论中定义的关系:
a) 关系的定义:关系是一个属性数目相同的元组的集合
b) 关系的规范性限制:
i. 关系中每一个属性值都是不可再分解的;
ii. 关系中不允许出现重复元组;
iii. 由于关系是一个集合,因此不考虑元组间的顺序;
iv. 元组中的属性理论上是没有顺序的,但是用时按习惯考虑列的顺序。
3、 三类完整性约束
a) 实体完整性规则(Entity Integrity Rule):要求关系中元组在组成主键的属性上不能有空值,比如学号不能为空,这是唯一标识;
b) 参照完整性规则(Reference Integrity Rule):如果属性集K是关系模式R1的主键,K也是关系模式R2的外键,那么在R2的关系中,K的取值只允许两种可能,或者为空值,或者等于R1关系中某个主键值,比如学生表上的课程号可以是空值;主要由如下三点变通:
i. 外键和相应的主键可以不同名,只要定义在相同值域上即可;
ii. R1和R2也可以是同一个关系模式,此时表示了同一个关系中不同元组之间的联系;
iii. 外键值是否允许空,应视具体问题而定。
c) 用户自定义的完整性规则:用户可以针对具体的数据约束,设置完整性规则,由系统来检验实施,以实用统一的方法处理它们,比如学生的年龄定义为两位数,大于两位数就报错。
4、 ER图模型到关系模式转换(概念设计到逻辑设计)的步骤
a) (实体类型的转换)将每个实体类型转换成一个关系模式,实体的属性即为关系模式的属性,实体标识符即为关系模式的键;
b) (联系类型的转换)根据不同的情况做不同的处理
i. 如果实体间联系是1:1,可以在两个实体类型转换成的两个关系模式中任意一个关系模式的属性中加入另一个关系模式的键(作为外键)和联系类型的属性;
ii. 如果实体间联系是1:N,则在N端实体类型转换成的关系模式中加入1端实体类型的键(作为外键)和联系类型的属性;
iii. 如果实体间联系是M:N,则将联系类型也转换成关系模式,其属性为两端实体类型的键(作为外键)加上联系类型的属性,而键为两段实体键的组合。
5、 采用ER模型的数据库逻辑设计步骤
a) 导出初始关系模式集<把概念设计的结果转换成初始关系模式集>
b) 规范化处理
c) 模式评价
d) 模式修正
e) 设计子模式<逻辑设计阶段必须同时设计出外部模式>
6、 关系模型的组成
a) 数据结构:数据库中全部数据及其相互联系都被组织成关系(二维表)的形式,关系模型基本的数据结构是关系;
b) 数据操纵:关系模型提供一组完备的高级关系运算,以支持对数据库的各种操作,关系运算分成关系代数和关系演算两种;
c) 数据完整性规则:数据库中必须满足实体完整性,参照完整性和自定义完整性等三类完整性规则
零测试