【数据库系统设计】关系数据理论,深度分析一下 AQS 原理
规范化理论 — 找出关系模式中不合适的数据依赖,消除它们,可以在不同程度上解决插入异常、删除异常、更新异常和数据冗余问题。
=====================================================================================
1.函数依赖
定义:
设 R(U) 是一个属性集 U 上的关系模式,X 和 Y 是 U 的子集。若对于 R(U) 的任意一个可能的关系 r,r 中不可能存在两个元组在 X 上的属性值相等, 而在 Y 上的属性值不等则称 “X 函数确定 Y” 或 “Y 函数依赖于 X” ,记作 X → Y。X 称为这个函数依赖的决定属性组,也称为决定因素(Determinant)。

反例:

问:由下面的关系表, 能否得出 Sname → Sno ?

答:只由关系表不能得出依赖关系。函数依赖不是指关系模式 R 的某个或某些关系实例 r 满足的约束条件,而是指 R 的所有关系实例 r 均要满足的约束条件。
如何确定函数依赖?
函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。
如 Sname →Sno 函数依赖只有在“学生不允许有重名”的条件下成立。
数据库设计者可以对现实世界作强制的规定。
例如设计者可以强行规定不允许学生有重名,因而使函数依赖
Sname → Sno,Sname → Ssex, Sname → Sage,Sname → Sdept 成立。
函数依赖是指关系模式 R 在任何时刻的关系实例均要满足的约束条件。
不是指某个或某些关系实例 r 满足的约束条件,而是指 R 的所有关系实例 r 均要满足的约束条件。
2.平凡函数依赖与非平凡函数依赖
定义:

示例:

对于任一关系模式,平凡函数依赖都是必然成立的,它不反映新的语义,因此若不特别声明, 我们总是讨论非平凡函数依赖。
3.完全函数依赖与部分函数依赖
定义:

示例:

4.传递函数依赖
定义:

示例:

候选码、超码
候选码、超码定义:

候选码、超码示例:

主码

主属性、非主属性
主属性、非主属性定义:

主属性、非主属性示例:

全码

外码
外码定义:

外码示例:

范式是符合某一种级别的关系模式的集合。
关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式。
范式的种类:
第一范式(1NF)
第二范式(2NF)
第三范式(3NF)
BC 范式(BCNF,Boyce 和 Codd 共同提出的范式)
第四范式(4NF)
第五范式(5NF)
各种范式之间存在联系:

第一范式:
1NF 的定义:如果一个关系模式 R 的所有属性都是不可分的基本数据项,则 R∈1NF。

第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据模式。(不能表中有表)
只满足第一范式的关系模式并不一定是一个好的关系模式。

2NF 定义:

2NF 示例:

一个关系模式 R 不属于 2NF,就会产生问题。




原因: SLC(Sno, Sdept, Sloc, Cno, Grade) 中
Sdept、 Sloc 部分函数依赖于码。SLC 的码为(Sno, Cno)




2NF 的问题









3NF 的定义:

3NF 示例:



3NF 的性质:

3NF 的问题




BC 范式定义:

BC 范式示例:

BC 范式的性质:




================================================================================

Armstrong 公理系统:

导出规则:

函数依赖闭包
闭包 F+ 定义:

X 关于函数依赖集 F 的闭包 XF+定义:

求属性集 X 关于 F 的闭包 XF+
算法:

示例:

Armstrong 公理系统的有效性与完备性:

函数依赖集等价的概念
函数依赖集等价定义:

最小依赖集
最小依赖集定义:

最小依赖集例题:


求出了 A+,发现 B 是冗余的。

求出 B+,B 不是冗余的。

这边一眼就能看出来了,所谓求 XX 的闭包不过是种说法罢了,千万不要被思维定式。

F 的最小依赖集 Fm 不一定是唯一的。

============================================================================


模式分解示例










1.具有无损连接性的模式分解
定义:

算法:


例题:
这题看不懂看这个:数据库系统(哈尔滨工业大学)P167 16.2-无损连接分解及其检验算法



特殊情况:


2.保持函数依赖的模式分解
定义:


示例:


3.分解的无损连接性和保持函数依赖性

例题:












=========================================================================





=======================================================================
(1)



(2)


(3)


(4)

(5)

(6)

(7)

(8)






(7)
最后
分布式技术专题+面试解析+相关的手写和学习的笔记 pdf
还有更多 Java 笔记分享如下:

评论