求范式的判断和分解

来源:互联网 发布:五线谱打谱软件 编辑:程序博客网 时间:2024/05/01 13:57

工程号   材料号  数量   开工日期  完成日期  价格


p1        11     4      9805      9902       250   


p1        12     6      9805      9902       300 


p1        13     15     9805      9902       180  


p2        11     6      9811      9912       250 


p2        14     18     9811      9912       350


如上图  给出的关系r为第几范式?是否存在操作异常?若存在
,则将其分解为高一级范式。分解完成的高级范式中能否可以
避免分解前关系中存在的操作异常?

 

上图没有写关键字,姑且认为关键字是 工程号+材料号
我来试着答一下:

满足1NF,不满足“2NF:非主关键字非部分依赖主关键字的”定义
操作异常就是:插入异常,删除异常

分解为2NF(括号里的为关键字):


         (工程号)   开工日期  完成日期  
           p1         9805      9902
           p2         9811      9912 


           (工程号  材料号)  数量    价格
             p1      11      4      250   
             p1      12      6     300 
             p1      13     15      180  
             p2      11      6      250 
             p2      14     18      350

以上不满足3NF的定义:“非主关键字不传递依赖”
分解为3NF(括号里的为关键字):


        (工程号)   开工日期  完成日期  
           p1         9805      9902
           p2         9811      9912 


           (工程号  材料号)  数量   
             p1      11      4        
             p1      12      6     
             p1      13     15       
             p2      11      6       
             p2      14     18     

                (材料号 数量)     价格
                 11      4      250   
                 12      6     300 
                 13     15      180  
                 11      6      250 
                 14     18      350