1 / 44

Chapter 8 : ขั้นตอน การแปลงแผนภาพ ER มา เป็น รีเลชั่น ER-to-Relational Mapping Algorithm

Chapter 8 : ขั้นตอน การแปลงแผนภาพ ER มา เป็น รีเลชั่น ER-to-Relational Mapping Algorithm. 4121203A ระบบฐานข้อมูล. สรุปขั้นตอนการสร้าง E-R Diagram. 1. กำหนดว่ามีเอนทีตีอะไรบ้าง 2. กำหนดความสัมพันธ์ระหว่างเอนทีตี 3. กำหนดแอทริบิวต์ของเอนทีตีให้ครบ

mimir
Download Presentation

Chapter 8 : ขั้นตอน การแปลงแผนภาพ ER มา เป็น รีเลชั่น ER-to-Relational Mapping Algorithm

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 8 : ขั้นตอนการแปลงแผนภาพ ER มาเป็นรีเลชั่นER-to-Relational Mapping Algorithm 4121203A ระบบฐานข้อมูล

  2. สรุปขั้นตอนการสร้าง E-R Diagram • 1. กำหนดว่ามีเอนทีตีอะไรบ้าง • 2. กำหนดความสัมพันธ์ระหว่างเอนทีตี • 3. กำหนดแอทริบิวต์ของเอนทีตีให้ครบ • 4. พิจารณาแอทริบิวต์ที่ขึ้นกับความสัมพันธ์ • 5. เลือกคีย์หลัก

  3. การแปลง E-R Model เป็น Table

  4. Step 1 Entity Students • ขั้นตอนการแปลง Entity • กรณี Simple Attribute - สร้างตารางสำหรับ Entity - ชื่อของตาราง นำมาจาก ชื่อของ Entity - ชื่อของคอลัมน์ นำมาจากชื่อของ Attribute ของ Entity - Primary Key ของ ตาราง นำมาจาก Primary Key ของ Entity BirthYear S_ID Last_name First_name

  5. Step 1 Entity city street state • ขั้นตอนการแปลง Entity • กรณี Composite Attributes - นำเพียงแอตทริบิวต์แบบ simple ที่บรรจุอยู่ในแอตทริบิวต์แบบ Composite มาเท่านั้น Customer Zip Code Address cus_ID Last_name First_name

  6. Step 1 Entity Students • ขั้นตอนการแปลง Entity • กรณี Multivalued Attribute - ต้องมีการสร้างรีเลชั่นสองรีเลชั่น - รีเลชั่นแรกจะบรรจุค่าแอตทริบิวต์ที่มีอยู่ใน Entity ทั้งหมด ยกเว้นแอตทริบิวต์ที่เป็นแบบ Multivalued - รีเลชั่นที่สองให้บรรจุ 2 แอตทริบิวต์ - แอตทริบิวต์แรกคือ คีย์หลักที่อยู่ในรีเลชั่นแรก - แอตทริบิวต์สอง คือ แอตทริบิวต์ที่เป็น Multivalued Tel S_ID Tel Last_name First_name

  7. Multivalued Attributes Instructor - Relational Model จะยอมให้มีเพียง 1 ข้อมูลในแต่ล่ะ attribute - Multivalued attribute ใน ER Model จะถูกสร้างเป็นตารางใหม่ เพื่อเก็บข้อมูลโดยเฉพาะ Tel ID Degrees Name

  8. Step2WeakEntity ขั้นตอนการแปลง Weak Entity • - สร้างตารางใหม่สำหรับ Weak Entity นำ Primary Key จาก Master Entity มาเป็น Primary Key ร่วมกับ Primary Key เดิมของ Weak Entity • Attribute นั้นจะมาเป็น Foreign Key สำหรับชี้ไปยัง ตารางของ Master Entity

  9. Step2WeakEntity Last Name First Name emp_firstName emp_LastName birthDate dependentname emp_ID gender M 1 claims EMPLOYEE DEPENDENT

  10. Step2WeakEntity Building_name Room_number … … 1 M has Room Building

  11. Step 3 : One-to-Many Relationship แปลงความสัมพันธ์แบบ One-to-Many - นำ Primary Key ฝั่ง One ไปเพิ่มเป็นคอลัมน์ ในฝั่ง Many - คอลัมน์ นั้นจะเป็น Foreign Key อ้างถึง Primary Key ของตารางที่ต้องการอ้างถึง(ฝั่ง One) - การแปลง Many-to-One ก็กระทำอย่างเดียวกัน

  12. Step 4 : Many -to-Many Relationship • แปลงความสัมพันธ์แบบ Many-to-Many - สร้างตารางของความสัมพันธ์ขึ้นมา 1 ตารางเพื่อเก็บ Primary Key ของทั้ง 2 ตาราง - คอลัมน์ที่ได้ใหม่ทั้ง 2 คอลัมน์จะเป็น Foreign Key ชี้ไปยังตารางที่ดึงมา - ใช้ Entity ใหม่ ที่ได้มาเป็นทั้ง 2 Entity เป็น Primary Key ของตารางความสัมพันธ์

  13. Step 4 : Many -to-ManyRelationship … C_ID … S_ID N M takes STUDENT COURSE … C_ID … S_ID M 1 1 M takes STUDENT COURSE

  14. Step 4: Many -to-ManyRelationship … C_ID Registration_date … S_ID • ในกรณีที่ความสัมพันธ์มีแอตทริบิวท์ ให้นำแอตทริบิวท์ นั้นไปต่อท้ายแอตทริบิวท์ที่นำมาจากตารางทั้ง 2 ฝั่ง N M takes STUDENT COURSE … C_ID … S_ID M 1 1 M takes STUDENT COURSE Registration_date

  15. ข้อสังเกต ข้อสังเกต • คอลัมน์ของตารางที่คล้ายๆ กัน ควรมีชื่อที่แตกต่างกัน • เช่น ID เป็นชื่อของ Primary Key ของตาราง 2 ตาราง 1 ใน 2 ตารางนั้นควรจะเปลี่ยนชื่อก่อนที่จะเพิ่มตารางใหม่ลงไป • การเปลี่ยนควรจะ ทำโดยการเพิ่มชื่อของ Entity ลงไป ใน ชื่อ Attribute นั้น เช่น Student_id, Instructor_id

  16. ข้อสังเกต

  17. Step5: One-to-OneRelationship โดยทั่วไป การแปลงเหมือนกับการแปลงแบบ One-to-Many Relationship คือ เพิ่ม Primary Key จากด้านใดด้านหนึ่งไปเป็น Attribute ของอีกด้าน

  18. Step5: One-to-OneRelationship • สำหรับการออกแบบที่ดีขึ้น การแปลง One-to-One Relationship จะแบ่งออกเป็น 3 กรณี

  19. Step5: One-to-OneRelationship • Transforming One-to-One Relationship : (0,1) และ (1,1) - จะดีที่สุดถ้านำ Primary Key ฝั่ง (0,1) ไปเพิ่มเป็น Attribute ทางฝั่ง (1,1) เพื่อหลีกเลี่ยง Null

  20. Step5: One-to-OneRelationship • Transforming One-to-One Relationship : (0,1) และ (0,1) • - นำ Primary Key ของฝั่งใดฝั่งหนึ่ง ไปเป็น attribute ของอีกฝั่งหนึ่ง(ไม่สามารถหลีกเลี่ยงค่า Null ได้

  21. Step5: One-to-OneRelationship • หรือเปลี่ยนความสัมพันธ์ให้เป็นตารางใหม่ โดยนำ Primary Key ของทั้ง 2 ฝั่งไปเป็น attribute เพื่อหลีกเลี่ยงค่า Null

  22. Step5: One-to-OneRelationship Transforming One-to-One Relationship: (1,1) และ (1,1) - รวม 2 ตารางเป็น 1 ตาราง - เลือก Primary key จาก Primary Key ของตารางใดตารางหนึ่ง - Primary Key ของตารางที่เหลือจะเป็น Alternate Key

  23. Step6 : การแปลงความสัมพันธ์แบบ Unary • ความสัมพันธ์แบบ Unary เป็นความสัมพันธ์ระหว่างเอ็นทิตี้เดียว หรือเรียกว่า ความสัมพันธ์แบบรีเคอร์ซีพ • ความสัมพันธ์ • ความสัมพันธ์แบบ Unary ชนิดหนึ่งต่อกลุ่ม (1:M) • ความสัมพันธ์แบบ Unary ชนิดกลุ่มต่อกลุ่ม (M:N)

  24. Step6 : การแปลงความสัมพันธ์แบบ Unary • ความสัมพันธ์แบบ Unary ชนิดหนึ่งต่อกลุ่ม (1:M) emp_Name emp_ID birthDate M EMPLOYEE 1 manages

  25. Step6 : การแปลงความสัมพันธ์แบบ Unary • ความสัมพันธ์แบบ Unary ชนิดกลุ่มต่อกลุ่ม (M:N) item_Name • จะต้องสร้างรีเลชั่น 2 รีเลชั่นด้วยกัน • โดยรีเลชั่นแรกจะมีคีย์หลักพร้อมแอตทริบิวต์ที่เกี่ยวข้อง • ส่วนอีกรีเลชั่นประกอบด้วย 2 แอตทริบิวต์ที่ใช้เป็นคีย์หลัก ซึ่งแอตทริบิวท์ทั้ง 2 ก็คือค่าข้อมูลเดียวกันกับคีย์หลักในเอ็นทิตี้แรก แต่เปลี่ยนชื่อให้แตกต่างกัน item_No unitCost N ITEM M quantity contains

  26. Step7 : การแปลงความสัมพันธ์แบบ Ternary (and n-ary) • ความสัมพันธ์แบบ Ternary เป็นความสัมพันธ์ระหว่างเอ็นทิตี้3 ตัวด้วยกัน physician _Name patient_Name physician_ID patient_ID M M Patient_ Treatment PHYSICAIN PATIENT time results date M TREATMENT description treatmentCode

  27. Step7 : การแปลงความสัมพันธ์แบบ Ternary (and n-ary) • ขั้นที่ 1 ในการแปลง physician _Name patient_Name physician_ID patient_ID 1 M M 1 Patient_ Treatment PHYSICAIN PATIENT M 1 time results date TREATMENT description treatmentCode

  28. Step7: การแปลงความสัมพันธ์แบบ Ternary (and n-ary) • จะต้องสร้างรีเลชั่น 4 รีเลชั่นด้วยกัน • โดยจะมีเอ็นทิตี้หนึ่งเชื่อมโยงระหว่าง 3 เอ็นทิตี้เข้าด้วยกัน • เอ็นทิตี้นั้นจะนำคีย์หลักใน 3เอ็นทิตี้มาเป็นคีย์หลัก และอาจเพิ่มเติมคีย์หลักได้ • ขั้นที่ 2 ในการแปลง

  29. Step8 : การแปลงความสัมพันธ์แบบ Supertypeและ Subtype • ปกติแล้วแบบจำลองข้อมูลเชิงสัมพันธ์จะไม่สนับสนุนความสัมพันธ์แบบ Supertype/Subtype แต่อย่างไรก็ตาม ก็ยังมีแนวทางในการออกแบบเพื่อรองรับความสัมพันธ์ดังกล่าวได้ดังนี้ • ให้สร้างรีเลชั่นแยกออกต่างหาก สำหรับซูเปอร์ไทป์และแต่ละซับไทป์ • แอตตริบิวต์ของซับไทป์จะได้รับการถ่ายทอดจากรีเลชั่นที่เป็นซูเปอร์ไทป์ รวมถึงแอตตริบิวต์ที่เป็นคีย์หลักด้วย • กำหนดคีย์หลักให้กับแต่ละรีเลชั่นที่เป็นซับไทป์ โดยจะต้องมีแอตตริบิวต์ที่แตกต่างกัน เพื่อใช้ระบุความแตกต่างของแต่ละซับไทป์ • กำหนด Subtype Discriminator ให้กับ Supertype

  30. Step8 : การแปลงความสัมพันธ์แบบ Supertypeและ Subtype name address empNo dataHired EMPLOYEE d CONSULTANT SALARIED_EMP HOURLY_EMP hourlyRate salary contractNo bonus BillingRate

  31. Step8 : การแปลงความสัมพันธ์แบบ Supertypeและ Subtype

  32. ปัญหาในอีอาร์โมเดล (Problem with ER Model) เป็นปัญหาที่เกิดจากในขั้นตอนการออกแบบในเชิงความคิดหรือทางลอจิคอล เป็นการสร้างความสัมพันธ์ระหว่างเอ็นติตี้ที่ผิดก่อให้เกิดการแปลความหมายความสัมพันธ์สัมพันธ์ผิดพลาดได้ โดยความผิดพลาดหรือปัญหาใน ER Model จะมีอยู่สองรูปแบบด้วยกันคือ 1. Fan Traps 2. Chasm Traps

  33. ปัญหาจากการออกแบบฐานข้อมูลด้วยอี-อาร์โมเดลปัญหาจากการออกแบบฐานข้อมูลด้วยอี-อาร์โมเดล 1. Fan Trap เป็นปัญหาที่เกี่ยวข้องกับลักษณะการจัดความสัมพันธ์ระหว่างเอนทิตีทำให้เกิดความไม่ชัดเจนในการแสดงข้อมูลที่สนใจออกมา ซึ่งมักพบในกรณีที่เอนทิตีหนึ่งมีความสัมพันธ์แบบหนึ่งต่อกลุ่มกับเอนทิตีอื่นตั้งแต่สองเอนทิตีขึ้นไป

  34. ตัวอย่างปัญหา Fan Trap สถาบันการศึกษาแห่งหนึ่งเปิดทำการสอนหลายคณะ โดยในแต่ละคณะประกอบด้วยภาควิชาต่าง ๆ หลายภาควิชา และอาจารย์หลายคน ซึ่งอาจารย์แต่ละคนจะสังกัดคณะใดคณะหนึ่งเท่านั้น หากกำหนดให้ความสัมพันธ์ระหว่างแต่ละเอนทิตีเป็นดังนี้

  35. อาจารย์สังกัดภาควิชาใด?? เนื่องจากไม่มีความสัมพันธ์ระหว่างเอนทีตีภาควิชา

  36. ปัญหาจากการออกแบบฐานข้อมูลด้วยอี-อาร์โมเดลปัญหาจากการออกแบบฐานข้อมูลด้วยอี-อาร์โมเดล 2. Chasm Trap เป็นปัญหาที่เกี่ยวข้องกับการแสดงข้อมูลที่ควรจะมีไม่ได้ หรือไม่สามารถเชื่อมโยงเพื่อให้ได้ข้อมูลที่ครบถ้วนได้โดยปัญหานี้มักพบเมื่อเอนทีตีหนึ่งมีความสัมพันธ์กับเอนทิตีอื่นตั้งแต่สองเอนทิตี ขึ้นไป แต่ไม่สามารถเชื่อมโยงความสัมพันธ์ระหว่างข้อมูลได้

  37. ตัวอย่าง Chasm Trapกำหนดให้แต่ละภาควิชาประกอบด้วยอาจารย์หลายคน ซึ่งอาจารย์แต่ละคนจะสังกัดภาควิชาใดภาควิชาหนึ่งเท่านั้น และอาจารย์แต่ละคนอาจทำการสอนได้มากกว่าหนึ่งชุดวิชา โดยแต่ละชุดวิชาอาจมีอาจารย์ผู้สอนมากกว่าหนึ่งคนก็ได้ หากกำหนดให้ความสัมพันธ์ระหว่างแต่ละเอนทิตีเป็นดังนี้

  38. ถ้าชุดวิชาไม่เคยเปิดสอน ก็จะไม่มีอาจารย์คนใดสอน ทำให้ไม่ทราบว่าชุดวิชานั้นอยู่ในภาควิชาใด

  39. แบบฝึกหัด 1. จงวาดรูป ER Diagram ของระบบร้านเช่าวีดีโอแห่งหนึ่ง ประกอบด้วย • แฟ้มสมาชิก(member) ข้อมูลที่เก็บ รหัสลูกค้า , ชื่อ , ที่อยู่,เบอร์โทร • แฟ้มชื่อเรื่อง(title) ข้อมูลที่เก็บ รหัสเรื่อง, ชื่อเรื่อง , ผู้กำกับ , นักแสดง (Mutivalue attribute) • แฟ้มประเภท(category)ข้อมูลที่เก็บ รหัสประเภท,รายละเอียด จากนั้นให้แปลง ER Diagram ข้างต้น ให้เป็นตารางให้ถูกต้อง

  40. 2. จงแปลง ER Diagram ต่อไปนี้ให้เป็นตาราง 1 M N M M 1

  41. 3. จงแปลง ER Diagram ต่อไปนี้ให้เป็นตาราง วันที่เข้าเรียน คณะ เลขที่บัตร วันเกิด รหัสวิชา รหัสนักศึกษา ชื่อ 1 1 N M มี ลงทะเบียน ประวัตินักศึกษา วิชา นักศึกษา M ชั้นปี ชื่อวิชา เชื้อชาติ ที่อยู่ มี หน่วยกิต 1 อาจารย์ที่ปรึกษา รหัสอาจารย์ ชื่ออาจารย์ ห้องพัก

  42. 4. จงแปลง ER Diagram ต่อไปนี้ให้เป็นตาราง M N 1 M N M

More Related