(完整版)数据库原理及其应用教程课后答案

(完整版)数据库原理及其应用教程课后答案
(完整版)数据库原理及其应用教程课后答案

第一章

1.2.从程序和数据之间的关系分析文件系统和数据库系统之间的区别和联系?

(1)文件系统与数据库系统之间的区别

文件系统用文件将数据长期保存在外存上,数据库系统则用数据库统一存储数据;文件系统中程序和数据有一定的联系,二数据库系统中程序和数据分离;文件系统用操作系统中的存取方法对数据进行管理,数据库系统则用DBMS 统一管理和控制数据;文件系统实现以文件为单位的数据共享,二数据库系统实现以记录和字段为单位的数据共享。

(2)文件系统和数据库系统之间的联系

均为数据组织的管理技术;均由数据管理软件管理数据,程序与数据之间用存取方法进行转换;数据库系统是在文件系统的基础上发展起来的。

1.8.什么是数据库的数据独立性?它包含了哪些内容? 物理独立性?

所谓数据的独立性是指数据库中的数据与应用程序间相互独立,即数据的逻辑结构、存储结构以及存取方式的改变不影响应用程序。

数据独立性分两级:物理独立性和逻辑独立性

物理独立性是指当数据的物理结构改变时,通过修改映射,使数据库整体逻辑结构不受影响,进而用户的逻辑结构以及应用程序不用改变。

逻辑独立性是指当数据库的整体逻辑结构发生改变时,通过修改映射,使用户的逻辑结构以及应用程序不用改变。

1.11.解释实体、属性、实体键、实体集、实体型、实体联系类型、记录、数据项、字段、记录型、文件、实体模型、数据模型的含义。

实体:客观存在并且可以相互区别的“事物”称为实体。

属性:实体所具有的某一特性称为属性。

实体键:在实体型中,能唯一标识一个实体的属性或属性集称为实体的键。

实体集:同型实体的集合称为实体集。

实体型:具有相同属性的实体必然具有共同的特征,所以,用实体名及其属性名来抽象和描述同类实体,称为实体

型。

实体联系类型:一对一联系(1:1);一对多联系(1:n);多对多联系(m:n)

记录:(record)字段的有序集合称为记录。

数据项:标记实体属性的命名单位称为字段,也称为数据项。

字段:标记实体属性的命名单位称为字段,也称为数据项。

文件:同一类记录的集合称为文件。文件是用来描述实体集的。

数据模型:数据模型是数据库的框架,该框架描述了数据及其联系的组织方式、表达方式和存储路径,它是数据库

系统的核心和基础,各种机器上实现的DBMS软件都是基于某种数据模型,它的数据结构直接影响到数据库系统的其它部分的性能,也是数据定义和数据库操作语言的基础。

1.14.解释模式、内模式、外模式、DDL、DML的含义。

模式:也称逻辑模式、概念模式,是数据库中全体数据的逻辑结构和特征的描述。

外模式:又称子模式和用户模式,外模式是三级结构的最外层,它是数据库用户能看到并允许使用的那部分局部数据的逻辑结构和特征描述,是与某一应用有关的逻辑表示,也是数据库用户的数据视图,即用户视图。

内模式:又称存储模式,是三级结构中的最内层,是对数据库存储结构的描述,是数据在数据库内部的表达方式。DDL:数据定义语言,定义数据的模式、外模式和内模式三级模式结构,定义模式/内模式和外模式/模式二级映像,定义有关的约束条件。

DML:数据操作语言,实现对数据库的基本操作,包括检索、更新(包括:插入、修改、删除)等。

2. 举例说明什么是实体完整性和参照完整性。

◆实体完整性是指主关系键的值不能为空或部分为空。

●学生关系中的主关系键“学号”不能为空

●选课关系中的主关系键“学号+课程号”不能部分为空,即“学号”和“课程号”两个属性都不能为空

