安徽工业大学数据库第十一章习题解答

合集下载

2022年安徽工业大学数据科学与大数据技术专业《数据库系统原理》科目期末试卷A(有答案)

2022年安徽工业大学数据科学与大数据技术专业《数据库系统原理》科目期末试卷A(有答案)

2022年安徽工业大学数据科学与大数据技术专业《数据库系统原理》科目期末试卷A(有答案)一、填空题1、关系代数运算中,基本的运算是______________、______________、______________、______________和______________。

2、在SQL Server 2000中,某数据库用户User在此数据库中具有对T 表数据的查询和更改权限。

现要收回User对T表的数据更改权,下述是实现该功能的语句,请补全语句。

_____UPDATE ON T FROM User;3、关系系统的查询优化既是关系数据库管理系统实现的关键技术,又是关系系统的优点。

因为,用户只要提出______,不必指出 ______。

4、在SQL Server 2000中,数据页的大小是8KB。

某数据库表有1000行数据,每行需要5000字节空间,则此数据库表需要占用的数据页数为_____页。

5、SQL语言的数据定义功能包括______、______、______和______。

6、如果多个事务依次执行,则称事务是执行______;如果利用分时的方法,同时处理多个事务,则称事务是执行______。

7、数据仓库是______、______、______、______的数据集合,支持管理的决策过程。

8、设有关系模式R(A,B,C)和S(E,A,F),若R.A是R的主码,S.A是S的外码,则S.A的值或者等于R中某个元组的主码值,或者______取空值,这是规则,它是通过______和______约束来实现的。

9、视图是一个虚表,它是从______导出的表。

在数据库中,只存放视图的______,不存放视图对应的______。

10、数据库系统是利用存储在外存上其他地方的______来重建被破坏的数据库。

方法主要有两种:______和______。

二、判断题11、一个数据表只能有一个唯一索引。

()12、在数据表中,空值表示不确定。

国开学习网电大数据库应用技术第11章测验答案

国开学习网电大数据库应用技术第11章测验答案

国开学习网电大数据库应用技术第11章测验答案以下是对国开研究网电大数据库应用技术第11章测验的答案:1. 数据库事务具有ACID特性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。

3. 数据库的并发控制机制包括两阶段封锁(Two-Phase Locking)、时间戳(Timestamp)和多版本并发控制(MVCC)。

4. 数据库索引是一种用于加快数据访问速度的数据结构。

常见的索引类型有B树索引、哈希索引和位图索引。

5. 在数据库设计中,关系模型用于描述数据之间的关联关系。

关系模型包括实体(Entity)、属性(Attribute)和关系(Relationship)。

6. SQL(Structured Query Language)是一种用于管理关系型数据库的编程语言。

SQL可以用于创建、查询和操作数据库中的数据。

7. 数据库触发器(Trigger)是一种在特定事件发生时自动执行的程序。

触发器可以用于实现数据的自动更新和完整性约束。

8. 数据库备份是一种用于保护数据免受数据丢失的措施。

常见的数据库备份方式包括完全备份、增量备份和差异备份。

9. 数据库性能优化是一种通过优化数据库结构和查询语句,提高数据库查询性能和响应速度的方法。

常见的优化手段包括索引优化和查询优化。

10. 数据库安全性是指保护数据库免受非法访问和数据泄露的一种措施。

常见的数据库安全措施包括访问控制、加密和审计。

以上就是对国开研究网电大数据库应用技术第11章测验的答案。

如有其他问题,请随时咨询。

历年安徽工业大学数据库原理样卷及答案

历年安徽工业大学数据库原理样卷及答案

安徽工业大学数据库原理样卷总分:100分考试时间:90分钟注意事项:➢考试过程中如遇问题请及时向监考老师反馈。

➢部分学科有选作题,注意按题目要求进行作答,如有选项框,请使用2B铅笔将选定题目对应的选项框涂满涂黑,不得多涂或漏涂。

➢考试结束信号发出后,要立即停笔并起立。

一、单项选择题(每小题2 分,共 40分)1、在3级模式之间引入两级映射,其主要功能之一就是( )。

A、使数据与程序具有较高的独立性B、使系统具有较高的通道能力C、保持数据与程序的一致性D、提高存储空间的利用率【答案】A2、以下()内存区不属于SGA。

A、PGAB、日志缓冲区C、数据缓冲区D、共享池【答案】A3、下面叙述中正确的是( )。

A、网状模型和关系模型都是格式化的数据模型B、"授权"是数据库系统中采用的完整性措施之一C、数据的的完整性是指保护数据以防止不合法的使用D、用对关系的运算来表示表达查询的语言称为代数式语言,简称关系代数【答案】D4、实现将现实世界抽象为信息世界的是( )A、物理模型B、概念模型C、关系模型D、逻辑模型【答案】B5、消除了非主属性对候选键的部分函数依赖的关系模式,就是A、1NFB、2NFC、3NFD、BCNF【答案】B6、有关三个世界中数据的描述术语,“实体”是()。

A、对现实世界数据信息的描述B、对信息世界数据信息的描述C、对计算机世界数据信息的描述D、对三个世界间相互联系的描述【答案】B7、关于层次模型及网状模型正确的说法是( )A、层次结构中数据结构用有向树表示,可以直观的描述任何层次与非层次的系统B、网状结构不能表达实体间多对多的联系点C、在层次结构和网状结构的数据库模式设计中包含了物理存储细节,因而降低了数的独立性D、网状模型、层次模型和关系模型是目前仍在使用的DBMS的三种数据模型【答案】D8、在SELECT语句中使用MAX(列名)时,列名应该( )A、必须是数值型B、必须是字符型C、必须是数值型或字符型D、不限制数据类型【答案】D9、MySQL 支持的用户自定义完整性约束不包括A、非空约束B、CHECK 约束C、触发器D、视图【答案】D10、当程序中执行了 SELECT... FOR UPDATE ,以下描述正确的是()。

习题答案 自编教材 52+12 讲义 大纲模式

习题答案 自编教材 52+12 讲义 大纲模式

数据库系统概论习题参考答案An Introduction to Database System安徽工业大学授课教师:周兵选用教材:《数据库系统及应用》,戴小平,中国科技大学出版社,2010.8.参考书目:1、《Date C J, An Introduction to Database System》(Ed.7), Addison-Wesley,20002、《数据库系统原理教程》,王珊,陈红:清华大学出版社,20003、《数据库系统概论》(第四版),萨师煊,王珊, 高等教育出版社,2006 中国人民大学说明:斜体部分是可选讲授内容, 带星号的习题为可选。

第 1 章数据库基础1.1习题P22A.1 1.2试述数据库、数据库系统、数据库管理系统这几个概念。

答案:B.1数据库数据库是关于企业或组织的全部数据的集合。

数据库包含两部分:一是对数据结构的所有描述,存储于数据字典之中,二是数据数据本身,它是数据库的主体。

B.2数据库系统数据库系统是指在计算机系统中引入数据库后的系统构成,由数据库、数据库管理系统、运行环境、数据库管理员和用户构成。

B.3数据库管理系统数据库管理系统是位于用户与操作系统之间的一层数据管理软件,负责数据库管理和维护的软件系统。

A.2 1.3试述数据管理技术的三个阶段,及其特点。

答案:B.1手工管理阶段数据的组织和管理完全靠程序员手工完成,因此称为手工管理阶段。

这个阶段数据的管理效率很低。

C.1特点:D.1数据不保存。

D.2应用程序管理数据。

D.3数据不共享。

D.4数据不具有独立性。

B.2文件系统阶段在文件系统中,按一定的规则将数据组织成为一个文件,应用程序通过文件系统对文件中的数据进行存取和加工。

C.1特点:D.1数据可以长期保留。

D.2数据不属于某个特定的应用程序。

D.3文件组织形式的多样化。

D.4数据冗余度大。

D.5数据不一致性。

D.6数据联系弱。

B.3数据库系统阶段数据库技术克服了以前所有管理方式的缺点,试图提供一种完善的、更高级的数据管理方式。

数据库系统概论习题及答案-其它题

数据库系统概论习题及答案-其它题

