数据库原理课后题答案.doc

上传人:h**** 文档编号:786112 上传时间:2018-11-01 格式:DOC 页数:19 大小:181.50KB
下载 相关 举报
数据库原理课后题答案.doc_第1页
第1页 / 共19页
数据库原理课后题答案.doc_第2页
第2页 / 共19页
数据库原理课后题答案.doc_第3页
第3页 / 共19页
数据库原理课后题答案.doc_第4页
第4页 / 共19页
数据库原理课后题答案.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、第 1 章1.试述数据、数据库、数据库系统、数据库管理系统的概念。答:(1)数据:描述事物的符号记录成为数据。数据的种类有数字、文字、图形、图像、声音、正文等。数据与其语义是不可分的。(2)数据库:数据库是长期储存在计算机内的、有组织的、可共享的数据集合。数据库中的数据按照一定的数据模型组织。描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。(3)数据库系统:数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发人具) 、应用系统、数据库管理员构成。(4)数据库管理系统:数据库管理系统是位于用户与操作系统之间的一层数据管理软件,用

2、于科学地组织和存储数据、高效地获取和维护数据。DBMS 的主要功能包括数据定义功能、数据操作功能、数据库的建立和维护功能。6.试述数据库系统三级模式结构,这种结构的优点是什么?答:数据库系统的三级模式机构由外模式、模式和内模式组成。外模式,亦称子模式或用户模式,是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。模式亦称逻辑模式,是数据库中全体数据呃逻辑结构和特征的描述,是所有用户的公共数据视图。模式描述的是数据的全局逻辑结构。外模式涉及的是数据的内部逻辑结构,通常是模式的子集。内模式,亦称存储模式,

3、是数据在数据库内部的表示,即对数据的物理结构和存储方式的描述。数据库系统的三级模式是对数据的三个抽象级别,它对数据的具体组织留给DBMS 管理,使用户能逻辑抽象地处理数据,而不必关心数据在计算机中的表示和存储。为了能够在内部实现这三个抽象层次的联系和转换,数据库系统在这三级模式之间提供了两层映像:外模式模式映像和模式内模式映像。正是这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。7.定义并解释下列术语。外模式:亦称子模式或用户模式,是数据库用户(包括应用程序员和最 终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的 数据视图,是与某一应用有关的数据的

4、逻辑表示。内模式:亦称存储模式,是数据在数据库内部的表示,即对数据的物理结构和存储方式的描述。模式:亦称逻辑模式,是数据库中全体数据逻辑结构和特征的描述,是所有用户的公共数据视图。模式描述的是数据的全局逻辑结构。外模式涉及的是数据的内部逻辑结构,通常是模式的子集。DDL:数据库定义语言,用来定义数据库模式、外模式、内模式的语言。DML:数据操纵语言,用来对数据库中数据进行查询、插入、删除和修改的语 句。8.什么叫数据与程序的物理独立性?什么叫数据与程序的逻辑独立性?为什么数据库系统具有数据与程序的独立性?答:数据与程序的逻辑独立性:当模式改变时(例如增加新的关系、新的属性、改变属性的数据类型等

5、),由数据库管理员各个外模式模式的映像做相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。数据与程序的物理独立性:当数据库的存储结构改变了,有数据库管理员对模式内模式映像做相应改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性。数据库管理系统在三级模式之间提供的两层映像保证了数据库系统中的数据具有较高的逻辑独立性和物理独立性。第 2 章 数据模型3试描述数据模型的三个要素。数据模型由数据结构、数据操作和完整性约束三部分组成。(1)数据结构:是所研究的对象类

6、型的集合,是对系统静态特性的描述。(2)数据操作:是对数据库中各种对象(型)的实例(值)允许进行的操作的集合,包括操作及有关的操作规则,是对系统动态特性的描述。(3)数据的约束条件: 是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。7.试述关系模型的概念,定义并解释以下术语。答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。(1)关系:一个关系对应通常说法的一张表(2)关系模式:对关系的描述,一般表示为:关系名(属性 1,属性 2,属性 n)(3)元祖:表中的

7、一行即为一个元组(4)属性:表中的一列即为一个属性(5)码:表中的某个属性组,它可以惟一确定一个元组(6)域:属性的取值范围(7)分量:元组中的一个属性值第 3 章 关系数据库3定义并理解下列术语,说明它们之间的联系与区别。 (1)域:域是一组具有相同数据类型的值的集合;笛卡儿积:给定一组域 D1,D2,Dn,这些域中可以有相同的。D1,D2,Dn 的笛卡尔积为: D1D2Dn= (d1 ,d2,dn )|diDi,i=1 , 2,n 其中每一个元素(d1,d2,dn)叫做一个 n 元组或简称元组。元素中的每一个值 di 叫做一个分量。关系:在域 D1,D2 ,Dn 上笛卡尔积 D1D2Dn

8、的子集称为关系,表示为R( D1, D2,Dn )元组:关系中的每个元素是关系中的元组。属性:关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。由于域可以相同,为了加以区分,必须对每列起一个名字,称为属性。(2)候选码:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码。主码:若一个关系有多个候选码,则选定其中一个为主码。外部码:设 F 是基本关系 R 的一个或一组属性,但不是关系 R 的码,如果F 与基本关系 S 的主码 Ks 相对应,则称 F 是基本关系 R 的外部码,简称外码。基本关系 R 称为参照关系,基本关系 S 称为被参照关系或目标关系。关系R 和 S

9、可以是相同的关系。(3)关系模式:关系的描述称为关系模式。它可以形式化地表示为R( U,D,dom,F)其中 R 为关系名, U 为组成该关系的属性名集合,D 为属性组U 中属性所来自的域,dom 为属性向域的映像集合,F 为属性间数据的依赖关系集合。关系:在域 D1,D2 ,,Dn 上笛卡儿积 D1D2Dn 的子集称为关系,表示为 R(D1,D2,Dn) ,关系是关系模式在某一时刻的状态或内容。关系模式是静止的、稳定的;而关系是动态的、随时间不断变化的,因为关系操作在不断更新着数据库中的数据。关系数据库:关系数据库也有型和值之分。关系数据库的型也称为关系数据库模式,是对关系数据库的描述,它包

10、括若干域的定义以及在这些域上定义的若干关系模式。关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。4 试述关系模型的完整性规则。在参照完整性中,为什么外部码属性的值也可以为空?什么情况下才可以为空?答:关系模型的完整性规则是对关系的某种约束条件。关系模型中可以有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称做事关系的两个不变性,应该由关系系统自动支持。(1)实体完整性规则:若属性 A 是基本关系 R 的主属性,则属性 A 不能取空值。(2)参照完整性规则:若属性(或属性组)F 是基本关系

11、R 的外码,它与基本关系 S 的主码 Ks 相对应(基本关系 R 和 S 不一定是不同的关系) ,则对于R 中每个元组在 F 上的值必须为:1)或者取空值( F 的每个属性值均为空值)2)或者等于 S 中的某个元组的主码值。(3)用户定义的完整性是针对某一具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。在参照完整性中,外部码属性的值可以为空,它表示该属性的值尚未确定,但前提条件是该外部码属性不是其所在关系的主属性。例如,在下面的“学生”表中, “专业号”是一个外部码,不是学生表的主属性,可以为空,其语义是,该学生的专业尚未确定。学生(学号,姓名,性别,专业号,年龄)