◆参照完整性是指如果关系R2的外部关系键X与关系R1的主关系键相符,则X的每个值或者等于R1中主关

系键的某一个值,或者取空值。

●学生关系的“系别”是外部关系键,与系别关系的主关系键“系别”相对应。则学生关系中某个学生“系别”的取值

或为“空”,否则必须在参照的系别关系中主关系键“系别”的值中能够找到。

5.解释下列概念:笛卡尔积、关系、同类关系、关系头、关系体、属性、元组、域、关系健、候选健、主键、外部键、关系模式、关系数据库模式、关系数据库、关系数据库的型与值。

笛卡尔积:实际是一个二维表,表的框架由域构成,表的任意一行就是一个元组,表的每一列来自同一个域。

关系:笛卡尔积D1*D2*….Dn的任意子集称为定义在域D1,D2,…,Dn上的n元关系。

同类关系:具有相同关系框架的关系称为同类关系。

关系头:关系头是由属性名A1,A2,…,An的集合组成,每个属性Ai对应一个域Di(i=1,2,…,n)。关系头(关系框架)是由关系的数据结构的描述,它是固定不变的。

关系体:是指关系结构中的内容或者数据,它随元组的建立、删除或修改而变化。

属性:由于域可以笛卡尔积、关系、同类关系、关系头、关系头、属性、元组、域、关系健、候选健、主键据库、关系数据库的型与值相同,为了加以区别,必须对每列起一个名字,称为属性。

元组:每一个元素(d1,d2,d3…,dn)叫做一个n元组,简称元组。

域:域是一组具有相同数据类型的值的集合,又称为值域(用D表示)。

关系健:如果一个关系中有多个候选键,可以从中选一个作为查询、插入或删除元组的操作变量,被选用的候选键

称为主关系键,或主键、关系键。

候选健:能惟一标识关系中元组的一个属性或属性集,称为候选健。

主键:如果一个关系中有多个候选键,可以从中选一个作为查询、插入或删除元组的操作变量,被选用的候选键称为主关系键,或主键、关系键。

外部键:如果关系R2的一个或一组属性X不是R2的主码,而是另一关系的R1的主码,则该属性或属性组X称为关系R2的外部关系键或外码,并称关系R2为参照关系,关系R1为被参照关系。

关系模式:关系模式是对关系的描述。

关系数据库模式:关系数据库的型称为关系数据库模式,是对关系数据库的描述,它包括若干域的定义以及在这些域上定义的若干关系模式。关系数据库模式是对关系数据库结构的描述,或者说是对关系数据库框架的描述。

关系数据库:在一个给定的应用领域中,所有实体以及实体之间联系所对应的关系的集合构成一个关系数据库。关系数据库的型与值:关系数据库的型称为关系数据库模式,是对关系数据库的描述,它包括若干域的定义以

及在这些域上定义的若干关系模式。关系数据库模式是对关系数据库结构的描述,或者说是对关系数据库框架的描述。而关系数据库的值也称为关系数据库,是这些关系模式在某一时刻对应的关系的集合。也就是说,与关系数据库模式对应的数据库中的当前值就是关系数据库的内容,称为关系数据库的实例。

6. 已知关系R,S,T如图2-12所示,求下列关系代数的运算结果:

第二章

2. 假设有一个书店,书店的管理者要对书店的经营状况进行管理,需要建立一个数据库,其中包括两个表:

存书(书号,书名,出版社,版次,出版日期,作者,书价,进价,数量)

销售(日期,书号,数量,金额)

请用SQL实现书店管理者的下列要求:

(1)建立存书表和销售表;

(2)掌握书的库存情况,列出当前库存的所有书名、数量、余额(余额=进价×数量,即库存占用的资金);

(3)统计总销售额;

(4)列出每天的销售报表,包括书名、数量和合计金额(每一种书的销售总额);

