當前位置:法律諮詢服務網 - 企業資訊 - 數據庫的三種範式

數據庫的三種範式

關系數據庫設計範例介紹

. 1第壹範式(1NF)沒有重復的列。

第壹範式(1NF)是指數據庫表的每壹列都是不可分割的基本數據項,同壹列不能有多個值,即實體中的壹個屬性不能有多個值或重復屬性。如果有重復的屬性,您可能需要定義壹個新的實體。新實體由重復的屬性組成,新實體與原始實體之間是壹對多的關系。在第壹範式(1NF)中,表的每壹行只包含壹個信息實例。簡而言之,第壹範式是非重復列。

註意:在任何關系數據庫中,第壹範式(1NF)是對關系模式的基本要求,不滿足第壹範式(1NF)的數據庫不是關系數據庫。

1.2第二範式(2NF)屬性完全依賴於主鍵[消除壹些子函數依賴]

第二範式(2NF)是在第壹範式(1NF)的基礎上建立的,即要滿足第二範式(2NF),必須先滿足第壹範式(1NF)。第二範式(2NF)要求數據庫表中的每個實例或行必須是唯壹可區分的。為了區分,通常需要在表中添加壹列來存儲每個實例的唯壹標識。例如,將雇員編號(emp_id)列添加到雇員信息表中,因為每個雇員的雇員編號都是唯壹的,所以可以唯壹地區分每個雇員。這個唯壹的屬性列稱為主鍵或主鍵和主代碼。

第二範式(2NF)要求實體的屬性完全依賴於primary關鍵字。所謂完全依賴,就是不能有壹個屬性只依賴於main關鍵字的壹部分。如果有,那麽這個屬性和main關鍵字的這壹部分要分開,形成壹個新的實體,新實體和原實體的關系是壹對多的。為了區分,通常需要在表中添加壹列來存儲每個實例的唯壹標識。簡而言之,第二種範式是屬性完全依賴於主鍵。

1.3第三範式(3NF)屬性獨立於其他非主屬性[消除傳遞依賴]

要滿足第三範式(3NF),首先要滿足第二範式(2NF)。簡而言之,第三範式(3NF)要求數據庫表不包含已經包含在其他表中的非主關鍵字信息。例如,有壹個部門信息表,其中每個部門都有部門編號(dept_id)、部門名稱、部門檔案等信息。然後在員工信息表中列出部門編號後,就不能在員工信息表中添加部門名稱、部門檔案等部門相關信息。如果沒有部門信息表,就要按照第三範式(3NF)來構造,否則會有很多數據冗余。簡而言之,第三種範式是屬性不依賴於其他非主屬性。

二。範式的應用實例分析

以壹個學校的學生系統為例來說明這些範式的應用。首先,第壹範式(1NF):數據庫表中的字段都是單壹屬性,無法細分。這個單壹屬性由基本類型組成,包括整數、實數、字符、邏輯、日期等等。在任何當前的關系數據庫管理系統(DBMS)中,傻瓜都不可能做出不符合第壹範式的數據庫,因為這些DBMS不允許將數據庫表的壹列分成兩列或更多列。因此,您不可能在現有的DBMS中設計不符合第壹範式的數據庫。

首先,我們要確定我們要設計的東西包括那些。學號、學名、年齡、性別、課程、課程學分、院系、學習成績、院系辦公室地址、院系辦公室電話等信息。為簡單起見,我們暫時只考慮這些字段。我們從以下幾個方面關註這壹信息。

學生有哪些基本信息?

學生們學了什麽課程,成績如何?

每門課的學分是多少?

學生屬於哪個系,系的基本信息是什麽?

2.1第二範式(2NF)案例分析

首先,我們考慮將所有這些信息(學號、學名、年齡、性別、課程、課程學分、系、科目成績、系辦公室地址、系辦公室電話)放在壹個表下有以下依賴關系。

(學號)→(姓名、年齡、性別、部門、部門辦公地址、部門辦公電話)

(課程名稱)→(學分)

(學號,課程)→(學習成績)

2.1.1問題分析

因此,如果不滿足第二範式的要求,就會出現以下問題。

數據冗余:同壹門課被n個學生選擇,“學分”重復n-1次;同壹個學生上了M門課,名字和年齡重復了m-1次。

更新異常:

1)如果某門課程的學分調整,數據表中所有行的“學分”值都要更新,否則會出現同壹門課程的不同學分。

2)假設要開壹門新課程,還沒有人學過。這樣,由於沒有“學號”關鍵字,數據庫中無法記錄課程名稱和學分。

刪除時的異常:假設壹組學生已經完成了選修課,這些選修記錄應該從數據庫表中刪除。但同時,課程名稱和學分信息也被刪除。顯然,這也會導致插入異常。

2.1.2溶液

將選課關系表更改為以下三個表:

學生:學生(學號、姓名、年齡、性別、系、系辦公室地址、系辦公室電話);

課程:課程(課程名稱、學分);

選課關系:SelectCourse(學號,課程名稱,年級)。

2.2第三範式(3NF)案例分析

然後看上面的學生表(學號、姓名、年齡、性別、院系、院系地址、院系電話),關鍵詞是單個關鍵詞“學號”,因為有以下決定關系:

(學號)→(姓名、年齡、性別、部門、部門辦公地址、部門辦公電話)

但也有以下幾個決定性的關系。

(學號)→(學院)→(學院地點,學院電話)

即非關鍵字段“學院位置”和“學院電話”依賴於關鍵字段“學號”的傳遞函數。

它還具有數據冗余、更新異常、插入異常和刪除異常。(這裏不分析數據的更新和刪除,可以參考2.1.1進行分析)。

根據第三範式,學生關系表可以分為以下兩個表來滿足第三範式:

學生:(學號、姓名、年齡、性別、系);

部門:(部門,部門辦公地址,部門辦公電話)。

摘要

上述數據庫表符合I、II、III範式,消除數據冗余,更新異常,插入異常,刪除異常。

  • 上一篇:適合窮人去的幾個城市,比較窮的城市
  • 下一篇:安徽水利發展有限公司企業榮譽
  • copyright 2024法律諮詢服務網