1-3范式,bcnf,关系模型完整性约束

1范式-所有属性都不可拆分-主要要自己的业务需求

2范式-不存在非主属性对码的部分函数依赖

3范式-不存在非主属性对码的部分函数依赖,传递函数依赖

bcnf-不存在主属性对码的部分函数依赖,传递函数依赖

码:在“码”的定义中,除 K 之外的所有属性应该看成是一个集合 U(也就是一个整体),也就是说,只有 K 能够完全函数决定 U 中的每一个属性,那么 K 才是码。如果 K 只是能够完全函数决定 U 中的一部分属性,而不能完全函数决定另外一部分属性,那么 K 不是码。

主属性:码的每一个属性;

非主属性:除主属性外的属性;

前提:应用范式的前提是要在意关系模型的完整性,

关系模型的完整性:1-域完整性约束

      域完整性是保证数据库字段取值的合理性。

        2-实体完整性约束

      实体完整性(Entity integrity)是指关系的主关键字不能重复也不能取“空值"。

        3-参照完整性约束

       参照完整性(Referential Iintigrity)是定义建立关系之间联系的主关键字与外部关键字引用的约束条件。参照完整性主要指主表不能任意删除或修改,从表不能任意添加。

        4-用户定义完整性

 

计算码牵扯到闭包概念:说白话一点,闭包就是由一个属性(或属性集)直接或间接推导出的所有属性的集合。

而候选码是由闭包计算出来的.

 

候选键/码:定义:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选键。

如何计算闭包,候选码?

 

 

原文地址:https://www.cnblogs.com/imjamin/p/9096883.html