(5)分析畅销书,即列出本期(从当前日期起,向前30天)销售数量大于100的书名、数量。

(1)建立存书表和销售表

Book (ISBN, title, publisher, edition, publication date, author, book price, purchase price, quantity) CREATE TABLE Book

(ISBN CHAR(17) PRIMARY KEY,

Title VARCHAR(50) NOT NULL,

Publisher VARCHAR(50) ,

Edition CHAR(2),

P_date CHAR(10),

Author CHAR(8),

B_price MONEY,

P_price MONEY,

B_Quantity INT CHECK Quantity>=0)

(1)建立存书表和销售表;

Sales (date, ISBN, quantity, amount)

CREATE TABLE Sales

(SNo CHAR(12) PRIMARY KEY,

S_date DATATIME,

ISBN CHAR(17) NOT NULL,

S_quantity INT,

S_amount MONEY)

(2)掌握书的库存情况,列出当前库存的所有书名、数量、余额(余额=进价×数量,即库存占用的资金);

SELECT Title, B_Quantity , P_price × B_Quantity AS Balance

FROM Book

(3)统计总销售额;

SELECT SUM(S_amount ) AS Amount

(4)列出每天的销售报表,包括书名、数量和合计金额(每一种书的销售总额);

SELECT S_date, Title, SUM(S_quantity ) AS Quantity , SUM(S_amount ) AS Amount

FROM Book, Sales

WHERE Sales.ISBN=Book.ISBN

GROUP BY S_data, Title

(5)分析畅销书,即列出本期(从当前日期起,向前30天)销售数量大于100的书名、数量。

SELECT Title SUM(S_quantity) AS Quantity

FROM Book, Sales

WHERE Sales.ISBN=Book.ISBN AND (S_date BETWEEN GETDATE( )-30 AND GETDATE( ))

GROUP BY Title HAVING SUM(S_quantity)>100

ORDER BY SUM(S_quantity) DESC

四、简答题。

1.简述SQL支持的三级逻辑结构。

SQL语言支持关系数据库三级模式结构,如图3.1所示。其中外模式对应于视图(View)和部分基本表(Base Table),模式对应于基本表,内模式对应于存储文件。

图3.1数据库三级模式结构

2.SQL有什么特点?

(1)SQL类似英语的自然语言,简洁实用。

(2)SQL是一种非过程语言。

(3)SQL是一种面向集合的语言。

(4)SQL即是一种自含式语言,又是嵌入式语言;可独立使用,也可嵌入宿主语言中。

(5)SQL具有数据查询、数据定义、数据操作和数据控制四种功能。

3.解释:基本表、视图、索引、系统权限、对象权限、角色,并说明视图、索引、角色的作用。

基本表:一个关系对应一个基本表。基本表是独立存在的表,不是由其它的表导出的表。一个或多个基本表对应一个存储文件。

视图:视图是从一个或几个基本表导出的表,是一个虚拟的表。在用户看来,视图是通过不同路径去看一个实际表,就像一个窗口一样,我们可以通过其去看我们想看的高楼的不同部分。

索引:索引是数据库随即检索的常用手段,它实际上就是记录的关键字与其相应地址的对应表。可加快查询速度;保证行的唯一性。

系统权限:是指数据库用户能够对数据库系统进行某种特定的操作的权利。如创建一个表(CREATE TABLE)

对象权限:是指数据库用户在指定的数据库对象上进行某种特定的操作的权利。如查询(SELECT)、添加(INSERT)、修改(UPDATE)和删除(DELETE)等操作。

角色:角色是多种权限的集合,可以把角色授予用户或其他角色。

4.在对数据库进行操作的进程中,设置视图机制有什么优点?它与数据表间有什么区

别?

1)在关系数据库系统中,视图为用户提供了多种看待数据库数据的方法与途径,是关系数据库系统中的一种重要对象。其优点有:(1)视图能够简化用户的操作;(2)视图使用户能以多种角度看待同一数据;(3)增加了数据的安全性;(4)视图对重构数据库提供了一定程度的逻辑独立性。

