1.运用范式的规范数据库设计必要性的理解。
数据库的设计范式是数据库设计所需要满足的规范,数据库的规范化是优化表的结构和优化把数据组织到表中的方式,这样使数据更明确,更简洁。实践中,通常把一个数据库分成两个或多个表并定义表之间的关系以做到数据隔离,添加、删除和修改某个字段只需要在一个表中进行,接着可以通过定义的关系传递到数据库中剩余的表中。这样就可以消除很多错误或垃圾数据出现的机会并减轻更新信息所必要的工作量。
例如:第一范式:每一个分量必须是不可分的数据项,即不允许同一元组同一属性有多值。第二范式:则是要求每个非主属性完全函数依赖于任何一个候选码。而第三范式则要求不存在非主属性对于码的传递函数依赖。
2.设有一个反映工程及其使用相关材料信息的关系模式:
R(工程号,工程名,开工日期,完工日期,材料号,材料名,使用数量)
假设有如下语义:
(1)对所有工程来说,工程号是唯一的,同时工程名、开工日期、完工日期不会完全相同;
(2)工程名与材料名均有重名;
(3)如果工程名不相同,其开工日期或者完工日期可能相同;
(4)每个工程使用若干种材料,每种材料可应用于若干工程中。
请完成下列题目:
1.写出关系模式R的基本函数依赖(FD)。(函数依赖的右边只能出现单个属性)
2.写出关系模式R的候选码。
3.R最高属于第几范式,说明理由。
4.将R规范化到3NF。
参考答案:
(1)FD:工程号→工程名,工程号→工程地址,工程号→开工日期,工程号→完工日期,材料号→材料名称,(工程号,材料号)→使用数量;
(2)候选码: (工程号,材料号)。
(3) 1NF, 存在非主属性工程名、工程地址、开工日期、完工日期和材料名称部分函数依赖于键(工程号,材料号)。
(4) R1(工程号,工程名,工程地址,开工日期,完工日期)
R2(材料号,材料名称)
R3(工程号,材料号,使用数量)