当前位置:文档之家› 数据库应用与设计 (清华大学出版社)参考答案

数据库应用与设计 (清华大学出版社)参考答案

《数据库应用与设计》习题参考答案第1章习题参考答案1、答案:数据库是长期储存在计算机设备上、相互关联的、可以被用户共享的数据集合。

2、答案:数据库中的数据共享带来如下好处:低冗余,保证数据的一致性,易于扩充。

但是数据库中的数据共享可能会引起并发访问的冲突,这就需要采用并发控制来避免。

3、答案:因为概念数据模型可以真实地反映现实世界,被人们所理解。

它是创建数据模型的第一个阶段。

4、答案:5、答案:因为多对多联系是一类比较复杂的联系,一般数据库管理系统也不直接支持多对多联系(需要付出更大的代价),所以多对多联系通常需要转换成一对多联系的。

6、答案:存储数据独立性指当改变存储文件的组织方式或存储结构时,应用程序无需修改。

概念数据独立性指当概念文件的结构发生变化时,应用程序无需修改。

这两种数据独立性是通过三层结构获得的。

在三层结构的方案中,CONCEPTUAL-ROUTINE保证了概念数据的独立性,而STORAGE-ROUTINE则保证了存储数据独立性。

7、答案:数据库模式是用数据描述语言对数据库结构的每一层的框架及结构进行的精确定义。

数据库模式分为存储模式(内模式)、概念模式(模式)、外部模式(子模式)。

存储模式(内模式)定义了存储数据库结构,概念模式(模式)定义了概念数据库结构,外部模式(子模式)定义了外部数据库结构。

8、答案:用户程序通过DBMS修改一条记录时所发生的一系列事件如下:(1)用户程序A向DBMS发出修改一条记录的指令,这时,用户程序要给出外部文件名、记录的关键字值和要修改的信息。

(2)DBCS分析所接到的指令,访问对应的外部模式。

(3)DBCS完成外部模式到概念模式的转换,决定访问哪个(些)概念文件。

(4)由DBSS完成概念模式到存储模式的转换,并决定访问哪个(些)存储文件。

(5)DBSS调用修改方法,通过操作系统修改相应的存储文件。

(6)用户程序从系统缓冲区中获得DBMS返回的状态信息。

第2章习题参考答案1、答案:(1)学生关系(学号、姓名、性别、年龄、所在学院)其中,主关键字为“学号”。

“学号”的值域为含2个英文字符的字符串;“姓名”的值域为最多含4个中文字符的字符串;“性别”的值域为含1个中文字符的字符串,只能取“男”或“女”;“年龄”的值域为0-100之间的整数;“所在学院”的值域为最多含10个中文字符的字符串。

课程关系(课程号,课程名,类别,学分)其中,主关键字为“课程号”。

“课程号”的值域为含2个英文字符的字符串;“课程名”的值域为最多含10个中文字符的字符串;“类别”的值域为含2个中文字符的字符串,只能取“必修”或“选修”;“学分”的值域为1-9之间的整数。

选课关系(学号,课程号,成绩)其中,主关键字为(学号、课程号)。

“学号”的值域为含2个英文字符的字符串;“课程号”的值域为含2个英文字符的字符串;“成绩”的值域为0-100之间的整数。

(2)3个关系之间有参照和被参照关系。

学生关系和课程关系属于被参照关系,选课关系属于参照关系。

选课关系中的学号参照了学生关系中的学号,选课关系中的课程号参照了课程关系中的课程号。

实现参照的方法如下:在选课关系中定义学号为参照了学生关系中的学号的外部关键字,在选课关系中定义课程号为参照了课程关系中的课程号的外部关键字。

2、答案:(1)σ职称=”教授”(教师)(2)π名称,学时(课程)(3)π姓名(σ名称=”操作系统”(课程) 教师)(4)π责任教师,类型(课程)÷(“必修”,”选修”)3、答案:“CREATE DATABASE database_name”后面的“ON”短语指定用来存储数据库的操作系统文件(存储在磁盘上的数据文件),该关键字后跟以逗号分隔的<filespec>项列表。

“Log”后面的“ON”指定用来存储数据库日志的操作系统文件(日志文件),该关键字后跟以逗号分隔的<filespec>项列表。

第3章习题参考答案1、答案:SQL是一种一体化、高度非过程化、简洁的语言,它可以直接以命令方式交互使用,也可以嵌入到程序设计语言中以程序方式使用。

2、答案:模式(SCHEMA)是根据应用的需要,将数据库中的一组各种对象逻辑组织在一起的逻辑结构。

模式的使用可以使数据库管理更加方便。