12、专业(专业号,专业名)而在下面的“选修”表中的“课程号”虽然也是一个外部码属性,但它又是“课程”表的主属性,所以不能为空,因为关系模型必须满足实体完整性。课程(课程号,课程名,学分)选修(学号,课程号,成绩)p61 5、设有一个 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)组成;零件表

13、P 由零件代码 (PNO)、零件名(PNAME) 、颜色(COLOR)、重量(WEIGHT)组成;工程项目表 J 由工程项目代码( JNO) 、工程项目名(JNAME) 、工程项目所在城市(CITY)组成;供应情况表 SPJ 由供应商代码(SNO) 、零件代码(PNO) 、工程项目代码(JNO) 、供应数量(QTY )组成,表示某供应商供应某种零件给某工程项目的数量为 QTY。今有若干数据如下:S 表P 表PNO PNAME COLOR WEIGHTP1 螺母 红 12P2 螺栓 绿 17P3 螺丝刀 蓝 14P4 螺丝刀 红 14P5 凸轮 蓝 40P6 齿轮 红 30J 表JNO JNAM

14、E CITYJ1 三建 北京J2 一汽 长春J3 弹簧厂 天津J4 造船厂 天津J5 机车厂 唐山J6 无线电厂 常州J7 半导体厂 南京SPJ 表SNO PNO JNO QTYS1 P1 J1 200SNO SNAME STATUS CITYS1 精益 20 天津S2 盛锡 10 北京S3 东方红 30 北京S4 丰泰盛 20 天津S5 为民 30 上海S1 P1 J3 100S1 P1 J4 700S1 P2 J2 100S2 P3 J1 400S2 P3 J2 200S2 P3 J4 500S2 P3 J5 400S2 P5 J1 400S2 P5 J2 100S3 P1 J1 200S

