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