关系数据理论

关系数据库逻辑设计
  • 针对具体问题,如何构造一个适合于它的数据模式
  • 数据库逻辑设计的工具──关系数据库的规范化理论
数据依赖
  • 是一个关系内部属性与属性之间的一种约束关系。
  • 是现实世界属性间相互联系的抽象
  • 是数据内在的性质
  • 是语义的体现
“好”的模式:

不会发生插入异常、删除异常、更新异常,数据冗余应尽可能少。
原因:由存在于模式中的某些数据依赖引起的
解决方法:通过分解关系模式来消除其中不合适的数据依赖。

规范化

函数依赖
定义:设R(U)是一个属性集U上的关系模式,X和Y是U的子集。
若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等, 而在Y上的属性值不等, 则称 “X函数确定Y” 或 “Y函数依赖于X”,记作X→Y。
X称为这个函数依赖的决定属性集(Determinant)。
Y=f(x)

平凡函数依赖与非平凡函数依赖
在这里插入图片描述 对于任一关系模式,平凡函数依赖都是必然成立的,它不反映新的语义,因此若不特别声明, 我们总是讨论非平凡函数依赖。

完全函数依赖与部分函数依赖
在这里插入图片描述
在这里插入图片描述
传递函数依赖
在这里插入图片描述

在这里插入图片描述

主属性与非主属性:

  • 包含在任何一个候选码中的属性 ,称为主属性(Prime attribute)
  • 不包含在任何码中的属性称为非主属性(Nonprime attribute)或非码属性(Non-key attribute)

全码:

  • 整个属性组是码,称为全码(All-key)

外部码:
关系模式 R 中属性或属性组X 并非 R的码,但 X 是另一个关系模式的码,则称 X 是R 的外部码(Foreign key)也称外码。
如在SC(Sno,Cno,Grade)中,Sno不是码,但Sno是关系模式S(Sno,Sdept,Sage)的码,则Sno是关系模式SC的外部码

范式

范式是符合某一种级别的关系模式的集合。
关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式。
范式的种类:
在这里插入图片描述
某一关系模式R为第n范式,可简记为R∈nNF。
一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化

  • 1NF

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

  • 2NF

    定义6.6 若关系模式R∈1NF,并且每一个非主属性都完全函数依赖于R的码,则R∈2NF。
    消除非主属性对码的部分函数依赖。

  • 3NF
    在这里插入图片描述
    每一个非主属性既不部分依赖于码也不传递依赖于码。
    如果R∈3NF,且R只有一个候选码

  • BC范式(BCNF)
    在这里插入图片描述

多值依赖
在这里插入图片描述
多值依赖的3个要点:

  • 1)Z = U-X-Y
  • 2)Y的值决定于X上的值
  • 3)Y的值与Z值无关

平凡的多值依赖:
在这里插入图片描述

多值依赖的性质:

  • (1)多值依赖具有对称性
    若X→→Y,则X→→Z,其中Z=U-X-Y
    多值依赖的对称性可以用完全二分图直观地表示出来。

  • (2)多值依赖具有传递性
    若X→→Y,Y→→Z, 则X→→Z -Y

  • ( 3)函数依赖是多值依赖的特殊情况。
    若X→Y,则X→→Y。

4NF
在这里插入图片描述在这里插入图片描述

注意:

  1. 一个全是主属性的关系模式一定可以达到3NF。
  2. 一个全码的关系模式一定可以达到BCNF。
  3. 一个二目关系模式一定可以达到4NF。
  4. 函数依赖和多值依赖是两种重要的数据依赖。在函数依赖的范畴内, BCNF是最高级别的范式。如果考虑多值依赖, 则4NF是最高的范式级别。
  5. 除FD和MVD外,还有其他数据依赖,如连接依赖,在连接依赖的概念上还可以定义5NF的范式级别。
    在这里插入图片描述

关系模式的规范化过程是通过对关系模式的投影分解来实现的, 把低一级的关系模式分解为若干高一级的关系模式, 分解不是唯一的。
并不是规范化程度越高越好:

  • 规范化程度高, 可解决更新异常和冗余大的问题, 但会失去检索查询方便快速的优点, 增加(自然)连接运算的开销。
  • 必须结合应用环境和具体情况合理选择DB模式, 经常用于检索查询的系统, 宁肯规范化程度低些。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值