1. 程式人生 > >簡單理解資料庫三大正規化

簡單理解資料庫三大正規化

最近惡補一些大學的理論知識,感覺久了不看就忘了,在此簡單地總結一下自己理解的正規化。

一、首先簡單介紹一下正規化的歷史:

對於正規化主要是E.F.Codd做了大量的工作,1971~1972年他系統地提出了1NF、2NF和3NF的概念,討論了規範化的問題。1974年,Codd和Boyce共同提出了一個新的正規化,即BCNF。1976年,Fagin又提出了4NF,後來又有人提出了5NF。即級別為1NF-->2NF-->3NF-->BCNF-->4NF-->5NF,不過我們平時一般的設計只需滿足前3大正規化就差不多了,除非一些要求特別嚴格的才會考慮後面的。

二、其次簡單介紹一些正規化的概念:

關係資料庫中的關係必須滿足一定的要求,滿足不同程度要求即為不同正規化。滿足最低要求的叫第一正規化,簡稱1NF,在第一正規化基礎上滿足進一步要求的成為第二正規化,其餘以此類推。正規化越高,規範化程度越高,關係模式越好。

三、簡單的理解一下前3大正規化:

1、第一正規化(1NF、原子性,不可拆分)

如果一個表中的每個欄位是不可拆分,則可稱它滿足1NF,例如:

員工資訊表
姓名 性別 家庭住址 所在部門名稱 所在部門簡介
張三 四川省成都市 研發部 專注於開發一系列軟體產品..
小鳳 四川省達州市 研發部 專注於開發一系列軟體產品..
此表中如果省份和城市是可以單獨管理的話,則“家庭住址”欄是可以拆分的,即可以拆分成省和市,如下拆分後才滿足第1NF:
姓名 性別 家庭地址所在省 家庭地址所在市 所在部門名稱 所在部門簡介
張三 四川省 成都市 研發部 專注於開發一系列軟體產品..
小鳳 四川省 達州市 研發部 專注於開發一系列軟體產品..

2、第二正規化(2NF、唯一性,不可重複)

在滿足1NF的情況下,保持表中每行資料的唯一性,即有唯一性的標識(一般習慣用主鍵(可以是複合主鍵)作為唯一標識),如在1中的員工資訊表中完善:

編號 姓名 性別 家庭地址所在省 家庭地址所在市 所在部門名稱 所在部門簡介
1 張三 四川省 成都市 研發部 專注於開發一系列軟體產品..
2 小鳳 四川省 達州市 研發部 專注於開發一系列軟體產品..
其中的編號是唯一的,這時才滿足第2NF。

3、第三正規化(3NF、直接依賴性、不可間接依賴

)

在2NF中的“所在部門名稱”依賴編號,“所在部門簡介”既可依賴編號,也可依賴所在部門名稱,即每個部門都會有相應的簡介。此種情況不符合第3NF,經過如下改進後即可滿足第3NF:

員工資訊表
編號 姓名 性別 家庭地址所在省 家庭地址所在市 所在部門編號
1 張三 四川省 成都市 1
2 小鳳 四川省 達州市 2
部門資訊表
部門編號 部門名稱 部門簡介
1 研發部 專注於開發一系列軟體產品..
2 市場部 主要是在外面接單子、推銷產品等


相關推薦

簡單理解資料庫三大正規化

最近惡補一些大學的理論知識,感覺久了不看就忘了,在此簡單地總結一下自己理解的正規化。 一、首先簡單介紹一下正規化的歷史: 對於正規化主要是E.F.Codd做了大量的工作,1971~1972年他系統地提出了1NF、2NF和3NF的概念,討論了規範化的問題。1974年,Codd

關於資料庫三大正規化理解

三大正規化 1. 列不可分 列到底可不可分,和具體應用有關,不具有絕對性。在某應用中地址可能是不可分的,但在另外一個應用中可能會分為省份,城市,街道等等。 2. 消除部分依賴 假設 用大白話說,就是 對於單列主鍵,肯定不存在部分依賴,一

簡述資料庫三大正規化

第一正規化(1NF):原子性 欄位不可再分,否則就不是關係資料庫; 第二正規化(2NF):唯一性 一個表只說明一個事物; 第三正規化(3NF):每列都與主鍵有直接關係,不存在傳遞依賴; PS:第二正規化要遵循第一正規化,第三正規化要遵循第二正規化。   簡單來說: 1NF:列表欄位不可分

資料庫 三大正規化 通俗解釋

一、三大正規化通俗解釋: (1)簡單歸納:   第一正規化(1NF):欄位不可分;  第二正規化(2NF):有主鍵,非主鍵欄位依賴主鍵;  第三正規化(3NF):非主鍵欄位不能相互依賴。 (2)解釋:   1NF:原子性。 欄位不可再分,否則就不是關係資料庫;;  2NF:唯一性 。一個表只說明一個事

資料庫三大正規化及事務隔離級別

原文連結:https://www.cnblogs.com/linjiqin/archive/2012/04/01/2428695.html https://www.cnblogs.com/huanongying/p/7021555.html 在實際開發中最為常見的設計正規化有三個: 1.第一正規化(確保

MySQL資料庫三大正規化和反正規化

第一正規化(1NF): 資料表中的每一列(欄位),必須是不可拆分的最小單元,也就是確保每一列的原子性。 Table: t_user_info — — — — — —

資料庫三大正規化詳解(通俗易懂)

