為滿足不同數據庫設計要求,減少數據冗余而指定設計規范,可稱為數據庫范式
數據庫范式呈遞次規范,即高階范式必然滿足低階范式
越高的數據庫范式意味著越嚴格的設計要求,同時數據冗余越小
第一范式(1NF):
數據庫表的每一列都是不可分割的基本數據項。同一列中不能有多個值,
即實體中的某個屬性不能有多個值或者不能有重復屬性(列的原子性)
原子性,字段不可分,否則就不是關系數據庫
第二范式(2NF):
要求實體屬性完全依賴于主關鍵字。指不能存在僅依賴主關鍵字一部分的屬性,
如果存在,那么這個屬性和主關鍵字的這一部分應該分離出來形成一個新的實體,
新實體與原實體之間是一對多關系
主要針對含有聯合主鍵或者數據表中包含多對多關系的情況。
數據庫設計要求將其分為2個或以上1對多的關系
唯一性,一個表只說明一個事物
第三范式(3NF):
在1NF基礎上,任何非主屬性不依賴于其他非主屬性(在2NF基礎上消除傳遞依賴)
要求一個關系中不包含在其他關系已包含非主關鍵字信息
每列都與主鍵有直接關系,不存在傳遞依賴
巴斯-科德范式(BCNF):
在1NF基礎上,任何非主屬性不能對主鍵子集依賴(在3NF基礎上消除對主碼子集的依賴)