SQL 数据库三范式

    数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入(insert)、删除(delete)和更新(update)操作异常。反之则是乱七八糟,不仅给数据库的编程人员制造麻烦,而且面目可憎,可能存储了大量不需要的冗余信息。

    关系模式R<U,F>---U为组成关系的属性集合,F为定义在属性上一组函数依赖集。

    基于函数依赖的范式:

 

            第一范式(1NF):如果关系模式R<U,F>中的每一个属性都是不可再分的,那么该关系模式属于第一范式。

            

            第二范式(2NF):对于关系模式R<U,F>,若R∈1NF,且每一个非主属性都完全依赖于码,则R是第二范式。

例:        

    假定选课关系表为SelectCourse(学号, 姓名, 年龄, 课程名称, 成绩, 学分),关键字为组合关键字(学号, 课程名称),因为存在如下决定关系:

 

  (学号, 课程名称) (姓名, 年龄, 成绩, 学分)

 

  这个数据库表不满足第二范式,因为存在如下决定关系:

 

  (课程名称) (学分)

 

  (学号) (姓名, 年龄)

 

  即存在组合关键字中的字段决定非关键字的情况。

    存在的问题:

    (1) 数据冗余(2) 更新异常(3) 插入异常(4)删除异常

    

 

    

            第三范式(3NF):对于关系模式R<U,F>,若R∈2NF,且每个主属性都不传递依赖于码,则R是第三范式。

            所谓传递函数依赖,指的是如果存在"A B C"的决定关系,则C传递函数依赖于A

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值