◆ 第一正規化(1NF):     強調的是列的原子性,即列不能夠再分成其他幾列。考慮這樣一個表:【聯絡人】(姓名,性別,電話)如果在實際場景中,一個聯絡人有家庭電話和公司電話,那麼這種表結構設計就沒有達到 1NF。要符合 1NF 我們只需把列(電話)拆分,即:【聯絡人】(

資料庫三大正規化

資料庫設計三大正規化 為了建立冗餘較小、結構合理的資料庫,設計資料庫時必須遵循一定的規則。在關係型資料庫中這種規則就稱為正規化。正規化是符合某一種設計要求的總結。要想設計一個結構合理的關係型資料庫,必須滿足一定的正規化。 在實際開發中最為常見的設計正規化有三個:

資料庫三大正規化解析

第一正規化(1NF) (必須有主鍵,列不可分) 資料庫表中的任何欄位都是單一屬性的,不可再分 create table aa(id int,NameAge varchar(100))  insert aa values(1,''無限-女 '')  沒有達到第一正規化

java資料庫三大正規化

引用知乎網友@ 王紅波的回答 一正規化就是屬性不可分割。屬性是什麼?就是表中的欄位。不可分割的意思就按字面理解就是最小單位,不能再分成更小單位了。這個欄位只能是一個值,不能被拆分成多個欄位,否則的話,它就是可分割的,就不符合一正規化。不過能不能分割並沒有絕對的答案,看需求,也就是看你的設計目標而定

資料庫三大正規化及示例

 正規化:英文名稱是 Normal Form,它是英國人 E.F.Codd(關係資料庫的老祖宗)在上個世紀70年代提出關係資料庫模型後總結出來的,正規化是關係資料庫理論的基礎,也是我們在設計資料庫結構過程中所要遵循的規則和指導方法。目前有跡可尋的共有8種正規化,依次是:1NF,2NF,3N

資料庫三大正規化及sql的基礎

第一正規化:確保每列的原子性 第二正規化:每個表中的每列都與主鍵關聯 第三正規化:每列與主鍵直接關聯,而不是間接關聯。 正規化是用來確定表是否需要拆分,列是否需要拆分。 資料庫儲存有組織的資料的容器(一個檔案或者是一組檔案) 表是某種特定型別資料的結構化

java面試-資料庫三大正規化

第一正規化第一正規化(1NF)要求資料庫表的每一列都是不可分割的基本資料項,同一列中不能有多個值。若某一列有多個值,可以將該列單獨拆分成一個實體,新實體和原實體間是一對多的關係。在任何一個關係資料庫中,

MySQL資料庫-三大正規化

第一正規化第一正規化(1NF)要求資料庫表的每一列都是不可分割的基本資料項,同一列中不能有多個值。若某一列有多個值,可以將該列單獨拆分成一個實體,新實體和原實體間是一對多的關係。在任何一個關係資料庫中,第一正規化(1NF)是對關係模式的基本要求,不滿足第一正規化(1NF)的資

資料庫三大正規化詳解

正規化:英文名稱是 Normal Form,它是英國人 E.F.Codd(關係資料庫的老祖宗)在上個世紀70年代提出關係資料庫模型後總結出來的,正規化是關係資料庫理論的基礎,也是我們在設計資料庫結構過程中所要遵循的規則和指導方法。目前有跡可尋的共有8種正規化,依次是:1NF,

資料庫SQL-資料庫三大正規化簡談

 相信,在學習資料庫知識時,大家都會碰到這個概念問題:資料三大泛式,同時,在面試過程中,可能大部分面試官也會提及這個問題。       首先,看看維基百科對於三大泛式的定義:      資料庫規範化,又稱資料庫或資料庫的正規化、標準化,是資料庫設計中的一系列原理和技術,以減少

資料庫三大正規化和反正規化

後一個正規化都是在滿足前一個正規化的基礎上建立的.1NF:無重複的列.表中的每一列都是不可分割的基本資料項.不滿足1NF的資料庫不是關係資料庫. 如聯絡人表(姓名,電話),一個聯絡人有家庭電話和公司電話,則不符合1NF,應拆分為(姓名,家庭電話,公司電話).2NF:屬性完全依賴於主鍵.不能存在僅依賴於關鍵一部

SqlServer資料庫三大正規化表設計標準

1 概述 一般地,在進行資料庫設計時,應遵循三大原則,也就是我們通常說的三大正規化,即第一正規化要求確保表中每列的原子性,也就是不可拆分;第二正規化要求確保表中每列與主鍵相關,而不能只與主鍵的某部分相關(主要針對聯合主鍵),主鍵列與非主鍵列遵循完全函式

資料庫三大正規化(較好理解版)

第一正規化(1NF):資料表中的每一列(每個欄位)必須是不可拆分的最小單元,也就是確保每一列的原子性 第二正規化(2NF):滿足1NF後,要求表中的所有列,都必須依賴於主鍵,而不能有任何一列與主鍵沒有關係,也就是說一個表只描述一件事情; 例如:訂單表只描述訂單相關

資料庫正規化簡單理解

資料庫設計當中三正規化是經常遇到的,如果實際專案資料庫設計中能達到第三正規化基本也就滿足要求了,那麼如何快速有效的理解三個正規化,同時應用於實際專案中去呢?首先看看標準定義的三個正規化:第一正規化(1NF)所謂第一正規化(1NF)是指資料庫表的每一列都是不可分割的基本資料項,