三范式介紹
表的范式:只有符合的第一范式,才能滿足第二范式,進一步才能滿足第三范式。
1、第一范式:
表的列具有原子性,不可再分解。只要是關系型
數據庫都自動滿足第一范式。
數據庫的分類:
關系型數據庫:MySQL/ORACLE/Sql Server/DB2等
非關系型數據庫:特點是面向對象或者集合
nosql數據庫:MongoDB(特點是面向文檔)
2、第二范式:
表中的記錄是唯一的,就滿足第二范式。通常我們設計一個主鍵來實現。
主鍵一般不含業務邏輯,一般是自增的;
3、第三范式:
表中不要有冗余數據,即如果表中的信息能夠被推導出來就不應該單獨的設計一個字段來存放;對字段冗余性的約束,要求字段沒有冗余。
如下表所示,符合三范式要求:
student表
class表
如下表所示,不符合三范式要求:
student表
class表
反三范式案例:
一個相冊下有多個圖片,每個圖片有各自的瀏覽次數,相冊有總的瀏覽次數。
相冊瀏覽表
圖片表:
如果相冊瀏覽表沒有適當的冗余,效率有影響。
冗余比較可以得出一個結論:1對N時,冗余應當發生在1的一端。
English » | | | | | | | | |
Text-to-speech function is limited to 100 characters