关系数据规范化理论

简介: 关系数据规范化理论

这里的问题主要是针对数据库逻辑设计中如何设计一个好的关系数据库模式出发。

一般来说,一个关系模式只要满足第一范式(每个分量是不可分的数据项),它就是合法的。但实际上,它还会存在,插入、删除、修改异常及数据冗余大等问题,这个时候,就要通过关系数据规范化理论解决这些问题。下面,先介绍一些基础知识再介绍规范化理论的具体内容。


1.基础知识


1.1函数依赖


函数依赖: 若在一张表中,在属性(或属性组)X的值确定的情况下,必定能确定属性Y的值,那么就可以说Y函数依赖于X,写作 X → Y。

部分函数依赖: 设X,Y是关系R的两个属性集合,存在X→Y,若X’是X的真子集,存在X’→Y,则称Y部分函数依赖于X。

完全函数依赖: 设X,Y是关系R的两个属性集合,X’是X的真子集,存在X→Y,但对每一个X’都有X’!→Y,则称Y完全函数依赖于X。、

传递函数依赖: 设X,Y,Z是关系R中互不相同的属性集合,存在X→Y(Y !→X),Y→Z,则称Z传递函数依赖于X。


1.2码


码: 设 K 为某表中的一个属性或属性组,若除 K 之外的所有属性都完全函数依赖于 K(这个“完全”不要漏了),那么我们称 K 为候选码,简称为码。

主码: 若候选码多于一个,则选定其中一个为主码。

外码: 属性组X非该关系中码,但是是另一个关系模式中码。


主属性和非主属性:

包含在任何一个码中的属性成为主属性。除了主属性以外的就是非主属性。


规范化理论


第二范式2NF:非主属性完全函数依赖于码

第三范式3NF:非主属性完全依赖于码且不传递依赖于码

BCNF(修正的第三范式):任何属性完全依赖于码且不传递依赖于码,已经解决了插入,删除异常!

简单来说:

第一范式:列不能再分

第二范式:建立在第一范式基础上,非主属性消除部分依赖

第三范式:建立在第二范式基础上,非主属性消除传递依赖

BC范式:建立在第二范式基础上,主属性也消除传递依赖

相关文章
|
6月前
|
移动开发 人工智能 JavaScript
程序员必知:关系的基本概念及其性质
程序员必知:关系的基本概念及其性质
104 3
|
7月前
|
Python
物理力学:理论探索与代码实践
物理力学:理论探索与代码实践
55 1
|
7月前
|
数据可视化 数据建模
R语言用线性混合效应(多水平/层次/嵌套)模型分析声调高低与礼貌态度的关系
R语言用线性混合效应(多水平/层次/嵌套)模型分析声调高低与礼貌态度的关系
[1] 理论一:吸收能力理论
[1] 理论一:吸收能力理论
141 1
Induction hypothesis(归纳假设
Induction hypothesis(归纳假设)是一种基于归纳推理的假设或推测,通常用于科学、工程和数学等领域中。它是一种从特殊情况或实例中推断出一般性结论或规律的方法。归纳假设是基于观察到的数据或现象,通过对这些数据或现象进行总结和归纳,从而得出一个更普遍的结论或规律。 使用归纳假设的方法可以分为以下几个步骤:
500 5
|
编解码 JavaScript
解释基本的3D理论
本文介绍了所有基本理论,这些理论在开始使用 3D 时很有用。
123 0
解释基本的3D理论
|
JavaScript 关系型数据库 数据库
关系数据理论
关系数据理论
104 1
|
存储 算法 Java
数据结构与算法的关系(上):算法的特征
算法定义:描述解决问题的方法。这个描述很笼统,很多人一听可能迷迷糊糊的,不明所以。我们来看看其他的定义:算法是解题方案的准确而完整地描述,是一系列解决问题的清晰指令,并且每个操作表示一个或多个指令。这个定义是被普遍认可的,在计算机中,算法就一个多个制定的一序列的指令。
212 0
数据结构与算法的关系(上):算法的特征
|
算法 C++ Python
01算法的概念
01算法的概念
160 0
01算法的概念