关系模型
https://www.bilibili.com/video/BV1hg411V7Bm/?p=92
规范化理论-主键
主键
关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键。
主键是唯一的。(实体完整性)
一个数据表中只能包含一个主键。
取值唯一,不允许重复,不允许为空
候选键是对具有关系键特性的一个或多个属性(组)的统称。
一个数据表中可以有多个候选键。
比如:
学生表(学号,姓名,身份证号,性别,班级)学号或身份证号
课程表(课程编号,课程名,学分)课程编号
成绩表(学号,课程号,成绩)学号+课程号作为一个组合键
复合键
复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
外键
用于与另一张表的建立关联。
能确定另一张表记录记录的字段,保持数据的一致性。
比如,A表中的一个字段,是B表的主键,那它就可以是A表的外键。
在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。
主键 | 外键 | 索引 | |
---|---|---|---|
定义 | 唯一标识一条记录
不能有重复的 不允许为空 |
表的外键是另一表的主键
外键可以有重复的 可以是空值 |
该字段没有重复值
但可以有一个空值 |
作用 | 用来保证数据完整性 | 用于和其他表建立联系 | 提高查询排序速度 |
个数 | 主键只能有一个 | 一个表可以有多个外键 | 一个表可以有多个唯一索引 |
E-R图转关系模式
一个实体型转换为一个关系模式
联系转关系模式:
- 1:1联系:可将联系合并至任意一端的实体关系模式中。
- 1:n联系:可将联系合并至n端实体关系模式中。
- m:n联系:联系必须单独转成关系模式。
三个以上实体间的一个多元联系
校长和学校,两个实体集一对一
根据“联系转关系模式 1:1 联系:可将联系合并至任意一端的实体关系模式中”
可以
校长(姓名,性别,职称,年龄)姓名做主键
学校(校名,地址,电话)校名做主键 任职(任职时间,姓名,校名)联系单独转关系模式,然后包含对应实体的主属性,姓名或校名做主键都可以 |
也可以:
校长(姓名,性别,职称,年龄,校名,任职时间)将联系合并至任意一端,姓名做主键
学校(校名,地址,电话)校名做主键 |
还可以:
校长(姓名,性别,职称,年龄)姓名做主键
学校(校名,地址,电话,姓名,任职时间)将联系合并至任意一端,校名做主键 |
客户(客户名,身份证号,地址,联系电话)客户名做主键
账户(账户号,余额)账户号做主键
存款者(客户身份证号,账户号,开户时间)联系单独转关系模式,然后包含对应实体的主属性,账户号做主键,因为账户不会重复,而身份证号会重复,主键要求不重复
也可以:
客户(客户名,身份证号,地址,联系电话)身份证号做主键
账户(客户身份证号,账户号,余额,开户时间)将联系合并至n端实体关系模式中,账户号做主键
学生(学号,姓名,性别,年龄)学号做主键
课程(课程号,课程名,授课老师)课程号做主键
考试(课程号,学号,成绩)联系必须单独转成关系模式,课程号+学号作为复合主键
考点:主键与外键
在某高校教学管理系统中,有院系关系D(院系号,院系名,负责人号,联系方式),
教师关系T(教师号,姓名,性别,院系号,身份证号,联系电话,家庭住址),
课程关系C(课程号,课程名,学分)。
其中,“院系号”唯一标识D中的每一个元组,“教师号”唯一标识T的每一个元组,“课程号”唯一标识C中的每一个元组。
假设一个教师可以讲授多门课程,一门课程可以有多名教师讲授,则关系T和C之间的联系类型为()。
A、1:1
B、1:n
C、n:1
D、n:m √
假设一个院系有多名教师,一个教师只属于一个院系,则关系D和T之间的联系类型为()。
A、1:1
B、1:n √
C、n:1
D、n:m
关系T(),
A、有1个候选键,为教师号
B、有2个候选键,为教师号和身份证号 √
C、有1个候选键,为身份证号
D、有2个候选键,为教师号和院系号
其外键是()。
A、教师号
B、姓名
C、院系号 √
D、身份证号