数据库原理——关系数据理论(一)

article/2025/10/9 16:25:53

关系数据理论

数据依赖包括函数依赖和多值依赖。

5.1 函数依赖

5.1.1 函数依赖的定义

R ( U ) R(U) R(U)是属性集U上的关系模式, X , Y ⊆ U X,Y\subseteq U X,YU X , Y X,Y X,Y是属性), 若对于 ∀ r ( 值 ) ∈ R ( U ) \forall r(值)∈R(U) r()R(U) ∀ t , s ∈ r \forall t,s∈r t,sr元组),如果 t [ X ] = s [ X ] t[X]=s[X] t[X]=s[X](若每个都不相等也满足条件),能推出 t [ Y ] = s [ Y ] t[Y]=s[Y] t[Y]=s[Y],则称“X函数决定Y”,或“Y函数依赖于X”,记作: X → Y X\rightarrow Y XY,称 X X X为决定因素。

∃ t , s ∈ r , t [ X ] = s [ X ] \exists t, s \in r, t[X]=s[X] t,sr,t[X]=s[X],但 t [ Y ] ≠ s [ Y ] t[Y]\neq s[Y] t[Y]=s[Y],则称“X不函数决定Y”或“Y不函数依赖于X”,记作:image-20220421203303321

函数依赖关系可以理解成关系数据库中“”的理论基础;函数依赖与别的数据依赖一样是语义范畴的概念,只能根据语义来确定一个函数依赖。

SDC中的函数依赖: S N O − > D E P T , D E P T − > M N A M E , ( S N O , C N A M E ) − > G R A D E SNO->DEPT,DEPT-> MNAME,(SNO,CNAME)-> GRADE SNO>DEPT,DEPT>MNAME,(SNO,CNAME)>GRADE

5.1.2 函数依赖的分类

(1)平凡的函数依赖与非平凡的函数依赖

  • 如果 X → Y X\rightarrow Y XY,且 Y ⊈ X Y \nsubseteq X YX,则称 X → Y X\rightarrow Y XY为非平凡的函数依赖。
  • 如果 X → Y X\rightarrow Y XY,且 Y ⊆ X Y \subseteq X YX,则称 X → Y X\rightarrow Y XY为平凡的函数依赖。【必然成立

如: S N O → S N O SNO\rightarrow SNO SNOSNO是平凡的函数依赖。

在后面的讨论中,一般函数依赖指非平凡的函数依赖。

(2)完全函数依赖与部分函数依赖

  • 如果 X → Y X\rightarrow Y XY,对于任意 X X X的真子集 X ′ X^{\prime} X,都有image-20220428210147954,则称 Y Y Y X X X完全函数依赖,记作
  • 如果 X → Y X\rightarrow Y XY,存在 X X X的真子集 X ′ X^{\prime} X,使得 X ′ → Y X^{\prime}\rightarrow Y XY ,则称 Y Y Y X X X部分函数依赖,记作 X ⟶ p Y X \stackrel{p}{\longrightarrow} Y XpY

(3)传递函数依赖与直接函数依赖

  • R ( U ) R(U) R(U)中,如果 X → Y ( Y ⊈ X ) \mathrm{X} \rightarrow \mathrm{Y}(\mathrm{Y} \nsubseteq \mathrm{X}) XY(YX),image-20220428211819951, Y → Z \mathrm{Y} \rightarrow \mathrm{Z} YZ,则称Z对X传递函数依赖

5.1.3 函数依赖的逻辑蕴含

关系模式 R R R F F F是其函数依赖, X , Y X,Y X,Y是其属性子集,如果从F的函数依赖能够推出 X → Y X\rightarrow Y XY,则称 F F F逻辑蕴含 X → Y X\rightarrow Y XY

F F F所逻辑蕴含的函数依赖的全体所构成的集合称作 F F F的闭包,记作 F + F^{+} F+

示例:

R ( X , Y ) , F = X → Y R(X, Y), F = {X\rightarrow Y} R(X,Y),F=XY

