数据库原理课后题答案Word文档下载推荐.docx
《数据库原理课后题答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据库原理课后题答案Word文档下载推荐.docx(33页珍藏版)》请在冰豆网上搜索。
![数据库原理课后题答案Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2023-2/4/ca636195-12c7-449d-a213-d2028fdfbc75/ca636195-12c7-449d-a213-d2028fdfbc751.gif)
答:
数据与程序的逻辑独立性:
当模式改变时(例如增加新的关系、新的属性、改变属性的数据类型等),由数据库管理员各个外模式∕模式的映像做相应改变,可以使外模式保持不变。
应用程序就是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
数据与程序的物理独立性:
当数据库的存储结构改变了,有数据库管理员对模式∕内模式映像做相应改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性。
数据库管理系统在三级模式之间提供的两层映像保证了数据库系统中的数据具有较高的逻辑独立性与物理独立性。
第2章数据模型
3.试描述数据模型的三个要素。
数据模型由数据结构、数据操作与完整性约束三部分组成。
(1)数据结构:
就是所研究的对象类型的集合,就是对系统静态特性的描述。
(2)数据操作:
就是对数据库中各种对象(型)的实例(值)允许进行的操作的集合,包括操作及有关的操作规则,就是对系统动态特性的描述。
(3)数据的约束条件:
就是一组完整性规则的集合。
完整性规则就是给定的数据模型中数据及其联系所具有的制约与依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。
7.试述关系模型的概念,定义并解释以下术语。
关系模型由关系数据结构、关系操作集合与关系完整性约束三部分组成。
(1)关系:
一个关系对应通常说法的一张表
(2)关系模式:
对关系的描述,一般表示为:
关系名(属性1,属性2,…,属性n)
(3)元祖:
表中的一行即为一个元组
(4)属性:
表中的一列即为一个属性
(5)码:
表中的某个属性组,它可以惟一确定一个元组
(6)域:
属性的取值范围
(7)分量:
元组中的一个属性值
第3章关系数据库
3.定义并理解下列术语,说明它们之间的联系与区别。
(1)域:
域就是一组具有相同数据类型的值的集合;
笛卡儿积:
给定一组域D1,D2,…,Dn,这些域中可以有相同的。
D1,D2,…,Dn的笛卡尔积为:
D1×
D2×
…×
Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}其中每一个元素(d1,d2,…,dn)叫做一个n元组或简称元组。
元素中的每一个值di叫做一个分量。
关系:
在域D1,D2,…,Dn上笛卡尔积D1×
Dn的子集称为关系,表示为R(D1,D2,…Dn)
元组:
关系中的每个元素就是关系中的元组。
属性:
关系也就是一个二维表,表的每行对应一个元组,表的每列对应一个域。
由于域可以相同,为了加以区分,必须对每列起一个名字,称为属性。
(2)候选码:
若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码。
主码:
若一个关系有多个候选码,则选定其中一个为主码。
外部码:
设F就是基本关系R的一个或一组属性,但不就是关系R的码,如果F与基本关系S的主码Ks相对应,则称F就是基本关系R的外部码,简称外码。
基本关系R称为参照关系,基本关系S称为被参照关系或目标关系。
关系R与S可以就是相同的关系。
(3)关系模式:
关系的描述称为关系模式。
它可以形式化地表示为R(U,D,dom,F)其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,dom为属性向域的映像集合,F为属性间数据的依赖关系集合。
在域D1,D2,…,Dn上笛卡儿积D1×
Dn的子集称为关系,表示为R(D1,D2,…Dn),关系就是关系模式在某一时刻的状态或内容。
关系模式就是静止的、稳定的;
而关系就是动态的、随时间不断变化的,因为关系操作在不断更新着数据库中的数据。
关系数据库:
关系数据库也有型与值之分。
关系数据库的型也称为关系数据库模式,就是对关系数据库的描述,它包括若干域的定义以及在这些域上定义的若干关系模式。
关系数据库的值就是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。
4.试述关系模型的完整性规则。
在参照完整性中,为什么外部码属性的值也可以为空?
什么情况下才可以为空?
关系模型的完整性规则就是对关系的某种约束条件。
关系模型中可以有三类完整性约束:
实体完整性、参照完整性与用户定义的完整性。
其中实体完整性与参照完整性就是关系模型必须满足的完整性约束条件,被称做事关系的两个不变性,应该由关系系统自动支持。
(1)实体完整性规则:
若属性A就是基本关系R的主属性,则属性A不能取空值。
(2)参照完整性规则:
若属性(或属性组)F就是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R与S不一定就是不同的关系),则对于R中每个元组在F上的值必须为:
1)或者取空值(F的每个属性值均为空值)
2)或者等于S中的某个元组的主码值。
(3)用户定义的完整性就是针对某一具体关系数据库的约束条件。
它反映某一具体应用所涉及的数据必须满足的语义要求。
在参照完整性中,外部码属性的值可以为空,它表示该属性的值尚未确定,但前提条件就是该外部码属性不就是其所在关系的主属性。
例如,在下面的“学生”表中,“专业号”就是一个外部码,不就是学生表的主属性,可以为空,其语义就是,该学生的专业尚未确定。
学生(学号,姓名,性别,专业号,年龄)
专业(专业号,专业名)
而在下面的“选修”表中的“课程号”虽然也就是一个外部码属性,但它又就是“课程”表的主属性,所以不能为空,因为关系模型必须满足实体完整性。
课程(课程号,课程名,学分)
选修(学号,课程号,成绩)
p615、设有一个SPJ数据库,包括S、P、J、SPJ四个关系模式:
S(SNO,SNAME,STATUS,CITY);
P(PNO,PNAME,COLOR,WEIGHT);
J(JNO,JNAME,CITY);
SPJ(SNO,PNO,JNO,QTY);
供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成;
零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成;
工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成;
供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。
今有若干数据如下:
S表
SNO
SNAME
STATUS
CITY
S1
精益
20
天津
S2
盛锡
10
北京
S3
东方红
30
S4
丰泰盛
S5
为民
上海
P表
PNO
PNAME
COLOR
WEIGHT
P1
螺母
红
12
P2
螺栓
绿
17
P3
螺丝刀
蓝
14
P4
P5
凸轮
40
P6
齿轮
J表
JNO
JNAME
J1
三建
J2
一汽
长春
J3
弹簧厂
J4
造船厂
J5
机车厂
唐山
J6
无线电厂
常州
J7
半导体厂
南京
SPJ表
QTY
200
100
700
400
500
S2
300
试分别用关系代数完成如下查询:
(1)求供应工程J1零件的供应商号SNO;
答
关系代数
πSNO(σJNO=’J1’(SPJ))
(2)求供应工程J1零件P1的供应商号SNO;
πSNO(σJNO=’J1’⋀PNO=’P1’(SPJ))
(3)求供应工程J1零件为红色的供应商号SNO;
πSNO(πSNO,PNO(σJNO=’J1’(SPJ))⋈πPNO(σCOLOR=’红’(P)))
(4)求没有使用天津供应商生产的红色零件的工程号JNO;
πJNO(J)-πJNO(πSNO(σCITY=’天津’(S))⋈πSNO,PN0,JNO(SPJ)
πPNO(σCOLOR=’红’(P)))
解析
减法运算中被减的部分就是使用了天津供应商生产的红色零件的所有工程号,π(J)就是全部工程的工程号,两者相减就就是没有使用天津供应商生出的红色零件的工程号,包括没有使用任何零件的工程号。
(5)求至少用了S1供应商所供应的全部零件的工程号JNO;
答
关系代数
πJNO,PNO(SPJ)÷
πPNO(σSNO=’s1’(SPJ))
解析
上面公式中除号前的部分就是所有工程与该工程所用的零件,除号后的部分就是S1所供应的全部零件号。
对于SPJ表中的某一个JNO,如果该工程使用的所有零件的集合包含S1所供应的全部零件号,则该JNO符合本题条件,在除法运算的结果集中。
可以瞧到,使用关系代数的除法运算概念清晰,语言表达也很简单。
7.关系代数的基本运算有哪些?
选择、投影、并、差与笛卡儿积五种。
第4章关系数据库的标准语言SQL
5.针对习题3中的4个表试用SQL完成如下操作。
(1)找出所有供应商的姓名与所在的城市。
SELECTSNAME,CITY
FROMS;
(5)找出上海厂同提供的所有零件号码
SELECTDISTINCTPNO
FROMSPJWHERESNOIN
(SELECTSNOFROMSWHERECITY=‘上海’);
(8)把所有红色的零件的颜色改成蓝色
UPDATEPSETCOLOR=’蓝’WHERECOLOR=’红’
(10)从供应商的关系中删除S2的记录,并从供应关系中删除相应记录。
DELETEFROMSPJWHERESNO=‘2’;
DELETEFROMSWHERESNO=‘S2’;
6.什么就是基本表?
什么就是视图?
两者的区别与联系就是什么?
基本表就是本身独立存在的表。
视图就是人一个或几个基本表导出的表。
视图本身不独立存储在数据库中,就是一个虚表。
即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。
用户可以如同基本表那样使用视图,可以在视图上再定义视图。
7.试述视图的优点。
1)视图能简化用户的操作;
2)视图使用户能以多种角度瞧待同一数据;
3)视图对重构数据库提供了一定程度的逻辑独立性;
4)视图能够对机密数据提供安全保护。
9.哪类视图就是可以更新的?
基本表的行列子集视图就是可以更新的。
第5章数据库的安全性
1什么就是数据库的安全性?
数据库的安全性就是指保护数据库以防止不合法的使用所造成的数据泄露,更改过破坏。
试述实现数据库安全性控制的常见方法与技术
3实现数据库安全性控制的常见方法与技术有:
(1)用户标识与鉴别:
该方法由系统提供一定的方式让用户标识自己的名字或身份。
每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供系统的使用权。
(2)存取控制:
通过用户权限定义与合法权检查确保只有合法权限的用户访问数据库,所有未被授权的人无法存取数据。
例如C2集中地自主存取控制(DAC),B1集中的强制存取控制(MAC)。
(3)视图机制:
为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。
(4)审计:
建立审计日志,把用户对数据库的所有操作自动记录下来放入审计日志中,DBA可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间与内容等。
(5)数据加密:
对存储与传输的数据进行加密处理,从而使得不知道解密算法的人无法获知数据的内容。
6、什么就是数据库的审计功能,为什么要提供审计功能?
审计功能就是指DBMS的审计模块在用户对数据库执行操作的同时把所有操作自动记录到系统的审计日志中。
因为任何系统的安全保护措施都不就是完美无缺的,蓄意盗窃破坏数据的人总可能存在。
利用数据库的审计功能,DBA可以根据审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间与内容等。
第6章数据库的完整性
1.什么就是数据库的完整性?
数据库的完整性就是指数据的正确性与相容性。
6.假设有下面两个关系模式:
职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码;
部门(部门号,名称,经理名,地址,电话号),其中部门号就是主码。
用SQL语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义:
定义每个模式的主码;
定义参照完整性;
定义职工年龄不超过60岁。
CREATETABLEDEPT
(DeptnoNUMBER
(2),
DeptnameVARCHAR(10),
ManagerVARCHAR(10),
PhoneNumberChar(12)
CONSTRAINTPK_SCPRIMARYKEY(Deptno));
CREATETABLEEMP
(EmpnoNUMBER(4)primarykey,
EnameVARCHAR(10),
AgeNUMBER
(2),
CONSTRAINTC1CHECK(Aage<
=60),
JobVARCHAR(9),
SalNUMBER(7,2),
DeptnoNUMBER
(2),
CONSTRAINTFK_DEPTNO
FOREIGNKEY(Deptno)
REFERENCESDEPT(Deptno));
7关系系统中,当操作违反实体完整性、参照完整性与用户定义的完整性约束条件时,一般就是如何分别进行处理的?
对于违反实体完整性与用户定义完整性的操作,一般都采用拒绝执行的方式处理。
而对于违反参照完整性的操作,并不都就是简单地拒绝执行,有时要根据应用语义执行一些附加的操作,以保证数据的正确性。
第7章数据库恢复技术
5.数据库的恢复技术有哪些?
数据转储与登录日志文件就是数据库恢复的基本技术。
当系统运行过程中发生故障,利用转储的数据库后备副本与日志文件就可以将数据库恢复到故障前的某个一致性状态。
第8章并发控制
1.在数据库中为什么要并发控制?
数据库就是共享资源,通常有许多个事务同时在运行。
当多个事务并发地存取数据库时就会产生同时读取与∕或修改同一数据的情况。
若对并发操作不加控制就可能读取与存储不正确的数据,破坏数据库的一致性。
所以数据库管理系统必须提供并发控制机制。
2.并发操作可能会产生哪几类数据不一致?
用什么方法能避免各种不一致的情况?
并发操作带来的数据不一致性包括三类:
丢失修改、不可重复读与读“脏”数据。
(1)丢失修改
两个事务T1与T2读入同一数据并修改,T2提交的结果破坏了(覆盖了)T1提交的结果,导致T1的修改被丢失。
(2)不可重复读
不可重复读就是指事务T1读取数据后,事务T2提交执行更新操作,使T1无法再现前一次读取结果。
(3)读”脏”数据
读“脏”数据就是指事务T1修改某一数据,并将其写回磁盘,事务T2读取同一数据后,T1由于某种原因被撤销,这时T1已修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致,则T2读到的数据就为“脏”数据,即不正确的数据。
避免不一致性的方法与技术就就是并发控制。
最常用的技术就是封锁技术。
也可以用其她技术,例如在分布式数据库系统中可以采用时间戳方法来进行并发控制。
4.基本的封锁类型有几种?
试述它们的含义。
基本的封锁类型有两种:
排它锁与共享锁。
排它锁又称为写锁。
若事务T对数据对象A加上X锁,则只允许T读取与修改A,其她任何事务都不能再对A加任何类型的锁,直到T释放A上的锁。
这就保证了其她事务在T释放A上的锁之前不能再读取与修改A。
共享锁又称为读锁。
若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其她事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。
这就保证了其她事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。
5.如何用封锁机制保证数据的一致性?
DBMS在对数据进行读、写操作之前首先对该数据执行封锁操作,例如下图中事务T1在对进行修改之前先对A执行Xock(A),即对A加X锁。
这样,当T2请求对A加X锁就是就被拒绝,T2只能等待T1释放A上的锁后才能获得对A的X锁,这时它读到的A就是T1更新后的值,再按此新的A值进行运算。
这样就不会丢失T1的更新。
T1
T2
1 XlockA获得
2 读A=16
3 A←A-1
写回A=15
Commit
UnlockA
XlockA
等待
获得XlockA
读A=15
A←A-1
写回A=14
Commit
UnlockA
DBMS按照一定的封锁协议,对并发控制进行控制,使得多个并发操作有序地执行,就可以避免丢失修改、不可重复读与读“脏”数据等数据不一致性。
5.什么就是封锁协议?
不同级别的封锁协议的主要区别就是什么?
在运用封锁技术对数据加锁时,要约定一些规则。
例如,在运用X锁与S锁对数据对象加锁时,要约定何时申请X锁或S锁、何时释放封锁等。
这些约定或者规则称为封锁协议。
对封锁方式约定不同的规则,就形成了各种不同的封锁协议、不同级别的封锁协议,例如三级封锁协议,三级封锁协议的主要区别在于什么操作需要申请封锁,何时申请封锁以及何时释放锁(即持锁时间的长短)。
一级封锁协议:
事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。
二级封锁协议:
一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,读完后即可释放S锁。
三级封锁协议:
一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放。
8.什么就是活锁?
什么就是死锁?
T1T2T3T4
LockR、、、
、LockR、、
、等待lockR、
Unlock等待、LockR
、等待LockR等待
、等待、等待
、等待Unlock等待
等待、LockR
如果事务T1封锁了数据R,事务T2又请求封锁R,于就是T2等待。
T3也请求封锁R,当T1释放了R上的封锁之后系统首先批准了T3的请求,T2仍然等待。
然后T4又请求封锁R,当T3释放了R上的封锁之后系统又批准了T4的请求……T2有可能永远等待,这就就是活锁的情形。
活锁的含义就是该等待事务等待时间太长,似乎被锁住了,实际上可能被激活。
如果事务T1封锁了数据R1,T2封锁了数据R2,然后T1又请求封锁R2,因T2已封锁了R2,于就是T1等待T2释放R2上的锁。
接着T2又申请分所R1,因T1已封锁了R1,也只能T1释放R1上的锁。
这样就出现了T1在等待T2,而T2又在等待T1的局面,T1与T2两个事务永远不能结束,形成死锁。
T1T2
lockR1、
、LockR2
、、
LockR2、
等待lockR1、
8.试述活锁的产生原因与解决方法。
活锁产生的原因:
当一系列封锁不能按照其先后顺序执行时,就可能导致一些事务无限期等待某个封锁,从而导致活锁。
避免活锁的简单方法就是采用先来先服务的策略。
当多个事务请求封锁同一数据对象时,封锁子系统按请求封锁的先后次序对事务排队,数据对象上的锁一旦释放就批准申请队列中的第一个事务获得锁。
10.请给出预防死锁的若干方法。
在数据库中,产生死锁的原因就是两个或多个事务都已封锁了一些数据对象,然后又都请求已被其她事务封锁的数据加锁,从而出现死等待。