logo资料库

数据库原理及应用教程第三版答案.pdf

第1页 / 共27页
第2页 / 共27页
第3页 / 共27页
第4页 / 共27页
第5页 / 共27页
第6页 / 共27页
第7页 / 共27页
第8页 / 共27页
资料共27页,剩余部分请下载后查看
习题参考答案
第1章 数据库概述
第 2 章 数据库系统结构
第 3 章 SQL语言基础及数据定义功能
第4章 数据操作
第 5 章 关系数据库规范化理论
第6章 数据库设计
第7章 数据库保护
第8章 SQL Server 2000基础
第9章 数据库及数据库对象的创建与管理
第10章 安全管理
第11章 备份和恢复数据库
第12章Visual Basic开发环境及数据访问接口
第13章 ADO数据控件与数据窗体向导
第14章ADO对象编程
习题参考答案 第 1 章 数据库概述 1. 文件管理方式在管理数据方面有哪些缺陷? 答:编写应用程序不方便,数据冗余不可避免,应用程序依赖性,不支持对文件的并发访问, 数据间联系弱,难以按不同用户的愿望表示数据和无安全控制功能。 2.与文件管理相比,数据库管理有哪些优点? 答:将相互关联的数据集成在一起,具有较少的数据冗余,程序与数据相互独立,保证数据 的安全可靠,最大限度地保证数据的正确性,数据可以共享并能保证数据的一致性。 3.比较文件管理和数据库管理数据的主要区别。 答:数据库系统与文件系统相比实际上是在应用程序和存储数据的数据库之间增加了一个系 统软件,即数据库管理系统,使得以前在应用程序中由开发人员实现的很多繁琐的操作 和功能,都可以由这个系统软件完成,这样应用程序不再需要关心数据的存储方式,而 且数据的存储方式的变化也不再影响应用程序。而在文件系统中,应用程序和数据的存 储是紧密相关的,数据的存储方式的任何变化都会影响到应用程序,因此不利于应用程 序的维护。 4.数据库管理方式中,应用程序是否需要关心数据的存储位置和结构?为什么? 答:不需要。因为在数据库系统中,数据的存储位置以及存储结构保存在数据库管理系统中, 从数据到物理存储位置的转换是由数据库管理系统自动完成的。 5.在数据库系统中,数据库的作用是什么? 答:在数据库系统中,数据库是存放数据的场所。 6.在数据库系统中,应用程序可以不通过数据库管理系统而直接访问数据库文件吗? 答:不能。 7.数据独立性指的是什么?它能带来哪些好处? 答:数据独立性指的是数据的逻辑独立性和物理独立性。逻辑独立性带来的好处是当表达现 实世界信息的逻辑结构发生变化时,可以不影响应用程序;物理独立性带来的好处是当 数据的存储结构发生变化时,可以不影响数据的逻辑组织结构,从而也不影响应用程序。 8.数据库系统由哪几部分组成,每一部分在数据库系统中的作用大致是什么? 答:数据库系统由三个主要部分组成,即数据库、数据库管理系统和应用程序。数据库是数 据的汇集,它以一定的组织形式存于存储介质上;数据库管理系统是管理数据库的系统 软件,它可以实现数据库系统的各种功能;应用程序指以数据库数据为核心的应用程序。 9.在文件服务器结构和客户/服务器结构中,对数据的处理有什么区别? 1
答:在文件服务器结构中,对数据的处理主要是在客户端完成的。而在客户/服务器结构中, 对数据的处理主要是在服务器端完成的。 10.应用在客户/服务器结构上的数据库管理系统是否也同样可以应用在互联网应用结构 中? 答:可以。 2
第 2 章 数据库系统结构 1. 解释数据模型的概念,为什么要将数据模型分成两个层次? 答:数据模型是对现实世界数据特征的抽象。数据模型一般要满足三个条件:第一是数据模 型要能够比较真实地模拟现实世界;第二是数据模型要容易被人们理解;第三是数据模 型要能够很方便地在计算机上实现。由于用一种模型同时很好地满足这三方面的要求在 目前是比较困难的,因此在数据库系统中就可以针对不同的使用对象和应用目的,采用 不同的数据模型。根据模型应用的不同目的,将这些模型分为概念层数据模型和组织层 数据模型两大类,以方便对信息的描述。 2. 概念层数据模型和组织层数据模型分别是针对什么进行的抽象? 答:概念层数据模型是对现实世界的抽象,形成信息世界模型,组织层数据模型是对信息世 界进行抽象和转换,形成具体的 DBMS 支持的数据组织模型。 3. 实体之间的联系有哪几种?请为每一种联系举出一个例子。 答:实体之间的联系有一对一、一对多和多对多三种。例如:系和正系主任是一对一联系(假 设一个系只有一名正系主任),系和教师是一对多联系(假设一名教师只在一个系工作), 教师和课程是多对多联系(假设一名教师可以讲授多门课程,一门课程可由多名教师讲 授)。 4. 说明实体-联系模型中的实体、属性和联系的概念。 答:实体是具有公共性质的并可相互区分的现实世界对象的集合,属性是人们感兴趣的实体 或者联系的性质或特征,联系是数据和数据之间的关联关系。 5. 指明下列实体间联系的种类: (1)教研室和教师(假设一个教师只属于一个教研室,一个教研室可有多名教师)。 (2)商店和顾客。 (3)国家和首都。 答:(1)一对多。(2)多对多。(3)一对一。 6. 解释关系模型中的主键、外键的概念,并说明主键、外键的作用。 答:主键是关系表中用于惟一地确定一个元组的属性或最小属性组,其作用是使表中的每一 行数据彼此不重复且有意义。 外键是引用另一个表的主键(也可以是候选键)的表中的一个列,其作用是表示两个或 多个实体之间的关联关系。 7. 指出关系的主键:教师授课表(教师号,课程号,学年,授课时数)。假设一个教师可 以在同一个学年讲授多门课程,一门课程也可以在同一个学年由多名教师讲授,但一个 教师在一个学年对一门课程只讲授一次,每一次讲授有一个唯一的授课时数。 答:主键:(教师号,课程号,学年) 8. 设有如下两个关系模式,试指出每个关系模式的主键、外键,并说明外键的引用关系。 产品表(产品号,产品名称,产品价格,生产日期),其中产品名称有重复。 3
销售表(产品号,销售时间,销售数量),假设可同时销售多种产品,但同一产品在同 一时间只销售一次。 答:产品表主键:产品号。销售表主键为:(产品号,销售时间)。销售表的“产品号”为引 用产品表的外键。 9.关系模型的数据完整性包含哪些内容?分别说明每一种完整性的作用。 答:数据完整性约束主要包括三大类,即实体完整性、参照完整性和用户定义的完整性。实 体完整性是保证关系数据库中所有的表都必须有主键,且主键不允许为空。参照完整性 用于描述实体之间的关联关系。用户定义的完整性实际上是约束关系中属性的取值范 围,即保证数据库中的数据符合现实语义。 10.数据库系统包含哪三级模式?试分别说明每一级模式的作用? 答:数据库系统包含的三级模式为:内模式、模式和外模式。外模式是对现实系统中用户感 兴趣的整体数据结构的局部描述,用于满足不同数据库用户需求的数据视图,是数据库 用户能够看见和使用的局部数据的逻辑结构和特征的描述,是对数据库整体数据结构的 子集或局部重构。模式是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公 共数据视图。内模式是对整个数据库的底层表示,它描述了数据的存储结构。 11.数据库系统的两级映象的功能是什么?它带来了哪些功能? 答:数据库系统的两级映象是模式与内描述间的映象和外模式与模式间的映象。模式/内模 式的映象定义了概念视图和存储的数据库的对应关系,它说明了概念层的记录和字段在 内部层次怎样表示。如果数据库的存储结构改变了,那么,必须对模式/内模式的映象 进行必要的调整,使模式能够保持不变。外模式/概念模式间的映象定义了特定的外部 视图和概念视图之间的对应关系,当概念模式的结构可发生改变时,也可以通过调整外 模式/模式间的映象关系,使外模式可以保持不变。 12.数据库三级模式划分的优点是什么?它能带来哪些数据独立性? 答:数据库的三级模式的划分实际上将用户、逻辑数据库与物理数据库进行了划分,使彼此 之间的相互干扰减到最少。这三个模式的划分实际上带来了两个数据独立性,即物理独 立性和逻辑独立性。这使得底层的修改和变化尽量不影响到上层。 4
第 3 章 SQL语言基础及数据定义功能 1. T-SQL 支持哪几种数据类型? 答:支持数值型、字符型、日期时间型和货币类型四种类型。 2. Tinyint 数据类型定义的数据的取值范围是多少? 答:0~255。 3. 日期时间类型中的日期和时间的输入格式是什么? 答:一般来说年、月、日中间用“/”或“-”分隔符分隔,时间中的时、分、秒用“:” 分 隔,毫秒与秒之间用“.”分隔。日期和时间中间用空格分隔,且日期和时间均括在单引 号中。 4. SmallDatatime 类型精确到哪个时间单位? 答:分钟。 5. 定点小数类型 numeric 中的 p 和 q 的含义分别是什么? 答:p 是数字位个数(包括小数位数和整数位数),q 是小数位数。 6. 货币数据类型精确到小数点几位? 答:4 位。 7. Char(10)、nchar(10)的区别是什么?它们各能存放多少个字符?占用多少空间? 答:两者使用的编码方式不同,char 类型是单字节编码方式,而且不同的字符使用的编码方 不同;而 nchar 是双字节编码方式。Char(10)可以存放 10 个字符,占 10 个字节;nchar(10) 也是可以存放 10 个字符,但它占 20 个字节空间。 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
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 书店表(书店编号)) 6
13.为第 12 题的图书表添加“印刷数量”列,类型为整数,同时添加约束,要求此列的取 值要大于等于 1000。 答:ALTER TABLE 图书表 ADD 印刷数量 int check (印刷数量>=1000) 14.删除第 12 题的“书店表”中的“邮政编码”列。 答:ALTER TABLE 书店表 DROP COLUMN 邮政编码 ALTER COLUMN 销售数量 int 15.将第 12 题的“图书销售表”中的“销售数量”列的数据类型改为整型。 答:ALTER TABLE 图书销售表 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
第 4 章 数据操作 1.查询 SC 表中的全部数据。 答:select * from SC 2.查询计算机系学生的姓名和年龄。 答:select sname,sage from student where sdept = '计算机系' 3.查询成绩在 70~80 分的学生的学号、课程号和成绩。 答:select sno,cno,grade from sc on where grade between 70 and 80 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 8.统计每门课程的选课人数和考试最高分。 答:select cno,count(*),max(grade) from sc group by cno 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 课程的学生的姓名和所在系。 答:select sname,sdept from student s join sc on s.sno = sc.sno where cno = ' C002' 12.查询成绩 80 分以上的学生的姓名、课程号和成绩,并按成绩降序排列结果。 答:select sname,cno,grade from student s join sc on s.sno = sc.sno where grade > 80 order by grade desc 13.查询哪些课程没有学生选修,要求列出课程号和课程名。 8
分享到:
收藏