关系模型的基本术语
定义:用二维表格来表示实体集,用关键码表示实体之间联系的数据模型称为关系模型
有时也习惯称呼关系为表或表格,元组为行(Row),属性为列。关系中属性个数称为“元数”,元组个数称为“基数”
关键码(Key,简称键):由一个或多个属性组成
超键(Super Kry):在关系中能唯一标识元组的属性集称为关系模型的超键
候选键:不含有多余属性的超键称为候选键
主键:(Primary Key):用户选作元组标识的候选键称为主键,一般不加说明,键是指主键
外键:(Foreign Key):如果模式R中属性K是其他模式的主键,那么K在在模式R中称为外键
关系的定义和性质
定义:关系是一个属性数目相同元组的集合
关系是一种规范化了的二维表格,对于关系作了下列规范性限制:
1、关系中每一个属性都是不可分解的
2、关系中不允许出现重复的元组(即不允许出现相同的元组)
3、由于关系是一个集合,因此不考虑元组间的顺序,即没有顺序
4、元组中属性在理论上也是无序的,但使用时按习惯考虑列的顺序
三类完整性规则
实体完整性规则:关系中元组在组成主键的属性上不能有空值,如果有空值,那么就起不到唯一标识元组的作用
参照完整性规则:K是关系模式R1中的主键,是关系模式R2中的外键,那么K在R2中的取值有俩种,或者为空值,或者等于R1关系中某个主键值(不允许应用不存在的实体)
用户定义的完整性规则
ER模型到关系模型的转换
ER图中的主要成分是实体类型和联系类型,转换算法就是如何把实体类型、联系类型转换成关系模式
实体类型的转换:将每个实体类型转换成一个关系模式,实体的属性即为关系模式的属性,实体标识符即为关系模式的键
联系类型的转换(一、二元联系类型的转换)
1、若实体间联系是1:1,可以在俩个实体类型转换成的俩个关系模式中任意一个关系模式的属性中加入另一个关系模型的键(作为外键)和联系类型的属性
2、若实体间联系是1:N,则在N端实体类型转换成的关系模式中加入1端实体类型的键(作为外键)和联系类型的属性
3、若实体间的联系为M:N,则将联系类型也转换成关系模式,其属性为俩端实体类型的键(作为外键)加上联系类型的属性,而键为两端实体键的组合
实体转换为关系模型
系(系编号,系名,电话)
教师(教工号,姓名,性别,职称)
课程(课程号,课程,学分)
联系转换为关系模型
1:1联系“主管”,可以在系模式中加入“教工号”(教工号为外键)------系(系编号,系名,电话,教工号)
1:N联系“聘用”,可以在“教师”模式中加入系编号和聘期俩个属性(系编号为外键)---------教师(教工号,姓名,性别,职称,系编号,聘期)
1:N联系“开设”,可以在“课程”模式中加入系编号(系编号为外键) - ---------------------------课程(课程号,课程,学分,系编号)
M:N联系“任教”,则生成一个新的关系模式-------------------------------------------------------------任教(教工号,课程号,学分)
这样结合起来的最终结果为:
系(系编号,系名,电话)
教师(教工号,姓名,性别,职称,系编号,聘期)
课程(课程号,课程,学分,系编号)
任教(教工号,课程号,学分)
联系类型的转换(三元联系类型的转换)
1、若实体间联系是1:1:1,可以在三个实体类型转换成的三个关系模式中任意一个关系模式的属性中加入另两个关系模型的键(作为外键)和联系类型的属性
2、若实体间联系是1:1:N,则在N端实体类型转换成的关系模式中加入两个1端实体类型的键(作为外键)和联系类型的属性
3、若实体间联系是1:M:N,则将联系类型也转换成关系模式,其属性为M端和N端实体类型的键(作为外键)加上联系类型的属性,而键为M端和N端实体键的组合
4、若实体间联系是M:N:P,则将联系类型也转换为关系模式,其属性为三端实体类型的键(作为外键)加上联系类型的属性,而键为三端实体键的组合
仓库(仓库号,仓库名,地址)
商店(商店号,商店名)
商品(商品号,商品名)
进货(仓库号,商店号,商品号,日期,数量)
采用ER模式的逻辑设计步骤
关系数据库的逻辑设计步骤有以下五步:
1、导出初始关系模式集
2、规范化处理
3、模式评价(主要包括功能和性能俩个方面)
4、模式修正
5、设计子模式