java面試-資料庫三大正規化
阿新 • • 發佈:2019-01-29
第一正規化
- 第一正規化(1NF)要求資料庫表的每一列都是不可分割的基本資料項,同一列中不能有多個值。
- 若某一列有多個值,可以將該列單獨拆分成一個實體,新實體和原實體間是一對多的關係。
- 在任何一個關係資料庫中,第一正規化(1NF)是對關係模式的基本要求,不滿足第一正規化(1NF)的資料庫就不是關係資料庫。
第二正規化
- 滿足第二正規化(2NF)必須先滿足第一正規化(1NF)。
- 第二正規化要求實體中沒一行的所有非主屬性都必須完全依賴於主鍵;即:非主屬性必須完全依賴於主鍵。
- 完全依賴:主鍵可能由多個屬性構成,完全依賴要求不允許存在非主屬性依賴於主鍵中的某一部分屬性。
- 若存在哪個非主屬性依賴於主鍵中的一部分屬性,那麼要將發生部分依賴的這一組屬性單獨新建一個實體,並且在舊實體中用外來鍵與新實體關聯,並且新實體與舊實體間是一對多的關係。
第三正規化
- 滿足第三正規化必須先滿足第二正規化。
- 第三正規化要求:實體中的屬性不能是其他實體中的非主屬性。因為這樣會出現冗餘。即:屬性不依賴於其他非主屬性。
- 如果一個實體中出現其他實體的非主屬性,可以將這兩個實體用外來鍵關聯,而不是將另一張表的非主屬性直接寫在當前表中。