閒話資料庫 一 第一正規化 第二正規化

2021-07-13 11:15:24 字數 901 閱讀 3544

最近翻看資料庫設計方面的理論部分,遇到一些很有意思的問題,現在記錄一下。

第乙個問題:第一正規化的產生由來,以及產生這種指導意見之後後續的問題

第一正規化的定義:若關係模式r的每乙個分量是不可再分的資料項,則關係模式r為第一正規化。

這是採用嚴格的數學格式定義形式: 如果... ...,那麼... ...。

關係模式r=所有的分量+分量之間的函式依賴=(關聯式資料庫一張表中)欄位+欄位之間的依賴關係+所有的資料

第一正規化強調的是分量的不可再分,但是並沒有說不可再分的現實標準是什麼。不過非常值得注意的是,這裡是數學定義啊,你見過數學的定義帶過單位沒有,物理嗎還差不多。

其次如果嚴格遵循第一正規化之後,還有什麼問題呢? r中兩個分量名稱類似資料一致的冗餘問題,r中存在有些關係的內容需要變動的時候,可能會引起其他更新上的問題。只更新乙個關係的時候卻發現這個關係重複。

第二個問題:為了解決遵循第一正規化之後出現的問題,產生了第二正規化。

第二正規化的定義:如果關係模式r屬於1nf,且每一非主屬性依賴於碼,則關係模式r屬於2nf。

還是採用數學定義的形式,不過引入了新的一些名詞定義。

非主屬性:就是關係模式r中分量組合包含的資料不可以唯一確定乙個關係的分量組合的另外乙個稱呼。

簡單的說就是一條資料中欄位組合不可以保證當前資料在表中是獨一無二的這種字段組合,就是非主屬性。

碼:碼就是關係模式r中可以確定一條關係的分量組合。

簡單說就是可以拿來當主鍵的字段組合。

看上去第二正規化進步有點大,不過有點扯著了。萬一碼不是唯一的,關係模式r裡面有多個碼,好像還是有冗餘問題啊?

這個先暫停一會,我們遵循了2nf之後好像整個關係模式r現在還沒有進行真正有效的簡化,現在一直在做資料的拆分,組合。1nf是資料的拆分,做到原子性。2nf是組合,組合出非主屬性和碼,讓非主屬性函式依賴於碼。

資料庫(第一正規化,第二正規化,第三正規化)

正規化 英文名稱是 normal form,它是英國人 e.f.codd 關聯式資料庫的老祖宗 在上個世紀70年代提出關聯式資料庫模型後總結出來的,正規化是關聯式資料庫理論的基礎,也是我們在設計資料庫結構過程中所要遵循的規則和指導方法。目前有跡可尋的共有8種正規化,依次是 1nf,2nf,3nf,b...

資料庫(第一正規化,第二正規化,第三正規化)

正規化 英文名稱是 normal form,它是英國人 e.f.codd 關聯式資料庫的老祖宗 在上個世紀70年代提出關聯式資料庫模型後總結出來的,正規化是關聯式資料庫理論的基礎,也是我們在設計資料庫結構過程中所要遵循的規則和指導方法。目前有跡可尋的共有8種正規化,依次是 1nf,2nf,3nf,b...

資料庫(第一正規化,第二正規化,第三正規化)

正規化 英文名稱是 normal form,它是英國人 e.f.codd 關聯式資料庫的老祖宗 在上個世紀70年代提出關聯式資料庫模型後總結出來的,正規化是關聯式資料庫理論的基礎,也是我們在設計資料庫結構過程中所要遵循的規則和指導方法。目前有跡可尋的共有8種正規化,依次是 1nf,2nf,3nf,b...