任举一个满足2NF,但不满足3NF的关系模式实例,说明会发生哪些异常并将其转化为3NF。
参考答案:关系模式举例如下:
学生—系(学号,姓名,性别,出生日期,系号,系名,系主任)
候选关键字是“学号”,其它属性为非主属性,均完全函数依赖于“学号”,满足2NF;但非主属性“系名”、“系主任”通过“系号”传递函数依赖于“学号”,不满足3NF。这种“传递函数依赖”将引出异常问题:相同系内的学生记录中,关于“系”的信息重复存储,冗余很大,并会引起更新异常、插入异常和删除异常。
更新异常说明:若某系的“系主任”改选必须将所有相关学生记录中“系主任”字段进行修改,否则会发生数据不一致性:插入异常说明:若一个系刚成立未招生,由于“系”的信息是寄生在“学生”信息上的,没有学生,就没有“学号”。一个记录要能插入要求关键字完备,显然“系”的信息将不能存储。
学生一系关系模式分解为:学生(学号,姓名,性别,出生日期,系号)和系(系号,系名,系主任)两个关系模式后,均达到3NF。