1.填空题(共 20 分,没空 2 分)
1) 数据模型包括_____________,__________________,______________________,
从应用层区分,可分为 3 个_____________,_____________________,______________,
主要的数据模型是 3 个____________,__________________,______________等。
数据结构、数据操作、完整性约束
逻辑模型、物理模型、概念模型
层次模型、网状模型、关系模型
2)事务的四个特性是______________,______________,______________,______________。
ACID A原子性,C一致性,I隔离性,D持久性
3)关系分解的两个原则是______________,______________。
无损连接性,保持函数依赖
4)关系模型的所运用的数学运算是______________,______________。
关系代数,关系演算
5 ) E-R 图合并时,分 E-R 图会碰到的冲突是: ______________,______________。
属性冲突、命名冲突、结构冲突(P228)
2.登记日志的原则是什么,为什么?(12 分)
1.登记的次序严格按并发事务执行的时间次序(P300)
2.必须先写日志,后写数据库
原因:因为写日志和写数据库是两个不同的操作,如果再这连个操作之间出现了故障,倘若先写了
数据库,没有写日志,要进行恢复的话就没办法恢复这个修改了;若先写了日志,最多就是多做一次UNDO操作
3.视图的作用是什么?(12 分)
1.简化用户的操作:用户只用关心自己关心的操作
2.可以使用户以多种角度看待同一数据
3.对重构数据库提供了一定的逻辑独立性:如果基本表增加了什么字段,但是对于视图来说没有改变,这就是逻辑独立性
4.能够对机密数据提供安全保护
5.适当利用视图可以更清晰的表达查询
4.下面是四个表以及表字段的描述,按要求回答问题。 (32 分)
S(SNO,SNAME,CITY,STATUS) //供应商编号,供应商名称,供应商城市,供货状态
P(PNO,PNAME,COLOR,QTY) //零件编号,零件名称,零件颜色,零件数量
J(JNO,JNAME) //工程号,工程号名称。。。。这个表没用到,字段记不清了
SPJ (PNO,SNO,JNO,QTY ) //项目关系表,零件号,供应商号,工程号,数量
1) 用关系代数写出求没有使用武汉供应商生产的黑色零件的工程号(6 分)。
2) 用关系代数写出,求至少使用了所有上海供应商生产的零件的工程号(8 分)。
3) 用 SQL, 求项目 J1 中使用黑色零件的供应商(6 分)。
4) 修改所有上海供应商的供货状态为“无货“(6 分)。
5) 将零件(PNO1, PNAME,1 COLOR1,100)插入表 P 中(6 分)。
\[ 1. Π_{JNO}(J)-Π_{JNO}(\sigma_{s.city='武汉' \cap p.color='黑'}(S\Join P\Join SJ))\\2.Π_{PN0,JNO}(SPJ)\div Π_{PNO}(\sigma_{s.city='上海'}(S\Join SPJ)) \]
3.SELECT (DISTINCT)SPJ.sno FROM SPJ JOIN P ON SPJ.PNO = P.PNO WHERE SPJ.JNO = 'J1' AND P.color = '黑'; 4.UPDATE s SET s.`status` = '无货' WHERE s.`city` = '上海'; 5.INSERT INTO p VALUES('PNO1','PNAME','COLOR1',100)
5.R=(A,B,C,D,E) F=(A->BC, CD->E, B->D, E->A)(12 分)
1) 求 B 的属性闭包(5 分)
2) 求 R 的候选码(7 分)
1) 书P191求闭包:BD
2)A,BC,E,CD
6.R=(A,B,C,D), F={B->D, AB->C}(12 分)
1) 该模型属于什么范式(4 分)
2) 如何分解到 BCNF(8 分)
1)1NF,个人觉得该关系模式的候选码为AB,而D部分依赖于候选码,所以达不到2NF
2)BCNF分解算法见书P199
应该分解为 \[ R_1=(B,D),R_2=(A,B,C) \]
这样每一个每一个决定因素都包含码
不过感觉应该从1NF->2NF->3NF->BCNF
原文:https://www.cnblogs.com/lvgj/p/12485765.html