1、下表给出的关系R为第几范式
是否存在操作异常
若存在,则将其分解为高一级范式
分解完成的高级范式中是否可以避免分解前关系中存在的操作异常
解:它为1NF
因为该关系的候选码为(工程号,材料号),而非主属性“开工日期”和“完工日期”部分函数依赖于候选码的子集“工程号”,即:∴它不是2NF
它存在操作异常,如果工程项目确定后,若暂时未用到材料,则该工程的数据因缺少码的一部分(材料号)而不能进入到数据库中,出现插入异常
若某工程下马,则删去该工程的操作也可能丢失材料方面的信息
将其中的部分函数依赖分解为一个独立的关系,则产生如下所示的两个2NF关系模式:分解后,新工程确定后,尽管还未用到材料,该工程数据可在关系R2中插入
某工程数据删除时,仅对关系R2操作,也不会丢失材料方面的信息
2、下表给出一数据集,请判断它是否可直接作为关系数据库中的关系,若不行,则改造成为尽可能好的并能作为关数据库中关系的形式,同时说明进行这种改造的理由
解:因为关系模式至少是1NF关系,即不包含重复组并且不存在嵌套结构,给出的数据集显然不可直接作为关系数据库中的关系,改造为1NF的关系如下所示
3、设有如下所示的关系R
(1)它为第几范式
(2)是否存在删除操作异常
若存在,则说明是在什么情况下发生
(3)将它分解为高一级范式,分解后的关系如何解决分解前可能存在的删除操作的异常问题
解:(1)它是2NF
R的候选码为课程名,而“课程名→教师名”,“教师名→课程名”不成立,“教师名→教师地址”,∴,即存在非主属性教师地址对候选码课程名的传递函数依赖,因此R不是3NF
又 不存在非主属性对候选码的部分函数依赖,∴R是2NF
当删除某门课程时会删除不该删除的教师的有关信息
(3)分解为高一级范式如下所示
分解后,若删除课程数据时,仅对关系R1操作,教师地址信息在关系R2中仍然保留,不