33.
有关系模式
A
(
C
,
T
,
H
,
R
,
S
),其中各属性的含义是:
C
:课程
T
:教员
H
:上课时间
R
:教室
S
:学生
根据语义有如下函数依赖集:
F={C
→
T
,(
H
,
R
)→
C
,(
H
,
T
)
RC
,(
H
,
S
)→
R}
(
1
)关系模式
A
的码是(
)。
A. C B.
(
H
,
S
)
C.
(
H
,
R
)
D.
(
H
,
T
)
(
2
)关系模式
A
的规范化程度最高达到(
)。
A. 1NF B. 2NF C. 3NF D. BCNF
(
3
)现将关系模式
A
分解为两个关系模式
A1
(
C
,
T
),
A2
(
H
,
R
,
S
),则其中
A1
的规范化程度达到(
)。
A. 1NF B. 2NF C. 3NF D. BCNF
选择题答案:
(1) A (2) B (3) B (4) A (5) D
(6) B (7) C (8) B (9) B (10) C
(11) D (12) A (13) D (14) D (15) B
(16) B (17) D (18) B (19) C (20) C
(21) C (22) A (23) A (24) A (25) D
(26) B (27) B (28) B (29) B (30) B
(31) D (32) B (33) B B D
三、简答题
1
.理解并给出下列术语的定义:
函数依赖、部分函数依赖、完全函数依赖、候选码、主码、
外码、全码。
解析:
解答本题不能仅仅把《概论》上的定义写下来。关键是真正理解和运用这些概念。
l
函数依赖的定义是什么?
答:
函数依赖:设
R (U)
是一个关系模式,
U
是
R
的属性集合,
X
和
Y
是
U
的子集。对于
R (U)
的任意一个可能的关系
r
,如果
r
中不存在两个元组,它们在
X
上的属性值相同,
而在
Y
上的属性值不同,
则称
"X
函数确定
Y"
或
"Y
函数依赖于
X"
,记作
X
→
Y
。
解析:
1
)函数依赖是最基本的一种数据依赖,也是最重要的一种数据依赖。
2
)函数依赖是属性之间的一种联系,体现在属性值是否相等。由上面的定义可以知道,如果
X
→
Y
,则
r
中任意两个元组,若它们在
X
上的属性值相同,那么在
Y
上的属性值一定也相同。
3
)我们要从属性间实际存在的语义来确定他们之间的函数依赖,即函数依赖反映了(描述了)现实世界的一种语义。
4
)函数依赖不是指关系模式
R
的在某个时刻的关系(值)满足的约束条件,而是指
R
任何时刻的一切关系均要满足的约束条件。
l
完全函数依赖的定义是什么?
答:
完全函数依赖、部分函数依赖:在
R
(
U
)中,如果
X
→
Y
,并且对于
X
的任何一个真子集
X
,都有
X
′→
Y
,则称
Y
对
X
完全函数依赖
;
若
X
→
Y
,但
Y
不完全函数依赖于
X
,则称
Y
对
X
部分函数依赖
;
l
候选码、主码的定义是什么?
答:
候选码、主码:
设
K
为
R(U
,
F)
中的属性或属性组合,若
K
→
U
则
K
为
R
的候选码。若候选码多于一个,则选定其中的一个为主码。
l
外码、全码的定义是什么?
答:
外码:关系模式
R
中属性或属性组
X
并非
R
的码,但
X
是另一个关系模式的码,则称
X
是
R
的外部码也称外码。
全码:整个属性组是码,称为全码(
All-key
)。
2
.建立一个关于系、学生、班级、学会等诸信息的关系数据库。
描述学生的属性有:学号、姓名、出生年月、系名、班号、宿舍区。
描述班级的属性有:班号、专业名、系名、人数、入校年份。
描述系的属性有:系名、系号、系办公室地点、人数。
描述学会的属性有:学会名、成立年份、地点、人数。
有关语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。
请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。
指出各关系的候选码、外部码,有没有全码存在?
答:
关系模式:
学生
S
(
S#
,
SN
,
SB
,
DN
,
C#
,
SA
)
班级
C
(
C#
,
CS
,
DN
,
CNUM
,
CDATE
)
系
D
(
D#
,
DN
,
DA
,
DNUM
)
学会
P
(
PN
,
DATE1
,
PA
,
PNUM
)
学生
--
学会
SP
(
S#
,
PN
,
DATE2
)
其中,
S#
―学号,
SN
―姓名,
SB
―出生年月,
SA
―宿舍区
C#
―班号,
CS
―专业名,
CNUM
―班级人数,
CDATE
―入校年份
D#
―系号,
DN
―系名,
DA
―系办公室地点,
DNUM
―系人数
PN
―学会名,
DATE1
―成立年月,
PA
―地点,
PNUM
―学会人数,
DATE2
―入会年份
每个关系模式的极小函数依赖集:
S
:
S#
→
SN
,
S#
→
SB
,
S#
→
C#
,
C#
→
DN
,
DN
→
SA
C
:
C#
→
CS
,
C#
→
CNUM
,
C#
→
CDATE
,
CS
→
DN
,
(CS,CDATE)
→
C#
D
:
D#
→
DN
,
DN
→
D#
,
D#
→
DA
,
D#
→
DNUM
P
:
PN
→
DATE1
,
PN
→
PA
,
PN
→
PNUM
SP
:(
S#
,
PN
)→
DATE2
S
中存在传递函数依赖:
S#
→
DN, S#
→
SA, C#
→
SA
C
中存在传递函数依赖:
C#
→
DN
(
S#
,
PN
)→
DATE2
和(
CS
,
CDATE
)→
C#
均为
SP
中的函数依赖,是完全函数依赖
关系
候选码
外部码
全码
S S# C#
,
DN
无
C C#
,
(CS,CDATE) DN
无
D D#
和
DN
无
无
P PN
无
无
SP
(
S#
,
PN
)
S#
,
PN
无
3.
试由Armostrong
公理系统推导出下面三条推理规则:
(1)
合并规则:若
X
→
Z
,
X
→
Y
,则有
X
→
YZ
(2)
伪传递规则:由
X
→
Y
,
WY
→
Z
有
XW
→
Z
(3)
分解规则:
X
→
Y
,
Z
包含于
Y
,有
X
→
Z
证:
(
1
)已知
X
→
Z
,由增广律知
XY
→
YZ
,又因为
X
→
Y
,可得
XX
→
XY
→
YZ
,最后根据传递律得
X
→
YZ
。
(
2
)已知
X
→
Y
,据增广律得
XW
→
WY
,因为
WY
→
Z
,所以
XW
→
WY
→
Z
,通过传递律可知
XW
→
Z
。
(
3
)已知
Z
包含于
Y
,根据自反律知
Y
→
Z
,又因为
X
→
Y
,所以由传递律可得
X
→
Z
。
4.
试举出三个多值依赖的实例。
答:
(
1
)关系模式
MSC
(
M
,
S
,
C
)中,
M
表示专业,
S
表示学生,
C
表示该专业的必修课。假设每个专业有多个学生,有一组必修课。设同专业内所有学生的选修的必修课相同,实例关系如下。按照语义对于
M
的每一个值
M i
,
S
有一个完整的集合与之对应而不问
C
取何值,所以
M
→→
S
。由于
C
与
S
的完全对称性,必然有
M
→→
C
成立。
M S C
M 1 S 1 C 1
M 1 S 1 C 2
M 1 S 2 C 1
M 1 S 2 C 2
……
……
……
(
2
)关系模式
ISA
(
I
,
S
,
A
)中,
I
表示学生兴趣小组,
S
表示学生,
A
表示某兴趣小组
的活动项目。假设每个兴趣小组有多个学生,有若干活动项目。每个学生必须参加所
在兴趣小组的所有活动项目,每个活动项目要求该兴趣小组的所有学生参加。
按照语义有
I
→→
S
,
I
→→
A
成立。
(
3
)关系模式
RDP
(
R
,
D
,
P
)中,
R
表示医院的病房,
D
表示责任医务人员,
P
表示病人。假设每个病房住有多个病人,有多个责任医务人员负责医治和护理该病房的所有病人。按照语义有
R
→→
D
,
R
→→
P
成立。
5.
下面的结论哪些是正确的,哪些是错误的?对于错误的结论请给出理由或给出一个反例说明之。
(
1
)任何一个二目关系都是属于
3NF
的。√
(
2
)任何一个二目关系都是属于
BCNF
的。√
(
3
)任何一个二目关系都是属于
4NF
的。√
(
5
)若
R.A
→
R.B
,
R.B
→
R.C
,则
R.A
→
R.C
√
(
6
)若
R.A
→
R.B
,
R.A
→
R.C
,则
R.A
→
R.(B, C)
√
(
7
)若
R.B
→
R.A
,
R.C
→
R.A
,则
R.(B, C)
→
R.A
√
(
8
)若
R.(B, C)
→
R.A
,则
R.B
→
R.A
,
R.C
→
R.A
×
反例:关系模式
SC
(
S#
,
C#
,
G
)
(
S#
,
C#
)→
G
,但是
S#
→
G
,
C#
→
G
四、填空回答题
1 .
在一个关系
R
中,若每个数据项都是不可再分割的,那么
R
一定属于
__________
。
(
问答题
)
2 .
理解并给出下列术语的定义:函数依赖、部分函数依赖、完全函数依赖、传递依赖、候选码、主码、
外码、全码
(All-key)
、
1NF
、
2NF
、
3NF
、
BCNF
、多值依赖、
4NF
。