2)视图在概念上与基本表等同,一经定义,就可以和基本表一样被查询、被删除,我们也可以在一个视图上再定义新的视图,但对视图的更新(插入、删除、修改)操作相对于数据表来说,则有一定的限制。即有些视图逻辑上是肯定不能修改的。

(1)用SQL的DDL语言创建S表,S#为主键,SN不能为空。

(2)创建计算机系学生的视图,该视图的属性列由学号、姓名、课程号和任课教师号组成。

(3)检索计算机系年龄在20岁以上的学生学号。

(4)检索姓王的教师所讲课程的课程号及课程名称。

(5)检索张三同学所学课程的成绩,列出SN、C#、GR。

(6)检索选修总收入超过1000元的教师所讲课程的学生姓名、课程号和成绩。

(7)检索没有选修C1课程且选修课程数为两门的学生的姓名和平均成绩,并按平均成绩降序排列。

(8)检索选修和张三同学所选修课程中任意一门相同的学生姓名,课程名。

(9)S1同学选修了C3,将此信息插入SC表中。

(10)删除S表中没有选修任何课程的学生记录。

答: (1)用SQL的DDL语言创建S表,S#为主键,SN不能为空。

CREATE TABLE S

( S# CHAR(6) CONSTRAINT S_Prim PRIMARY KEY,

SN CHAR(8) CONSTRAINT SN_CONT NOY NULL,

AGE INT,

DEPT VARCHAR(20))

(2)创建计算机系学生的视图,该视图的属性列由学号、姓名、课程号和任课教师号组成。

