数据库系统概论课堂笔记-规范化理论1

一、问题的提出

1.关系模式设计的不合理导致数据库性能较差

2.评价关系数据库好坏的标准:关系模式符合的范式的级别

二、函数依赖

一个关系模型的简短定义为R(U,F),其中U为关系模式的属性集,F称为关系模式R的函数依赖。函数依赖即为一个关系模式内部的属性间的决定关系。

三、几种范式

1.1NF

    1NF即为数据库满足的最基本的范式,内容即为数据模式的属性不可再分,是原子项。

2.2NF

    在1NF的基础上,无非主属性对候选码的部分函数依赖。

    举例:-non 2NF

       设关系模式S(S#,Sname,Sage,Addr,C#,Grade),主码可知为(S#,C#),对主码(S#,C#)来说,S#->(Sname,Sage),即关系模式S非第二范式。

       非2NF带来的危害:

          1.插入异常:假设一批学生刚入学,还没有进行选课,即C#还没有分配,那么学生的姓名、年龄等属性均无法插入,因为(S#,C#)为主键,C#不可为空。

          2.删除异常:如果某一学生休假,就会退掉所有的课程,那么相应的学生的基本信息也会被一并删除。

          3.更新异常:数据冗余问题以及数据冗余带来的更新不一致性,如果一名学生选了五十门课,那么该表中就会冗余50条学生的基本信息,如果学生的某个属性如地址需要改变,那么需要同时该50条信息,很难保证更改的过程中50条信息会一致地更改。

3.3NF

    在2NF的基础上,无非主属性对候选码的传递函数依赖。

    举例:-non 3NF

       设关系模式EMP(EMP#,SAL_LEVEL,SALARY),EMP#(编号)为主键,EMP#决定SAL_LEVEL,SAL_LEVEL决定SALARY,可知关系模式EMP非第三范式。

       非第三范式带来的危害:

          1.插入异常:例如公司刚招一批新员工,员工的工资等级还没有确定,那么就无法插入(或者说可以插入,但是工资等级和工资两个属性列均为空值,不太符合现实语义)。

          2.删除异常:例如公司内,位于三级工资水平的只有一个人,有一天该员工跳槽,删除该条记录,那么会随之把三级工资的对应关系删除掉。

          3.更新异常:仍是数据冗余和不一致性的问题。

4.BCNF范式

    在3NF的基础上,无主属性对候选码的部分或传递函数依赖。

    这里再强调一下BCNF的判定条件:

       1.函数依赖集F中每一个决定因素均包含码

       2.没有任何属性对码部分函数依赖与传递函数依赖

四、几种范式的关系

发布了31 篇原创文章 · 获赞 7 · 访问量 3487
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章