数据库系统原理与设计 31 参考答案
第1章
一、选择题 1. D 2. B 3. A 4. C 5. D 6. C
7. D
8. A 9. C
10. C
二、填空题 1. 数据管理
2. 数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和数据库用户组成。3. 长期储存在计算机内、有组织、可共享的
4. 存储模式,详细描述了数据库数据复杂的物理结构和存储方式。1。
5. 逻辑模式,数据库数据的全局逻辑结构和特征。
6. 子模式用户,数据库数据的局部逻辑结构和特征。模式的子集,一个数据库可以有多
7. 描述数据、数据联系、数据语义以及一致性约束的概念工具。
8、DBMS的主要职能是:数据定义功能、数据操纵功能、数据的组织、存储和管理功能、数据库的建立、运行和维护功能。
9、数据模型(Data Model)
10、实体-联系模型(Entity-Relationship Model,简称为E-R模型)
11、E-R图 12、关系数据
13、由行和列组成的二维 14、层次模型 15、网状模型
三、思考题
1. 答:描述事物的符号记录称为数据;数据库是长期储存在计算机内的、有组织的、可共享的数据集合;数据库管理系统是位于用户与操作系统之间的一层数据管理软件; 数据库系统是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统(及其开发工具)、应用
系统、数据库管理员和用户构成。
2. 答:
(1)数据结构化是数据库与文件系统的根本区别。在文件系统中,相互独立的文件的记录内部是有结构的,尽管其记录内部已有了某些结构,但记录之间没有联系。数据库系统实现整体数据的结构化,是数据库的主要特征之一。
(2)在文件系统中,数据的最小存取单位是记录,粒度不能细到数据项。而在数据库系统中,存取数据的方式也很灵活,可以存取数据库中的
某一个数据项、一组数据项一个记录或一组记录。
(3)文件系统中的文件是为某一特定应用服务的,文件的逻辑结构对该应用程序来说是优化的,因此要想对现有的数据再增加一些新的应用会很困难,系统不容易扩充。而在数据库系统中数据不再针对某一应用,而是面向全组织,具有整体的结构化。
3. 答:数据结构化;数据的共享性高、冗余度低、易扩充;数据独立性高;数据由DBMS统一管理和控制。
4. 答:数据定义功能、数据操纵功能、数据库的运行管理、数据库的建立和维护功能。
5. 答:数据库系统一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。
6. 答:决定数据库中的信息内容和结构、决定数据库的存储结构和存取策略、定义数据的安全性要求和完整性约束条件、监控数据库的使用和运行、数据库的改进和重组重构。
7. 答:数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成。数据库系统的三级模式是对数据的三个抽象级别,它把数据的具体组织留给DBMS管理,使用户能逻辑地抽象地处理数据,而不必关心数据在计算机中的具体表示方式与存储方式。为了能够在内部实现这三个抽象层次的联系和转换,数据库管理系统在这三级模式之间提供了两层映像:
2 数据库系统原理与设计 外模式/模式映像、模式/内模式映像。正是这两层映像功能保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
8. 答:数据模型(Data Model)也是一种模型,它是现实世界数据特征的抽象。
数据模型的作用:在数据库中用数据模型来抽象、表示和处理现实世界中的数据和信息。通俗地讲数据模型就是现实世界的模拟,现有的数据库系统均是基于某种数据模型的。
数据模型的三个要素:数据模型由数据结构、数据操作和完整性约束三部分组成。
9. 答:关系模型与其他数据模型不同,它建立在严格的数学理论基础上,数据的形式化基础好;单一的数据结构,无论实体还是实体之间的联系都用关系表示;数据独立性强,数据的物理存储结构和存取路径对用户透明,同时简化了数据库开发人员的工作,易于用户的理解和使用。10. 层次模型是数据库系统中最早出现
的一种数据模型,它用树形结构来表示各类实体以及实体间的联系。在数据库中,同时满足以下两个条件的基本层次联系的集合称为层次模型:
(1)有且仅有一个结点没有双亲结点,称之为根结点;
(2)根结点以外的其他结点有且仅有一个双亲结点。
四
1、数据库管理员 2、数据库管理系统 3、数据模型 4、数据库
5、实体——联系图 6、数据定义语言 7、数据操纵语言 8、数据字典 9、内模式 10、外模式
第2章
一、选择题 1. A 2. B
3. B
4. A
5. D 6. A 7. B 8. C 9. D
10. ABCD 二、填空题
1. 客观存在并可相互区别的 2. 不足以形成主码 3. 超码 4. 候选码 5. 主码 6. 图形
7. 属性 8. 域 9. 再分割 10. 不同
三、思考题 1. 举例:
一对一联系:汽车与车牌
汽车R车牌 图A-1
一对多联系:值班医生与病人
值班医生R病人 图A-2
多对多联系:营业员与顾客
营业员R顾客
图A-3
2. E-R图如图A-4所示:
数据库系统原理与设计 3 座位数地址教室数量教室号面积楼号教学楼包含教室 图A-4
3. E-R简略图如图A-5所示:
出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出 图A-5
4. E-R图如图A-6所示:
classroom-idclassroom-nameClassroomstu-namegradeCCuse-datestu-idagecourse-idstudentSCCoursecourse-namelevelteachTeacherbook-nametitleauthorBookteacher-id 图A-6
5.
四. 1、键,码 2、超键
3、实体联系模型 4、实体集
5、域
6、联系集 7、弱实体集 8、属性
9、实体型 10、主键
第3章
一、选择题 1. C 2. C 3. C 4. B
5. D
6. A
7. D
8. C 9. A 10. D
二、填空题
1. 格式化、关系
2. 关系代数、关系演算、元组演算、域演算
3. 并、差、笛卡尔积、选取、投影
4. 完整性控制、并发控制、故障恢复、安全性控制
5. 关系数据结构、关系操作集合、关系完整性约束
6. 实体完整性、参照完整性、用户定义完整性
7. 关系演算、关系代数 8. 原子项
9. 投影
10. 聚集
三、思考题 1. 答:
(1)每一列(属性)的所有数据值都属同一类型,属性值是“原子”,没有内部结构;
(2)每一列都有惟一的列名;
(3)列在表中的顺序无关紧要,可任意交换; (4)表中任意两行(元组)不能相同; (5)行在表中的顺序也无关紧要,可任意交换。
2. 答:
(1)关系对应着事物实体集,如学生关系对
4 数据库系统原理与设计 应于一个学生集合;
(2)现实世界的实体是可区分的,如学号是区分不同学生的标志;
(3)关系以主码作为区分关系元组的惟一性标志,因此,候选码中的属性(主属性)不能取空值。否则,关系的一个元组就不能被标识,也就是说有个事物实体是不能区分的,这就和(2)矛盾。这种述规则称为关系的实体完整性。
例如:邮政局派信,显然,信封上的通讯地址和姓名是主属性。如果这两个属性之一取空值,即“不知道”,那么信件将无法投递给收信人。这样,这封信就是不完整的。
3. 答:
关系模型的优点:
(1)具有坚实的理论基础,基于集合论、数理逻辑等;
(2)只有关系(表)这一种数据结构。无论事物还是事物的联系,在关系数据库中都用关系来表示;
(3)数据操作的特点是:集合化、非过程化;(4)数据的存储结构和存取路径对用户透明。用户不必关心数据的存放,提高数据的独立性,简化程序开发工作。
关系模型的局限性:
(1)缺乏语义表示能力。比如无法区分“重量”和“长度”属性的意义差别;
(2)数据类型不够丰富。只适于表示数和文字形式的数据,而难以表示声音,图像等形式的数据;
(3)属性与行为分离。例如,要描述某个人,关系模型可以描述人的数据属性(身高、体重、姓名等),但不能描述人的行为(睡觉、走路等)。4. 参照完整性指如果关系R2的外部码Fk与关系R1的主码Pk相对应,则R2中的每一个元组的Fk值或者等于R1 中某个元组的Pk 值,或者为空值。
意义:如果关系R2的某个元组t2参照了关系R1的某个元组t1,则t1必须存在。
5. 关系数据语言的特点
一体化:一般关系系统的数据语言都同时具
有数据定义、数据操纵和数据控制语言,而不是分为几个语言。对象单一,都是关系,因此操作符也单一。而非关系型系统,如DBTG,有对记录的操作,有对系的操作。
非过程化:用户只需提出“做什么”,无须说明“怎么做”,存取路径的选择和操作过程由系统自动完成。
面向集合的存取方式:操作对象是一个或多个关系,结果是一个新的关系(一次一关系)。非关系系统是一次一记录的方式。
四、
(1)解:?CNO,CNAME(?TEACHER?\张军\(C)) (2)解:?SNO,SNAME(?AGE?21?SEX?\男\(S)) (3)解:
?SNAME(S?(?SNO,CNO(SC)??CNO(?TEACHER?\张军\(C))))
(4) 解:?CNO(C)??CNO(?NAME?\赵新\(s)
SC)
(5)解:?SNO(?[1]?[4]?[2]?[5](SC?SC)) (6)解:
?CNO,CNAME(C(?SNO,CNO(SC)??SNO(S)))
(7)解: ?SNO(SC?CNO(?TEACHER?\张军\(C))) (8)解:
?SNO,CNO(SC)??CNO(?CNO?'C1'?CNO?'C5'(C)) (9)解: ?SNAME(S(?SNO,CNO(SC)??CNO(C))) (10)解:?SNO,CNO(SC)??CNO(?SNO?'2'(SC)
(11)解: ?SNO,SNAME(S?SNO(SC(?CNAME?'C语言'(C)))
第4章
一、选择题 1. A
2. C
3. D 4. A
5. D
6. C 7. A 8. D 9. A 10. B 二、填空题 1. %、_
数据库系统原理与设计 5 2. Numeric、10、2
3. 关系型、表、元组、属性 4. 删除、修改 5. Select、from 6. group by
7. 基本表、视图表和导出表 8. 基本表 9. 视图 10. REVOKE
三、思考题
1. SQL查询语句来表达:
(1)创建Branch表,其中branch_name和branch_city为联合主键
create table Branch(
branch_name nvarchar(10), branch_city nvarchar(10), asserts int
primary key(branch_name, branch_city))
(2)向Branch表中增加一个“address”列,其数据类型为十个字长的unicode字符串。
alter table Branch
add address nvarchar(10)
(3)删除Branch表的address列
alter table Branch rop column address
(4)查询位于“广州”的,资产在10,000,000以上的的支行名。
select branch_name from Branch
where asserts>10000000
(5)查询customer_street中含有“广州大道中”的顾客的信息。
select *
from customer
where customer_street like '%广州大道中%'
(6)查询名字为“Tom”的所有贷款信息。select t1.*
from loan as t1 inner join Borrower as t2
on t1.loan_number=t2.loan_number where t2.customer_name='Tom'
(7)查询“中国工商银行”的贷款信息,结果按贷款额降序排列。
select * from loan
where branch_name='中国工商银行' order by amount desc
(8)显示每个银行贷款额最大的那条贷款信
息。
select *
from loan as t1 where not exists( select * from loan as t2
where t1.branch_name=t2.branch_name and t1.amount (9)创建一个视图来显示每个顾客的顾客信息、贷款总额。 create view customer_loan as select customer_name, amount_total=sum(amount) from borrower as t1 left join loan as t2 on t1.loan_number=t2.loan_number group by customer_name (10)删除所有贷款在100以下的贷款记录 delete from loan where amount<100 (11)删除每家支行贷款数额最大的记录 delete loan where not exists( select * from loan as t2 where loan.branch_name=t2.branch_name and loan.amount 四.上机题 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库数据库技术作业和答案(包括习题答案)(7)在线全文阅读。
相关推荐: