文档库 最新最全的文档下载
当前位置:文档库 › 数据库原理与应用教程第三版课后答案

数据库原理与应用教程第三版课后答案

数据库原理与应用教程第三版课后答案
数据库原理与应用教程第三版课后答案

习题参考答案

第1 章数据库概述

2.与文件管理相比,数据库管理有哪些优点?

答:将相互关联的数据集成在一起,具有较少的数据冗余,程序与数据相互独立,保证数据的安全可靠,最大限度地保证数据的正确性,数据可以共享并能保证数据的一致性。

3.比较文件管理和数据库管理数据的主要区别。

答:数据库系统与文件系统相比实际上是在应用程序和存储数据的数据库之间增加了一个系统软件,即数据库管理系统,使得以前在应用程序中由开发人员实现的很多繁琐的操作

和功能,都可以由这个系统软件完成,这样应用程序不再需要关心数据的存储方式,而

且数据的存储方式的变化也不再影响应用程序。而在文件系统中,应用程序和数据的存

储是紧密相关的,数据的存储方式的任何变化都会影响到应用程序,因此不利于应用程

序的维护。

4.数据库管理方式中,应用程序是否需要关心数据的存储位置和结构?为什么?

答:不需要。因为在数据库系统中,数据的存储位置以及存储结构保存在数据库管理系统中,从数据到物理存储位置的转换是由数据库管理系统自动完成的。

6.在数据库系统中,应用程序可以不通过数据库管理系统而直接访问数据库文件吗?

答:不能。

7.数据独立性指的是什么?它能带来哪些好处?

答:数据独立性指的是数据的逻辑独立性和物理独立性。逻辑独立性带来的好处是当表达现实世界信息的逻辑结构发生变化时,可以不影响应用程序;物理独立性带来的好处是当

数据的存储结构发生变化时,可以不影响数据的逻辑组织结构,从而也不影响应用程序。8.数据库系统由哪几部分组成,每一部分在数据库系统中的作用大致是什么?

答:数据库系统由三个主要部分组成,即数据库、数据库管理系统和应用程序。数据库是数据的汇集,它以一定的组织形式存于存储介质上;数据库管理系统是管理数据库的系统

软件,它可以实现数据库系统的各种功能;应用程序指以数据库数据为核心的应用程序。9.在文件服务器结构和客户/服务器结构中,对数据的处理有什么区别?

.k

5.在数据库系统中,数据库的作用是什么?

答:在数据库系统中,数据库是存放数据的场所。

1.文件管理方式在管理数据方面有哪些缺陷?

答:编写应用程序不方便,数据冗余不可避免,应用程序依赖性,不支持对文件的并发访问,数据间联系弱,难以按不同用户的愿望表示数据和无安全控制功能。

答:在文件服务器结构中,对数据的处理主要是在客户端完成的。而在客户/服务器结构中,对数据的处理主要是在服务器端完成的。

10.应用在客户/服务器结构上的数据库管理系统是否也同样可以应用在互联网应用结构

中?

答:keyi

第2 章数据库系统结构

1.解释数据模型的概念,为什么要将数据模型分成两个层次?

答:数据模型是对现实世界数据特征的抽象。数据模型一般要满足三个条件:第一是数据模型要能够比较真实地模拟现实世界;第二是数据模型要容易被人们理解;第三是数据模

型要能够很方便地在计算机上实现。由于用一种模型同时很好地满足这三方面的要求在

目前是比较困难的,因此在数据库系统中就可以针对不同的使用对象和应用目的,采用

不同的数据模型。根据模型应用的不同目的,将这些模型分为概念层数据模型和组织层

数据模型两大类,以方便对信息的描述。

2.概念层数据模型和组织层数据模型分别是针对什么进行的抽象?

答:概念层数据模型是对现实世界的抽象,形成信息世界模型,组织层数据模型是对信息世

界进行抽象和转换,形成具体的DBMS 支持的数据组织模型。

3.实体之间的联系有哪几种?请为每一种联系举出一个例子。

答:实体之间的联系有一对一、一对多和多对多三种。例如:系和正系主任是一对一联系(假设一个系只有一名正系主任)系和教师是一对多联系,(假设一名教师只在一个系工作),教师和课程是多对多联系(假设一名教师可以讲授多门课程,一门课程可由多名教师讲授)。

4.说明实体-联系模型中的实体、属性和联系的概念。

答:实体是具有公共性质的并可相互区分的现实世界对象的集合,属性是人们感兴趣的实体

或者联系的性质或特征,联系是数据和数据之间的关联关系。

5.指明下列实体间联系的种类:

(1)教研室和教师(假设一个教师只属于一个教研室,一个教研室可有多名教师)。(2)商店和顾客。

(3)国家和首都。

答:(1)一对多。(2)多对多。(3)一对一。

6.解释关系模型中的主键、外键的概念,并说明主键、外键的作用。

