chapter08 functional dependencies and normalization for relational databases

17
2110422 การออกแบบระบบการจัดการฐานขอมูล 8-1 ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย บทที8* ฟงกชันนัลดีเพนเดนซีและ นอรมาไลเซชันสําหรับฐานขอมูลเชิงสัมพันธ Functional Dependencies and Normalization for Relational Databases วัตถุประสงค 1. เพื่อใหมีความเขาใจในนอรมาไลเซชัน 2. เพื่อใหมีความเขาใจในเรื่องความซ้ําซอนของขอมูลในทูเพิล และการอัพเดทอะนอรมาลี 3. เพื่อใหมีความเขาใจในเรื่องของ Functional Dependency 4. เพื่อใหมีความเขาใจและสามารถจัดทํา First Normal form ได 5. เพื่อใหมีความเขาใจและสามารถจัดทํา Second Normal form ได 6. เพื่อใหมีความเขาใจและสามารถจัดทํา Third Normal form ได 7. เพื่อใหมีความเขาใจและสามารถจัดทํา Boyce-Codd Normal form ได 8.1 แนวทางการออกแบบสําหรับฐานขอมูลเชิงสัมพันธ (Informal Design Guidelines for Relational Database) เมื่อคิดวาการออกแบบฐานขอมูลเชิงสัมพันธ (Relational database design) คืออะไร อาจจะกลาวไดวาคือการ พยายามจัดกลุมของแอทตริบิวต (Grouping of attributes) เพื่อจะทําการรวม relation schemas ที่ดี โดย สามารถที่จะแบง relation schemas ออกเปนสองระดับนั้นคือ ระดับมุมมองเชิงตรรกะของผูใชงาน (The logical “user view” level) ระดับความสัมพันธพื้นฐานของถังขอมูล (The storage “base relation” level) โดยการออกแบบหลัก แลวจะคํานึงถึงความสัมพันธพื้นฐาน หรือ base relations และนอกจากนั้นจะตองหา ปจจัยหรือ criteria สําหรับ good base relations ทั้งนี้อาจเริ่มพิจารณาถึงแนวทางอยางไมเปนทางการในการออกแบบเชิงสัมพันธที่เหมาะสมกอน หลังจากนั้นจะทํา การพิจารณาถึงแนวทางอยางเปนทางการในการเชื่อมโยงฟงกชัน (Functional dependencies) และ นอรมัล ฟอรม (Normal forms) โดยจะแบงออกไดดังนี1NF (First Normal Form) 2NF (Second Normal Form) 3NF (Third Normal Form) BCNF (Boyce-Codd Normal Form) โดยการเชื่อมโยงประเภทอื่น นอกจากนอรมัลฟอรม นั่นคือ อัลกอริทึมในการออกแบบเชิงสัมพันธ (Relational design algorithms) โดยใชวิธีการสังเคราะหที่จะไดกลาวถึงในบทตอไป * อางอิงจากบทที10 ของเอกสารอางอิง [1]

Upload: phichya-laemluang

Post on 10-Apr-2015

1.285 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: chapter08 functional dependencies and normalization for relational databases

2110422 การออกแบบระบบการจัดการฐานขอมูล 8-1 ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย

บทที่ 8* ฟงกชันนัลดีเพนเดนซีและ นอรมาไลเซชันสําหรับฐานขอมูลเชิงสัมพันธ

Functional Dependencies and Normalization for Relational Databases

วัตถุประสงค 1. เพื่อใหมีความเขาใจในนอรมาไลเซชัน 2. เพื่อใหมีความเขาใจในเรื่องความซ้ําซอนของขอมูลในทูเพิล และการอัพเดทอะนอรมาลี 3. เพื่อใหมีความเขาใจในเรื่องของ Functional Dependency 4. เพื่อใหมีความเขาใจและสามารถจัดทํา First Normal form ได 5. เพื่อใหมีความเขาใจและสามารถจัดทํา Second Normal form ได 6. เพื่อใหมีความเขาใจและสามารถจัดทํา Third Normal form ได 7. เพื่อใหมีความเขาใจและสามารถจัดทํา Boyce-Codd Normal form ได

8.1 แนวทางการออกแบบสําหรับฐานขอมูลเชิงสัมพันธ

(Informal Design Guidelines for Relational Database)

เม่ือคิดวาการออกแบบฐานขอมูลเชิงสัมพันธ (Relational database design) คืออะไร อาจจะกลาวไดวาคือการพยายามจัดกลุมของแอทตริบิวต (Grouping of attributes) เพื่อจะทําการรวม relation schemas ที่ดี โดยสามารถที่จะแบง relation schemas ออกเปนสองระดับน้ันคือ

• ระดับมุมมองเชิงตรรกะของผูใชงาน (The logical “user view” level) • ระดับความสัมพันธพื้นฐานของถังขอมูล (The storage “base relation” level)

โดยการออกแบบหลัก ๆ แลวจะคาํนึงถึงความสัมพันธพื้นฐาน หรือ base relations และนอกจากนั้นจะตองหาปจจัยหรือ criteria สําหรับ good base relations ทั้งน้ีอาจเริ่มพิจารณาถึงแนวทางอยางไมเปนทางการในการออกแบบเชิงสัมพันธที่เหมาะสมกอน หลังจากน้ันจะทํา

การพิจารณาถึงแนวทางอยางเปนทางการในการเชื่อมโยงฟงกชัน (Functional dependencies) และ นอรมัลฟอรม (Normal forms) โดยจะแบงออกไดดังน้ี

