关系数据结构及形式化定义
关系
关系模型的数据结构非常简单,只包含单一的数据结构--关系。在用户看来,关系模型中数据的逻辑结构使一张扁平的二维表。
1、域
域是一组具有相同数据类型的值的集合。
2、笛卡尔积
给定一组域D1,D2,...,Dn,允许其中的某些域是相同的,D1,D2,...,Dn的笛卡尔积为:
D1*D2*...*Dn={(d1,d2,...,dn)| di∈Di,i=1,2,3,...,n}
每一个元素(d1,d2,...,dn)叫做一个n元组,或简称元组。元组中每一个di叫做一个分量。
一个域中允许的不同取值的个数称为这个域的基数。
笛卡尔积可以表示为一个二维表。表中的每一行元素对应一个元组,表中的每一列的值来在一个域。例:
D1=(a,b,c) D2(1,2)
D1*D2={
(a,1),(a,2)
(b,1),(b,2)
(c,1),(c,2)
}
该笛卡尔积的基数为 3*2
表示成一个二维表:
a | 1 |
a | 2 |
b | 1 |
b | 2 |
c | 1 |
c | 2 |
3、关系
D1*D2*...*Dn的子集叫做在域D1,D2,...,Dn上的关系,表示为
R(D1,D2,...,Dn)
这里的R表示关系的名字,n是关系的目或者度
由于域可以相同,为了加以区分,必须对每一列取一个名字,称为属性,n目关系必有n个属性。
若关系中的某一个属性能唯一的标识一个元组,而其子集不能,则称该属性为候选码,候选码不是唯一的。
若一个关系中有多个候选码,则选定其中一个为主码。
候选码的诸属性称为主属性。不包含在任何候选码中的属性称为非主属性或非码属性。最简单的情况下,候选码只包含一个属性。在最极端的情况下,关系模式的所有属性是这个关系模式的候选码,称为全码。
关系可以有三种类型:基本关系(通常又称为基本表或基表)、查询表和视图表。其中基本表是实际存在的表,它是实际存储数据的逻辑表示;拆线呢表是查询结果对应的表(不存储);视图表是由基本表或其他视图表导出来的表,是虚表,不对应实际的存储数据。
基本关系具有以下6条性质:
(1)列是同质的:每一列中的分量是统一类型的数据,来自同一个域
(2)不同列可以出自同一个域,称其中的每一列为一个属性,不同属性要给予不同的属性名。
(3)列的顺序无所谓
(4)任意两个元组的候选码不能取相同的值
(5)行的顺序无所谓,即行的次序可以任意改变
(6)分量必须取原子值,即每一个 分量都必须是不可再分的数据项
这些规范条件中的最基本的一条是关系的每一个分量必须是不可再分的数据项(不允许大表套小表)
关系模式
关系数据库中关系模式是型,关系是值。关系模式是对关系的描述。
定义:关系的描述称为关系模式,它可以形象的表示为R(U,D,DOM,F),其中R是关系名,U是组成该关系的属性的集合,D是U中的属性所来自的域,Dom为属性像域的映像的集合,F是属性间数据依赖关系的集合。
关系模式通常可以简记为R(U)
关系是关系模式在某一时刻的状态或内容。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断的更新着数据库中的数据。人们常把关系模式和关系统称为关系,要加以区分。
关系数据库
关系数据库的型也称为关系数据库的模式,是对关系数据库的描述。关系数据库模式包括若干域的定义,以及在这些域上定义的阮淦关系模式。
关系数据库的值是