数据库系统-规范化理论

在非规范化的关系模式中,可能存在的问题:数据冗余、更新异常(修改操作一致性问题)、插入异常、删除异常

函数依赖

设R(U,F)是属性U上的一个关系模式,X和Y是U的子集,r为R的任一关系,如果对于r中的任意两个元组u,v,只要有u【X】 = v【X】,就有u【Y】 = v【Y】,则称X函数决定Y,或称Y函数依赖于X,记为X->Y

部分函数依赖:

候选键是多个属性集合,某一个属性只依赖于候选键中的某一个主属性,则称此为部分函数依赖

传递函数依赖:

X->Y,Y->Z,X与Z属于传递函数依赖

如何求候选键

将关系模型的函数依赖关系用“有向图”的方式表示

找入度为0的属性集合,尝试以这个集合为起点遍历全图,若能遍历所有节点,则该属性为关系模型的候选键

若都不能遍历,需要尝试将一些中间结点(既有入度,也有出度的结点)并入入度为0的属性集中,直至集合能遍历所有结点

Armstrong公理

对于任意关系模式R(U,F)有以下推理规则:

  1. 自反率:若Y属于X属于U,则X->Y成立,一个大板块能唯一确认他的子版块
  2. 增广率:若Z属于U且X->Y,则XZ->YZ成立
  3. 传递率:若Z->Y且Y->Z,则X->Z成立

推论:

  1. 合并规则:若X->Y,X->Z,则X->YZ(2,3)
  2. 伪传递规则:若X->Y,WY->Z,则XW->Z (2,3) 
  3. 分解规则:若X->Y且Z属于Y,有X->Z(1,3)

能够被推导出来的关系,不需要写入关系模型。

范式判断

第一范式(1NF):属性值都是不可分的原子值

简单属性(不可再分)和复合属性(可再分)、单值属性和多值属性、NULL属性、派生属性(可计算出的属性)

修改为第一范式:将复合属性拆分为简单属性

第二范式(2NF):消除非主属性对候选键的部分依赖

当且仅当满足第一范式,且每一个非主属性完全依赖候选键(不存在部分依赖)

修改为第二范式:将部分依赖的属性另起一表,使所有非主属性都完全依赖候选键

第三范式(3NF):消除非主属性对候选键的传递依赖

当且仅当满足第二范式,且没有非主属性传递依赖于其主属性

修改为第三范式:将传递依赖部分另起一表

BC范式 (BCNF):消除主属性对候选键的部分和传递依赖

当且仅当满足第三范式,属性间的所有依赖的决定因素必定包含某个候选键

模式分解

保持函数依赖:分解后是否包含所有分解前存在的函数依赖

无损联接分解:将一个模式分解成若干个关系模式后,通过自然联接和投影等运算仍能还原到原来的关系模式。 

如何判断是否为无损分解:

表格法:

①是否有同名shuxinglie

②以同名属性为左侧的函数依赖,即可还原函数依赖右侧的被决定属性

图片来自于网络

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值