CREATE VIEW S_SC_T (S#,SN,C#,T#)

AS SELECT S.S#, SN, SC.C#, T#

FROM S, SC, T

WHERE S.S#=SC.S# AND SC.C#=T.C#

(3)检索计算机系年龄在20岁以上的学生学号。

ΠS#(σ(DEPT=‘计算机’ AND AGE ≥20)(S)

SELECT S#

FROM S

WHERE DEPT=‘计算机’ AND AGE ≥20

(4)检索姓王的教师所讲课程的课程号及课程名称。

ΠC#,CN(σ(TN=‘王%’)(T*C)

SELECT T.C# C#, CN

FROM T,C

WHERE T.C#=C.C# AND TN LIKE ‘王%’

(5)检索张三同学所学课程的成绩,列出SN、C#、GR。

ΠSN,C#,GR(σ(SN=‘张三’)(S*SC)

SELECT SN,C#,GR FROM S,SC

WHERE SN=‘张三’ AND S.S#=SC.S#

(6)检索选修总收入超过1000元的教师所讲课程的学生姓名、课程号和成绩。

ΠSN,C#,GR(ΠC#(σ(SAL+COMM)>1000(T))*S*SC)

SELECT SN,SC.C# C#,GR

FROM S,SC,T

WHERE (SAL+COMM)>1000

AND S.S#=SC.S# AND SC.C#=T.C#

(7)检索没有选修C1课程且选修课程数为两门的学生的姓名和平均成绩,并按平均成绩降序排列。

SELECT * INTO S_Temp

FROM S

WHERE ‘C1’ NOT IN (SELECT C# FROM SC WHERE S#=S.S#)

SELECT SN, AVG(GR) AS AVG

FROM S_Temp JOIN SC ON S_Temp.S#=SC.S#

GROUP BY S_Temp.S# HAVING COUNT(*)=2

ORDER BY AVG(GR) DESC

(8)检索选修和张三同学所选修课程中任意一门相同的学生姓名,课程名。

ΠSN,CN (S*SC(ΠC#,CN(σSN=‘张三’(S) *SC*C))

SELECT SN, CN

FROM S,SC,C

WHERE S.S# = SC.S# AND SC.C# = C.C# AND

SC.C# IN (SELECT C#

FROM S,SC

WHERE S.S# = SC.S# AND SN=‘张三’)

(9)S1同学选修了C3,将此信息插入SC表中。

INSERT INTO SC (S#,C#)

VALUES (‘S1’, ‘C3’)

(10)删除S表中没有选修任何课程的学生记录。

DELETE

FROM S

WHERE S# NOT IN (SELECT DISTINCT S# FROM SC)

第四章

三.简答题

1.解释下列术语:函数依赖、平凡函数依赖、非平凡函数依赖、部分函数依赖、完全函数依赖、传递函数依赖、范式。

函数依赖:是关系模式中属性之间的一种逻辑依赖关系。

平凡函数依赖:当属性集Y是属性集X的子集(即Y X)时。则必然存在着函数依赖X→Y,这种类型的函数依

赖称为平凡的函数依赖。 非平凡函数依赖:如Y 不是X 的子集,则称X →Y 为非平凡的函数依赖。

部分函数依赖:设有关系模式R(U),U 是属性全集,X 和Y 是U 的子集,如果X →Y ,并且对于X 的某一个真子集X ’,有X ’ →Y ,则称Y 对X 完全函数依赖,记做Xp →Y 。

完全函数依赖:设有关系模式R(U),U 是属性全集,X 和Y 是U 的子集,如果X →Y ,并且对于X 的任何一个真子集X ’,都没有X ’ →Y ,则称Y 对X 完全函数依赖,记做Xf →Y 。

传递函数依赖:P144

范式:(NF)是模式分解的标准。

2.给出2NF ,3NF ,BCNF 的形式化定义,并说明它们之间的区别和联系。

1NF :第一范式是最基本的规范形式,即关系中每个属性都是不可再分的简单项。

2NF :如果关系模式R ∈1NF ,且每个非主属性都完全依赖于R 的主关系键,则称R 属于第二范式,简称2NF ,记做R ∈2NF 。

BCNF :如果关系模式R ∈1NF ,且所有函数依赖X →Y (Y ≮X )(≮不属于),决定因素x 都包含了R 一个候选键,则称R 属于BC 范式,记作R ∈BCNF 。

第六章三.1一个图书管理系统中有如下信息:

图书:书号、书名、数量、位置

借书人:借书证号、姓名、单位

出版社:出版社名、邮编、地址、电话、E-mail

其中约定:任何人可以借多种书,任何一种书可以被多人借,借书和还书时,要登记相应的借书日期和还书日期;一个出版社可以出版多种书籍,同一本书仅为一个出版社出版,出版社名有唯一性。完成设计:

(1) 设计该系统的E-R 图;

(2) 将E-R 图转换为关系模式;

(3) 指出转换后的每个关系模式的关系键。

E-mail

1

(1)

(2)关系模式:

借书人(借书证号,姓名,单位)

图书(书号,书名,数量,位置)

出版社(出版社名,邮编,地址,电话,E-mail)

借阅(借书证号,书号,借书日期,还书日期)

(3)带下划线的属性(组)为关系键

四.简答题:

1.数据库设计分为哪几个阶段?每个阶段的主要工作是什么?

1)需求分析,是基础,要收集数据库用户的信息内容和处理要求,加以规格化和分析。

2)概念结构设计阶段,把用户的信息要求统一到一个整体逻辑结构中。

3)逻辑结构设计阶段,将上一步所得到的概念模型转换为某个DBMS所支持的数据模型,并对其优化。4)物理结构设计阶段,是为逻辑数据模型建立一个完整的能实现的数据库结构,包括存储结构和存储方法。5)数据库实施阶段,根据物理结构设计的结果把原始数据装入数据库,建立一个具体的数据库并编写和调试相应的应用程序。

6)数据库运行和维护阶段,收集和记录实际系统运行的数据。

相关文档
最新文档