数据库系统概论习题及答案-其它题(共13页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--数据库系统概论复习资料:第一章假设教学管理规定:①一个学生可选修多门课,一门课有若干学生选修;②一个教师可讲授多门课,一门课只有一个教师讲授;③一个学生选修一门课,仅有一个成绩。

学生的属性有学号、学生姓名;教师的属性有教师编号,教师姓名;课程的属性有课程号、课程名。

要求:根据上述语义画出ER图,要求在图中画出实体的属性并注明联系的类型;第2章关系数据库1、设有如下所示的关系S(S#,SNAME,AGE,SEX)、C(C#,CNAME,TEACHER)和SC(S#,C#,GRADE),试用关系代数表达式表示下列查询语句:(1)检索“程军”老师所授课程的课程号(C#)和课程名(CNAME)。

(2)检索年龄大于21的男学生学号(S#)和姓名(SNAME)。

(3)检索至少选修“程军”老师所授全部课程的学生姓名(SNAME)。

(4)检索”李强”同学不学课程的课程号(C#)。

(5)检索至少选修两门课程的学生学号(S#)。

(6)检索全部学生都选修的课程的课程号(C#)和课程名(CNAME)。

(7)检索选修课程包含“程军”老师所授课程之一的学生学号(S#)。

(8)检索选修课程号为k1和k5的学生学号(S#)。

(9)检索选修全部课程的学生姓名(SNAME)。

(10)检索选修课程包含学号为2的学生所修课程的学生学号(S#)。

(11)检索选修课程名为“C语言”的学生学号(S#)和姓名(SNAME)。

解:本题各个查询语句对应的关系代数表达式表示如下:(1). ∏C#,CNAME(σTEACHER=‘程军’(C))(2). ∏S#,SNAME(σAGE>21∧SEX=”男”(C)) (3). ∏SNAME{s[∏S#,C#(sc )÷∏C#(σTEACHER=‘程军’(C))]}(4). ∏C#(C)- ∏C#(σSNAME=‘李强’(S) SC)(5). ∏S#(σ[1]=[4]∧[2]≠[5] (SC × SC))(6). ∏C#,CNAME(C (∏S#,C#(sc)÷∏S#(S)))(7). ∏S#(SC∏C#(σTEACHER=‘程军’(C)))(8). ∏S#,C#(sc )÷∏C#(σC#=’k1’∨ C#=’k5’(C)) (9). ∏SNAME{s[∏S#,C#(sc )÷∏C#(C)]}(10). ∏S#,C#(sc )÷∏C#(σS#=’2’(SC))(11). ∏S#,SNAME{s[∏S#(SCσCNAME=‘C 语言’(C))]}2、关系R 和S 如下图所示,试计算R ÷S 。

数据库系统概念(database system concepts)英文第六版 课后练习题 答案 第11章

数据库系统概念(database system concepts)英文第六版 课后练习题 答案 第11章

2Chapter11Indexing and Hashingb.c.11.4Answer:•With structure11.3.a:Insert9:10:InsertExercises3Delete23:Delete19:•With structure11.3.b:Insert9:Insert4Chapter 11Indexing and HashingDelete23:Delete 19:•With structure 11.3.c:Insert9:Insert10:Insert8:Delete 23:Delete 19:Exercises511.5Answer:If there are K search-key values and m −1siblings are involvedin the redistribution,the expected height of the tree is:log ⌊(m −1)n /m ⌋(K )11.6Answer:Extendable hash structure000 001010 011 100101 110 11111.7Answer:a.Delete 11:From the answer to Exercise 11.6,change the third bucketto:At this stage,it is possible to coalesce the second and third buckets.Then it is enough if the bucket address table has just four entriesinstead of eight.For the purpose of this answer,we do not do the coalescing.b.Delete 31:From the answer to 11.6,change the last bucket to:6Chapter11Indexing and Hashingc.Insert1:From the answer to11.6,change thefirst bucket to:d.Insert15:From the answer to11.6,change the last bucket to:11.8Answer:The pseudocode is shown in Figure11.1.11.9Answer:Let i denote the number of bits of the hash value used in thehash table.Let bsize denote the maximum capacity of each bucket.Thepseudocode is shown in Figure11.2.Note that we can only merge two buckets at a time.The common hashprefix of the resultant bucket will have length one less than the two bucketsmerged.Hence we look at the buddy bucket of bucket j differing from itonly at the last bit.If the common hash prefix of this bucket is not i j,thenthis implies that the buddy bucket has been further split and merge is notpossible.When merge is successful,further merging may be possible,which is handled by a recursive call to coalesce at the end of the function.11.10Answer:If the hash table is currently using i bits of the hash value,thenmaintain a count of buckets for which the length of common hash prefixis exactly i.Consider a bucket j with length of common hash prefix i j.If the bucketis being split,and i j is equal to i,then reset the count to1.If the bucketis being split and i j is one less that i,then increase the count by1.It thebucket if being coalesced,and i j is equal to i then decrease the count by1.If the count becomes0,then the bucket address table can be reduced insize at that point.However,note that if the bucket address table is not reduced at that point,then the count has no significance afterwards.If we want to postpone thereduction,we have to keep an array of counts,i.e.a count for each value ofExercises7 functionfindIterator(value V){/*Returns an iterator for the search on the value V*/Iterator iter();Set iter.v alue=V;Set C=root nodewhile(C is not a leaf node)beginLet i=samllest number such that V<=C.K iif there is no such number i then beginLet P m=last non-null pointer in the nodeSet C=C.P m;endelse Set C=C.P i;end/*C is a leaf node*/Let i be the least value such that K i=Vif there is such a value i then beginSet iter.index=i;Set iter.page=C;Set iter.acti v e=T RUE;endelse if(V is the greater than the largest value in the leaf)then beginif(C.P n.K1=V)then beginSet iter.page=C.P n;Set iter.index=1;Set iter.acti v e=T RUE;endelse Set iter.acti v e=F AL SE;endelse Set iter.acti v e=F AL SE;return(iter)}Class Iterator{variables:value V/*The value on which the index is searched*/boolean active/*Stores the current state of the iterator(TRUE or FALSE)*/int index/*Index of the next matching entry(if active is TRUE)*/PageID page/*Page Number of the next matching entry(if active is TRUE)*/ function next(){if(active)then beginSet ret Page=page;Set retI ndex=index;if(index+1=page.size)then beginpage=page.P nindex=0endelse index=index+1;if(page.K index=V)then acti v e=F AL SE;return(ret Page,retI ndex)endelse return null;}}Figure11.1Pseudocode forfindIterator and the Iterator class8Chapter11Indexing and Hashingdelete(value K l)beginj=first i high-order bits of h(K l);delete value K l from bucket j;coalesce(bucket j);endcoalesce(bucket j)begini j=bits used in bucket j;k=any bucket withfirst(i j−1)bits same as thatof bucket j while the bit i j is reversed;i k=bits used in bucket k;if(i j=i k)return;/*buckets cannot be merged*/if(entries in j+entries in k>bsize)return;/*buckets cannot be merged*/move entries of bucket k into bucket j;decrease the value of i j by1;make all the bucket-address-table entries,which pointed to bucket k,point to j;coalesce(bucket j);endFigure11.2Pseudocode for deletioncommon hash prefix.The array has to be updated in a similar fashion.Thebucket address table can be reduced if the i th entry of the array is0,wherei is the number of bits the table is using.Since bucket table reduction isan expensive operation,it is not always advisable to reduce the table.Itshould be reduced only when sufficient number of entries at the end ofcount array become0.11.11Answer:We reproduce the instructor relation below.Exercises9 ID dept salary10101Comp.Sci.Wu9000015151MusicEinstein9500032343HistoryGold8700045565Comp.Sci.Califieri6200076543FinanceCrick7200083821Comp.Sci.Kim80000a.Bitmap for salary,with S1,S2,S3and S4representing the given inter-vals in the same orderS1000000000000S3010*********b.The question is a bit trivial if there is no bitmap on the deptname attribute is:Comp.Sci010********* Music000101000000 History000000000100 Elec.Eng.010********* Finance010*********10Chapter11Indexing and HashingScan on these records with salary80000or more gives Wu and Singhas the instructors who satisfy the given query.11.12Answer:If the index entries are inserted in ascending order,the newentries get directed to the last leaf node.When this leaf node getsfilled,it is split into two.Of the two nodes generated by the split,the left nodeis left untouched and the insertions takes place on the right node.Thismakes the occupancy of the leaf nodes to about50percent,except the lastleaf.If keys that are inserted are sorted in descending order,the above situationwould still occur,but symmetrically,with the right node of a split nevergetting touched again,and occupancy would again be50percent for allnodes other than thefirst leaf.11.13Answer:a.The cost to locate the page number of the required leaf page foran insertion is negligible since the non-leaf nodes are in memory.On the leaf level it takes one random disk access to read and onerandom disk access to update it along with the cost to write onepage.Insertions which lead to splitting of leaf nodes require anadditional page write.Hence to build a B+-tree with n r entries ittakes a maximum of2∗n r random disk accesses and n r+2∗(n r/f)page writes.The second part of the cost comes from the fact that inthe worst case each leaf is halffilled,so the number of splits thatoccur is twice n r/f.The above formula ignores the cost of writing non-leaf nodes,sincewe assume they are in memory,but in reality they would also bewritten eventually.This cost is closely approximated by2∗(n r/f)/f,which is the number of internal nodes just above the leaf;we canadd further terms to account for higher levels of nodes,but these aremuch smaller than the number of leaves and can be ignored.b.Substituting the values in the above formula and neglecting the costfor page writes,it takes about10,000,000∗20milliseconds,or56hours,since each insertion costs20milliseconds.Exercises11c.function insert leaf(value K,pointer P)if(tree is empty)create an empty leaf node L,which is also the rootelse Find the last leaf node in the leaf nodes chain Lif(L has less than n−1key values)then insert(K,P)at thefirst available location in Lelse beginCreate leaf node L1Set L.P n=L1;Set K1=last value from page Linsert parent(1,L,K1,L1)insert(K,P)at thefirst location in L1endfunction insert parent(level l,pointer P,value K,pointer P1)if(level l is empty)then beginCreate an empty non-leaf node N,which is also the rootinsert(P,K,P1)at the starting of the node Nreturnelse beginFind the right most node N at level lif(N has less than n pointers)then insert(K,P1)at thefirst available location in Nelse beginCreate a new non-leaf page N1insert(P1)at the starting of the node Ninsert parent(l+1,pointer N,value K,pointer N1)endendThe insert leaf function is called for each of the value,pointerpairs in ascending order.Similar function can also be build for de-scending order.The search for the last leaf or non-leaf node at anylevel can be avoided by storing the current last page details in anarray.The last node in each level might be less than halffilled.To makethis index structure meet the requirements of a B+-tree,we can re-distribute the keys of the last two pages at each level.Since the lastbut one node is always full,redistribution makes sure that both ofthen are at least halffilled.11.14Answer:In a B+-tree index orfile organization,leaf nodes that areadjacent to each other in the tree may be located at different places ondisk.When afile organization is newly created on a set of records,it ispossible to allocate blocks that are mostly contiguous on disk to leafsnodes that are contiguous in the tree.As insertions and deletions occur12Chapter11Indexing and Hashingon the tree,sequentiality is increasingly lost,and sequential access has towait for disk seeks increasingly often.a.One way to solve this problem is to rebuild the index to restoresequentiality.b.i.In the worst case each n-block unit and each node of the B+-treeis halffilled.This gives the worst case occupancy as25percent.ii.No.While splitting the n-block unit thefirst n/2leaf pages areplaced in one n-block unit,and the remaining in the second n-block unit.That is,every n-block split maintains the order.Hence,the nodes in the n-block units are consecutive.iii.In the regular B+-tree construction,the leaf pages might not besequential and hence in the worst case,it takes one seek per leafing the block at a time method,for each n-node block,we will have at least n/2leaf nodes in it.Each n-node block canbe read using one seek.Hence the worst case seeks comes downby a factor of n/2.iv.Allowing redistribution among the nodes of the same block,doesnot require additional seeks,where as,in regular B+-tree werequire as many seeks as the number of leaf pages involvedin the redistribution.This makes redistribution for leaf blocksefficient with this scheme.Also the worst case occupancy comesback to nearly50percent.(Splitting of leaf nodes is preferredwhen the participating leaf nodes are nearly full.Hence nearly50percent instead of exact50percent)。

安徽工业大学数据库第十一章习题解答

安徽工业大学数据库第十一章习题解答
T1 :A:= A + 2 ;
T2 :A:= A* 2 ;
T3 :A:= A* *2 ( A←A 2 )
设 A 得初值为 0。
⑴ 若这三个事务允许并发执行,则有多少种可能得正确结果,请一一列举出
来;
⑵ 请给出一个可串行化得调度,并给出执行结果;
⑶ 请给出一个非串行化得调度,并给出执行结果;
⑷ 若这三个事务都遵守两段锁协议,请给出一个不产生死锁得可串行化调
最后结 果 A 为 0, 为非 串行化 得调度 。

T1
Slock A Y=A=0 Xlock A A=Y+2 写回 A(=2) Unlock A
Unlock A
T2
Slock A 等待
等待 Y=A=2 Xlock A 等待 A=Y*2 写回 A(=4) Unlock A
Unlock A

T1
Slock A Y=A=0
第十一章 并发控制
1、 并发操作可能会产生哪几类数据不一致性?用什么方法能避免各种不一致
性得情况。
答 : 数据库得并发操作所带来得数据不一致性有三类 : 丢失更新问题、不一致性分析问题 与读“脏”数据问题。对于并发操作带来得问题 , 通常采用并发控制得方法调度并发操作 , 避 免造成数据得不一致性 , 使一个用户事务得执行不受其她事务得干扰。
2 、 为什么 D M L 锁只能提供解除 S 封锁得操作,而不提供解除 X 封锁得操作。
答 : 为防止由事务得 ROLLBAC操K 作引起得丢失更新操作 ,X 封锁必须保留到事务终点。即 X 封锁不就是用 UNLOCK操作解除得 , 而就是在事务结束得语义中包含了对 X 封锁得解除 , 因 此,DML不提供解除 X 封锁得操作。而为增加事务并发操作得程度 , 未到事务终点时 , 用户可以 使用 DML提供得专门解除 S 封锁得操作 , 随时解除事务得 S 封锁 , 这就是因为被 S 封锁得数据 不可能就是未提交得修改。

2022年安徽工业大学数据科学与大数据技术专业《操作系统》科目期末试卷A(有答案)

2022年安徽工业大学数据科学与大数据技术专业《操作系统》科目期末试卷A(有答案)

2022年安徽工业大学数据科学与大数据技术专业《操作系统》科目期末试卷A(有答案)一、选择题1、假定下列指令已装入指令寄存器,则执行时不可能导致CPU从用户态变为内核态(系统态)的是()。

A.DIV R0,R1;(R0)/(R1)→ROB.INT n;产生软中断C.NOT RO;寄存器R0的内容取非D.MOV RO,addr;把地址 addr处的内存数据放入寄存器RO中2、一个多道批处理系统中仅有P1,和P2两个作业,P2比P1晚5ms到达。

它们的计算和I/O操作顺序如下:P1:计算60ms,I/O 80ms,计算20msP2:计算120ms,I/O 40ms,计算40ms。

若不考虑调度和切换时间,则完成两个作业需要的时间最少是()。

A.240msB.260msC.340msD.360ms3、某计算机系统中有8台打印机,有K个进程竞争使用,每个进,程最多需要3台打印机,该系统可能会发生死锁的K的最小值是()A.2B.3C.4D.54、若系统中有5台绘图仪,有多个进程需要使用两台,规定每个进程一次仪允许申请一台,则最多允许()个进程参与竞争,而不会发生死锁。

A.5B.2C.3D.45、设有n个进程共用一个相同的程序段,若每次最多允许m个进程(mSn)同时进入,临界区,则信号量的初值为()。

A.nB.mC.m-nD.-m6、某计算机按字节编址,其动态分区内存管理采用最佳适应算法每次分配和回收内存后都对空闲分区链重新排序。

当前空闲分区信息见表3-12。

回收起始地址为60K、大小为140KB的分区后,系统中空闲分区的数量、空闲分区链第一个分区的起始地址和大小分别是()。

A.3,20K,380KBB.3,500K,80KBC.4,20K,180KBD.4,500K,80KB7、提高单机资源利用率的关键技术是()。

A.SPOOLing技术B.虚拟技术C.交换技术D.多道程序设计技术8、通常对文件系统来说,文件名及属性可以集中在()中以使查询。

安徽工程大学数据库实验指导书1-7章选择填空解答

安徽工程大学数据库实验指导书1-7章选择填空解答

1—7章作业参考答案第1章数据库技术基础参考答案二、选择题参考答案CDDCA、DACBD三、填空题1.数据库的三级模式体系结构是指__外模式___、___模式____和___内模式_。

2.数据库经历了_人工管理阶段__、__文件管理阶段_和_数据库管理阶段_三个阶段。

3.层次模型的上层和下层实体之间表现为___ _____联系。

4.当用E-R图表示数据库概念模型时,此E-R图能常按_局部E-R图__和_总体E—R图_两个步骤进行设计。

5.两个实体型联系分为_一对一_、_一对多_、_多对多_ 。

6.模式/内模式映象为数据库提供了_物理数据独立性_数据独立性。

7.在层次、网状模型中,数据之间联系用_ _实现。

8.结构数据模型是由数据结构、数据操纵和完整性约束三部分组成的。

9.按照数据结构的类型来命名,数据模型分为层次、网状和关系。

10.提供数据库定义、数据装入、数据操纵、数据控制和DB维护功能的软件称为_DBMS___。

第2章关系数据库一、单项选择题BBABB、ACDBD二、填空题1.“关系”这个术语来自数学中的_集合_概念,因此,关系中任意两个元组不能__重复__。

2.关系代数运算都是_关系_级的运算,即它们的每个运算分量是一个_关系_,运算的结果也是_关系_。

3.关系数据库中,实现表与表之间的联系是通过__外码__。

4.两个没有公共属性的关系作自然连接时等价于它们作_笛卡尔积_。

5.关系数据库中,实现主码标识元组的作用是通过_实体完整性实现的_。

6.在关系数据库中,实现“表中任意两行不能相同”的约束是_UNIQUE_。

7.传统的集合“并、交、差”运算施加于两个关系时,这两个关系的_目数_必须相等,_对应列_必须取自同一个域。

8.在关系代数中,对一个关系做投影操作后,新关系的元组个数_等于或小于_原来关系的元组个数。

9.设关系 R 和关系 S 的元数分别是 3 和 4 ,关系 T 是 R 与 S 的笛卡尔积,即:T=R×S 则关系 T 的元数是 12 。

数据库10、11答案(1)

数据库10、11答案(1)

1.试述事务的概念及事务的4 个特性。

答:事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。

事务具有4 个特性:原子性(Atomicity )、一致性(consistency )、隔离性( Isolation )和持续性(Durability )。

这4 个特性也简称为ACID 特性。

原子性:事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。

一致性:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。

隔离性:一个事务的执行不能被其他事务干扰。

即一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。

持续性:持续性也称永久性(Perfnanence ) ,指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。

接下来的其他操作或故障不应该对其执行结果有任何影响。

2 .为什么事务非正常结束时会影响数据库数据的正确性,请列举一例说明之。

答:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。

如果数据库系统运行中发生故障,有些事务尚未完成就被迫中断,这些未完成事务对数据库所做的修改有一部分已写入物理数据库,这时数据库就处于一种不正确的状态,或者说是不一致的状态。

例如某工厂的库存管理系统中,要把数量为Q 的某种零件从仓库1 移到仓库2 存放。

则可以定义一个事务T , T 包括两个操作;Ql = Ql 一Q , Q2= Q2 + Q。

如果T 非正常终止时只做了第一个操作,则数据库就处于不一致性状态,库存量无缘无故少了Q 。

3 .数据库中为什么要有恢复子系统?它的功能是什么?答:因为计算机系统中硬件的故障、软件的错误、操作员的失误以及恶意的破坏是不可避免的,这些故障轻则造成运行事务非正常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中全部或部分数据丢失,因此必须要有恢复子系统。

恢复子系统的功能是:把数据库从错误状态恢复到某一已知的正确状态(亦称为一致状态或完整状态)。

数据库课后题参考答案

数据库课后题参考答案

学校有若干个系,每个系有各自的系号、系名和系主任;每个系有若干名教师和学生,教师有教师号、教师名和职称属性,每个教师可以担任若干门课程,一门课程只能由一位教师讲授,课程有课程号、课程名和学分,并参加多项项目,一个项目有多人合作,且责任轻重有个排名,项目有项目号、名称和负责人;学生有学号、姓名、年龄、性别,每个学生可以同时选修多门课程,选修有分数。

(1)请设计此学校的教学管理的E-R 模型。

(2)将E-R 模型转换为关系模型。

2)系 (系号,系名,系主任)教师 (教师号,教师名,职称,系号) 学生(学号,姓名,年龄,性别,系号) 项目(项目号,名称,负责人)课程(课号,课程名,学分,教师号) 选修(课号,学号,分数) 负责(教师号,项目号,排名)3、设有下图所示的医院组织。

试画出其E-R 图及关系模式并用关系代数方法写出下面之查询公式:病房医生 病人图3-1 某医院人员组织关系框图 编号 名称所在位置主任姓名编号姓名患何种病 病房号编号 姓名年龄职称管辖病房号① 找出外科病房所有医生姓名;② 找出管辖13号病房的主任姓名; ③ 找出管辖病员李维德的医生姓名。

关系模式:病房(编号、名称、所在位置、主任姓名) 医生(编号、姓名、年龄、职称、管辖病房号) 病人(病号、姓名、患何种病、病房号)答案:①、''(外科位置医生姓名=∏σ) ②、'13'(=∏病房号主任姓名σ(病房))③、''(李维德病人姓名医生姓名=∏σ)第三章 习题一、单项选择题1、如果要在Windows 平台上运行DB2应用程序访问运行在UNIX 上的数据库服务器,需要在Windows 上安装那种产品?( )A DB2 企业服务器版B DB2 个人版C DB2 连接器D DB2 运行时客户端 答案:D2、下面那种产品不允许远程的客户端应用程序连接到该服务器?( ) A DB2 快速版 B DB2 个人版C DB2 企业服务器版D DB2 工作组服务器版 答案:B 3、一个软件公司要开发一个需要访问DB2 for Linux 和DB2 for z/OS 的应用程序。

数据库系统概论CH11部分习题解答

数据库系统概论CH11部分习题解答

第十一章并发控制事务处理技术主要包括数据库恢复技术和并发控制技术。

本章讨论数据库并发控制的根本概念和实现技术。

本章内容有一定的深度和难度。

读者学习本章一定要做到概念清楚。

一、根本知识点数据库是一个共享资源,当多个用户并发存取数据库时就会产生多个事务同时存取同一个数据的情况。

假设对并发操作不加控制就可能会存取和存储不正确的数据,破坏数据库的一致性。

所以DBMS必须提供并发控制机制。

并发控制机制的正确性和高效性是衡量一个DBMS性能的重要标志之一。

①需要了解的: 数据库并发控制技术的必要性,活锁死锁的概念。

②需要结实掌握的: 并发操作可能产生数据不一致性的情况(丧失修改、不可重复读、读“脏数据〞)及其确切含义;封锁的类型;不同封锁类型的(例如X 锁,S锁)的性质和定义,相关的相容控制矩阵;封锁协议的概念;封锁粒度的概念;多粒度封锁方法;多粒度封锁协议的相容控制矩阵。

③需要举一反三的:封锁协议与数据一致性的关系;并发调度的可串行性概念;两段锁协议与可串行性的关系;两段锁协议与死锁的关系。

④难点:两段锁协议与串行性的关系;与死锁的关系;具有意向锁的多粒度封锁方法的封锁过程。

二、习题解答和解析1. 在数据库中为什么要并发控制? 并发控制技术能保证事务的哪些特性?答数据库是共享资源,通常有许多个事务同时在运行。

当多个事务并发地存取数据库时就会产生同时读取和/或修改同一数据的情况。

假设对并发操作不加控制就可能会存取和存储不正确的数据,破坏事务的一致性和数据库的一致性。

所以数据库管理系统必须提供并发控制机制。

并发控制技术能保证事务的隔离性和一致性。

2. 并发操作可能会产生哪几类数据不一致? 用什么方法能防止各种不一致的情况?答并发操作带来的数据不一致性包括三类:丧失修改、不可重复读和读“脏〞数据。

(1) 丧失修改(Lost Update)两个事务T1和T2读入同一数据并修改,T2提交的结果破坏了(覆盖了)T1提交的结果,导致T1的修改被丧失。

数据库系统基础教程第十一章答案

数据库系统基础教程第十一章答案

Section 1 Exercise 11.1.1 a)Exercise 11.1.3Exercise 11.1.5In the semistructured model, nodes represent data elements, i.e., entities rather than entity sets. In the UML model, nodes of all types represent object sets, and the data is not represented at all. Section 2Exercise 11.2.1<? xml version = "1.0" encoding = "utf-8" standalone = "yes" ?><StarMovieData><Star starID = "cf" starredIn = "sw"><Name>Carrie Fisher</Name><Address><Street>123 Maple St.</Street><City>Hollywood</City></Address><Address><Street>5 Locust Ln.</Stree><City>Malibu</City></Address></Star><Star starID = "mh" starredIn = "sw"><Name>Mark Hamill</Name><Address><Street>456 Oak Rd.</Street><City>Brentwood</City></Address></Star><Movie movieID = "sw" starsOf = "cf mh"><Title>Star Wars</Title><Year>1977</Year></Movie></StarMovieData>Exercise 11.2.2Title Year Length Genre1939 231 Drama Gone with theWindStar Wars 1977 124 SciFi Wayne’s World1992 95 ComedyFigure 2.3: The Relation MoviesThe relation Movies in XML:<Movies><Movie><Title>Gone with the Wing</title><Year>1939</year><Length>231</length><Genre>Drama</genre></Movie><Movie><Title>Star Wars</Title><Year>1977</year><Length>124</length><Genre>SciFi</genre></Movie><Movie><Title>Wayne’s World</Title><Year>1992</year><Length>95</length><Genre>Comedy</genre></Movie></Movies>Exercise 11.2.3An empty element can be represented as a SubElement whose childID value is null (or a prede-fined ID that does not map to any element).Exercise 11.2.4DocRoot(docID, rootElementID)Element(elementID, position)ElementAttribute(elementID, name, value)ElementValue(elementID, value)SubElementOf(parentID, childID)Section 3Exercise 11.3.1<?xml version = "1.0" encoding = "utf-8" standalone = "yes" ?><StarMovieData><Star starID = "cf" starredIn = "sw tesb rotj hahs"><Name>Carrie Fisher</Name><Address><Street>123 Maple St.</Street><City>Hollywood</City></Address><Address><Street>5 Locust Ln.</Street><City>Malibu</City></Address></Star><Star starID = "mh" starredIn = "sw tesb rotj"><Name>Mark Hamill</Name><Address><Street>456 Oak Rd.</Street><City>Brentwood</City></Address></Star><Star starID = "hf" starredIn = "sw tesb rotj fw"><Name>Harrison Ford</Name></Star><Star starid = "md" starredIn = "tbi"><Name>Matt Damon</Name></Star><Movie movieID = "sw" starsOf = "cf mh hf"><Title>Star Wars</Title><Year>1977</Year></Movie><Movie movieID = "tesb" starsOf = "cf mh hf"><Title>The Empire Strikes Back</Title><Year>1980</Year></Movie><Movie movieID = "rotj" starsOf = "cf mh hf"><Title>Return of the Jedi</Title><Year>1983</Year></Movie><Movie movieID = "fw" starsOf = "hf"><Title>Firewall</Title><Year>2006</Year></Movie><Movie movieID = "hahs" starsOf = "cf"><Title>Hannah and Her Sisters</Title><Year>1985</Year></Movie><Movie movieID = "tbi" starsOf = "md"><Title>The Bourne Identity</Title><Year>2002</Year></Movie></StarMovieData>Exercise 11.3.2<!DOCTYPE Bank [<!ELEMENT BANK (CUSTOMER*, ACCOUNT*)><!ELEMENT CUSTOMER (NAME, ADDRESS, PHONE, SSNO)> <!ATTLIST CUSTOMERcustId IDowns IDREFS><!ELEMENT NAME (#PCDATA)><!ELEMENT ADDRESS (#PCDATA)><!ELEMENT PHONE (#PCDATA)><!ELEMENT SSNO (#PCDATA)><!ELEMENT ACCOUNT (NUMBER, TYPE, BALANCE)><!ATTLIST ACCOUNTacctId IDownedBy IDREFS><!ELEMENT NUMBER (#PCDATA)><!ELEMENT TYPE (#PCDATA)><!ELEMENT BALANCE (#PCDATA)>]>Exercise 11.3.3<!DOCTYPE Sport [<!ELEMENT SPORT(TEAM*, FAN*)><!ELEMENT TEAM(NAME, PLAYER+, COLOR+)><!ATTLIST TEAMcaptain IDREF #REQUIREDteamID ID #REQUIRED><!ELEMENT PLAYER(NAME)><ATTLIST PLAYERplayerID ID #REQUIRED><!ELEMENT FAN(NAME, COLOR*)><ATTLIST FANfavoriteTeams IDREFSfavoritePlayers IDREFS><!ELEMENT COLOR (#PCDATA)><!ELEMENT NAME (#PCDATA)>]>Exercise 11.3.4<!DOCTYPE Genealogy [<!ELEMENT GENEALOGY(PERSON*)><!ELEMENT PERSON EMPTY><ATTLIST PERSONname CDATA #REQUIREDpersonID ID #REQUIREDmotherID IDREFfatherID IDREFchildrenID IDREFS>]>Exercise 11.3.5Relation schema: RELATIONNAME(attribute list)<!DOCTYPE RELATIONNAME [<!ELEMENT RELATIONNAME(ROW*)><!ELEMENT ROW(attribute list)>for each attribute T in the attribute list<!ELEMENT T (#PCDATA)>]note: the singular form of the relation name should used in place of ROWSection 4Exercise 11.4.1<Movies><Movie><Title>Star Wars</Title><Year>1977</Year></Movie></Movies><Movies><Movie><Title>Star Wars</Title><Year>’77</Year> <!-- not an integer --></Movie></Movies>Exercise 11.4.2<?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xs="/2001/XMLSchema"><xs:complexType name="Movies"><xs:sequence><xs:element name="Movie" minOccurs="0" maxOccurs="unbounded"> <xs:complexType><xs:sequence><xs:element name="Title" type="xs:string" /><xs:element name="Year" type="xs:integer" /></xs:sequence></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:schema>Exercise 11.4.3<!DOCTYPE MOVIES [<!ELEMENT Title (#PCDATA)><!ELEMENT Year (#PCDATA)><!ELEMENT Genre (#PCDATA)><!ELEMENT Movies (Movie*)><!ELEMENT Movie (Title, Year, Genre?)>]><!DOCTYPE STARS [<!ELEMENT Stars (Star+)><!ELEMENT Star (Name, Address, StarredIn*)><!ELEMENT Name (#PCDATA)><!ELEMENT Address (#PCDATA)><!ELEMENT StarredIn EMPTY><!ATTLIST StarredIntitle CDATA #IMPLIEDyear CDATA #IMPLIED>]>Note: DTD is not as granular as XML schema; some restrictions in XML schema cannot be en-forced in DTD without modifying the structures of the XML it defines.。

国开学习网电大数据库应用技术第11章测验答案

国开学习网电大数据库应用技术第11章测验答案

国开学习网电大数据库应用技术第11章测验答案一、单项选择题(每小题2分,共10个题,20分)试题11. 图书馆管理系统中表tb_user和表tb_book之间的关系是()。

A.一对一B.一对多C.多对多D.不确定试题1答案:多对多2. 图书馆管理系统中表tb_bibliography和表tb_book之间的关系是()。

A.一对一B.一对多C.多对多D.不确定试题2答案:一对多3. 图书馆管理系统中表tb_record和表tb_book之间的关系是()。

A.一对一B.一对多C.多对多D.不确定试题3答案:一对多4. 图书馆管理系统中表tb_record和表tb_user之间的关系是()。

A.一对一B.一对多C.多对多D.不确定试题4答案:一对多5. 针对PHP语句“$mysqli = mysqli_connect('localhost', 'root', '', 'user_lib');”以下解释错误的是()。

A.所连接的主机是localhostB.以root账户登陆C.密码为空格D.所连接的数据库为user_lib试题5答案:密码为空格6. 针对PHP语句“$mysqli->query("set author_names utf8"); ”以下解释错误的是()。

A.查询表“set author_names utf8”的所有记录B.设置表的“author_names”字段名为“utf8”C.设置查询名为“set author_names utf8 ”D.设置编码格式以正确显示中文字符试题6答案:设置编码格式以正确显示中文字符7. 以下不属于数据库系统开发的是()。

A.系统分析B.系统设计C.系统实施D.系统更新试题7答案:系统更新8. 地址栏中输入的地址为“http://localhost:8080/helloworld.php”,则以下表达正确的是()。

数据库系统概论课后习题及参考答案

数据库系统概论课后习题及参考答案

课后作业习题数据库系统概论课程部分习题及参考答案第一章绪论教材 41页1.试述数据、数据库、数据库系统、数据库管理系统的概念;数据:描述事物的符号记录称为数据;数据的种类有文字、图形、图象、声音、正文等等;数据与其语义是不可分的;数据库:数据库是长期储存在计算机内、有组织的、可共享的数据集合;数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享;数据库系统:数据库系统 DBS是指在计算机系统中引入数据库后的系统构成;数据库系统由数据库、数据库管理系统及其开发工具、应用系统、数据库管理员构成;数据库管理系统:数据库管理系统 DBMS是位于用户与操作系统之间的一层数据管理软件;用于科学地组织和存储数据、高效地获取和维护数据;DBMS主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能;2.使用数据库系统有什么好处使用数据库系统的好处是由数据库管理系统的特点或优点决定的;使用数据库系统的好处很多,例如可以大大提高应用开发的效率,方便用户的使用,减轻数据库系统管理人员维护的负担等;为什么有这些好处,可以结合第 5题来回答;使用数据库系统可以大大提高应用开发的效率;因为在数据库系统中应用程序不必考虑数据的定义、存储和数据存取的具体路径,这些工作都由 DBMS来完成;此外,当应用逻辑改变,数据的逻辑结构需要改变时,由于数据库系统提供了数据与程序之间的独立性;数据逻辑结构的改变是 DBA的责任,开发人员不必修改应用程序,或者只需要修改很少的应用程序;从而既简化了应用程序的编制,又大大减少了应用程序的维护和修改;使用数据库系统可以减轻数据库系统管理人员维护系统的负担;因为 DBMS在数据库建立、运用和维护时对数据库进行统一的管理和控制,包括数据的完整性、安全性,多用户并发控制,故障恢复等等都由DBMS执行;总之,使用数据库系统的优点是很多的,既便于数据的集中管理,控制数据冗余,可以提高数据的利用率和一致性,又有利于应用程序的开发和维护;3.试述文件系统与数据库系统的区别和联系;文件系统与数据库系统的区别:文件系统面向某一应用程序,共享性差、冗余度大,独立性差,纪录内有结构、整体无结构,应用程序自己控制;数据库系统面向现实世界,共享性高、冗余度小,具有高度的物理独立性和一定的逻辑独立性,整体结构化,用数据模型描述,由数据库管理系统提供数据安全性、完整性、并发控制和恢复能力;文件系统与数据库系统的联系是:文件系统与数据库系统都是计算机系统中管理数据的软件;5.试述数据库系统的特点;数据库系统的主要特点有:一、数据结构化数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别;二、数据的共享性高,冗余度低,易扩充数据库的数据不再面向某个应用而是面向整个系统,因此可以被多个用户、多个应用、用多种不同的语言共享使用;由于数据面向整个系统,是有结构的数据,不仅可以被多个应用共享使用,而且容易增加新的应用,这就使得数据库系统弹性大,易于扩充;三、数据独立性高数据独立性包括数据的物理独立性和数据的逻辑独立性;数据库管理系统的模式结构和二级映象功能保证了数据库中的数据具有很高的物理独立性和逻辑独立性;四、数据由 DBMS统一管理和控制数据库的共享是并发的共享,即多个用户可以同时存取数据库中的数据甚至可以同时存取数据库中同一个数据;为此, DBMS 必须提供统一的数据控制功能,包括数据的安全性保护,数据的完整性检查,并发控制和数据库恢复;6.数据库管理系统的主要功能有哪些①数据库定义功能;②数据存取功能;③数据库运行管理;④数据库的建立和维护功能;7.试述数据模型的概念、数据模型的作用和数据模型的三个要素;数据模型是数据库中用来对现实世界进行抽象的工具,是数据库中用于提供信息表示和操作手段的形式构架;一般地讲,数据模型是严格定义的概念的集合;这些概念精确地描述系统的静态特性、动态特性和完整性约束条件;因此数据模型通常由数据结构、数据操作和完整性约束三部分组成;①数据结构:是所研究的对象类型的集合,是对系统的静态特性的描述;②数据操作:是指对数据库中各种对象型的实例值允许进行的操作的集合,包括操作及有关的操作规则,是对系统动态特性的描述;③数据的约束条件:是完整性规则的集合,完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容;8.试述概念模型的作用;概念模型实际上是现实世界到机器世界的一个中间层次;概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言;9.定义并解释概念模型中以下术语:实体,实体型,实体集,属性,码,实体联系图 E-R图实体:客观存在并可以相互区分的事物叫实体;实体型:具有相同属性的实体具有相同的特征和性质,用实体名及其属性名集合来抽象和刻画同类实体称为实体型;实体集:同型实体的集合称为实体集;属性:实体所具有的某一特性,一个实体可由若干个属性来刻画;码:唯一标识实体的属性集称为码;实体联系图: E-R图提供了表示实体型、属性和联系的方法:·实体型:用矩形表示,矩形框内写明实体名;·属性:用椭圆形表示,并用无向边将其与相应的实体连接起来;·联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型 1 : 1,1 : n或m : n;第二章关系数据库教材81页1.试述关系模型的三个组成部分;答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成;2.试述关系数据语言的特点和分类;答:关系数据语言可以分为三类:关系代数语言例如 ISBL关系演算语言元组关系演算语言例如 APLHA,QUEL 和域关系演算语言例如QBE具有关系代数和关系演算双重特点的语言例如 SQL这些关系数据语言的共同特点是,具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用;3. 定义并理解下列术语,说明它们之间的联系与区别:1域,关系,元组,属性答:域:域是一组具有相同数据类型的值的集合;关系:在域 D1,D2,…,Dn上笛卡尔积D1×D2×…×Dn的子集称为关系,表示为RD1,D2,…,Dn元组:关系中的每个元素是关系中的元组;属性:关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域;由于域可以相同,为了加以区分,必须对每列起一个名字,称为属性 Attribute;2主码,候选码,外部码答:候选码:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码 Candidate key;主码:若一个关系有多个候选码,则选定其中一个为主码 Primary key;外部码:设 F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外部码Foreign key,简称外码;基本关系 R称为参照关系Referencing relation,基本关系S称为被参照关系Referenced relation或目标关系Target relation;关系R和S可以是相同的关系;3关系模式,关系,关系数据库关系模式:关系的描述称为关系模式 Relation Schema;它可以形式化地表示为:RU,D,dom,F其中 R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,dom为属性向域的映象集合,F为属性间数据的依赖关系集合;关系:在域 D1,D2,…,Dn上笛卡尔积D1×D2×…×Dn的子集称为关系,表示为RD1,D2,…,Dn关系是关系模式在某一时刻的状态或内容;关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据;关系数据库:关系数据库也有型和值之分;关系数据库的型也称为关系数据库模式,是对关系数据库的描述,它包括若干域的定义以及在这些域上定义的若干关系模式;关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库;4.试述关系模型的完整性规则;在参照完整性中,为什么外部码属性的值也可以为空什么情况下才可以为空答:关系模型的完整性规则是对关系的某种约束条件;关系模型中可以有三类完整性约束:实体完整性、参照完整性和用户定义的完整性;参见教材在参照完整性中,外部码属性的值可以为空,它表示该属性的值尚未确定;但前提条件是该外部码属性不是其所在关系的主属性;例如,在下面的“学生”表中,“专业号”是一个外部码,不是学生表的主属性,可以为空;其语义是,该学生的专业尚未确定;学生学号,姓名,性别,专业号,年龄专业专业号,专业名而在下面的“选修”表中的“课程号”虽然也是一个外部码属性,但它又是“选修”表的主属性,所以不能为空;因为关系模型必须满足实体完整性;课程课程号,课程名,学分选修学号,课程号,成绩5.等值连接与自然连接的区别是什么答:自然连接 Natural join是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性去掉;第三章关系数据库标准语言 SQL 教材148页1. 试述SQL语言的特点;答:1综合统一; SQL语言集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体;2高度非过程化;用SQL语言进行数据操作,只要提出“做什么”,而无须指明“怎么做”,因此无需了解存取路径,存取路径的选择以及SQL语句的操作过程由系统自动完成;3面向集合的操作方式;SQL语言采用集合操作方式,不仅操作对象、查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合;4以同一种语法结构提供两种使用方式;SQL语言既是自含式语言,又是嵌入式语言;作为自含式语言,它能够独立地用于联机交互的使用方式,也能够嵌入到高级语言程序中,供程序员设计程序时使用;5语言简捷,易学易用;2. 试述SQL的定义功能;答:SQL的数据定义功能包括定义表、定义视图和定义索引;SQL语言使用CREATE TABLE语句定义建立基本表,;ALTER TABLE语句修改基本表定义,DROP TABLE语句删除基本表;建立索引使用CREATE INDEX语句建立索引, DROP INDEX语句删除索引表;SQL语言使用CREATE VIEW命令建立视图,DROP VIEW语句删除视图;3. 用SQL语句建立第3章习题3中的四个表;答:对于 S表:S SNO,SNAME,STATUS,CITY;建 S表CREATE TABLE SSNO CHAR3,SNAME CHAR10,STATUS CHAR2,CITY CHAR10;PPNO,PNAME,COLOR,WEIGHT;建 P表、建J表、建SPJ表略;4. 针对上题中建立的四个表试用SQL语言完成第3章习题3中的查询;答:1 求供应工程J1零件的供应商号码SNO;SELECT SNOFROM SPJWHERE JNO=‘J1';2 求供应工程J1零件P1的供应商号码SNO;SELECT SNOFROM SPJWHERE JNO=‘J1'AND PNO=‘P1';3 求供应工程J1零件为红色的供应商号码SNO;SELECT SNOFROM SPJWHERE JNO=‘J1'AND PNO INSELECT PNOFROM PWHERE COLOR=‘红';4 求没有使用天津供应商生产的红色零件的工程号JNO;略, 注意:从 J 表入手,以包含那些尚未使用任何零件的工程号;5. 针对习题3中的四个表试用SQL语言完成以下各项操作:1找出所有供应商的姓名和所在城市;2找出所有零件的名称、颜色、重量;3找出使用供应商S1所供应零件的工程号码;4找出工程项目J2使用的各种零件的名称及其数量;5找出上海厂商供应的所有零件号码;6找出使用上海产的零件的工程名称;7找出没有使用天津产的零件的工程号码;8把全部红色零件的颜色改成蓝色;9由S5供给J4的零件P6改为由S3供应,请作必要的修改;10从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录;11请将 S2,J6,P4,200 插入供应情况关系;答:1 找出所有供应商的姓名和所在城市;SELECT SNAME, CITYFROM S;2 找出所有零件的名称、颜色、重量;SELECT PNAME, COLOR, WEIGHTFROM P;3 找出使用供应商S1所供应零件的工程号码; SELECT JNOFROM SPJWHERE SNO=‘S1';4 找出工程项目J2使用的各种零件的名称及其数量; SELECT ,FROM P, SPJWHERE =AND ='J2';5 找出上海厂商供应的所有零件号码;SELECT DISTINCT PNOFROM SPJWHERE SNO INSELECT SNOFROM SWHERE CITY='上海';6 找出使用上海产的零件的工程名称;SELECT JNAMEFROM J, SPJ, SWHERE J. JNO=SPJ. JNOAND SPJ. SNO=AND ='上海';7 找出没有使用天津产的零件的工程号码;略8 把全部红色零件的颜色改成蓝色;UPDATE PSET COLOR='蓝'WHERE COLOR='红' ;9 由S5供给J4的零件P6改为由S3供应,请作必要的修改;UPDATE SPJSET SNO='S3'WHERE SNO='S5' AND JNO='J4' AND PNO='P6';10 从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录;解析:注意删除顺序,应该先从 SPJ表中删除供应商S2所供应零件的记录,然后从从S表中删除S2;11 请将 S2,J6,P4,200 插入供应情况关系;INSERT INTO SPJSNO, JNO, PNO, QTYVALUES S2,J6,P4,200;6. 什么是基本表什么是视图两者的区别和联系是什么答:基本表是本身独立存在的表,在 SQL中一个关系就对应一个表;视图是从一个或几个基本表导出的表;视图本身不独立存储在数据库中,是一个虚表;即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中;视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再定义视图;7. 试述视图的优点;答: 1视图能够简化用户的操作;2视图使用户能以多种角度看待同一数据;3视图对重构数据库提供了一定程度的逻辑独立性;4视图能够对机密数据提供安全保护;8. 所有的视图是否都可以更新为什么答:不是;视图是不实际存储数据的虚表,因此对视图的更新,最终要转换为对基本表的更新;因为有些视图的更新不能唯一地有意义地转换成对相应基本表的更新,所以,并不是所有的视图都是可更新的;9. 哪类视图是可以更新的,哪类视图是不可更新的各举一例说明;答:基本表的行列子集视图一般是可更新的;如教材中的例1;若视图的属性来自集函数、表达式,则该视图肯定是不可以更新的;如教材中的S_G视图;11. 请为三建工程项目建立一个供应情况的视图,包括供应商代码SNO、零件代码 PNO、供应数量QTY;针对该视图完成下列查询:1找出三建工程项目使用的各种零件代码及其数量;2找出供应商S1的供应情况;答:建视图:CREATE VIEW V_SPJ ASSELECT SNO, PNO, QTYFROM SPJWHERE JNO=SELECT JNOFROM JWHERE JNAME='三建';对该视图查询:1 找出三建工程项目使用的各种零件代码及其数量; SELECT PNO, QTYFROM V_SPJ;2 找出供应商S1的供应情况;SELECT PNO, QTY / S1供应三建工程的零件号和对应的数量/ FROM V_SPJWHERE SNO='S1';第五章关系数据理论教材 196页1.理解并给出下列术语的定义:函数依赖、部分函数依赖、完全函数依赖、候选码、主码、外码、全码;答:函数依赖:设 R U是一个关系模式,U是R的属性集合,X和Y是U的子集;对于R U的任意一个可能的关系r,如果r中不存在两个元组,它们在X上的属性值相同, 而在Y上的属性值不同, 则称"X函数确定Y"或"Y函数依赖于X",记作X→Y;完全函数依赖、部分函数依赖:在 RU中,如果X→Y,并且对于X的任何一个真子集X,都有X′→Y,则称Y对X完全函数依赖;若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖;候选码、主码:设 K为RU,F中的属性或属性组合,若K → U则K为R的候选码;若候选码多于一个,则选定其中的一个为主码;外码:关系模式 R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外部码也称外码;全码:整个属性组是码,称为全码 All-key;2.建立一个关于系、学生、班级、学会等诸信息的关系数据库;描述学生的属性有:学号、姓名、出生年月、系名、班号、宿舍区;描述班级的属性有:班号、专业名、系名、人数、入校年份;描述系的属性有:系名、系号、系办公室地点、人数;描述学会的属性有:学会名、成立年份、地点、人数;有关语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生;一个系的学生住在同一宿舍区;每个学生可参加若干学会,每个学会有若干学生;学生参加某学会有一个入会年份;请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖;指出各关系的候选码、外部码,有没有全码存在答:关系模式:学生 SS,SN,SB,DN,C,SA班级 CC,CS,DN,CNUM,CDATE系 DD,DN,DA,DNUM学会 PPN,DATE1,PA,PNUM学生 --学会SPS,PN,DATE2其中, S—学号,SN—姓名,SB—出生年月,SA—宿舍区C—班号,CS—专业名,CNUM—班级人数,CDATE—入校年份D—系号,DN—系名,DA—系办公室地点,DNUM—系人数PN—学会名,DATE1—成立年月,PA—地点,PNUM—学会人数,DATE2—入会年份每个关系模式的极小函数依赖集:S:S→SN,S→SB,S→C,C→DN,DN→SAC:C→CS,C→CNUM,C→CDATE,CS→DN,CS,CDATE→CD:D→DN,DN→D,D→DA,D→DNUMP:PN→DATE1,PN→PA,PN→PNUMSP:S,PN→DATE2S中存在传递函数依赖: S→DN, S→SA, C→SAC中存在传递函数依赖:C→DNS,PN→DATE2 和CS,CDATE→C 均为SP中的函数依赖,是完全函数依赖关系候选码外部码全码S S C,DN 无C C,CS,CDATE DN 无D D和DN 无无P PN 无无SP S,PN S,PN 无4. 试举出三个多值依赖的实例;答:1关系模式MSCM,S,C中,M表示专业,S表示学生,C表示该专业的必修课;假设每个专业有多个学生,有一组必修课;设同专业内所有学生的选修的必修课相同,实例关系如下;按照语义对于M的每一个值M i,S有一个完整的集合与之对应而不问C取何值,所以M→→S;由于C与S的完全对称性,必然有M→→C成立;M S CM 1 S1 C1M 1 S1 C2M 1 S2 C1M 1 S2 C2………………2关系模式ISAI,S,A中,I表示学生兴趣小组,S表示学生,A表示某兴趣小组的活动项目;假设每个兴趣小组有多个学生,有若干活动项目;每个学生必须参加所在兴趣小组的所有活动项目,每个活动项目要求该兴趣小组的所有学生参加;按照语义有 I→→S,I→→A成立;3关系模式RDPR,D,P中,R表示医院的病房,D表示责任医务人员,P表示病人;假设每个病房住有多个病人,有多个责任医务人员负责医治和护理该病房的所有病人;按照语义有R→→D,R→→P成立;第六章数据库设计教材241页1. 试述数据库设计过程;1 需求分析2 概念结构设计3 逻辑结构设计4 数据库物理设计5 数据库实施6 数据库运行和维护这是一个完整的实际数据库及其应用系统的设计过程;不仅包括设计数据库本身,还包括数据库的实施、数据库运行和维护;设计一个完善的数据库应用系统往往是上述六个阶段的不断反复;2. 试述数据库设计过程的各个阶段上的设计描述;答:各阶段的设计要点如下:1 需求分析:准确了解与分析用户需求包括数据与处理;2 概念结构设计:通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型;3 逻辑结构设计:将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化;4 数据库物理设计:为逻辑数据模型选取一个最适合应用环境的物理结构包括存储结构和存取方法;5 数据库实施:设计人员运用DBMS提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行;6 数据库运行和维护:在数据库系统运行过程中对其进行评价、调整与修改;3. 试述数据库设计过程中结构设计部分形成的数据库模式;答:数据库结构设计的不同阶段形成数据库的各级模式,即:在概念设计阶段形成独立于机器特点,独立于各个 DBMS产品的概念模式,在本篇中就是E-R图;在逻辑设计阶段将 E-R图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式;然后在基本表的基础上再建立必要的视图View,形成数据的外模式;在物理设计阶段,根据 DBMS特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式;概念模式是面向用户和设计人员的,属于概念模型的层次;逻辑模式、外模式、内模式是 DBMS支持的模式,属于数据模型的层次;可以在DBMS中加以描述和存储;4. 试述数据库设计的特点;答:数据库设计既是一项涉及多学科的综合性技术又是一项庞大的工程项目;其主要特点有:1 数据库建设是硬件、软件和干件技术与管理的界面的结合;2 从软件设计的技术角度看,数据库设计应该和应用系统设计相结合,也就是说,整个设计过程中要把结构数据设计和行为处理设计密切结合起来;5. 需求分析阶段的设计目标是什么调查的内容是什么答:需求分析阶段的设计目标是通过详细调查现实世界要处理的对象组织、部门、企业等,充分了解原系统手工系统或计算机系统工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能;调查的内容是“数据”和“处理”,即获得用户对数据库的如下要求:1信息要求;指用户需要从数据库中获得信息的内容与性质;由信息要求可以导出数据要求,即在数据库中需要存储哪些数据;2处理要求;指用户要完成什么处理功能,对处理的响应时间有什么要求,处理方式是批处理还是联机处理;3安全性与完整性要求;6. 数据字典的内容和作用是什么答:数据字典是系统中各类数据描述的集合;数据字典的内容通常包括:数据项、数据结构、数据流、数据存储、处理过程五个部分其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构;数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容;数据字典的作用:数据字典是关于数据库中数据的描述,在需求分析阶段建立,是下一步进行概念设计的基础,并在数据库设计过程中不断修改、充实、完善;注意,数据库设计阶段形成的数据字典与后面讲到的数据字典不同,后者是 DBMS关于数据库中数据的描述,当然两者是有联系的;7. 什么是数据库的概念结构试述其特点和设计策略;答:概念结构是信息世界的结构,即概念模型,其主要特点是:1能真实、充分地反映现实世界,包括事物和事物之间的联系,能满足用户对数据的处理要求;是对现实世界的一个真实模型;2易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是数据库的设计成功的关键;。

安徽大学数据库系统概论试题及答案

安徽大学数据库系统概论试题及答案

数据库系统概论复习资料:第一章:一选择题:1.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。

在这几个阶段中,数据独立性最高的是阶段。

A.数据库系统 B.文件系统 C.人工管理 D.数据项管理答案:A2.数据库的概念模型独立于。

A.具体的机器和DBMS B.E-R图 C.信息世界 D.现实世界答案:A 3.数据库的基本特点是。

A.(1)数据可以共享(或数据结构化) (2)数据独立性 (3)数据冗余大,易移植 (4)统一管理和控制B.(1)数据可以共享(或数据结构化) (2)数据独立性 (3)数据冗余小,易扩充 (4)统一管理和控制C.(1)数据可以共享(或数据结构化) (2)数据互换性 (3)数据冗余小,易扩充 (4)统一管理和控制D.(1)数据非结构化 (2)数据独立性 (3)数据冗余小,易扩充 (4)统一管理和控制答案:B 4. 是存储在计算机内有结构的数据的集合。

A.数据库系统B.数据库 C.数据库管理系统D.数据结构答案:B 5.数据库中存储的是。

A.数据 B.数据模型C.数据以及数据之间的联系 D.信息答案:C6. 数据库中,数据的物理独立性是指。

A.数据库与数据库管理系统的相互独立 B.用户程序与DBMS的相互独立C.用户的应用程序与存储在磁盘上数据库中的数据是相互独立的 .. D.应用程序与数据库中数据的逻辑结构相互独立答案:C7. .数据库的特点之一是数据的共享,严格地讲,这里的数据共享是指。

A.同一个应用中的多个程序共享一个数据集合 B.多个用户、同一种语言共享数据C.多个用户共享一个数据文件 D.多种应用、多种语言、多个用户相互覆盖地使用数据集合答案:D8.据库系统的核心是。

A.数据库B.数据库管理系统 C.数据模型 D.软件工具答案:B9. 下述关于数据库系统的正确叙述是。

A.数据库系统减少了数据冗余 B.数据库系统避免了一切冗余 C.数据库系统中数据的一致性是指数据类型一致D.数据库系统比文件系统能管理更多的数据答案:A10. 数将数据库的结构划分成多个层次,是为了提高数据库的①和②。

安工大数据结构试卷(带完整答案).doc

安工大数据结构试卷(带完整答案).doc
2.设一棵完全二叉树中有500个结点,则该二叉W的深度为9;若用二叉链表作为该完全二叉树的存储结构,则共有501___
个空指针域。
3.设输入序列为1、2、3,则经过栈的作用后可以得到__5种不同的输出序列。
4.设哈夫曼树中共有99个结点,则该树中有50个若采用二叉链表作为存储结构,则该树中有__100___个空指针域。
答:见三、4图
5.设一棵二叉树的先序序列为ABDGECFH,中序序列为:DGBAECHF。试画出该二叉树。(6分)
答:见三、5图
四、判断题(1*10'=10分)
1、顺序表结构适宜于进行顺序存取,而链表适宜于进行随机存取。(错)
2、两个栈共享一片连续内存空间时,为提高内存利用率,减少溢出机会,应把两个栈的栈底分别设在这片内存空间的两端。。(对)
{
r=q;
r->next=p->next; p->next=r; q=q->next;
}
else
{
p=p->next; q=q->next;
}
if (!p&&q)
P=q;
return A;
}
2、试编写算法计算二叉树中度为1的结点数。(9分)
int count (bintree t) /*求二叉链表结构二叉树t度为1的结点数*/
答:int count (bintree t)
{
int count=0;
PSeqStack S; bintree p=t;
5.设一棵完全二叉树的顺序存储结构中存储数据元素为ABCDEF,则该二叉树的中序遍历序列为DBEAFCo
课程班级姓名学号
工 业 大 学 试 题 纸(二)

《数据库技术与应用》第11章数据库管理系统 习题答案

《数据库技术与应用》第11章数据库管理系统 习题答案

第11章数据库管理系统1. 简述DBMS的基本功能。

解:DBMS用于操纵和管理数据库的大型软件,它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。

拥有以下基本的功能:●数据库的定义和创建:DBMS提供数据定义语言(DDL)定义和创建数据库模式、外模式、内模式等数据库对象。

●数据组织、存储和管理:DBMS要分类组织、存储和管理各种数据,包括数据字典、用户数据、存取路径等。

●数据库的操作:DBMS提供数据操纵语言(DML)实现对数据的操作,包括:查询、插入、删除和更新。

●数据库的保护功能:DBMS对数据库的保护主要通过四个方面实现:1)数据库的恢复。

2)数据库的并发控制。

3)数据完整性控制。

4)数据安全性控制。

●数据库的维护功能:数据库的维护包括数据库的数据载入和转换、数据库的转储和恢复、数据库的改组以及性能监控等功能。

●数据库的通信功能以及不断发展的新的数据管理技术。

2. 根据处理对象的不同,DBMS主要分为哪几个层次?解:根据处理对象的不同,数据库管理系统的层次结构由高级到低级依次为应用层:应用层是DBMS与终端用户和应用程序的界面层,处理各种数据库应用语言处理层:语言处理层主要是处理数据库语言,如SQL。

数据存取层:数据存取层处理单个元组,将上层集合操作转换成单元组操作。

数据存储层:数据存储层的处理对象是数据页和系统缓冲区,包括缓冲区管理、内外存交换、外存的数据管理等。

3. 试述语言翻译处理层的主要任务。

解:语言翻译处理层用于处理数据库语言,其任务就是将用户以不同形式提交的数据库语句转换成对RDBMS内存可执行的基本存取模块的调用序列。

语言处理层对数据库语言的各类语句进行语法分析、视图转换、安全性检查、完整性检查、查询优化等,通过对下层基本模块的调用,生成可执行代码。

4. 简述数据存取层主要包括的功能子系统及各个子系统的任务。

解:在实际的DBMS中,数据存取层功能是由多个功能子系统来完成的。

数据库课后习题答案(全)

数据库课后习题答案(全)

第1章数据库系统概述习题参考答案1.1 数据处理和数据库应用的例子:电话公司使用数据库存储客户基本信息、客户的每次通话信息以及雇员基本信息、雇员业绩信息等。

典型的数据处理包括电话收费、生成客户长途电话话单、计算雇员工资等图书馆使用数据库存储图书资料信息、读者基本信息、图书借阅信息等。

典型的数据处理包括新书登记、处理读者借还图书等税务局使用数据库存储纳税人(个人或公司)信息、纳税人缴纳税款信息等。

典型的数据处理包括纳税、退税处理、统计各类纳税人纳税情况等。

银行使用数据库存储客户基本信息、客户存贷款信息等。

典型的数据处理包括处理客户存取款等。

超市使用数据库存储商品的基本信息、会员客户基本信息、客户每次购物的详细清单。

典型的数据处理包括收银台记录客户每次购物的清单并计算应交货款。

1.2 DBMS是数据库管理系统的简称,是一种重要的程序设计系统。

它由一个相互关联的数据集合和一组访问这些数据的程序组成。

数据库是持久储存在计算机中、有组织的、可共享的大量数据的集合。

数据库中的数据按一定的数据模型组织、描述和存储,可以被各种用户共享,具有较小的冗余度、较高的数据独立性,并且易于扩展。

数据库系统由数据库、DBMS(及其开发工具)、应用系统和数据库管理员组成。

数据模型是一种形式机制,用于数据建模,描述数据、数据之间的联系、数据的语义、数据上的操作和数据的完整性约束条件。

数据库模式是数据库中使用数据模型对数据建模所产生设计结果。

对于关系数据库而言,数据库模式由一组关系模式构成。

数据字典是DBMS维护的一系列内部表,用来存放元数据。

所谓元数据是关于数据的数据。

1.3 DBMS提供如下功能:(1)数据定义:提供数据定义语言DDL,用于定义数据库中的数据对象和它们的结构。

(2)数据操纵:提供数据操纵语言DML,用于操纵数据,实现对数据库的基本操作(查询、插入、删除和修改)。

(3)事务管理和运行管理:统一管理数据、控制对数据的并发访问,保证数据的安全性、完整性,确保故障时数据库中数据不被破坏,并且能够恢复到一致状态。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第十一章并发控制
1.并发操作可能会产生哪几类数据不一致性用什么方法能避免各种不一
致性的情况。

答:数据库的并发操作所带来的数据不一致性有三类:丢失更新问题、不一致性分析问题和读“脏”数据问题。

对于并发操作带来的问题,通常采用并发控制的方法调度并发操作,避免造成数据的不一致性,使一个用户事务的执行不受其他事务的干扰。

2.为什么D M L锁只能提供解除S封锁的操作,而不提供解除X封锁的操作。

答:为防止由事务的ROLLBACK操作引起的丢失更新操作,X封锁必须保留到事务终点。

即X封锁不是用UNLOCK操作解除的,而是在事务结束的语义中包含了对X封锁的解除,因此,DML不提供解除X封锁的操作。

而为增加事务并发操作的程度,未到事务终点时,用户可以使用DML提供的专门解除S封锁的操作,随时解除事务的S封锁,这是因为被S封锁的数据不可能是未提交的修改。

3.为什么有些封锁需保留到事务终点,而有些封锁可随时解除。

答:为防止由事务的ROLLBACK操作引起的丢失更新操作,X封锁必须保留到事务终点。

而被S封锁的数据不可能是未提交的修改,因此可以随时解除事务的S封锁,达到增加事务并发操作的程度。

4.设T1、T2、T3是如下的三个事务:
T1:A:=A+2;
T2:A:=A*2;
T3:A:=A**2(A←A2)
设A的初值为0。

⑴若这三个事务允许并发执行,则有多少种可能的正确结果,请一一列举出来;
⑵请给出一个可串行化的调度,并给出执行结果;
⑶请给出一个非串行化的调度,并给出执行结果;
⑷若这三个事务都遵守两段锁协议,请给出一个不产生死锁的可串行化调度;
⑸若这三个事务都遵守两段锁协议,请给出一个产生死锁的调度。

解:
⑴A的最终结果可能有2、4、8、16。

因为串行执行次序有T1→T2→T3、T1→T3→T2、T2→T1→T3、T2→T3→T1、
T3→T1→T2、T3→T2→T1,对应的执行结果是16、8、4、2、4、2。

⑵T1T2T3
Slock A
Y=A=0
Unlock A
Xlock A
Slock A
A=Y+2 等待
写回A(=2)等待
Unlock A 等待
Y=A=2
Unlock A
Xlock A
Slock A
A=Y*2 等待
写回A(=4)等待
Unlock A 等待
Y=A=4 Unlock A
Xlock A
A=Y**2写回A(=16)
Unlock A
最后结果A为16,是可串行化的调度。

⑶T1T2T3
Slock A
Y=A=0
Unlock A
Slock A
Y=A=0
Xlock A
等待 Unlock A
A=Y+2
写回A(=2) Slock A Unlock A 等待
Y=A=2
Unlock A
Xlock A Xlock A
等待 A=Y**2
等待写回A(=16)
等待 Unlock A
A=Y*2
写回A(=0)
Unlock A
最后结果A为0,为非串行化的调度。

⑷T1T2T3
Slock A
Y=A=0
Xlock A
A=Y+2 Slock A
写回A(=2)等待
Unlock A 等待
Y=A=2
Xlock A
Unlock A 等待 Slock A
A=Y*2 等待
写回A(=4)等待
Unlock A 等待
Y=A=4
Unlock A
Xlock A
A=Y**2
写回A(=16)
Unlock A
Unlock A
⑸T1T2T3
Slock A
Y=A=0
Slock A
Y=A=0
Xlock A
等待
Xlock A
等待
Slock A
Y=A=0
Xlock A
等待。

相关文档
最新文档