《数据库原理及应用》作业参考答案
发布时间:2024-10-12
发布时间:2024-10-12
《数据库原理及应用》作业参考答案
《数据库原理及应用》作业参考答案
一、选择题
1.A
2.①B ②B ③B
3.A
4.C
5.B
6.B
7.B
8.B
9.D
10.B
11.B
12.①B ②A ③C
13.C
14.A
15.D
16.C
17.A
18.A
19.B
20.C
21.①D ②B
22.B
23.B
24.B
25.A
26.①B ②A ③C
27.C
28.A
29.C
30.D
二、填空题
1.①数据定义功能 ②数据操纵功能
2.①层次模型 ②网状模型 ③关系模型
3.B最小关系系统
4.①数据结构 ②数据操作 ③完整性约束
5.①并 ②差 ③笛卡尔积 ④投影 ⑤选择
6.关系数据结构
《数据库原理及应用》作业参考答案
7.①逻辑数据独立性 ②物理数据独立性
8.①谓词表达 ②元组关系 ③域关系
9.①数据库管理系统 ②用户 ③操作系统
10.三种关系操作
三、简答题
1. 答:
数据独立性表示应用程序与数据库中存储的数据不存在依赖关系,包括逻辑数据独立性和物理数据独
立性。
逻辑数据独立性是指局部逻辑数据结构(外视图即用户的逻辑文件)与全局逻辑数据结构(概念视图)
之间的独立性。当数据库的全局逻辑数据结构(概念视图)发生变化(数据定义的修改、数据之间联系的变更或增加新的数据类型等)时,它不影响某些局部的逻辑结构的性质,应用程序不必修改。
物理数据独立性是指数据的存储结构与存取方法(内视图)改变时,对数据库的全局逻辑结构(概
念视图)和应用程序不必作修改的一种特性,也就是说,数据库数据的存储结构与存取方法独立。
数据独立性的好处是,数据的物理存储设备更新了,物理表示及存取方法改变了,但数据的逻辑模
式可以不改变。数据的逻辑模式改变了,但用户的模式可以不改变,因此应用程序也可以不变。这将使程序维护容易,另外,对同一数据库的逻辑模式,可以建立不同的用户模式,从而提高数据共享性,使数据库系统有较好的可扩充性,给 DBA维护、改变数据库的物理存储提供了方便。
2.答:
事务是数据库进行的基本工作单位。事务具有原子性、一致性、隔离性和持续性。如果一个事务执
行成功,则全部更新提交;如果一个事务执行失败,则已做过的更新被恢复原状,好像整个事务从未有过这些更新,这样保持了数据库处于一致性状态。
3.答:
数据库在运行过程中可能产生的故障有如下几类:
①事务故障
事务在运行过程中由于种种原因,如输人数据的错误,运算溢出,违反了某些完整性限制,某些应用
程序的错误,以及并行事务发生死锁等,使事务未能运行到正常终止点之前就被撤消了,这种情况称
为“事务故障”。
②系统故障
系统故障是指系统在运行过程中,由于某种原因,如OS和DBMS代码错误,操作员操作失误,特定类
型的硬件错误(如CPU故障),突然停电等造成系统停止运行,致使事务在执行过程中以非控方式终
止。这时,内存中的信息丢失,而存储在外存储上的数据未受影响,这种情况称为“系统故障”。
③介质故障
系统在运行过程中,由于某种硬件故障,如磁盘损坏,磁头碰撞,或由于OS的某种潜在的错误,瞬
时强磁场干扰,使存储在外存上的数据部分损失或全部损失,称之为“介质故障”。
④计算机病毒
计算机病毒是一种人为的故障和破坏,它是一种计算机程序。通过读写染有病毒的计算机系统中的
程序和数据,这些病毒可以迅速繁殖和传播,危害计算机系统和数据库。
4.答:
《数据库原理及应用》作业参考答案
5.答: 数据库是一个共享资源,它允许多个用户程序并行地存取数据库中的数据,但是,如果系统对并行执
行的操作不加以控制就会存取和存储不正确的数据,破坏数据库的完整性。
并发控制的主要方法是采用封锁机制。封锁是事务T在对某个数据对象操作之前,先向系统发出请求
对其加锁。基本的封锁类型有两种:排名锁(锁)和共享锁(S锁)。所谓X锁,是事务T对数据A加上X锁时,只允许事务T读取和修改数据A,其他任何事务都不能再对A加任何类型的锁,直到T释放A上的锁。所谓S锁,是事务T对数据A加上S锁时,其他事务只能再对数据A加S锁,而不能加X锁,直到T释放A上的S锁。
6.答:
关系数据库是以关系模型作为数据的组织方式,关系模型是建立在严格的数学概念基础上的,关系数
据库的主要优点是概念简单清晰,用户不需了解复杂的存取路径,不需说明“怎么干”,只需说明“干什么”,易懂易学。因此关系数据模型逐渐取代了层次、网状数据模型,成为商业数据库管理系统的主流。 或:
·关系模型与非关系模型不同,它是建立在严格的数学概念的基础上的。
·关系模型的概念单一。无论实体还是实体之间的联系都用关系表示。对数据的检索结果也是关系(即关系表)。所以其数据结构简单、清晰,用户易懂易用。
·关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。
7.答:
由于硬件的故障、系统软件和应用软件的错误、操作的失误以及恶意的破坏都是不可避免的,这些
故障,轻则会造成运行事务非正常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中的
数据部分丢失或全部丢失。为了保证各种故障发生后,数据库中的数据都能从错误状态恢复到某种逻辑
一致状态,DBMS中的恢复子系统是必不可少的。
恢复子系统的功能就是利用冗余数据,再根据故障的类型采取相应的恢复措施,把数据库恢复到故
障前的某一时刻的一致性状态。
8.答:
关系数据库是以关系模型作为数据的组织方式,关系模型是建立在严格的数学概念基础上的,关系
数据库的主要优点是概念简单清晰,用户不需了解复杂的存取路径,不需说明“怎么干”,只需说明“干
什么”,易懂易学。
9.答:
《数据库原理及应用》作业参考答案
视图能够对机密数据提供安全保护。有了视图机制,就可以在设计数据库应用系统时,对不同的用户
定义不同的视图,使机密数据不出现在不应看到这些数据的用户视图上,这样就由视图的机制自动提供了对机密数据的安全保护功能。例如Student表涉及三个系的学生数据,可以在其上定义三个视图,每个视图只包含一个系的学生数据,并只允许每个系的学生查询自己所在系的学生视图。
例:建立信息系学生的视图。
CREATE VIEW IS_Student
AS
SELECT Sno, Sname, Sage
FROM Student
WHERE Sdept='IS';
数据库的安全性是指保护数据库,防止不合法的使用所造成的数据泄露和破坏。数据库系统中保证
数据安全性的主要措施是进行存取控制,即规定不同用户对于不同数据对象所允许执行的操作,并控制各用户只能存取他有权存取的数据。不同的用户对不同的数据应具有何种操作权力,是由DBA和表的建立者(即表的属主)根据具体情况决定的,SQL语言则为DBA和表的属主定义和回收这种权力提供了手段。 例:把查询Student表权限授给用户U1。
GRANT SELECT ON TABLE Student TO U1;
四、综合题
1.解:①本题的E-R图如图3所示。
②对应的关系模型结构如下:
科室(科名,科地址,科电话)
病房(病房号,床位号,科室名)
医生(工作证号,姓名,职称,科室名,年龄)
病人(病历号,姓名,性别,诊治,主管医生,病房号)
③每个关系模式的候选码如下:
科室的候选码是科名;
病房的候选码是科室名十病房号;
医生的候选码是工作证号;
病人的候选码是病历号。
图3 E-R图 2.解:① SELECT DISTINCT PROV
《数据库原理及应用》作业参考答案
FROM S
WHERE SD=’信息系’
② SELECT SN, GR
FROM S, SC
WHERE SD=’英语系’ AND CN=’计算机’ AND S.SNO=SC.SNO
ORDER BY GR DESC;
3.解:SC为1NF。
它存在插入、删除异常操作。当增设一门新课程时,因还没有学生选修,则缺少码的一部分SNO而不能执行插人操作:当所有学生退选某门课程而进行删除操作时,会将不该删除的课程信息删除掉。
SC关系中存在插入和删除操作异常的原因在于,该关系的候选码为(SNO,CNO),其中仅有非属性GRADE完全函数依赖于(SNO,CNO),其他非属性CTITLE、INAME、ILOCA都只函数依赖于CNO,即它们与(SNO,CNO)为部分函数依赖关系。分解后的关系模式如图4所示。
图 4 关系 SG和 CI
分解后的两个关系子模式都为2NF,并解决了先前的插入、删除异常操作。当增设一门新课程时,可将数据插入到CI表中;当所有学生退选某门课程时,只需删除SG表中的有关记录,而该课程的有关信息仍保留在CI表中。
分解2NF后的CI关系中仍存在插入、删除操作异常。若有一个新教师报到,需将其有关数据插入操作;当取消某门课程而删除CI表中的一条记录时,会将不该删除的教师的有关信息删除。CI表中出现操作异常的原因是该关系中存在非主属性对候选码的传递函数依赖:
CNO
→INAME,INAME→INAME→ILOCA 将CI进一步分解为如图5所示的Course和Instructor两个关系,可以解决上述操作异常。
Instructor
《数据库原理及应用》作业参考答案
4.解:
(0)令X={D},X=D。
(1)(0)(1)(0)在F中找出左边是D子集的函数依赖集,其结果是:D→HG, X= X HG=DGH,显然有X X。
在F中找出左边是DGH子集的函数依赖集,未找到,则X=DGH。由于X= X ,则D= DGH。
5.解:它为1NF。因为该关系的候选码为(工程号,材料号),而非主属性开工日期和完工日期部分函数依赖于
候选码的子集工程号,即:
开工日期
(工程号,材料号)完工日期
它不是2NF。
它存在操作异常,如果工程项目确定后,若暂时未用到材料,则该工程的数据因缺少码的一部分(材料号)
而不能进入到数据库中,出现插入异常。若某工程下马,则删去该工程的操作也可能丢失材料方面的信息。 将其中的部分函数依赖分解为一个独立的关系,则产生如图6所示的两个2NF关系子模式:
R1
R2
(2)(2)(1)+
分解后,新工程确定后,尽管还未用到材料,该工程数据可在关系R2中插入。某工程数据删除时,仅对关系R2操作,也不会丢失材料方面的信息。
6. 解:① SELECT B
FROM R, S
WHERE R.A=S.A AND C>50
② UPDATE R
SET B=’b4’
WHERE A IN
(SELECT A FROM S WHERE C=40)
7.解:① 找出店员人数不超过100人或者在长沙市的所有商店的代号和商店名。
SELECT A#, ANAME FROM A;
WHERE WQTY<=100 OR CITY=’长沙’
A
《数据库原理及应用》作业参考答案
② 找出至少供应代号为256的商店所供应的全部商品的商店名和所在城市。 SELECT A.ANAME, A.CITY FROM A, B;
WHERE A.A#=AB.A#AND AB.B#IN (SELECT AB.B#
FROM AB WHERE A#=’256’)
8.解:① Π2,6,7(σ籍贯=’上海’(S SC)
② Π2,3(S(Π1,2(SC) Π1(C))