答:主键是关系表中用于惟一地确定一个元组的属性或最小属性组,其作用是使表中的每一

行数据彼此不重复且有意义。

外键是引用另一个表的主键(也可以是候选键)的表中的一个列,其作用是表示两个或

多个实体之间的关联关系。

7.指出关系的主键:教师授课表(教师号,课程号,学年,授课时数)。假设一个教师可

以在同一个学年讲授多门课程,一门课程也可以在同一个学年由多名教师讲授,但一个

教师在一个学年对一门课程只讲授一次,每一次讲授有一个唯一的授课时数。

答:主键:(教师号,课程号,学年)

8.设有如下两个关系模式,试指出每个关系模式的主键、外键,并说明外键的引用关系。

产品表(产品号,产品名称,产品价格,生产日期),其中产品名称有重复。

销售表(产品号,销售时间,销售数量),假设可同时销售多种产品,但同一产品在同

一时间只销售一次。

答:产品表主键:产品号。销售表主键为:(产品号,销售时间)。销售表的“产品号”为引用产品表的外键。

9.关系模型的数据完整性包含哪些内容?分别说明每一种完整性的作用。

答:数据完整性约束主要包括三大类,即实体完整性、参照完整性和用户定义的完整性。实

体完整性是保证关系数据库中所有的表都必须有主键,且主键不允许为空。参照完整性

用于描述实体之间的关联关系。用户定义的完整性实际上是约束关系中属性的取值范

围,即保证数据库中的数据符合现实语义。

10.数据库系统包含哪三级模式?试分别说明每一级模式的作用?

答:数据库系统包含的三级模式为:内模式、模式和外模式。外模式是对现实系统中用户感

兴趣的整体数据结构的局部描述,用于满足不同数据库用户需求的数据视图,是数据库

用户能够看见和使用的局部数据的逻辑结构和特征的描述,是对数据库整体数据结构的

子集或局部重构。模式是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公

共数据视图。内模式是对整个数据库的底层表示,它描述了数据的存储结构。

11.数据库系统的两级映象的功能是什么?它带来了哪些功能?

答:数据库系统的两级映象是模式与内描述间的映象和外模式与模式间的映象。模式/内模式的映象定义了概念视图和存储的数据库的对应关系,它说明了概念层的记录和字段在

内部层次怎样表示。如果数据库的存储结构改变了,那么,必须对模式/内模式的映象

进行必要的调整,使模式能够保持不变。外模式/概念模式间的映象定义了特定的外部

视图和概念视图之间的对应关系,当概念模式的结构可发生改变时,也可以通过调整外

模式/模式间的映象关系,使外模式可以保持不变。

12.数据库三级模式划分的优点是什么?它能带来哪些数据独立性?

答:数据库的三级模式的划分实际上将用户、逻辑数据库与物理数据库进行了划分,使彼此之间的相互干扰减到最少。这三个模式的划分实际上带来了两个数据独立性,即物理独

立性和逻辑独立性。这使得底层的修改和变化尽量不影响到上层。

第3 章SQL语言基础及数据定义功能

1.T-SQL 支持哪几种数据类型?

答:支持数值型、字符型、日期时间型和货币类型四种类型。

4.SmallDatatime 类型精确到哪个时间单位?

答:分钟。

5.定点小数类型numeric 中的p 和q 的含义分别是什么?

答:p 是数字位个数(包括小数位数和整数位数)是小数位数。,q

6.货币数据类型精确到小数点几位?

答:4 位。

8.Char(n)和varchar(n)的区别是什么?其中n 的含义是什么?各占用多少空间?

答:Char(n)是定长存储的字符串类型,varchar(n)是可变长的字符串类型,它按数据的实际

长度来分配空间。其中n 的含义都是能够存储的字符的个数,对于char(n)类型其所占的空间固定为n 个字节;对于varchar(n)其所占空间最多为n 个字节。

9.数据完整性的含义是什么?

答:数据的完整性是为了防止数据库中存在不符合应用语义的数据,为了维护数据的完整性,数据库管理系统提供了一种机制来检查数据库中的数据,看其是否满足语义规定的条

件。这些加在数据库数据之上的语义约束条件就是数据完整性约束条件。

10.在对数据进行什么操作时,系统检查DEFAULT 约束?在进行什么操作时,检查CHECK 约束?

答:在进行插入操作时检查DEFAULT 约束。在进行插入和更新操作时检查CHECK 约束。11.UNIQUE 约束的作用是什么?

答:UNIQUE 约束的作用是保证数据的取值不重复。

5

7.Char(10)、nchar(10)的区别是什么?它们各能存放多少个字符?占用多少空间?

答:两者使用的编码方式不同,char 类型是单字节编码方式,而且不同的字符使用的编码方不同;而nchar 是双字节编码方式。Char(10)可以存放10 个字符,占10 个字节;nchar(10) 也是可以存放10 个字符,但它占20 个字节空间。

3.日期时间类型中的日期和时间的输入格式是什么?

