三、简答题
得分 (本大题共3小题,每小题5分,共15分) 1. 简述等值连接与自然连接的区别和联系。
2. 说明视图与基本表的区别和联系?
3. 简述事务的特性。
四、设计题
得分 (第1题20分,第2题10分,共30分) 1. 设有一个工程供应数据库系统,包括如下四个关系模式:
? S(Sno,Sname, Status,City); ? P(Pno,Pname,Color,Weight); ? J(Jno,Jname,City);
? SPJ(Sno,Pno,Jno,Qty);
供应商表S由供应商号、供应商名、状态、城市组成; 零件表P 由零件号、零件名、颜色、重量组成; 工程项目表J由项目号、项目名、城市组成;
供应情况表SPJ由供应商号、零件号、项目号、供应数量组成; (1)用关系代数查询没有使用天津供应商生产的红色零件的工程号;(3分)
(2) 用关系代数查询至少使用了供应商S1所供应的全部零件的工程号JNO; (3分)
(3)用ALPHA语言查询供应工程J1零件为红色的供应商号SNO;(2分)
31
(4)用T-SQL语句建立“供应商”S表(主码必须定义);(2分)
(5)用SQL查询工程J1使用的各种零件的名称和使用数量;(3分)
(6)用SQL查询没有使用天津供应商生产的零件的工程号;(3分)
(7)用SQL语句将全部红色零件改为蓝色;(2分)
(8)用SQL语句将(S2,P4,J6,400)插入供应情况关系。(2分)
2. 设有关系STUDENT(S#,SNAME,SDEPT,MNAME,CNAME,GRADE),(S#,CNAME)为
候选码,设关系中有如下函数依赖:
(S#,CNAME)→SNAME,SDEPT,MNAME
S#→SNAME,SDEPT,MNAME (S#,CNAME)→GRADE SDEPT→MNAME 试求下列问题:
(1)关系STUDENT属于第几范式?(3分)
(2)如果关系STUDENT不属于BCNF,请将关系STUDENT逐步分解为巧
BCNF。(7分)
要求:写出达到每一级范式的分解过程,并指明消除什么类型的函数依赖。
32
五、综合题(15分) 得分
某医院病房管理系统中,包括四个实体型,分别为: 科室:科名,科地址,科电话 病房:病房号,病房地址
医生:工作证号,姓名,职称,年龄 病人:病历号,姓名,性别 且存在如下语义约束:
①一个科室有多个病房、多个医生,一个病房只能属于一个科室,一个医生只属于一个科
室;
② 一个医生可负责多个病人的诊治,一个病人的主管医生只有一个; ③ 一个病房可入住多个病人,一个病人只能入住在一个病房。 注意:不同科室可能有相同的病房号。 完成如下设计:
(1)画出该医院病房管理系统的E-R图;(5分) (2)将该E-R图转换为关系模型;(5分)
(要求:1:1和1:n的联系进行合并)
(3)指出转换结果中每个关系模式的主码和外码。(5分)
33
试题四参考答案与评分标准
一、选择题(每题1.5分) 1.A 2.C 3.D 4.B 5.C 6.D 7.B 8.B 9.D 10.C11.C 12.B 13.D 14.D 15.B 16.B17.B18.C 19.C 20.A 二、填空题(每题1分) 1. 数据库系统2. 完整性约束 3.CLUSTER INDEX4. IN 5.三 6.聚集 7.死锁 8.物理9.封锁 10.系统故障 三、简答题(每题5分) 1、参考答案:
答: 连接运算符是“=”的连接运算称为等值连接。它是从关系R与S的广义笛卡尔积中
选取A,B属性值相等的那些元组,即等值连接为:R∞S={trts| tr∈R∧ts∈S∧tr[A]=ts[B]} A=B
自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。 2、参考答案:
答:视图是从一个或几个基本表导出的表,它与基本表不同,是一个虚表,数据库中只存
放视图的定义,而不存放视图对应的数据,这些数据存放在原来的基本表中,当基本表中的数据发生变化,从视图中查询出的数据也就随之改变。视图一经定义就可以像基本表一样被查询、删除,也可以在一个视图之上再定义新的视图,但是对视图的更新操作有限制。
3、参考答案:
答:事务具有四个特性,即ACID特性: (1)原子性:事务中包括的所有操作要么都做,要么都不做。 (2)一致性:事务必须使数据库从一个一致性状态变到另一个一致性状态。 (3)隔离性:一个事务内部的操作及使用的数据对并发的其他事务是隔离的。 (4)持续性:事务一旦提交,对数据库的改变是永久的。 四、设计题 1、参考答案:
(1)πJno(J)- πJno (?City='天津' (S)
SPJ
?Color='红' (P))
(2)πPno,Jno(SPJ)÷πPno (?Sno='S1' (SPJ)) (3)RANGE P PX
GET W (SPJ.Sno): SPJ.Jno='J1'∧?PX(SPJ.Pno=PX.Pno∧PX..Color='红')) (4)CREATE TABLE S (Sno CHAR(6) PRIMARY KEY, Sname CHAR(10), Status INT, City CHAR(20));
(5)SELECT Pname,TotalQty FROM (SELECT Pno,SUM(Qty) TotalQty FROM SPJ WHERE
Jno='J1' GROUP BY Pno) X,P WHERE P.Pno=X.Pno;
(6)SELECT Jno FROM J WHERE Jno NOT IN (SELECT Jno FROM SPJ WHERE SnoIN
34
(SELECT Sno FROM S WHERE City='天津'));
或:SELECT Jno FROM J WHERE NOT EXISTS (SELECT * FROM SPJ,S WHERE
SPJ.Sno=S.Sno AND SPJ.Jno=J.Jno AND City='天津'); 或:SELECT Jno FROM J WHERE NOT EXISTS (SELECT * FROM SPJ WHERE SPJ.Jno=J.Jno
AND EXISTS (SELECT * FROM S WHERE S.Sno=SPJ.Sno AND City='天津')); (7)UPDATE P SET Color='蓝' WHERE Color='红'; (8)INSERT INTO SPJ VALUES('S2','P4','J6',400) 评分标准:
第(1)、(2)、(5)、(6)每题3分,其余每题2分,书写是否正确、规范、合理需酌情处理,能正确写出大体结构给一半分,局部漏写、错写视情节扣分,大体结构不正确一律不给分。 2、参考答案:
(1)关系STUDENT是1NF,因为F中存在非主属性 SNAME,SDEPT,MNAME对侯选码(S#,CNAME)的部分函数依赖。 (2)首先消除部分函数依赖(S#,CNAME)→SNAME,SDEPT,MNAME
将关系分解为:
R1(S#,SNAME,SDEPT,MNAME),
F1 = { S#→SNAME,SDEPT,MNAME}
R2(S#,CNAME,GRADE),F2={(S#,CNAME)→GRADE}
在关系R1中存在非主属性对候选码的传递函数依赖S#→SDEPT,所以将R1进一步分解:
R11(S#,SNAME,SDEPT),F11 = { S#→SNAME,SDEPT} R12(SDEPT,MNAME),F12 = {SDEPT→MNAME}
在R2,R11,R12关系模式中函数依赖都是非平凡的,并且决定因素均是候选码,所以上述三个关系模式均是BCNF。
评分标准:
(1)回答R是1NF并正确说明理由3分,没有正确回答出理由扣1分。
(2)两次分解各3分,每步所得的两个关系模式各1.5分;正确回答消除什么类型的函
数依赖和正确说明所得的三个关系模式是BCNF各1分。
五、综合题 参考答案:
(1)本题的E-R图如下图所示。
病房号 病房地址 科名 1 组成 科地址 科电话 病房 1 入住 n 病人 n 科室 1 拥有 n n 诊治 35 1 医生 病历号 姓名 性别 工作证号 姓名 职称 年龄