《(完好版)数据库原理课后题答案.docx》由会员分享,可在线阅读,更多相关《(完好版)数据库原理课后题答案.docx(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
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,属性n3元祖:表中的一行即为一个元组4属性:表中的一列即为一个属性5码:
7、表中的某个属性组,它能够唯一确定一个元组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的子集称为关系,表示为RD1,D2,Dn元组:关系中的每个元素是关系中的元组。属性:关系也是一个二维表,表的每行对应一个元组
8、,表的每列对应一个域。由于域能够一样,为了加以区分,必须对每列起一个名字,称为属性。2候选码:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码。主码:若一个关系有多个候选码,则选定其中一个为主码。外部码:设F是基本关系R的一个或一组属性,但不是关系R的码,假如F与基本关系S的主码Ks相对应,则称F是基本关系R的外部码,简称外码。基本关系R称为参照关系,基本关系S称为被参照关系或目的关系。关系R和S能够是一样的关系。3关系形式:关系的描绘称为关系形式。它能够形式化地表示为RU,D,dom,F其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,dom为属性向
9、域的映像集合,F为属性间数据的依靠关系集合。关系:在域D1,D2,,Dn上笛卡儿积D1D2Dn的子集称为关系,表示为RD1,D2,Dn,关系是关系形式在某一时刻的状态或内容。关系形式是静止的、稳定的;而关系是动态的、随时间不断变化的,由于关系操作在不断更新着数据库中的数据。关系数据库:关系数据库也有型和值之分。关系数据库的型也称为关系数据库形式,是对关系数据库的描绘,它包括若干域的定义以及在这些域上定义的若干关系形式。关系数据库的值是这些关系形式在某一时刻对应的关系的集合,通常就称为关系数据库。4试述关系模型的完好性规则。在参照完好性中,为何外部码属性的值可以以为空?什么情况下才能够为空?答:
10、关系模型的完好性规则是对关系的某种约束条件。关系模型中能够有三类完好性约束:实体完好性、参照完好性和用户定义的完好性。其中实体完好性和参照完好性是关系模型必须知足的完好性约束条件,被称做事关系的两个不变性,应该由关系系统自动支持。1实体完好性规则:若属性A是基本关系R的主属性,则属性A不能取空值。2参照完好性规则:若属性或属性组F是基本关系R的外码,它与基本关系S的主码Ks相对应基本关系R和S不一定是不同的关系,则对于R中每个元组在F上的值必须为:1或者取空值F的每个属性值均为空值2或者等于S中的某个元组的主码值。3用户定义的完好性是针对某一详细关系数据库的约束条件。它反映某一详细应用所涉及的
11、数据必须知足的语义要求。在参照完好性中,外部码属性的值能够为空,它表示该属性的值尚未确定,但前提条件是该外部码属性不是其所在关系的主属性。例如,在下面的“学生表中,“专业号是一个外部码,不是学生表的主属性,能够为空,其语义是,该学生的专业尚未确定。学生学号,姓名,性别,专业号,年龄专业专业号,专业名而在下面的“选修表中的“课程号固然也是一个外部码属性,但它又是“课程表的主属性,所以不能为空,由于关系模型必须知足实体完好性。课程课程号,课程名,学分选修学号,课程号,成绩p615、设有一个SPJ数据库,包括S、P、J、SPJ四个关系形式:S(SNO,SNAME,STATUS,CITY);P(PNO
12、,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表试分别用关系代数完成如下查询:1
13、求供给工程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)解析减法运算中被减的部分是使用了天津供给商生产的红色零件的所有工程号,JNOJ是全部工程的工程号,两者相减就是没有使用天
14、津供给商生出的红色零件的工程号,包括没有使用任何零件的工程号。(5)求至少用了S1供给商所供给的全部零件的工程号JNO;答关系代数JNO,PNO(SPJ)PNO(SNO=s1(SPJ)解析上面公式中除号前的部分是所有工程与该工程所用的零件,除号后的部分是S1所供给的全部零件号。对于SPJ表中的某一个JNO,假如该工程使用的所有零件的集合包含S1所供给的全部零件号,则该JNO符合此题条件,在除法运算的结果集中。能够看到,使用关系代数的除法运算概念明晰,语言表达也很简单。7关系代数的基本运算有哪些?选择、投影、并、差和笛卡儿积五种。第4章关系数据库的标准语言SQL5针对习题3中的4个表试用SQL完
15、成如下操作。1找出所有供给商的姓名和所在的城市。SELECTSNAME,CITYFROMS;5找出上海厂同提供的所有零件号码SELECTDISTINCTPNOFROMSPJWHERESNOINSELECTSNOFROMSWHERECITY=上海;8把所有红色的零件的颜色改成蓝色UPDATEPSETCOLOR=蓝WHERECOLOR=红(10)从供给商的关系中删除S2的记录,并从供给关系中删除相应记录。DELETEFROMSPJWHERESNO=2;DELETEFROMSWHERESNO=S2;6什么是基本表?什么是视图?两者的区别和联络是什么?基本表是本身独立存在的表。视图是人一个或几个基本表
16、导出的表。视图本身不独立存储在数据库中,是一个虚表。即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。用户能够好像基本表那样使用视图,能够在视图上再定义视图。7试述视图的优点。1视图能简化用户的操作;2视图使用户能以多种角度看待同一数据;3视图对重构数据库提供了一定程度的逻辑独立性;4视图能够对机密数据提供安全保护。9哪类视图是能够更新的?基本表的行列子集视图是能够更新的。第5章数据库的安全性1什么是数据库的安全性?答:数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露,更改正毁坏。试述实现数据库安全性控制的常见方法和技术3实现数据库安全性控制的
17、常见方法和技术有:1用户标识和鉴别:该方法由系统提供一定的方式让用户标识本人的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供系统的使用权。2存取控制:通过用户权限定义和合法权检查确保只要合法权限的用户访问数据库,所有未被受权的人无法存取数据。例如C2集中地自主存取控制DAC,B1集中的强迫存取控制MAC。3视图机制:为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,进而自动地对数据提供一定程度的安全保护。4审计:建立审计日志,把用户对数据库的所有操作自动记录下来放入审计日志中,DBA能够利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非
18、法存取数据的人、时间和内容等。5数据加密:对存储和传输的数据进行加密处理,进而使得不知道解密算法的人无法获知数据的内容。6.什么是数据库的审计功能,为何要提供审计功能?答:审计功能是指DBMS的审计模块在用户对数据库执行操作的同时把所有操作自动记录到系统的审计日志中。由于任何系统的安全保护措施都不是完美无缺的,蓄意盗窃毁坏数据的人总可能存在。利用数据库的审计功能,DBA能够根据审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。第6章数据库的完好性1什么是数据库的完好性?答:数据库的完好性是指数据的正确性和相容性。6假设有下面两个关系形式:职工职工号,姓名,
19、年龄,职务,工资,部门号,其中职工号为主码;部门部门号,名称,经理名,地址,电话号,其中部门号是主码。用SQL语言定义这两个关系形式,要求在形式中完成下面完好性约束条件的定义:定义每个形式的主码;定义参照完好性;定义职工年龄不超过60岁。答:CREATETABLEDEPT(DeptnoNUMBER(2),DeptnameVARCHAR(10),ManagerVARCHAR(10),PhoneNumberChar(12)CONSTRAINTPK_SCPRIMARYKEY(Deptno);CREATETABLEEMP(EmpnoNUMBER(4)primarykey,EnameVARCHAR(10
20、),AgeNUMBER(2),CONSTRAINTC1CHECK(Aage避免不一致性的方法和技术就是并发控制。最常用的技术是封锁技术。可以以用其他技术,例如在分布式数据库系统中能够采用时间戳方法来进行并发控制。4基本的封锁类型有几种?试述它们的含义。答:基本的封锁类型有两种:排它锁和分享锁。排它锁又称为写锁。若事务T对数据对象A加上X锁,则只允许T读取和修改A,其他任何事务都不能再对A加任何类型的锁,直到T释放A上的锁。这就保证了其他事务在T释放A上的锁之前不能再读取和修改A。分享锁又称为读锁。若事务T对数据对象A加上S锁,则事务T能够读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁
21、,直到T释放A上的S锁。这就保证了其他事务能够读A,但在T释放A上的S锁之前不能对A做任何修改。5怎样用封锁机制保证数据的一致性?答:DBMS在对数据进行读、写操作之前首先对该数据执行封锁操作,例如下列图中事务T1在对进行修改之前先对A执行XockA,即对A加X锁。这样,当T2请求对A加X锁是就被拒绝,T2只能等待T1释放A上的锁后才能获得对A的X锁,这时它读到的A是T1更新后的值,再按此新的A值进行运算。这样就不会丢失T1的更新。DBMS根据一定的封锁协议,对并发控制进行控制,使得多个并发操作有序地执行,就能够避免丢失修改、不可重复读和读“脏数据等数据不一致性。5.什么是封锁协议?不同级别的
22、封锁协议的主要区别是什么?答:在运用封锁技术对数据加锁时,要约定一些规则。例如,在运用X锁和S锁对数据对象加锁时,要约定何时申请X锁或S锁、何时释放封锁等。这些约定或者规则称为封锁协议。对封锁方式约定不同的规则,就构成了各种不同的封锁协议、不同级别的封锁协议,例如三级封锁协议,三级封锁协议的主要区别在于什么操作需要申请封锁,何时申请封锁以及何时释放锁即持锁时间的长短。一级封锁协议:事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。二级封锁协议:一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,读完后即可释放S锁。三级封锁协议:一级封锁协议加上事务T在读取数据R之前必须先对其加S
23、锁,直到事务结束才释放。8什么是活锁?什么是死锁?答:T1T2T3T4LockR.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又请求封锁R
24、2,因T2已封锁了R2,于是T1等待T2释放R2上的锁。接着T2又申请分所R1,因T1已封锁了R1,也只能T1释放R1上的锁。这样就出现了T1在等待T2,而T2又在等待T1的局面,T1和T2两个事务永远不能结束,构成死锁。T1T2lockR1.LockR2.LockR2.等待lockR1.8.试述活锁的产生原因和解决方法。答:活锁产生的原因:当一系列封锁不能根据其先后顺序执行时,就可能导致一些事务无限期等待某个封锁,进而导致活锁。避免活锁的简单方法是采用先来先服务的策略。当多个事务请求封锁同一数据对象时,封锁子系统按请求封锁的先后次序对事务排队,数据对象上的锁一旦释放就批准申请队列中的第一个事
25、务获得锁。10请给出预防死锁的若干方法。答:在数据库中,产生死锁的原因是两个或多个事务都已封锁了一些数据对象,然后又都请求已被其他事务封锁的数据加锁,进而出现死等待。防止死锁的发生其实就是要毁坏产生死锁的条件。预防死锁通常有两种方法:1一次封锁法,要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行;2顺序封锁法,预先对数据对象规定一个封锁顺序,所有事务都能按这个顺序实行封锁。不过,预防死锁的策略不大合适数据库系统的特点,详细原因可参加(概论)8.4。11请给出检测死锁发生的一种方法,当发生死锁后怎样解除死锁?答:数据库系统一般采用允许死锁发生,DBMS检测到死锁后加以解除的方法
26、。DBMS中诊断死锁的方法与操作系统类似,一般使用超时法或事务等待图法。超时法是:假如一个事务的等待时间超过了规定的时限,就以为发生了死锁。超时法实现简单,但有可能误判死锁,事务因其他原因长时间等待超过时限时,系统会误以为发生了死锁。若时限设置的太长,又不能及时发现死锁发生。DBMS并发控制子系统检测到死锁后,就要设法解除。通常采用的方法是选择一个处理死锁代价最小的事务,将其撤销,释放此事务持有的所有锁,使其他事务得以继续运行下去。当然,对撤销的事务所执行的数据修改操作必须加以恢复。12什么样的并发调度是正确的调度?答:可串行化的调度室正确的调度。可串行化的调度的定义:多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行执行它们时的结果一样,称这种调度策略为可串行化的调度。13设T1,T2,T3是如下的3个事务:T1:A=A+2;T2:A=A*2;T3:A=A*2;(AA2)设A的初值为0.1若这三个事务允许并行执行,则有多少可能的正确结果,请逐一列举出来。答:A的最终结果可能有2、4、8、16。由于串行执行次序有T1T2T3、T1T3T2、T2T1T3、T2T3T1、T3T1T2、T3T2T1。对应的执行结果是16、8、4、2、4、2。2请给出一个可串行化的调度,并给出执行结果。