n元关系
数学术语
设A1,A2,…,An是集合,把A1×A2×…×An的任意子集R都称为A1,A2,…,An间的n元关系(n-ary relation),从定义可以看出,A1,A2,…,An间的n元关系R⊆A1× A2×…× An。n元关系在关系数据库系统中有着广泛的应用。
定义
定义1 设 是集合,则称笛卡儿积子集为n元关系,即 。 为n元关系R的域,n叫作它的阶。若 称 为n元组(n-tuple)。
举例分析
例1设R是由3元组(a,b,c)构成的关系,其中a,b,c是满足a
例2 设R是由4元组(N,S,D,T)构成的表示火车班次的关系。其中N是车次号,S是始点站,D是终点站,T是发车时间。例如:5108次从温州到杭州,发车时间为22:40,则(5108,温州,杭州,22:40)属于R,这个关系的阶是4,它的域是车次号的集合、城市的集合、时间的集合。
关系数据模型在数据库技术中占据重要的地位,商品化的数据库系统几乎都是基于关系数据模型的。
在关系数据模型中,数据库由表构成,表由记录组成,这些记录是由字段构成的n元组的数据项。例:表示车次信息的列车时刻表可以由包含车次、车种、始点站、终点站、发车时间等字段构成,关系数据模型把下列时刻表表示成一个n元关系,则车次信息记录可被表示成形如车次、车种、起点站、终点站、发车时间的5元组。例现有6条记录的样本:
(5104,普通快车,温州,杭州,7:20);
(K102,快速列车,温州,北京,8:00);
(5056,普通快车,温州,南京,16:40);
(T746,直通特快,宁波,上海,15:10);
(Z10,直达快车,杭州,北京,18:03);
(5152,临时客车,上海,阜阳,0:14)。
则通常将这些记录的集合用一张二维表给出,见表1。
n元关系表示成一张二维表,表的每行对应一个n元组。表的每列对应一个域。由于域可以相同(如上表的第3,4列),为了加以区分,必须对每列起一个名字,称为属性。n元关系必有n种属性。
若关系中的某属性组的值能唯一地标识一个元组,则称该属性组为候选码。若一个关系有多个候选码,则选定其中一个为主码。
例如,表1的n元关系,若是不增加n元组的情况下,属性车次可以作为主码。属性组(起点站,终点站)也可以作为主码,因为表中没有二个元组该属性组的值是相同的。若再增加一些元组。如(5108,普通快车,温州,杭州,10:40),则该属性组不可以作为主码,此时只能选择车次作为主码,因为车次总是唯一的。
n元关系的运算
可以用各种n元关系上的运算构造新的n元关系,n元关系的主要运算有选择、投影、连接,这些运算是所有关系运算的基础,在关系数据库理论中占有重要的地位。
选择
定义2 选择 表示选择R中的一些满足F的元组组成一个新的关系。即
例3 若n元关系R由表1所示,则
S车种=“普通快车”(R)表示选择车种为“普通快车”的元组,结果如表2所示。
S起点站=“温州”∧终点站=“杭州”(R)表示选择起点站为温州,终点站为杭州的所有元组,结果如表3所示。
投影
定义3 投影 是将n元组 映射到m元组 其中m≤n。
即投影运算是保留指定的m列,删除n-m列。
例4 若n元关系R由表1所示,则P1,3,4(R)表示保留第1,3,4列,结果如表4所示。
当一个投影被施用到一个关系上时,有可能使表中的行变少。当关系中的某些n元组在投影的m个属性中对应的每个属性的值都相同,而只在被投影删除的属性中有不同的值时,就会出现这种情况。
例5 在表1所示的关系中增加一个元组(5108,普通快车,温州,杭州,10:40),此时对关系做P3,4(R)投影操作,则仅得到含有6个元组的关系,而不是含有7个元组的关系。
连接
定义4 设R是m阶关系,S是n阶关系,两个关系的连接操作JF(R,S)将生成一个不超过m+n阶的新关系,其每个元组的属性分别来自于R的属性和S的属性,且满足条件F:
其中,记录表示R中的记录与S中的记录连接而成,去掉重复的属性。
参考资料
最新修订时间:2022-08-25 14:54
目录
概述
定义
举例分析
参考资料