数据库2013一、单项选择题(每小题1分,共20分)1、数据库系统的核心是(B)A.数据结构B.数据库管理系统C.操作系统D.数据模型2、有了模式/内模式映像,可以保证数据和应用程序之间的(B)。A.逻辑独立性B.物理独立性C.数据一致性D.数据安全性3、概念模型是现实世界的第一层抽象,这一类模型中常用的是(D)。A.层次模型B.关系模型C.网状模型D.实体-关系模型4、关系的标题栏中的名字称为(C)A.实体B.元组C.属性D.域5、现有如下表:患者(患者编号,患者姓名,性别,出生日期,所在单位);医疗(患者编号,医生编号,医生姓名,诊断日期,诊断结果)其中,医疗表中的(A)是患者表的外码。A.患者编号B.患者姓名C.患者编号和患者姓名D.医生编号和患者编号6、下面有关视图的安全机制的说法错误的是(B)。A.视图机制可以屏蔽掉一部分保密数据B.视图上面没有必要再定义存取权限C.视图间接实现了支持用户存取权限的定义D.视图机制更主要的功能在于提供数据独立性,其安全保护功能太不精细,往往远不能达到应用系统的要求。7、关系数据库中的投影操作是指从关系中(B)。A.显示特定记录B.显示特定字段C.建立相应的索引D.建立相应的视图8、在SQL中使用UPDATE对表中数据进行修改时,应使用的子句是(D)。InsertintovaluesupdatesetwheredeletefromwhereA.WHEREB.FROMC.VALUESD.SET9、使用CRETEINDEX语句建立的是(D)。A.数据库B.表C.视图D.索引10、在SQL中用关键字EXCEPT表示的运算是集合的(C)。A.交集intersectB.并集unionC.差集D.连接11、当选择满足一定条件的元组进行分组时,应使用的关键字是(B)。A.WHEREB.GROUPC.ORDERBYD.HAVING12、SQL语言是(B)的语言,容易学习。A.过程化B.非过程化C.格式化D.导航式13、SQL语言中,删除一个视图的命令是(B)。A.DELETEB.DROPC.CLEARD.REMOVE14、下面关于函数依赖的描述,错误的是(D)。A.在函数依赖AB中,A称为决定因素。B.在关系R中,属性B依赖于属性A,则说明当属性A的值确定之后,属性B的值也随之确定。C.函数依赖具有传递性。D.在关系R中,如果属性A依赖于属性B,这种依赖记为:AB。15、现给定一个关系R的实例如下表,则可能是函数依赖的是(B)。F1F2F3F4F5李华20020330H110金谦20020330O15李华20020218O315吕宋20020215H25顾晓华20020218O120A.F1F2B.F1F2F5C.F3F4F5D.F2F3F416、关系R包含属性{A1,A2,A3,A4,A5},其中{A1,A2}为主码,则下面的说法正确的是(C)。A.{A1}或者{A2}有可能单独成为R的主码B.{A1,A2,A3}必然也是R的主码C.R中绝不可能出现在A1,A2上取值完全相同的元组D.R的所有元组中,A1或者A2的值都是不能重复的17、若关系模式R(U,F)属于3NF,则(C)A.一定属于BCNFB.消除了插入和删除异常C.仍然存在插入和删除异常D.属于BCNF且消除了插入和删除异常18、关于数据库设计步骤的说法中错误的有(C)A.数据库设计的后4步:逻辑设计、物理设计、数据库实施、运行与维护B.数据库概念模型是独立于任何数据库管理系统,不能直接用于数据库实现的。C.物理设计阶段对数据库的性能影响已经很小了。D.逻辑设计是在概念设计的基础上进行的。19、数据抽象有三种方法,其中概括抽象了(C)A.ismemberof语义B.ispartof语义C.issubsetof语义D.iscomposeof语义20、下面关于视图集成说法正确的是(D)A.分E-R通过消冗余得到初步E-R图。B.分E-R通过消冗余得到基本E-R图。C.基本E-R通过消冗余得到初步E-R图。D.初步E-R通过消冗余得到基本E-R图。二、填空题(每题2分,共20分)1、数据库是按照一定的数据模型组织的,长期存储在计算机内,可为多个用户共享的数据聚集。2、基本的关系运算有包括选择、投影、连接。3、数据库安全机制的设计目标是使试图破坏安全的人所花费的代价远远大于他们所获得的利益。4、MAC是强制存取控制的英文缩写。5、权限的集合称为角色。6、通过模式分解可以转换为若干个高一级范式的关系模式集合,这种过程就叫关系模式的规范化。7、数据库结构设计的第2个阶段是概念结构设计,它是数据库设计的关键。8、在关系代数表达式中,符号表示的运算是投影。9、要使关系模式属于2NF,就要消除部分函数依赖。10、定义触发器的关键词是createtrigger。三、简答题(共30分)1、试述概念模型的作用(5分)。2、假设学生选课数据库关系模式如下(8分):Student(SNo,SName,Sage,SDept);Course(CNo,CName);C(SNo,CNo,Score)用关系代数进行如下查询:(1)计算机系有不及格课程的学生名单;Пsname(score60(c连接符号sdept=’计算机系’(student)))(2)查询选修了全部课程的计算机系学生的学号和姓名;Пsno,sname,cno(sdept=’计算机系’(student连接符号course))/Пcno(course)3、什么是嵌套查询?什么是相关子查询?(5分)嵌套查询是通过where子句的子查询返回内层查询的值作为查询条件,进而实现外层查询的查询结果。相关子查询:执行查询的时候先取得外层查询的一个属性值,然后执行与此属性值相关的子查询,执行完毕后再取得外层父查询的下一个值,依次再来重复执行子查询;不相关子查询:子查询的执行不需要提前取得父查询的值,只是作为父查询的查询条件。索引:使用索引是为了加快查询速度。4、完整性和安全性的区别?(5分)完整性和安全性是两个不同的概念,数据库的完整性是为了防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据,数据库的安全性是为了保护数据库,防止恶意的破坏和非法的存取。因此,完整性检查和控制的防范对象是不合语义的不正确的数据,防止它们进入数据库。安全性控制的防范对象是非法用户和非法操作,防止他们对数据库数据的非法存取。5、判断下列关系模式是第几范式(要有过程):(7分)(未学)(1)R(X,Y,Z),F={XYZ};由于XY-XYZ,并且其它属性都不是候选键,而依赖集合F中所有的依赖的左边都是候选键,所以R是BCNF(2)R(X,Y,Z),F={YZ,XYY}四、编程题(共30分)对于关系模式S(Sno,Sname,Age,Dept);C(Cno,Cname,Teacher);SC(Sno,Cno,Score),写出下列题的SQL脚本(15分):1、查询没有选修2号课程的学生姓名;SelectsnameFromsWheresnonotin(selectsnoFromscWherecno=’2’)2、设数据库中另有一教师表Teacher(Tno,Tname,...)。查询学校中所有师生的姓名。SelectsnameFromsUnionSelecttnameFromteacher3、将选修课程’DB’的学生号,姓名建立视图SDB;CraeteviewsdbAsSelectsno,snameFromsWheresnoin(selectsnoFromscWherecnoin(selectcnoFromcWherecname=’DB’));4、统计选修各门课的学生人数。输出课程号和人数。查询结果按人数降序排列,若人数相同,则按课程号升序排列;Selectcno,count(sno)FromscGroupbycnoOrderbycount(sno)desc,cno5、向学生关系S插入一个学生元组(990012,张敏,20,女);InsertintosValues(‘990012’,’张敏’,’20’,’女’)6、查找所有学生都选修的课程名;SelectcnameFromcWherecnoin(selectcnoFromscGroupbycnohavingcount(sno)=(selectcount(distinctsno)Fromsc))7、找出至少选修刘老师讲的一门课的学生姓名;SelectsnameFromsWheresnoin(selectsnoFromscWherecnoin(selectcnoFromcWheretnamelike‘刘%’));8、从SC中删除夏春秋同学的所有元组;DeleteFromscWheresnoin(selectsnoFromsWheresname=’夏春秋’);9、在SC中,把英语课的成绩提高10%;UpdatescSetscore=score*1.1Wherecnoin(selectcnoFromcWherecname=’英语课’);10、求孙老师讲的每门课的学生平均成绩。Selectcno,avg(score)FromscGroupbycnoin(selectcnoFromcWheretnamelike‘孙%’);