爲了創建冗餘較小、結構合理的數據庫,設計數據庫時必須遵循必定的規則。在關係型數據庫中這種規則就稱爲範式。範式是符合某一種設計要求的總結。要想設計一個結構合理的關係型數據庫,必須知足必定的範式。數據庫
在實際開發中最爲常見的設計範式有三個:spa
一範式1NF(確保每列保持原子性)
一、 數據庫表的每一行都是不可分割的基本數據項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或不能有重複的屬性。若是出現重複的屬性,就可能須要定義一個新的實體,新的實體由重複的屬性構成,新實體與原實體之間爲一對多關係。
二、 表的每一行包含一個實例的信息。
第二範式2NF
一、 要求數據庫表中的每一個實例或行必須是惟一的。爲實現區分,一般須要爲表加一個列,以存儲各個實例的惟一標識(即主鍵)。
二、 實體的屬性徹底依賴於主關鍵字。所謂徹底依賴指不能存在僅依賴主關鍵字一部分的屬性。若是存在,那麼這個屬性和主關鍵字的這一部分應該分離出來造成一個 新的實體,新實體與原實體之間是一對多的關係。爲實現區分一般須要爲表加上一個列,以存儲各個實例的惟一標識。總之第二範式就是非主屬性非部分依賴於主關 鍵字。
第三範式3NF
一個數據庫表中不包含已在其餘表中已包含的非主關鍵字信息。例如存在一個部門信息表,其中每一個部門有部門編號DEPT_ID、部門名稱、部門簡介等信息。那麼在員工信息表中列出的部門編號DEPT_ID後,就不能再有關於部門的其餘信息,不然就會形成數據冗餘設計