答:一般来说年、月、日中间用“/”或“-”分隔符分隔,时间中的时、分、秒用“:分”隔,毫秒与秒之间用“.”分隔。日期和时间中间用空格分隔,且日期和时间均括在单引

号中。

2.Tinyint 数据类型定义的数据的取值范围是多少?

答:0~255。

12.写出创建如下三张表的SQL 语句,要求在定义表的同时定义数据的完整性约束:(1)“图书表”结构如下:

书号:统一字符编码定长类型,长度为6,主键;

书名:统一字符编码可变长类型,长度为30,非空;

第一作者:普通编码定长字符类型,长度为10,非空;

出版日期:小日期时间型;

价格:定点小数,小数部分1 位,整数部分3 位。

(2)“书店表”结构如下:

书店编号:统一字符编码定长类型,长度为6,主键;

店名:统一字符编码可变长类型,长度为30,非空;

电话:普通编码定长字符类型,8 位长,每一位的取值均是0~9 的数字;

地址:普通编码可变长字符类型,40 位长。

邮政编码:普通编码定长字符类型,6 位长。

(3)“图书销售表”结构如下:

书号:统一字符编码定长类型,长度为6,非空;

书店编号:统一字符编码定长类型,长度为6,非空;

销售日期:小日期时间型,非空;

销售数量:小整型,大于等于1。

主键为(书号,书店编号,销售日期);

其中“书号”为引用“图书表”的“书号”的外键;

“书店编号”为引用“书店表”的“书店编号”的外键。

答:

CREATE TABLE 图书表(

书号nchar(6) primary key,

书名nvarchar(30) not null,

第一作者char(10) not null,

出版日期smalldatetime,

价格numeric(4,1))

CREATE TABLE 书店表(

书店编号nchar(6) primary key,

店名nvarchar(30) not null,

电话char(8) check (电话like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),

地址varchar(40),

邮政编码char(6))

CREATE TABLE 图书销售表(

书号nchar(6) not null,

书店编号nchar(6) not null,

销售日期smalldatetime not null,

销售数量smallint check(销售数量>=1),

primary key(书号,书店编号,销售日期),

foreign key(书号) references 图书表(书号),

foreign key(书店编号) references 书店表(书店编号))

13.为第12 题的图书表添加“印刷数量”列,类型为整数,同时添加约束,要求此列的取值要大于等于1000。

答:ALTER TABLE 图书表

ADD 印刷数量int check (印刷数量>=1000)

14.删除第12 题的“书店表”中的“邮政编码”列。

答:ALTER TABLE 书店表

DROP COLUMN 邮政编码

16.索引的作用是什么?分为哪几种类型?

答:索引的作用是为了加快数据的查询速度。索引分为聚集索引和非聚集索引两种。17.在一个表上可以创建几个聚集索引?可以创建多个非聚集索引吗?

答:在一个表上只能创建一个聚集索引。可以创建多个非聚集索引。

18.聚集索引一定是唯一索引,对吗?反之呢?

答:不对。唯一索引可以是聚集的也可以是非聚集的。

19.在建立聚集索引时,系统是真正将数据按聚集索引列进行物理排序,对吗?在建立非聚集索引时呢?情况又如何?

答:对。但在建立非聚集索引时,系统并不物理地调整数据的排列顺序。

20.在第12 题的图书表的“第一作者”列上建立一个非聚集索引。

答:CREATE INDEX indAuthor ON 图书表(第一作者)

21.在第12 题的书店表的“电话”列上建立一个聚集的唯一索引。

答:CREATE UNIQUE CLUSTERED INDEX indPhone

ON 书店表(电话)

22.在第12 题的图书销售表的“书号”和“销售日期”两个列上建立一个非聚集索引。答:CREATE INDEX indSale ON 图书销售表(书号, 销售日期)

7.

15.将第12 题的“图书销售表”中的“销售数量”列的数据类型改为整型。

答:ALTER TABLE 图书销售表

ALTER COLUMN 销售数量int

第4 章数据操作

1.查询SC 表中的全部数据。

答:select * from SC

4.查询计算机系年龄在18~20 岁的男学生的姓名和年龄。

答:select sname,sage from student

where sdept = '计算机系' and sage between 18 and 20 and ssex = '男'

5.查询C001 课程的最高分。

答:select max(grade) from sc where cno = 'C001'

6.查询计算机系学生的最大年龄和最小年龄。

答:select max(sage) as max_age, min(sage) as min_age from student

where sdept = '计算机系'

7.统计每个系的学生人数。

答:select sdept,count(*) from student group by sdept

9.统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果。

答:select sno,count(*), sum(grade) from sc group by sno order by count(*) asc

10.查询总成绩超过200 分的学生,要求列出学号和总成绩。

答:select sno,sum(grade) from sc group by sno having sum(grade) > 200

11.查询选修C002 课程的学生的姓名和所在系。

相关文档