第一正規化第二正規化第三正規化怎麼區分

2021-03-06 20:50:26 字數 5128 閱讀 5911

1樓:devil小豬蹄子

滿足第一正規化 就是每個屬性都不可在拆分,滿足第二正規化,非屬性值要完全依賴主編碼 非碼屬性不相互依賴,滿足第三正規化,不存在傳遞依賴。

2樓:伊尚

第一正規化

第一正規化列不能再分。

第二正規化

第二正規化建立在第一正規化的基礎上,非主屬性完全依賴於碼。

簡單說:消除部分依賴。

表中可以唯一確定一個元組的某個屬性(或者屬性組),如果這樣的碼有不止一個,那麼大家都叫候選碼,我們從候選碼中挑一個出來做老大,它就叫主碼。注意碼可以包含多個屬性。

要理解第二第三正規化需要理解完全函式依賴、部分函式依賴、傳遞函式依賴。

實體:現實世界中客觀存在並可以被區別的事物。比如「一個學生」、「一本書」、「一門課」等等。

值得強調的是這裡所說的「事物」不僅僅是看得見摸得著的「東西」,它也可以是虛擬的,比如說「老師與學校的關係」。

屬性:教科書上解釋為:「實體所具有的某一特性」,由此可見,屬性一開始是個邏輯概念,比如說,「性別」是「人」的一個屬性。

在關聯式資料庫中,屬性又是個物理概念,屬性可以看作是「表的一列」。

3樓:sunny柔石

第一正規化列不能再分。第二正規化建立在第一正規化的基礎上,非主屬性完全依賴於碼。

簡單說:消除部分依賴。

要理解第二第三正規化需要理解完全函式依賴、部分函式依賴、傳遞函式依賴。

4樓:娛樂圈三圈

第一正規化:是對關係模式的

基本要求。不滿足第一正規化的關係,不能稱為關係型資料庫。符合第一正規化的關係,每個屬性都不可以再分割。

第二正規化:建立在第一正規化的基礎上,首先滿足第一正規化。

第三正規化(3nf):首先是 2nf,另外非主鍵列必須直接依賴於主鍵,不能存在傳遞依賴。即不能存在:非主鍵列 a 依賴於非主鍵列 b,非主鍵列 b 依賴於主鍵的情況。

5樓:無崖子浪逍遙

對這些它分為三個等式,第1個就是最先開始做的,第2個跟第3個就是往後排序,那麼也是比較直觀,一目瞭然,特別容易分別。

6樓:左手半夏右手花

1nf是所有關係型資料庫的最基本要求,根據2nf的定義,判斷的依據實際上就是看資料表中是否存在非主屬性對於碼的部分函式依賴。若存在,則資料表最高只符合1nf的要求,若不存在,則符合2nf的要求。

3nf在2nf的基礎之上,消除了非主屬性對於碼的傳遞函式依賴。也就是說, 如果存在非主屬性對於碼的傳遞函式依賴,則不符合3nf的要求。

