练习题
1.指出下列缩写的含义
(1)DML;(2)DBMS;(3)DDL;(4)DBS;(5)SQL;(6)DB;(7)DBA;(8)DCL
2.分析文件系统与数据库系统之间的区别和联系
3.什么是数据库系统的数据独立性?
4.层次模型、网状模型和关系模型等三种基本数据模型是根据什么来划分的?
5.设有商业销售记帐数据库,一个顾客可以买多种商品,一种商品可以供应多个顾客。
顾客:顾客姓名,单位,电话号码
商品:商品名称,型号,单价
(1) 试画出对应的E-R图。
(2) 将E-R图转换成关系模型,并指出主关键字及外部关键字。
6.设有如下实体
学生:学号,单位,姓名,性别,年龄,选修课程名
课程:编号,课程名,开课单位,任课老师号
教师:教师号,姓名,性别,职称,讲授课程号
单位:单位名称,电话,教师号,教师名
上述实体间存在如下联系:
(1) 一个学生可选修多门课程,一门课程可为多个学生选修;
(2) 一个教师可讲授多门课程,一门课程可为多个教师讲授;
(3) 一个单位可以有多个教师,一个教师只能属于一个单位。
要求完成如下工作:
(1) 分别设计学生选课和教师任课两个局部信息结构的E-R图。
(2) 将上述局部E-R图合并成一个全局E-R图。
(3)将全局E-R图转换为等价的关系模型。
7.已知三个局部模型如图4.13所示,将其合并成一个全局信息模型结构。各实体的构成为:
图4.13 三个局部模型图
部门:部门号,部门名,电话,地址
职工:职工号,职工名。职务,年龄,性别
设备处:单位号,电话,地址
工人:编号,姓名,年龄,性别
设备:设备号,名称,规格,价格
零件:零件号,名称,规格,价格
生产厂:单位号,名称,电话,地址
8.一个图书借阅管理数据库,要求提供下述服务:
(1)可随时查询书库中现有书籍的品种、数量与存放位置。所有各类书籍均可由书号唯一标识。
(2)可随时查询书籍借还情况,包括借书人单位、姓名、借书证号、借书日期和还书日期。
约定:任何人可以借多种书,任何一种书可以为多个人所借,借书证号具有唯一性。
(4) 需要时,可通过数据库中保存的出版社的电报编号、电话、邮编及地址等信息向有关书籍的出版社增购有关书籍。
约定:一个出版社可以出版多种书籍,同一本书仅为一个出版社出版,出版社名具有唯一性。
根据以上情况,作如下设计:
(1) 构造满足需要的E-R图。
(2) 转换为等价的关系模型结构。
9. 设有图4.14所示的关系R和S,计算
图4.14 关系R和S
(1) R1=R–S
(2) R2=R∪S
(3) R3=R∩S
(4) R4=RχS
10.设有关系R,S,T如图4.15 所示,计算:
图4.15 关系R,S和T
(1) R1=R∪S
(2) R2=R–S
(3) R3=R∞S
(4) R4=R∞S
A<C
(5) R5=∏A(R)
(6) R6=σA=C(RχT)
11.设有关系R,W和D如图4.16所示。计算:
图4.16 关系R,W和D
(1) R1=∏Y,T(R)
(2) R2=σP>5∧T=C(R)
(3) R3=R∞W
(4) R4=∏[2],[1],[6]( σ[3]=[5](RχD))
12.设有图4.17所示的三个关系S,C,SC,将下列关系表达式用自然语言表达出来,并求其结果。
图4.17 S,C,SC
(1)∏[2],[6],[7]( σ籍贯=上海(S∞SC))
(2)∏[2],[9],[8](S∞SC∞σ课程名=操作系统(C))
13.对上题的关系S,C,SC,试用关系代数表达式表示下列查询语句:
(1)查询赵旭老师所授课程的课程号和课程号。
(2)查询年龄大于19的男学生学好和课程名。
(3)查询“李军”同学不选修的课程的课程号。
(4)查询至少选修两门课程的学生号。
(5)查询选修课程包含“赵旭”老师所授课程之一的学生学号。
(6)查询选修课程名为“数据库系统”的学生学号和姓名。
14.设有关系R,S,T如下:
R(BH,XM,XB,DWH)
S(DWH,DWM)
T(BH,XM,XB,DWH)
写出下述功能的SQL语句:
(1) 实现σDWH=‘100’(R)
(2) 实现∏XM,DWH( σXB=‘女’(R))
(3) 实现∏XM,XB(R)
(4) 实现R∞S
(5) 实现∏XM,XB,DWM(σXB=‘男’(R))
15.设有如下关系:
R(NO,NAME,SEX,AGE,CLASS)主关键字为NO
其中NO为学号,NAME为姓名,SEX为性别,AGE为年龄,ClASS为班号。写出实现如下功能的SQL语言:
(1) 插入一个记录(0204,‘王燕’,‘女’,20。‘9903’)。
(2) 插入‘9903’班学号为0244,姓名为‘李甲’的学生纪录。
(3) 将学号为‘0112’的学生姓名改为‘赵军’。
(4) 将班号‘9903’改为‘9900’
(5) 删除学号为‘0205’的学生记录。
(6) 删除所有姓“李”的学生记录。
16.已知关系R和S如图4.18所示。
图4.18 关系R1和S1
执行如下的SQL语言:
(1) CREATE VIEW H(A,B,C,D,E)
AS SELECT A,B,R1.C,D,E
FROM R1,S1
WHERE R1.C=S1.C;
(2) SELECT B,D,E
FROM H
WHERE C=’c2’;
试给出:
(1) 视图H。
(2) 对视图H的查询结果。
17. 已知学生表S和选课表SC,其关系模式如下:
S(SNO,SN,SD,PROV)
SC(SNO,CN,GR)
其中,SNO为学号,SN为姓名,SD为系名,PROV为省区,CN为课程名,GR为分数。
试用SQL语言实现下列操作:
(1) 查询“信息工程系”的学生来自哪些省区。
(2) 按分数降序排序,输出“人文学院”学生选修“计算机概论”课程的学生姓名和分数。
18. 设有学生表S(SNO,SN)和学生选修课程表SC(SNO,CNO,CN,G),其中SNO为学生学号,SN为姓名,CNO为课程号,G为成绩。试用SQL语言完成以下操作:
(1)建立一个视图V-SSC(SNO,SN,CNO,CN,G)并按CNO升序排序。
(2)从视图V-SSC上查询课程成绩在90分以上的SN,CN和G。
19. 分析关系模式STUDENT(学号,姓名,出生日期,系名,班号,宿舍区),指出其中的候选关键字,最小依赖集和存在的传递函数依赖。
20. 设有一教学管理数据库,其属性为:学号(S#),课程号(C#),成绩(G),任课教师(TN),教师所在系(D),这些数据有如下语义:
学号和课程号分别与其所代表的学生和课程一一对应。
一个学生所修的每一门课程都有一个成绩。
教师中没有重名,每个教师只属于一个系。
(1) 根据上述语义确定函数依赖集。
(2) 如果用上述属性组成一个关系模式,那么该关系模式为何种范式?并举例说明在进行插入、删除操作失当异常现象。
(3) 将上述关系模式分解成满足3NF的模式。
21. 如图4.19所给出的关系R为第几范式?是否存在操作异常?若存在,则将其分解为高一级范式。分解完成的范式中是否可以避免分解前关系中存在的操作异常?
图4.19 关系R
22. 设有如图4.20所示的关系S
图4.20 关系S
(1) 它为第几范式?为什么?
(2) 是否存在删除操作异常?若存在,说明在什么情况下发生。
(3) 将它分解成高一级范式,分解后的关系是如何解决分解前可能存在的删除操作异常问题的?
23. 设有如图4.21所示的关系P
图4.21 关系P
试问P是否属于3NF?为什么?若不是,它属于第几范式?并如何规范化为3NF?
参考文献
1. 史嘉权等.数据库系统教程.北京:清华大学出版社,2001
2. 李春葆.数据库原理与应用——习题解析.北京:清华大学出版社,2001
3. 吴保国等.数据库应用基础.北京:清华大学出版社,1998
参考答案
1. (1)数据操纵语言
(2)数据库管理系统
(3)数据描述语言
(4)数据库系统
(5)结构化查询系统
(6)数据库
(7)数据库管理员
(8)数据控制语言
2. (1)文件系统与数据库之间的区别:
(2)文件系统与数据库系统之间的联系:
它们均为数据组织管理技术;均由数据管理软件来管理数据;程序与数据分离;数据库系统是在文件系统的基础上发展而成的。
3. 数据独立性是指应用程序与数据库中存储的数据不存在依赖关系,它包括逻辑数据独立性和物理数据独立性。
逻辑数据独立性是指局部逻辑数据结构(用户视图)与全局逻辑数据结构(概念视图)之间的独立性。当数据的全局逻辑数据结构发生变化(数据定义的修改、数据之间联系的变更或者增加新的数据类型等)时,不影响某些局部的逻辑数据结构的性质,不必修改应用程序。
物理数据独立性是指数据的存储结构与存取方法(内视图)改变时,对数据库的全局逻辑结构和应用程序没有影响,即数据库的存储结构与存取方法独立。
数据独立性的好处是,如果数据的物理存储设备更新了,物理表示及存取方法改变了,但数据的逻辑模式可以不改变,便于程序维护。同时对同一数据库的逻辑模式,可以建立不同的用户模式,提高了数据的共享性,使数据库系统有较好的可可扩充性。
4. 它们是依据描述实体与实体之间联系的不同方式来划分的。用树结构来表示实体和实体之间联系的模型叫做层次模型;用图结构来表示实体和实体之间的联系的模型叫做网状模型;用二维表格来表示实体和实体之间联系的模型叫做关系模型。
5. (1)E-R图如图4.22所示。
(2)关系模型为:
顾客(顾客姓名,单位,电话号码)主关键字:顾客姓名
商品(商品名称,型号,单价)主关键字:型号
购买(顾客姓名,型号)主关键字:(顾客姓名,型号);外部关键字(顾客姓名,型号)
图4.22 E-R图
6. (1)学生选课局部E-R图如图4.23所示,教师任课局部E-R图如图4.24所示。
图4.23 学生选课局部E-R图
图4.24 教师任课局部E-R图
(2)合并后的全局E-R图如图4.25 所示。
图4.25 合并后的全局E-R图
为简化图形,各实体的属性为:
学生学号,姓名,性别,年龄
教师教师号,姓名,性别,职称
课程编号,课程名
单位单位名,电话
(3)转换成等价的关系模型为:
单位(单位名,电话)
教师(教师号,姓名,职称,单位名)
课程(课程编号,课程名,单位名)
学生(学号,姓名,性别,名称,单位号)
讲授(教师号,课程编号)
选修(学号,课程编号)
7. 汇总后的E-R图如图4.26所示。
图4.26 汇总后的E-R图
各类实体的属性为:
部门部门号,部门名,电话,地址
职工职工号,职工名,职务,年龄,性别
设备设备号,名称,规格,价格
零件零件号,名称,规格,价格
8. (1)满足上述需求的E-R图如图4.27所示。
图4.27 图书借阅管理数据库E-R图
(2)转换为等价的关系模型结构如下:
借书人(借书证号,姓名,单位)
图书(书号,书名,数量,位置,出版社名)
出版社(出版社名,电报编号,电话,编号,地址)
借阅(借书证号,书号,借阅日期,还书日期)
9. 各小题的结局4.28所示
图4.28 R、S各种计算结果
10. 各小题的结果如图4.29所示。
图4.29 R、S、T各种计算结果
11. 各小题的结果如果4.30所示。
图4.30 R、W、D各种计算结果
12. (1)查询籍贯为上海的学生姓名、学号和选修的课程号,其结果为图4.31中的R1。
(2)查询选修操作系统的学生姓名、课程号和成绩,其结果为4.31中的R2。
图4.31 关系S、C,SC计算结果
13. (1)∏课程号,课程名(σ教师姓名=‘赵旭’(C))
(2)∏学号,姓名(σ年龄>19∧性别=‘男’(S))
(3)∏课程号(C)-∏课程号(σ姓名=‘李军’(S)wvSC)
(4)∏学号(σ[1]=[4] ∧[2]≠[5](SCΧSC))
(5)∏学号(S Cwv∏课程号(σ教师姓名=‘赵旭’(C)))
(6)∏学号,姓名(S∞∏学号(SC wv(σ课程名=‘数据库系统’(C)))
14. (1) SELECT*FROM R WHERE DWH=‘100’;
(2) SELECT XM,DWH FROM R WHERE XB=‘女’;
(3) SELECT XM,XB FROM R;
(4) SELECT R.BH,R.XM,R.XB,R.DWH,S.DWH,S.DWM FROM R,S WHERE R.DWH=S.DWH;
(5) SELECT R.XM,R.XB,S.DWM FROM R,S WHERE R.DWH=S.DWH AND R.XB=‘男’;
15. (1) INSERT INTO R VALUES(0204,‘王燕’,‘女’,20,‘9903’);
(2) INSERT INTO R (NO,NAME,CLASS)VALUES(0244,‘李甲’,‘9903’);
(3) UPDATE R SET NAME=‘赵军’WHERE NO=0112;
(4) UPDATE R STE CLASS=‘9900’WHERE CLASS =‘9903’;
(5) DELETE FROM R WHERE NO=0205;
(6) DELETE FROM R WHERE NAME LIKE‘李%’;
16. (1)H视图如图4.32所示。
(2)视图H的查询结果如图4.33所示。
图4.32 视图H 图4.33 视图H查询结果
17. (1)SELECT SNO,PROV
FROM S
WHERE SD=‘信息工程系’;
(2)SELECT SN,GR
FROM S,SC
WHERE SD=‘人文学院’AND CN=‘计算机概论’AND S.SNO=SC.NO
ORDER BY GR DESC;
18. (1)CHEATE VIEW V-SSC(SNO,SN,CNO,CN,G)
AS SELECT S.SNO,S.SN,SC.CNO,SC.CN,SC.G
FROM S,SC
WHERE S.SNO=SC.SNO
ORDER BY CNO;
(2) SELECT SN,CN,G
FROM V-SSC
WHERE G>90;
19. 候选关键字:学号(每个学生只有唯一的学号)。
最小依赖集:{学号→姓名,学号→出生年月,学号→班号,系名→宿舍区,班号→系名}
存在的传递函数依赖:
t
学号→系名→宿舍区,因此,学号→宿舍区。
t
班号→系名→宿舍区,因此,班号→宿舍区。
t
学号→班号→系名,因此,学号→系名。
20. (1)函数依赖关系有:
(S#,C#)→G,C#→TN,TN→D。
(2)此关系模式为1NF,因为该关系模式的候选关键字为(S#,C#),而非主属性有G、TN、和D。其中C#→TN,存在非主属性TN对候选关键字(S#,C#)的部分依赖,即(S#,
p
C#)→TN。
如果新增设一门课程,而暂时没有学生选修时,因缺少关键字S#的值而不能进行插入操作;若某个教师调离学校要删除其相关信息时,将把有关的课程信息也删除了。
(3)分解成3NF的关系模式为:
R1=(S#,C#,G)
R2=(C#,TN)
R3=(TN,D)
21. 它是1NF,因为该关系的候选关系字为(工程号,材料号),而非主属性“开工日期”和“完工日期”部分函数依赖于候选关键字的子集“工程号”,即:
p
(工程号,材料号)→开工日期
p
(工程号,材料号)→完工日期
因此不满在足2NF
它存在的操作异常为:如果工程确定后,若暂时没有用材料,则该工程的数据因缺少关键字的一部分(材料号)而不能进入到数据库中,出现插入异常;若某工程下马,则删去该工程时将丢失有关材料方面的信息。
将上述关系中的部分函数依赖分解为一个独立的关系,则产生如图4.34所示的两个2NF的关系自模式R1,R2:
图4.34 关系R1和R2
分解后,若新工程确定后,尽管还没有用到材料,该工程的数据可在关系R2中插入。如果要删除某工程数据时,仅对关系R2操作,不会丢失材料方面的信息。
22. (1)它是2NF。
因为S的主关键字是课程名,而课程名→教师名,故教师名-﹨->课程名,教师名→教师地址,因此,课程名→教师地址,即存在非主属性教师地址对主属性课程名的传递函数依赖,所以S不是3NF。
又因为不存在非主属性对主属性的部分函数依赖,因此,R是2NF。
(2)存在。当删除某门课程时会删除不该删除的教师有关信息。
(3)分解为高一级范式3NF如图4.35所示。
分解后,若删除课程时,仅对关系S1进行操作,教师地址信息在关系S2中仍然保留,不会丢失。
23. P不属于3NF,它是2NF。因为P的主属性是职工号,而职工号→单位号,单位号-﹨->职工号,单位号→单位名。
因此,职工号→单位名,既存在非主属性单位名为主属性主属性职工号的传递函数依赖。
规范化后的关系模式为图4.36所示P1和P2。
图4.36 关系P1,P2