|
关系模型中的所有的关系都必须是规范化的, 最基本的要求是符合第一范式INF( First Normal Form ),就是说,从 DBMS
的观点看,所有的属性值都是原子型的、不可再分的最小数据单位。例如,学生入学日期的表示,只能在 DBMS 外面划分为年、月、日,DBMS 把日期看作一个单位,不可再分的数据单元,不能单独根据年或月进行检索。
关系的概念虽然看起来很简单,要设计一个好的关系模式、没有冗余的关系模式,并不容易。由于关系数据库理论支持关系的规范化设计过程,在设计关系模式时,要根据实际要求尽量规范化。
一个关系数据库中包含许多关系模式。每个关系有一个唯一的关系名称,每个关系内的属性有唯一的属性名。通常属性名与其相关的属性值的集合(域)同时出现。
关系数据模型是最成熟的数据模型,最广泛应用的数据模型。关系模型的记录之间以属性作为连接的纽带,使信息之间的关系不必在应用开始之前就完全固定下来,可以按一定的规则在对数据库操纵时形成新的联系,这是对层次和网状数据模型表达能力的一次飞跃。
关系数据模型中,实体类型用关系表表示;实体类型之间的1:1和1:N的联系可以用关系表表示,也可以用属性来表示;实体类型之间的M:N的联系必须用关系表表示。
在关系数据模型中,通过外部关键字可以直接表达实体之间一对多和多对多的联系,不需要任何转换或中间环节。
例如,学生和课程之间多对多的联系,如图2-23,通过三个关系自然地表达出来,其中带有下划线的属性组是对应关系的主码属性。
学生S(学号,姓名,性别,年龄,班级)
课程C(课程编号,课程名,学分,开课系,教师编号)
选课SC(学号 ,课程编号,成绩)
图2-23 学生与课程的联系
对于三个关系构成的关系表如 表2-5,2-6,2-7。在选课表中,主码是由学号和课程号的组合共同组成。
表2-5 学生
学号 |
姓名 |
性别 |
年龄 |
入学日期 |
班级 |
J20001 |
李 楷 |
m
|
19 |
19980906
|
JS2001 |
J20002 |
张 会 |
f |
20 |
19980907 |
JS2001 |
J20003 |
王 者 |
m |
20 |
19980906 |
JS2001 |
D20001 |
赵 良 |
m |
18 |
19980901 |
DZ2001 |
表2-6 课程couse
课程编号cno |
课程名称cname
|
学分credit |
开课系deptno |
开课教师tno |
G001 |
程序语言 |
5 |
CS |
T001 |
G002 |
数据结构 |
6 |
CS |
T020 |
E001 |
信号处理 |
5 |
EE |
T012 |
表2-7 选课SC
课程编号cno |
学号 |
成绩 |
G001 |
J20001 |
78 |
G002 |
J20002 |
85 |
E001 |
J20003 |
86 |
E001 |
D20001 |
88
|
|
|