Chapter07 Relational Database Design By Er- And Eer-to-relational

  • Uploaded by: Phichya Laemluang
  • 0
  • 0
  • December 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Chapter07 Relational Database Design By Er- And Eer-to-relational as PDF for free.

More details

  • Words: 643
  • Pages: 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]

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

Related Documents


More Documents from ""