关系模式

更新时间:2023-12-11 14:01

关系模式是指关系的描述,现实世界随着时间在不断地变化,因而在不同的时刻,关系模式的关系也会有所变化。但是,现实世界的许多己有事实限定了关系模式所有可能的关系必须满足一定的完整性约束条件。这些约束或者通过对属性取值范围的限定,例如职工年龄小于65岁(65岁以后必须退休),或者通过属性值间的相互关连(主要体现于值的相等与否)反映出来。关系模式应当刻画出这些完整性约束条件。

定义

关系的描述称为关系模式(Relation Schema)它可以形式化地表示为:

R(U,D,dom,F)

其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,dom为属性向域的映象集合,F为属性间数据的依赖关系集合。

通常简记为:

R(U)或R(A1,A2,…,An)

其中R为关系名,U为属性名集合,A1,A2,…,An为各属性名。

性质

若关系模式所有属性不可再分,则达到第一范式1NF

(1)如果关系模式在达到1NF的基础上,使每个非主属性都完全依赖于每个关系键,则该关系模式达到2NF的要求。

(2)如果关系模式属于2NF,且每个非主属性都不传递依赖于关系的任何键,这该关系模式属于3NF的要求。

(3)若关系符合1NF,且对于每个函数依赖X→Y,X必含有候选键,或者关系中的每个决定属性集都是候选键,则关系达到BCNF的要求。

(4)达到2NF的关系模式没有去掉非主属性对关系键的传递依赖关系,而达到3NF的关系模式去掉了非主属性对关系键的传递依赖关系。2NF和3NF没有去掉主属性对关系键的依赖关系,而满足BCNF的关系消除了任何属性(主属性或非主属性)对键的部分依赖或传递依赖。

(5)各个范式之间的联系有BCNF?3NF?2NF,如果关系满足某个范式要求,也会满足级别较低的所有范式的要求,即较高层次的范式比较低层次的范式具有更合乎要求4.证明在关系数据库中任何的二元关系模式必定是BCNF。

设R为一个二元关系R(x1,x2),则属性x1和x2之间可能存在以下几种依赖关系:

(1) x1→x2,但x2 !→x1,则关系R的候选关键字为x1,函数依赖的左部包含候选关键字x1,所以R为BCNF。

(2) x1 !→x2,x2 !→x1,则关系R的候选关键字为x1和x2,这两个函数依赖的左部都包含了R的任一候选关键,所以R为BCNF。

(3) xl→x2,x2→x1,则关系R的候选关键字为(x1,x2),R上没有函数依赖,所以R为BCNF。

构成

在数据库中要区分型和值。关系数据库中,关系模式是型,关系是值。关系模式是对关系的描述,那么一个关系需要描述哪些方面呢?

首先,应该知道,关系实质上是一张二维表,表的每一行为一个元组,每一列为一个属性。一个元组就是该关系所涉及的属性集的笛卡尔积的一个元素。关系是元组的集合,因此关系模式必须指出这个元组集合的结构,即它由哪些属性构成,这些属性来自哪些域,以及属性与域之间的映象关系。

其次,一个关系通常是由赋予它的元组语义来确定的。元组语义实质上是一个n目谓词(n是属性集中属性的个数)。凡使该n目谓词为真的笛卡尔积中的元素(或者说凡符合元组语义的那部分元素)的全体就构成了该关系模式的关系。

运用

关系模式仅涉及关系名、各属性名、域名、属性向域的映象四部分。

例如,在上面例子中,由于导师和研究生出自同一个域—人,所以要取不同的属性名,并在模式中定义属性向域的映象,即说明它们分别出自哪个域,如:

dom(SUPERVISOR-PERSON)=dom(POSTGRADUATE-PERSON)=PERSON 关系模式通常可以简记为 R(U)或R(A1,A2,…,An)

其中R为关系名,A1,A2,…,An为属性名。而域名及属性向域的映象常常直接说明为属性的类型、长度。关系是关系模式在某一时刻的状态或内容。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据。但在实际当中,人们常常把关系模式和关系都称为关系,这不难从上下文中加以区别。

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}