资源描述
,*,整理ppt,按一下以編輯母片,第二層,第三層,第四層,第五層,按一下以編輯母片標題樣式,按一下以編輯母片,第二層,第三層,第四層,第五層,按一下以編輯母片標題樣式,整理ppt,資料庫程式設計與系統管理,SQL Server 2005 Express,第三章,正規化,(,Normalization,),1,整理ppt,Chapter 3 Outline,引言,-,為何需要正規化,3-1,關聯式模式概念,3-2,關聯表的特性,3-3,關聯式限制,3-4,關聯表設計之要點,3-5,功能相依,3-6,正規化型式,3-7,本章總結,2,整理ppt,為何需要正規化,在關聯式資料庫中的關聯表必須,滿足某些限制特性才能避免發生一些已知的資料更新,(,新增、刪除、修改,),問題。而正規化,(Normalization),程序就是將關聯表轉換成符合限制特性的過程;或者說是為了要消除這些已知會引發問題的可能性。,3,整理ppt,3-1,關聯式模式概念,-1,關聯式模式,主要目的,達成高度的資料獨立,(Data Independence),減少資料重複性,(Data Redundancy),與資料一致性,(Data Consistency),。可經由正規化,(Normalization),及整合限制,(Integrity Constraints),達成此目標。,達成宣告式程式語言而非傳統程序式程式語言,而宣告式程式語言為,SQL,。,在關聯式模式中,資料庫是一群關聯表的集合,4,整理ppt,關聯表的外觀示意圖,5,整理ppt,3-1,關聯式模式概念,-2,值域:,為一群單元值,(Atomic Values),所成的集合,主要用途為定義資料的有效範圍,關聯綱要:,是由一個關聯表名稱,R,和一群屬性,A1,A2,An,所組成,每一個屬性,Ai,均有值域,Di,所對應,關聯表:,一個關聯綱要,R(A1,A2,An),的關聯表,r,,記號為,r(R),為一群值組,(Tuples),所成的集合,主鍵:,由一個或一個以上的屬性所組成,具有唯一性,6,整理ppt,3-1,關聯式模式概念,-3,關聯表的正式定義,標題,(Heading),:為關聯表,R,的綱要,包含了關聯表名稱(,name,)及一組屬性,(attributes,),本體(,body,),:指關聯表中資料部份,它是由值組(,tuples,)所組成,值組之內容與關聯表之基數(,cardinality,)是會隨時間變化。,7,整理ppt,3-2,關聯表的特性,關聯表的值組是沒有順序的,關聯表不含重覆的數值,關聯表的屬性是沒有順序的,關聯表中的屬性值是單元值,8,整理ppt,3-3,關聯式限制,-1,值域限制,:,規範關聯式綱要中每一屬性對應的值域有效範圍包括,資料型態(,data type,):限制值域的資料型態。,資料長度(,data length,):限制值域之資料長度之有效範圍。,資料範圍(,data range,):限制值域之資料有效範圍。,9,整理ppt,3-3,關聯式限制,-2,個體整合限制,(Entity Integrity Constraint),:,限制主鍵不能為空值。,參考整合限制,(Referential Integrity Constraint),:相對於值域限制和個體整合限制是規範個別關聯表的限制,參考整合限制是規範兩個關聯表中的值組間的限制。,外鍵,(Foreign Key/FK),:外鍵是用來規範兩個關聯式綱要之間的參考整合限制。,10,整理ppt,3-4,關聯表設計之要點,屬性的語意,所謂屬性的語意是指儲存在關聯表中之屬性值的解釋意義,亦即是屬性間的關係。,減少重覆的值組,新增不正常(,Insertion Anomalies,),刪除不正常(,Deletion Anomalies,),修改不正常(,Modification Anomalies,),減少空值,當某些屬性不能在每一值組中均能解釋其語意時,則會產生空值(,Null values,)的情況。,11,整理ppt,3-5,功能相依,-1,功能相依,(,Functional Dependencies/FD),:,若且為若關聯表,R,中的,X,資料值可唯一決定,Y,的資料值時,稱,Y,功能相依於,X,,記為,XY,,,(,讀做,X,功能決定,Y),,,其中,X,和,Y,為,R,中兩個屬性集合,。,FD,:,XY,可用右圖表示,例如:工作表中專案編號可以唯一專案名稱,所以這就是一條,FD,。,X,Y,專案編號,專案名稱,員工編號,姓名,工作類別,時薪,工作時數,12,整理ppt,3-5,功能相依,-2,部份功能相依(,Partial Functional Dependencies/PFD,):,關聯表,R,上存在一個功能相依,FD,:,XY,,如果從屬性集合,X,中移除任一屬性,A,時,則使得這個功能相依不存在,我們稱,Y,完全功能相依(,Fully Functional Dependencies,)於,X,;否則就稱,Y,部份功能相依於,X,。,表示法如下:,X1,X2,Y,員工編號,姓名,工作類別,時薪,13,整理ppt,3-6,正規化型式,第一正規化型式,(First Normal Form/1NF),第二正規化型式,(Second Normal Form/2NF),第三正規化型式,(Third Normal Form/3NF),Boyce/Codd,正規化型式(,Boyce/Codd Normal Form/BCNF,),第四正規化型式(,Fourth Normal Form/4NF,),第五正規化型式(,Fifth Normal Form/,簡稱,5NF,),14,整理ppt,3-6,正規化型式,-,關係圖,1NF5NF,的關係是子集的關係,也就是說限制越來越嚴格,5NF,4NF,BCNF,3NF,2NF,1NF,15,整理ppt,屬性,contact,為一個多值屬性,所以原始型式的關聯表,distributor,不是,1NF,3-6.1,第一正規化型式,一個關聯表,R,為第一正規化型式,若且唯若,R,所有屬性的相對值域只包含單元值。,這是,1NF,嗎?,Why?,16,整理ppt,非,1NF-1NF,17,整理ppt,3-6.2,第二正規化型式,一個關聯表,R,是第二正規化型式,若且唯若,R,為第一正規化型式,且所有不為主鍵的屬性都完全功能相依於關聯表,R,的主鍵。,該關聯表為,1NF,,但是為,2NF,嗎?,Why?,18,整理ppt,3.6.2 1NF-2NF,轉換原則:將關聯表分割成兩個,(,或兩個以上,),關聯表,而且分割後的關聯表必須維持不失真,19,整理ppt,3-6.3,第三正規化型式,一個關聯表,R,為第三正規化型式,若且唯若,R,為第二正規化型式,而且所有非鍵屬性彼此間都不存在功能相依。,該關聯表為,2NF,,但是為,3NF,嗎?,Why?,運費,新加入之欄位,20,整理ppt,3.6.1,非,3NF,所引發之問題,新增不正常:無法加入一個地區的運費,而該地區目前沒有供應商存在,刪除不正常:如果,distributor,第一個值組刪除,則連帶的亦把,“,台北之運費為,150,”,的資訊刪除掉。,更新不正常:將第二個值組的資料,新竹的運費更改為,400,,如果沒有將第三個值組的資料一併更新,則會產生資料不一致的情況。,21,整理ppt,3.6.3 2NF-3NF,將,2NF,關聯表,distributor,分割成兩張關聯表,如下:,22,整理ppt,範例:工作表,工作表(,專案編號,專案名稱,員工編號,姓名,工作類別,時薪,工作時數,),1NF,專案編號,專案名稱,員工編號,姓名,工作類別,時薪,工作時數,23,整理ppt,範例:工作表,1NF,1NF-2NF,專案表(專案編號,專案名稱),員工表,(員工編號,姓名,工作類別,時薪),工時表,(專案名稱,員工編號,工作時數),專案編號,專案名稱,員工編號,姓名,工作類別,時薪,工作時數,專案編號,專案名稱,員工編號,姓名,工作類別,時薪,專案編號,員工編號,工作時數,24,整理ppt,範例:工作表,2NF,2NF-3NF,員工表,(,員工編號,姓名,工作類別),時薪表,(,工作類別,時薪),員工編號,姓名,工作類別,時薪,員工編號,姓名,工作類別,工作類別,時薪,25,整理ppt,範例:工作表,3NF,專案表,(,專案編號,專案名稱),員工表,(,員工編號,姓名,工作類別),時薪表,(,工作類別,時薪),工時表,(,專案名稱,員工編號,工作時數),專案編號,專案名稱,員工編號,姓名,工作類別,工作類別,時薪,專案編號,員工編號,工作時數,26,整理ppt,3-7,本章總結,正規化(,Normalization,),消除資料重覆性,去除更新不正常的情況,簡化關聯表之屬性間限制條件,正規化型式的目的,1NF,:去除非單元值屬性,1NF2NF,:去除非鍵屬性的部份功能相依,2NF3NF,:去除非鍵屬性的遞移功能相依,27,整理ppt,
展开阅读全文