F + = { X → ∅ , X → X , X → Y , X → X Y , Y → ∅ , Y → Y , X Y → ∅ , X Y → X , X Y → Y , X Y → X Y } F^{+} = \{X\rightarrow \varnothing, X\rightarrow X, X\rightarrow Y,X\rightarrow XY, Y\rightarrow \varnothing, Y\rightarrow Y, XY\rightarrow \varnothing,XY\rightarrow X,XY\rightarrow Y,XY\rightarrow XY\} F+={X,XX,XY,XXY,Y,YY,XY,XYX,XYY,XYXY}

5.1.4 Armstrong公理系统

为了从一组函数依赖求得蕴含的函数依赖,为了确定一个关系模式的码,就需要一套推理规则。下面介绍函数依赖的公理系统——Armstrong公理系统

对于关系模式 R ( U , F ) R(U,F) R(UF),设 F F F U U U上的一组函数依赖,则:

  • 自反律:若 Y ⊆ X ⊆ U Y\subseteq X\subseteq U YXU,则 X → Y X \rightarrow Y XY F F F所蕴含。
  • 增广律:若 X → Y X \rightarrow Y XY F F F所蕴含( X → Y ∈ F + X\rightarrow Y∈F^{+} XYF+), Z ⊆ U Z\subseteq U ZU,则 X Z → Y Z XZ\rightarrow YZ XZYZ F F F所蕴含。【两边加相同的属性】
  • 传递律:若 X → Y X \rightarrow Y XY Y → Z Y \rightarrow Z YZ为F所蕴含( F + F^{+} F+) ,则 X → Z X \rightarrow Z XZ F F F所蕴含。

三个有用的推理规则

  • 合并规则:由 X → Y X \rightarrow Y XY, Y → Z Y \rightarrow Z YZ,有 X → Y Z X \rightarrow YZ XYZ

  • 伪传递规则:由 X → Y X \rightarrow Y XY, W Y → Z WY \rightarrow Z WYZ,有 X W → Z XW \rightarrow Z XWZ。【推导:1式两边都加 W W W

  • 分解规则:由 X → Y X \rightarrow Y XY, Z ⊆ Y Z\subseteq Y ZY,有 X → Z X \rightarrow Z XZ。推导: Z ⊆ Y Z\subseteq Y ZY是平凡函数依赖,则 Y → Z Y\rightarrow Z YZ,然后传递

    [推论] X → Y , X → Z , X → A ⟷ X → Y Z A X\rightarrow Y,X\rightarrow Z,X\rightarrow A \longleftrightarrow X\rightarrow YZA XY,XZ,XAXYZA

5.1.5 由函数依赖定义的码

候选码:设 K K K R < U , F > R< U , F > R<U,F>的属性或属性组,若 K ⟶ f U K \stackrel{f}{\longrightarrow} U KfU(K要完全决定U,即K任意真子集都不能决定U),则称K为R的候选码

主码:若 R ( U , F ) R(U , F) R(U,F)有多个候选码,则可以从中选定一个作为R的主码

主属性:包含在每一个候选码中的属性

非主属性:不包含在任何候选码中的属性

全码:关系模式的码由整个属性组构成

5.2 范式及其规范化

范式是对关系(关系模式 R R R)的不同数据依赖程度的要求。各种不同的范式都是以对关系模式的属性间允许的数据依赖加以限制的形式表示的。

R ( U , F ) R(U,F) R(UF)符合 x x x范式的要求,则称 R R R x x x范式,记作: R ∈ x N F R\in xNF RxNF 例:x好学生,有德、德智、德智体……

通过模式分解将一个低级范式转换为若干个高级范式的过程称作规范化;限制最少,数据依赖条件越少,范围最广。

image-20220428214919770

5.2.1 1NF

属性不可再分,是原子量

定义
分量是否需要再分,与具体应用有关;如果用到值的一部分,则需要进一步分割。

  • 如果只是查询出生日期,则它满足1NF;

  • 如果查询两人生日是否相同,则只比较月、日,需要将生日分解,就不满足1NF。

姓名生日
王军98.7.10
张立99.7.10
李明90.3.28
姓名月日
王军987.10
张立997.10
李明903.28

5.2.2 2NF

