9-1
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
บทที่ 9* การออกแบบฐานขอมูลเชิงสัมพันธ อัลกอริทึม และสวนเชื่อมโยงอื่น ๆ Relational Database Design Algorithms and Further Dependencies วัตถุประสงค 1. เพื่อใหมีความเขาใจการเชื่อมโยงแบบหลายคา และนอรมัลฟอรมลําดับที่ 4 (Multivalued Dependencies และ 4NF) 2. เพื่อใหมีความเขาใจการเชื่อมโยงรวม และนอรมัลฟอรมลําดับที่ 5 (Join Dependencies และ 5NF) 3. เพื่อใหสามารถประยุกตใชความเขาใจในการจัดทําการเชื่อมโยงแบบหลายคาและการเชื่อมโยงรวม สําหรับ นอรมัลฟอรมลําดับที่ 4 และ 5 ไปใชในการออกแบบฐานขอมูลได
9.1
การออกแบบฐานขอมูลเชิงสัมพันธ ในการออกแบบฐานขอมูลเชิงสัมพันธจะประกอบดวยสองแนวคิดหลัก คือ การออกแบบในลักษณะของ Top-down Design ซึ่งเปนวิธีที่ใชแพรหลายสําหรับฐานขอมูลในเชิงธุรกิจ สวนอีกวิธีหนึ่งคือการออกแบบในลักษณะของ Bottom-up Design ซึ่งจะใหมุมมองที่คอนขางชัดเจน และทําใหลักษณะของการออกแบบที่คอนขางจะเปน ระเบียบและ strict ในเชิงของฟงกชัน นอกจากนี้สวนตางๆ ที่เชื่อมโยงหรือ Dependencies มีการนําเอา อัลกอริทึมสําหรับการทํานอรมาไลเซชัน (Normalization) เขามาใชเพื่อใหสามารถสังเคราะหรูปแบบของ ความสัมพันธ (Relation schemes) ไดมีประสิทธิภาพมากขึ้น ทั้งนี้ในบทนี้จะกลาวถึงอัลกอริทึมของการนอร มาไลเซชันโดยมีพื้นฐานจาก Functional dependencies เพียงอยางเดียว โดยสามารถนําไปใชในการสังเคราะห schema สําหรับ 3NF และ BCNF ทั้งนี้เราจะอธิบายในสวนของคุณสมบัติที่ตองการสองประการในการสลาย หรือดีคอมโพสิชัน (Decomposition) ทั้งนี้ในบทนี้จะเนนเฉพาะในสวนของการเชื่อมโยงแบบหลายคา (Multivalued Dependencies) และ 4NF และการเชื่อมโยงรวม (Join Dependencies) และ 5NF เทานั้น
9.2
การเชื่อมโยงแบบหลายคา (Multivalued Dependencies) และนอรมัลฟอรมลําดับที่ 4 (4NF) ในสวนของการเชื่อมโยงแบบ Multivalued dependency (MVD) และการกําหนด 4NF ซึ่งจะเปนสวนที่ตอ เนื่องมาจาก 1NF โดยจะไมอนุญาตใหแอทตริบิวตในทูเพิลหนึ่งสามารถที่จะมีเซตคา (Set of values) ได ถาเรามี อยางนอยสอง independent attributes ที่เปน multivalued ใน relation schema เดียวกัน
* อางอิงจากบทที่ 11 ของเอกสารอางอิง [1]
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
9-2
รูปที่ 9.1 การแปลง Multivalued Dependencies EMP เปน 4NF 9.1 ความสัมพันธในขอ (a) จะเห็นไดวา คาความสัมพันธ Multivalued ENAME ->>PNAME และ ENAME ->> DNAME ซึ่งอยูในรีเลชัน EMP จะเห็นไดวาลูกจางหรือ EMPLOYEE ที่มีชื่อ ENAME วา Smith ทํางานใน project กับ PNAME ‘X’ และ ‘Y’ โดยเชื่อมโยงไปยัง DNAME ‘John’ และ ‘Anna’ ถาเกิดวาเราเก็บขอมูลเพียงแคสองทูเพิลใน EMP (< ‘Smith’, ‘X’, ‘John’> และ < ‘Smith’, ‘Y’, ‘Anna’>) เราอาจจะแสดงความสัมพันธที่ผิดสําหรับ project X และ John และ Project Y และ Anna ดังนั้นจะเห็นไดวาเราไมสามารถที่จะทําการ convert เปนดังรูปได เพราะวาจะมีการสื่อไปยัง ความสัมพันธที่ไมมีความหมาย สิ่งที่เราทําคือ ตองทําการเก็บขอมูลอีกสอง tuples ไดเปน < ‘Smith’, ‘X’, ‘Anna’> และ < ‘Smith’, ‘Y’, ‘John’> เพื่อที่จะแสดงวา {‘X’, ‘Y’) และ (‘John’ , ‘Anna’) โดย เกี่ยวของกับ ‘Smith’ เทานั้น แตไมมีความเกี่ยวของกับ PNAME และ DNAME ซึ่งหมายความวาแอทตริบิวต
รูปที่
ทั้งสองนั้นเปนอิสระตอกัน สวนในรูป (b) เมื่อทําการดีคอมโพสิชันความสัมพันธของ EMP ในรูปแบบของ 4NF ของ EMP_PROJECTS และ EMP_DEPENDENTS หรืออาจกลาวไดวาความสัมพันธ EMP_PROJECTS ในรูป (b) แสดงใหเห็น ถึง MVD ENAME->>PNAME แบบ Trivial MVD ซึ่งถาหาก MVD ไมสามารถรองรับไดทั้ง (a) หรือ (b) เราจะเรียกวา nontrivial MVD สวนในรูป 9.2 (c) จะเห็นไดวาความสัมพันธของ SUPPLY โดยไมมี MVDs ใน 4NF แตไมมีใน 5NF หากวามี JD (R1,R2, R3) และในสวนของ (d) เปนการสลายความสัมพันธของ SUPPLY ใน 5NF สัมพันธกับ R1, R2, และ R3
รูปที่ 9.2 การแปลง Multivalued Dependencies SUPPLY เปน 4NF
9-3
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
9.2.1 คําจํากัดความของการเชื่อมโยงแบบหลายคา (Multivalued Dependency: MVD) การเชื่อมโยงแบบหลายคา หรือ Multivalued Dependency: MVD X—>> Y กําหนด schema ของ ความสัมพันธ R, ซึ่ง X และ Y ตางเปนซับเซตของ R, กําหนดเงื่อนไขบังคับในความสัมพันธตางๆเปน r ของ R: หากวาสอง tuples t1 and t2 อยูใน r ดังนั้น t1[X] = t2[X], ดังนั้นสอง tuples t3 and t4 ควรอยูใน r ดวย ดวย คุณสมบัติดังตอไปนี้ กรณีที่เราใช Z เพื่อแสดงถึง (R 2 (X υ Y)): t3[X] = t4[X] t3[Y] = t1[Y] t3[Z] = t2[Z]
=
และ และ
t1[X] = t2[X] t4[Y] = t2[Y] t4[Z] = t1[Z]
เมื่อ X->> Y ไดถูกกําหนดไวเราจะเรียกวา X Multidetermines Y เนื่องจากคําจํากัดความมีคาเทากันดังนั้นไม วาเมื่อใด ที่ X->>Y ใน R แลว X->> Z จะไดวา X->Y สามารถ imply ไดวา X->>Z ดังนั้นสามารถเขียนได วา X->Y|Z นอกจากนั้น MVD X—>> Y ใน R เรียกวา trivial MVD หาก (a) Y เปนซับเซ็ทของ X, หรือ (b) X υ Y = R.
9.2.2 คําจํากัดความของ Relation Schema R สําหรับ 4NF Relation Schema ของ R ใน 4NF เมื่อเทียบกับสวนเชื่อมโยง หรือ Dependency F (ที่รวม Functional dependencies และ Multivalued Dependencies) หากสําหรับทุก nontrivial multiple dependencies X—>> Y ใน F+, X เปนซูเปอรคียของ R.
หมายเหตุ: F+ เปนชุด )สมบูรณ (ชอง dependencies ทั้งหมด (ฟงกชัน หรือ Multivalued) ที่จะมีคาไม เปลี่ยนแปลงในทุกความสถานะ r ของ R ที่ F รับได หรือเรียกวา สวนปด ของ F (Closure of F) การดีคอมโพสิชันของสถานะความสัมพันธ (Relation State) ของ EMP ที่ไมอยูใน 4NF สามารถจะเขียนไดดัง รูปตอไปนี้ จากรูป 9.3 (a) เห็นไดวา EMP สัมพันธ กับ tuples ที่เพิ่มเขามา และในรูป (b) การตอบสนองสอง อยางของ 4NF จะสัมพันธกับ EMP_PROJECTS และ EMP_DEPENDENTS
รูปที่ 9.3 การแปลง Multivalued Dependencies EMP ที่ไมอยูในรูป ของ 4NF
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
9.3
9-4
การเชื่อมโยงแบบรวม (Join Dependencies) และ นอร มัลฟอรมลําดับที่ 5 (5NF) 9.3.1 คําจํากัดความของการเชื่อมโยงแบบรวม (Join Dependency) การเชื่อมโยงแบบรวม (Join Dependency: JD) สามารถแสดงไดในรูปของ JD(R1, R2, ..., Rn), กําหนดโดย Relation Schema ความสัมพันธ R และกําหนดเงื่อนไขบังคับของสถานะ r ของ R โดยมีขอจํากัดที่วาในสถานะ r ที่ถูกตอง ของ R ควรจะตองมีการดีคอมโพสิชัน แบบ non-additive join decomposition ในทุกๆ R1, R2, ..., Rn ซึ่งในทุก ๆ r จะเขียนไดวา (? R1(r), ? R2(r), ..., ? Rn(r)) = r
หมายเหตุ: MVD เปนกรณีพิเศษของ JD กรณีที่ n = 2. การเชื่อมโยงแบบรวม JD (R1, R2, ..., Rn), ยังไดกําหนดในแผนผังความสัมพันธ R เปน trivial JD หากวา หนึ่งในแผนผังความสัมพันธ Ri ใน JD(R1, R2, ..., Rn) มีคาเทากับ R.
9.3.2 คําจํากัดความของ Relation Schema R สําหรับ 5NF Relation Schema ของ R ใน fifth normal form (5NF) (หรือ Project-Join Normal Form (PJNF)) เมื่อเทียบกับชุดของ F ของ Functional Multivalued และ Join dependencies โดยถาหากวา สําหรับทุก ๆ nontrivial join dependency JD(R1, R2, ..., Rn) ใน F+ (และ imply ไปถึง F), ทุกๆ Ri เปน ซูเปอรคีย (Superkey) ของ R
รูปที่ 9.4 การแปลง SUPPLY ที่มี Joint dependencies เปน 5NF จากรูป 9.4 (c) จะเห็นไดวาความสัมพันธของ SUPPLY ไมมี MVD จะอยูในรูปของ 4NF ไมไดอยูในรูปของ 5NF ถาหาวามีความสัมพันธ JD(R1, R2, R3) ในขณะที่รูป d) จะเห็นไดวาทําการ Decomposition ความสัมพันธของ SUPPLY ไปสู 5NF โดยแยกเปน Relation สามตัว นั้นคือ R1, R2, R3
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
9-5
แบบฝกหัด 1. 2. 3. 4. 5. 6.
อธิบายแนวคิด การเชื่อมโยงแบบหลายคา หรือ Multivalued Dependency และ นอรมัลฟอรมลําดับที่ 4 อธิบายแนวคิด การเชื่อมโยงแบบรวม หรือ Join Dependency และ นอรมัลฟอรมลําดับที่ 5 อธิบายแนวคิดของ Join Dependency อธิบายความหมายของ MVD อธิบายความหมายของ Trivial และ non-trivial dependencies จากขอมูล ขางลางจะเห็นไดวามีการจัดทําเปน 5NF ขอใหเปรียบเทียบขอดี และ ขอเสียที่ได หากไมมีการ ปรับเปน 5NF แตไดมีการนําไปใชในการออกแบบฐานขอมูลจริง