2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
7-1
บทที่ 7* การออกแบบฐานขอมูลเชิงสัมพันธ โดยการแปลง ER และ EER เปนเชิงสัมพันธ Relational Database Design by ER- and EER-to-Relational Mapping วัตถุประสงค 1. เพื่อศึกษาการออกแบบแผนภาพอีอาร (ER Diagram) 2. เพื่อศึกษาขั้นตอนการแปลงแบบจําลองอีอาร (ER Model) ใหเปนแบบจําลองอีอีอาร (EER Model) 3. เพื่อศึกษาการสรางความสัมพันธ (Relation) จากแบบจําลองอีอีอาร (EER Model)
7.1
การแปลง ER ใหเปนรีเลชัน ขั้นตอนที่ 1 : ขั้นตอนการแปลงเอนทิตี แปลงเอนทิตีที่อยูใน ER ใหเปนรีเลชัน แลวนําแอทตริบิวตทั่วไปที่อยูในแตละเอนทิตีมาเปนแอทตริบิวตของรีเลชัน และเลือกเฉพาะแอทตริบิวตทั่วไปที่เปนสวนประกอบของแอทตริบิวตผสมมาเปนแอทตริบิวตของรีเลชัน โดยเลือก แอทตริบิวตที่เปนคียของเอนทิตี ใหเปนคียหลัก (Primary Key) ของแอทตริบิวตที่อยูในรีเลชัน
รูปที่ 7.1 ER Diagram ของ COMPANY
* อางอิงจากบทที่ 7 ของเอกสารอางอิง [1]
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
7-2
รูปที่ 7.1 แสดง ER Diagram ของ ฐานขอมูล Company
รูปที่ 7.2 ผลของการแปลง ER ใหเปนรีเลชัน ของ COMPANY รูปที่ 7.2 แสดงเคารางรีเลชันของฐานขอมูล Company จากรูปที่ 7.1 กับ 7.2 จะเห็นวา ไดมีการสรางรีเลชัน Employee, Department และ Project โดยมี SSN, DNumber และ PName เปนคียหลักของรีเลชันตามลําดับ ขั้นตอนที่ 2 : ขั้นตอนการแปลงเอนทิตีแบบ Weak แปลงเอนทิตีที่อยูใน ER ใหเปนรีเลชัน แลวนําแอทตริบิวตที่อยูในแตละเอนทิตี ใหมาเปนแอทตริบิวตของรีเลชัน ใหเพิ่มแอทตริบิวตที่เปนคียนอก ที่ไดมีการอางอิงกับคียหลัก (ในตัวอยางนี้ก็คือ แอทตริบิวต SSN ที่อยูในรีเลชัน Employee) แลวนําคียนอกที่เพิ่มเขาไปใหมกับคียหลักที่มาจาก ER ใหนํามารวมกันเปนคียรวม (Combine Key) เพื่อนํามาเปนคียหลักของรีเลชัน (ในตัวอยางก็คือ คียหลักของรีเลชัน Dependent เปน แอทตริบิวต ESSN กับ แอทตริบิวต Dependent_Name) ขั้นตอนที่ 3 : ขั้นตอนการแปลงความสัมพันธ 1 : 1 ในความสัมพันธของ ER แบบ 1:1 สามารถที่จะแปลงใหเปนรีเลชันได 3 วิธี 1. ใหเพิ่มคียนอกเขาไปในรีเลชันที่มีความตองการคาที่อยูในคียนอกนี้มากกวากัน (จากตัวอยางเห็นวา รีเลชัน Department จําเปนตองมีผูที่จะเขาไปเปนผูจัดการ จึงนําคียนอกคือแอทตริบิวต SSN โดยเปลี่ยนชื่อแอทตริ บิวตเปน MGRSSN มาเพิ่มลงในรีเลชัน Department 2. ใหนําแอทตริบิวตจากรีเลชันหนึ่งนําไปรวมเขากันกับอีกรีเลชันหนึ่ง ใหเปนรีเลชันเดียวกัน 3. ใหสรางรีเลชันใหมขึ้นมาเพื่อนํามาใชในการอางอิงถึงรีเลชันทั้งคู โดยจะนําคียหลักใน ER ของแตละเอนทิตี นํามารวมกันเปนคียหลักของรีเลชันที่สรางขึ้นใหม ขั้นตอนที่ 4 : ขั้นตอนการแปลงความสัมพันธ 1 : n ใหมีการสรางคียนอกเพื่ออางอิงรีเลชัน โดยนําคียนอกไปเพิ่มในรีเลชันที่อยูดานที่เปน n (n-side) จากตัวอยาง รีเลชัน Employee เปนดาน n แลว รีเลชัน Department เปนดาน 1 ดังนั้นจึงนําคียนอก ซึ่งก็คือ แอทตริบิวต Dnumber ไปเพิ่มในรีเลชัน Employee โดยทําการเปลี่ยนชื่อแอทตริบิวตเปน DNO ขั้นตอนที่ 5 : ขั้นตอนการแปลงความสัมพันธ m : n
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
7-3
ใหสรางรีเลชันขึ้นใหม แลวนําคียหลักของแตละเอนทิตี นํามาเปนคียรวมเพื่อนํามาใชเปนคียหลักของรีเลชันที่ถูก สรางขึ้นมาใหม แลวนําแอทตริบิวตที่เกิดจากความสัมพันธ m-n ใหนํามาใสเปนแอทตริบิวตในรีเลชันที่ถูกสราง ขึ้นมาใหมนี้ดวย จากตัวอยาง รีเลชัน Employee เปนดาน m แลวรีเลชัน Project เปนดาน n ดังนั้นจึงนํา แอท ตริบิวต SSN กับ แอทตริบิวต PNumber มาเปนคียหลักในรีเลชันที่สรางใหมชื่อ Work_On แลวนําแอทตริบิวต Hours ที่เชื่อมความสัมพันธ มาอยูในรีเลชัน Work_On ดวย ขั้นตอนที่ 6 : ขั้นตอนการแปลงแอทตริบิวตหลายคา (Multivalued attribute) สรางรีเลชันใหมสําหรับแอทตริบิวตหลายคา โดยนําคาที่แฝงอยูใหดึงออกมาเปนแอทตริบิวตของรีเลชันที่สรางขึ้น ใหม จากนั้นนําคียนอกของเอนทิตีมาเพิ่มในรีเลชันที่สรางขึ้นใหม แลวนํามาเปนคียรวมกับแอทตริบิวตที่สรางขึ้นมา ใหม เพื่อนํามาทําเปนคียหลักของรีเลชันที่สรางขึ้น จากตัวอยาง แอทตริบิวต Location เปนแอทตริบิวตหลายคา ที่มีความสัมพันธกับเอนทิตี Department ดังนั้นแอทตริบิวต Location จึงสรางรีเลชัน Dept_Locations แลว สรางแอทตริบิวต DLocation ขึ้นมาใหม แลวนําคียนอกของ Department ซึ่งก็คือ แอทตริบิวต DNumber เขา มาเพิ่ม แลวจึงนําแอทตริบิวต DNumber กับแอทตริบิวต DLocation มาเปนคียรวมเพื่อนํามาเปนคียหลักของ รีเลชัน Dept_Locations ขั้นตอนที่ 7 : ขั้นตอนการแปลงความสัมพันธหลายเอนทิตี ถามีเอนทิตีที่มากกวา 2 เอนทิตีขึ้นไปมาสัมพันธกัน ใหสรางรีเลชันใหม แลวนําคียนอกของแตละเอนทิตีนํามาเปน คียรวม เพื่อนํามาทําเปนคียหลักของรีเลชันที่สรางขึ้นใหม แลวถามีแอทตริบิวตจากความสัมพันธก็ใหแอทตริบิวต นั้นนําไปอยูในรีเลชันที่สรางขึ้นใหมดวย จากตัวอยางรูปที่ 1.2-1 กับ 1.2-2 จะพบวา เอนทิตี Supplier, Part และ Project มีความสัมพันธกัน ดังนั้นเมื่อสรางรีเลชันใหมชื่อ Supply แลวจึงนําคียนอกของแตละเอนทิตี ซึ่ง ไดแก SName , PartNO และ ProjName มาทําเปนคียรวมเพื่อใหเปนคียหลัก แลวนําแอทตริบิวต Quantity มาอยูในรีเลชัน Supply ดวย
รูปที่ 7.3 ER Diagram ของ SUPPLY
รูปที่ 7.3 แสดงภาพ ER-Diagram ของ SUPPLY
รูปที่ 7.4 ความสัมพันธของ รีเลชัน รูปที่ 7.4 แสดงภาพความสัมพันธของรีเลชัน
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
7-4
สรุปความสอดคลองกันระหวาง ER และโมเดลเชิงสัมพันธ รูปแบบ ER รูปแบบรีเลชัน เอนทิตี (Entity Type) เอนทิตี (Entity Relation) ความสัมพันธแบบ 1: 1 หรือ 1 : n คียนอก (Foreign Key) ความสัมพันธแบบ m : n ความสัมพันธ (2 คียนอก) ความสัมพันธแบบ n-nary ความสัมพันธ (n คียนอก) แอทตริบิวตทั่วไป (Simple attribute) แอทตริบิวต แอทตริบิวตผสม (Composite attribute) กลุมของแอทตริบิวต แอทตริบิวตหลายคา (Multivalued attribute) รีเลชันและคียนอก เซตของมูลคา โดเมน แอทตริบิวตหลัก คียหลัก
7.2
การแปลง EER ใหเปนรีเลชัน ขั้นตอนที่ 8 : ขั้นตอนนี้เปนทางเลือกในกรณีที่มีการทําสเปเชียลไลเซชันหรือเจเนอรัลไลเซชัน เปลี่ยนสเปเชียไล เซชันดวย m ซับคลาส และ (เจเนอรัลไลซ) ซูเปอรคลาส C ที่แอทตริบิวตของ C เปน {k,a1,a2,….,an} โดยที่ k เปนคียหลัก สามารถทําได 4 วิธีดังนี้ ซึ่งแบงเปน 4 กลุม 1. แบบ 8A มัลติเพิลรีเลชัน – ซูเปอรคลาสและซับคลาส (Multiple Relations – Superclass and Subclasses) 2.
แบบ 8B มัลติเพิลรีเลชัน – เฉพาะ ซับคลาส รีเลชัน (Multiple Relations – Subclass Relations
3.
Only) แบบ 8C ซิงเกิลรีเลชัน กับ แอทตริบิวตแบบเดียว (Single Relation with one type attribute)
4.
แบบ 8D ซิงเกิลรีเลชัน กับ แอทตริบิวตหลายแบบ (Single Relation with Multiple type attributes)
รูปที่ 7.5 – 7.11 แสดงวิธีการแปลงทั้ง 4 แบบ
รูปที่ 7.5 แผนภาพ EER ของ JobType แบบมี สเปเชียลไลเซชัน
7-5
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
รูปที่ 7.6 การแปลงแบบ 8A
รูปที่ 7.7 แผนภาพ EER ของ VEHICLE
รูปที่ 7.8 การแปลงแบบ 8B
Tonnage
รูปที่ 7.9 การแปลงแบบ 8C
รูปที่ 7.10 แผนภาพ EER ของ PART ที่มี สเปเชียลไลเซชัน ชนิด overlapping (non-disjoint)
EngType
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
7-6
รูปที่ 7.11 การแปลงแบบ 8D ขั้นตอนที่ 9 : ขั้นตอนการแปลงของชนิด UNION (Categories) สําหรับการ map category ที่ superclass มีคียตางกัน จําเปนตองกําหนดคียแอทตริบิวตใหม เรียกวา Surrogate Key ที่สอดคลองกับ category นั้น จากตัวอยางในรูปที่ 7.12 เราสามารถสรางรีเลชน OWNER เพื่อใหสอดคลองกับ OWNER category รวมถึง แอทตริบิวตของ category นั้นในรีเลชันนี้ดวย โดยที่ primary key ของ OWNER จะเปน surrogate key ซึ่ง ในที่นี้คือ OwnerId รูปที่ 7.13 แสดงการแปลง EER จากรูปที่ 7.12 เปนรีเลชัน
รูปที่ 7.12 แผนภาพ EER ที่มี 2 Categories (แบบ UNION) OWNER กับ REGISTERED_ VEHICLE
7-7
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
OwnerID
CYear
รูปที่ 7.13 แปลงจาก EER เปนรีเลชัน
แบบฝกหัด 1.
จงแปลงจาก ER เปนรีเลชัน
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย 2.
จงแปลงจาก ER เปนรีเลชัน
3.
จงแปลงจาก EER เปนรีเลชัน
7-8