《数据库系统概论》复习及答案(4)

2019-08-30 22:24

(2) 原关系模式S为几范式?为什么?分解成高一级范式,并说明为什么? (3) 将关系模式分解成3NF,并说明为什么? 解答:

(1)关系模式S的基本函数依赖如下:

Sno→Sname,SD→Sdname,Sno→SD,(Sno,Course) →Grade 关系模式S的码为:(Sno,Course)。

(2)原关系模式S是属于1NF的,码为(Sno,Course),非主属性中的成绩完全依赖于码,而其它非主属性对码的函数依赖为部分函数依赖,所以不属于2NF。 消除非主属性对码的函数依赖为部分函数依赖,将关系模式分解成2NF如下: S1(Sno,Sname,SD,Sdname) S2(Sno,Course,Grade) (3) 将上述关系模式分解成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)

6、设有如下关系R

(1)它为第几范式? 为什么?

(2)是否存在删除操作异常?若存在,则说明是在什么情况下发生的?

(3)将它分解为高一级范式,分解后的关系是如何解决分解前可能存在的删除操作异常问题?

解答: (1) 它是2NF。

因为R的候选关键字为“课程名”。 依赖关系: 课程名→教师名,教师名 → 课程名,教师名→教师地址,所以 课程名→教师地址。即存在非主属性“教师地址”对候选关键字课程名的传递函数,因此R不是3NF。但:因为不存在非主属性对候选关键字的部分函数依赖,所以R是2NF。 (2) 存在。

当删除某门课程时会删除不该删除的教师的有关信息。 (3) 分解为高一级范式如图所示。

R1如下: R2如下:

分解后,若删除课程数据时,仅对关系R1操作,教师地址信息在关系R2中仍然保留,不会丢失教师方面的信息。

7、设某商业集团数据库中有一关系模式R如下:

R (商店编号,商品编号,数量,部门编号,负责人)

如果规定:(1) 每个商店的每种商品只在一个部门销售;(2) 每个商店的每个部门只有一个负责人;(3) 每个商店的每种商品只有一个库存数量。 试回答下列问题:

(1)根据上述规定,写出关系模式R的基本函数依赖; (2) 找出关系模式R的候选码;

(3) 试问关系模式R最高已经达到第几范式?为什么? (4) 如果R不属于3NF,请将R分解成3NF模式集。 解答:

(1)关系模式S的基本函数依赖如下: (商店编号,商品编号) →部门编号,(商店编号,部门编号)→负责人,(商店编号,商品编号) →数量

(2)关系模式R的码为:(商店编号,商品编号, 部门编号)。

(3)原关系模式R是属于1NF的,码为(商店编号,商品编号, 部门编号),非主属性对码的函数依赖全为部分函数依赖,所以不属于2NF。

消除非主属性对码的函数依赖为部分函数依赖,将关系模式分解成2NF如下:

R1(商店编号,商品编号, 部门编号, 数量)

R2(商店编号,部门编号, 负责人) (4)将R分解为 R1(商店编号,商品编号, 部门编号, 数量) R2(商店编号,部门编号, 负责人)

分解后的R不存在传递的函数依赖,所以分解后的R已经是第3NF

8、有一学校教学数据库,包括学生、课程、教师、学生成绩4个关系。 学生关系S(SNO,SN,AGE,SEX),有属性:学号、姓名、年龄、性别; 课程关系C(CNO,CN,PCNO),包括属性:课程号、课程名、先修课课程号; 教师关系T(ENO,EN,DEPT),包括属性:职工号、姓名、系别;

学生成绩关系SC(SNO,CNO,ENO,G),包括属性:学生号、课程号、任课教师职工号和学生学习成绩。

请用关系代数完成下列操作:

(1)求选修所有课程并且成绩为A的学生名; (2)求选修了王平老师讲授的所有课程的学生名; (3)求不选修信息系老师开设的所有课程的学生名。 解答: (1) (2) (3)

?SN(S?(?G?'A'(SC)??CNO(C)))?SN(S?(SC??CNO(?EN?'王平'(SC?T))))?SN(S)??SN(?Sdept?'信息'(S?SC?T)) 9、供应商—零件—工程项目数据库由以下四个关系模式构成: S(SNO,SNAME,STATUS,CITY) P(PNO,PNAME,COLOR,WEIGHT,CITY) J(JNO,JNAME,CITY) SPJ(SNO,PNO,JNO,QTY)

供应商S,零件P和工程项目J分别由供应商号(SNO),零件号(PNO)和工程项目号(JNO)

惟一标识。供货SPJ是指由某个供应商向某个工程项目供应某些数量的某种零件。 请用SQL语言完成如下的操作:

(1)找出给北京的工程项目提供不同的零件号; (2)将没有供货的所有工程项目从J中删除; (3)查询提供全部零件的供应商名;

(4)查询这样的工程项目号:供给该工程项目的零件P1的平均供应量大于 供给工程项目n的任何一种零件的最大供应量; 解答:

(1)SELECT DISTINCT SPJ.PNO FORM SPJ,J WHERE SPJ.JNO=J.JNO AND J.CITY='北京' (2)DELETE FROM J

WHERE JNO NOT IN ( SELECT JNO FROM SPJ); (3)SELECT SNAME FROM S

WHERE NOT EXISTS( SELECT * FROM P

WHERE NOT EXISTS( SELECT * FROM SPJ WHERE SNO=S.SNO AND PNO=P.PNO)); (4)SELECT DISTINCT JNO FROM SPJ WHERE PNO=‘P1’

GROUP BY JNO HAVE AVG(QTY)> (SELECT MAX(QTY) FROM SPJ WHERE JNO=‘J1’)

10、设教学数据库中有三个基本表:

S(SNO,SNAME,AGE,SEX),属性为:学号、学生姓名、年龄、性别。 C(CNO,CNAME,TEACHER),属性为:课程号、课程名、上课教师名。 SC(SNO,CNO,GRADE),属性为:学号、课程号、成绩。 有如下SQL查询语句: SELECT CNO FROM C WHERE CNO NOT IN

(SELECT CNO FROM S,SC

WHERE S.SNO=SC.SNO AND SNAME=“GU”) 请完成下列问题:

(1)用汉语句子阐述上述SQL语句的查询结果。

(2)用等价的关系代数表达式表示上述查询SQL语句 解答:

(1)是查询学生“GU”没有选过的课程 (2)

πcno?C??πCNO?σSNAME?\GU\?S?SC?? 11、某企业集团有若干个工厂,每个工厂生产多种产品,且每一种产品可以在多个工厂按照固定的计划数量生产产品;每个工厂聘用多名职工,且每名职工只能在一个工厂工作,工厂聘用职工有聘期和工资。工厂的属性有工厂编号、厂名、地址,产品的属性有产品编号、产品名、规格,职工的属性有职工号、姓名。

(1)根据上述语义画出E—R图,在E—R图中需注明实体的属性、联系的类型及实体的标识符。

(2)将E—R模型转换成关系模型,并指出每个关系模式的主键和外键。 解答: (1)E—R图


《数据库系统概论》复习及答案(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:C语言编程题精选

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: