目录
一、关系数据库
二、关系数据库设计
1、需求分析
2.概念结构设计
3.逻辑结构设计
4.数据库表的优化与规范化
5、规范化的大学数据库
6、数据库中表间关系
三、关系数据库的完整性
1.实体完整性约束(PRIMARY)
2.唯一性约束(UNIQUE)
3.参照完整性约束(FOREIGN)
4.检查(CHECK)和缺省值(DEFAULT)约束
一、关系数据库
在关系数据库中,一个关系就是一张二维表,它由行和列组成:
表中的一行就是一个元组(也称记录)
表中的列为一个属性,给每个属性起一个名即为其属性名(也称字段名)
二、关系数据库设计
1、需求分析
- 需求分析阶段的任务是收集数据库所需要的信息内容和数据处理规则,确定建立数据库的目的。
- 在需求分析调研中,必须和用户充分讨论,确定数据库所要进行的数据处理范围,数据处理的流程以及数据取值范围的界定。
- 描述需求分析常用的方法有数据流图、数据字典等。
2.概念结构设计
- 概念结构设计是对现实世界的一种抽象,即对实际的人、物、事和概念进行人为处理,抽取人们关心的共同特性,忽略非本质的细节,并把这些特性用各种概念精确地加以描述。
- 为了能够完成上述目标,我们把现实世界中客观存在并可相互区别的事物称为实体。
- 实体集之间存在各种联系(Relationship),主要有三类:一对一联系(1:1)、一对多联系(1:n)、多对多联系(m:n)。
- 描述概念模型的有力工具是E-R模型。
3.逻辑结构设计
关系模型的逻辑结构是一组关系模式的集合。
将E-R图转换为关系模型一般遵循如下原则:
(1)实体与实体属性的转换
一个实体型转换为一个关系模式。实体的属性就是关系的属性。实体的码就是关系的码。
(2)实体间联系的转换
① 一个1:1联系可以转换为一个独立关系模式,也可以将任意一端关系中的码合并到另一端的关系模式中。
② 一个1:n联系可以转换为一个独立的关系模式,也可以将一端关系中的码与n端对应的关系模式合并。
③一个m:n联系必须转换为一个关系模式。
4.数据库表的优化与规范化
在数据需求分析的基础上,进行概念结构和逻辑结构设计,并将数据信息分割成数个大小适当的数据表。
关系模型的规范化理论是研究如何将一个不规范的关系模型转化为一个规范的关系模型理论。数据库的规范化设计,要求分析数据需求,去除不符合语义的数据。确定对象的数据结构,并进行性能评价和规范化处理,避免数据重复、更正、删除、插入异常。
规范化理论认为,关系数据库中的每一个关系都要满足一定的规范。根据满足规范的条件不同,可以划分为五个等级,通常在解决一般性问题时,只要把数据规范到第三范式标准就可满足需要。
5、规范化的大学数据库
(1)学生基本资料表(学号、身份证号、姓名、性别、移动电话、城市、专业、所在院系、累计学分),主键为学号。
(2)课程基本资料表(课号、课名、教材名称、编著者、出版社、版号、定价),主键为课号。
(3)教师基本资料表TEACHER(工号、身份证号、姓名、性别、移动电话、城市、院系、职称、负责人工号),主键为工号,外键是负责人工号,参考本表的工号。
(4)开课计划表(开课号、课号、工号、开课地点、开课学年、开课学期、开课周数、开课时间、学分) 主键为开课号,外键一是课号,参照课程表中的属性课号,外键二是工号,参照教师表中的属性工号。
(5)注册选课表(学号、开课号、成绩) 主键为学号和开课号,外键为开课号,参考开课计划表中的开课号。
6、数据库中表间关系
学生表、开课表和选课表之间的联系
选课表中每一行表示一个学生选择了某门计划开设的课程。
选课表的学号列中的每个值都与学生表中的学号列的某个值相匹配
同样,开课号列中的每个值也都与开课表中的开课号列的某个值相匹配
三、关系数据库的完整性
1.实体完整性约束(PRIMARY)
实体完整性规则是主关键字段中的诸属性值不能取空值。
例如,在学生基本资料表中,我们规定主键学号O不能取空值。
2.唯一性约束(UNIQUE)
唯一性约束规则是在约束的字段上不能有相同值出现。
例如,在学生基本资料表中,学号是唯一标识每个学生实体的,所以该字段的值就不能出现重复的学号值。又例如在课程基本资料表中,学校设置的课程一般是不允许有一样名字的,所以课号值(或课程名,取决谁是主键)就必须有唯一。
3.参照完整性约束(FOREIGN)
参照完整性约束规则要求外关键字的值必须来源于被参照关系表的取值或为空值。
所谓外键是:设F是基本关系R的一个或一组属性,但不是关系R的关键字。如果F与基本关系S的主关键字Ks相对应,则称F是基本关系R的外关键字,并称基本关系R为参照关系,基本关系S为被参照关系或目标关系。
例如,选课表中的学号和开课号字段,单独都不是选课表的关键字。但是,学号是学生表的主关键字,开课号是开课表的主关键字。所以选课表中的学号相对学生表就是外关键字,参照完整性约束要求选课表中的学号值必须在学生表的学号中可以找到,否则就只能取空值。同理,选课表中的开课号相对开课表就是外关键字,参照完整性约束要求选课表中的开课号值必须在开课表的开课号中可以找到,否则就只能取空值。
4.检查(CHECK)和缺省值(DEFAULT)约束
该类完整性约束是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。
例如:注册选课表的成绩字段通过这种约束,其值只能在0~100之间,或者是空值,可以把缺省值设为0。