12005—2006学年第一学期期末考试试卷(A卷)一、单项选择题:在每小题的备选答案中选出一个正确答案,并将正确答案的代码填在题干上的括号内。(每小题1分,本大题共10分)1.B2.C3.D4.D5.D6.D7.B8.A9.B10.A二、填空题:(每空1分,本大题共10分)1.数据库管理系统DBMS2.完整性约束3.选择运算4.DISTINCT5.获得权限的用户还能够获得传递权限,把获得的权限转授给其他用户6.1NF7.伪传递规则8.BCNF3NF9.隔离性10.介质故障三、判断改正题:判断下列各题是否正确,正确的划√,错误的划×,并说明理由。(每小题2分,本大题共10分)1.错误(1分)实体是指客观存在可以相互区别的事物,既可以是具体的对象,也可以是抽象的事件。故“一个男生”和“一次借书”均为一个实体。(1分)2.错误(1分)函数依赖不是指关系模式R的某个或某些关系满足的约束条件,而是指R的一切关系均要满足的约束条件。(1分)3.错误(1分)非主属性是指不包含在任何候选码中的属性。(1分)4.正确(1分)因为如果不存在非平凡的非函数的多值依赖,必为4NF,则也为BCNF,与假设矛盾。(1分)5.错误(1分)两段封锁法仍有可能发生死锁,而且可能增多。(1分)四、问答题(每小题10分,本大题共40分)1.设有两个关系R(A,B,C)和S(C,D,E),试用SQL查询语句表达下列关系代数表达式πA,E(σB=D(R∞S))。答案要点:SELECTA,E--------3分FROMR,S--------3分WHEREB=DANDR.C=S.C--------4分2.设有关系模式R(A,B,C,D),F是R上成立的FD集,F={D→A,D→B},试写出关系模式R的候选键,并说明理由。答案要点:①R的候选键是CD--------4分2②理由:从已知的F,可导出D→ABD,--------2分再根据增广律,可得出CD→ABCD,--------2分即CD值可决定全部属性值。--------2分3.两个函数信赖集F和G等价的充分必要条件是什么?答案要点:F中每个FD在G+中,--------5分并且G中每个FD也在F+中。--------5分4.设有一教学管理数据库,其属性为:学号S#,课程号C#,成绩G,任课教师TN,教师所在系D。这些数据有下列语义:学号和课程号分别与其代表的学生和课程一一对应;一个学生所修的每门课程都有一个成绩;每门课程只有一位任课教师,但每位教师可以有多门课程;教师中没有重名,每个教师只属于一个系(1)试根据上述语义确定函数依赖集;(2)如果用上面所有属性组成一个关系模式,那么该关系模式为何模式?并举例说明在进行增、删操作时的异常现象。(3)分解为3NF答案要点:(1)F={(S#,C#)→G,C#→TN,TN→D}--------3分(2)关系模式为1NF,因为该关系模式的候选码为(S#,C#),则非主属性有G,TN和D。有∵F中有C#→TN,∴存在非主属性TN对候选码(S#,C#)的部分依赖,--------2分P即(S#,C#)→TN若新增一门课程而暂时还没有学生选修时,则因缺少关键字S#值而不断进行插入操作。若某个教师调离学校要删除其有关信息时,会将不该删除的课程(C#)信息删除。--------2分(3)∵F=Fmin={(S#,C#)→G,C#→TN,TN→D}∴ρ={(S#,C#,G),(C#,TN),(TN,D)}即为所求的3NF分解。--------3分五、综合题:(每小题30分,本大题共30分)2006年6月,举世瞩目的第18届世界杯在德国举行,某网站为了方便球迷查询,在自己的网站上设立了世界杯信息查询系统。该系统的一部分要求为:一名球员可以参加多场比赛,每场比赛有多名球员参加。答案要点:(1)请你为该系统的这一部分设计一个ER模型,画出ER图。要求:“球员”的属性有:姓名,代表国,号码,年龄,位置“比赛”的属性有:比赛编号,比赛甲方,比赛乙方,比赛类型在联系中反映出球员参加比赛的出场时间,进球数mn姓名出场时间进球数比赛编号代表国……比赛类型3--------4分(球员实体、比赛实体、参加联系、出场时间和进球数联系属性各一分)(2)请你将以下SQL语句补充完整(注明各自的主码,外码,并且球员的号码在1号至23号之间,位置有守门员,后卫,中场,前锋,比赛类型有小组赛和淘汰赛两种)Createtableplayer--球员表{namechar(20),--姓名nationchar(20),--代表国numberintcheck(numberbetween1to23),--号码--------1分ageint,--年龄positionchar(10)checkpositionin(‘守门员’,’后卫’,’中场’,’前锋’)--位置--------1分primarykey(nation,number),–定义主码--------1分}Createtablematch--比赛表{matchidintprimarykey,--比赛编号(主码)--------1分match_achar(20),--比赛甲方match_bchar(20),--比赛乙方matchtypechar(10)checkmatchtypein(‘小组赛’,’淘汰赛’)–比赛类型--------1分}Createtablejoin--参加表{nationchar(20),--代表国numberint,--号码matchidint,--比赛编号timeint,--出场时间goalint--进球数primarykey(nation,number,matchtype)–定义主码--------1分foreignkey(nation,number)referenceplayer(nation,number)–定义外码--------1分foreignkey(matchid)referencematch(matchid)–定义外码--------1分}(3)使用关系代数表达式以及SQL语句做以下查询检索至少参加两场世界杯比赛的球员的代表国以及身披号码;关系代数表达式:π1,2(δ1=6∧2=7∧3≠8(join×join))--------2分SQL语句Selectdistinctjoin1.nation,join2.number--------1分Fromjoinasjoin1,joinasjoin2--------1分Wherejoin1.nation=join2.naiton--------1分Andjoin1.number=join2.number--------1分Andjoin1.matchid≠join2.matchid--------1分(4)使用SQL语句补充完成以下检索统计每位球员的总的出场时间(超过180分钟才统计)要求输出球员姓名,代表国,身披号码,4总的出场时间,查询结果按总的出场时间降序排列Selectname,nation,number,sum(time)asalltime--------1分Fromplayer,join--------1分Groupbynation,number--------1分Havingsum(time)=180--------1分Orderbyalltimedesc--------1分(5)使用SQL语句补充完成以下更新法国队11号因伤退出世界杯,请作相应的处理DeleteFromjoin--------1分Wherenation=’法国’Andnumber=11DeleteFromplayer--------1分Wherenation=’法国’Andnumber=11(6)使用SQL补充定义完成以下视图建立守门员的视图goalkeeperCreateviewgoalkeeperAsSelectname,nation,number,age--------1分FromplayerWhereposition=”守门员”--------1分(7)使用SQL语句补充完成以下操作把队球员表的insert权限授予用户Zhang,并允许他将此权限授予其他用户Grantinsert--------1分ontableplayertoZhangwithgrantoption--------1分