mysql数据库依赖关系_SQL数据库中的函数依赖关系

SQL数据库中有两个功能依赖项.

a)部分功能依赖性:非键列依赖于复合主键中的某些列,但不是所有列.

b)传递函数依赖:任何非键列都依赖于其他非键列.

对于一个好的SQL数据库.

规则1:列仅包含原子值

规则2:没有重复的数据组

规则3:没有部分依赖关系

规则4:没有传递依赖

我已经理解了第1条和第2条规则的要求,为什么我们需要第3条和第4条规则,而不是说no列不应该依赖于其他列.为什么有两个单独的规则(3和4)?

来源:Head First SQL

提前致谢!

解决方法:

好问题.纯粹出于历史和教学原因,这两者经常是分开的.

第二范式(2NF)涉及仅消除部分密钥依赖性.单独的2NF通常不是特别重要,因为第三范式,Boyce Codd Normal Form和更高的正规形式也消除了那些相同的部分密钥依赖性,并且那些NF(> 2NF)通常是数据库设计中的期望目标.然而,通常的做法是使用分解过程来教导归一化.通过分解方法,通常首先考虑部分密钥依赖性.实际上,大多数通常会立即考虑所有依赖关系的实践者很少这样做.

高于2NF的Normal Forms的定义不一定提及部分密钥依赖性作为特殊情况. Boyce Codd Normal Form可以简单地概括为每个非平凡的函数行列式都是超级密钥 – 换句话说,除了密钥之外的任何东西都没有非平凡的FD(任何类型).

标签:mysql,database,sql,database-design

来源: https://codeday.me/bug/20190526/1157415.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值