3、答案:列级约束的定义语法格式为:CREATE TABLE <表名>(<列名> <数据类型> [CONSTRAINT约束名] PRIMARY KEY...)表级约束的定义语法格式为:CREATE TABLE <表名>(<列名><数据类型>,...[CONSTRAINT约束名] PRIMARY KEY (<列名>[,...n])当主关键字由一个列组成时,既可以使用列级约束的定义,也可以使用表级约束的定义;当主关键字由两个及两个以上列组成时,则必须用表级约束定义。

4、答案:在关系数据库中可以通过外部关键字使两个关系关联,这种联系通常是一对多(1:n)的,其中主(父)关系(1方)称为被参照关系(被参照表),从(子)关系(n方)称为参照关系(参照表)。

如果定义的是参照表,则定义参照完整性约束的方法如下:(1)列级约束的定义语法格式CREATE TABLE <表名>(...<列名> <数据类型> [CONSTRAINT约束名] [FOREIGN KEY] REFERENCES 被参照表表名(<列名>)[ON DELETE {NO ACTION | CASCADE | SET NULL | SET DEFAULT}][ON UPDA TE {NO ACTION | CASCADE | SET NULL | SET DEFAULT}]...)(2)表级约束的定义语法格式为CREATE TABLE <表名>(<列名><数据类型>,...[CONSTRAINT约束名] FOREIGN KEY (<列名>) REFERENCES被参照表表名(<列名>)[ON DELETE {NO ACTION | CASCADE | SET NULL | SET DEFAULT}][ON UPDA TE {NO ACTION | CASCADE | SET NULL | SET DEFAULT}])5、答案:CHECK约束即域完整性约束,用来说明该列的取值范围。

6、答案:略。

分别参见3.4.1、3.4.2、3.4.3。

7、答案:作用是说明在被参照表的被参照记录上发生删除(DELETE)和更新(UPDATE)操作时的处理方法。

NO ACTION说明禁止删除或更新被参照记录,CASCADE说明进行级联处理(删除或更新),SET NULL说明将参照记录的对应字段设置为空值,SET DEFAULT说明参照记录的对应字段设置为默认值。

8、答案:略。

参见3.5.1。

9、答案:GROUP BY分组查询只能显示分组后的计算结果。

COMPUTE BY分组查询不仅能显示分组后的计算结果,还能显示明细信息;可以计算子组的汇总值,也可以同时计算整个结果集的汇总值。

10、答案:为了保证分组查询的正确性,GROUP BY不需要ORDER BY的配合,因为GROUPBY只显示分组后的计算结果。

而COMPUTE BY则需要ORDER BY的配合,这样的语法规定是为了使明细信息能够和分组汇总信息对应起来。

11、答案:基本表是指独立存在的表,即用CREATE TABLE命令建立的表。

视图是虚拟表,本身并不真正存在数据,视图的内容是由SQL SELECT查询定义的。

二者区别如下:基本表是独立存在的,里面包含数据。

视图是虚拟表,里面不包含数据,只有其定义。

视图可以源自一个表或多个表。

二者的相同之处和联系:二者都包含一系列命名的列和行,对视图的查询和对基本表的查询基本相同,通过视图查询到的数据与基本表的数据同步更新。

第4章习题参考答案1、答案:嵌入识别问题、宿主语言与SQL语言的数据交互问题、宿主语言的单记录与SQL的多记录的问题。

2、答案:游标的作用是能够每次处理查询结果集中的一条或一部分记录。

相关语句及用途如下:定义游标的语句(DECLARE CURSOR)、打开游标的语句(OPEN)、从游标中读取记录的语句(FETCH)、关闭游标的语句(Close)、释放游标的语句(DEALLOCATE)。

3、答案:存储过程是指以数据库对象的形式存储在数据库中的程序。

使用存储过程可以避免在客户端和服务器端传送无用的数据,提高系统性能;使用存储过程还可以实现一些安全控制功能。

4、答案:触发器是一类特殊的存储过程,它在满足某个特定条件时自动触发执行。

使用触发器可以实现强制业务规则、数据完整性和一些提示服务。

第5章习题参考答案1、答案:数据管理和数据库管理的工作主要由数据库管理员负责,分为2个阶段。

第1个阶段是数据库实施前,即数据库规划和设计阶段的管理问题;第2个阶段是数据库实施后,即数据库实施、运行和维护阶段的管理问题。

2、答案:一般数据库访问认证分为3个级别:系统登录、数据库访问和数据操作。

3、答案:系统管理员负责整个系统的管理,一般数据库管理系统在安装时都有一个默认的系统管理员用户。

数据库管理员负责某个具体数据库的管理,数据库管理员用户由系统管理员授权。

4、答案:角色管理主要是对相同权限或相似权限的用户进行便捷、清晰的权限管理。

系统管理员和数据库管理员可以根据需要创建角色,然后为角色赋予相应的权限,并对角色进行动态管理。

5、答案:登录用户管理指管理登录或注册到正在运行的数据库管理系统实例上的用户,登录用户管理由系统管理员管理。

登录用户管理包括创建登录用户、修改登录用户和删除登录用户。

6、答案:数据库用户管理指对某个具体数据库用户的管理,数据库用户的管理通常是由数据库管理员负责,也可以由系统管理员代行数据库管理员的职责。

数据库用户管理包括建立新的数据库用户、修改已有数据库用户和删除数据库用户。

7、答案:系统管理员通常用如下两种方式指定数据库管理员:(1)用户被授权可以执行CREATE DATABASE 命令或被指定为Dbcreator角色的成员。

(2)用户可以被指定为已有数据库的DB_owner角色的成员。

8、答案:授权命令GRANT分为:授予创建对象的权限和授予在对象上的操作权限。

创建对象的权限包括:备份数据库、日志的权限,创建数据库、默认值、函数、存储过程、规则、视图、表的权限。

在对象上的操作权限包括:查询、插入、更新、引用表,执行存储过程的权限。

9、答案:WITH GRANT OPTION短语的作用是说明被授予权限的用户或角色也可以行使同样的GRANT权限。

相关主题