【第四周】学习心得+思维导图

学习心得
 

一、第一范式(1NF

  要求:

·        每一个属性都不能再分割,都是原子项。

    满足第一范式的数据表有什么好处呢?

1NF保证了数据库的每一列都是不同的。每一列的数据彼此没有任何交集。

这样做:

 首先减少了数据的冗余,节省存储空间。如果不满足第一范式,一些数据项有可能包含相同的子项,造成存储空间的浪费。

 其次,每一列没有重复的数据意味着不需要考虑数据更新的同步问题。不用担心在一列中更新了数据,还要在另一列做相应修改。

 另外,每一列的数据不可再分,在某些情况下减少了数据访问的层数,提高数据访问速度。

 

二、第二范式(2NF

  要求:

·        满足第一范式

·        非主键属性均完全依赖于主键

   非主键属性和主键可以有什么关系?1、完全依赖。2、部分依赖。3、不依赖(没关系)。

        2NF消除了属性对主键的部分函数依赖。

2NF要求非主键属性完全依赖于主键,就是在消除非主键属性对主键的部分函数依赖。既然是部分函数依赖,暗含着说主键是一个复合键(由多个属性组成的键)。

 

  符合2NF能给我们带来什么好处呢?

首先,2NF可以在一定程度上消除冗余,节省存储空间。

其次,2NF简化了表的逻辑关系,使得表的结构更加清晰。

 

三、第三范式(3NF

  要求:

·        满足第一、二范式

·        所有非主键属性之间没有函数依赖关系

3NF2NF的基础上,进一步消除非主键属性之间的函数依赖关系。实质上,也是消除非主键属性中的传递依赖。

3NF的优点很明显,可以减少数据冗余,节省存储空间。既然存在函数依赖,某些数据项就能够通过其他数据项计算得出,很可能存在数据冗余。

  

四、BC范式(boyce-codd范式,BCNF

  要求:

·        满足1NF2NF3NF 

·        所有属性(包含主键属性和非键主属性)都不传递依赖于任何候选键

 BC范式的好处是进一步消除了表中的依赖关系,减少了冗余。例如在上例中,如果我们采用未修改的版本,如果想要存储一个10个玩家(不含房主)的房间,就需要10条这样的记录才可以。

  

五、第四范式

  要求:

·        满足1NF2NF3NF

·        表中不能包含一个实体的两个或多个多值属性

 

所谓多值属性,指的是某个属性可以包含多个值。这个属性的(多个)取值,被另一个属性决定。也就是说,一旦确定了某个属性,另一个属性的多个取值就一起确定了。

 

第四范式在第三范式的基础上,消除多值依赖

4NF的使用可以降低数据冗余,并且减少数据处理复杂度

  

六、第五范式

要求:

·        满足1NF2NF3NF4NF

·        如果将表中的多元关系分解一个一个的二元关系,一定会丢失信息

  第五范式在4NF的基础上,进一步消除依赖。第五范式的要求明,如果不用这个表就不能正确说明数据之间的联系。所以符合5NF的表已经没有任何多余依赖的存在了。所以第五范式是一个比较理想的范式。

 

 

 

思维导图


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值