数据库系统2-2:关系的定义
文章作者 100test 发表时间 2007:03:10 18:33:24
来源 100Test.Com百考试题网
计算机等级考试训练软件《百宝箱》
![](/ncre/Files/2007-3/10/131409382.gif)
![](/ncre/Files/2007-3/10/131405883.gif)
从集合的角度上给出关系数据结构的定义。
定义1:集合元素的取值范围称为域,记为D(Domain)。所以域是值的集合,是一组具有相同数值类型的值的集合。
定义2:一组域D1,D2,D3,......Dn 的笛卡儿积为D1XD2XD3X......XDn={(d1,d2,d3,……dn)| di?Di ,i=1,2,3,…n},其中每个元素(d1,d2,d3,……dn)称为一个元组(tuple),有n个元素,称为n元组,元组中的每个值di 叫做分量。
若Di(i=1,2,3……n)为有限集,其基数为mi=|Di|,则D1XD2XD3X......XDn的基数M为
例如D1、D2、D3 三个域分别为:
D1为学生集合={李明、王平、林丽娟}
D2为课程集合={英语、高数、政治}
D3为成绩集合={合格、不合格}
则D1、D2、D3的笛卡儿积为:
D1XD2XD3={(李明,英语,合格),(李明,英语,不合格),
(李明,高数,合格),(李明,高数,不合格),
(李明,政治,合格),(李明,政治,不合格),
(王平,英语,合格),(王平,英语,不合格),
(王平,高数,合格),(王平,高数,不合格),
(王平,政治,合格),(王平,政治,不合格),
(林丽娟,英语,合格),(林丽娟,英语,不合格),
(林丽娟,高数,合格),(林丽娟,高数,不合格),
(林丽娟,政治,合格),(林丽娟,政治,不合格)}
D1XD2XD3的基数为:
| D1XD2XD3|= |D1|X|D2|X|D3|=3 X 3 X 2=18,一共有十八个元素,每个元素为一个元组,每个元组分别包含学生姓名、课程名称、成绩三个分量。
定义3:笛卡儿积的子集叫做关系。如D1XD2XD3X......XDn的子集叫做域D1,D2,D3,......Dn上的关系,表示为 R(D1,D2,D3,......Dn)
其中R为关系的名称,n为关系的目或度。当n=1时称为一元关系,当n=2时称为二元关系。
无限关系在数据库系统中是无意义的,所以关系必须是笛卡儿积的有限子集。它对应一张二维表,表中的每一行对应一个元组,表中的每一列对应一个域,给每一列起一个名字,称为属性名。n目关系必须有n个属性名。由于笛卡积不满足交换律,根据定义,(d1,d2,d3,……dn) ≠(d2,d1,d3,……dn)。当我们给每列附加一个属性名后,关系元组的有序性便可取消,即(d1,d2,d3,……dn)= (d2,d1,d3,……dn)。
若关系中的某个属性或属性组能唯一地标识一个元组,称该属性或属性组为候选码,若一个关系中有多个候选码,则选中其中一个为主码。主码的诸属性称为主属性。不包含在任何候选码中的属性称为非主属性。
例如笛卡儿积D1XD2XD3的子集如下表:
![](/ncre/Files/2007-3/10/131412131.gif)
关系有以下性质:
1. 每一列的数据来自同一个域,具有相同的数据类型,为元组的一个属性。
2. 不同列的数据可以来自同一个域,但这些列的属性名不能相同。
3. 列的顺序可以任意的,可以随意交换列的位置。
4. 表中的任意两行不能相同,即一个关系中不能有相同的元组。
5. 元组在关系中的次序是任意的。
6. 每个分量必须是不可分的数据项。