8-1
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
บทที่ 8* ฟงกชันนัลดีเพนเดนซีและ นอรมาไลเซชันสําหรับฐานขอมูลเชิงสัมพันธ Functional Dependencies and Normalization for Relational Databases วัตถุประสงค 1. 2. 3. 4. 5. 6. 7.
8.1
เพื่อใหมีความเขาใจในนอรมาไลเซชัน เพื่อใหมีความเขาใจในเรื่องความซ้ําซอนของขอมูลในทูเพิล และการอัพเดทอะนอรมาลี เพื่อใหมีความเขาใจในเรื่องของ Functional Dependency เพื่อใหมีความเขาใจและสามารถจัดทํา First Normal form ได เพื่อใหมีความเขาใจและสามารถจัดทํา Second Normal form ได เพื่อใหมีความเขาใจและสามารถจัดทํา Third Normal form ได เพื่อใหมีความเขาใจและสามารถจัดทํา Boyce-Codd Normal form ได
แนวทางการออกแบบสําหรับฐานขอมูลเชิงสัมพันธ (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]
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 แบบงาย
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
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 ซึ่งอาจจะถูกเก็บไวในความสัมพันธพื้นฐานเพื่อเหตุผลดาน ประสิทธิภาพ
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
8.2.2
8-5
แนวทางที่ 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
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) สําหรับความสัมพันธใดๆ โดย
8-7
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย FDs ยังทําหนาที่เปนขอจํากัดที่ทําการดีไรฟ (interrelationships) ของแอทตริบิวตของขอมูล
(Derive)
มาจากความหมายและความสัมพันธภายใน
เซตของแอทตริบิวต 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
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 โดยมีประเด็นที่ตองสนใจดังนี้
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 เทานั้น
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 แตวิธีนี้จะมีขอเสียคือ อาจมีคานัลเกิดขึ้นได และทําใหการสืบคน ยากขึ้น •
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 เปนฟงกชันดีเพนเดนซีแบบเต็มที่ ขึ้นอยูกับคียหลัก ตัวอยาง
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
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) ขางตน
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)
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 เมื่อพิจารณารูปแบบดีเพนเดนีจะเห็นวา
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 ขางตนรองรับคุณสมบัติ ตามที่ตองการ
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
8-17
แบบฝกหัด 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
จงอธิบายแนวคิดของ Functional Dependency จงอธิบายแนวคิดของซีแมนติคของฐานขอมูลเชิงสัมพันธ จงแยกประเภทของอะนอรมาลีและอธิบายอะนอรมาลีแตละประเภท จงอธิบายความแตกตางของ คีย ซูเปอรคีย และ คียหลัก จงอธิบายความหมายของนอรมาไลเซชัน จงอธิบายประโยชนที่ไดจาก BCNF จงอธิบายความแตกตางระหวาง 1NF และ 2NF จงอธิบายความแตกตางระหวาง 2NF และ 3NF จงอธิบายความแตกตางระหวาง 3NF และ BCNF พิจารณาวาจะสามารถจัดทําในรูปแบบของ BCNF ไดหรือไม
11. จงอธิบายความหมายของ Transitive และ Non-transitive FD 12. จงอธิบายความหมาย และ ความแตกตางของ Equivalence sets of FDs และ Minimal sets of FDs