• 678.50 KB
  • 2022-04-22 11:31:43 发布

《数据库系统概论》各章复习题及答案(2013给学生).doc

  • 52页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'数据库系统概论复习资料第一章绪论一单项选择题1.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。在这几个阶段中,数据独立性最高的是阶段。A.数据库系统B.文件系统C.人工管理D.数据项管理答案:A2.数据库的概念模型独立于。A.具体的机器和DBMSB.E-R图C.信息世界D.现实世界答案:A3.是存储在计算机内有结构的数据的集合。A.数据库系统B.数据库C.数据库管理系统D.数据结构答案:B4.数据库中存储的是。A.数据B.数据模型C.数据以及数据之间的联系D.信息答案:C5.数据库中,数据的物理独立性是指。A.数据库与DBMS的相互独立B.用户程序与DBMS的相互独立C.用户的应用程序与存储在磁盘上数据库中的数据是相互独立的D.应用程序与数据库中数据的逻辑结构相互独立答案:C6.下述关于数据库系统的正确叙述是。A.数据库系统减少了数据冗余B.数据库系统避免了一切冗余C.数据库系统中数据的一致性是指数据类型一致D.数据库系统比文件系统能管理更多的数据答案:A7.数据库(DB)、数据库系统(DBS)和数据库管理系统(DBMS)三者之间的关系是。A.DBS包括DB和DBMSB.DDMS包括DB和DBSC.DB包括DBS和DBMSD.DBS就是DB,也就是DBMS答案:A8.在数据库中,产生数据不一致的根本原因是。A.数据存储量太大B.没有严格保护数据C.未对数据进行完整性控制D.数据冗余答案:D9.数据库管理系统(DBMS)是。A.数学软件B.应用软件C.计算机辅助设计D.系统软件答案:D 10.数据库管理系统(DBMS)的主要功能是。A.修改数据库B.定义数据库C.应用数据库D.保护数据库答案:B11.数据库系统的特点是、数据独立、减少数据冗余、避免数据不一致和加强了数据保护。A.数据共享B.数据存储C.数据应用D.数据保密答案:A12.数据库系统的最大特点是。A.数据的三级抽象和二级独立性B.数据共享性C.数据的结构化D.数据独立性答案:A13.数据库管理系统能实现对数据库中数据的查询、插入、修改和删除等操作,这种功能称为。A.数据定义功能B.数据管理功能C.数据操纵功能D.数据控制功能答案:C14.数据库管理系统是。A.操作系统的一部分B.在操作系统支持下的系统软件C.一种编译程序D.一种操作系统答案:B15.据库的三级模式结构中,描述数据库中全体数据的全局逻辑结构和特征的是()A.外模式B.内模式C.存储模式D.模式答案:D16.数据库系统的数据独立性是指B。A.不会因为数据的变化而影响应用程序B.不会因为系统数据存储结构与数据逻辑结构的变化而影响应用程序C.不会因为存储策略的变化而影响存储结构D.不会因为某些存储结构的变化而影响其他的存储结构答案:B17.信息世界中的术语,与之对应的数据库术语为。A.文件B.数据库C.字段D.记录答案:D18.传统的数据模型分类,数据库系统可以分为三种类型。A.大型、中型和小型B.西文、中文和兼容C.层次、网状和关系D.数据、图形和多媒体答案:C19.数据库系统的核心和基础是(  )A.数据库B.数据库管理系统C.数据模型D.软件工具答案:C20.下列四项中,不属于数据库系统的特点的是()A.数据结构化B.数据由DBMS统一管理和控制C.数据冗余度大D.数据独立性高答案:C21.概念模型是现实世界的第一层抽象,这一类模型中最著名的模型是(  )A.层次模型B.关系模型C.网状模型D.实体-联系模型答案:D22.要保证数据库的逻辑数据独立性,需要修改的是( ) A.模式与外模式之间的映象B.模式与内模式之间的映象C.模式D.三级模式答案:A23.关系数据模型的基本数据结构是()A.树B.图C.索引D.关系答案:D24.有一名为“列车运营”实体,含有:车次、日期、实际发车时间、实际抵达时间、情况摘要等属性,该实体主码是()A.车次B.日期C.车次+日期D.车次+情况摘要答案:C25.数据库的三级模式是指()A.外模式、模式、内模式B.逻辑模式、物理模式、概念模式C.表模式、视图模式、索引模式D.用户模式、管理员模式、程序员模式答案:A26相对于非关系模型,关系数据模型的缺点之一是()。A.存取路径对用户透明,DBMS需查询优化B.数据结构简单C.数据独立性高D.有严格的数学基础答案:A27数据的逻辑独立性是指()A.内模式改变,模式不变B.模式改变,内模式不变C.模式改变,外模式和应用程序不变D.内模式改变,外模式和应用程序不变答案:C28下列四项中,不属于数据库系统的主要特点的是()。A.数据结构化B.数据的冗余度小C.较高的数据独立性D.程序的标准化答案:D二、多项选择题1.数据库的基本特点是。A.数据可以共享(或数据结构化)B.数据独立性C.数据冗余小,易扩充D.统一管理和控制答案:ABCD2.在数据管理技术的发展过程中,经历了阶段。A.人工管理B.文件系统C.档案管理D.数据库系统答案:ABD3.数据库的三级模式包括A.外模式B.内模式C.存储模式D.模式答案:ABD4.10.数将数据库的结构划分成多个层次,是为了提高数据库的。①A.数据的冗余B.逻辑独立性C.数据的共享D.物理独立性答案:BD5.数据库系统对硬件的较高要求是。 A.足够大的内存B.足够大的磁盘或磁盘阵列C.较高的通道能力D.软件丰富答案:ABC三、填空题1.数据管理技术经历了、和三个阶段。答案:①人工管理②文件系统②数据库系统2.数据库是长期存储在计算机内、有的、可的数据集合。答案:①组织②共享3.DBMS是指它是位于和之间的一层管理软件。答案:①数据库管理系统②用户③操作系统4.数据库管理系统的主要功能有、、数据库的运行管理和数据库的建立以及维护等4个方面。答案:①数据定义功能②数据操纵功能5.数据独立性又可分为和。答案:①逻辑数据独立性②物理数据独立性6.当数据的物理存储改变了,应用程序不变,而由DBMS处理这种改变,这是指数据的。答案:物理独立性7.数据库系统中最重要的软件是,最重要的人员是答案:DBMS,DBA四、判断题1.数据冗余可能导致的问题有浪费存储空间及修改麻烦和潜在的数据不一致性。答案:对2.实体之间的联系可抽象为三类,它们是1∶1、1∶m和m∶n。答案:对3.数据库体系结构按照模式、外模式和内模式三级结构进行组织。答案:对4.数据结构是对数据系统的动态特性的描述,数据操作是对数据库系统的静态特性的描述。答案:错。解析:前者是静态描述,后者是动态描述。5.数据模型是由数据结构、数据操作和完整性约束三部分组成的。答案:对6.概念模型属于机器世界。答案:错。解析:概念模型应属于信息世界。7.数据库是长期存储在计算机内的、有组织、可共享的大量的数据的集合。答案:对8.数据库管理员是开发数据库的专门人员。答案:错。解析:应是管理数据库的专门人员。五:简答题1.举说明两个实体集之间的三种联系。2.举说明两个实体集之间联系上的属性。3.举出一个不符合“关系的每一个分量都是不可分的数据项”要求的二维表。4.用通俗的语言解释关系数据结构的关系、元组、属性、码、分量的概念。5.举说明三个实体集之间的一个共同联系不能用三个实体集之间的两两联系替代。6.试述数据、数据库、数据库管理系统、数据库系统的概念。 答:数据是描述事物的符号记录。数据库是长期存储在计算机内的、有组织的、可共享的数据集合。数据库管理系统是位于用户与操作系统之间的具有数据定义、数据操纵、数据库的运行管理、数据库的建立和维护功能的一层数据管理软件。数据库系统是在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。六、设计题1.假设教学管理规定:①一个学生可选修多门课,一门课有若干学生选修;②一个教师可讲授多门课,一门课只有一个教师讲授;③一个学生选修一门课,仅有一个成绩。学生的属性有学号、学生姓名;教师的属性有教师编号,教师姓名;课程的属性有课程号、课程名。要求:根据上述语义画出ER图,要求在图中画出实体的属性并注明联系的类型;成绩教师编号教师姓名学生选修m课程教师讲授nn1学号姓名课程号课程名解答: 2.某系有若干个课程组,每个课程组有若干位教师,每个教师可参加若干个课程组,每个课程组管理若干门课程,每门课程只属于一个课程组。教师有工号、姓名、职称的属性,课程组有名称、专业方向的属性,课程有名称、学时、考核方式的属性。考核方式学时名称请根据给定语义画出E-R图,并在图上注明联系类型。专业方向名称解答:管理课程组课程1mm参加n教师工号姓名职称 第2章关系数据库一、单项选择题1、关系数据库管理系统应能实现的专门关系运算包括。A.排序、索引、统计B.选择、投影、连接C.关联、更新、排序D.显示、打印、制表答案:B2、关系模型中,一个关键字是。A.可由多个任意属性组成B.至多由一个属性组成C.可由一个或多个其值能唯一标识该关系模式中任何元组的属性组成D.以上都不是答案:C3、自然连接是构成新关系的有效方法。一般情况下,当对关系R和S使用自然连接时,要求R和S含有一个或多个共有的。A.元组B.行C.记录D.属性答案:D4、关系运算中花费时间可能最长的运算是。A.投影B.选择C.笛卡尔积D.除答案:C5.关系模式的任何属性。A.不可再分B.可再分C.命名在该关系模式中可以不惟一D.以上都不是答案:A6.在关系代数运算中,五种基本运算为。A.并、差、选择、投影、自然连接B.并、差、交、选择、投影C.并、差、选择、投影、乘积D.并、差、交、选择、乘积答案:C7、设有关系R,按条件f对关系R进行选择,正确的是。A.R´RB.RwvRC.sf(R)D.Pf(R)F答案:C8、如图所示,两个关系R1和R2,它们进行运算后得到R3。R2DEM125MNMIJKR1ABCAC12XY D1YR3ABCDEADC112XYYMMNIIJA.交B.并C.笛卡尔积D.连接答案:D。根据B与D列相等联接。9.己知关系R和S,R∩S等价于()A.(R-S)-SB.S-(S-R)C.(S-R)-RD.S-(R-S)答案:B二、多项选择题1.关系代数的运算包括:A.交B.并C.笛卡尔积D.连接答案:ABCD2.关系代数运算中,传统的集合运算有:A.交B.并C.笛卡尔积D.连接答案:ABC3.关系代数运算中,专门的关系运算有:A.交B.并C.投影D.连接答案:CD4.关系的完整性约束包括:A.实体完整性B.参照完整性C用户定义完整性D关系完整性答案:ABC5.关系模式的构成包括:A.属性名集合B.关系名C.属性来自的域D.属性向域的映射ABCD6.常用的关系操作有:A.查询B.插入C.删除D.修改答案:ABCD三、填空题1、一个关系模式的定义格式为。答案:关系名(属性名1,属性名2,…,属性名n)2、.一个关系模式的定义主要包括关系名、属性名、属性类型、 属性长度和关键字。答案:①关系名②属性名③属性类型④属性长度⑤关键字3、.关系代数运算中,传统的集合运算有①、②、③和④。答案:①笛卡尔积②并③交④差4、关系代数运算中,基本的运算是①、②、③、④和⑤。答案:①并②差③笛卡尔积④投影⑤选择5、关系代数运算中,专门的关系运算有选择、投影和连接。答案:①选择②投影③连接6、关系数据库中基于数学上两类运算是关系代数和关系演算。答案:①关系代数②关系演算7、.已知系(系编号,系名称,系主任,电话,地点)和学生(学号,姓名,性别,入学日期,专业,系编号)两个关系,系关系的主码是①,系关系的外码②,学生关系的主码是③,学生关系的外码是④答案:①系编号②无③学号④系编号8.一般情况下,当对关系R和S使用自然连接时,要求R和S含有一个或多个共有的。答案:属性9.关系数据库的实体完整性规则规定基本关系的都不能取。答案:主属性空值(或NULL)在关系A(S,SN,D)和B(D,CN,NM)中,A的主码是S,B的主码是D,则D在A中称为。答案:外码10.关系R与S的交可以用关系代数的5种基本运算表示为。答案:R-(R-S)11.四、判断题1.已知系(系编号,系名称,系主任,电话,地点),系关系的主码是系编号。对2.在关系模型中,实体和实体间的联系都是用关系来表示的。对3.关系是静态的、稳定的,关系模式是动态的、随时间变化的。错4.候选码的值可以唯一地表示关系中的一个元组。对5.候选码的属性称为主属性。对参照完整性是指基本关系R的主属性不能取空值。错 6.关系的类型有基本关系、查询表和视图表。对7.表中不同的列不能出自同一个域。错8.任意两个元组的候选码可以相同。错9.关系中行的顺序和列的顺序都可以交换。对10.关系的外码是允许有空值的。对五、简答题1.有三个关系:学生(学号,姓名,性别,年龄),课程(课程号,课程名,学时),选修(学号,课程号,成绩),用文字说明如何定义三个关系的实体完整性约束与参照完整性约束。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{swv[∏S#,C#(sc)÷∏C#(σTEACHER=‘程军’(C))]} (4).∏C#(C)-∏C#(σSNAME=‘李强’(S)wvSC)(5).∏S#(σ[1]=[4]∧[2]≠[5](SC×SC))(6).∏C#,CNAME(Cwv(∏S#,C#(sc)÷∏S#(S)))(7).∏S#(SCwv∏C#(σTEACHER=‘程军’(C)))(8).∏S#,C#(sc)÷∏C#(σC#=’k1’∨C#=’k5’(C))(9).∏SNAME{swv[∏S#,C#(sc)÷∏C#(C)]}(10).∏S#,C#(sc)÷∏C#(σS#=’2’(SC))(11).∏S#,SNAME{swv[∏S#(SCwvσCNAME=‘C语言’(C))]}2.关系R和S如下图所示,试计算R÷S。RABCDabcdabefabhkbdefbddlckcdckefSCDcdefR÷SABabck答案: 第3章关系数据库标准语言SQL(程序设计题为重点)一、单项选择题1、SQL语言是的语言,易学习。A.过程化B.非过程化C.格式化D.导航式答案:B2、SQL语言是语言。A.层次数据库B.网络数据库C.关系数据库D.非数据库答案:C3、SQL语言具有的功能。A.关系规范化、数据操纵、数据控制B.数据定义、数据操纵、数据控制C.数据定义、关系规范化、数据控制D.数据定义、关系规范化、数据操纵答案:B4、假定学生关系是S(S#,SNAME,SEX,AGE),课程关系是C(C#,CNAME,TEACHER),学生选课关系是SC(S#,C#,GRADE)。要查找选修“COMPUTER”课程的“女”学生姓名,将涉及到关系。A.SB.SC,CC.S,SCD.S,C,SC答案:D5、若用如下的SQL语句创建一个student表:CREATETABLEstudent(NOChar(4)NOTNULL,NAMEChar(8)NOTNULL,SEXChar(2),AGEint)可以插入到student表中的是。A.(‘1031’,‘曾华’,男,23)B.(‘1031’,‘曾华’,NULL,NULL)C.(NULL,‘曾华’,‘男’,‘23’)D.(‘1031’,NULL,‘男’,23)答答案:B第6到第8题基于这样的三个表即学生表S、课程表C和学生选课表SC,它们的结构如下:S(S#,SN,SEX,AGE,DEPT)C(C#,CN)SC(S#,C#,GRADE)其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,GRADE为成绩。6、检索所有比“王华”年龄大的学生姓名、年龄和性别。正确的SELECT语句是。A.SELECTSN,AGE,SEXFROMS WHEREAGE>(SELECTAGEFROMSWHERESN=“王华”)B.SELECTSN,AGE,SEXFROMSWHERESN>“王华”C.SELECTSN,AGE,SEXFROMSWHEREAGE>(SELECTAGEFROMSWHERESN>“王华”)D.SELECTSN,AGE,SEXFROMSWHEREAGE>王华.AGE答案:A7、检索选修课程“C2”的学生中成绩最高的学生的学号。正确的SELECT语句是。A.SELECTS#FORMSCWHEREC#=“C2”ANDGRADE>=(SELECTGRADEFORMSCWHEREC#=“C2”)B.SELECTS#FORMSCWHEREC#=“C2”ANDGRADEIN(SELECTGRADEFORMSCWHEREC#=“C2”)C.SELECTS#FORMSCWHEREC#=“C2”ANDGRADENOTIN(SELECTGRADEFORMSCWHEREC#=“C2”)D.SELECTS#FORMSCWHEREC#=“C2”ANDGRADE>=ALL(SELECTGRADEFORMSCWHEREC#=“C2”)答案:D8、检索学生姓名及其所选修课程的课程号和成绩。正确的SELECT语句是。A.SELECTS.SN,SC.C#,SC.GRADEFROMSWHERES.S#=SC.S#B.SELECTS.SN,SC.C#,SC.GRADE FROMSCWHERES.S#=SC.GRADEC.SELECTS.SN,SC.C#,SC.GRADEFROMS,SCWHERES.S#=SC.S#D.SELECTS.SN,SC.C#,SC.GRADEFROMS.SC答案:C9.学校数据库中有学生和宿舍两个关系:学生(学号,姓名)和宿舍(楼名,房间号,床位号,学号)假设有的学生不住宿,床位也可能空闲。如果要列出所有学生住宿和宿舍分配的情况,包括没有住宿的学生和空闲的床位,则应执行()A.全外联接B.左外联接C.右外联接D.自然联接答案:A10.用下面的T-SQL语句建立一个基本表:CREATETABLEStudent(SnoCHAR(4)PRIMARYKEY,SnameCHAR(8)NOTNULL,SexCHAR(2),AgeINT)可以插入到表中的元组是()A."5021","刘祥",男,21B.NULL,"刘祥",NULL,21C."5021",NULL,男,21D."5021","刘祥",NULL,NULL答案:D11.二、填空题1、SQL是。答案:结构化查询语言2、视图是一个虚表,它是从①中导出的表。在数据库中,只存放视图的②,不存放视图的③。答案:①一个或几个基本表②定义③视图对应的数据3、设有如下关系表R:R(No,NAME,SEX,AGE,CLASS)主关键字是NO其中NO为学号,NAME为姓名,SEX为性别,AGE为年龄,CLASS为班号。写出实现下列功能的SQL语句。①插入一个记录(25,“李明”,“男”,21,“95031”);。②插入“95031”班学号为30、姓名为“郑和”的学生记录;。③将学号为10的学生姓名改为“王华”;。④将所有“95101”班号改为“95091”;。⑤删除学号为20的学生记录;。 ⑥删除姓“王”的学生记录;。答案:①INSERTINTORVALUES(25,“李明”,“男”,21,“95031”)②INSERTINTOR(NO,NAME,CLASS)VALUES(30,“郑和”,“95031”)③UPDATERSETNAME=“王华”WHERENO=10④UPDATERSETCLASS=“95091”WHERECLASS=“95101”⑤DELETEFROMRWHERENO=20⑥DELETEFROMRWHERENAMELIKE“王%”4.在Student表的Sname列上建立一个唯一索引的SQL语句为:CREATEStusnameONstudent(Sname)答案:UNIQUEINDEX5.SELECT语句查询条件中的谓词“!=ALL”与运算符等价。答案:NOTIN6.三、简答题1.试述视图的作用。答案:(1)视图能够简化用户的操作。(2)视图使用户能以多种角度看待同一数据。(3)视图对重构数据库提供了一定程度的逻辑独立性。(4)视图能够对机密数据提供安全保护。(5)适当利用视图可以更清晰表达查询2.说明视图与基本表的区别和联系。视图是从一个或几个基本表导出的表,它与基本表不同,是一个虚表,数据库中只存放视图的定义,而不存放视图对应的数据,这些数据存放在原来的基本表中,当基本表中的数据发生变化,从视图中查询出的数据也就随之改变(2分)。视图一经定义就可以像基本表一样被查询、删除,也可以在一个视图之上再定义新的视图,但是对视图的更新操作有限制.四、程序设计题(一)设学生课程数据库中有三个关系:学生关系S(S#,SNAME,AGE,SEX)学习关系SC(S#,C#,GRADE)课程关系C(C#,CNAME)其中S#、C#、SNAME、AGE、SEX、GRADE、CNAME分别表示学号、课程号、姓名、年龄、性别、成绩和课程名。用SQL语句表达下列操作(1)检索选修课程名称为“MATHS”的学生的学号与姓名(2)检索已经选修了课程号为“C1”和“C2”的学生的学号 (3)检索年龄在18到20之间(含18和20)的女生的学号、姓名和年龄(4)检索平均成绩超过80分的学生学号和平均成绩(5)检索选修了课程的学生姓名(6)检索选修了三门课以上的学生的姓名答案:(1)SELECTS#,SNAMEFROMS,SC,CWHERES.S#=SC.S#ANDC.C#=SC.C#ANDCNAME=’MATHS’(2)SELECTS#FROMSCWHERECNO=’C1’ANDS#IN(SELECTS#FROMSCWHERECNO=’C2’)(3)SELECTS#,SNAME,AGEFROMSWHEREAGEBETWEEN18AND20ANDSEX=’女‘(4)SELECTS#,AVG(GRADE)‘平均成绩’FROMSCGROUPBYS#HAVINGAVG(GRADE)>80(5)SELECTSNAMEFROMSWHERES#IN(SELECTS#FROMSC)(6)SELECTSNAMEFROMS,SCWHERES.S#=SC.S#GROUPBYSNAMEHAVINGCOUNT(*)>3(二)设学生-课程数据库中包括三个表:学生表:Student(Sno,Sname,Sex,Sage,Sdept)课程表:Course(Cno,Cname,Ccredit)学生选课表:SC(Sno,Cno,Grade) 其中Sno、Sname、Sex、Sage、Sdept、Cno、Cname、Ccredit、Grade分别表示学号、姓名、性别、年龄、所在系名、课程号、课程名、学分和成绩。试用SQL语言完成下列项操作:(1)查询选修课程包括“1042”号学生所学的课程的学生学号(2)创建一个计科系学生信息视图S_CS_VIEW,包括Sno学号、Sname姓名、Sex性别;(3)通过上面第2题创建的视图修改数据,把王平的名字改为王慧平(4)创建一选修数据库课程信息的视图,视图名称为datascore_view,包含学号、姓名、成绩。答案:(1)SELECTDISTINCTSNOFROMSCSCXWHERENOTEXISTS(SELECT*FROMSCSCYWHERESCY.SNO="1042"ANDNOTEXISTS(SELECT*FROMSCSCZWHERESCZ.SNO=SCX.SNOANDSCZ.CNO=SCY.CNO));(2)CREATEVIEWS_CS_VIEWASSELECTSNO,SNAME,SEXFROMSTUDENTWHERESdept=’CS’(3)UPDATES_CS_VIEWSETSNAME=’王慧平’WHERESNAME=’王平’(4)CREATEVIEWdatascore_viewASSELECTSNO学号、SNAME姓名、GRADE成绩FROMSTUDENT,SC,COURSEWHERESTUDENT.SNO=SC.SNOANDCOURSE.CNO=SC.CNOANDCNAME=’数据库’ (三)设教学数据库Education有三个关系:学生关系S(SNO,SNAME,SAGE,SSEX,SDEPT);学习关系SC(SNO,CNO,GRADE);课程关系C(CNO,CNAME,CCREDIT)查询问题:1:查所有年龄在20岁以下的学生姓名及年龄。2:查考试成绩有不及格的学生的学号。3:查所年龄在20至23岁之间的学生姓名、系别及年龄。4:查计算机系、数学系、信息系的学生姓名、性别。5:查既不是计算机系(CS)、数学系(MA)、又不是信息系(IS)的学生姓名、性别6:查所有姓“刘”的学生的姓名、学号和性别。7:查姓“上官”且全名为3个汉字的学生姓名。8:查所有不姓“张”的学生的姓名。9:查“DB_Design”课程的课程号。10:查缺考的学生的学号和课程号。11:查年龄为空值的学生的学号和姓名。12:查计算机系20岁以下的学生的学号和姓名。13:查计算机系、数学系、信息系的学生姓名、性别。14:查询选修了课程号为C3的课程的学生的学号和成绩,其结果按分数的降序排列。15:查询全体学生的情况,查询结果按所在系升序排列,对同一系中的学生按年龄降序排列。16:查询学生总人数。17:查询选修了课程的学生人数。18:计算选修了课程号为C1的课程的学生平均成绩。19:查询学习课程号为C3的课程的学生最高分数。20:查询各个课程号与相应的选课人数。21:查询计算机系选修了3门以上课程的学生的学号。22:求基本表S中男同学的每一年龄组(超过50人的)有多少人?要求查询结果按人数升序排列,人数相同按年龄降序排列。23:查询每个学生及其选修课程的情况。24:查询选修了课程号为C2的课程且成绩在90分以上的所有学生。25:查询每个学生选修的课程名及其成绩。26:统计每一年龄选修课程的学生人数。27:查询选修了课程号为C2的课程的学生姓名。28:查询与“张三”在同一个系学习的学生学号、姓名和系别。29:查询选修课程名为“数据库”的学生学号和姓名。30:查询所有未选修C2课程的学生姓名。解:1查所有年龄在20岁以下的学生姓名及年龄。SELECTSname,SageFROMSWHERESage<20;(NOTage>=20)2.查考试成绩有不及格的学生的学号SELECTDISTINCTSnoFROMSCWHEREgrade<60;3.查所年龄在20至23岁之间的学生姓名、系别及年龄。SELECTSname,Sdept,SageFROMSWHERESageBETWEEN20AND23; 4.查计算机系、数学系、信息系的学生姓名、性别。SELECTSname,SsexFROMSWHERESdeptIN(’CS’,‘IS’,‘MATH’);5.查既不是计算机系、数学系、又不是信息系的学生姓名、性别SELECTSname,SsexFROMSWHERESdeptNOTIN(’CS’,‘IS’,‘MATH’);6.查所有姓“刘”的学生的姓名、学号和性别。SELECTSname,Sno,SsexFROMSWHERESnameLIKE‘刘%’;7.查姓“上官”且全名为3个汉字的学生姓名。SELECTSnameFROMSWHERESnameLIKE‘上官__’;8.查所有不姓“张”的学生的姓名。SELECTSname,Sno,SsexFROMSWHERESnameNOTLIKE‘张%’;9.查DB_Design课程的课程号。SELECTCnoFROMCWHERECnameLIKE‘DB_Design’ESCAPE‘’;10.查缺考的学生的学号和课程号。SELECTSno,CnoFROMSCWHEREGradeISNULL;(不能用=代替){有成绩的WHEREGradeISNOTNULLL;}11.查年龄为空值的学生的学号和姓名。SELECTSno,SnameFROMSWHERESageISNULL;12.查计算机系20岁以下的学生的学号和姓名。SELECTSno,SnameFROMSWHERESdept=‘CS’ANDSage<20;13.查计算机系、数学系、信息系的学生姓名、性别。SELECTSname,SsexFROMSWHERESdept=’CS’ORSdept=‘IS’ORSdept=’MATH’);14.查询选修了C3课程的学生的学号和成绩,其结果按分数的降序排列。SELECTSno,GradeFROMSCWHERECno=‘C3’ORDERBYGradeDESC;15.查询全体学生的情况,查询结果按所在系升序排列,对同一系中的学生按年龄降序排列。 SELECT*FROMSORDERBYSdep,SageDESC;16.查询学生总人数。SELECTCOUNT(*)FROMS17.查询选修了课程的学生人数。SELECTCOUNT(DISTINCTSno)FROMSC18.计算选修了C1课程的学生平均成绩。SELECTAVG(Grade)FROMSCWHERECno=‘C1’;19.查询学习C3课程的学生最高分数。SELECTMAX(Grade)FROMSCWHERECno=‘C3’;20.查询各个课程号与相应的选课人数。SELECTCno,COUNT(Sno)FROMSCGROUPBYCno;该SELECT语句对SC表按Cno的取值进行分组,所有具有相同Cno值的元组为一组,然后对每一组作用聚合函数COUNT以求得该组的学生人数。如果分组后还要求按一定的条件对这些组进行筛选,最终只输出满足指定条件组,则可以使用HAVING短语指定筛选条件。21.查询计算机系选修了3门以上课程的学生的学号。SELECTSnoFROMSCWHERESdept=‘CS’GROUPBYSnoHAVINGCOUNT(*)>3;WHERE子句与HAVING短语的根本区别在于作用对象不同。WHERE子句作用于基本表或视图,从中选择满足条件的元组。HAVING短语作用于组,从中选择满足条件的组。22.求基本表S中男同学的每一年龄组(超过50人)有多少人?要求查询结果按人数升序排列,人数相同按年龄降序排列。SELECTSage,COUNT(Sno)FROMSWHERESsex="M"GROUPBYSageHAVINGCOUNT(*)>50ORDERBY2,SageDESC;23.查询每个学生及其选修课程的情况。SELECTS.Sno,Sname,Sage,Ssex,Sdept,Cno,GradeFROMS,SCWHERES.Sno=SC.Sno;24.查询选修了C2课程且成绩在90分以上的所有学生。SELECTS.Sno,SnameFROMS,SCWHERES.Sno=SC.SnoANDSC.Cno=‘C2’ANDSC.Grade>90;25.查询每个学生选修的课程名及其成绩。SELECTS.Sno,Sname,Cname,SC.GradeFROMS,SC,CWHERES.Sno=SC.SnoANDSC.Cno=C.Cno26.统计每一年龄选修课程的学生人数。 SELECTSage,COUNT(DISTINCTS.Sno)FROMS,SCWHERES.Sno=SC.SnoGROUPBYS;由于要统计每一个年龄的学生人数,因此要把满足WHERE子句中条件的查询结果按年龄分组,在每一组中的学生年龄相同。此时的SELECT子句应对每一组分开进行操作,在每一组中,年龄只有一个值,统计的人数是这一组中的学生人数。27.查询选修了C2课程的学生姓名。1.SELECTSnameFROMSWHERESnoIN(SELECTSnoFROMSCWHERECno=‘C2’);2.SELECTSnameFROMSWHEREEXISTS(SELECT*FROMSCWHERESC.Sno=S.SnoANDCno=‘C2’);28.查询与“张三”在同一个系学习的学生学号、姓名和系别。分析.(1)确定“张三”所在的系;(2)查找所有在X系学习的学生。SELECTSdeptFROMSWHERESname=‘张三’;SELECTSno,Sname,SdeptFROMSWHERESdept=‘X’把第一步查询嵌入到第二步查询中,用以构造第二步查询的条件。SELECTSno,Sname,SdeptFROMSWHERESdeptIN(SELECTSdeptFROMSWHERESname=‘张三’);或SELECTSno,Sname,SdeptFROMSWHERESdept=(SELECTSdeptFROMSWHERESname=‘张三’);或SELECTSno,Sname,SdeptFROMSASS1WHEREEXISTS(SELECT*FROMSASS2WHERES2.Sdept=S1.SdeptANDS2.Sname=‘张三’); 29.查询选修课程名为“数据库”的学生学号和姓名。本查询涉及到学号、姓名和课程名三个属性,分别存放在S和C表中,但S和C表没有直接联系,必须通过SC表建立它们二者的联系。C→SC→S基本思路:(1)首先在C表中找出“数据库”课程的课程号Cno;(2)然后在SC表中找出Cno等于第一步给出的Cno集合中的某个元素Cno;(3)最后在S关系中选出Sno等于第二步中Sno集合中某个元素的元组,取出Sno和Sname送入结果表列。SELECTSno,SnameFROMSWHERESnoIN(SELECTSnoFROMSCWHERECnoIN(SELECTCnoFROMCWHERECname=‘数据库’));或SELECTSno,SnameFROMSWHERESnoIN(SELECTSnoFROMSCWHERECno=(SELECTCnoFROMCWHERECname=‘数据库’));30.查询所有未选修C2课程的学生姓名。SELECTSnameFROMSWHERENOTEXISTS(SELECT*FROMSCWHERESC.Sno=S.SnoANDCno=‘C2’);(四)设教学数据库中有三个基本表:学生表S(SNO,SNAME,AGE,SEX),其属性分别表示学号、学生姓名、年龄、性别。课程表C(CNO,CNAME,TEACHER),其属性分别表示课程号、课程名、上课教师名。选修表SC(SNO,CNO,GRADE),其属性分别表示学号、课程号、成绩。有如下SQL查询语句:SELECTCNOFROMCWHERECNONOTIN(SELECTCNOFROMS,SCWHERES.SNO=SC.SNOANDSNAME="张三");请完成下列问题:(1)用汉语句子阐述上述SQL语句的含义;(2)用等价的关系代数表达式表示上述SQL查询语句。解: (1)查询张三同学没有选修的课程的课程号。(2分)(2)πCNO(C)-πCNO(sSNAME="张三"(S)SC)或πCNO(C)-πCNO(sSNAME="张三"(SSC))(2分)(五)ABA#ANAMEWQTYCITY101韶山商店15长沙204前门百货商店89北京256东风商场501北京345铁道商店76长沙620第一百货公司413上海B#BNAMEPRICE1毛笔212羽毛球7843收音机13254书包242ABA#B#QTY10111051012421013251014104204361256124125629134511413452183454746204125试用SQL语言写出下列查询:(1)找出店员人数不超过100人或者在长沙市的所有商店的代号和商店名。(2)找出代号为’256’的商店所供应的全部商品的品名和数量。(3)统计各商店各自的销售总量,按销售总量从大到小排序。解:(1)SELECTA#,ANAMEFROMAWHEREWQTY<=100ORCITY="长沙";(2)SELECTBNAME,QTYFROMB,ABWHEREB.B#=AB.B#andA#=’256’(3)SELECTB#,SUM(QTY) FROMABGROUPBYB#ORDERBYSUM(QTY)DESC(六)设有职工基本表:EMP(ENO,ENAME,AGE,SEX,SALARY),其属性分别表示职工号、姓名、年龄、性别、工资。为每个工资低于1000元的女职工加薪200元,试写出这个操作的SQL语句。UPDATEEMPSETSALARY=SALARY+200WHERESALARY<1000ANDSEX="女";(七)设某工厂数据库中有两个基本表:车间基本表:DEPT(DNO,DNAME,MGR_ENO),其属性分别表示车间编号、车间名和车间主任的职工号。职工基本表:ERP(ENO,ENAME,AGE,SEX,SALARY,DNO),其属性分别表示职工号、姓名、年龄、性别、工资和所在车间的编号。建立一个有关女车间主任的职工号和姓名的视图,其结构如下:VIEW6(ENO,ENAME)。试写出创建该视图VIEW6的SQL语句。参考答案1:CREATEVIEWVIEW6ASSELECTENO,ENAMEFROMEMPWHERESEX="女"ANDENOIN(SELECTMGR_ENOFROMDEPT)参考答案2:CREATEVIEWVIEW6ASSELECTENO,ENAMEFROMDEPT,EMPWHEREMGR_ENO=ENOANDSEX="女"(八)设有一个工程供应数据库系统,包括如下四个关系模式:lS(SNO,SNAME,STATUS,CITY);lP(PNO,PNAME,COLOR,WEIGHT);lJ(JNO,JNAME,CITY);lSPJ(SNO,PNO,JNO,QTY);供应商表S由供应商号、供应商名、状态、城市组成;零件表P由零件号、零件名、颜色、重量组成;工程项目表J由项目号、项目名、城市组成;供应情况表SPJ由供应商号、零件号、项目号、供应数量组成;(1)用关系代数查询没有使用天津供应商生产的红色零件的工程号;(2)用关系代数查询至少使用了供应商S1所供应的全部零件的工程号JNO;(3)用SQL查询供应工程J1零件为红色的工程号JNO;(4)用SQL查询没有使用天津供应商生产的零件的工程号;(5)用SQL语句将全部红色零件改为蓝色;(6)用SQL语句将(S2,P4,J6,400)插入供应情况关系。1、(1)参考答案:πJNO(J)-πJNO(sCITY="天津"(S)SPJsCOLOR="红"(P))(2)参考答案: πPNO,JNO(SPJ)÷πPNO(sSNO="S1"(SPJ))(3)参考答案1:SELECTDISTINCTJNOFROMSPJ,PWHERESPJ.PNO=P.PNOANDCOLOR="红"ANDJNO="J1";参考答案2:SELECTDISTINCTSNOFROMSPJWHEREJNO="J1"ANDPNOIN(SELECTPNOFROMPWHERECOLOR="红");(4)参考答案1:SELECTJNOFROMJWHEREJNONOTIN(SELECTJNOFROMSPJWHERESNOIN(SELECTSNOFROMSWHERECITY="天津"));参考答案2:SELECTJNOFROMJWHERENOTEXISTS(SELECT*FROMSPJ,SWHERESPJ.SNO=S.SNOANDSPJ.JNO=J.JNOANDCITY="天津");参考答案3:SELECTJNOFROMJWHERENOTEXISTS(SELECT*FROMSPJWHERESPJ.JNO=J.JNOANDEXISTS(SELECT*FROMS WHERES.SNO=SPJ.SNOANDCITY="天津"));(5)参考答案:UPDATEPSETCOLOR="蓝"WHERECOLOR="红";(6)参考答案:INSERTINTOSPJVALUES("S2","P4","J6",400); 第4章数据库安全性一、单项选择题1、下面哪个不是数据库系统必须提供的数据控制功能。A.安全性B.可移植性C.完整性D.并发控制答案:B2、保护数据库,防止未经授权的或不合法的使用造成的数据泄漏、更改破坏。这是指数据的。A.安全性B.完整性C.并发控制D.恢复答案:A3、在数据系统中,对存取权限的定义称为。A.命令B.授权C.定义D.审计答案:B4、数据库管理系统通常提供授权功能来控制不同用户访问数据的权限,这主要是为了实现数据库的。A.可靠性B.一致性C.完整性D.安全性答案:D5、下列SQL语句中,能够实现“收回用户ZHAO对学生表(STUD)中学号(XH)的修改权”这一功能的是A.REVOKEUPDATE(XH)ONTABLEFROMZHAOB.REVOKEUPDATE(XH)ONTABLEFROMPUBLICC.REVOKEUPDATE(XH)ONSTUDFROMZHAOD.REVOKEUPDATE(XH)ONSTUDFROMPUBLIC答案:C6、把对关系SC的属性GRADE的修改权授予用户ZHAO的SQL语句是A)GRANTGRADEONSCTOZHAOB)GRANTUPDATEONSCTOZHAOC)GRANTUPDATE(GRADE)ONSCTOZHAOD)GRANTUPDATEONSC(GRADE)TOZHAO答案:C7.把对关系SPJ的属性QTY的修改权授予用户李勇的T-SQL语句是(  )A.GRANTQTYONSPJTO"李勇"B.GRANTUPDATE(QTY)ONSPJTO"李勇"C.GRANTUPDATE(QTY)ONSPJTO李勇D.GRANTUPDATEONSPJ(QTY)TO李勇答案:C二、多项选择题1.保护数据安全性的一般方法是:A.设置用户标识B.存取权限控制C.建立机房管理制度D.建立完整性约束答案:AB2.安全性控制的一般方法有:A.用户标识鉴定B.存取控制C.审计D.数据加密答案:ABCD3.在SQL语言中,为了数据库的安全性,设置了对数据的存取进行控制的语句,对用户授权、 收回所授的权限的语句是:A.GRANTB.REVOKEC.CREATED.DELETE答案:AB4.DBMS存取控制机制主要包括两部分:___。A用户存取控制B管理员存取控制C自主存取控制D强制存取控制答案:CD5.计算机的三类安全问题包括:A.技术安全B.管理安全C.政策法律D.数据库安全答案:ABC三、简答题1.说明用户标识与鉴别的一般方法。2.说明自主存取控制与强制存取控制的方法。第5章数据库完整性一、单项选择题 1、在数据库系统中,保证数据及语义正确和有效的功能是()A.并发控制B.存取控制C.安全控制D.完整性控制答案:D2、关于主键约束以下说法错误的是( )A.一个表中只能设置一个主键约束B.允许空值的字段上不能定义主键约束C.允许空值的字段上可以定义主键约束D.、可以将包含多个字段的字段组合设置为主键答案:C3、数据库的____是指数据的正确性和相容性。A.安全性B.完整性C.并发控制D.恢复答案:B4、在数据库的表定义中,限制成绩属性列的取值在0到100的范围内,属于数据的________约束。A、实体完整性B、参照完整性C、用户自定义D、用户操作答案:C5.有一个关系:学生(学号,姓名,系别),规定学号的值域是8个数字组成的字符串,这一规则属于()。A.实体完整性约束B.参照完整性约束C.用户自定义完整性约束D.关键字完整性约束答案:C二、多项选择题1.数据库的完整性是指数据的:A实体完整性B参照完整性C用户定义完整性D安全完整性答案:ABC2.数据库的完整性是指:A数据库的正确性B数据库的安全性C数据库的相容性D数据库的加密性答案:AC3.为了维护完整性,DBMS提供:A定义完整性的机制B完整性检查的方法C违约处理的方法D恢复机制答案:ABC4.DBMS进行实体完整性检查时的操作包括:A检查主码是否唯一B检查主码各属性是否为空C主码不唯一就拒绝插入或修改D主码各属性有为空时就拒绝插入或修改答案:ABCD5.属于用户定义完整性的有:A不允许取空值B列值唯一C用CHECK短语指定列值应满足的条件D定义主键答案:ABC三、填空题1、实体完整性是指在基本表中,。答案:主属性不能取空值2、参照完整性是指在基本表中,。答案:外码可以是空值或者另一个关系主码的有效值3、为了保护数据库的实体完整性,当用户程序对主码进行更新使主码值不惟一时,DBMS就。答案: 拒绝此操作四、简答题试述关系模型的参照完整性规则。答:参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:取空值(F的每个属性值均为空值)或者等于S中某个元组的主码值。第6章关系数据理论(难点)一、单项选择题 1.设计性能较优的关系模式称为规范化,规范化主要的理论依据是。A.关系规范化理论B.关系运算理论C.关系代数理论D.数理逻辑答案:A2.当关系模式R(A,B)已属于3NF,下列说法中是正确的。A.它一定消除了插入和删除异常B.仍存在一定的插入和删除异常C.一定属于BCNFD.A和C都是答案:B3、关系模型中的关系模式至少是。A.1NFB.2NFC.3NFD.BCNF答案:A4、消除了部分函数依赖的1NF的关系模式,必定是。A.1NFB.2NFC.3NFD.4NF答案:B5.关系规范化中的删除异常是指()A.不该删除的数据被删除B.不该插入的数据被插入C.应该删除的数据未被删除D.应该插入的数据未被插入答案:A6.有关系模式A(S,C,M),其中各属性的含义是:S:学生;C:课程;M:名次,其语义是:每一个学生选修每门课程的成绩有一定的名次,每门课程中每一名次只有一个学生(即没有并列名次),则关系模式A最高达到()A.1NFB.2NFC.3NFD.BCNF答案:D二、多项选择题1.关系规范化中的删除操作异常、插入操作异常是指。A.不该删除的数据被删除B.不该插入的数据被插入C.应该删除的数据未被删除D.应该插入的数据未被插入答案:AD2.不规范的关系模式可能存在的问题是:A.插入异常B删除异常C更新异常D冗余太大答案:ABCD3.数据依赖中最重要的是:A多值依赖B函数依赖C关系依赖D属性依赖答案:AB三、判断题1.关系模式的分解不唯一。对2.关系模式的候选码可以有多个,主码只能有一个。对3.关系规范化过程中,是可以逐步达到2NF、3NF及更高的等级。 对4.规范化实质是概念的单一化,即让一个关系描述一个概念、一个实体或者实体间的一种联系。若多余一个概念就把它分离出去。对四、填空题1、在关系A(S,SN,D)和B(D,CN,NM中,A的主键是S,B的主键是D,则D在S中称为。答案:外部键2、对于非规范化的模式,经过①转变为1NF,将1NF经过②转变为2NF,将2NF经过③转变为3NF。答案:①使属性域变为简单域②消除非主属性对主码的部分依赖③消除非主属性对主码的传递依赖3、在关系数据库的规范化理论中,在执行“分解”时,必须遵守规范化原则:保持原有的依赖关系和。答案:无损连接性4.关系模式R(A,B,C,D)中,存在函数依赖关系{A→B,A→C,A→D,(B,C)→A},则侯选码是,,R∈NF。答案:A,(BC),BC5.已知关系R(A,B,C,D)和R上的函数依赖集F={A→C,D,C→B},则R∈NF。答案:2五、综合练习1、已知学生关系模式S(Sno,Sname,SD,Sdname,Course,Grade)其中:Sno学号、Sname姓名、SD系名、Sdname系主任名、Course课程、Grade成绩。(1)写出关系模式S的基本函数依赖和主码。(2)原关系模式S为几范式?为什么?分解成高一级范式,并说明为什么?(3)将关系模式分解成3NF,并说明为什么?(1)写出关系模式S的基本函数依赖和主码。答:关系模式S的基本函数依赖如下:Sno→Sname,SD→Sdname,Sno→SD,(Sno,Course)→Grade关系模式S的码为:(Sno,Course)。(2)原关系模式S为几范式?为什么?分解成高一级范式,并说明为什么?答:原关系模式S是属于1NF的,码为(Sno,Course),非主属性中的成绩完全依赖于码,而其它非主属性对码的函数依赖为部分函数依赖,所以不属于2NF。消除非主属性对码的函数依赖为部分函数依赖,将关系模式分解成2NF如下:S1(Sno,Sname,SD,Sdname)S2(Sno,Course,Grade) (3)将关系模式分解成3NF,并说明为什么?答:将上述关系模式分解成3NF如下:关系模式S1中存在Sno→SD,SD→Sdname,即非主属性Sdname传递依赖于Sno,所以S1不是3NF。进一步分解如下:S11(Sno,Sname,SD)S12(SD,Sdname)分解后的关系模式S11、S12满足3NF。对关系模式S2不存在非主属性对码的传递依赖,故属于3NF。所以,原模式S(Sno,Sname,SD,Sdname,Course,Grade)按如下分解满足3NF。S11(Sno,Sname,SD)S12(SD,Sdname)S2(Sno,Course,Grade)2、设有如下关系R(1)它为第几范式?为什么?(2)是否存在删除操作异常?若存在,则说明是在什么情况下发生的?(3)将它分解为高一级范式,分解后的关系是如何解决分解前可能存在的删除操作异常问题?(1)它为第几范式?为什么?解:它是2NF。因为R的候选关键字为“课程名”。依赖关系:课程名→教师名,教师名课程名,教师名→教师地址,所以课程名→教师地址。即存在非主属性“教师地址”对候选码课程名的传递函数,因此R不是3NF。但:因为不存在非主属性对候选码的部分函数依赖,所以R是2NF。(2)是否存在删除操作异常?若存在,则说明是在什么情况下发生的?解:存在。当删除某门课程时会删除不该删除的教师的有关信息。(3)将它分解为高一级范式,分解后的关系是如何解决分解前可能存在的删除操作异常问题?解:分解为高一级范式如图所示。R1如下:R2如下: 分解后,若删除课程数据时,仅对关系R1操作,教师地址信息在关系R2中仍然保留,不会丢失教师方面的信息。3、设某商业集团数据库中有一关系模式R如下:R(商店编号,商品编号,数量,部门编号,负责人)如果规定:(1)每个商店的每种商品只的在一个部门销售;(2)每个商店的每个部门只有一个负责人;(3)每个商店的每种商品只有一个库存数量。试回答下列问题:(1)根据上述规定,写出关系模式R的基本函数依赖;答:关系模式S的基本函数依赖如下:(商店编号,商品编号)→部门编号,(商店编号,部门编号)→负责人,(商店编号,商品编号)→数量(2)找出关系模式R的候选码;答:关系模式R的码为:(商店编号,商品编号,部门编号)。(3)试问关系模式R最高已经达到第几范式?为什么?答:原关系模式R是属于1NF的,码为(商店编号,商品编号,部门编号),非主属性对码的函数依赖全为部分函数依赖,所以不属于2NF。消除非主属性对码的函数依赖为部分函数依赖,将关系模式分解成2NF如下:R1(商店编号,商品编号,部门编号,数量)R2(商店编号,部门编号,负责人)(4)如果R不属于3NF,请将R分解成3NF模式集。答:将R分解为R1(商店编号,商品编号,部门编号,数量)R2(商店编号,部门编号,负责人)分解后的R不存在传递的函数依赖,所以分解后的R已经是第3NF4.设有关系STUDENT(S#,SNAME,SDEPT,MNAME,CNAME,GRADE),(S#,CNAME)为候选码,设关系中有如下函数依赖:(S#,CNAME)→SNAME,SDEPT,MNAMES#→SNAME,SDEPT,MNAME(S#,CNAME)→GRADESDEPT→MNAME试求下列问题:(1)关系STUDENT属于第几范式?并说明理由。(3分)(2)如果关系STUDENT不属于3NF,请将关系STUDENT逐步分解为3NF。(7分)要求:写出达到每一级范式的分解过程,并指明消除什么类型的函数依赖。 参考答案:(1)关系STUDENT是1NF,因为F中存在非主属性SNAME,SDEPT,MNAME对侯选码(S#,CNAME)的部分函数依赖,所以达不到2NF。 (2)①首先消除部分函数依赖(S#,CNAME)→SNAME,SDEPT,MNAME将关系分解为:R1(S#,SNAME,SDEPT,MNAME),R2(S#,CNAME,GRADE)R1(S#,SNAME,SDEPT,MNAME),S#为候选码,R1的函数依赖集为:F1={S#→SNAME,SDEPT,MNAME,SDEPT→MNAME} R2(S#,CNAME,GRADE),S#为候选码,R2的函数依赖集为:F2={(S#,CNAME)→GRADE}②在关系R1中还存在非主属性MNAME对候选码S#的传递函数依赖S#→MNAME,所以将R1进一步分解:R11(S#,SNAME,SDEPT),R12(SDEPT,MNAME)其中:R11(S#,SNAME,SDEPT)以S#为候选码,R11的函数依赖集为:F11={S#→SNAME,SDEPT}R12(SDEPT,MNAME)以SDEPT为候选码,R12的函数依赖集为:F12={SDEPT→MNAME}在R2、R11、R12关系模式中都消除了非主属性对码的传递函数依赖,所以上述三个关系模式均是3NF。第7章数据库设计(ER图及转换关系模式为重点)一、单项选择题1、在数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它是数据库设计的阶段。A.需求分析B.概念设计C.逻辑设计D.物理设计答案:B2、在关系数据库设计中,设计关系模式是的任务。A.需求分析阶段B.概念设计阶段C.逻辑设计阶段D.物理设计阶段答案:C 3、数据库物理设计完成后,进入数据库实施阶段,下列各项中不属于实施阶段的工作是。A.建立库结构B.扩充功能C.加载数据D.系统调试答案:B4、在数据库的概念设计中,最常用的数据模型是。A.形象模型B.物理模型C.逻辑模型D.实体联系模型答案:D5、从E-R模型关系向关系模型转换时,一个M∶N联系转换为关系模型时,该关系模式的码是。A.M端实体的码B.N端实体的码C.M端实体码与N端实体码的组合D.重新选取其他属性答案:C6、当局部E-R图合并成全局E-R图时可能出现冲突,不属于合并冲突的是。A.属性冲突B.语法冲突C.结构冲突D.命名冲突答案:B7、概念模型独立于。A.E-R模型B.硬件设备和DBMSC.操作系统和DBMSD.DBMS答案:B8、数据流程图(DFD)是用于描述结构化方法中阶段的工具。A.可行性分析B.详细设计C.需求分析D.程序编码答案:C9、下图所示的E-R图转换成关系模型,可以转换为关系模式。价格借阅日期借阅借书人图书借书证号姓名单位总编号书名分类号作者位置mnA.1个B.2个C.3个D.4个答案:C10.“对关系的哪些字段建立什么样的索引”这一设计内容应该属于数据库设计阶段。A物理B逻辑C需求分析D实施答案:A11.在E-R模型中,如果有3个不同的实体型,3个m:n联系,根据E-R模型转换为关系模型的规则,转换后关系的数目为()。A.4B.5C.6D.7答案:C12.从E-R模型关系向关系模型转换时,一个M:N联系转换为关系模式时,该关系模式的关键字是()。A.M端实体的关键字B.N端实体的关键字C.M端实体关键字与N端实体关键字组合D.重新选取其他属性答案:C二、多项选择题1、在设计分E-R图时,由于各个子系统分别有不同的应用,而且往往是由不同的设计人员设计的,所以各个分E-R图之间难免有不一致的地方,这些冲突主要有。A属性冲突B命名冲突C结构冲突D语义冲突答案:ABC2.属于数据库设计的步骤是。 A需求分析B概念结构设计C逻辑结构设计D物理结构设计答案:ABCD3.数据字典包括:A数据项B数据结构C数据流D数据存储和数据加工过程答案:ABCD4.定义用户外模式时应注意:A使用更符合用户习惯的别名B对不同级别用户定义不同的视图C简化用户的使用D通过设置复杂的关口保证安全答案:ABC5.满足以下准则的事物,可作为属性看待:A作为属性,不能再有需要描述的性质B属性不能与其他实体发生联系C联系上的属性要与实体有关系D属性是抽象的事物答案:AB三、填空题数据库设计分为以下六个设计阶段:需求分析阶段、、逻辑结构设计阶段、、数据库实施阶段、数据库运行和维护阶段。答案:概念结构设计阶段物理结构设计阶段四、简答题数据库设计一般分为哪几个阶段,每个阶段的主要任务是什么?解答:(1)数据库设计分为6个阶段:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行和维护。(2)各阶段任务如下:①需求分析:准确了解与分析用户需求(包括数据与处理)。②概念结构设计:通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。③逻辑结构设计:将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化。④数据库物理设计:为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。⑤数据库实施:设计人员运用DBMS提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。⑥数据库运行和维护:在数据库系统运行过程中对其进行评价、调整与修改。五、应用题(一)设某商业集团的仓库管理系统数据库有三个实体集。一是“公司”实体集,属性有公司编号、公司名、地址等;二是“仓库”实体集,属性有仓库编号、仓库名、地址等;三是“职工”实体集,属性有职工编号、姓名、性别等。公司与仓库间存在“隶属”联系,每个公司管辖若干仓库,每个仓库只能属于一个公司管辖;仓库与职工间存在“聘用”联系,每个仓库可聘用多个职工,每个职工只能在一个仓库工作,仓库聘用职工有聘期和工资。(1)试画出ER图,并在图上注明属性、联系的类型。 (1)将ER图转换成关系模型,并注明主键和外键。解:(1)ER图如图7.2所示。公司名地址公司编号公司1隶属仓库编号N仓库名仓库聘期地址1聘用工资N职工职工编号姓名性别图7.2(2)这个ER图可转换3个关系模式:公司(公司编号,公司名,地址)仓库(仓库编号,仓库名,地址,公司编号)职工(职工编号,姓名,性别,仓库编号,聘期,工资)带下划线的属性为主码,带波浪线的属性为外码。(二)设有商店和顾客两个实体,“商店”有属性商店编号、商店名、地址、电话,“顾客”有属性顾客编号、姓名、地址、年龄、性别。假设一个商店有多个顾客购物,一个顾客可以到多个商店购物,顾客每次去商店购物有一个消费金额和日期,而且规定每个顾客在每个商店里每天最多消费一次。试画出E-R图,注明属性和联系类型,并将E-R模型转换成关系模式,要求关系模式主码加下划线表示,外码加波浪线﹏﹏﹏﹏表示。解:E-R模型:nm顾客购物商店商店编号商店名日期年龄性别顾客编号姓名消费金额地址地址电话 关系模型:顾客(顾客编号,姓名,地址,年龄,性别)商店(商店编号,商店名,地址,电话)购物(顾客编号,商店编号,日期,消费金额)(三)某医院病房管理系统中,包括四个实体型,分别为:科室:科名,科地址,科电话病房:病房号,病房地址医生:工作证号,姓名,职称,年龄病人:病历号,姓名,性别且存在如下语义约束:①一个科室有多个病房、多个医生,一个病房只能属于一个科室,一个医生只属于一个科室;②一个医生可负责多个病人的诊治,一个病人的主管医生只有一个;③一个病房可入住多个病人,一个病人只能入住在一个病房。注意:不同科室可能有相同的病房号。完成如下设计:(1)画出该医院病房管理系统的E-R图;(5分)(2)将该E-R图转换为关系模型;(5分)(要求:1:1和1:n的联系进行合并)(3)指出转换结果中每个关系模式的主码和外码。(5分)解:(1)本题的E-R图如下图所示。nn11nn11病房组成科室入住病人拥有诊治医生病历号姓名性别工作证号姓名科名科地址科电话病房号病房地址职称年龄 某医院病房管理系统的基本E-R图(2)转化后的关系模式如下:科室(科名,科地址,科电话)病房(病房号,病房地址,科名)医生(工作证号,姓名,职称,年龄,科名)病人(病历号,姓名,性别,主管医生,病房号,科名)(3)每个关系模式的主码、外码如下:科室:主码是科名;病房:主码是科名十病房号,外码是科名;医生:主码是工作证号,外码是科名;病人:主码是病历号,外码是科名十病房号。(四)设某商业集团的商品供应管理系统数据库有三个实体集。一是“商品”实体集,属性有商品号、商品名、规格、单价等;二是“商店”实体集,属性有商店号、商店名、地址等;三是“供应商”实体集,属性有供应商编号、供应商名、地址等。供应商与商品之间存在“供应”联系,每个供应商可供应多种商品,每种商品可向多个供应商订购,每个供应商供应每种商品有个月供应量;商店与商品间存在“销售”联系,每个商店可销售多种商品,每种商品可在多个商店销售,每个商店销售每种商品有个月计划数。试画出反映上述问题的ER图,并将其转换成关系模型。解:ER图如图7.3所示。商店号供应商编号商店名地址供应商名地址供应商商店 MM月计划数销售月供应量供应NN商品商品号商品名规格单价图7.3(2)这个ER图可转换5个关系模式:供应商(供应商编号,供应商名,地址)商店(商店号,商店名,地址)商品(商品号,商品名,规格,单价)供应(供应商编号,商品号,月供应量)销售(商店号,商品号,月计划数)(五)设有如下实体:学生:学号、单位、姓名、性别、年龄、选修课程名课程:编号、课程名、开课单位、任课教师号教师:教师号、姓名、性别、职称、讲授课程编号单位:单位名称、电话、教师号、教师名上述实体中存在如下联系:(1).一个学生可选修多门课程,一门课程可为多个学生选修;(2).一个教师可讲授多门课程,一门课程可为多个教师讲授;(3).一个单位可有多个教师,一个教师只能属于一个单位。试完成如下工作:(1).分别设计学生选课和教师任课两个局部信息的结构E-R图。(2).将上述设计完成的E-R图合并成一个全局E-R图。(3).将该全局E-R图转换为等价的关系模型表示的数据库逻辑结构。解:(1).学生选课、教师任课局部E-R图如下所示。开课单位课程选修学生拥有姓名性别学号课程名教师号编号单位名年龄11mmnm 学生选课局部E-R图课程讲授编号姓名性别教师号年龄mn教师m单位属于单位名电话1教师授课局部E-R图(2).合并后的全局E-R图如下所示。属于单位课程选修学生拥有教师开课讲授111mmmnnmm全局E-R图为避免图形复杂,只在下面给出各实体属性:单位:单位名、电话学生:学号、姓名、性别、年龄教师:教师号、姓名、性别、职称课程:编号、课程号(3).该全局E-R图转换为等价的关系模型表示的数据库逻辑结构如下:单位(单位名,电话)教师(教师号,姓名,性别,职称,单位名)课程(课程编号,课程名,单位名) 学生(学号,姓名,性别,年龄,单位名)讲授(教师号,课程编号)选修(学号,课程编号) 第9章关系查询处理和查询优化一、单项选择题1.简单的全表扫描方法的特点是:A逐一检查每个元组B检查效率较高C需要建立索引D需要排序答案:A2.查询树是用于何种优化的工具?A物理优化B代数优化C关系优化D结构优化答案:B3.应该尽量先做的运算是:A连接B笛卡尔积C投影D选择答案:D4.物理优化的目的是:A选择合理的数据模型B选择合理的概念结构C选择合理的数据结构D选择高效合理的操作算法和存取路径答案:D5.对于小关系,选择操作的启发式规则是:A.使用索引扫描B使用连接扫描C使用全表扫描D使用排序扫描6.如果两个表都在连接属性上进行了排序,连接操作的启发式规则是:A选排序-合并方法B选索引-排序方法C选全表扫描方法D选嵌套循环方法答案:A二、多项选择题1.查询树的启发式规则有:A选择运算尽可能先做B在一个对象上的投影和选择同时进行C把笛卡尔积与选择结合起来做连接运算D把投影与它之前或之后的双目运算结合起来答案:ABCD2.等值连接的常用方法有:A嵌套循环方法B排序-合并方法C索引连接方法DHASHJOIN方法答案:ABCD3.查询处理步骤包括:A查询分析B查询检查C查询优化D查询执行答案:ABCD 第10章数据库恢复技术一、单项选择题1、是DBMS的基本单位,它是用户定义的一组逻辑一致的程序序列。A.程序B.命令C.事务D.文件答案:C2、事务的原子性是指。A.事务中包括的所有操作要么都做,要么都不做B.事务一旦提交,对数据库的改变是永久的C.一个事务内部的操作及使用的数据对并发的其他事务是隔离的D.事务必须是使数据库从一个一致性状态变到另一个一致性状态答案:A3、事务的一致性是指。A.事务中包括的所有操作要么都做,要么都不做B.事务一旦提交,对数据为的改变是永久的C.一个事务内部的操作及使用的数据对并发的其他事务是隔离的D.事务必须是使数据库从一个一致性状态变到另一个一致性状态答案:D4、事务的隔离性是指。A.事务中包括的所有操作要么都做,要么都不做B.事务一旦提交,对数据库的改变是永久的C.一个事务内部的操作及使用的数据对并发的其他事务是隔离的D.事务必须是使数据库从一个一致性状态变到另一个一致性状态答案:C5、事务的持续性是指。A.事务中包括的所有操作要么都做,要么都不做B.事务一旦提交,对数据库的改变是永久的C.一个事力内部的操作及使用的数据对并发的其他事务是隔离的D.事务必须是使数据库从一个一致性状态变到另一个一致性状态答案:B6、若系统在运行过程中,由于某种原因,造成系统停止运行,致使事务在执行过程中以非控制方式终止,这时内存中的信息丢失,而存储在外存上的数据未受影响,这种情况称为。A.事务故障B.系统故障C.介质故障D.运行故障答案:B7、若系统在运行过程中,由于某种硬件故障,使存储在外存上的数据部分损失或全部损失,这种情况称为。A.事务故障B.系统故障C.介质故障D.运行故障答案:C8、用来记录对数据库中数据进行的每一次更新操作。A.后援副本B.日志文件C.数据库D.缓冲区答案:B9、用于数据库恢复的重要文件是。A.数据库文件B.索引文件C.日志文件D.备注文件答案:C10、数据库恢复的基础是利用转储的冗余数据。这些转储的冗余数据包括。A.数据字典、应用程序、审计档案、数据库后备副本B.数据字典、应用程序、日志文件、审计档案 C.日志文件、数据库后备副本D.数据字典、应用程序、数据库后备副本答案:C11.事务的隔离性是指()。A.一个事务内部的操作及使用的数据对并发的其他事务是隔离的B.事务一旦提交,对数据库的改变是永久的C.事务中包括的所有操作要么都做,要么都不做D.事务必须是使数据库从一个一致性状态变到另一个一致性状态答案:A12()用来记录对数据库中数据进行的每一次更新操作。A.后援副本B.日志文件C.数据库D.缓冲区答案:B13事务是数据库运行的基本单位。如果一个事务执行成功,则全部更新提交;如果一个事务执行失败,则已做过的更新被恢复原状,好像整个事务从未有过这些更新,这样保持了数据库处于()状态。A.安全性B.一致性C.完整性D.可靠性答案:B二、多项选择题1.数据库系统在运行过程中,可能会发生故障。故障主要有A事务故障B系统故障C介质故障D计算机病毒答案:ABCD2.数据库系统是利用存储在外存上其他地方的冗余数据来重建被破坏的数据库。它主要有A后援副本B日志文件C磁盘阵列D镜像答案:AB3.事务具有_____特性:A原子性(Atomicity)B一致性(consistency)C隔离性(Isolation)D持续性(Durability)4.事务以为终止。A提交B存盘C删除D撤销答案:AD三、判断题1.事务由单一的SQL语句组成。错2.事务的原子性是指事务的所有操作要么全做,要么全不做。对3.很多故障都可能破坏数据库的一致性。对4.数据转储分为静态转储和动态转储。对 5.发生介质故障后一般必须重新装入数据库。对6.数据库镜像可以避免介质故障带来损失。对7.必须先写数据库,后写日志文件错8.事务故障恢复和系统故障恢复必须使用日志文件对四、简答题1、什么是事务,事务有哪些特性?答:事务是DBMS的基本工作单位,它是用户定义的一组逻辑一致的程序序列。它是一个不可分割的工作单位,其中包含的所有操作,要么都执行,要么都不执行。事务具有4个特性:原子性(Atomicity)、一致性(consistency)、隔离性(Isolation)和持续性(Durability)。这4个特性也简称为ACID特性。原子性:事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。一致性:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。隔离性:一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。持续性:持续性也称永久性(Perfnanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其执行结果有任何影响。2、事务中的提交和回滚是什么意思?答:事务中的提交(COMMIT)是提交事务的所有操作。具体说就是将事务中所有对数据库的更新写回到磁盘上的物理数据库中去,事务正常结束。事务中的回滚(ROLLBACK)是数据库滚回到事务开始时的状态。具体地说就是,在事务运行的过程中发生了某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成的更新操作全部撤消,使数据库回滚到事务开始时的状态。3、为什么要设立日志文件?答:设立日志文件的目的,是为了记录对数据库中数据的每一次更新操作。从而DBMS可以根据日志文件进行事务故障的恢复和系统故障的恢复,并可结合后援副本进行介质故障的恢复。4.登记日志文件时必须遵循什么原则?(1)登记的次序严格按并发事务执行的时间次序。(2)必须先写日志文件,后写数据库。5.数据库系统的故障有哪些类型?参考答案:答:故障主要有下面三种类型:(1)事务故障(2)系统故障(3)介质故障 第11章并发控制一、单项选择题1、.设有两个事务T1、T2,其并发操作如下所示,下面评价正确的是。A.该操作不存在问题B.该操作丢失修改C.该操作不能重复读D.该操作读“脏”数据答案:BT1T2①读A=10②③A=A-5写回④读A=10A=A-8写回2、设有两个事务T1、T2,其并发操作如下所示,下面评价正确的是。A.该操作不存在问题B.该操作丢失修改C.该操作不能重复读D.该操作读“脏”数据答案:CT1T2①读A=10,B=5②③读A=20,B=5求和25验证错读A=10A=A*2写回3、设有两个事务T1、T2,其并发操作如下所示,下列评价正确的是。A.该操作不存在问题B.该操作丢失修改C.该操作不能重复读D.该操作读“脏”数据答案:DT1T2①读A=100A=A*2写回②③ROLLBACK恢复A=100读A=104、解决并发操作带来的数据不一致性总是普遍采用的技术。A.封锁B.恢复C.存取控制D.协商答案:A 5、若事务T对数据R已经加X锁,则其他事务对数据R。A.可以加S锁不能加X锁B.不能加S锁可以加X锁C.可以加S锁也可以加X锁D.不能加任何锁答案:D6、关于“死锁”,下列说法中正确的是。A.死锁是操作系统中的问题,数据库操作中不存在B.在数据库操作中防止死锁的方法是禁止两个用户同时操作数据库C.当两个用户竞争相同资源时不会发生死锁D.只有出现并发操作时,才有可能出现死锁答案:D7、对并发操作若不加以控制,可能会带来问题。A.不安全B.死锁C.死机D.不一致答案:D8、并发操作会带来哪些数据不一致性。A.丢失修改、不可重复读、读脏数据、死锁B.不可重复读、读脏数据、死锁C.丢失修改、读脏数据、死锁D.丢失修改、不可重复读、读脏数据答案:D9.若事务T对数据对象A加上S锁,则()。A.事务T可以读A和修改A,其它事务只能再对A加S锁,而不能加X锁。B.事务T可以读A但不能修改A,其它事务只能再对A加S锁,而不能加X锁。C.事务T可以读A但不能修改A,其它事务能对A加S锁和X锁。D.事务T可以读A和修改A,其它事务能对A加S锁和X锁。答案:B10.设有两个事务T1、T2,其并发操作如图1所示,下面评价正确的是()A.该操作不存在问题B.该操作丢失修改C.该操作不能重复读D.该操作读“脏”数据T1T2①读A=100②②读A=10③A-5写回④A=A-8写回图1答案:B11.以下()封锁违反两段锁协议。A.SlockA…SlockB…XlockC…………UnlockA…UnlockB…UnlockCB.SlockA…SlockB…XlockC…………UnlockC…UnlockB…UnlockAC.SlockA…SlockB…XlockC…………UnlockB…UnlockC…UnlockAD.SlockA…UnlockA……SlockB…XlockC………...UnlockB…UnlockC答案:D12设有两个事务T1、T2,其并发操作如图所示,下面评价正确的是()A.该操作不存在问题B.该操作丢失修改C.该操作不能重复读D.该操作读“脏”数据 T1T2read(A)read(B)sum=A+Bread(A)A=A*2write(A)read(A)read(B)sum=A+Bwrite(A+B)答案:C已知事务T1的封锁序列为:LOCKS(A)…LOCKS(B)…LOCKX(C)…UNLOCK(B)…UNLOCK(A)…UNLOCK(C)事务T2的封锁序列为:LOCKS(A)…UNLOCK(A)…LOCKS(B)…LOCKX(C)…UNLOCK(C)…UNLOCK(B)则遵守两段封锁协议的事务是(  )A.T1B.T2C.T1和T2D.没有答案:A在并发控制技术中,最常用的是封锁机制,基本的封锁类型有排它锁X和共享锁S,下列关于两种锁的相容性描述不正确的是()A.X/X:TRUEB.S/S:TRUEC.S/X:FALSED.X/S:FALSE答案:A二、多项选择题1.锁的种类有:AX锁BS锁CIX锁DSIX锁答案:ABCD2.并发操作带来的数据不一致性包括:A不可重复读B丢失修改C读脏数据D不可重复写答案:ABC3.对一个数据对象加SIX锁,表示:A拟对下级对象加X锁B对本对象加S锁C对本对象加I锁D对本对象加X锁答案:AB4.两段锁协议的基本方法是:A在前一阶段对数据项加锁,但不释放任何锁B在释放了某个锁的后一阶段不再申请任何封锁C在后一阶段对数据项加锁,但不释放任何锁D在释放了某个锁的前一阶段不再申请任何封锁答案:AB5.死锁的诊断包括A超时法B两段锁协议C一次封锁法D等待图法 答案:AD三、判断题1.并发控制问题来源于多用户使用数据库。对2.并发控制问题来源于有了多处理机的硬件错3.丢失修改是由两个事务修改了同一数据造成的对4.加IS锁是拟对上级对象加S锁错5.并发控制调度并发事务操作是否正确的判别准则是可串行性。对6.事务是并发控制的基本单位。对7.两段锁协议是保证可串行性的充分必要条件错8.数据库通常以封锁方法实现并发控制。对四、填空题1、DBMS的基本工作单位是事务,它是用户定义的一组逻辑一致的程序序列;并发控制的主要方法是机制。答案:封锁2、有两种基本类型的锁,它们是共享锁和排它锁。答案:①共享锁②排它锁3.是并发控制的基本单位,是用户定义的一个数据库操作序列。答案:事务4.存在一个等待事务集{T0,T1,…,Tn},其中T0正等待被T1锁住的数据项,T1正等待被T2锁住的数据项,Tn-1正等待被Tn锁住的数据项,且Tn正等待被T0锁住的数据项,这种情形称为。答案:死锁5.是并发事务正确性的准则。答案:可串行性五、简答题1、叙述数据库中死锁产生的原因和解决死锁的方法。答:死锁产生的原因:封锁可以引起死锁。比如事务T1封锁了数据A,事务T2封锁了数据B。T1又申请封锁数据B,但因B被T2封锁,所以T1只能等待。T2又申请封锁数据A,但A已被T1封锁,所以也处于等待状态。这样,T1和T2处于相互等待状态而均不能结束,这就形成了死锁。解决死锁的常用方法有如下三种:(1)要求每个事务一次就要将它所需要的数据全部加锁。(2)预先规定一个封锁顺序,所有的事务都要按这个顺序实行封锁。(3)允许死锁发生,当死锁发生时,系统就选择一个处理死锁代价小的事务,将其撤消,释放此事务持有的所有的锁,使其他事务能继续运行下去。2、基本的封锁类型有几种?试叙述它们的含义。 答:基本的封锁的类型有排它锁(“X”锁)和共享锁(“S”锁)两种。若事务T对数据A加上X锁,则只允许事务T读取和修改数据A,其他事务都不能再对A加任何类型的锁,直到T释放A上的锁。若事务T对数据A加上S锁,则其他事务可以再对A加S锁,而不能加X锁,直到T释放A上的锁。3、什么是活锁?如果事务Tl封锁了数据R,事务几又请求封锁R,于是几等待。几也请求封锁R,当Tl释放了R上的封锁之后系统首先批准了几的请求,几仍然等待。然后几又请求封锁R,当几释放了R上的封锁之后系统又批准了几的请求……几有可能永远等待,这就是活锁的情形。活锁的含义是该等待事务等待时间太长,似乎被锁住了,实际上可能被激活。'