6.关系数据理论

2023-11-11 16:10
文章标签 理论 关系数据

本文主要是介绍6.关系数据理论,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

6.关系数据理论

6.1问题的提出

关系数据库逻辑设计

a.针对具体问题,如何构造一个适合的数据模式

b.数据库逻辑设计的工具—关系数据库的规范化理论

概念回顾:

关系:符合一定语义规则的一组二维表还有某些元组和属性列组成

关系模式:一类具有共同特征的关系的抽象的集合

关系数据库:基于关键模式构建

关系数据库的模式:

关系模式的形式化定义

五部分:R(U,D,DOM,F)

R:关系名

U:组成该关系的属性名集合(性别-年龄…)

D:属性组U中的属性所来自的域(属性范围)

DOM:属性向域的映像集合

F:属性间数据的依赖关系集合

简化:R(U,F) 当且仅当U上的一个关系r满足F时候,r称为关系模式R(U,F)的一个关系

数据依赖

1.完整性约束的表现形式

a.限定属性取值范围:例如成绩在0-100之间

b.定义属性值间的相互关联(主要体现于值是否相等),这就是数据依赖,他是数据库模式设计的关键

2.数据依赖

a.一个关系内部属性与属性之间的约束

b.现实世界属性间相互联系的抽象

c.数据内在的性质

d.语义的体现

数据依赖类型

函数依赖FD

多值依赖MVD

其他

数据依赖对关系模式的影响

可能存在的问题:

1.数据冗余

2.更新异常

3.插入异常

4.删除异常

解决方法:

通过分解关系模式来消除其中不合适的数据依赖

6.2规范化

6.2.1函数依赖

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

函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件

6.2.1.2平凡函数依赖与非平凡函数依赖

X→Y,但Y⊈X则称X→Y是非平凡的函数依赖。

X→Y,但Y⊆X 则称X→Y是平凡的函数依赖。

对于任一关系模式,平凡函数依赖都是必然成立的,它不反映新的语义。
若不特别声明, 我们总是讨论非平凡函数依赖。

若X→Y,则X称为这个函数依赖的决定因素(Determinant)。
若X→Y,Y→X,则记作X←→Y。
若Y不函数依赖于X,则记作X↛Y。

6.2.1.3完全函数依赖与部分函数依赖

定义在R(U)中,如果X→Y,并且对于X的任何一个真子集X’, 都有 X’ ↛ Y, 则称Y对X完全函数依赖,记作X → F Y。
若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作xP → Y

[例] 在关系SC(Sno, Cno, Grade)中,有:
由于:Sno ↛Grade,Cno ↛ Grade,
因此:(Sno, Cno) → Grade
(Sno, Cno)→Sno
(Sno, Cno) →Cno

6.2.1.4传递函数依赖

定义6.3 在R(U)中,如果X→Y(Y⊈X),Y↛X,Y→Z,Z⊈Y, 则称Z对X传递函数依赖(transitive functional dependency)。记为:X → Z。

注: 如果Y→X, 即X←→Y,则Z直接依赖于X,而不是传递函数依赖。

6.2.2码

定义6.4 设K为R<U,F>中的属性或属性组合。若K → U,则K称为R的一个候选码(Candidate Key)。

如果U部分函数依赖于K,即K → U,则K称为超码 (Surpkey)。候选码是最小的超码,即K的任意一个真子集都不是候选码。

若关系模式R有多个候选码,则选定其中的一个做为主码(Primary key)。

主属性与非主属性
包含在任何一个候选码中的属性 ,称为主属性 (Prime attribute)

不包含在任何码中的属性称为非主属性(Nonprime attribute)或非码属性(Non-key attribute)

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

定义6.5 关系模式 R中属性或属性组X 并非 R的码,但 X 是另一个关系模式的码,则称 X 是R 的外部码(Foreign key)也称外码。

SC(Sno,Cno,Grade)中,Sno不是码

Sno是 S(Sno,Sdept,Sage)的码,则Sno是SC的外码

主码与外部码一起提供了表示关系间联系的手段

6.2.3范式

范式是符合某一种级别的关系模式的集合。

关系数据库中的关系必须满足一定的要求。满足 不同程度要求的为不同范式。

各种范式之间存在联系:
某一关系模式R为第n范式,可简记为R∈nNF。

一个低一级范式的关系模式,通过模式分解(schema decomposition)可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化(normalization)。

6.2.4 2NF

