(3)SELECTa.编号,a.姓名,b.图书编号,b.借期
FROMreadersa,Borrowinfb
WHEREa.编号=b.读者编号anda.编号='2005060328'ANDb.还期ISNULL
(4)SELECTa.编号,a.姓名,b.图书编号,b.借期
FROMreadersa,Borrowinfb
WHEREa.编号=b.读者编号anda.姓名='王立群'ANDb.还期ISNULL
(5)SELECT*FROMreadersa,readertypeb
WHEREa.读者类型=b.类型编号andb.类型名称='研究生'
(6)SELECT*FROMbooksWHERE书名LIKE‘%程序设计%’
(7)SELECTCOUNT(*)FROMbooks
(8)SELECTCOUNT(定价)FROMbooks
(9)SELECT出版社,COUNT(*)FROMbooksGROUPBY出版社
(10)SELECT类型名称,COUNT(*)FROMreadersa,borrowinfb,readertypecWHEREa.编号=b.读者编号ANDa.读者类型=c.类型编号AND借期BETWEEN‘2007-1-1’AND‘2007-12-31’GROUPBY类型名称
(11)SELECTb.*FROMbooksa,borrowinfb
WHEREa.编号=b.图书编号AND作者=’梁晓峰’AND
借期BETWEEN‘2007-1-1’AND‘2007-12-31’
(12)SELECT读者编号,图书编号FROMbooksa,borrowinfb
WHEREa.编号=b.图书编号AND作者=’张大海’
(13)SELECT编号,姓名,已借数量FROMreadersa,readertypeb
WHEREa.读者类型=b.类型编号AND类型名称=’教师’
(14)SELECT读者编号,借阅日期FROMborrlwinfa,booksb
WHEREa.图书编号=b.编号AND书名=’C语言程序设计’
(15)SELECT编号,姓名FROMreadersa,borrowinfb
WHEREa.编号=b.读者编号AND
借期IN(SELECT借期FROMborrowinfGROUPBY借期HAVINGCOUNT(*)>1)
(16)SELECT姓名,已借数量,书名,借期,还期
FROMreadersa,borrowinfb,booksc
WHEREa.编号=b.读者编号ANDa.读者类型=c.类型编号AND
类型名称=’研究生’
(17)SELECT读者编号,借期,还期FROMborrowinf
WHERE图书编号IN(SELECT编号FROMbooksWHERE出版社=’蓝天’
(18)SELECT读者编号FROMborrowinf
WHERE图书编号NOTIN(SELECT编号FROMbooksWHERE出版社=’青山’
第五章习题
1.选择题
题号
答案
题号
答案
题号
答案
题号
答案
题号
答案
(1)
A
(2)
A
(3)
A
(4)
C
(5)
B
(6)
A
(7)
A
(8)
A
(9)
D
(10)
A
(11)
B
(12)
D
(13)
BCD
(14)
C
(15)
A
2.填空题
(1)基本表或视图定义数据
(2)WITHCHECKOPTION
(3)视图
3.简答题(略)
4.综合练习题
1)略
2)(5)SELECT姓名,工作单位FROM读者WHERE读者号=’R6’
(6)SELECT姓名FROM读者a,借阅b
WHEREa.读者号=b.读者号码AND图书号=’B6’
或SELECT姓名FROM读者
WHERE读者号IN(SELECT读者号FROM借阅WHERE图书号=’B6’)
(7)SELECT书名FROM图书a,读者b,借阅c
WHEREa.图书号=c.图书号ANDb.读者号=c.读者号AND姓名=’李红’
或SELECT书名FROM图书
WHERE图书号IN(SELECT图书号FROM借阅
WHERE读者号=(SELECT读者号FROM读者WHERE姓名=’李红’))
(8)SELECT书名FROM图书a,读者b,借阅c
WHEREa.图书号=c.图书号ANDb.读者号=c.读者号AND
姓名=’李红’AND还期ISNULL
(9)DELETEFROM借阅
WHERE图书号IN(SELECT图书号FROM借阅
WHERE读者号=(SELECT读者号FROM读者WHERE姓名=’李红’))
(10)CREATEVIEWVIEW_未还图书
AS
SELECT姓名,工作单位FROM读者
WHERE读者号IN(SELECT读者号FROM借阅WHERE还期ISNULL)
第六章习题
1.选择题
题号
答案
题号
答案
题号
答案
题号
答案
题号
答案
(1)
B
(2)
A
(3)
C
(4)
A
(5)
A
(6)
A
(7)
B
(8)
D
(9)
C
(10)
C
(11)
B
(12)
D
(13)
C
(14)
D
(15)
C
(16)
C
(17)
D
(18)
B
(19)
B
(20)
B
(21)
A
(22)
C
(23)
C
(24)
B
(25)
B
(26)
A
(27)
B
(28)
B
(29)
A
2.填空题
(1)多值依赖
(2)完全(3)外码(4)MA(5)BCNF
(6)3NF(7)自反(8)1NF(9)平凡的函数依赖(10)函数依赖
3.简答题
1)指出下列关系模式是第几范式,并说明理由。
(1)BCNF码:
XY每个函数依赖的左边都是码。
(2)3NF码:
XY,XZ不存在非主属性对码的部分函数依赖和传递函数依赖,Y不是码,所以不是BCNF。
(3)BCNF码:
X,Y每个函数依赖的左边都是码。
(4)BCNF码:
X每个函数依赖的左边都是码。
(5)1NF码:
1NF存在非主属性(Z)对码的部分函数依赖。
2)试问下列关系模式最高属于第几范式,并解释其原因。
(1)1NF码:
AB存在非主属性(D)对码的部分函数依赖。
(2)2NF码:
E,AB存在非主属性(D)对码的传递函数依赖(AB→C,C→D)。
(3)3NF码:
AB,AD不存在非主属性对码的部分函数依赖和传递函数依赖,B和D不是码,所以不是BCNF。
(4)BCNF码:
A,B每个函数依赖的左边都是码。
(5)2NF码:
C存在非主属性(B)对码的传递函数依赖(C→A,A→B)
(6)1NF码:
AD存在非主属性(C,B)对码的部分函数依赖。
(7)1NF码:
AD存在非主属性(C,B)对码的部分函数依赖。
3)R的所有候选码是CE
4)
(1)B+=BD
(2)R的所有候选码为:
E,A,CD,BC
(3)没有非主属性,B不是码,所以为3NF。
5)
(1)R的所有候选码为:
EC
(2)A.首先构造初始表:
A
B
C
D
E
AB
a1
a2
b13
b14
b15
AE
a1
b22
b23
b24
a5
CE
b31
b32
a3
b34
a5
BCD
b41
a2
a3
a4
b45
AC
a1
b52
a3
b54
b55
B.按下列次序反复检查函数依赖和修改M:
A→D,属性A中有相同值,故将b24和b54改为b14;
A
B
C
D
E
AB
a1
a2
b13
b14
b15
AE
a1
b22
b23
b14
a5
CE
b31
b32
a3
b34
a5
BCD
b41
a2
a3
a4
b45
AC
a1
b52
a3
B14
b55
E→D,属性E中有相同值,故将b34改为b14;
A
B
C
D
E
AB
a1
a2
b13
b14
b15
AE
a1
b22
b23
b14
a5
CE
b31
b32
a3
b14
a5
BCD
b41
a2
a3
a4
b45
AC
a1
b52
a3
b14
b55
D→B,属性D中有相同值,故将b22、b32、b52改为a2;
A
B
C
D
E
AB
a1
a2
b13
b14
b15
AE
a1
a2
b23
b14
a5
CE
b31
a2
a3
b14
a5
BCD
b41
a2
a3
a4
b45
AC
a1
a2
a3
b14
b55
BC→D,属性B、C中有相同值(第三到五行),故将D中第三行和第五行的b14改为a4;
A
B
C
D
E
AB
a1
a2
b13
b14
b15
AE
a1
a2
b23
b14
a5
CE
a1
a2
a3
a4
a5
BCD
b41
a2
a3
a4
b45
AC
a1
a2
a3
a4
b55
DC→A,属性D、C中有相同值,故将A列中的b41改为a1;
A
B
C
D
E
AB
a1
a2
b13
b14
b15
AE
a1
a2
b23
b14
a5
CE
a1
a2
a3
a4
a5
BCD
a1
a2
a3
a4
b45
AC
a1
a2
a3
a4
b55
此时第三行已为a1-a5,所以ρ是无损连接分解。
6)(BD+)=ABCDEG
7)
(1)D+=DHG
(2)A.将函数数依赖右部属性单一化(利用分解原则),结果为:
F1={AB→C,AB→E,A→C,GP→B,EP→A,CDE→P,HB→P,D→H,D→G,ABC→P,ABC→G}
B.在F1中去掉函数依赖左部多余的属性。
对于AB→C,由于有A→C,则B是多余的;对于ABC→P,由于(AB)+=ABCP,则C是多余的,对于ABC→G,由于(AB)+=ABCG,则C是多余的,删除依赖左部多余的依赖后:
F2={AB→E,A→C,GP→B,EP→A,CDE→P,HB→P,D→H,D→G,AB→P,AB→G}
C.在F2中去掉多余的函数依赖。
经计算,在F2中没有多余的函数依赖,故
Fmin={AB→E,A→C,GP→B,EP→A,CDE→P,HB→P,D→H,D→G,AB→P,AB→G}
8)
(1)R的候选码为CE。
(2)求F的Fmin
F=Fmin,将R分解为3NF的结果为{AD,DE,BD,BCD,ACD}
9)
(1)R的候选码:
FH
(2)由于存在非主属性EG对码FH的部分函数数依赖,故R属于1NF。
(3)将R分解为3NF,结果为ρ={R1(FEG),R2(HE),R3(FHE),R4(EG)}
F1=∏R1(F)={F→E,F→G}
F2=∏R2(F)={H→E}
F3=∏R3(F)={FH→E}
F4=∏R4(F)={E→G,G→E}
根据算法6、3得知,ρ是无损分解。
F1∪F2∪F3∪F4=F,所以ρ具有函数依赖保持性。
(4)A.将F中依赖左部属性单一化:
F1={E→G,G→E,F→E,F→G,H→E,H→G,FH→E}
B.对于FH→E,由于有F→E,则为多余的,则:
F2={E→G,G→E,F→E,F→G,H→E,H→G}
C.在F2中的F→E和F→G以及H→E和H→G之一是多余的,则:
F3={E→G,G→E,F→G,H→G}
或F3={E→G,G→E,F→G,H→E}
或F3={E→G,G→E,F→E,H→E}
或F3={E→G,G→E,F→E,H→G}
10)联系:
如果关系模式R∈BCNF,必定有R∈3NF
如果R∈3NF,且R只有一个候选码,则R必属于BCNF。
区别:
3NF只强调非主属性对码的完全直接依赖,这样就可能出现主属性对码的部分依赖和传递依赖。
一个模式中的关系模式如果都属于BCNF,那么在函数依赖范畴内,它已实现了彻底的分离,已消除了插入和删除的异常。
4.设计题
1)⑴它是2NF。
∵R的候选关键字为课程名,而课程名→教师名,教师名→课程名不成立,教师名→教师地址,∴课程名→教师地址,即存在非主属性教师地址对候选关键字课程名的传递函数依赖,因此R不是3NF。
又∵不存在非主属性对候选关键字的部分函数依赖,∴R是2NF。
⑵存在。
当删除某门课程时会删除不该删除的教师的有关信息。
⑶可将关系模式分解为(课程名,教师名),(教师名,教师地址)。
分解后,若删除课程数据时,仅对关系R1操作,教师地址信息在关系R2中仍然保留,不会丢失教师方面的信息。
2)R不属于3NF。
在R中,职工号→职工名,单位号→单位名,但R的码为(职工号,单位号),存在非主属性对码的部分函数依赖,它属于1NF。
可将其分解。
分解为R1=(职工号,职工名,年龄,性别),R2=(职工号,单位号),R3=(单位号,单位名)。
3)
(1)关系模式R的基本函数依赖集F={(商店编号,商品编号)→部门编号,(商店编号,部门编号)→负责人,(商店编号,商品编号)→数量,}
(2)关系模式R的候选码为:
商店编号,商品编号。
(3)关系模式R已达到1NF,因为存在非主属性(负责人)对码的部分函数数依赖。
(4)分解为:
R1=(商店编号,商品编号,数量)R2=(商店编号,部门编号,负责人)
第七章习题
1.选择题
题号
答案
题号
答案
题号
答案
题号
答案
题号
答案
(1)
C
(2)
A
(3)
B
(4)
B
(5)
C
(6)
C
(7)
C
(8)
D
(9)
B
(10)
A
(11)
D
(12)
C
(13)
C
(14)
D
(15)
D
2.填空题
(1)需求分析概念结构设计逻辑结构设计数据库物理设计数据库实施数据库运行和维护
(2)数据项数据结构数据流数据存储和处理
(3)概念模型
(4)E-R模型
(5)结构
3.问答题
(略)
4.综合题
(1)
出版社(出版社名,所在在址,联系电话)
作者(姓名,性别,年龄,工作单位,联系电话)
出版(出版社名,作者名,书名,出版数量,联系方式)
(2)
读者(读者号,姓名,地址,性别,年龄,单位)
图书(书号,书名,作者,出版社)
借阅(读者号,书号,借期,还期)
(3)职工(工号,姓名,性别,年龄,学历,部门号,岗位编号)
部门(部门号,部门名称,职能)
岗位(岗位编号,岗位名称,岗位等级)
技能(技能编号,技能名称,技能等级)
奖惩(序号,奖惩标志,项目,奖惩金额)
培训课程(课程号,课程名,教材,学时)
工资(工号,基本工资,级别工资,养老金,失业金,公积金,纳税)
选课(职工号,课程号,时间,成绩)
设置(部门,岗位,人数)
考核(职工号,技能号,时间,地点,级别)
接受(职工号,奖惩序号,奖惩时间)
(4)车间(车间号,车间名,主任名)
产品(产品号,产品名,单价)
仓位(仓位号,地址,主任名)
客户(客户号,客户名,联系人,电话,地址,税号,账号)
销售员(销售员号,姓名,性别,学历,业绩)
入库(车间号,产品号,仓位号,入库单号,入库量,入库日期