博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
对于范式的理解
阅读量:4555 次
发布时间:2019-06-08

本文共 835 字,大约阅读时间需要 2 分钟。

我们判断数据库设计的好坏很大程度上是根据范式的,简单总结一下我对范式的一点理解:

第一范式(1NF)

是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。

第二范式(2NF

就是非主属性完全依赖于主关键字。

第三范式(3NF

在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合第三范式。简而言之,第三范式就是属性不依赖于其它非主属性。

BC范式(BCNF)

也就是排除了属性之间不存在传递函数依赖(不润主属性与非主属性)

这几个范式一步一步地约束了数据可的设计:

  从第一范式到第二范式消去了主属性对键的部分依赖;

  从第二范式到第三范式消去非主属性对键的传递函数依赖;

  从第三范式到BC范式消去了属性对键的传递函数依赖

 

函数依赖的定义:

一、      假设给定属性X的值就知道属性Y的值,那么成X函数决定Y(或Y函数依赖于X),记作X->Y

就像是函数,x确定,f(x)也确定了

对于函数依赖x-》y,如果存在X‘属于X时有X’-》Y成立,那么称Y对X部分函数依赖,否则称,Y对X完全函数依赖。

传递函数依赖:x-》y,y->Z,则X->Z为传递函数依赖

 

第二范式:对于关系R,若R属于第一范式,且每个非主属性(不是候选码中的属性)完全函数依赖于候选键,则符合第二范式。

       实质是元组要有唯一的标识码,保证了元祖的唯一性,一个元组只能对应一个实体,从根本上解决了“插入、删除、更改异常”

第三范式:对于属于第二范式的关系,如果每个非主属性都不传递依赖于候选码,则符合第三范式。

        非主属性不传递依赖于候选码,主属性可以传递依赖于候选码。3NF尽量消除了冗余

BC范式:如果R属于第一范式,且每个属性都不传递依赖于R的候选键,则R属于BC范式,是基于函数依赖的最高范式

转载于:https://www.cnblogs.com/MrLJC/p/3405443.html

你可能感兴趣的文章
2019百度之星初赛一 1005 Seq HDU - 6672 (打表找规律)
查看>>
[kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher D - Cyclic Nacklace HDU - 3746(循环节kmp)...
查看>>
Por Costel and the Match Gym - 100923H(经典种类并查集)
查看>>
Happy 2006 POJ - 2773(欧几里得算法 互素问题)
查看>>
[kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher E - Period HDU - 1358(循环节kmp)
查看>>
[kuangbin带你飞]专题十二 基础DP1 F - Piggy-Bank HDU - 1114(完全背包)
查看>>
Trailing Zeroes (I) LightOJ - 1028(唯一分解 因子个数)
查看>>
洛谷题 P3366 【模板】最小生成树
查看>>
Farey Sequence POJ - 2478 (欧拉函数 前缀和)
查看>>
[kuangbin带你飞]专题六 最小生成树 B - Networking
查看>>
[kuangbin带你飞]专题十二 基础DP1 E - Super Jumping! Jumping! Jumping! HDU - 1087(不连续单调递增最长子序列的和)...
查看>>
[kuangbin带你飞]专题四 最短路练习 B( POJ 2253) Frogger(spfa)
查看>>
[kuangbin带你飞]专题六 最小生成树 A - Jungle Roads
查看>>
Codeforces Round #570 (Div. 3)B
查看>>
[kuangbin带你飞]专题五 并查集 B - The Suspects
查看>>
[kuangbin带你飞]专题一 简单搜索 E. Find The Multiple
查看>>
[kuangbin带你飞]专题四 最短路练习 C - Heavy Transportation (spfa)最大权值
查看>>
北京信息科技大学第十一届程序设计竞赛(重现赛)I
查看>>
bfs入门 (HDU - 1548)A strange lift
查看>>
[kuangbin带你飞]专题一 简单搜索 A棋盘问题
查看>>