范式

1 第一范式:无重复的列。(只要是关系型数据库就满足第一范式)

2 第二范式:实体属性完全依赖于主关键字。实体属性不能存在仅依赖主关键字的一部分属性;如果存在,则需要将这个属性和主关键字的这一部分分离出来形成新的实体,同原实体形成1对多的关系。  

   举例: 学生选课关系表。 (学号, 课程名称) → (姓名, 年龄, 成绩, 学分)                                                                                 

    这个数据库表不满足第二范式,因为存在如下决定关系:
       (课程名称) → (学分)
       (学号) → (姓名, 年龄)

    把选课关系表SelectCourse改为如下三个表:
       学生:Student(学号, 姓名, 年龄);
       课程:Course(课程名称, 学分);               //新实体。
       选课关系:SelectCourse(学号, 课程名称, 成绩)。      //同原实体形成1对多的关系。

   这样的数据库表是符合第二范式的,消除了数据冗余、更新异常、插入异常和删除异常。
 
3 第三范式: 满足第二范式并且不存在非关键字段对任一候选关键字段的传递依赖则符合第三范式。

  举例: 学生关系表为Student(学号, 姓名, 年龄, 所在学院, 学院地点, 学院电话),关键字为单一关键字"学号:
             (学号) → (姓名, 年龄, 所在学院, 学院地点, 学院电话)
       这个数据库是符合2NF的,但是不符合3NF,因为存在如下决定关系:
            (学号) → (所在学院) → (学院地点, 学院电话)
       把学生关系表分为如下两个表:
                  学生:(学号, 姓名, 年龄, 所在学院);
                  学院:(学院, 地点, 电话)。
              这样的数据库表是符合第三范式的,消除了数据冗余、更新异常、插入异常和删除异常。
  文章引用 :http://www.uml.org.cn/sjjm/200601161.htm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值