文档介绍:第3章关系模型(1)
本章主要讲述:
关系模型的数据结构
关系的定义和性质
关系数据库的基本概念
关系运算
1
关系数据库的结构 关系模型
关系模型就是用二维表格结构来表示实体及实体之间联系的模型。即关系模型是一些表格的格式,其中包括关系名、属性名、关键字等。
例如,。
教师关系T
TNO
教师号
TN
姓名
SEX
性别
AGE
年龄
PROF
职称
SAL
工资
COMM
岗位津贴
DEPT
系别
2
课程关系C 授课关系SC
教师—课程数据库的关系模型
从各个关系的框架中,我们可以很容易看出哪两个关系之间有联系。例如:
教师关系和授课关系有公共的属性“教师号”,则表明这两个关系有联系。
而课程关系和授课关系有公共的属性“课程号”,则表明这两个关系也有联系。
CNO
课程号
CN
课程名
CT
课时
TNO
教师号
CNO
课程号
3
关系的定义
1、域(Domain)
域是一组具有相同数据类型的值的集合,又称为值域(用D表示) 。关系中用域表示属性的取值范围。例如整数、实数、字符串的集合。
域中所包含的值的个数称为域的基数(用m表示)。
例如:
D1={李力,王平,刘伟} m1=3
D2={男,女} m2=2
D3={47,28,30} m3=3
其中,D1,D2,D3为域名,分别表示教师关系中姓名、性别、年龄的集合。
4
2、笛卡尔积(Cartesian Product)
给定一组域D1,D2,…,Dn(它们可以包含相同的元素,即可以完全不同,也可以部分或全部相同)。D1,D2,…,Dn的笛卡尔积为D1×D2×……×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}。
由定义可以看出,笛卡尔积也是一个集合。
其中:
ponent),来自相应的域(di∈Di)
每一个元素(d1,d2,d3,…,dn)叫做一个n元组(n-tuple),简称元组(Tuple)。但元组不是di的集合,元组的每个分量(di)是按序排列的。如:
(1,2,3)≠(2,3,1)≠(1,3,2)。
5
Di中的集合元素个数称为Di的基数,用mi(i=1,2,……n)表示,则笛卡尔积D1×D2×……×Dn的基数M(即元素(d1,d2,……dn)的个数)为所有域的基数的累乘之积,即
M=
例如:上述表示教师关系中姓名、性别两个域的笛卡尔积为:
D1×D2={(李力,男),(李力,女),(王平,男),(王平,女),(刘伟,男),(刘伟,女)}
其中:
(李力,男),(李力,女)等是元组
其基数M=m1×m2=3*2=6
元组的个数为6
6
笛卡尔积可用二维表的形式表示。
例如,。
D1和D2的笛卡尔积
由上例可以看出,笛卡尔积实际是一个二维表,表的框架由域构成,表的任意一行就是一个元组,表中的每一列来自同一域,如第一个分量来自D1,第二个分量来自D2。
姓名
性别
李力
男
李力
女
王平
男
王平
女
刘伟
男
刘伟
女
7
3、关系(Relation)
笛卡尔积D1×D2×…×Dn的任一子集称为定义在域D1,D2,…Dn上的n元关系(Relation),可用R(D1,D2……Dn)表示
如上例D1×D2笛卡尔积的子集可以构成教师关系T1,如下表:
教师关系T1
姓名
性别
李力
男
王平
女
刘伟
男
8
几点说明:
   R为关系名,n称为关系的目或度(Degree)。
当n=1时,称为单元关系,当n=2时,称为二元关系。…当n=n时,称为n元关系。如上例为二元关系,关系名为T1。
数学上关系是笛卡尔积的任意子集,但在实际应用中关系是笛卡尔积中所取的有意义的子集。,显然不符合实际情况
姓名
性别
李力
男
李力
女
不符合实际意义的关系
9
尽管关系与二维表格是非常类似的,但它们之间又有重要的区别。关系具有如下特性:
1. 关系中不允许出现相同的元组。
2. 关系中元组的顺序(即行序)是无关紧要的,在一个关系中可以任意交换两行的次序。
关系中属性的顺序是无关紧要的,即列的顺序可以任意交换。交换时,应连同属性名一起交换,否则将得到不同的关系。
4. 同一属性名下的各个属性值必须来自同一个域,是同一类型的数据。
5. 关系中各个属性必须有不同的名字,不同的属性可来自同一个域。
关系的性质
10