当前位置:文档之家› 级数据库技术试题(答案)

级数据库技术试题(答案)

中南大学考试试卷(答案)2010 --2011 学年下学期时间100分钟数据库应用基础课程56学时3.5学分考试形式:闭卷专业年级:商学院10级总分100分,占总评成绩70%注:请将答案直接写在试卷上!在本试卷中除特殊说明外数据库系统为SQL SERVER,均采用下列表:学生信息表Student(NO,NAME,AGE,SEX,CLASS,NA),其字段名分别表示学号(CHAR(4))、姓名(V ARCHAR(8))、年龄(INT)、性别(CHAR(2))、班级(V ARCHAR(4))、民族(V ARCHAR (18)),主键为NO。

教师信息表T (NO,NAME,sex,ab), 其字段名分别表示教师编号(Char(4))、姓名(varchar(8))、性别(char(2))、职称(Varchar(6)),主键为NO。

课程信息表C(NO,NAME,TNO),其字段名分别表示课程编号(Char(4))、课程名称(V ARCHAR(12))、授课教师编号(varchar(4),主键为(NO,TNO)。

学生选课及成绩表SC(NO,CNO,GRADE),其字段名分别表示学号(char(4))、课程编号(char(4)、成绩(int), 主键为(NO,CNO)。

在企业经管器中按下列方式录入数据保存。

Student的数据NO Name Age Sex CLASS NA0101 刘琳20 女1002 汉族0105 王刚21 男1015 苗族0102 李晓22 女1015 土家族0110 张明NULL 男1002 汉族0108 周冰21 女1015 苗族2031 NULL 20 男1002 汉族T的数据NO Name Sex AB 1003 刘瑞女讲师2020 陈晓男副教授0102 李斌女教授C的数据NO Name TNO 2010 数据库技术1003 2010 数据库技术0102 2015 高等数学2020SC 的数据NO CNO GRADE 0105 2010 88 0108 2010 90 1010 2010 85 0101 2010 NULL 0105 2015 78 0102 2010 NULL 0110 2015 80 0108 2015 NULL 0102 2015 82 01122015NULL一、已知属性集U={学号、姓名、性别、年龄、民族、班级编号、班级名称、班长、身份证号、所属学院编号,所属学院名称、宿舍号、家庭住址},写出下列要求的关系模式,并说明理由。

(共10分)(1)写出U 的一个关系模式,使其具有完全函数依赖关系;解:班级(班级编号、班级名称、班长),班级编号f−−→{班级名称、班长}或:学院(学院编号,学院名称),学院编号f−−→学院名称或:学生(学号、姓名、性别、年龄、民族、班级编号、身份证号、所属学院编号、宿舍号、家庭住址)学号f−−→{姓名、性别、年龄、民族、班级编号、身份证号、所属学院编号,宿舍号、家庭住址}身份证号f−−→{学号,姓名、性别、年龄、民族、班级编号、所属学院编号,宿舍号、家庭住址}(2)写出U 的一个关系模式,使其具有部分函数依赖关系; 解:班级(班级编号、宿舍号、班级名称、班长)(班级编号、宿舍号)p−−→班级名称(3)写出U 的一个关系模式,使其具有传递函数依赖关系;解:学生(学号、姓名、性别、年龄、民族、班级编号、班级名称、班长、宿舍号、家庭住址)。

学号−−→班级编号,班级编号−−→班级名称,∴学号−−→班级名称或:学生(学号、姓名、性别、年龄、民族、班级编号、所属学院编号,所属学院名称、宿舍号、家庭住址)。

学号−−→所属学院编号,所属学院编号−−→所属学院名称∴学号−−→所属学院名称传递传递(4)写出U的一个关系模式,使其具有二个关键字;解:学生(学号、姓名、性别、年龄、民族、班级编号、身份证号、所属学院编号、宿舍号、家庭住址)。

关键字为:学号或身份证号。

−−→{姓名、性别、年龄、民族、班级编号、身份证号、所属学院编号,宿舍号、家学号f庭住址}−−→{姓名、性别、年龄、民族、班级编号、身份证号、所属学院编号,宿舍号、身份证号f家庭住址}(5)写出U的一个关系模式,使其具有完全函数依赖关系但不具有传递依赖关系。

解:学生(学号、姓名、性别、年龄、民族、班级编号、身份证号、所属学院编号,宿舍号、家庭住址)。

−−→{姓名、性别、年龄、民族、班级编号、身份证号、所属学院编号,宿舍号、家学号f庭住址}−−→{学号,姓名、性别、年龄、民族、班级编号、所属学院编号,宿舍号、家身份证号f庭住址}二、已知某饲料企业的产品出库单下图所示,按下列要求设计满足条件的数据库(即一个或多个表),并说明理由。

(共12分)A饲料厂产品销售单销售单位名称销售单号(1)满足1NF但不满足2NF的数据库(4分);解:假设数据库中销售单号是唯一的,数据库中仅存储销售单中的相关信息。

销售信息表(销售单号,销售单位名称,产品名称,规格型号,计量单位,单价,数量,金额,总金额,开票人,发货人)码:销售单号+产品名称+规格型号−−→计量单位,不满足2NF。

(销售单号,产品名称,规格型号)p(2)满足2NF的数据库(4分);解:产品(产品名称,规格型号,计量单位,单价)。

出售(销售单号,产品名称,规格型号,单价,数量,金额)销售单(销售单号,销售单位名称,开票人,发货人,总金额)(3)满足3NF的数据库(4分)。

解:产品(产品名称,规格型号,计量单位,单价)销售(销售单号,产品名称,规格型号,单价,数量,金额)销售单(销售单号,开票人,发货人,总金额)职员(职员姓名,所属单位)三、判断下列描述或命令是否正确,如果不正确,请在不改变原来命令意义的基础上改正(共30分)(1)数据库中模式、外模式和模式/内模式映像是唯一的。

当模式改变时,只要修改外模式/模式映像,应用程序不需要修改,这一特性,称为物理独立性。

改为:数据库中模式、模式/内模式映像是唯一的。

当内模式改变时,只要修改模式/模式映像,应用程序不需要修改,这一特性,称为物理独立性。

(2)若F是关系R的外码,它与S的主码相对应,根据参照完整性规则,R中每个元组在F上的取值等于S中某个元组的主码值。

改为:若F是关系R的外码,它与S的主码相对应,根据参照完整性规则,R中每个元组在F上的取值等于S中某个元组的主码值或为空值。

(3)在一个关系模式中,包含在主关键字中的属性称为主属性,主属性之外的属性称为非主属性。

改为:在一个关系模式中,包含在关键字中的属性称为主属性,主属性之外的属性称为非主属性。

(4)create view V_student_SC(学号,姓名,课程编码,成绩) asSelect student.no,,o,sc.grade from student a, sc b where student.no=sc.no order by o改为:reate view V_student_SC(学号,姓名,课程编码,成绩) asSelect student.no,,sc.no,sc.gradefrom student, sc where student.no=sc.no(5) select student.*,o,sc.grade from student right outer join sc where student.no=sc.no(注意:如果认为这命令是错误的,改正时要用到外连接)改为:select student.*,o,sc.grade from student right outer join sc onstudent.no=sc.no(6)select no,class from student where name=’李%’and no in select * from sc where student.no=sc.no改为:select no,class from student where name like '李%' and no in (select no from sc where student.no=sc.no)(7) 检索班级平均年龄大于18且为汉族的学生情况的命令为:select no,class from student where not na=’汉族’ or na=’苗族’ and avg(age)>18 改为:select no,class from student where class in (select class from student group by class having avg(age)>18) and na='汉族'(8) select student.no+age,name,sc.* from student,sc where student.no=sc.no group by o having count(cno)>2改为:select o from student,sc where student.no=sc.no group by o having count(cno)>2(9)select no,name,sex,class from student where na=’汉族’UnionSelect no,name,age,class from student whe re na=’苗族’改为:select no,name,sex,class from student where na='汉族' UnionSelect no,name,sex,class from student where na='苗族'(10)select student.no,,o,sc.grade from c, student left outer join sc on student.no=sc.no and c.no=o改为:select student.no,,o,sc.gradefrom c, student left outer join sc on student.no=sc.no where c.no=o四、写出下列命令的结果。

(本题24分)(1)select no,agefrom student。

no age0101 200102 220105 210108 210110 NULL2031 20(2)在STUDENT表中对AGE按升序建立索引后,执行下列命令:select age, no from student。

age noNULL 011020 010120 203121 010521 010822 0102(3) select * from student order by age,name。

相关主题