数据库原理与应用课后习题参考答案供参考Word文档下载推荐.docx
《数据库原理与应用课后习题参考答案供参考Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据库原理与应用课后习题参考答案供参考Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。
![数据库原理与应用课后习题参考答案供参考Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2023-1/9/8c7c24c8-4da1-4ce6-a563-62398bb89c24/8c7c24c8-4da1-4ce6-a563-62398bb89c241.gif)
5)数据库管理系统(DatabaseManageSystem,DBMS)——是一种专门用来创建数据库、管理数据库、维护数据库,并提供对数据库访问的系统软件。
数据库管理系统(DBMS)主要功能:
创建数据库和表;
创建支持结构,如索引等;
读取数据库数据;
修改数据库数据;
维护数据库结构;
执行规则;
并发控制;
提供安全性;
执行备份和恢复等等
第二章作业参考答案
1单选题CBDAA
2.判断题对对错对错
3填空题全外连接数据约束候选键用户定义完整性
外码键
1)在关系模型中,使用“关系”来存储“实体”中的数据。
关系(relation)——是指存放实体数据的二维表。
关系特征:
行存储实体的个体数据;
列存储所有实体个体属性的数据;
表中单元格存储单个值,所有的列必须是原子的;
每列的所有实体个体数据类型一致;
每列具有唯一名称;
列顺序可任意;
行顺序可任意;
任意两行互不重复。
2)键(key)——是指关系中用来唯一标识元组的单个列或多列。
候选键——关系中可能有多个键,每个都是候选键。
主键(Primarykey)也是候选键之一,关系表可以有多个候选键,但只能定义一个主键。
主键作用:
唯一标识关系的每行;
作为关联表的外键,链接两个表;
使用主键值来组织关系的存储;
使用主键索引快速检索数据
3)代理键——采用DBMS自动生成的数字序列作为关系表的主键。
由DBMS自动生成的数字序列作为主键,可替代复合主键。
4)在关系表定义中,主键属性不允许空值(Null),即必须有具体值。
其它属性可以允许空值。
NULL值只是代表该属性可以没有具体值,它与零值、空格字符、Tab字符是不同的。
5)参照完整性:
关系模型中实体及实体间的联系都是用关系来描述的,因此可能存在着关系与关系间的引用。
参照完整性规则:
若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:
或者取空值(F的每个属性值均为空值),或者等于S中某个元组的主码值。
参照完整性属于表间规则例子:
课程表
字段名称
字段编码数据类型字段大小
必填字段
是否为键
课程编号
CourseID文本
4是主键
课程名
CourseName文本
20是否
课程类别
CourseType文本
10否否
学分
CourseCredit数字
短整型否否
学时
CoursePeriod数字
考核方式
学生表
TestMethod文本
字段编码数据类型
字段大小
学号
StudentID文本
12是主键
姓名
StudentName文本
10是否
性别
StudentGender文本
2否否
出生日期
BirthDay日期短日期否否
专业
Major文本30否否
手机号StudentPhone文本11否否
选课注册表有两个外键开课编号学号
字段名称字段编码数据类型字段大小必填字段是否为键注册编号CourseRegID自动编号长整型是代理键
开课编号CoursePlanID数字
长整型是外键
学号StudentID
文本
12
是外键
备注Note文本
30否
否
5应用题
1)
a)
A
B
C
D
a2
b1
c2
d3
b2
c1
d1
b3
c3
a1
a3
b)
c)
b1c2
b2c1
b3c3
d)
2)IIname(READERjionBOOKJoinPUBLISH)
3)
第三章作业参考答案
1单选题ACDCA
2.判断题对错对错对
3填空题IBMinsertupdatesum,leftjion
1)SQL(StructuredQueryLanguage,结构化查询语言)是一种对数据库进行访问的数据操作子语言。
其SQL语句执行命令完成对数据库访问操作。
(1)语法简单,易学易用,类似于英语自然语言。
(2)高度非过程化的语言。
只输入操作的种类和范围,不关心存取路径等内容。
(3)面向集合的语言。
(4)SQL独立使用,也可以嵌入到宿主语言(5)功能强大。
定义关系模式、创建数据库、插入数据、更新数据、复杂查询、维护数据、重构数据库和控制数据库安全等。
2)在实际应用中,通常需要关联多表才能获得所需的信息。
在SELECT查询语句中,可使用子查询方式实现多表关联查询。
在处理多个表时,子查询只有在结果来自一个表的情况下才有用。
但如果需要显示两个或多个表中的数据,就不能使用子查询,而需要采用连接操作。
在SQL语言中,实现多表关联查询还可以使用JOIN…ON关键词的语句格式。
3)关系表中数据完整性、表之间数据一致性等要求。
具体是由业务需求来确定。
数据的完整性包括实体完整性、参照完整性、用户定义完整性。
具体在关系数据库表中的约束:
主键的定义;
属性列取值类型type;
属性列取值范围;
属性列取值是否唯一unique;
属性列是否允许空值NULL;
关联表的参照完整性约束即外键的定义。
4)列约束是定义在每个列上,列约束子句包括PRIMARYKEY——主键,NOTNULL——非空值,NULL——空值,UNIQUE——值唯一,CHECK——有效性检查,DEFAULT——缺省值。
表约束是对整个表格的约束性,使用表约束定义主键的优点:
CONSTRAINT
DEPARTMENT_PKPRIMARYKEY(DepartmentName,便于定义复合主键,可命名主键约束,便于定义代理键。
外键及其参照完整性约束CONSTRAINTDEPARTMENT_FKFOREIGNKEY(DEPARTMENT)REFERENCESDEPARTMENT(DepartmentName)
5)视图——是一种通过其它表或视图构建的虚拟表。
它本身没有自己的数据,而是使用了存储在表或其它视图中的数据。
基本语句格式CREATEVIEW<
视图名>
[(列名1),(列名
2),…]AS<
SELECT查询>
;
使用视图简化复杂SQL查询操作:
通过视图,数据库开发人员可以将复杂的查询语句封装在视图内,使外部程序只需要使用简单方式访问该视图,便可获取所需要的数据。
使用视图提高数据访问安全性通过视图可以将基本数据表部分敏感数据隐藏起来,外部用户无法得知数据表的完整数据,降低数据库被攻击的风险。
此外,还可以保护部分隐私数据。
3.提供一定程度的数据逻辑独立性:
通过视图,可提供一定程度的数据逻辑独立性。
当数据表结构发生改变,只要视图结构不变,应用程序可以不作修改。
集中展示用户所感兴趣的特定数据:
通过视图,可以将部分用户不关心的数据进行过滤,仅仅提供他们所感兴趣的数据。
第四章
1单选题CBCBA
2.判断题对对错错错
3填空题弱实体;
概念模型设计逻辑模型设计物理模型设计;
1:
1一对一1:
N一对多m:
N多对多;
ID依赖非ID依赖,父实体子实体
1)在从现实世界到计算机世界的数据库设计过程中,经历了概念层设计、逻辑层设计及物理层设计三个阶段,其创建的数据模型分别称为概念数据模型、逻辑数据模型和物理数据模型。
在从现实世界到计算机世界的数据库设计过程中,经历了概念层设计、逻辑层设计及物理层设计三个阶段,其创建的数据模型分别称为概念数据模型、逻辑数据模型和物理数据模型。
在逻辑数据模型中,是从系统设计角度描述系统的数据对象组成及其关系,并考虑这些数据对象在计算机系统中的逻辑表示。
在物理数据模型中,系统数据被描述为“数据表”、
“主键”、“外键”等形式。
该数据模型需要考虑在计算机系统中的具体DBMS实现方式。
2)数据需求分析选题概念数据建模、系统逻辑数据建模、系统物理数据建模数据库实现。
E-R模型是“实体-关系模型”(Entity-RelationshipModel)的简称。
它是一种描述现实世界概念数据模型的有效方法。
3)实体(Entity)是客观世界中描述事物数据对象的抽象概念。
实体可以是人,也可以是物或抽象的概念;
可以指事物本身,也可以指事物之间的关系,如一个人,一件物品,一个部门等都可以是实体。
实每个实体都有自己的一组数据特征,这些描述实体的数据特征称为实体的属性(Attribute)。
例如,学生实体具有学号、姓名、性别等属性。
不同实体的属性是不同的。
实体间的关系,关系表示一个或多个实体之间的关联关系。
4)实体之间关联的数目称为元。
实体自己与自己之间的关系称为一元关系,也称递归关系。
两个实体之间的关系称为二元关系;
三个实体之间的关系称为三元关系。
在实际应用中,二元关系是最常见的实体关系。
5)在“一对一”、“一对多”和“多对多”的关系中,把两个实体集中有关系的实体关系数量分成两种类型:
“唯一”和“不唯一”。
例如,学校规定对于全校公选课,学生每学期至少选修1门课程,最多选修5门课程;
每门课程最少要有15个人选,最多不能超过150人。
对于这种情况,首先确定学生的基数是(15,150),课程的基数是(1,5)。
这种实体关系的对应数目称为这个关系的基数,用(min,max)形式表示,其中min表示最小基数,max表示最大基数。
如果最小基数为0,则关系中的实体参与是可选的。
如果最小基数为1,则关系中的实体参与是强制性的。
6)二元实体关系有三种类型:
一对一关系、一对多关系和多对多关系。
7)数据库概念数据模型设计是通过对现实世界中信息实体进行抽取、分类、聚集和概括等处理,建立数据库概念数据结构的过程。
概念数据库设计的方法主要有两种:
集中式设计方法,视图综合设计方法。
集中式设计方法基于需求分析阶段得到的系统数据需求,设计一个描述系统概念数据关系的数据模型,用于反映系统的数据需求。
集中式方法要求所有概念数据模型设计工作都必须由具有较高水平的数据库设计者完成。
视图综合设计由一个视图设计阶段和一个视图合并阶段组成,它不要求应用需求的合并。
在视图设计阶段,设计者根据每个应用的需求,独立地为每个用户和应用设计一个概念数据库模式,这里每个应用的概念数据库模式都称为视图。
视图设计阶段完成后,进入到视图合并阶段,在此阶段设计者把所有视图有机地合并成一个统一的概念数据库模式,这个最终的概念数据库模式支持所有的应用。
第五章
1单选题CCCAA
2.判断题对对错错对
3填空题主键;
代理键;
表列主键;
数据冗余,
决定因素依赖
1)数据模型转换设计有两种方案:
一种是由概念数据模型生成对应的逻辑数据模型,再从逻辑数据模型转换生成物理数据模型;
另一种是从概念数据模型直接转换为对应的物理数据模型。
当使用关系数据库时,物理数据模型即为关系模型,其基本转换原理如下:
a)将每一个实体转换成一个表,实体的属性转换为表的列,实体的标识符转换为表的主键
b)将实体关系转化为表间的参照完整性约束,即通过设置外键来参照主键。
根据关系的不同类型,通过外键参照主键的方式有所不同。
为每个实体定义一个表,表名与实体名相同。
将实体的标识符作为表的主键。
然后,实体的属性转换为表中的列,实体的标识符转换为表的主键;
在关系数据库设计中,当数据表中的候选键都不适合当主键时(例如,候选键的内容太大或者复合候选键包含的属性太多),就会定义代理键作为主键。
代理键由DBMS自动生成数字键值,且永不改变。
实体属性转换为表的列后,必须为每个列指定其特性,包括数据类型、空值状态、默认值及数值的约束。
数据类型:
每个DBMS都有自己的数据类型定义,对于每一列,应指明在该列中存储何种类型的数据。
空值状态:
在表中插入新行时,某些列必须有值,对于这样的列,将其标注为NOTNULL;
某些列允许不输入值,将其标注为NULL。
默认值:
默认值是指当插入新行时,如果用户没有显式输入某个列的值,则由DBMS自动设置为预先设定的值。
数值的约束:
一些列中的数据值可能有限制,这些限制称为数据约束。
弱实体有时候需要特别的处理。
弱实体在逻辑上依赖于另一个实体。
ID依赖弱实体的标识符应该含有它所依赖实体的标识符,因此需要将被依赖实体的标识符放入ID依赖弱实体转换生成的表中,和ID依赖弱实体的标识符共同转换成复合主键。
2)当实体继承关系转换到物理数据模型时,首先父实体和子实体都各自转换为表,其属性均转换为表的列。
在处理继承关系转换时,将父表中的主键放置到子表中,既做主键又做外键。
3)1:
N实体关系的转换方法很简单,两个实体分别转换为表,然后将1父实体表的主键放入N子实体表中做外键。
将图5-9所示的实体关系转换为表参照约束.班级实体学生实体,在学生中把班级的主键加入进去作为外码键
4)N:
M实体关系不能像1:
1和1:
N实体关系那样直接转换。
将任一个实体表的主键放置到另一个实体表中做外键都是无法实现的。
必须要重新产生一张新表,用于表示两个实体之间的关系。
新表的名称通常有两种命名方法,一种是以N:
M关系的名称命名,一种是用下划线连接N:
M关系两侧的实体名称作为新表的名称。
新表把两个表的关键字作为复合主键并定义外码应用关系
5)1:
1实体关系的转换:
学生表和助学金发放账号表。
有两种转换方案,一种是将学生表的主键“学号”放入助研金账号表中做外键;
另一种是将助研金账号表的主键“账号”放入学生表中做外键。
这两种方案均是可行的,由设计者根据应用情况自主做出选择。
6)数据库表规范化设计是指在数据库中减少数据冗余和定义一个规范的表间结构,实现数据完整性与一致性。
所谓数据冗余是指一组数据重复出现在数据库的多个表中。
在数据库设计中,尽量避免表间的重复数据列。
规范化数据库设计为数据库系统带来如下益处:
冗余数据被消除,同一数据在数据库中仅保存一份,有效降低维护数据一致性的工作量。
设计合理的表间依赖关系和约束关系,便于实现数据完整性和一致性。
设计合理的数据库结构,便于系统对数据高效访问处理。
7)在将系统物理数据模型在数据库中实现前,需要对所设计的系统PDM模型进行设计验证检查,以发现系统PDM模型设计中的错误。
系统设计者则需根据错误信息对数据模型进行修正。
并再次进行检查,直到没有任何错误和警告为止。
第六章
1单选题BDBCC
2.判断题对对错对错
3填空题隔离性持久性;
用户的对象;
可串行化;
回收(revoke)权限,拒绝(deny)权限磁带库关盘库
1)DBMS的功能包括数据库定义:
定义数据库完整性、安全保密、存取路径等;
数据存取:
提供数据的操纵语言以便对数据进行查找和增删改
数据库运行管理:
事务管理、自动恢复、并发控制、死锁检测或防止、安全性检查、存取控制、完整性检查、日志记录等
数据组织、存储和管理:
数据字典、用户数据、存取路径的组织存储和管理,以便提高存储空间利用率,并方便存取数据库的建立和维护:
数据库初建、转储、恢复、重组、重构以及性能检测等数据传输:
网络通信、数据转换、异构数据库互访等
2)在数据库中,事务(Transaction)是指由构成单个逻辑处理单元的一组数据库访问操作,它们要么都成功执行,要么都不执行。
在数据库系统中,事务是DBMS执行的最小任务单元。
同时,事务也是DBMS最小的故障恢复任务单元和并发控制任务单元。
为了确保数据库共享访问的数据正确性,要求DBMS的事务管理机制维护事务的ACID特性。
事务程序主要解决并发控制和系统恢复。
3)防止死锁的策略:
允许用户一次发出当前所需全部资源的锁定,使用完成后,再释放给其它用户访问。
规定所有应用程序锁定资源的顺序必须完全相同。
当发生死锁时,回滚其中的一个事务,并取消它对数据库所做的改动。
顺序封锁法:
将数据库对象按某种规定的顺序排列,要求事务实行封锁也必须按照这个顺序进行。
一次封锁法:
要求事务在开始执行前先申请到所需的所有封锁,如果有一个封锁没有申请到,则事务中止。
用时间戳的死锁预防:
根据事务启动时的时间戳设置事务的优先级,越早开始运行的事务优先级越高。
为预防死锁,在事务Ti申请的封锁与事务Tj已经拥有的封锁发生冲突时,锁管理器可使用如下两种不同的机制:
Wait-die机制:
若Ti优先级较高,则Ti可以等待;
否则中止事务Ti。
Wound-wait机制:
若Ti优先级较高,则中止Tj;
否则Ti等待。
4)数据库系统安全模型:
身份验证:
用来确认登录用户是否是合法使用者;
权限控制:
通过权限机制控制用户对数据的访问;
系统防护:
OS系统安全机制防范非法系统访问;
通过加密算法对数据库中数据进行加密存储。
实现方法:
用户要访问数据库,必须先在DBMS中创建其账号,并成为数据库的用户。
此后,用户每次访问数据库,都需要在
DBMS进行身份验证,只有合法用户才能进入系统,访问操作数据库对象。
5)数据库备份——是指将数据库当前数据和状态进行副本复制,以便当数据库受到破坏或丢失数据时可以进行修复。
数据库恢复——是指数据库中数据丢失或被破坏时,从备份副本将数据库从错误状态恢复到某一正确状态。
恢复机制涉及两个关键问题:
如何建立冗余数据(在数据库正常运行的情况下随时记录数据库的变化),如何利用冗余数据实施数据库恢复(数据库一旦失效,用记录的数据进行恢复)。
恢复技术是衡量数据库管理系统优劣的重要指标;
恢复机制常用的技术:
记录日志文件和数据转储。
备份内容——包括数据文件、日志文件、系统数据库等。
所谓转储是指DBA定期地将整个数据库复制到某种存储介质(如磁带、磁盘、光盘等)上保存起来的过程。
备用的数据文本称为后备副本或后援副本。
数据转储是数据库恢复中采用的基本技术。
备份时机——当系统数据库被修改、日志被清理、用户数据库创建、用户数据库加载等事件出现时或定期备份。
静态转储与动态转储,完全转储与增量转储
第七章
1单选题ACC
2.判断题对错对错对对
3填空题过程参数;
系统存储过程临时存储过程;
存储过程
1)数据库应用系统从作用范围的角度可分为三种类型:
基于单机的数据库应用系统:
特点:
在单机结构系统中,整个数据库系统都装在一台计算机上,由一个用户进行访问操作,数据不能共享,数据冗余度大。
.集中式结构:
数据库系统的应用程序、DBMS、数据,都放在同一主机上,所有的处理任务由主机完成,多个用户可同时并发地存取数据,能够共享数据。
基于局域网的客户-服务器(C/S)数据库应用系统:
用户将数据传送到服务器进行处理。
服务器将结果返回给用户,提高了系统的性能和负载能力,但可能带来网络上数据传数量过大。
基于互联网的浏览器-服务器(B/S)的数据库应用系统。
分布式结构:
用户将数据传送到服务器进行处理。
2)数据库开发生命周期是一个设计、实现和维护数据库系统的过程,需要符合组织战略和操作信息的需求。
数据库开发生命周期与信息系统软件开发生命周期是内在关联的。
DDLC与SDLC是同步进行的。
a.系统需求分析系统分析人员与用户交流,按照软件工程方法获取系统数据需求信息,并采用模型定义系统数据组成,及其数据字典。
b.系统数据架构设计系统架构设计人员根据系统功能和性能需求,对系统数据架构模型进行设计,包括系统数据概念模型、系统数据逻辑模型和系统数据物理模型。
c.系统数据库实现系统数据库开发人员根据系统设计方案,对系统数据库进行部署和模型实现,包括系统数据库创建、数据表创建、索引和约束等对象创建。
d.系统测试系统测试人员将测试数据上载到数据库中,对数据库对象进行测试操作访问,实现数据库功能和性能测试。
e.系统运行与维护:
系统运维人员在系统投入运行过程中,对系统数据库进行定期维护和优化,以保证数据库系统正常地、高效地运行。
3)软件开发生命周期包括需求或概念阶段,规格