15、3 P3 J1 200S4 P5 J1 100S4 P6 J3 300S4 P6 J4 200S5 P2 J4 100S5 P3 J1 200S5 P6 J2 200S5 P6 J4 500试分别用关系代数完成如下查询:(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)求没有使用天津

16、供应商生产的红色零件的工程号 JNO;答关系代数JNO(J)-JNO(SNO(CITY=天津(S) SNO,PN0,JNO(SPJ)PNO(COLOR=红(P)解析 减法运算中被减的部分是使用了天津供应商生产的红色零件的所有工程号,JNO(J )是全部工程的工程号,两者相减就是没有使用天津供应商生出的红色零件的工程号,包括没有使用任何零件的工程号。(5)求至少用了 S1 供应商所供应的全部零件的工程号 JNO;答关系代数JNO,PNO(SPJ) PNO(SNO=s1(SPJ)解析上面公式中除号前的部分是所有工程与该工程所用的零件,除号后的部分是 S1 所供应的全部零件号。对于 SPJ 表中的某

17、一个 JNO,如果该工程使用的所有零件的集合包含 S1 所供应的全部零件号,则该 JNO 符合本题条件,在除法运算的结果集中。可以看到,使用关系代数的除法运算概念清晰,语言表达也很简单。7关系代数的基本运算有哪些?选择、投影、并、差和笛卡儿积五种。第 4 章 关系数据库的标准语言 SQL5针对习题 3 中的 4 个表试用 SQL 完成如下操作。(1 )找出所有供应商的姓名和所在的城市。SELECT SNAME,CITY FROM S;(5 )找出上海厂同提供的所有零件号码SELECT DISTINCT PNO FROM SPJ WHERE SNO IN(SELECT SNO FROM S WH

18、ERE CITY=上海 ) ;(8 ) 把所有红色的零件的颜色改成蓝色UPDATE P SET COLOR=蓝 WHERE COLOR=红(10) 从供应商的关系中删除 S2 的记录,并从供应关系中删除相应记录。DELETE FROM SPJ WHERE SNO=2;DELETE FROM S WHERE SNO=S2;6什么是基本表?什么是视图?两者的区别和联系是什么?基本表是本身独立存在的表。视图是人一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表。即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。用户可以如同基本表那样使用视图,可以在

19、视图上再定义视图。7试述视图的优点。1)视图能简化用户的操作;2)视图使用户能以多种角度看待同一数据;3)视图对重构数据库提供了一定程度的逻辑独立性;4)视图能够对机密数据提供安全保护。9哪类视图是可以更新的?基本表的行列子集视图是可以更新的。第 5 章 数据库的安全性1 什么是数据库的安全性?答: 数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露,更改过破坏。试述实现数据库安全性控制的常见方法和技术3 实现数据库安全性控制的常见方法和技术有:(1 ) 用户标识和鉴别:该方法由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供系

20、统的使用权。(2 ) 存取控制:通过用户权限定义和合法权检查确保只有合法权限的用户访问数据库,所有未被授权的人无法存取数据。例如 C2 集中地自主存取控制( DAC) ,B1 集中的强制存取控制(MAC) 。(3 ) 视图机制:为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。(4 ) 审计:建立审计日志,把用户对数据库的所有操作自动记录下来放入审计日志中,DBA 可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。(5 ) 数据加密:对存储和传输的数据进行加密处理,从而使得不知道解密算

