关系数据库的范式


听到这些范式的名字,是让人很晕的。。。实际上这些范式的 道理 却没有什么深奥的。 第一范式:所有属性都是不可分的基本数据项,数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。(属性不可分割) 第二范式:在第一范式基础之上,并且每一个非主属性都完全函数依赖于 主键,这个是完全依赖,,数据库表的 非主键 都完全依赖主键。(属性完全依赖主键) 第三范式:则R的每一个非主属性既不部分函数依赖于候选码也不传递函数依赖于候选码。就好比 朋友网里面的 二级人脉 似的。。。这个二级人脉是通过 你的直接好友 带来的,,不是你的 直接 好友,,不能能放在 你的 那一条记录里面,否则就是不符合这个 第三范式。。。。。。。。。。直接属于你的 信息 放在 你的那一条记录里面。这样就满足了第三范式。(属性直接完全依赖主键,关键在于直接) 第四范式:用人类的语言不好表达,个人体会就是,一个属性有多个值(比如爱好这个属性有多个值。。。),那么这个爱好的值(唱歌/跳舞。。。)必须单独用一张表存储,供其他的表关联和调用。(R的每个非平凡多值依赖X→→Y(Y  X),X都含有候选码) 例子:表一(id,甲名字,爱好Id)表二(id,爱好Id,爱好名字ID) 表三(爱好名字ID,爱好名字)。。个人理解的。 From:http://www.lehazi.com 个人YY。

阅读量: 419
发布于:
修改于: