DBMS_design theory(数据库设计理论)

超键(super key):在关系中,能唯一标识元组的属性或属性集。
候选键(candidate key):不含有多余属性的超键。
主键(primary key):若一个关系中有多个候选键,则选其中的一个为关系的主键。
#####(为什么有的时候主键可以是集合形势的?)

主属性(Primary Attribute):包含在任何一个候选键中的属性。
非主属性(Nonprimary Attribute)/非键属性(Non-key Attribute):不包含在任何键中的属性。

避免异常:anomalies。
1 重复redundant
2 更新异常
3 删除异常
4 插入异常

方法依赖:A–>B意味着当A中属性相同时,B中的相对的属性也相同
在这里插入图片描述

1分离律
在这里插入图片描述在这里插入图片描述

2结合律
上述反过来即可

3自身推导
在这里插入图片描述
4连续推导
在这里插入图片描述
在这里插入图片描述

闭包:
相互推导然后叠加到最大的集合
A–>B C–>D
可以得到
A,C 的闭包为{A,B,C,D},如果有多余的条件再加入推导
在这里插入图片描述

好的关系依赖为 类似于主键
可以由一个属性决定其他所有属性(坏的无法决定每个属性)
因为它是主键 所以它有好的关系依赖(主键搭配一个其余属性推导依然是好的关系依赖)

non-trivial FD:去除对于自身的依赖

码:
设 K 为某表中的一个属性或属性组,若除 K 之外的所有属性都完全函数依赖于 K(这个“完全”不要漏了),那么我们称 K 为候选码,简称为码。在实际中我们通常可以理解为:假如当 K 确定的情况下,该表除 K 之外的所有属性的值也就随之确定,那么 K 就是码。一张表中可以有超过一个码。(实际应用中为了方便,通常选择其中的一个码作为主码)

非主属性
不包含在任何一个码中的属性为非主属性,反之则为主属性。

完全函数依赖
在一张表中,若 X → Y,且对于 X 的任何一个真子集(假如属性组 X 包含超过一个属性的话),X ’ → Y 不成立,那么我们称 Y 对于 X 完全函数依赖

部分函数依赖
假如 Y 函数依赖于 X,但同时 Y 并不完全函数依赖于 X,那么我们就称 Y 部分函数依赖于 X。

1NF的定义为:符合1NF的关系中的每个属性都不可再分
2NF在1NF的基础之上,消除了非主属性对于码的部分函数依赖(是否存在非主属性对于码的部分函数依赖):
第一步:找出数据表中所有的码。
第二步:根据第一步所得到的码,找出所有的主属性。
第三步:数据表中,除去所有的主属性,剩下的就都是非主属性了。
第四步:查看是否存在非主属性对码的部分函数依赖。

第三范式(3NF) 3NF在2NF的基础之上,消除了非主属性对于码的传递函数依赖
符合3NF要求的数据库设计,基本上解决了数据冗余过大,插入异常,修改异常,删除异常的问题。

BCNF是在 3NF 的基础上消除主属性对于码的部分与传递函数依赖。(没有坏的FD)

BCNF分解一定是无损的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值