《南京邮电大学 数据库系统 课后习题答案2》由会员分享,可在线阅读,更多相关《南京邮电大学 数据库系统 课后习题答案2(34页珍藏版)》请在金锄头文库上搜索。
1、4.24 设有关系模式R(ABCD),其上的FD集 F=AB,BC,DB。,参考答案:,R分解成ACD, BD,试求F在ACD和BD 上的投影。 解:实际是求F+在ACD和BD上的投影 设:R1(ACD), R2(BD) 由推理规则: F1 =AC,DC 传递性 F2 =DB,第四章(P144-145),数据库系统 习题课二 第四章习题,R(ABCD),F=AB,BC,DB。 F1 =AC ,DC ,F2 =DBACD和BD是BCNF吗?如不是,试分解成BCNF。解:分析出键分析函数依赖类型或按定义判断范式 (a)用推理规则或求属性闭包法找出键 Key1: AD Key2: D (b) 对R1
2、 、 F1 : ADC 部分依赖 1NF 分解方法:算法4.6 1AC, AD 或 AD, DC 对R2、 F2 : 按定义4.24 达BCNF,数据库系统 习题课二 第四章习题,p,*不在任何函数依赖中的属性应列入键中,4.28设有R(职工编号,日期,日营业额,部门名, 部门经理)。 每职工每天一营业额:(职工编号,日期)日营业额 每职工只在一部门工作:职工编号部门名 每部门名只有一位部门经理:部门名部门经理,参考答案:,(1)R的基本函数依赖集 F=(职工编号,日期)日营业额, 职工编号部门名, 部门名部门经理 Key: (职工编号,日期),(2)(职工编号,日期)部门名 1NF (职工编
3、号,日期)部门经理 消除部分依赖 职工编号(部门名,部门经理 ) R1,R2=(职工编号,日期,日营业额), (职工编号,部门名,部门经理) F1=(职工编号,日期)日营业额 Key1: (职工编号,日期),R1无部分依赖,达2NF F2=职工编号部门名,部门名部门经理 Key2: 职工编号, R2无部分依赖,达2NF,p,p,(3)分解成3NF R1无传递依赖,达3NF R2中:职工编号部门经理 是传递依赖关系将R2分解为3NF模式集 R21(职工编号,部门名) R22(部门名,部门经理 ) (职工编号,日期,日营业额), (职工编号,部门名),(部门名,部门经理),4.30 设有关系模式R
4、(ABCD),其上的FD集为 F=ABC,CA,CD, ACD, BC F=AB,BC,CD, AB,AD,CD解 :(1)R的关键码 AB、BC (2) 中有R1(ACD), R2(BC) R1R2=C, R1R2=AD, 由F经合并性推理得: CAD,无损 (3) F1 =CA,CD , F2 = (F1F2) F 分解不保持函数依赖 (4)R1的F1 =CA,CD Key1: C 按定义4.19 R1 达BCNF R2的Key2: BC R2 达BCNF,数据库系统 习题课二 第四章习题,扩展: 和的关系模式各达到第几范式? 应该为数据库模式中的每个模式达到的范式,数据库系统 习题课二
5、第四章习题, F=AB,BC,CD, AB,AD,CD解 :(1)R的关键码 A (2):R1(AB), R2(AD),R3(CD) 按算法4.3 有损,数据库系统 习题课二 第四章习题,b31,a4,R3 :CD,b14,a1,a4,(3) F1 =AB , F2 =AD,F3 =CD (F1F2 F3)F 分解不保持函数依赖 (4)R1的Key1: A 按定义4.19 R1 达BCNF R2的Key2: A 按定义4.19 R2 达BCNF R3的Key3: C 按定义4.19 R3 达BCNF,4.21设有关系模式R(ABC ),其上的FD集为 F= BC,CA , 那么分解AB, AC
6、相对于F是否是无损分解和保持FD?说明理由 解 (1) 中有R1(AB), R2(AC) R1R2=A, R1R2=B, R2R1=C 在F中推导不出 AB或AC,有损 (2) F1 =BA , F2 = CA (F1F2) F,丢失了BC 分解不保持函数依赖,数据库系统 习题课二 第四章习题,第五章参考答案,PP.180 5.14某商业集团有三个实体集。一个是“公司”实体集,属性有公司编号、公司名、地址等。二是“仓库”实体集,属性有仓库编号、仓库名、地址等。三是“职工”实体集,属性有职工编号、姓名、性别等。公司与仓库间存在“隶属”关系,每个公司管辖若干个仓库,每个仓库只属于一个公司管辖;仓库
7、与间存在“聘用”联系,每个仓库可聘用多个职工,每个职工只能在一个仓库工作,仓库聘用职工有聘期和工资。画出ER图,并在图上注明属性、联系的类型。转换成关系模式集,并指出每个关系模式的主键和外键。,数据库系统 习题课二 第五章习题,ER图,数据库系统 习题课二 第七章习题,关系模式集公司(公司编号,公司名,地址)仓库(仓库编号,仓库名,地址,公司编号)职工(职工编号,姓名,性别,仓库编号,聘期,公司),数据库系统 习题课二 第七章习题,第七章参考答案,数据库系统 习题课二 第七章习题,一、P250 7.3,数据库系统 习题课二 第七章习题,参考答案:,(1) 原子性:事务的所有操作“要么全做,要么
8、全不做。 是数据库系统本身的职责; 由DBMS事务管理子系统实现。 (保证了事务的一致性),保证数据库的完整性,(2) 一致性:事务独立执行的结果应保持DB的一致性。 是编写事务的应用程序员的职责; 由DBMS完整性子系统测试。 保证数据库的完整性。,数据库系统 习题课二 第七章习题,(3) 隔离性(Isolation): -多个事务并发执行时,系统应保证与这些事务 先后单独执行时的结果一样。 -由DBMS的并发控制子系统实现。 -提高事务的并发度,又不让错误发生。,(4) 持久性(Durability): -一个已成功执行的事务对数据库的影响应该 是持久的,故障后可恢复。 -由DBMS的恢复
9、子系统实现。 -保证已写入磁盘的数据不丢失或可恢复。,ACID准则共同保证了数据库中的数据总是正确的,二、P250 7.10,数据库系统 习题课二 第七章习题,参考答案:,(1) 检查点机制的主要思想: *运行过程中由DBMS每隔一定时间在日志中设置一个检查点 *在检查点时刻, 把将上一个检查点后已commit的事务对DB的更新 写入磁盘 在日志文件中登入记录 故障恢复时,只有最近一个检查点之后到发生故障时 的事务需要恢复,数据库系统 习题课二 第七章习题,(2) COMMIT与检查点时刻操作的协调: 在检查点时刻,写入磁盘的是上一个检查点后已 commit的事务对DB的更新 故障恢复时,重做的是从最近一个检查点之后到 发生故障时已commit的事务,这些事务被正向扫描写入 重做队列,并重新实施更新操作,三、P250 7.20,数据库系统 习题课二 第七章习题,参考答案:,可串行化调度与串行化调度的区别: -前者交叉执行各事务的操作,效果上相当于它们的某一串 行执行; -后者串行执行各事务,无并发意义,系统资源利用率低,四、P250 7.24,数据库系统 习题课二 第七章习题,参考答案:,完整性规则的组成: - 何时检查,WHENEVER - 检查什么错误,IF - 检出错误怎么办,THENSQL中的完整性约束: - 域约束 - 基表约束 - 检查约束 或断言,