關係數據庫(MySQL)的規範化、以及設計原則

1.瞭解範式(NF)數據庫

爲了使得關係數據庫可以符合規範理論,全部的數據庫表都要知足:範式spa

關係數據庫的範式有五類:第一範式,第二範式,....第五範式。下面咱們來了解一下前三個範式:設計

第一範式:簡單來講就是表中不能嵌套表(使用一個列不能有多個值,列是原子級別的不能在分割)程序

第二範式:(在介紹第二範式以前,首先要知道什麼是主鍵,若是這一列是主鍵那麼,每一行的的這一列都是不能爲空且不能重複的)數據

簡單來講第二範式就是說,你的屬性必須徹底依賴你的主鍵,若是你的表裏面有一個屬性是不依賴你的主鍵的,或者是依賴你的聯合主鍵中的一個,那麼你必須將表進行拆分。分割

最後最簡單來說就是,你表中的屬性要和你的主鍵相關聯,能被主鍵標識。底層

第三範式:就是說一張表裏面不能存在傳遞依賴。就是說你這表裏面的某一屬性不能依賴另一個屬性來傳遞。範式

2.數據庫的設計原則

1.數據庫中的數據應該儘量的實現共享,減小重複等等。

2.保證輸入、修改數據時的一致性和正確性。

3.保證數據與使用數據的程序有較高的獨立性。

3.實體的三種關係

1.一對一:一張表中的一個屬性只與另一張表的一個屬性匹配。

2.一對多:一張表中的一個屬性能夠與另一張表的多個屬性匹配。

3.多對多:多對多,須要使用三種表來實現。第三個表爲連接表,連接表裏面含有另外兩張表的主鍵。

4.數據庫的三級模式結構

1.外模式:一個數據庫能夠有多個外模式,是呈如今用戶目前的模式。能夠看見數據邏輯和特徵描述。

2.模式:數據庫只有一個邏輯模式,在數據庫的中間層。

3.內部=模式:數據庫只有一個內模式,就是對數據庫的存儲方式在底層的描述。