首页 > 试题广场 >

设有关系 STUDENT(S#,SNAME,SDEPT,MN

[问答题]

设有关系 STUDENT(S#,SNAME,SDEPT,MNAME,CNAME,GRADE) ,( S#,CNAME )为候选码,设关系中有如下函数依赖:

S#,CNAME )→ SNAME,SDEPT,MNAME

S# SNAME,SDEPT,MNAME

S#,CNAME )→ GRADE

SDEPT MNAME

试求下列问题:

1 )关系 STUDENT 属于第几范式?并说明理由。

2 )如果关系 STUDENT 不属于 BCNF ,请将关系 STUDENT 逐步分解为巧

BCNF

3 要求:写出达到每一级范式的分解过程,并指明消除什么类型的函数依赖。

1 关系 STUDENT 1NF ,因为 F 中存在非主属性 SNAME SDEPT MNAME 对侯选码( S#,CNAME )的部分函数依赖。

2

首先消除部分函数依赖( S#,CNAME )→ SNAME,SDEPT,MNAME 将关系分解为:

R1(S#,SNAME,SDEPT,MNAME) S# 为候选码,

R1 的函数依赖集为:

F1 = { S# SNAME,SDEPT,MNAME SDEPT MNAME}

R2(S#,CNAME,GRADE) S# 为候选码,

R2 的函数依赖集为:

F2={ S#,CNAME )→ GRADE}

在关系 R1 中存在非主属性 MNAME 对候选码 S# 的传递函数依赖 S# MNAME ,所以将 R1 进一步分解:

R11(S#,SNAME,SDEPT) S# 为候选码,

R11 的函数依赖集为:

F11 = { S# SNAME,SDEPT }

R12(SDEPT,MNAME) SDEPT 为候选码,

R12 的函数依赖集为:

F12 = { SDEPT MNAME }

R2 R11 R12 关系模式中函数依赖都是非平凡的,并且决定因素均是候选码,所以上述三个关系模式均是 BCNF
发表于 2017-05-16 21:30:39 回复(0)