数据库应用与设计 (清华大学出版社)参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据库应用与设计》习题参考答案
第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”短语指定用来存储数据库的操
作系统文件(存储在磁盘上的数据文件),该关键字后跟以逗号分隔的
“Log”后面的“ON”指定用来存储数据库日志的操作系统文件(日志文件),该关键字后跟以逗号分隔的
第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。