chapter07 relational database design by er- and eer-to-relational

8
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]

Transcript of chapter07 relational database design by er- and eer-to-relational

Page 1: chapter07 relational database design by er- and eer-to-relational

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]

Page 2: chapter07 relational database design by er- and eer-to-relational

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

Page 3: chapter07 relational database design by er- and eer-to-relational

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 แสดงภาพความสัมพันธของรีเลชัน

Page 4: chapter07 relational database design by er- and eer-to-relational

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

Only) 3. แบบ 8C ซิงเกิลรีเลชัน กับ แอทตริบิวตแบบเดียว (Single Relation with one type attribute) 4. แบบ 8D ซิงเกิลรีเลชัน กับ แอทตริบิวตหลายแบบ (Single Relation with Multiple type attributes)

รูปที่ 7.5 – 7.11 แสดงวิธีการแปลงทั้ง 4 แบบ

รูปที่ 7.5 แผนภาพ EER ของ JobType

แบบมี

สเปเชียลไลเซชัน

Page 5: chapter07 relational database design by er- and eer-to-relational

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

รูปที่ 7.6 การแปลงแบบ 8A

รูปที่ 7.7 แผนภาพ EER

ของ VEHICLE

รูปที่ 7.8 การแปลงแบบ 8B

รูปที่ 7.9

การแปลงแบบ 8C

รูปที่ 7.10 แผนภาพ EER ของ PART ที่มี

สเปเชียลไลเซชัน

ชนิด overlapping

(non-disjoint)

Tonnage

EngType

Page 6: chapter07 relational database design by er- and eer-to-relational

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

Page 7: chapter07 relational database design by er- and eer-to-relational

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

รูปที่ 7.13 แปลงจาก EER

เปนรีเลชัน

แบบฝกหัด 1. จงแปลงจาก ER เปนรีเลชัน

OwnerID

CYear

Page 8: chapter07 relational database design by er- and eer-to-relational

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

2. จงแปลงจาก ER เปนรีเลชัน

3. จงแปลงจาก EER เปนรีเลชัน