『壹』 解釋第一範式,第二範式和第三範式的含義;
第一範式(1NF):強調的是列的原子性,即列不能夠再分成其他幾列。
第二範式(2NF):首先是 1NF,另外包含兩部分內容,一是表必須有一個主鍵;二是沒有包含在主鍵中的列必須完全依賴於主鍵,而不能只依賴於主鍵的一部分。
第三範式(3NF):首先是 2NF,另外非主鍵列必須直接依賴於主鍵,不能存在傳遞依賴。即不能存在:非主鍵列 A 依賴於非主鍵列 B,非主鍵列 B 依賴於主鍵的情況。
『貳』 sql中三範式的特點
第一,欄位不可再分,即原子性,第二,滿足一,每個欄位都與主鍵相關!第三,滿足一二,保證與主鍵直接相關!
『叄』 關於資料庫三大設計範式淺析
為了建立冗餘較小、結構合理的資料庫,設計資料庫時必須遵循一定的規則。在關系型資料庫中這種規則就稱為範式。範式是符合某一種設計要求的總結。要想設計一個結構合理的關系型資料庫,必須滿足一定的範式。
真正要明白」範式(NF)」是什麼意思,首先看下教材中的定義,範式是「符合某一種級別的關系模式的集合,表示一個關系內部各屬性之間的聯系的合理化程度」。實際上可以把它粗略地理解為一張數據表的表結構所符合的某種設計標準的級別。就像家裡裝修買建材,最環保的是E0級,其次是E1級,還有E2級等等。資料庫範式也分為1NF,2NF,3NF,BCNF,4NF,5NF。一般在我們設計關系型資料庫的時候,最多考慮到BCNF就夠。符合高一級範式的設計,必定符合低一級範式,例如符合2NF的關系模式,必定符合1NF。
在實際開發中最為常見的設計範式有三個:
首先是第一範式(1NF)。
符合1NF的關系(你可以理解為數據表。「關系」和「關系模式」的區別,類似於面向對象程序設計中」類「與」對象「的區別。」關系「是」關系模式「的一個實例,你可以把」關系」理解為一張帶數據的表,而「關系模式」是這張數據表的表結構。1NF的定義為:符合1NF的關系中的每個屬性都不可再分。表1所示的情況,就不符合1NF的要求。
這樣在查詢訂單信息的時候,就可以使用客戶編號來引用客戶信息表中的記錄,也不必在訂單信息表中多次輸入客戶信息的內容,減小了數據冗餘。
由此可見,符合3NF要求的資料庫設計,基本上解決了數據冗餘過大,插入異常,修改異常,刪除異常的問題。當然,在實際中,往往為了性能上或者應對擴展的需要,經常 做到2NF或者1NF,但是作為資料庫設計人員,至少應該知道,3NF的要求是怎樣的。
『肆』 有沒有用同一個表來介紹SQL的三大範式的例子
首先就得知道什麼是sql的三大範式
1.什麼是資料庫三範式?分別是哪三範式?各有什麼優缺點?
所謂第一範式(1NF)是指資料庫表的每一列都是不可分割的基本數據項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重復的屬性。如果出現重復的屬性,就可能需要定義一個新的實體,新的實體由重復的屬性構成,新實體與原實體之間為一對多關系。在第一範式(1NF)中表的每一行只包含一個實例的信息。簡而言之,第一範式就是無重復的列。說明:在任何一個關系資料庫中,第一範式(1NF)是對關系模式的基本要求,不滿足第一範式(1NF)的資料庫就不是關系資料庫。
第二範式(2NF)是在第一範式(1NF)的基礎上建立起來的,即滿足第二範式(2NF)必須先滿足第一範式(1NF)。第二範式(2NF)要求資料庫表中的每個實例或行必須可以被惟一地區分。為實現區分通常需要為表加上一個列,以存儲各個實例的惟一標識。例如員工信息表中加上了員工編號(emp_id)列,因為每個員工的員工編號是惟一的,因此每個員工可以被惟一區分。這個惟一屬性列被稱為主關鍵字或主鍵、主碼。
第二範式(2NF)要求實體的屬性完全依賴於主關鍵字。所謂完全依賴是指不能存在僅依賴主關鍵字一部分的屬性,如果存在,那麼這個屬性和主關鍵字的這一部分應該分離出來形成一個新的實體,新實體與原實體之間是一對多的關系。為實現區分通常需要為表加上一個列,以存儲各個實例的惟一標識。簡而言之,第二範式就是屬性完全依賴於主鍵。
滿足第三範式(3NF)必須先滿足第二範式(2NF)。簡而言之,第三範式(3NF)要求一個資料庫表中不包含已在其它表中已包含的非主關鍵字信息。例如,存在一個部門信息表,其中每個部門有部門編號(dept_id)、部門名稱、部門簡介等信息。那麼在的員工信息表中列出部門編號後就不能再將部門名稱、部門簡介等與部門有關的信息再加入員工信息表中。如果不存在部門信息表,則根據第三範式(3NF)也應該構建它,否則就會有大量的數據冗餘。簡而言之,第三範式就是屬性不依賴於其它非主屬性。
問題分析
因此不滿足第二範式的要求,會產生如下問題
數據冗餘: 同一門課程由n個學生選修,"學分"就重復n-1次;同一個學生選修了m門課程,姓名和年齡就重復了m-1次。
更新異常:
1)若調整了某門課程的學分,數據表中所有行的"學分"值都要更新,否則會出現同一門課程學分不同的情況。
2)假設要開設一門新的課程,暫時還沒有人選修。這樣,由於還沒有"學號"關鍵字,課程名稱和學分也無法記錄入資料庫。
刪除異常 : 假設一批學生已經完成課程的選修,這些選修記錄就應該從資料庫表中刪除。但是,與此同時,課程名稱和學分信息也被刪除了。很顯然,這也會導致插入異常。2.1.2 解決方案
把選課關系表SelectCourse改為如下三個表:學生:Student(學號,姓名, 年齡,性別,系別,系辦地址、系辦電話);課程:Course(課程名稱, 學分);選課關系:SelectCourse(學號, 課程名稱, 成績)。2.2 第三範式(3NF)實例分析
接著看上面的學生表Student(學號,姓名, 年齡,性別,系別,系辦地址、系辦電話),關鍵字為單一關鍵字"學號",因為存在如下決定關系:
(學號)→ (姓名, 年齡,性別,系別,系辦地址、系辦電話)
但是還存在下面的決定關系
(學號) → (所在學院)→(學院地點, 學院電話)
即存在非關鍵欄位"學院地點"、"學院電話"對關鍵欄位"學號"的傳遞函數依賴。
它也會存在數據冗餘、更新異常、插入異常和刪除異常的情況。 (數據的更新,刪除異常這里就不分析了,可以參照2.1.1進行分析)
根據第三範式把學生關系表分為如下兩個表就可以滿足第三範式了:
學生:(學號, 姓名, 年齡, 性別,系別);
系別:(系別, 系辦地址、系辦電話)。
總結
上面的資料庫表就是符合I,II,III範式的,消除了數據冗餘、更新異常、插入異常和刪除異常。
希望對你有幫助哈
『伍』 SQL Server資料庫設計中的三大範式
是資料庫設計過程中邏輯設計階段所使用的技術,指關系資料庫中的關系滿足的條件,第一範式是滿足最低的要求,指資料庫表的每一列都是不可分割的基本數據項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重復的屬性。如果出現重復的屬性,就可能需要定義一個新的實體,新的實體由重復的屬性構成,新實體與原實體之間為一對多關系。在第一範式(1NF)中表的每一行只包含一個實例的信息。簡而言之,第一範式就是無重復的列。
在滿足第一範式要求的基礎上,要求實體的屬性完全依賴於主關鍵字。所謂完全依賴是指不能存在僅依賴主關鍵字一部分的屬性,如果存在,那麼這個屬性和主關鍵字的這一部分應該分離出來形成一個新的實體,新實體與原實體之間是一對多的關系。為實現區分通常需要為表加上一個列,以存儲各個實例的唯一標識。簡而言之,第二範式就是屬性完全依賴於主鍵。
在滿足第二範式的基礎上,要求一個資料庫表中不包含已在其它表中已包含的非主關鍵字信息。例如,存在一個部門信息表,其中每個部門有部門編號(dept_id)、部門名稱、部門簡介等信息。那麼在的員工信息表中列出部門編號後就不能再將部門名稱、部門簡介等與部門有關的信息再加入員工信息表中。如果不存在部門信息表,則根據第三範式(3NF)也應該構建它,否則就會有大量的數據冗餘。簡而言之,第三範式就是屬性不依賴於其它非主屬性。
『陸』 第一範式第二範式第三範式怎麼區分
滿足第一範式 就是每個屬性都不可在拆分,滿足第二範式,非屬性值要完全依賴主編碼 非碼屬性不相互依賴,滿足第三範式,不存在傳遞依賴。
『柒』 資料庫有幾種範式
目前關系資料庫有六種範式,即第一範式(1NF)、第二範式(2NF)、第三範式(3NF)、巴斯−科德範式(BCNF)、第四範式(4NF)和第五範式(5NF,又稱完美範式)。滿足最低要求的範式是第一範式(1NF)。在第一範式的基礎上進一步滿足更多規范要求的稱為第二範式(2NF),其餘範式依次類推。一般來說,資料庫只需滿足第三範式(3NF)。
第一範式(1NF)第一範式(1NF)是指在關系模型中,對域添加的一個規范要求,所有的域都應該是原子性的,即資料庫表的每一列都是不可分割的原子數據項,而不是集合、數組、記錄等非原子數據項。即實體中的某個屬性有多個值時,必須拆分為不同的屬性。在符合第一範式(1NF)表中的每個域值只能是實體的一個屬性或一個屬性的一部分。
簡而言之,第一範式(1NF)是最基本的範式,如果資料庫表中的所有欄位值都是不可分解的原子值,就說明該資料庫表滿足第一範式(1NF)。在任何一個關系資料庫中,第一範式(1NF)是對關系模式設計的基本要求,所有設計的數據模型都必須滿足第一範式(1NF)。
從上面的定義描述中,可以歸納出第一範式(1NF)具有如下幾個顯著特點:((1)資料庫表中的欄位都是單一屬性。
①欄位不可再分。
②同一列中不能有多個值。
(2)單一屬性由基本類型構成。
①整型。
②實數。
③字元型。
④邏輯型。
⑤日期型。
⑥其他類型。
滿足以上兩大特徵的表就是符合第一範式(1NF)的表,不滿足以上任一特徵的表都是不符合第一範式(1NF)的表。
例如,圖欄位可再分的表所示的「電話」欄位可以再拆分成「手機」與「座機」欄位,不滿足「欄位不可再分」的要求,因此不符合第一範式(1NF)要求。
欄位可再分的表
又如,圖欄位可再分的表所示的「姓名」欄位包含「張偉」與「宋鑫」兩個值,不滿足「同一列中不能有多個值」的要求,因此也不符合第一範式(1NF)要求。
同一列中有多個值的表
第二範式(2NF)第二範式(2NF)是在第一範式(1NF)的基礎上建立起來的,即滿足第二範式(2NF)必須先滿足第一範式(1NF)。第二範式(2NF)要求資料庫表中的每個實例或記錄必須可以被唯一地區分。選取一個能區分每個實體的屬性或屬性組,作為實體的唯一標識。例如,員工表中的身份證號碼即可實現每個員工的區分,該身份證號碼即候選鍵,任何一個候選鍵都可以被選作主鍵。在找不到候選鍵時,可額外增加屬性以實現區分。如果在員工關系中沒有對其身份證號碼進行存儲,而姓名可能會在資料庫運行的某個時間重復,無法區分出實體時,設計身份證號碼等不重復的編號以實現區分,被添加的編號選作主鍵。注意:該主鍵的添加是在ER設計時添加,不是在建庫時隨意添加。
第二範式(2NF)要求實體的屬性完全依賴於主關鍵字。所謂完全依賴,是指不能存在僅依賴主關鍵字一部分的屬性,如果存在,那麼這個屬性和主關鍵字的這一部分應該分離出來形成一個新的實體,新實體與原實體之間是一對多的關系。為實現區分,通常需要為表加上一個列,以存儲各個實例的唯一標識。
簡而言之,第二範式(2NF)在第一範式(1NF)的基礎之上更進一層。第二範式(2NF)需要確保資料庫表中的每一列都和主鍵相關,而不能只與主鍵的某一部分相關(主要針對聯合主鍵而言)。也就是說在一個資料庫表中,一個表中只能保存一種數據,不可以把多種數據保存在同一個資料庫表中。
所謂聯合主鍵,是指由兩個或兩個以上的欄位共同組成數據表的主鍵。如圖聯合主鍵表所示,單憑「客戶」欄位無法確定表中唯一的記錄,單憑「開戶銀行」欄位也無法確定表中唯一的與「開戶銀行」一起組成數據表的聯合主鍵。
聯合主鍵表
從上面的定義描述中,可以歸納出第二範式(2NF)具有如下幾個顯著特點:((1)資料庫表滿足第一範式(1NF)。
(2)資料庫中每個表均有主鍵。
①單欄位主鍵。
②聯合主鍵。即不能存在單個主鍵欄位決定非主鍵欄位的情況。
例如,表中有A、B、C、D、E五個欄位,若A與B為聯合主鍵(A,B),如有A決定C的情況(A→C),則不符合第二範式(2NF)。
滿足以上特徵的表就是符合第二範式(2NF)的表,不滿足以上任何一特徵的表都是不符合第二範式(2NF)的表。
例如,如圖所示,所有欄位均不可再拆分,因而滿足第一範式(1NF)的要求,但表中沒有任何一個欄位可以確定表中的唯一記錄,即表中沒有主鍵,因此其不滿足「資料庫中每張表均有主鍵」的要求,所以不符合第二範式(2NF)要求。
又如,如圖所示,滿足第一範式(1NF)的要求,並且在原來的基礎上增加了「ID」欄位作為表的主鍵,因此其符合第二範式(2NF)要求。
沒有主鍵的數據表
增加了主鍵的數據表
重新分析圖1−3所示的聯合主鍵表,此表符合第一範式(1NF)「欄位不可再拆分」的要求,並且有「客戶」與「開戶銀行」兩個欄位作為表的聯合主鍵(客戶,開戶銀行),但其是否就是一個符合第二範式(2NF)的表呢?
進一步分析,就可以發現:「客戶電話」欄位由「客戶」欄位決定,「開戶行地址」欄位由「開戶銀行」欄位決定;即存在如下依賴關系:客戶→客戶電話,開戶銀行→開戶行地址。
(客戶,開戶銀行)為主鍵欄位,(客戶電話,開戶行地址)為非主鍵欄位,因此,其不符合聯合主鍵中「不能存在單個主鍵欄位決定非主鍵欄位」的情況,所以可以認定其並不是符合第二範式(2NF)的數據表。
例1.1判斷如圖所示的學生信息表是否符合第二範式(2NF)。
圖所示中存在聯合主鍵(學號,課程編號),但存在(學號→姓名)、(課程編號→課程名)的依賴關系,即存在某個主鍵欄位決定非主鍵欄位的情況,因此其不符合第二範式(2NF),不是第二範式(2NF)表。可考慮把此表拆成分數表(見圖)、課程表(見圖)和姓名表(見圖),則此三個表是符合第二範式(2NF)的表。
圖學生信息表
圖分數表
圖課程表
圖姓名表
第三範式(3NF)第三範式(3NF)是第二範式(2NF)的一個子集,即滿足第三範式(3NF)必須滿足第二範式(2NF)。第三範式(3NF)要求一個關系中不包含已在其他關系包含的非主關鍵字信息。
第三範式(3NF)就是任何非主屬性不依賴於其他非主屬性,也就是在滿足第二範式(2NF)的基礎上,任何非主屬性不得傳遞依賴於主屬性。第三範式(3NF)需要確保數據表中的每一列數據都和主鍵直接相關,而不能間接相關。數據不能存在傳遞關系,即每個屬性都跟主鍵有直接關系而不是間接關系。如屬性之間含有A→B→C這樣的關系,是不符合第三範式(3NF)的。
當數據表不符合第三範式(3NF)時,會有大量的冗餘數據,還會存在插入異常、刪除異常、數據冗餘度大、修改復雜等問題。
從上面的定義描述中,可以歸納出第三範式(3NF)具有如下幾個顯著特點:((1)資料庫表滿足第二範式。
(2)資料庫表的非主鍵欄位不存在傳遞依賴關系(即非主鍵欄位不能決定其他非主鍵欄位)。例如,表中有A、B、C、D、E五個欄位,若A為主鍵,如有C決定D的情況(C→D)則不符合第三範式(3NF)。
滿足以上特徵的表就是符合第三範式(3NF)的表,不滿足以上任何一特徵的表都是不符合第三範式(3NF)的表。
如圖所示,表中有主鍵(工號),因而滿足第二範式(2NF)的要求;但表中非主鍵欄位間存在傳遞依賴關系:非主鍵欄位「部門」決定非主鍵欄位「部門電話」和「部門主管」(部門→部門電話,部門→部門主管),因此不符合第三範式(3NF)的要求。
圖非主鍵欄位存在傳遞依賴關系的表
例1.2判斷圖所示的學生院屬信息表是否符合第三範式(3NF)。
圖學生院屬信息表
圖中有主鍵(學號),則滿足第二範式(2NF)的要求,但存在(所在學院→學院電話)、(所在學院→學院地點),即存在非主鍵欄位決定其他非主鍵欄位的情況,因此其不符合第三範式(3NF)的要求,不是第三範式(3NF)表。可考慮把此表拆成學生表(見圖)和學院表(見圖),則兩個表是符合第三範式(3NF)的表。
圖學生表
圖學院表
『捌』 SQL server第一、第二、第三範式
一範式(1NF):在關系模式R中的每一個具體關系r中,如果每個屬性值 都是不可再分的最小數據單位,則稱R是第一範式的關系。例:如職工號,姓名,電話號碼組成一個表(一個人可能有一個辦公室電話 和一個家裡電話號碼) 規范成為1NF有三種方法:
一是重復存儲職工號和姓名。這樣,關鍵字只能是電話號碼。
二是職工號為關鍵字,電話號碼分為單位電話和住宅電話兩個屬性
三是職工號為關鍵字,但強制每條記錄只能有一個電話號碼。
以上三個方法,第一種方法最不可取,按實際情況選取後兩種情況。
第二範式(2NF):如果關系模式R(U,F)中的所有非主屬性都完全依賴於任意一個候選關鍵字,則稱關系R 是屬於第二範式的。
例:選課關系 SCI(SNO,CNO,GRADE,CREDIT)其中SNO為學號, CNO為課程號,GRADEGE 為成績,CREDIT 為學分。 由以上條件,關鍵字為組合關鍵字(SNO,CNO)
在應用中使用以上關系模式有以下問題:
a.數據冗餘,假設同一門課由40個學生選修,學分就 重復40次。
b.更新異常,若調整了某課程的學分,相應的元組CREDIT值都要更新,有可能會出現同一門課學分不同。
c.插入異常,如計劃開新課,由於沒人選修,沒有學號關鍵字,只能等有人選修才能把課程和學分存入。
d.刪除異常,若學生已經結業,從當前資料庫刪除選修記錄。某些門課程新生尚未選修,則此門課程及學分記錄無法保存。
原因:非關鍵字屬性CREDIT僅函數依賴於CNO,也就是CREDIT部分依賴組合關鍵字(SNO,CNO)而不是完全依賴。
解決方法:分成兩個關系模式 SC1(SNO,CNO,GRADE),C2(CNO,CREDIT)。新關系包括兩個關系模式,它們之間通過SC1中的外關鍵字CNO相聯系,需要時再進行自然聯接,恢復了原來的關系
『玖』 SQL server第一、第二、第三範式
所謂範式就是符合某一種級別的關系模式的集合。通過分解把屬於低級範式的關系模式轉換為幾個屬於高級範式的關系模式的集合。這一過程稱為規范化。
1、
第一範式(1NF):一個關系模式R的所有屬性都是不可分的基本數據項。
2、
第二範式(2NF):關系模式R屬於第一範式,且每個非主屬性都完全函數依賴於鍵碼。
3、
第三範式(3NF):關系模式R屬於第一範式,且每個非主屬性都不偉遞領帶於鍵碼。
4、
BC範式(BCNF):關系模式R屬於第一範式,且每個屬性都不傳遞依賴於鍵碼。
不到第一範式:
create
學生(姓名,性別年齡)
----(因為性別年齡列包括了兩個屬性)
第一範式不到第二範式:
create
學生(姓名,性別,年齡,語文老師名)
--(因為老師列不是完全函數依賴於鍵碼)
第二範式不到第三範式
create
學生(姓名,性別,年齡,語文老師id,數學老師id)
create
老師(老師id,老師名,老師年齡)
第三範式不到第四範式
create
學生(學生id,姓名,性別,年齡,籍貫)
create
關系表(學生id,老師id)
create
老師(老師id,老師名,老師年齡,籍貫)
第四範式
create
學生(學生id,姓名,性別,年齡,籍貫id)
create
關系表(學生id,老師id)
create
老師(老師id,老師名,老師年齡,籍貫id)
cteate
籍貫表(id,籍貫)
『拾』 SQL資料庫三大範式
c
資料庫範式1NF 2NF 3NF BCNF(實例)
設計範式(範式,資料庫設計範式,資料庫的設計範式)是符合某一種級別的關系模式的集合。構造資料庫必須遵循一定的規則。在關系資料庫中,這種規則就是範式。關系資料庫中的關系必須滿足一定的要求,即滿足不同的範式。目前關系資料庫有六種範式:第一範式(1NF)、第二範式(2NF)、第三範式(3NF)、第四範式(4NF)、第五範式(5NF)和第六範式(6NF)。滿足最低要求的範式是第一範式(1NF)。在第一範式的基礎上進一步滿足更多要求的稱為第二範式(2NF),其餘範式以次類推。一般說來,資料庫只需滿足第三範式(3NF)就行了。下面我們舉例介紹第一範式(1NF)、第二範式(2NF)和第三範式(3NF)。
在創建一個資料庫的過程中,范化是將其轉化為一些表的過程,這種方法可以使從資料庫得到的結果更加明確。這樣可能使資料庫產生重復數據,從而導致創建多餘的表。范化是在識別資料庫中的數據元素、關系,以及定義所需的表和各表中的項目這些初始工作之後的一個細化的過程。
下面是范化的一個例子 Customer Item purchased Purchase price Thomas Shirt $40 Maria
Tennis shoes $35 Evelyn Shirt $40 Pajaro Trousers $25
如果上面這個表用於保存物品的價格,而你想要刪除其中的一個顧客,這時你就必須同時刪除一個價格。范化就是要解決這個問題,你可以將這個表化為兩個表,一個用於存儲每個顧客和他所買物品的信息,另一個用於存儲每件產品和其價格的信息,這樣對其中一個表做添加或刪除操作就不會影響另一個表。
關系資料庫的幾種設計範式介紹
1 第一範式(1NF)
在任何一個關系資料庫中,第一範式(1NF)是對關系模式的基本要求,不滿足第一範式(1NF)的資料庫就不是關系資料庫。
所謂第一範式(1NF)是指資料庫表的每一列都是不可分割的基本數據項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重復的屬性。如果出現重復的屬性,就可能需要定義一個新的實體,新的實體由重復的屬性構成,新實體與原實體之間為一對多關系。在第一範式(1NF)中表的每一行只包含一個實例的信息。例如,對於圖3-2
中的員工信息表,不能將員工信息都放在一列中顯示,也不能將其中的兩列或多列在一列中顯示;員工信息表的每一行只表示一個員工的信息,一個員工的信息在表中只出現一次。簡而言之,第一範式就是無重復的列。
2 第二範式(2NF)
第二範式(2NF)是在第一範式(1NF)的基礎上建立起來的,即滿足第二範式(2NF)必須先滿足第一範式(1NF)。第二範式(2NF)要求資料庫表中的每個實例或行必須可以被惟一地區分。為實現區分通常需要為表加上一個列,以存儲各個實例的惟一標識。如圖3-2
員工信息表中加上了員工編號(emp_id)列,因為每個員工的員工編號是惟一的,因此每個員工可以被惟一區分。這個惟一屬性列被稱為主關鍵字或主鍵、主碼。
第二範式(2NF)要求實體的屬性完全依賴於主關鍵字。所謂完全依賴是指不能存在僅依賴主關鍵字一部分的屬性,如果存在,那麼這個屬性和主關鍵字的這一部分應該分離出來形成一個新的實體,新實體與原實體之間是一對多的關系。為實現區分通常需要為表加上一個列,以存儲各個實例的惟一標識。簡而言之,第二範式就是非主屬性非部分依賴於主關鍵字。
3 第三範式(3NF)
滿足第三範式(3NF)必須先滿足第二範式(2NF)。簡而言之,第三範式(3NF)要求一個資料庫表中不包含已在其它表中已包含的非主關鍵字信息。例如,存在一個部門信息表,其中每個部門有部門編號(dept_id)、部門名稱、部門簡介等信息。那麼在圖3-2的員工信息表中列出部門編號後就不能再將部門名稱、部門簡介等與部門有關的信息再加入員工信息表中。如果不存在部門信息表,則根據第三範式(3NF)也應該構建它,否則就會有大量的數據冗餘。簡而言之,第三範式就是屬性不依賴於其它非主屬性。