定义:若关系模式R∈1NF,并且每一个非主属性都完全函数依赖于任何一个候选码,则R∈2NF

[例6.4] S-L-C(Sno,Sdept,Sloc,Cno,Grade), Sloc为学生的住处,并且每个系的学生住在同一个地方。S-L-C的码为(Sno,Cno)。

函数依赖有

(Sno,Cno)→Grade

Sno→Sdept, (Sno,Cno)→Sdept

Sno→Sloc, (Sno,Cno)→Sloc

Sdept→Sloc

非主属性Sdept、Sloc并不完全依赖于码

关系模式S-L-C不属于2NF

一个关系模式不属于2NF,会产生以下问题:

插入异常
如果插入一个新学生,但该生未选课,即该生无Cno,由于插入元组时,必须给定码值,因此插入失败。

删除异常
如果S4只选了一门课C3,现在他不再选这门课,则删除C3后,整个元组的其他信息也被删除了。

修改复杂
如果一个学生选了多门课,则Sdept,Sloc被存储了多次。如果该生转系,则需要修改所有相关的Sdept和Sloc,造成修改的复杂化。

出现这种问题的原因

例子中有两类非主属性:

一类如Grade,它对码完全函数依赖
另一类如Sdept、Sloc,它们对码不是完全函数依赖

解决方法:

用投影分解把关系模式S-L-C分解成两个关系模式
SC(Sno,Cno,Grade)

S-L(Sno,Sdept,Sloc)

SC的码为(Sno,Cno),SL的码为Sno,这样使得非主属性对码都是完全函数依赖了

6.2.5 3NF

(无传递依赖和部分依赖)

定义 设关系模式R<U,F>∈1NF,若R中不存在这样的码X、属性组Y及非主属性Z(Z ⊇ Y), 使得X→Y,Y→Z成立,Y ↛ X不成立,则称R<U,F> ∈ 3NF。

SC没有传递依赖,因此SC ∈ 3NF

S-L中Sno →Sdept( Sdept ↛ Sno), Sdept→Sloc,可得Sno → Sloc。

解决的办法是将S-L分解成

S-D(Sno,Sdept)∈ 3NF

D-L(Sdept,Sloc)∈ 3NF

6.2.6 BCNF

定义 设关系模式R<U,F>∈1NF,若X →Y且Y ⊆ X时X必含有码,则R<U,F>∈BCNF。
换言之,在关系模式R<U,F>中,如果每一个决定属性集都包含候选码,则R∈BCNF。

BCNF的关系模式所具有的性质

所有非主属性都完全函数依赖于每个候选码

所有主属性都完全函数依赖于每个不包含它的候选码

没有任何属性完全函数依赖于非码的任何一组属性

如果一个关系数据库中的所有关系模式都属于BCNF,那么在函数依赖范畴内,它已实现了模式的彻底分解,达到了最高的规范化程度,消除了插入异常和删除异常。

[例6.5]考察关系模式C(Cno,Cname,Pcno)

它只有一个码Cno,没有任何属性对Cno部分依赖或传递依赖,所以C∈3NF。

同时C中Cno是唯一的决定因素,所以C∈BCNF。
对于关系模式SC(Sno,Cno,Grade)可作同样分析。

[例6.6] 关系模式S(Sno,Sname,Sdept,Sage),

假定Sname也具有唯一性,那么S就有两个码,这两个码都由单个属性组成,彼此不相交。

其他属性不存在对码的传递依赖与部分依赖,所以S∈3NF。
同时S中除Sno,Sname外没有其他决定因素,所以S也属于BCNF。

[例6.7] 关系模式SJP(S,J,P)中,S是学生,J表示
课程,P表示名次。每一个学生选修每门课程的
成绩有一定的名次,每门课程中每一名次只有一
个学生(即没有并列名次)。

由语义可得到函数依赖: (S,J)→P;(J,P)→S
(S,J)与(J,P)都可以作为候选码。

关系模式中没有属性对码传递依赖或部分依赖,所以
SJP∈3NF。

除(S,J)与(J,P)以外没有其他决定因素,所以
SJP∈BCNF。

[例6.8] 关系模式STJ(S,T,J)中,S表示学生,T表
示教师,J表示课程。每一教师只教一门课。每
门课有若干教师,某一学生选定某门课,就对应
一个固定的教师。

由语义可得到函数依赖:(S,J)→T;(S,T)→J;T→J