符合1nf的關係(你可以把「關係」理解為資料表。此外還有一個「關係模式」的概念。「關係」和「關係模式」的區別,類似於物件導向程式設計中」類「與」物件「的區別。

」關係「是」關係模式「的一個例項,你可以把」關係」理解為一張帶資料的表,而「關係模式」是這張資料表的表結構。1nf的定義為:符合1nf的關係中的每個屬性都不可再分。

1nf是所有關係型資料庫的最基本要求,你在關係型資料庫管理系統(rdbms),例如sql server,oracle,mysql中建立資料表的時候,如果資料表的設計不符合這個最基本的要求,那麼操作一定是不能成功的。也就是說,只要在rdbms中已經存在的資料表,一定是符合1nf的。

7樓:匿名使用者

第一正規化第二正規化第三正規化可以從以下幾點區分:

1、第一正規化是所有關係型資料庫的最基本要求,你在關係型資料庫管理系統(rdbms),例如sql server,oracle,mysql中建立資料表的時候,如果資料表的設計不符合這個最基本的要求,那麼操作一定是不能成功的。也就是說,只要在rdbms中已經存在的資料表,一定是符合第一正規化的。

2、但是僅僅符合第一正規化的設計,仍然會存在資料冗餘過大,插入異常,刪除異常,修改異常的問題。正因為僅符合第一正規化的資料庫設計存在著這樣那樣的問題,我們需要提高設計標準,去掉導致上述四種問題的因素,使其符合更高一級的正規化(第二正規化),這就是所謂的「規範化」。

3、第三正規化在第二正規化的基礎之上,消除了非主屬性對於碼的傳遞函式依賴。也就是說, 如果存在非主屬性對於碼的傳遞函式依賴,則不符合第三正規化的要求。則就是第三正規化需要確保資料表中的每一列資料都和主鍵直接相關,而不能間接相關。

8樓:情感分析

根據我的區分,你說得對。正規化是符合一定水平的關係模式的集合。關聯式資料庫中的關係必須滿足某些要求,並且可以滿足不同的正規化以滿足不同級別的要求。

9樓:匿名使用者

不包含非原子項屬性的關係就是第一正規化的關係;對於第一正規化的關係,如果此關係中的每個非主屬性都完全函式依賴於主鍵,則此關係屬於第二正規化;對於第二正規化的關係,如果所有的非主屬性都不傳遞依賴於主鍵,則此關係就是第三正規化的。

10樓:楓橋映月夜泊

第一正規化:(1nf)無重複的列

第二正規化:(2nf)屬性完全依賴於主鍵

第三正規化:(3nf)屬性不依賴於其它非主屬性樓主問題中要的就是概念,可是還嫌暈,沒辦法啊,概念就是概念,結合實際理解一下就好了。

11樓:抉擇誰吧

這個我覺得確實非常的容易區分它,因為他就是按據這個流程進行分解的,那麼一目瞭然,當你看見的時候,你就能夠知道它為什麼會這麼區分。

12樓:把你賣給寡婦

,第一正規化就是無重複的列第二正規化(2nf)要求資料庫表中的每個例項戒行必須可以被惟一地區分

舉例說明一下怎麼算是第一正規化、第二正規化、第三正規化?

13樓:丶蘇酌

1.第一正規化:存在非主屬性對碼的部分依賴關係 r(a,b,c) ab是碼 c是非主屬性 b-->c b決定c c部分依賴於b。

如果關係r 中所有屬性的值域都是單純域,那麼關係模式r是第一正規化的。

那麼符合第一模式的特點就有:有主關鍵字、主鍵不能為空、主鍵不能重複,、欄位不可以再分。例如:

studyno   |   name   |   ***   |   contact

20040901      john         male      email:kkkk@ee.***,phone:222456

20040901      mary         famale    email:kkk@fff.*** phone:123455

以上的表就不符合,第一正規化:主鍵重複(實際中資料庫不允許重複的),而且contact欄位可以再分

所以變更為正確的是:

studyno   |   name   |   ***   |      email         |      phone

20040901      john         male       kkkk@ee.***       222456

20040902     mary          famale      kkk@fff.***      123455

2.第二正規化:存在非主屬性對碼的傳遞性依賴 r(a,b,c) a是碼 a -->b ,b-->c。

如果關係模式r是第一正規化的,而且關係中每一個非主屬性不部分依賴於主鍵,稱r是第二正規化的。所以第二正規化的主要任務就是:滿足第一正規化的前提下,消除部分函式依賴。

studyno   |   name   |   ***   |         email         |      phone    |   classno  | classaddress

01                  john        male       kkkk@ee.***     222456      200401            a樓2

01                   mary       famale    kkk@fff.***       123455      200402            a樓3

這個表完全滿足於第一正規化,主鍵由studyno和classno組成,這樣才能定位到指定行。但是,classaddress部分依賴於關鍵字(classno-〉classaddress,所以要變為兩個表:

表一studyno   |   name   |   ***   |      email         |      phone |   classno

01            john         male       kkkk@ee.***  222456   200401

01           mary         famale    kkk@fff.***    123455      200402

表二classno  | classaddress

200401      a樓2

200402      a樓3

3.第三正規化

不存在非主屬性對碼的傳遞性依賴以及部分性依賴 ,

studyno   |   name   |   ***   |      email         |      bounslevel   |   bouns

20040901      john         male       kkkk@ee.***   優秀                    $1000

20040902     mary         famale    kkk@fff.***       良                         $600

這個完全滿足了第二正規化,但是bounslevel和bouns存在傳遞依賴,更改為:

studyno   |   name   |   ***   |      email         |      bouunsno

20040901      john         male       kkkk@ee.***   1

20040902     mary         famale    kkk@fff.***       2

bounsno   |   bounslevel   |   bouns

1                   優秀                $1000

2                 良                   $600

這裡可以用bounsno作為主鍵,基於兩個原因

(1)不要用字元作為主鍵。可能有人說:如果我的等級一開始就用數值就代替呢?

(2)但是如果等級名稱更改了,不叫 1,2 ,3或優、良,這樣就可以方便更改,所以一般優先使用與業務無關的欄位作為關鍵字。

一般滿足前三個正規化就可以避免資料冗餘。

資料庫的一道題,資料庫關於第三正規化的一道題,急求解答,線上等。萬分感謝

這個問bai題求的不是 學數du據庫課程的學生的姓名和學zhi號 嘛。dao 像你說的,學生表裡 回有姓名學號,課程表裡有課程名答和課程號,但是隻靠這兩個表得不到選課的關係呀。就是說,學生表裡面是所有學生的資訊,課程表裡面是所有課程的資訊,但是不能知道哪個學生選了哪門課。選課的表裡面存的才是某個學號...

日語表示第一第二第三怎麼表示?我用

第一 第 二 來第三可以用,自通常是表示名次等有排位屬性的。要是列舉幾個點,中文第一點第二點第三點這樣排位性質不重的,通常用 也就是一 二 三 書面裡則直接 一 二 三就可以。阿拉伯數字也有用的,不多。排位還有用一番目 二番目 三番目等,和中文一樣變化形式很多。日語裡也是有第一,第二,第三 的。發音...

古人科舉考試第一第二第三,古人科舉考試第一第二第三分別叫什麼

第一叫狀元,第二叫榜眼,第三叫探花。常科考試最初由吏部考功員外郎主持,後改由禮部侍郎主持,稱 權知貢舉 進士及第稱 登龍門 第一名曰狀元或狀頭。同榜人要湊錢舉行慶賀活動,以同榜少年二人在名園探採名花,稱探花使。要集體到杏園參加宴會,叫探花宴。宴會以後,同到慈恩寺的雁塔下題名以顯其榮耀,所以把又把中進...