1范式-所有属性都不可拆分-主要要自己的业务需求
2范式-不存在非主属性对码的部分函数依赖
3范式-不存在非主属性对码的部分函数依赖,传递函数依赖
bcnf-不存在主属性对码的部分函数依赖,传递函数依赖
码:在“码”的定义中,除 K 之外的所有属性应该看成是一个集合 U(也就是一个整体),也就是说,只有 K 能够完全函数决定 U 中的每一个属性,那么 K 才是码。如果 K 只是能够完全函数决定 U 中的一部分属性,而不能完全函数决定另外一部分属性,那么 K 不是码。
主属性:码的每一个属性;
非主属性:除主属性外的属性;
前提:应用范式的前提是要在意关系模型的完整性,
关系模型的完整性:1-域完整性约束
域完整性是保证数据库字段取值的合理性。
2-实体完整性约束
实体完整性(Entity integrity)是指关系的主关键字不能重复也不能取“空值"。
3-参照完整性约束
参照完整性(Referential Iintigrity)是定义建立关系之间联系的主关键字与外部关键字引用的约束条件。参照完整性主要指主表不能任意删除或修改,从表不能任意添加。
4-用户定义完整性
计算码牵扯到闭包概念:说白话一点,闭包就是由一个属性(或属性集)直接或间接推导出的所有属性的集合。
而候选码是由闭包计算出来的.
候选键/码:定义:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选键。