因为没有任何非主属性对码传递依赖或部分依赖,
STJ ∈ 3NF。

因为T是决定因素,而T不包含码,所以STJ ∈ BCNF
关系。

3NF和BCNF是在函数依赖的条件下对模式分解所能达到的分离程度的测度。

一个模式中的关系模式如果都属于BCNF,那么在函数依赖范畴内,它已实现了彻底的分离,已消除了插入和删除的异常。

3NF的“不彻底”性表现在可能存在主属性对码的部分依赖和传递依赖。

6.2.7 多值依赖

定义 设R(U)是属性集U上的一个关系模式。X,Y,Z是U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖X→→Y成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值,有一组Y的值,这组值仅仅决定于x值而与z值无关。

多值依赖的另一个等价的定义

在R(U)的任一关系r中,如果存在元组t,s使得t[X]=s[X]
,那么就必然存在元组w,v∈r,(w,v可以与s,t相
同), 使得w[X]=v[X]=t[X],而w[Y]=t[Y],w[Z]=s[Z],
v[Y]=s[Y],v[Z]=t[Z](即交换s,t元组的Y值所得的两
个新元组必在r中则Y多值依赖于X,记为X→→Y。这里
X,Y是U的子集,Z=U-X-Y。

平凡多值依赖和非平凡的多值依赖

若X→→Y,而Z=Ф,即Z为空,则称X→→Y为平凡的多值依赖。
否则称X→→Y为非平凡的多值依赖。

多值依赖的性质

(1)多值依赖具有对称性。

即若X→→Y,则X→→Z,其中Z=U-X-Y

多值依赖的对称性可以用完全二分图直观地表示出来。

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

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

(4)若X→→Y,X→→Z,则X→→YZ。

(5)若X→→Y,X→→Z,则X→→Y∩Z。

(6)若X→→Y,X→→Z,则X→→Y-Z,X→→Z -Y。

多值依赖与函数依赖的区别

(1)多值依赖的有效性与属性集的范围有关

若X→→Y在U上成立,则在W(XY W  U)上一定成立;反之则不然,即X→→Y在W(W  U)上成立,在U上并不一定成立。

原因:多值依赖的定义中不仅涉及属性组X和Y,而且涉及U中其余属性Z。

多值依赖的有效性与属性集的范围有关(续)

一般地,在R(U)上若有X→→Y在W(W  U)上成立,则称X→→Y为R(U)的嵌入型多值依赖。

函数依赖X→Y的有效性仅决定于X、Y这两个属性集的值

只要在R(U)的任何一个关系r中,元组在X和Y上的值满足定义6.l,则函数依赖X→Y在任何属性集W(XY W U)上成立。

(2)若函数依赖X→Y在R (U)上成立,则对于任何Y‘  Y均有X→Y’ 成立。多值依赖X→→Y若在R(U)上成立,不能断言对于任何Y’  Y有X→→Y’ 成立。

6.2.8 4NF

定义 关系模式R<U,F>∈1NF,如果对于R的每个非平凡多值依赖X→→Y(Y ⊈ X),X都含有码,则R<U,F>∈4NF。

4NF就是限制关系模式的属性之间不允许有非平凡且非函数依赖的多值依赖。4NF所允许的非平凡多值依赖实际上是函数依赖。

如果一个关系模式是4NF, 则必为BCNF。

在[例6.10]的WSC中,W →→S,

W→→C,他们都是非平凡多值依赖。而W不是码,关系模式WSC的码是(W,S,C),即All-key,因此WSC ∈ 4NF。

可以把WSC分解成WS(W,S),WC(W,C), WS∈4NF,WC∈4NF。

6.2.9 规范化小结

在关系数据库中,对关系模式的基本要求是满足第一范式。

规范化程度过低的关系不一定能够很好地描述现实世界

可能存在插入异常、删除异常、修改复杂、数据冗余等问题

解决方法就是对其进行规范化,转换成高级范式

一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式集合,这种过程就叫关系模式的规范化。

关系数据库的规范化理论是数据库逻辑设计的工具。

规范化的基本思想

是逐步消除数据依赖中不合适的部分,使模式中的各关系模式达到某种程度的“分离”。

即采用“一事一地”的模式设计原则

让一个关系描述一个概念、一个实体或者实体间的一种联系。
若多于一个概念就把它“分离”出去。

因此 规范化实质上是概念的单一化。

规范化过程

这篇关于6.关系数据理论的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/391264

相关文章

2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题是由安全生产模拟考试一点通提供,流动式起重机司机证模拟考试题库是根据流动式起重机司机最新版教材,流动式起重机司机大纲整理而成(含2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题参考答案和部分工种参考解析),掌握本资料和学校方法,考试容易。流动式起重机司机考试技

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

系统架构师考试学习笔记第三篇——架构设计高级知识(19)嵌入式系统架构设计理论与实践

本章考点:         第19课时主要学习嵌入式系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分)。在历年考试中,案例题对该部分内容都有固定考查,综合知识选择题目中有固定分值的考查。本课时内容侧重于对知识点的记忆、理解和应用,按照以往的出题规律,嵌入式系统架构设计基础知识点基本来源于教材内。本课时知识架构如图19.1所示。 一、嵌入式系统发展历程

