資料庫三大正規化和五大約束(概念)

2021-10-08 20:06:35 字數 1143 閱讀 7811

1、資料表中的每一列(字段),必須是不可拆分的最小單元,即確保每一列的原子性。滿足第一正規化是關係模式規範化的最低要求。

2、兩列的屬性相近或相似或一樣,盡量合併屬性一樣的列,確保不產生冗餘資料。

滿足1nf後要求表中的所有列,每一行的資料只能與其中一列相關,即一行資料只做一件事。只要資料列**現資料重複,就要把錶拆分開來。

滿足2nf後,表中的每一列都要與主鍵直接相關,而不是間接相關(即表中的每一列只能依賴於主鍵)。

資料不能存在傳遞關係,即每個屬性都跟主鍵有直接關係而不是間接關係。比如:x->y->z 屬性之間含有這樣的關係,是不符合第三正規化的。

1.必須先滿足第一正規化才能滿足第二正規化,必須同時滿足第一第二正規化才能滿足第三正規化。

2.第二正規化與第三正規化的本質區別:在於有沒有分出兩張表。

第二正規化是說一張表中包含了多種不同實體的屬性,那麼必須要分成多張表,第三正規化是要求已經分好了多張表的話,一張表中只能有另一張標的id,而不能有其他任何資訊,(其他任何資訊,一律用主鍵在另一張表中查詢)。

資料庫中的五大約束包括:

1.主鍵約束(primay key coustraint) 唯一性,非空性;

2.唯一約束 (unique counstraint)唯一性,可以空,但只能有乙個;

3.預設約束 (default counstraint) 該資料的預設值;

4.外來鍵約束 (foreign key counstraint) 需要建立兩表間的關係;

5.非空約束(not null counstraint):設定非空約束,該欄位不能為空。

新增主鍵約束

alter table 表名 add constraint 主鍵名 primary key(字段)

新增唯一約束

alter table 表名 add constraint 約束名 unique(字段)

新增預設約束

alter table 表名 add constraint 約束名 default(預設內容) for 欄位名

新增檢查約束

alter table 表名 add constraint 約束名 check (字段表達)

新增外來鍵約束

alter table 表名 add constraint 約束名 foreign key(字段) references 表名(欄位名)

資料庫三大正規化與五大約束

正規化 英文名稱是 normal form,是關聯式資料庫理論的基礎,也是我們在設計資料庫結構過程中所要遵循的規則和指導方法。目前共有8種正規化,依次是 1nf,2nf,3nf,bcnf,4nf,5nf,dknf,6nf。但通常用到的只是前三種正規化,即 第一正規化 1nf 第二正規化 2nf 第三...

資料庫的三大正規化以及五大約束

實體 表 屬性 表中的資料 字段 關係 表與表之間的關係 資料庫設計三大正規化 重點 第一正規化 1nf 資料表中的每一列 每個字段 必須是不可拆分的最小單元,也就是確保每一列的原子性 例如 userinfo 山東省煙台市 131777368781 userads 山東0省煙台市 usertel 1...

資料庫的三大正規化以及五大約束

數 據 庫 實體 表 屬性 表中的資料 字段 關係 表與表之間的關係 資料庫設計三大正規化 重點 第一正規化 1nf 資料表中的每一列 每個字段 必須是不可拆分的最小單元,也就是確保每一列的原子性 例如 userinfo 山東省煙台市 131777368781 userads 山東0省煙台市 use...