R ∈ 1 N F R\in 1NF R1NF,且每个非主属性完全依赖于码,则称 R ∈ 2 N F R\in 2NF R2NF, 即2NF不允许有非主属性对码的部分依赖;若R中有非主属性对码的部分依赖,则 R ∉ 2 N F R\notin 2NF R/2NF

[例1]关系模式 S D C ( S N O , D E P T , M N A M E , C N A M E , G R A D E ) SDC(SNO,DEPT,MNAME,CNAME,GRADE) SDC(SNO,DEPT,MNAME,CNAME,GRADE),判断 S D C ∈ 2 N F SDC\in 2NF SDC2NF

步骤

先根据函数依赖确定候选码,再观察每个非主属性是否完全依赖于码。

因为 D E P T , M N A M E DEPT,MNAME DEPT,MNAME部分依赖于码$(SNO,CNAME) , 所 以 ,所以 SDC\notin 2NF$ 。

若码为一个,一定是完全依赖关系;

消除非主属性对码的部分依赖——模式分解

改造

非主属性有两种,一种完全依赖于码,一种部分依赖于码。

将SDC分解为:

S C ( S N O , C N A M E , G ) ∈ 2 N F SC(SNO , CNAME , G)\in 2NF SC(SNO,CNAME,G)2NF

S D M ( S N O , D E P T , M N A M E ) ∈ 2 N F SDM(SNO , DEPT , MNAME)\in 2NF SDM(SNO,DEPT,MNAME)2NF

解决了部分插入异常和更新异常,删除异常还存在

[例2]关系模式 R ( A , B , C , D ) R(A,B,C,D) R(A,B,C,D),码为 A B AB AB,给出它的一个函数依赖集,使得 R R R属于 1 N F 1NF 1NF而不属于 2 N F 2NF 2NF

F = { ( A , B ) → f C , B → D } F=\{(A, B) \stackrel{f}{\rightarrow} C, \quad B \rightarrow D\} F={(A,B)fC,BD}

5.2.3 3NF

关系模式 R < U , F > R< U , F > R<U,F>中,若不存在这样的码 X X X,属性组 Y Y Y及非主属性Z( Z ⊈ Y Z\nsubseteq Y ZY),使得下式成立:

则称 R ∈ 3 N F R\in 3NF R3NF。即 3 N F 3NF 3NF要求:非主属性既不部分也不传递依赖于码

[例1]判断 S D M ( S N O , D E P T , M N A M E ) ∈ 3 N F SDM (SNO , DEPT , MNAME) \in 3NF SDM(SNO,DEPT,MNAME)3NF是否成立。

因为 S N O → D E P T , D E P T → M N A M E SNO \rightarrow DEPT,DEPT\rightarrow MNAME SNODEPT,DEPTMNAME,所以 S D M ∉ 3 N F SDM\notin 3NF SDM/3NF

模式分解的方法是:消除非主属性对码的传递依赖

改造

S D M ( S N O , D E P T , M N A M E ) SDM(SNO,DEPT,MNAME) SDM(SNO,DEPT,MNAME)分解为:

S D ( S N O , D E P T ) ∈ 3 N F SD (SNO , DEPT) \in 3NF SD(SNO,DEPT)3NF 二元/目关系

D M ( D E P T , M N A M E ) ∈ 3 N F DM(DEPT , MNAME) \in 3NF DM(DEPT,MNAME)3NF

[例2] S C ( S N O , C N A M E , G R A D E ) ∈ 3 N F SC(SNO , CNAME , GRADE) \in 3NF SC(SNO,CNAME,GRADE)3NF不能传递。

全码:所有属性加一起才能构成码,即 U ⟶ f U U \stackrel{f}{\longrightarrow} U UfU,必满足3NF;

任意二元关系模式都属于第三范式。

[例3]关系模式 R ( A , B , C , D ) R(A,B,C,D) R(A,B,C,D),码为 A B AB AB,给出它的一个函数依赖集,使得 R R R属于 2 N F 2NF 2NF而不属于 3 N F 3NF 3NF

F = ( A , B ) → C , C → D F={(A,B) \rightarrow C,C\rightarrow D} F=(A,B)C,CD