西方社会学理论教程复习重点

一.名词解释 1.社会静力学:旨在揭示人类社会的基本秩序。它从社会的横断面,静态的考察人类社会的结构和制度,寻找确立和维护人类社会的共存和秩序的原则。 2.社会动力学:纵观人类理性和人类社会发展的先后必要阶段,所叙述的是这一基本秩序在达到实证主义这一最终阶段之前所经过的曲折历程。 3.社会事实:一切行为方式,不论它是固定的还是不固定的,凡是能从外部给予个人以约束的,或者说是普遍存在于该社会各

行政组织理论-第十一章:创建学习型组织

章节章节汇总第一章:绪论第二章:行政组织的演变第三章:科层制行政组织理论第四章:人本主义组织理论第五章:网络型组织理论第六章:行政组织目标第七章:行政组织结构第八章:行政组织体制第九章:行政组织设置与自身管理第十章:组织激励第十一章:创建学习型组织第十二章:政府再造流程第十三章:行政组织变革 目录 第一节 学习型组织理论的产生1. 学习型组织的源起2. 学习型组织的定义3. 学习型组织与组

系统架构师考试学习笔记第三篇——架构设计高级知识(18)面向服务架构设计理论与实践

本章考点:         第18课时主要学习面向服务架构设计理论与实践。根据考试大纲,本课时知识点会涉及单选题型(约占2~5分)和案例题(25分),本课时内容偏重于方法的掌握和应用,根据以往全国计算机技术与软件专业技术资格(水平)考试的出题规律,概念知识的考查内容多数来源于实际应用,还需要灵活运用相关知识点。         本课时知识架构如图18.1所示。 一、SOA的相关概念 (

计算机操作员理论基础

计算机操作员理论基础 理论基础 计算机主频指的是时钟频率。14=23+22+21=(0)1110OS是运行其他系统软件的平台。215=27+26+24+22+21+20=(0)11010111(0)1111=(0)10000-1=24-1=15计算机理论知识,存贮是最基本是字节计算机产权在我国是受法律保护的12=23+22=(0)1100存贮程序是计算机能够自动连续工作的理论基础软盘中病毒

代码随想录算法训练营第十九天| 回溯理论、77. 组合、216. 组合总和Ⅲ、17. 电话号码的字母组合

今日内容 回溯的理论基础leetcode. 77 组合leetcode. 216 组合总和Ⅲleetcode. 17 电话号码的字母组合 回溯理论基础 回溯法也叫回溯搜索法,它是一种搜索的方式,而且只要有递归就会有回溯,回溯就是递归的副产品。 回溯说到底并不是什么非常高深的搜索方式,本质上仍然是穷举,穷举所有可能然后选择出我们要的答案。剪枝会使回溯法更加高效一点,但改变不了回溯本质就是穷举

分布式系统理论基础三-时间、时钟和事件顺序

GitHub:https://github.com/wangzhiwubigdata/God-Of-BigData 关注公众号,内推,面试,资源下载,关注更多大数据技术~大数据成神之路~预计更新500+篇文章,已经更新50+篇~ 现实生活中时间是很重要的概念,时间可以记录事情发生的时刻、比较事情发生的先后顺序。分布式系统的一些场景也需要记录和比较不同

分布式系统理论基础二-CAP

GitHub:https://github.com/wangzhiwubigdata/God-Of-BigData 关注公众号,内推,面试,资源下载,关注更多大数据技术~大数据成神之路~预计更新500+篇文章,已经更新50+篇~ 引言 CAP是分布式系统、特别是分布式存储领域中被讨论最多的理论,“什么是CAP定理?”在Quora 分布式系统分类下排