資料庫三正規化理解

2022-05-07 02:09:08 字數 1024 閱讀 8391

在談資料庫正規化之前,我們要明白一些關於資料庫的基本概念,具體有一下幾個:

元組(tuple):是關聯式資料庫中的基本概念,關係是一張表,表中的每行即資料庫中的一條記錄,就是乙個元組,每列就是乙個屬性。

超鍵(super key):能夠唯一決定乙個元組的屬性集合。可以是乙個屬性也可以是多個屬性,都叫做超鍵。

候選鍵(candidate key):不含有多餘屬性的超鍵,稱為候選鍵。

主鍵(primary key):標識元組的乙個候選鍵。

ps:1 無論是超鍵、候選鍵、主鍵,他們都是唯一確定乙個元組

2  超鍵包含候選鍵、候選鍵包含主鍵

資料庫正規化出現的背景

資料冗餘:指資料之間的重複,也可以說是同一資料儲存在不同資料檔案中的現象;

函式依賴:如果乙個屬性決定於另乙個屬性,那麼可以說另乙個屬性依賴於這個屬性,比如《機房收費系統》中學生表,學生號可以決定學生姓名,即知道了乙個學生的學生號,就可以知道他的姓名。

函式依賴又可以分為平凡依賴和非平凡依賴。

按性質分可分為部分依賴和完全依賴。

完全依賴:設x,y是關係r的兩個屬性集合,x』是x的真子集,存在x→y,但對每乙個x』都有x』!→y,則稱y完全函式依賴於x。

部分依賴:設x,y是關係r的兩個屬性集合,存在x→y,若x』是x的真子集,存在x』→y,則稱y部分函式依賴於x。

傳遞函式依賴:設x,y,z是關係r中互不相同的屬性集合,存在x→y(y !→x),y→z,則稱z傳遞函式依賴於x。

資料庫正規化是為了消除資料冗餘、減少資料操作異常出現的。

第一正規化:原子性,字段不可再分;是指資料庫表的每一列都是不可分割的基本資料項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重複的屬性。

第二正規化:在第一正規化基礎上,要求資料表的中的每個例項或行必須可以被唯一的區分。為實現區分通常需要為表加上乙個列,一儲存各個例項的唯一標示,即沒有重複的記錄。

第三正規化:第而正規化基礎上,消除間接依賴(某些欄位不完全依賴主鍵的,可以將其移除)

資料庫的設計要盡量遵循正規化設計,這樣才能減少冗餘資料,減少出錯的異常。

資料庫三正規化理解

1.第一正規化 1nf 資料庫列不可再分,即資料庫的字段不可再下分,如進貨包含有單價和數量那麼資料庫設計時應設計為兩列 進貨數量 進貨單價 2.第二正規化 2nf 資料庫表中的每個例項或行必須可以被唯一的區分,且非主屬性需要完全依賴於主鍵,如果存在不依賴於主鍵的屬性,這些屬性應該分離出來形成乙個新的...

資料庫 三正規化理解

第一正規化 原子性,每乙個字段不可再分 每一字段資訊應該能分就分,分到不可再分為止 例如 第二正規化 唯一性,不可以把多種資料儲存在同一張表中,即一張表只能儲存 一種 資料。表內資料各管各的,不能互相影響 不符合第二正規化的表 學號,姓名,年齡,課程名稱,成績,學分 可能會存在問題 正確做法 學生 ...

資料庫三大正規化理解

1nf 字段不可分 2nf 有主鍵,非主鍵字段依賴主鍵 3nf 非主鍵字段不能相互依賴 不符合第一正規化的例子 關聯式資料庫中create不出這樣的表 表 欄位1,欄位2 欄位2.1,欄位2.2 欄位3 存在的問題 因為設計不出這樣的表,所以沒有問題 不符合第二正規化的例子 假定選課關係表為sele...