数据库设计范式

第一范式

对应关系应该是原子级别,即每个键里某一行的属性应该只有一个,是基本数据项

第二范式

每一列的数据都要与主键相关,无关信息不能存在

BCNF (修正第三范式)

函数依赖, 即 A -> B, A可以决定B, 比如身份证号码和人名,每一个人身份证号码对应一个人名,身份号码就是一个主键(key)
一个table 只有一个主键才符合BCNF

第四范式

multi-value 依赖

比如学生申请学校 apply(ssn, college, highschool)
如果一个学生申请C个学校和读了h个高中,一个ssn会对应多个college, highschool组合
ssn->>college, ssn->> highschool
一个ssn 对应 很多一对大学高中组合
每一对大学高中组合 一个ssn

apply可分为分为 student(ssn, highschool) , college(ssn, college)
总共需要 c+n 行对应刚才的例子

4NF requires the left-hand side of multivalued dependencies to be a key for the relation.

第四范式的意思是:当一个表中的非主属性互相独立时(3NF),这些非主属性不应该有多值。若有多值就违反了第四范式。定义比较抽象,可以参照下面的例子理解。

decomposition

利用functional dependency 来裂解大的关系,将其分裂成一个个小的关系组,这样处理更好的压缩数据方便查询,并且是可逆操作

你可能感兴趣的:(数据库设计范式)