当前位置: 首页 > news >正文

系统架构设计师—数据库基础篇—数据库规范化

文章目录

  • 函数依赖
    • 示例1
    • 非平凡函数依赖
    • 平凡的函数依赖
  • 名词
  • 函数依赖关系
  • Armstrong公理
    • 闭包
  • 规范化
    • 第一范式(1NF)
    • 第二范式(2NF)
    • 第三范式(3NF)
    • BC范式(BCNF)
    • 第四范式(4NF)

函数依赖

设R(U)是在属性U上的关系模式,X、Y是U的子集,若对于R(U)的任意一个可能得关系r,r中的任意两个元组在X上的属性值相等,那么在Y上的属性值也相等,则称“X函数确定Y”或“Y函数依赖于X”,记作X→Y。
X称为这个函数依赖的决定属性组,也称为决定因素。

示例1

关系式:
S(Sno, Sname, Ssex, Sage, Sdept)
F={Sno→Sname, Sno→Ssex, Sno→Sage, Sno→Sdept}
若Y不函数依赖于X,则记为

X \nrightarrow Y

例如:

S_{sex}\nrightarrow S_{age} 

非平凡函数依赖

X \rightarrow Y, Y\nsubseteq X

称,X→Y是非平凡的函数依赖。
如,AB→C。

平凡的函数依赖

X \rightarrow Y, Y \subseteq X

称,X→Y是平凡的函数依赖
如,AB→B。

名词

例如有两个关系模式:
学生(学号、姓名、性别身份证号、教师编号)
教师(教师编号、姓名、工资)

超键,在关系中能唯一标识元组的属性及称为关系模式的超键。

  • 一个属性可以作为一个超键,多个属性组合在一起也可以作为一个超键。
  • 例如学生关系模式中的(学号)、(身份证号)、(学号、姓名)、(身份证号、性别)。

候选键,不含有多余属性的超键称为候选键,是超键的最小子集。

  • 例如(学号)、(身份证号)、(教师编号)。

主键,用户挑选出来做元组标识的一个候选键称为主键。

  • 例如通常选择(学号)作为主键。

外键,如果关系模式R中的某些属性集不是R的主键,而是关系模式S的主键,则这个属性集对模式R而言是外键。

  • 例如(教师编号)是学生关系模式的外键。

主属性,包含在任何一个候选键中的属性称为主属性,否则称为非主属性。

函数依赖关系

建立在非平凡函数依赖的基础上。
例如:关系式Student(Sno-学号, Sdept-系别, Mname-系主任姓名, Cno-课程号, Grade-成绩)

名称定义
完全函数依赖(Sno, Cno)→Grade是完全函数依赖
部分函数依赖(Sno, Cno)→Sdept是部分函数依赖
传递依赖Sno→Sdept, Sdept→Mname,则称Mname传递依赖于Sno

Armstrong公理

从已知的一些函数依赖,可以推导出另外一些函数依赖,这就需要一系列推理规则,这些规则常被称作“Armstrong公理”。

设关系式R(U, F),U是关系模式R的属性集,F是U上一组函数依赖,则有以下三条推理规则:

  1. A1自反律:若Y⊆X⊆U,则X→Y为F所蕴含。
  2. A2增广律:若X→Y为F所蕴含,且Z⊆U,则XZ→YZ为F所蕴含。
  3. A3传递律:若X→Y,Y→Z为F所蕴含,则X→Z为F所蕴含。

根据上面三条推理规则,又可推出下面三条推理规则。

  1. 合并规则:若X→Y,X→Z,则X→YZ为F所蕴含。
  2. 伪传递规则:若X→Y,WY→Z,则XW→Z为F所蕴含。
  3. 分解规则:若X→Y,Z⊆Y,则X→Z为F所蕴含。

闭包

针对某几个(A)属性,基于已知依赖关系,通过Armstrong公理,能够推导出全部属性(U)时,则称属性闭包成立。

(A)^+_F=U

规范化

范式:符合某一种级别的关系模式的集合。
关系数据库设计的方法之一就是设计满足适当范式的模式,通常可以通过判断分解后的模式达到几范式来评价模式的规范化程度。

第一范式(1NF)

若关系模式R的每一个分量是不可再分的数据项,则关系模式R属于第一范式。

第二范式(2NF)

若关系模式R∈1NF,且每一个非主属性完全依赖主键时,则关系式R是2NF。

优先确认是否存在联合主键
如存在,则考虑是否存在部分依赖主键的情况。

第三范式(3NF)

当2NF消除了非主属性对主键的传递函数依赖,则称为第三范式。

BC范式(BCNF)

R∈3NF,且消除了主属性对码的部分和传递函数依赖。

多个包含多个元素的候选键之间,可能存在主属性对码的部分或传递函数依赖。

第四范式(4NF)

关系模式R∈1NF,若对于R的每个非平凡多值依赖X→→Y且Y非⊆X时,X必含有码,则关系模式R(U, F)∈4NF。
4NF是限制关系模式的属性间不允许有非平凡且非函数依赖的多值依赖。

注意,如果只考虑函数依赖,关系模式最高的的规范化程度是BCNF;
如果考虑多值依赖,关系模式最高规范化程度是4NF。

相关文章:

  • RxJava 用法封装举例
  • 初中文凭怎么成人大专-一种简单省心的方式
  • Gauss数据库omm用户无法连接处理
  • 写作思维魔方
  • 下载PyCharm 2024.3.4 (Community Edition)来开发测试python
  • 多线程或多进程或多协程部署flask服务
  • 网络安全等级保护2.0 vs GDPR vs NIST 2.0:全方位对比解析
  • linux0.11源码分析第四弹——操作系统的框架代码
  • 类和对象—多态—案例2—制作饮品
  • 笔记:如何使用XAML Styler以及在不同的开发环境中使用一致
  • 第7章 wireshark(网络安全防御实战--蓝军武器库)
  • 阿里云 DataWorks面试题集锦及参考答案
  • Visual Studio 2022新建c语言项目的详细步骤
  • 文献学习: 单细胞+肿瘤转移研究的发文思路解析:如何构建核心基因特征,揭示关键调控网络?
  • VB6 调用 JS 函数时数据传输json格式或a=1b=s2字符串
  • 十倍烈火刀刀爆?伪随机分布(PRD)算法详解与C++实现
  • 洛谷P1091
  • 记录排查服务器CPU负载过高
  • 【自学笔记】OpenStack基础知识点总览-持续更新
  • nvidia驱动升级-ubuntu 1804
  • 企业网站美化/4p营销理论
  • wordpress调用搜索功能/seo课程在哪培训好
  • 网站制作培训一般要多少钱/营销型网站策划书
  • 太原网站科技公司/网站设计制作哪家好
  • 政府网站制作费用/公司宣传软文
  • 没有域名可以做网站/优秀网站设计网站