数据库课后答案
数据库系统概论习题参考答案
An Introduction to Database System
安徽工业大学
授课教师:周兵
选用教材:
《数据库系统及应用》,戴小平,中国科技大学出版社,.
参考书目:
1、《Date C J, An Introduction to Database System》, Addison-Wesley,2000
2、《数据库系统原理教程》,王珊,陈红:清华大学出版社,2000
3、《数据库系统概论》(第四版),萨师煊,王珊, 高等教育出版社,2006 中国人民大学
说明:
斜体部分是可选讲授内容, 带星号的习题为可选。
第 1 章数据库基础
1.1习题P22
A.1
试述数据库、数据库系统、数据库管理系统这几个概念。
答案:
B.1数据库
数据库是关于企业或组织的全部数据的集合。数据库包含两部分:一是对数据结构的所有描述,存储于数据字典之中,二是数据数据本身,它是数据库的主体。
B.2数据库系统
数据库系统是指在计算机系统中引入数据库后的系统构成,由数据库、数据库管理系统、运行环境、数据库管理员和用户构成。
B.3数据库管理系统
数据库管理系统是位于用户与操作系统之间的一层数据管理软件,负责数据库管理和维护的软件系统。
A.2
试述数据管理技术的三个阶段,及其特点。答案:
B.1手工管理阶段
数据的组织和管理完全靠程序员手工完成,因此称为手工管理阶段。这个阶段数据的管理效率很低。
C.1特点:
D.1数据不保存。
D.2应用程序管理数据。
D.3数据不共享。
D.4数据不具有独立性。
B.2文件系统阶段
在文件系统中,按一定的规则将数据组织成为一个文件,应用程序通过文件系统对文件中的数据进行存取和加工。
C.1特点:
D.1数据可以长期保留。
D.2数据不属于某个特定的应用程序。
D.3文件组织形式的多样化。
D.4数据冗余度大。
D.5数据不一致性。
D.6数据联系弱。
B.3数据库系统阶段
数据库技术克服了以前所有管理方式的缺
点,试图提供一种完善的、更高级的数据管理方式。它的基本思想是解决多用户数据共享的问题,实现对数据的集中统一管理,具有较高的数据独立性,并为数据提供各种保护措施。
C.1特点:
D.1采用数据模型表示复杂的数据结构。
D.2数据的共享性高,冗余度低,易扩充。
D.3数据具有较高的独立性。
D.4数据由DBMS统一管理和控制。
A.3
什么是数据模型及其三要素
答案:
数据模型就是在数据世界中对概念模型的数据描述。数据模型的三要素:数据结构、数据操作、完整性约束
A.4
大学有若干个学院,每个学院有若干个系,每个系有若干个教师,每个教师开若干门课,每门课可以由不同的教师来教;学生属于不同的班级,班级属于不同的系;每个学
生可以选修若干门课,每门课可以由不同的学生来选。试用E-R图来表示该大学的概念模型。
答案:
第 2 章关系数据库
2.1习题P48-50
A.1
关系的完整性规则是那几个分别给出规则。
答案:
B.1实体完整性规则
若属性(指一个或一组属性)A是基本关系R的主属性,则A不能取空值。
B.2参照完整性规则
若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码K相对应,则对于R 中每个元组在F上的值必为:
取空值(F中的每个属性值均为空值)。
等于S中的某个元组的主码值。
B.3用户定义的完整性
规则包括:
(1) 列值非空(NOT NULL短语)
(2) 列值惟一(UNIQUE短语)
(3) 列值需满足一个布尔表达式(CHECK 短语) A.2
简述关系模型的三个组成部分。 答案:
关系模型有三个要素,即关系数据结构、关系操作集合和关系完整性约束。 A.3
设有四个关系R ,S ,T ,U 如图所示:
S
T U
A B
C
7 8
5
4 7 9
5 5 3 A B C
7 8 5
7 9 1
5 4 2
C D
5 3
3 7
A B C D
1 4 5 3
1 4 3 7
5 4 2 1
计算:①R∪S,R-S,R∩S,U÷T,R×T
②R T,R T,σC<3(U),∏4, 3(U)
③∏1,3(σD<4(S U)), ∏4,2(σB>5(R×T))答案:
①
A B D
78553
78537
47953
47937
55353
55337
R×T
3>1
②
③
∏4,2(σB>5(R ×T))
T.C B
5 8
3 8
5 7
3 7
∏4,2(σB>5(R×T))
B
58
38
57
37
设有一个学生借书SJB数据库,包括S,B,SJB 三个关系模式:
S(SNO, SNAME, SAGE, SSEX, SDEPT)
B(BNO, BNAME, BWRI, BPUB, BQTY, BPRI)
SJB(SNO, BNO, BT, ST, QTY, FEE)
学生表S由学生号(SNO),学生名(SNAME),年龄(SAGE),性别(SSEX),系部(SDEPT)组成;
图书表由图书号(BNO),图书名(BNAME),作者(BWRI),出版社(BPUB),数量(BQTY),价格(BPRI)组成;
学生借阅表由学生号(SNO),图书号(BNO),借阅时间(BT),归还时间(HT),借出数量(QTY),欠费情况(FEE)组成。试用关系代数、ALPHA语言、QBE语言完成下列查询并给出结果:
①检索S1学生的借书情况。
②检索计算机系学生的借书情况。
③检索学生李明借的图书的书名和出版社情况。
④检索李明借的数据库原理书欠费情况。
⑤检索至少借了王小川同学所借的所有书的学生号。
⑥检索12月31号归还的图书情况。
⑦检索清华大学出版社出版的30元以下的图书情况。
S1B310/07/20081
S2B209/04/200811/07/200810 S3B409/04/200812/31/20081
S3B306/11/200809/08/200820 S4B209/11/200812/10/200810 S4B109/11/20081
S5B509/06/200812/31/200810 S6B705/14/200805/31/200810 S7B405/27/200809/16/20081
S7B709/18/200810/26/200810 S9B811/21/200812/31/200810 S9B811/27/20081
答案:
①检索S1学生的借书情况。
σSno='S1'(SJB)
②检索计算机系学生的借书情况。
πSNO,BNO,BT,HT,QTY,FEE(σSDEPT='计算机'(SJB ∞S))
③检索学生李明借的图书的书名和出版社情况。
π李明∞SJB∞B)) BNAME BPUB
数据通信南北出版社
数据库大学出版社
人工智能木华出版社
④检索李明借的数据库原理书欠费情况。πFEE (σSNAME='李明'∧BNAME=’数据库’(S ∞SJB∞B))
⑤检索至少借了王小川同学所借的所有书的学生号。
πSNO,BNO ((S ∞SJB)) ÷πBNO (σSNAME='王小川'(S
∞
SJB))
⑥检索12月31号归还的图书情况。
σHT='12/31/2008’(SJB))
⑦检索木华出版社出版的30元以下的图书情况。
σBPUB='木华大学出版社'∧BPRICE <30 (B)
BNO BNAME BWRI BPUB BQTY BPRICE
B6离散数
学吴巳木华出
版社
228
第 3 章关系数据库标准语言SQL
3.1习题P122
A.1
试指出SQL语言中基本表和视图的区别和联系是什么
答案:
虚表,是从一个或几个基本表(或视图)导出的表
只存放视图的定义,不会出现数据冗余
基表中的数据发生变化,从视图中查询
出的数据也随之改变
视图一经定义,就可以和基本表一样被
查询,被删除,但对视图的更新(增加,删除,修改)操作则有一定的限制。
由于视图是虚表,所以SQL对视图不提
供建立索引的语句。
S QL一般也不提供修改视图定义的语句
(有此需要时,只要把原定义删除,重
新定义一个新的即可,这样不影响任何
数据)。
A.2
事务的特性是什么
答案:
事务的ACID特性:
原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持续性(Durability )。
A.3*
已知有三个关系如下,请用SQL语言完成下面各项操作:
图书(总编号, 分类号, 书名, 作者, 出版单位, 单价)
读者(借书证号, 单位, 姓名, 性别, 职称, 地址, 借阅册数)
借阅(借书证号, 总编号, 借书日期)用SQL语句完成以下各项操作。
(1) 创建借阅基本表,同时指定主码和外码。(注:借书证号为字符型,宽度为3;总编号为字符型,宽度为6;借书日期为日期时间型)。
(2) 给读者表增加约束‘性别只能为男或女’。
(3) 为图书表按总编号降序创建唯一索引。
(4) 查找‘清华大学出版社’的所有图书及单价,结果按单价降序排列。
(5) 查找单价在17元以上已借出的图书。
(6) 查找藏书中比‘清华大学出版社’的所有图书单价都高的图书总编号。
(7) 统计藏书中各个出版单位的册数和价值总和,显示册数在5本以上的出版单位、册数和价值总和。
(8) 查找借阅了借书证号为‘006’的读者所借所有图书的读者借书证号、姓名和地址。
(9) 在借阅基本表中插入一条借书证号为‘008’,总编号为‘010206’,借书日期为2000年12月16日的记录。
(10) 将‘高等教育出版社’的图书单价增加5元。
(11) 删除所有作者为‘张三’的图书借阅记录。
(12) 创建‘计算机系’借阅‘清华大学
出版社’图书的读者视图。
(13) 授予张军对借阅表有SELECT的权力,对其中借书日期有更新的权力。
A.4
已知有四个关系如下,请用SQL语言完成下面各项操作:
供应商表S:由供应商代码(SNO)、供应商姓名(SNAME)、供应商所在城市(CITY)组成。
零件表P:由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成。工程项目表J:由工程项目代码(JNO)、工程项目名(JNAME)、所在城市(CITY)组成。
供应情况表SPJ:由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成。
(1) 分别创建上面四个基本表,同时指定主码和外吗。
(2) 检索供应商代码为S1供应商供应的零件号
(3) 检索没有使用天津供应商生产的红色零件的工程号JNO;
(4) 检索出各个工程项目使用的零件数