…………数据库问题…………

有三道题,麻烦大家给答一下:
1.在关系模式R(A,B,C,D)中,存在函数依赖关系{R→B,A→C,A→D,(B,C→A)},则候选码可以是_______,关系模式R(A,B,C,D)属于________.
2.在关系模式R(D,E,G)中,存在函数依赖关系{E→D,(D,G→E)},则候选码可以是_______,关系模式R(D,E,G)属于________.
3.在关系模式R(A,C,D)中,存在函数依赖关系{A→C,A→D},则候选码可以是_______,关系模式R(A,C,D)属于________.

首先,我们要明确好候选码的概念,候选码是最小的超码子集。候选码既是能够确定数据实体的唯一性,但其任何的真子集又不能够确定数据的唯一性。

由函数依赖关系{R→B,A→C,A→D,(B,C→A)}可以推断出P能决定B的唯一性,A能决定C、D的唯一性,B和C又能够决定A的唯一性。那么候选码可以是:P,C。其中P无法推出整个数据的唯一性(A、C、D),C也无法推出整个数据的唯一性;但两者结合就能够决定数据的唯一性了。P,C->B,C->A->D。所以关系模型R(A,B,C,D)属于第一范式(1NF)。因为B不完全依赖候选码,只是依赖P而已。

同理,推出:
2.候选码:E,G 或 D,G 关系模式:第一范式(有点疑问)
3.候选码:A 关系模式:BCNF

明白了吗?如果有错误也请指正。呵呵!

补充关系模式的一些讲解:

1)在关系模式R中的每一个具体关系R中,如果每个属性值 都是不可再分的最小数据单位,则称R是第一范式的关系。

【例1】 如职工号,姓名,电话号码组成一个表(一个人可能有一个办公室电话 和一个家里电话号码) 规范成为1NF有三种方法:
一是重复存储职工号和姓名。这样,关键字只能是电话号码。
二是职工号为关键字,电话号码分为单位电话和住宅电话两个属性
三是职工号为关键字,但强制每条记录只能有一个电话号码。
以上三个方法,第一种方法最不可取,按实际情况选取后两种情况。

2)关系的第二范式(2NF)定义: 如果关系模式R为1NF,并且R中的每一个非主属性都完全依赖于R的某个候选关键字,则称R是第二范式的,简记为2NF。

【例2】 设有关系模式R(学号S#,课程号C#,成绩G,任课教师TN,教师专长TS),基于R的函数依赖集F={(S#,C#)→G,C#→TN,TN→TS},判断R是否为2NF。

解:容易看出,关系模式R是1NF。因为R符合关系的定义,R的所有属性值都是不可再分的原子值。R是否为2NF,应根据2NF的定义判断。

首先要确定关系模式R中各属性间的函数依赖情况。如果没有直接给出R的函数依赖集,就要按照语义把它确定下来。在本例中,已直接给出基于R的函数依赖集F,我们可使用阿氏推理规则并结合下面介绍的方法,进一步确定R中哪些是主属性、哪些是非主属性、侯选关键字由哪些属性构成。

写出函数依赖集F中的各个函数依赖以帮助分析:
F={(S#,C#)→G,C#→TN,TN→TS}

属性组合(S#,C#)是R的候选关键字(R只有这一个候选键)。(S#,C#)的一个值可惟一标识R中的一个元组(并且没有多余的属性)。非主属性G对键是完全依赖:(S#,C#)→G。但非主属性TN,TS对键是部分依赖(他们仅依赖于键的真子集C#)。由于R中存在非主属性对候选键的部分依赖,所以关系模式R不是2NF。

R中存在非主属性对候选键的部分依赖,将会引起数据冗余、数据操作异常等问题。可以把关系R无损联接地分解成两个2NF的关系模式:

ρ={R1,R2},R1={S#.C#,G},R2={C#,TN,TS}。

3)关系的第三范式(3NF)定义: 如果关系模式R为2NF,并且R中的每一个非主属性都不传递依赖于R的某个候选关键字,则称R是第三范式的,简记为3NF。

【例3】续上例2(R(学号S#,课程号C#,成绩G,任课教师TN,教师专长TS)),判断关系模式R1={S#.C#,G},R2={C#,TN,TS} 是否为3NF。

解:
(1) 在关系模式R1={S#,C#,G},候选关键字是(S#,C#),主属性是S#,C#,非主属性是G,函数依赖为(S#,C#)→G。由于R1中不存在非主属性对候选关键字的传递依赖,所以关系模式R1是3NF。

(2) 在关系模式R2={C#,TN,TS},候选关键字是C#,主属性是C#,非主属性是TN,TS,函数依赖为C#→TN,TN→TS。由于R2中存在非主属性对候选关键字的传递依赖C# TS,所以关系模式R2不是3NF。

可以把关系R2无损联接地分解成两个3NF的关系模式:

ρ={R3,R4},R3={C#,TN},R4={TN,TS}。

4)关系的Boyce-Codd范式(BCNF)定义: 如果关系模式R为1NF,并且R中的每一个函数依赖X→Y(YÏX),必有X是R的超关键字,则称R是Boyce-Codd范式的,简记为BCNF。

从BCNF的定义中,可以明显地得出如下结论:

(1) 所有非主属性对键是完全函数依赖;

(2) 所有主属性对不包含它的键是完全函数依赖;

(3)没有属性完全函数依赖于非键的任何属性组合。

与2NF,3NF的定义不同,BCNF的定义直接建立在1NF的基础上。但实质上BCNF是3NF的改进形式。3NF仅考虑了非主属性对键的依赖情况,BCNF把主属性对键的依赖情况也包括进去。BCNF要求满足的条件比3NF所要求的更高。如果关系模式R是BCNF的,那么R必定是3NF,反之,则不一定成立。

【例4】 续前例3(学号S#,课程号C#,成绩G,任课教师TN,教师专长TS),判断两个3NF关系模式R3={C#,TN},R4={TN,TS}是否为BCNF。

解:在关系模式R3中有函数依赖C#→TN,决定因素C#是R3的键;在关系模式R4中有函数依赖TN→TS,决定因素TN是R4的键;R3,R4都满足BCNF的定义,所以,这两个关系模式都是BCNF。
温馨提示:答案为网友推荐,仅供参考