21、法的人无法获知数据的内容。6. 什么是数据库的审计功能,为什么要提供审计功能?答:审计功能是指 DBMS 的审计模块在用户对数据库执行操作的同时把所有操作自动记录到系统的审计日志中。因为任何系统的安全保护措施都不是完美无缺的,蓄意盗窃破坏数据的人总可能存在。利用数据库的审计功能,DBA 可以根据审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。第 6 章 数据库的完整性1什么是数据库的完整性?答:数据库的完整性是指数据的正确性和相容性。6假设有下面两个关系模式:职工(职工号,姓名,年龄,职务,工资,部门号) ,其中职工号为主码;部门(部门号,名称,经理名,

22、地址,电话号) ,其中部门号是主码。用 SQL 语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义:定义每个模式的主码;定义参照完整性;定义职工年龄不超过 60 岁。答:CREATE TABLE DEPT(Deptno NUMBER(2),Deptname VARCHAR(10),Manager VARCHAR(10),PhoneNumber Char(12)CONSTRAINT PK_SC PRIMARY KEY (Deptno);CREATE TABLE EMP(Empno NUMBER(4) primary key,Ename VARCHAR(10),Age NUMBER(

23、2),CONSTRAINT C1 CHECK (Aage =60),Job VARCHAR(9),Sal NUMBER(7,2),Deptno NUMBER(2),CONSTRAINT FK_DEPTNOFOREIGN KEY(Deptno)REFERENCES DEPT(Deptno);7 关系系统中,当操作违反实体完整性、参照完整性和用户定义的完整性约束条件时,一般是如何分别进行处理的?答:对于违反实体完整性和用户定义完整性的操作,一般都采用拒绝执行的方式处理。而对于违反参照完整性的操作,并不都是简单地拒绝执行,有时要根据应用语义执行一些附加的操作,以保证数据的正确性。第 7 章 数据库恢

24、复技术5数据库的恢复技术有哪些?数据转储和登录日志文件是数据库恢复的基本技术。当系统运行过程中发生故障,利用转储的数据库后备副本和日志文件就可以将数据库恢复到故障前的某个一致性状态。第 8 章 并发控制1.在数据库中为什么要并发控制?答:数据库是共享资源,通常有许多个事务同时在运行。当多个事务并发地存取数据库时就会产生同时读取和或修改同一数据的情况。若对并发操作不加控制就可能读取和存储不正确的数据,破坏数据库的一致性。所以数据库管理系统必须提供并发控制机制。2.并发操作可能会产生哪几类数据不一致?用什么方法能避免各种不一致的情况?答:并发操作带来的数据不一致性包括三类:丢失修改、不可重复读和读

25、“脏”数据。(1)丢失修改两个事务 T1 和 T2 读入同一数据并修改,T2 提交的结果破坏了(覆盖了)T1 提交的结果,导致 T1 的修改被丢失。(2)不可重复读不可重复读是指事务 T1 读取数据后,事务 T2 提交执行更新操作,使 T1 无法再现前一次读取结果。(3)读”脏”数据读“脏”数据是指事务 T1 修改某一数据,并将其写回磁盘,事务 T2 读取同一数据后,T1 由于某种原因被撤销,这时 T1 已修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致,则 T2 读到的数据就为“脏”数据,即不正确的数据。避免不一致性的方法和技术就是并发控制。最常用的技术是封锁技术。也可以用其他技

26、术,例如在分布式数据库系统中可以采用时间戳方法来进行并发控制。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 释

27、放 A 上的 S 锁之前不能对 A做任何修改。5如何用封锁机制保证数据的一致性?答:DBMS 在对数据进行读、写操作之前首先对该数据执行封锁操作,例如下图中事务 T1 在对进行修改之前先对 A 执行 Xock(A) ,即对 A 加 X 锁。这样,当 T2 请求对 A 加 X 锁是就被拒绝,T2 只能等待 T1 释放 A 上的锁后才能获得对A 的 X 锁,这时它读到的 A 是 T1 更新后的值,再按此新的 A 值进行运算。这样 就不会丢失 T1 的更新。DBMS 按照一定的封锁协议,对并发控制进行控制,使得多个并发操作有序地执行,就可以避免丢失修改、不可重复读和读“脏”数据等数据不一致性。5.什

28、么是封锁协议?不同级别的封锁协议的主要区别是什么?答:在运用封锁技术对数据加锁时,要约定一些规则。例如,在运用 X 锁和S 锁对数据对象加锁时,要约定何时申请 X 锁或 S 锁、何时释放封锁等。这些约定或者规则称为封锁协议。对封锁方式约定不同的规则,就形成了各种不同T1 T21 XlockA 获得2 读 A=163 AA-1写回 A=15CommitUnlock A Xlock A等待等待等待等待获得 Xlock A读 A=15AA-1写回 A=14CommitUnlock A的封锁协议、不同级别的封锁协议,例如三级封锁协议,三级封锁协议的主要区别在于什么操作需要申请封锁,何时申请封锁以及何时

29、释放锁(即持锁时间的长短) 。一级封锁协议:事务 T 在修改数据 R 之前必须先对其加 X 锁,直到事务结束才释放。二级封锁协议:一级封锁协议加上事务 T 在读取数据 R 之前必须先对其加S 锁,读完后即可释放 S 锁。三级封锁协议:一级封锁协议加上事务 T 在读取数据 R 之前必须先对其加S 锁,直到事务结束才释放。8什么是活锁?什么是死锁?答:T1 T2 T3 T4Lock R . . . Lock R . . 等待 lock R .Unlock 等待 . Lock R. 等待 Lock R 等待. 等待 . 等待. 等待 Unlock 等待, 等待 . Lock R如果事务 T1 封锁了

30、数据 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 两个事务永远不能结束,形成死锁。T1 T2lock R1 . Lock R2. .Lock R2 .

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 教育教学资料库 > 参考答案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。