http://chatgpt.dhexx.cn/article/pFxlbSbD.shtml

相关文章

关系数据库基础理论

mysql系列之一关系数据库基础理论 正是数据库管理的需要催生了数据库管理系统DBMS&#xff0c;而关系型数据库管理系统为RDBMS 常见的数据模型有三种&#xff1a; - 层次模型 - 网状模型 - 关系模型 一、关系数据库的产生 在DBMS出现之前&#xff0c;人们用文件来管理数据…

关系数据库(数据库原理)

目录 一、关系数据结构 二、关系的完整性 三、关系运算 四、关系的规范化 一、关系数据结构 1、关系的定义和性质 &#xff08;1&#xff09;、 关系的数学定义&#xff1a; 域&#xff1a; 一组有相同数据类型的值得集合 笛卡尔积&#xff1a; 设任意的N个域D1,D2,…,Dn。…

数据库系统-关系数据理论

数据库系统-关系数据理论 关系数据库规范化理论 关系数据库规范化是为了告诉你如何才能设计出合适的库和表。 关系模式由五部分组成&#xff0c;即它是一个五元组 ​ R(U,D,DOM,F) R: 关系名 U: 组成该关系的属性名集合 D: 属性组U中属性所来自的域 DOM: 属性向域的映像…

关系数据理论

关系数据理论 本篇文章记录了第十五次作业 关系数据理论指的是关系数据库的规范化理论。这一理论是用来规范数据库模式的。落到实践层面来说&#xff0c;就是对数据库里面的这些表应该怎么建才好的一种理论。比如在之前遇到的的学生-选课-课程表中&#xff0c;我们有很多属性&…

关系数据库设计理论

一、关系数据库模型 关系模型是一种基于表的数据模型&#xff0c;以下为关系学生信息&#xff0c;该表有很多不足之处&#xff0c;本文研究内容就是如何改进它&#xff1a; 下面是一些重要术语&#xff1a; 1.属性&#xff08;attribute&#xff09;&#xff1a;列的名字&…

数据库导论 关系数据库理论

1. 数据库理论 数据库是 一系列有价值的信息组成的结构化的集合 (A structured collection of meaningful data). 我们称任何有价值的信息为 数据, (Data) 用于构建和维护数据库的软件为 数据库管理系统 (DBMS, Database Management System), 而 数据库管理系统 和 数据 共同…

数据库设计——关系数据理论(超详细)

&#xff1f;问题——什么是一个好的数据库逻辑设计&#xff1f; ●关系型数据库逻辑设计&#xff1a; ➠针对一个具体问题应如何构造一个适合于它的数据模式&#xff0c;即应构造几个关系&#xff0c;每个关系由哪些属性组成等 eg&#xff1a; &#xff1f;这样的设计是一个…

关系数据库理论

关系数据库理论 关系模式的组成 一个关系模式应当是一个五元组R(U,D,DOM,F) 这里R是符号化的元组语义 U为一组属性D为属性组U中的属性所来自的域DOM为属性到域的映射F为属性组U上一组数据依赖&#xff08;是一组数据依赖的集合&#xff09; 由于D,DOM与模式涉及关系不大&a…

【数据库】关系数据理论

问题的提出 一、概念回顾 关系&#xff1a;描述实体、属性、实体间的联系。 从形式上看&#xff0c;它是一张二维表&#xff0c;是所涉及属性的笛卡尔积的一个子集。 关系模式&#xff1a;用来定义关系。 关系数据库&#xff1a;基于关系模型的数据库&#xff0c;利用关系来描…

数据库原理(2)关系型数据库理论

二、关系型数据库理论 2.1 关系型数据库中基本概念 关系&#xff08;Relation&#xff09; 一个关系就是一张二维表&#xff0c;每个关系都有一个关系名元组 二维表中的行称为元组属性 二维表中的列称为属性关系模式 关系模式是对关系的描述。一般格式为R(D1,D2,D3..) R关系名…

锂离子电池的国际标准和国家标准(含安全方面IEC62133等,IEC61060电性能和UN38.3 GB4943运输存储标准)

