《数据库原理与应用》期中测试问卷2一、判断题(每题1分,共10分,正确的写,错误的写)(1)E-R模型只能转换为关系模型,不能转换为层次模型和网状模型。(2)如果一个实体A对应多个实体B,则A与B之间必然是一对多的联系。(3)一个关系的主键可以包含多个属性。(4)在一个关系模式中,如果A-B,B-C,则称C部分依赖于A。(5)数据库的一个数据文件可以属于多个文件组。(6)创建表时,对表的每列必须指明数据类型和长度,例如“生日datetime(8)”。(7)在SQLServer中,存储逻辑型数据值的数据类型是boolean.(8)在SQL语句中,对数值型的属性赋值,应该两边用单引号将值包括起来。(9)为了提高数据库的检索和更新速度,最好在数据表的每个字段都建立索引。(10)聚集索引一定是唯一性索引,非聚集索引一定是非唯一性索引。二、选择题(每题2分,共30分,单项选择)(1)E-R图用于描述数据库的()。A.物理模型B.存储模型C.逻辑模型D.概念模型(2)ER图中的主要元素是()。A.结点、记录和文件B.记录、文件和表C.实体、联系和属性D.记录、表、属性(3)数据库三级模式间引入二级映射的主要作用是()。A.提高数据与程序的安全性B.提高数据与程序的独立性C.保持数据与程序的一致性D.提高数据与程序的可移植性(4)A∩B可等价替换为()。A.B-(A-B)B.AU(A-B)C.A-(B-A)D.A-(A-B)(5)有关系:职员(编号,姓名,生日,职务),从关系中查询所有经理的情况应使用()关系运算。A.选择B.投影C.连接D.笛卡儿积(6)有关系:教学(学号、教工号、课程号),每个学生可以选修多门课程,每门课程可以由多名学生来选修,每个老师可以讲授多门课程,每门课程可以由多个老师来讲授,那么该关系的主键是()。A.教工号B.课程号C.(学号,教工号)D.(学号,教工号,课程号)(7)下面()不是SQLServer2008的数据库对象。A.视图B.索引C.SQL语句D.约束(8)以下数据类型中,最适合表示一个人的身高(厘米,保留一位小数)的是()。A.floatB.tinyintC.decimalD.char(9)对于数据库中的表A,如果想要清空A中的数据且不留下事务日志,应使用()。A.DROPTABLEAB.ALTERTABLEAC.TRUNCATETABLEAD.DELETETABLEA(10)对R和S进行连接查询时,如果想在显示中保留S的所有行应该使用()。A.全外连接B.R左外连接SC.右外连接SD.内连接(11)已知关系:员工﹝工号,入职日期,部门﹞,如果按部门降序列出所有员工,并且相同部门的员工按入职日期升序排列,则排序子句应该是﹝﹞。A.OrderBy部门,入职日期B.OrderBy入职日期,部门DESCC.OrderBy部门DESC,入职日期D.B项与C项都正确(12)对工资表(员工号,姓名,部门号,月薪)进行查询,分部门统计人数和平均工资,查询语句应使用()。A.SELECT部门号,Count(*),AVG(月薪)FROM工资表GROUPBY月薪B.SELECT姓名,Count(*),AVG(月薪)FROM工资表GROUPBY部门号C.SELECT部门号,Count(月薪),AVG(*)FROM工资表GROUPBY部门号D.SELECT部门号,Count(月薪),AVG(月薪)FROM工资表GROUPBY部门号(13)对于索引,以下说法正确的是()。A.一个数据表只能有一个索引B.一个数据表只能有一个唯一索引C.一个数据表只能有一个聚集索引D.一个数据表只能有一个非聚集索引(14)对于视图,以下正确的说法是()。A.视图显示的数据可以取自于多个基础表B.视图中的数据不可更改C.可以基于一个视图,一次性地更改多个基础表的数据D.视图存在于内存中,每次重新启动DBMS时,视图便会自动消失。(15)设关系R的主属性是A,则属性A唯一且不能取空值(NULL),这是()规则。A.域完整性B.参照完整性C.用户自定义完整性D.实体完整性三、填空题(共10分,每空1分)(1)数据库的三级模式包括内模式、外模式和模式。(2)SQL按其实现功能可以将SQL语言划分为:数据操纵语言,_数据控制语言_,__数据定义语言__(3)写出约束的英文名,主键约束:____primarykey______,唯一约束:__unique_,检查约束:__check_。(4)SQL语句中使用isnull运算符判断字段值是否为空,使用__exists__运算符测试子查询结果是否为空。(5)SQLServer数据库的文件分为三类,它们的后缀名分别是mdf,____ldf________,____ndf_________.四、综合题(共40分)1.(共5分)有关系模式R(U,F),属性集合U={A,B,C,D,E},函数依赖集合F={A-BC,B-D,CD-E,E-B},请回答如下的问题:(1)R的主码是:A(3)R最高属于第几范式?说明理由;2NF。R的主码是A,属性对主码都是完全依赖,但CD-E,E-B,存在传递依赖(4)R是否为第三范式,解释原因;若不是,将R分解为3NF,并给出每个关系模式的主码。R不是3NF,CD-E,E-B,存在传递依赖分解为:R1(A,B,C)主码是A,R2(B,D)主码是B,R3(C,D,E)主码是(C,D),R4(E,B)主码是E。2.(共35分)程序填空与程序设计题(共35分)student数据库中有4个表:stu_info(学号,姓名,性别,年龄,系号)、department(系编号,系名),curriculum(课程编号,课程名称,学分),grade(学号,课程编号,成绩)(1)程序填空(每空1分,共17分)1)完成以下代码,使用以下T-SQL创建数据库student,且主数据库文件名为student_dat.mdf,存放在d盘database文件夹下。createdatabaseStudentON(NAME=student,FILENAME=’D:\database\student_dat.mdf’)2)完成以下代码,使用以下T-SQL在student数据库中先创建stu_info表,给性别列设置检查约束,要求只能输入男或女。CREATETABLEstu_info(学号char(10)notnull,姓名char(8)notnull,性别char(2)notnullCHECK性别in(‘男’,’女’),年龄intnotnull,系号char(3))--向stu_info表中添加主键altertablestu_infoADDCONSTRAINTpk_numprimarykey(学号)学号姓名性别年龄系号001李林男18D01002白冰女17D02003刘云男16D02系编号系名D01软件系D02网络系D02电子系3)完成以下代码,使用以下T-SQL在student数据库中grade表,将学号和课程编号设置为主键将学号设置为外键约束,此学号关联于stu_info表中学号。CREATETABLEgrade(学号char(10)notnull,课程编号char(6)notnull,成绩int,CONSTRAINTpk_sPRIMARYKEY(‘学号’,’课程编号’),CONSTRAINTfk_stinfoFOREIGNKEY学号REFERENCESstu_info(学号))4)以下代码统计stu_info表中学生人数大于300的系部信息,要求显示系号,系部人数SELECT系号,count(*)as系部人数fromstu_infogroupby系号havingcount(*)3005)以下代码查询curriculum表中课程名称中含有”数据库”的课程信息。SELECT*FROMcurriculumWHERE课程名称like’%数据库%’6)以下代码查询软件系或网络系的学生信息。SELECT*FROMstu_infoWHERE系号in(SELECT系号FROMdepartmentWHERE系名in(‘网络系’,’软件系’))7)将stu_info表中姓名列创建唯一非聚集索引,索引名称为stu_uqnCREATEuniquenonclusteredINDEXstu_uqnONstu_info(姓名)--删除stu_info表中的stu_uqn索引dropindexstu_info.stu_uqn8)使用T-SQL语句删除student数据库dropdatabasestudent(2)用SQL语句完成如下题目(共18分)1)向stu_info表增加一条数据,(004,张三,男,16)(2分)INSERTINTOstu_info(学号,姓名,性别,年龄)Values(’004’,’张三’,’男’,16)2)修改stu_info表中学号为003的信息,系号改为D03。(2分)Updatestu_infoSET系号=’D03’Where学号=’003’3)将stu_info表中学号为004、姓名为张三的学生记录删除。(2分)Deldetefromstu_infoWhere学号=’004’AND姓名=’张三’4)对stu_info表,列出18-20岁男生的学生名单。(2分)Select*fromstu_infowhere年龄=18and性别=男5)查询没有选修“办公软件”课程的学生的学号,姓名。(4分)SELECT学号,姓名FROMstu_infoWHERE学号NOTIN(SELECT学号FROMgradeJOINcurrilumONgrade.课程编号=currilum.课程编号WHERE课程名称=’办公软件’)6)对stu_info表,根据系别查询学生的学号,姓名,系别,系别相同的按学号降序输出。(3分)Select学号,姓名,系号Fromstu_infoOrderby系号,学号desc7)基于grade表创建视图V1,用于显示每个学生的平均成绩,即显示(学号,平均成绩)。(3分)CREATEVIEWV1ASSELECT学号,avg(成绩)as平均成绩FromgradeGroupby学号五、设计题(10分)某旅行社管理系统涉及的部分信息如下:.(1)景点:景点编号,景点名称,地点,景点描述.(2)线路:线路编号,线路名称,线路描述.(3)导游:工号,姓名,等级.(4)团队:团队编号,人数,开始日期,截止日期.其中:每条线路由多个景点组成,不同线路的景点存在交叉;每条线路有多名导游,但一名导游只负责一条线路;每条线路可同时存在多个旅游团队,但每个团队只旅游一条线路.(1)画出E-R图,要求标注联系类型(可省略实体属性)。(共5分)(2)将E-R模型转换为关系模型,写出关系模式,要求标注每个关系的主键和外键.(共5分)景点(景点编号,景点名称,地点,景点描述)主键:景点编号线路(线路编号,线路名称,线路描述)主键:线路编号导游(工号,姓名,等级,线路编号)主键:线路编号+工号外键:线路编号旅游团队(团队编号,人数,开始日期,截止日期,线路编号)主键:线路编号+团队编号外键:线路编号