数据库原理2

Lesson 6 规范化理论

关系模式设计中存在的问题

1.关系数据库逻辑设计:针对具体问题,如何构造一个适合于它的数据模式
工具:关系数据库的规范化理论。规范化理论是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。

2.三元组:R<U,F>
当且仅当U上的一个关系r满足F时,r称为关系模式R<U,F>的一个关系
作为二维表,关系要符合一个最基本的条件:每个分量必须是不可分开的数据项。满足了这个条件的关系模式就属于第一范式(1NF)

3.数据依赖 是一个关系内部属性与属性之间的一种约束关系,通过属性间值的相等与否体现出来的数据间相互联系。
分为函数依赖多值依赖,其他。

函数依赖

1.函数依赖:
设R(U)是一个属性集U上的关系模式,X和Y是U的子集。
若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等, 而在Y上的属性值不等, 则称 “X函数确定Y” 或“Y函数依赖于X”,记作X→Y。
若X→Y,并且Y→X, 则记为X←→Y。若Y不函数依赖于X, 则记为X→\Y。
函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件

2.平凡函数依赖与非平凡函数依赖
在关系模式R(U)中,对于U的子集X和Y,
如果X→Y,但Y不是X真子集,则称X→Y是非平凡的函数依赖
若X→Y,但Y是X真子集,则称X→Y是平凡的函数依赖
若X→Y,则X称为这个函数依赖的决定属性组,也称为决定因素
在任一关系模式上平凡函数依赖都是必然成立的,它不反映新的语义,因此若不特别声明, 我们总是讨论非平凡函数依赖。

3.完全函数依赖与部分函数依赖
在关系模式R(U)中,如果X→Y,并且对于X的任何一个真子集X′,都有
X′ →\ Y, 则称Y完全函数依赖于X,记作X →F Y
X→Y,但Y不完全函数依赖于X,则称Y部分函数依赖于X,记作X →P Y。

4.传递函数依赖的概念
在R(U)中,如果X→Y,(Y 不是X真子集),Y→\X, Y→Z, 则称Z对X传递函数依赖。记为:X →传递 Z
注: 如果Y→X, 即X←→Y,则Z直接依赖于X

关系模式的范式

1.范式是符合某一种级别的关系模式的集合。
关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式。
范式的种类: 第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、BC范式(BCNF)、第四范式(4NF)、第五范式(5NF)
某一关系模式R为第n范式,可简记为R∈nNF。
在这里插入图片描述
一个低一级范式的关系模式,通过模式分解(schema decomposition)可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化 (normalization)

2.1NF
如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF
第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库。
但是满足第一范式的关系模式并不一定是一个好的关系模式。

3.2NF
若关系模式R∈1NF,并且每一个非主属性都完全函数依赖于任何一个候选码,则R∈2NF
一个关系模式不属于2NF,会产生:插入异常、删除异常、修改复杂
解决方法:
用投影分解把关系模式分解成两个关系模式

3NF——只消除非主属性对主属性的传递依赖;
BCNF——消除所有属性对主属性的传递依赖。
在这里插入图片描述

关系模式的分解

合并规则:由X→Y,X→Z,有X→YZ。
伪传递规则:由X→Y,WY→Z,有XW→Z。
分解规则:由X→Y 及 Z属于Y,有X→Z。

求闭包的算法
算法6.1求属性集X(X 属于U)关于U上的函数依赖集F 的闭包XF+
输入:X,F 输出:XF+
步骤:
(1)令X(0)=X,i=0
(2)求B,这里B = { A |( V)(  W)(V→WF ∧ V  X(i)∧ A W)};
(3)X(i+1)=B∪X(i)
(4)判断X(i+1)= X (i)吗?
(5)若相等或X(i)=U , 则Xÿ

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值