• 1NF (First Normal Form) • 2NF (Second Normal Form) • 3NF (Third Normal Form) • BCNF (Boyce-Codd Normal Form)

โดยการเชื่อมโยงประเภทอื่น ๆ นอกจากนอรมัลฟอรม น่ันคือ อัลกอริทึมในการออกแบบเชิงสัมพันธ (Relational design algorithms) โดยใชวิธีการสังเคราะหที่จะไดกลาวถึงในบทตอไป

* อางอิงจากบทที่ 10 ของเอกสารอางอิง [1]

Page 2: chapter08 functional dependencies and normalization for relational databases

2110422 การออกแบบระบบการจัดการฐานขอมูล 8-2 ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย

8.2 ซีแมนติคของแอทตริบิวตเชิงสัมพันธ (Semantics of Relation Attributes)

8.2.1 แนวทางที่ 1 เม่ือพิจารณาอยางไมเปนทางการ จะเห็นไดวาในแตละทูเพิลของรีเลชนัควรจะแสดงถึงคาเอนทิตี หรืออินสแตนซ

ของความสัมพันธ (Relationship instance) ซ่ึงจะนําไปประยุกตใชไดกับความสัมพันธเดี่ยว (individual relations) และแอทตริบิวตของรีเลชันน้ัน โดยแอทตริบิวตของเอนทิตีที่ตางกันไมควรที่จะถูกรวมเขาไวใน

ความสัมพันธเดียวกัน เชน (EMPLOYEEs, DEPARTMENTs, PROJECTs) และจะนําคียนอกหรือ foreign key มาเพ่ือใชอางถึงเอนทิตีอื่น ๆ นอกจากนั้นควรจะเก็บเอนทิตีและแอทตริบิวตความสัมพันธ (Relationship attributes) แยกกันใหไดมากที่สุดเทาที่จะเปนไปได โดยสุดทายแลวในการออกแบบ schema หน่ึงสามารถที่จะอธิบายดวยความสัมพันธอยางงาย ๆ

โดย semantics ของแอทตริบิวต ควรที่จะสื่อไดงายๆ

รูปที่ 8.1 COMPANY

relational database

schema แบบงาย

Page 3: chapter08 functional dependencies and normalization for relational databases

2110422 การออกแบบระบบการจัดการฐานขอมูล 8-3 ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย

รูปที่ 8.2 ตัวอยางของสถานะ

ของฐานขอมูล

สําหรับ relational database

schema ในรูป 8.1

ความซ้ําซอนของขอมูลในทูเพิล และการอัพเดทอะนอรมาลี (Redundancy Information and Update Anomalies) ในการรวมแอทตริบิวตของเอนทิตีหลายๆ ตัวเขาไวดวยกันอาจจะทําใหเกิดปญหาได กลาวคือ มีการเก็บขอมูล

ซํ้าซอนทําใหส้ินเปลืองเนื้อที่ นอกจากนั้นจะมีปญหาเรื่องการอัพเดทอะนอรมาลี ซ่ึงเราจะสามารถแบงออกไดเปน

สามประเภท น่ันคือ • อะนอรมาลีในการเพิ่ม (Insertion anomalies) • อะนอรมาลีในการลบ (Deletion anomalies) • อะนอรมาลีในการปรับปรุง (Modification anomalies)