做锂电池测试的相关标准 锂离子电池相关标准&#xff1a; 国家标准公开系统&#xff1a;国家标准全文公开 国家标准|GB 31241-2022下载和预览 GB31241-2022《便携式电子产品锂离子电池和电池组 安全技术规范》与2014变化内容 GB31241-2022国家强制标准&#xff0c;2024年1月1…

IEC 60664-1-2020【现行】低压供电系统内设备的绝缘配合第1部分:原则、要求和试验

IEC 60664-1-2020【现行】低压供电系统内设备的绝缘配合第1部分:原则、要求和试验 IEC60664-1-2020【现行】低压供电系统内设备的绝缘配合第1部分:原则、要求和试验-咨询文档类资源-CSDN下载IEC60664-1-2020【现行】低压供电系统内设备的绝缘配合第1部分:原则、要求和试验&…

IEC60958/61937协议

目录 第零节 本文内容 第一节 IEC60958/61937协议概述 第二节 IEC60958/61937硬件接口 第三节 IEC60958数据格式 第四节 IEC61937数据格式 第零节 本文内容 IEC60958/61937协议是我们音频开发中常见的一种协议&#xff0c;本文就叙述一下该协议的架构&#…

c 17 语言标准下载,C++ 17 标准手册(含C++ 17 STL Cookbook) 官方pdf原版

这里提供C 17 标准手册&#xff1a;Working Draft, Standard for Programming Language C 和C 17 STL Cookbook下载&#xff0c;包含C17 标准 ISOIEC 14882 2017 官方pdf文档&#xff0c;需要的朋友可下载试试&#xff01; C17 是继 C14 之后&#xff0c;C 编程语言 ISO/IEC 标…

漫谈工业软件(2)-IEC61499标准

IEC 61499是用于分布式工业过程测量与控制系统(IPMCSs)功能块的标准。该标准的名称表明了两个重要的概念 -分布式工业过程测量与控制系统 (IPMCSs)表明该标准针对的是工业分布式系统-由多台设备通过网络构成的系统。相比之下&#xff0c;IEC61131 PLC 标准针对的是单台设备的…

行业认证标准:IEC 62304-医疗设备软件安全分类标准

什么是IEC 62304? IEC 62304标准在医疗设备行业中使用,它是一种软件安全分类,它为软件生命周期过程提供了一个框架,其中包含为安全设计和维护医疗设备软件所必需的活动和任务。美国FDA接受IEC 62304合规性作为证明医疗设备软件已根据要求的法规/标准进行设计的证据,因为它…

c语言c11标准 下载,【整理】C语言的各种版本:C89,AMD1,C99,C11

【背景】 之前就知道了有个C90和C99。 后来又在&#xff1a; 期间知道有C11。 现在去整理一下&#xff0c;关于C语言的版本方面的更详细的内容。 参考内容&#xff1a; C语言版本历史 C语言主要有三个版本&#xff1a; ANSI CC89C90 ANSI C standardX3.159-1989 1989年批准通过…

iec611313标准下载_IEC 60249-1-1982(R1993)

基本信息 标准号&#xff1a;IEC 60249-1-1982(R1993) 标准名称&#xff1a;Base Materials For Printed Circuits. Part 1: Test Methods 外文名&#xff1a; Base Materials For Printed Circuits. Part 1: Test Methods 标准状态&#xff1a; 废止 被以下替代标准&#xff1…

iec611313标准下载_IEC 61730-1-2016

基本信息 标准号&#xff1a;IEC 61730-1-2016 标准名称&#xff1a;Photovoltaic (Pv) Module Safety Qualification – Part 1: Requirements For Construction 外文名&#xff1a; Photovoltaic (Pv) Module Safety Qualification – Part 1: Requirements For Construction…

iec611313标准下载_IEC 62108-2016

基本信息 标准号&#xff1a;IEC 62108-2016 标准名称&#xff1a;Concentrator Photovoltaic (Cpv) Modules And Assemblies – Design Qualification And Type Approval 外文名&#xff1a; Concentrator Photovoltaic (Cpv) Modules And Assemblies – Design Qualification…