数据库笔记——范式理论

这篇博客详细介绍了数据库设计中的三个基本范式:第一范式、第二范式和第三范式。通过实例解析了如何判断和转换表格以满足各范式的要求,强调了消除数据冗余和减少依赖的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一范式:不包含重复组的关系

如下表因最后一行,有多个值不满足第一范式

         

转换后即满足第一范式,消除非基本数据项

       

再如下表因“高级职称人数”是由两个基本数据项组成的一个复合数据项,所以不满足第一范式

      

转换为第一范式如下表:

     

 第二范式:属性完全依赖主键  如果一个数据表已经满足第一范式,而且该数据表中的任何一个非主键字段的数值都依赖于该数据表的主键字段,那么该数据表满足第二范式。(当存在多个主键的时候,才会出现不满足第二范式的情况)

  如下表  首先它满足第一范式,“名称”、“负责人”、“营销员”、“开始日期”、“结束日期”都依赖于“项目编号”,但“负责人部门”依赖于“负责人”,所以不满足第二范式,相当于该表有两个主键

 

  转换为第二范式如下表,消除部分依赖

 再举一个简单的小例子:

  下表满足第一范式,但“借阅时间”和“归还时间”不依赖于“身份证号”主键,所以不满足第二范式

 

 转换为第二范式为:

 

  

 第三范式:属性不能传递依赖于主键   如果一个数据表已经满足第二范式,而且该数据表中的任何两个非主键的数据值之间不存在函数依赖关系,那么该数据表满足第三范式。

 如下表满足第二范式,但“奖金”与“工资”之间存在函数依赖关系,所以不满足第三范式

 转换为第三范式要把“奖金”这一项去掉,消除传递依赖。

 

 

 

 

 

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值