ตัวอยาง เม่ือพิจารณาความสัมพันธดังตอไปนี้ EMP_PROJ ( Emp#, Proj#, Ename, Pname, No_hours) อะนอรมาลีในการแทรก (Insertion Anomalies) ไมสามารถที่จะแทรก Project ใหมเขาไป นอกจากวา Employee จะถูก assign เขาไปใน Project หรือในทางกลับกัน ไมสามารถที่จะเพิ่ม Employee เขาไปนอกจากวา Employee จะถูก assign เขาไปใน Project อะนอรมาลีในการลบ (Deletion Anomalies) เม่ือมีการลบ Project หน่ึงออกไปจะสงผลใหมีการลบ Employee ที่ทํางานอยูใน Project น้ัน หรือ อีกทางหน่ึง

ถา Employee น้ันทํางานอยูเพียง Project เดียว การลบ Employee น้ันจะสงผลใหตองลบ Project ที่เก่ียวของ อะนอรมาลีในการปรับปรุง (Modification Anomalies) เม่ือมีการเปลี่ยนชื่อของ Project P1 จาก “Billing” เปน “Customer-Accounting” ขอมูลจําเปนตอง

ถูกนําไปแกไขในอีก 100 employees ที่ทํางานใน Project P1

Page 4: chapter08 functional dependencies and normalization for relational databases

2110422 การออกแบบระบบการจัดการฐานขอมูล 8-4 ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย

รูปที่ 8.3 ตัวอยางของ

Relation schema สองอันที่ไดผล

กระทบจากการ

อัพเดทอะนอรมาล ี

รูปที ่8.4 ตัวอยางของ

สถานะ หรือ state ของ

EMP_DEPT และ

EMP_PROJ

รูปที่ 8.4 แสดงตัวอยางของสถานะ หรือ state ของ EMP_DEPT และ EMP_PROJ ที่เปนผลลัพธจากการประยุกตใช Natural Join ในความสัมพันธในรูป 10.2 ซ่ึงอาจจะถูกเก็บไวในความสัมพันธพื้นฐานเพื่อเหตุผลดานประสิทธิภาพ

Page 5: chapter08 functional dependencies and normalization for relational databases

2110422 การออกแบบระบบการจัดการฐานขอมูล 8-5 ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย

8.2.2 แนวทางที่ 2 การออกแบบ Schema ที่ไมทําใหไดรับผลกระทบจากการอัพเดทอะนอรมาลีในการแทรก การลบ หรือการปรับปรุง

โดยหากเปนเชนน้ัน หากมีการเกิดอะนอรมาลีอยางใดอยางหน่ึงในขางตน เราจําเปนที่จะตองคํานึงถึงเม่ือทําการ

สรางแอปพลิเคชัน

8.2.3 แนวทางที่ 3 เม่ือคํานึงถึงคานัล (Null value) ในทูเพิล พบวาในการออกแบบอาจเปนไปไดที่จะมีแอทตริบิวตของทูเพิลมักมีคา

เปนนัล แอทตริบิวตที่มักจะพบคานัลดังกลาวสามารถนําไปสรางความสัมพันธหรือรีเลชันใหมพรอมกับคาคียหลัก

(Primary key) ได เน่ืองจากการมีคานัล (Null) อาจทําใหไมสามารถใชแอทตริบิวตได หรือใชไดแตไมถูกตอง นอกจากนั้นอาจเกิดแอทตริบิวตที่มีคาแตไมทราบคาเกิดขึ้น หรืออาจมีคาเกิดขึ้นแตไมสามารถนํามาใชงานได หรือ

มีลักษณะที่เรียกวาทูเพิลแบบ Spurious คือ การออกแบบที่ไมดีนักของฐานขอมูลเชิงสัมพันธจะกอใหเกิดผลลัพธที่

ผิดพลาดสําหรับโอเปอเรชัน JOIN อาจจะนําคุณสมบัติที่เรียกวา "lossless join" ไปใชสําหรับยืนยันผลลัพธที่มี

ความสําคัญสําหรับโอเปอเรชัน JOIN

8.2.4 แนวทางที่ 4 ไมควรออกแบบรีเลชันเพื่อสนองความตองการแคในสวนของเงื่อนไข JOIN และการทํา Natural Join ของรีเลชันใดๆ ไมควรสรางทูเพิลแบบ spurious จะมีคุณสมบัติที่สําคัญสองประการในการทําดีคอมโพสิชัน น่ันคือ • Non-additive หรือ losslessness ของ corresponding join • Preservation ของ functional dependencies. หมายเหตุ ไมสามารถที่จะทิ้งคุณสมบติ (a) ที่มีความสําคัญอยางมาก และในขณะเดียวกันอาจละทิ้งคุณสมบัติ (b) ที่ยืดหยุนนอยกวา ทั้งน้ีใหดูตอในบทที่ 11

รูปที ่8.5 ตัวอยางการ

ออกแบบที่ไมดี

สําหรับ

ความสัมพันธ EMP_PROJ

Page 6: chapter08 functional dependencies and normalization for relational databases

2110422 การออกแบบระบบการจัดการฐานขอมูล 8-6 ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย

รูปที่ 8.5 เปนตัวอยางการออกแบบที่ไมดีสําหรับความสัมพันธ EMP_PROJ ในรูป 8.3b (a) Relation schemas EMP_LOCS และ EMP_PROJ1 (b) ผลของการพิจารณาสวนเพิ่มเติมของ EMP_PROJ จากรูป 8.4 ตอจาก EMP_LOCS และ

EMP_PROJ1.

รูปที่ 8.6 ผลจากการประยุกต

NATURAL JOIN

รูปที่ 8.6 แสดงผลจากการประยุกต NATURAL JOIN เขากับทูเพิลขางบนเสนประ ใน EMP_PROJ1 และ EMP_LOCS จากรูป 8.5 ซ่ึงจะสงผลใหเกิดการสรางทูเพิลแบบ spurious

8.3 ฟงกชันนัลดีเพนเดนซี (Functional dependencies: FDs) ฟงกชันนัลดีเพนเดนซี (Functional dependencies : FDs) ถูกนําไปใชในการกําหนดวิธีในการวัดความสมบูรณของการออกแบบเชิงสัมพันธอยางเปนทางการ หรือเรียกไดวาเปนการวัด "Goodness" ของการออกแบบนั่นเอง โดย FDs และ คยีจะถูกนําไปใชในการกําหนดนอรมัลฟอรม (Normal Forms) สําหรับความสัมพันธใดๆ โดย

Page 7: chapter08 functional dependencies and normalization for relational databases

2110422 การออกแบบระบบการจัดการฐานขอมูล 8-7 ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย

FDs ยังทําหนาที่เปนขอจํากัดที่ทําการดีไรฟ (Derive) มาจากความหมายและความสัมพันธภายใน

(interrelationships) ของแอทตริบิวตของขอมูล

เซตของแอทตริบิวต X ในเชิงฟงกชันจะทําหนาที่กําหนดแอทตริบิวต ถาคาของ X สามารถกําหนดคาที่เปน

เอกลักษณหรือ Unique value สําหรับ Y X -> Y ถือไดวาเมื่อไรก็ตามที่ทั้งสองทูเพิลมีคาเดียวกันสําหรับ X คาพวกนั้นจะตองมีคาเดียวกันสําหรับ Y สําหรับสองทูเพิล t1 และ t2 ซ่ึงเปนอินสแตนซ r(R) ในรีเลชัน R ถา t1[X]=t2[X] แลว t1[Y]=t2[Y] X -> Y ใน R จะทําหนาที่กําหนดขอจํากัดในทุกๆ ความสัมพันธของอินสแตนซ r (R) FDs สามารถเขียนสัญกรณเชิงแผนภาพดังแสดงในรูปที่ 8.3 โดยแตละฟงกชันนัลดีเพนเดนซีจะเขียนแทนไดดวยเสนตรงแนวนอน ที่แอทตริบิวตดานซาย (Left-hand side) จะเชื่อมกับเสนตรงดังกลาวดวยเสนตรง และแอทตริบิวตดานขวา (Right-hand side) จะเชื่อมดวยลูกศรที่ชี้ไปยังแอทตริบิวตน้ัน

ตัวอยางของขอจํากัดของ FD

Social security number เปนตัวกําหนด Employee name จะไดวา

SSN -> ENAME Project number เปนตัวกําหนด Project name และ Location จะไดวา

PNUMBER -> {PNAME, PLOCATION} Social security number ของ Employee และ Project number เปนตัวกําหนดจํานวนชั่วโมงตอสัปดาหที่ Employee ทํางานใน project {SSN, PNUMBER} -> HOURS

นอกจากนั้นฟงกชันนัลดีเพนเดนซียังเปนคุณสมบัติหรือขอจํากัดของแอทตริบิวตในเคารางรีเลชัน R โดยขอจํากัดจะเปนตัวยึดคาของความสัมพันธในทุกอินสแตนซ r(R) เชน เม่ือกําหนด K เปนคียของ R ดังน้ัน K ในเชิงฟงกชันจะเปนตัวกําหนดทุกๆ แอทตริบิวตใน R ดวย อยางไรก็ตามฟงกชันนัลดีเพนเดนซีไมสามารถพิจารณาไดจากอินส

แตนซของรีเลชัน R แตตองถูกกําหนดขึ้นอยางชัดเจนเพื่อใหตรงกับความหมายที่รีเลชันน้ันถูกสรางขึ้น

8.4 กฎการอางถึงของ FD (Inference rules of FD) เม่ือกําหนดเซตของฟงกชันนัลดีเพนเดนซี (FDs) F เราสามารถอางถึง FDs เพิ่มเติมจากการใชกฎการอางถึง (Inference rules) ของ Armstrong ดังน้ี • IR1. (Reflexive) If Y subset-of X, then X -> Y • IR2. (Augmentation) If X -> Y, then XZ -> YZ (XZ แทน X U Z) • IR3. (Transitive) If X -> Y and Y -> Z, then X -> Z Armstrong (1974) ไดแสดงใหเห็นวาในการใชกฎการอางถึงขอ IR1, IR2, IR3 เปนกฏที่เปนเสียงหนึ่ง

(Sound) และมีความสมบูรณ (Complete) โดยความหมายของเสียง (Sound) คือ สําหรับเซตของ FDs F บนเคารางของรีเลชัน R ดีเพนเดนซีที่ไดจากการใชกฏการอางถึง IR1 ถึง IR3 บนเซต F จะสามารถใชไดกับทุกอินสแตนทของรีเลชัน R และความหมายของความสมบูรณ (Complete) คือ การใชกฏการอางถึง IR1 ถึง IR3 บนเซต F ซํ้าๆ จนไมมีดีเพนเดนซีใดๆที่สามารถอางถึงไดอีก ผลทั้งหมดจากการอางถึงจะไดเซตของดีเพนเดนซีที่

เปนไปไดทั้งหมด (All possible dependencies) หรือสวนปดของเซต F (Closure of F: F+) สําหรับกฎอางถึงอื่น ๆ ที่มีการนําไปใช ไดแก

• (Decomposition) If X -> YZ, then X -> Y and X -> Z • (Union) If X -> Y and X -> Z, then X -> YZ

Page 8: chapter08 functional dependencies and normalization for relational databases

2110422 การออกแบบระบบการจัดการฐานขอมูล 8-8 ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย

• (Psuedotransitivity) If X -> Y and WY -> Z, then WX -> Z โดยในกฎสามอันขางทายนึ้จะเหมือนกับขออื่น ๆ ที่สามารถแปลงไดจากการใชกฏ IR1, IR2 และ IR3

การออกแบบฐานขอมูลน้ันผูออกแบบจะกําหนดเซตของฟงกชันนัลดีเพนเดนซี F ตามความหมายของแอทตริบิวต

ของรีเลชัน R ซ่ึงสามารถใชกฏการอางถึงในการพิจารณาฟงกชันนัลดีเพนเดนซีเพิ่มเติมที่ยังคงใชไดสําหรับทุกอินสแตนซใน R อีกวิธีหน่ึงที่สามารถชวยในการพิจารณาฟงกชันนัลดีเพนเดนซีเพิ่มเติมจาก F น่ันคือการพิจารณาแตละ

แอทตริบิวต X ที่อยูทางดานซายของฟงกชันนัลดีเพนเดนซีบางฟงกชัน แลวพิจารณาเซตของแอทตริบิวตทั้งหมดที่

ขึ้นกับ X หรือกลาวไดวาฟงกชันนัลดีเพนเดนซีเพิ่มเติมสามารถถูกพิจารณาไดจากการหาสวนปดของ X (Closure of X : X+) ของทุกแอทตริบิวต X น่ันเอง

8.4.1 เซตที่เทากันของ FDs (Equivalence of Sets of FDs) เซตของฟงกชันนัลดีเพนเดนซี F จะถูกเรียกวาครอบคลุม (Cover) เซตของฟงกชันนัลดีเพนเดนซี E ถาทุก

ฟงกชันนัลดีเพนเดนซีใน E อยูใน F+ หรือกลาวไดวาทุกฟงกชันนัลดีเพนเดนซีใน E สามารถถูกอางถึงไดจาก F ได

สองเซตของฟงกชันนัลดีเพนเดนซี E และ F จะมีคาเทากัน (Equivalent) ถา E+ = F+ โดยการมีคาเทากันหมายความวาทุกฟงกชันนัลดีเพนเดนซีใน E สามารถถูกอางถึงไดจาก F และทุกฟงกชันนัลดีเพนเดนซีใน F จะถูกอางถึงไดจาก E น่ันคือเซตของฟงกชันนัลดีเพนเดนซี E และ F จะเทากัน ถา E ครอบคลุม F และ F ครอบคลุม E น่ันเอง

8.4.2 เซตฟงกชันนัลดีเพนเดนซีนอยสุด (Minimal sets of FDs) เซตฟงกชันนัลดีเพนเดนซีนอยสุด F ของเซตของฟงกชันนัลดีเพนเดนซี E ใดๆ จะรองรับคุณสมบัติที่ทุกฟงกชันนัลดี

เพนเดนซีใน E อยูใน F+ ของ F และคุณสมบัติดังกลาวของ F จะหายไปเมื่อมีฟงกชันนัลดีเพนเดนซีหน่ึงของ F ถูกตัดทิ้งไป โดย F จะตองไมมีฟงกชันนัลดีเพนเดนซีซํ้าซอนและ E จะตองอยูในรูปแบบมาตรฐาน (Standard Form) F จะถูกกลาวไดวาเปนเซตฟงกชันนัลดีเพนเดนซีนอยสุดของ E ได ถาเซต F สามารถรองรับเงื่อนไขตอไปนี้ • ทุกดีเพนเดนซีใน F มีแอทตริบิวตทางขวามือ (Right-hand side) เปนซิงเกิลแอทตริบิวต (Single

attribute) • ไมสามารถที่จะแทนดีเพนเดนซี X->A ใน F ดวยดีเพนเดนซี Y->A โดย Y เปนซับเซตของ X แลวยังคงมี

คาเซตของดีเพนเดนซีเทากับ F • ไมสามารถที่จะกําจัดคาดีเพนเดนซีใดๆ จาก F แลวยังคงมีคาเซตของดีเพนเดนซีเทากับ F เซตของดีเพนเดนซีหน่ึงอาจมีเซตฟงกชันนัลดีเพนเดนซีนอยสุดไดหลายเซต จึงอาจตองมีการกําหนดเงื่อนไข

เพิ่มเติมในการพิจารณาเซตฟงกชันนัลดีเพนเดนซีนอยสุด เชน การกําหนดใหเซตฟงกชันนัลดีเพนเดนซีนอยสุดตอง

มีจํานวนของดีเพนเดนซีในเซตนอยที่สุด เปนตน (ตัวอยาง พิจารณาอัลกอริทึม8.2 และ 8.4)

8.5 นอรมาไลเซชันของรีเลชัน (Normalization of Relation) นอรมาไลเซชัน (Normalization) คือ กระบวนการพิจารณาเคารางรีเลชันจาก FDs และคียหลัก เพื่อลดความ

ซํ้าซอนของขอมูล และลดอัพเดทอะนอรมาลี โดยรีเลชันที่ไมดีหรือไมนาพึงพอใจจะถูกแตกออกเปนรีเลชันที่เล็กลง

เพื่อใหรีเลชันมีลักษณะเปนรีเลชันที่ดี

นอรมัลฟอรมจะมีพื้นฐานอยูบนคียหลัก หรือ Primary Key โดยมีประเด็นที่ตองสนใจดังน้ี

Page 9: chapter08 functional dependencies and normalization for relational databases

2110422 การออกแบบระบบการจัดการฐานขอมูล 8-9 ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย

• นอรมาไลเซชันของความสัมพันธ • การใชงานของนอรมัลฟอรม • คําจํากัดความของคียและแอทตริบิวต • การเขารวมของคีย ใน

- First Normal Form (1NF) - Second Normal Form (2NF) - Third Normal Form (3NF)

นอรมัลฟอรม (Normal Form) ของรีเลชันหนึ่งๆ คือเงื่อนไขที่ระบุวารีเลชันมีนอรมัลฟอรมสูงสุดที่ดิกรีใด หรือดิก

รีของการนอรมาไลเซชันที่รีเลชันน้ันผานการนอรมัลไลซแลว โดย 2NF, 3NF, BCNF มีพื้นฐานอยูบนคีย และ FDs ของเคารางรีเลชันหนึ่ง ในขณะที่ 4NF มีพื้นฐานอยูบนคีย และ Multi-valued dependencies : MVDs และ 5NF มีพื้นฐานอยูบนคีย และ Join dependencies : JDs (อางถึงในบทที่ 11) นอกจากนั้นยังตองการสวนของคุณสมบัติเพิ่มเติม (Additional properties) เพื่อเปนตัวการันตีการออกแบบความสัมพันธที่ดี (Good relation design)

8.5.1 การใชงานของนอรมลัฟอรม นอรมาไลเซชันจะถูกนําไปใชในการทํางานเพื่อใหไดผลลัพธของการออกแบบที่มีคุณภาพดี และตรงตามคุณสมบัติที่

ตองการ โดยนอรมัลฟอรมจะชวยใหนักออกแบบหรือผูใชฐานขอมูลเขาใจขอจํากัด (Constraints) ของฐานขอมูลไดชัดเจนมากยิ่งขึ้น ดังน้ันในการออกแบบฐานขอมูลในอุตสาหกรรมในปจจุบันจึงใหความสนใจกับการนอรมาไลเซชัน

ในนอรมัลฟอรมลําดับสูง คือ 3NF BCNF หรือ 4NF อยางไรก็ตาม การออกแบบฐานขอมูลน้ันไมจําเปนที่จะตองทําการนอรมาไลซใหไดนอรมัลฟอรมลําดับสูงสุด รีเลชัน

อาจคงไวที่นอรมัลฟอรมระดับไมสูงนัก เพื่อเพิ่มประสิทธิภาพใหฐานขอมูล โดยกระบวนการในการรวม (Join) รีเลชันที่มีนอรมัลฟอรมระดับสูงใหเปนนอรมัลฟอรมระดับต่ําลงนั้นเรียกวาการดีนอรมาไลเซชัน (Denormalization)

8.5.2 คําจํากัดของคียและแอทริบวิตที่เขารวมในคีย

ซูเปอรคีย (Superkey) ของเคารางรีเลชัน R = {A1, A2, ...., An} คือเซตของแอทตริบิวต S ซ่ึงเปนซับเซตของ R ที่มีคุณสมับิตคือไมมีสองทูเพิล t1 และ t2 ใด ๆ ใน legal relation state r ของ R ที่จะมีคา t1[S] = t2[S] คีย (key) K คือซูเปอรคียหน่ึงที่มีคุณสมบัติเพิ่มเติม คือ เม่ือลบแอทตริบิวตใดๆ ออกจาก K จะทําให K ไมสามารถเปนซูเปอรคียไดอีกตอไป ถาในเคารางรีเลชันมีคียมากกวาหน่ึงคีย แตละคียจะถูกเรียกวา Candidate key โดยจะมี Candidate key หน่ึงในนั้นถูกเลือกใหเปนคียหลักหรือ Primary key นอกจากนั้นจะเปนคียสํารองหรือ Secondary keys แอทตริบิวตของเคารางรีเลชัน R จะเปนแอทตริบิวตหลักหรือ Prime attribute ถาแอทตริบิวตน้ันเปนสมาชิกของ Candidate key ใดๆ และแอทตริบิวตจะไมเปนแอทตริบิวตหลักหรือ Nonprime attribute ถาแอทตริบิวตไมเปนสมาชิกของ Candidate key ใดเลย

8.5.3 First Normal Form นอรมัลฟอรมอันดับหนึ่ง (1NF) จะไมอนุญาตรีเลชันมีแอทตริบิวตหลายคา (Multivalued attribute) แอทตริบิวตผสม (Composite attribute) และแอทตริบิวตทั้งสองแบบรวมกัน โดยคาของแอทตริบิวตที่อนุญาตสําหรับ 1NF จะมีลักษณะเปน Single atomic value เทาน้ัน

Page 10: chapter08 functional dependencies and normalization for relational databases

2110422 การออกแบบระบบการจัดการฐานขอมูล 8-10 ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย

รูปที่ 8.8 นอรมาไลเซชันของ

1NF

รูปที่ 8.8 แสดงนอรมาไลเซชัน ของ 1NF โดยที่ (a) Relation schema ที่ยังไมไดอยูใน 1NF (b) ตัวอยาง สถานะของความสัมพันธของ DEPARTMENT (c) 1NF เวอรชั่นของความสัมพันธเดิมพรอมกับคาซํ้าซอน

สําหรับการทําใหรีเลชัน Department ในรูปที่ 8.8 อยูใน 1NF สามารถทําได 3 วิธีดังน้ี • นํา DLOCATIONS แยกออกเปนอีกรีเลชันหนึ่งคือ DEPT_LOCATIONS (DNUMBER,

DLOCATION) โดยใช DNUMBER เปนคียหลัก • ขยายคียหลักของรีเลชันใหเปน {DNUMBER, DLOCATION} แตวิธีน้ีมีขอเสียคือจะทําใหมีการเก็บ

ขอมูลซํ้าซอน • หากทราบจํานวนที่มากที่สุดของแอทตริบิวตหลายคา เชน หากทราบวา DEPARTMENT น้ันจะม ี

DLOCATION ไดมากที่สุดสามแหง สามารถทําไดโดยแทนที ่ DLOCATION ดวย DLOCATION1 DLOCATION2 และ DLOCATION3 แตวิธีน้ีจะมีขอเสียคือ อาจมีคานัลเกิดขึ้นได และทําใหการสืบคน

ยากขึ้น

Page 11: chapter08 functional dependencies and normalization for relational databases

2110422 การออกแบบระบบการจัดการฐานขอมูล 8-11 ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย

รูปที่ 8.9 นอรมาไลเซชัน ของ 1NF ชอง Project

รูปที่ 8.9 แสดงนอรมาไลเซชัน ของ 1NF โดยที่ (a) Relation schema ที่ยังไมไดอยูใน 1NF (b) ตัวอยาง สถานะของความสัมพันธของ Project (c) 1NF เวอรชั่นของความสัมพันธ

8.5.4 Second Normal Form นอรมัลฟอรมลําดับที่สอง (2NF) ขึ้นอยูกับฟงกชันนัลดีเพนเดนซีแบบสมบูรณ (Full functional dependency) โดย ฟงกชันนัลดีเพนเดนซี X -> Y จะเปนฟงกชันนัลดีเพนเดนซีแบบเต็ม ถามีการนําแอทตริบิวตใดๆออกจาก X แลวทําใหดีเพนเดนซีน้ันถูกทําลาย ฟงกชันนัลดีเพนเดนซี X -> Y จะเปนฟงกชันนัลดีเพนเดนซีแบบบางสวน (Partial functional dependency) ถามีการนําแอทตริบิวตใดๆออกจาก X แลวยังคงดีเพนเดนซีน้ันไว น่ันคือ สําหรับแอทตริบิวต A ที่อยูใน X ดีเพนเดนซี (X-{A}) -> Y

สําหรับเคารางรีเลชัน R จะอยูใน 2NF ถาทุก Nonprime attribute ใน R เปนฟงกชันดีเพนเดนซีแบบเต็มที่ขึ้นอยูกับคียหลัก

ตัวอยาง

Page 12: chapter08 functional dependencies and normalization for relational databases

2110422 การออกแบบระบบการจัดการฐานขอมูล 8-12 ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย

{SSN, PNUMBER} -> HOURS เปนฟงกัชันนัลดีเพนเดนซีแบบสมบูรณ เน่ืองจากเมื่อตัด SSN หรือ

PNUMBER ออกจาก {SSN, PNUMBER} จะไมมีดีเพนเดนซี SSN -> HOURS หรือ NUMBER -> HOURS

{SSN, PNUMBER} -> ENAME เปนฟงกชันนัลดีเพนเดนซีแบบบางสวน เน่ืองจากเมื่อตัด PNUMBER ออกจาก {SSN, PNUMBER} ยังคงมีดีเพนเดนซี SSN -> ENAME เหลืออยู

รูปที ่8.10 นอรมาไลเซชัน ของ 1NF ชอง Project

รูปที่ 8.10 แสดงนอรมาไลเซชัน ของ 2NF และ 3NF (a) Relation schema ที่ยังไมไดอยูใน 1NF (b) นอรมัลไลซ EMP PROJ เขาสู 2NF (c) นอรมัลไลซ EMP_DEPT เขาสู 3NF

8.5.5 Third Normal Form นอรมัลฟอรมลําดับที่สาม (3NF) ขึ้นอยูกับ Transitive dependency น่ันคือฟงกชันนัลดีเพนเดนซี X -> Y ในเคาราง R จะเปน Transitive dependency ถามีเซตของแอทตริบิวต Z ซ่ึงไมใชทั้ง Candidate key และไมใชซับเซตของคียใดๆของ R ที่มี X -> Z และ Z -> Y ตัวอยาง

SSN -> DMGRSSN เปน Transitive dependency เน่ืองจากมีดีเพนเดนซี SSN -> DNUMBER และ DNUMBER -> DMGRSSN

Page 13: chapter08 functional dependencies and normalization for relational databases

2110422 การออกแบบระบบการจัดการฐานขอมูล 8-13 ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย

SSN -> ENAME ซ่ึงเปน Non-transitive dependency เน่ืองจากไมมีเซตของแอทตริบิวต Z ที่ทําใหมีดีเพนเดนซี SSN -> X และ X -> ENAME เคารางรีเลชัน R จะอยูใน 3NF ถา R เปน 2NF ที่ไมมีแอทตริบิวตแบบ Non-prime ที่เปน Transitive dependency ที่ขึน้อยูกับคียหลัก

หมายเหตุ ในการนอรมาไลซลําดับที่สามเมื่อมีดีเพนเดนซี X -> Y และ Y -> Z โดยมี X เปนคียหลัก เราพิจารณาปญหานี้

ในการนอรมาไลเซชันอันดับสามเมื่อ Y ไมไดเปน Candidate key เทาน้ัน แตถา Y เปน Candidate key จะไม

จําเปนตองพิจารณาเรื่อง Transitive dependency ตัวอยาง พิจารณา EMP (SSN, Emp#, Salary ). ดังน้ัน SSN -> Emp# -> Salary เม่ือ Emp# เปน Candidate key จะไมจําเปนตองพิจารณา Transitive dependency น้ีในการทํา 3NF

8.5.6 General Normal Form ในนอรมัลฟอรมที่พิจารณาขางตนน้ันจะเปนการพิจารณาเฉพาะคียหลักเทาน้ัน โดยไมมีการนํา Candidate key

มาพิจารณาดวย นอรมัลฟอรมทั่วไป (General normal form) จึงเปนการทํานอรมาไลซที่นําทุก Candidate key ในเคารางรีเลชันมาพิจารณา โดย Prime attribute คือแอทตริบิวตที่เปนสวนหนึ่งของ Candidate key ใดๆใน R และฟงกชนันัลดีเพนเดนซีแบบสมบูรณและแบบบางสวน และ Transitive dependency จะถูกนํามาใชสําหรับทุก Candidate key General definition of second normal form เคารางรีเลชัน R จะอยูในนอรมัลฟอรมทั่วไปอันดับสอง (Second normal form) ถาทุก Nonprime attribute ไมมีฟงกชันนัลดีเพนเดนซีแบบบางสวนที่ขึ้นอยูกับคียใดๆของรีเลชัน General definition of third normal form

เคารางรีเลชัน R จะอยูในนอรมัลฟอรมทั่วไปอันดับสอง (Third normal form) ถาฟงกชันนัลดีเพนเดนซี X -> A ใน R มี (a) X เปนซูเปอรคียของ R หรือ (b) A เปน Prime attribute ของ R หมายเหตุ Boyce-Codd normal form ไมอนุญาตใหเกิดเงื่อนไข (b) ขางตน

Page 14: chapter08 functional dependencies and normalization for relational databases

2110422 การออกแบบระบบการจัดการฐานขอมูล 8-14 ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย

รูปที ่8.11 นอรมาไลเซชัน ของ

2NF และ 3NF

รูปที่ 8.11 แสดงนอรมาไลเซชัน ของ 2NF และ 3NF โดยที่ (a) ความสัมพันธ LOTS กับ functional dependencies FD1 ถึง FD4 (b) แยกเขาสู ความสัมพันธ 2NF LOTS และ LOTS (c) แยกเขาสู ความสัมพันธ LOTS เขาสู ความสัมพันธ 3NF ในรูป LOTS1A และ LOTS1B (d) ผลสรุปนอรมัลไลซเซชั่นตอเนื่อง (Progressive normalization ของ LOTS)

8.5.7 Boyce-Codd Normal Form (BCNF) เคารางรีเลชัน R จะอยูใน Boyce-Codd Normal Form (BCNF) ถาฟงกชันนัลดีเพนเดนซี X -> A ใน R มี

X เปนซูเปอรคียของ R ในแตละนอรมัลฟอรมจะถูกบังคับไวชัดเจน โดยทุกรีเลชัน 2NF จะตองอยูภายใน 1NF ในขณะเดียวกันทุก ๆ

ความสัมพันธ 3NF จะอยูใน 2NF และนอกจากนั้นทุกๆ BCNF จะตองอยูภายใน 3NF ทั้งน้ีความสัมพันธที่มีอยูที่อยูภายใต 3NF จะตองไมอยูใน BCNF โดยเปาหมายคือมีทุกๆ รีเลชันอยูใน BCNF (หรือ 3NF)

Page 15: chapter08 functional dependencies and normalization for relational databases

2110422 การออกแบบระบบการจัดการฐานขอมูล 8-15 ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย

รูปที ่8.12 นอรมาไลเซชัน ของ

BCNF

รูปที่ 8.12 แสดงนอรมาไลเซชัน ของ BCNF โดยที่ (a) BCNF นอรมาไลเซชัน ของ LOTS1A พรอมดวย functional dependency FD2 ที่หายไปในการทํา Decomposition (b) A schematic relation พรอมกับ FDs; โดยที่อยูใน 3NF แตไมไดอยูใน BCNF.

รูปที ่8.13 ความสัมพันธ

TEACH

รูปที่ 8.13 แสดงรีเลชัน TEACH ที่อยูใน 3NF แตไมอยูใน BCNF

ในการเขาถึง BCNF โดยการ decomposition จะพบวา FDs สองตัวที่ปรากฏในรีเลชัน TEACH fd1: {student, course} -> instructor fd2: instructor -> course {student, course} เปน Candidate key ของรีเลชันน้ี และสามารถแสดง FDs ดังแสดงในรูปที่ 8.12(b) โดย

STUDENT คือ A COURSE เปน B และ INSTRUCTOR เปน C เม่ือพิจารณารูปแบบดีเพนเดนีจะเห็นวา

Page 16: chapter08 functional dependencies and normalization for relational databases

2110422 การออกแบบระบบการจัดการฐานขอมูล 8-16 ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย

รีเลชันที่อยูใน 3NF แตไมอยูใน BCNF เม่ือทําการ Decomposition รีเลชัน (พิจารณาจาก อัลกอริทึ่มใน 11.3) จะสามารถแตกรีเลชันได 3 ลักษณะที่เปนไปได ไดแก {student, instructor} และ {student, course}

{course, instructor } และ {course, student} {instructor, course } และ {instructor, student}

การแตกรีเลชันทั้ง 3 แบบขางตนจะทําใหสูญเสียดีเพนเดนซี FD1 ไป แตการแตกรีเลชันที่ตองการมีเพียงการแตก

รีเลชันแบบที่สาม เพราะไมสราง spurious tuples หลังการ join (ซ่ึงจะใหคุณสมบัติที่เรียกวา non-additivity property) นอกจากนี้ยังมีการทดสอบเพื่อที่จะกําหนดวาในการทํา binary decomposition หรือ การทํา decomposition ไปเปนรีเลชัน หรือรีเลชันสองรีเลชันถือวาเปน nonadditve หรือ lossless ซ่ึงจะไดกลาวถึงใน สวนที่ 11.1.4 ภายใตคุณสมบัติ LJ1 และนอกจากนั้นยังเปนการตรวจสอบวา third decomposition ขางตนรองรับคุณสมบัติตามที่ตองการ

Page 17: chapter08 functional dependencies and normalization for relational databases

2110422 การออกแบบระบบการจัดการฐานขอมูล 8-17 ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย

แบบฝกหัด 1. จงอธิบายแนวคิดของ Functional Dependency 2. จงอธิบายแนวคิดของซีแมนติคของฐานขอมูลเชิงสัมพันธ 3. จงแยกประเภทของอะนอรมาลีและอธิบายอะนอรมาลีแตละประเภท 4. จงอธิบายความแตกตางของ คีย ซูเปอรคีย และ คียหลัก 5. จงอธิบายความหมายของนอรมาไลเซชัน 6. จงอธิบายประโยชนที่ไดจาก BCNF 7. จงอธิบายความแตกตางระหวาง 1NF และ 2NF 8. จงอธิบายความแตกตางระหวาง 2NF และ 3NF 9. จงอธิบายความแตกตางระหวาง 3NF และ BCNF 10. พิจารณาวาจะสามารถจัดทําในรูปแบบของ BCNF ไดหรือไม

11. จงอธิบายความหมายของ Transitive และ Non-transitive FD 12. จงอธิบายความหมาย และ ความแตกตางของ Equivalence sets of FDs และ Minimal sets of FDs