วันจันทร์ที่ 26 มีนาคม พ.ศ. 2561

ER to Relational Mapping - Algorithm : 7 Steps



7-Step process:
  1. Map Regular Entity type
  2. Map Weak Entity type
  3. Map Binary 1:1 Relation type
  4. Map Binary 1:N Relationship type
  5. Map Binary M:N Relationship type
  6. Map Multivalued attributes
  7. Map N-ary Relationship type



Step 1 คือการแมพ Entity ปกติ หรือก็คือ Entity ที่ไม่ใช่ Weak ทั้งหมด โดยเราจะทำการสร้างตารางขึ้นมาสำหรับ Entity นั้นๆ ซึ่งสมาชิกในตารางก็คือ Attribute ต่างๆใน Entity นั้นๆ โดย Attribute ที่ถูกขีดเส้นใต้นั้น เป็น Key Attribute ที่อาจจะเป็น Primary Key ในอนาคต



Step 2 คือการแมพ Entity ที่เป็น Weak ทั้งหมด ซึ่งเราจะนำ Entity ด้านที่ติดกับเส้นขนาน 2 เส้นมาสร้างตาราง ในที่นี้คือ section ซึ่งตัว Entity นั้นจะต้องสร้าง Foreign key เพื่อมาชี้ที่ Primary Key ของ Entity อีกตัว


Step 3 คือการแมพความสัมพันธ์ที่เป็นแบบ One to One ซึ่งในตัวอย่างไม่มี แต่หากมีเราสามารถเลือก Entity ด้านใดก็ได้มาสร้างตาราง


Step 4 คือการแมพความสัมพันธ์ที่เป็นแบบ One to Many โดยเราจะเลือก Entity ด้านที่เป็น Many มา สร้างตาราง ซึ่งในภาพคือ student จากนั้น student จะสร้าง Foreign key มาชี้ที่ Primary Key ของ department ดังในภาพ Foreign key ของ sudent คือ dname และ Primary Key คือ dept_name นั่นเอง


ความสัมพันธ์ต่อมาคือ advisor โดยที่ sudent ยังคงเป็นด้าน Many เหมือนเดิม ดังนั้น student จะทำการสร้าง Foreign key อีกครั้ง ซึ่งก็คือ i_id ชี้ไปที่ Primary Key ของ instructor นั่นก็คือ ID นั่นเอง


ความสัมพันธ์ต่อมาคือ course_dept โดยที่ course คือด้าน Many ดังนั้น course จึงสร้าง Foreign key ขึ้นมาคือ dpt_name ชี้ไปที่ Primary Key ที่ department นั่นก็คือ dept_name นั่นเอง


ความสัมพันธ์ต่อมาคือ inst_dept โดยที่ instructor คือด้าน Many ดังนั้น instructor จึงสร้าง Foreign key ขึ้นมาคือ dpment_name ชี้ไปที่ Primary Key ของ department นั่นก็คือ dept_name เช่นกัน


ความสัมพันธ์ต่อมาคือ sec_class โดยที่ section เป็นด้าน Many ดังนั้น section จึงสร้าง Foreign key ขึ้นมาคือ class_building ซึ่งชี้ไปที่ Primary Key ของ classroom นั่นก็คือ building นั่นเอง


ความสัมพันธ์สุดท้ายของ 1:N คือ sec_time_slot โดยที่ด้าน section เป็น Many จึงสร้าง Foreign key ขึ้นมาคือ time_id ซึ่งชี้ไปที่ Primary Key ของ time_slot นั่นก็คือ tome_slot_id นั่นเอง



Step 5 คือการแมพความสัมพันธ์แบบ M:N ซึ่งเราจะนำตัวความสัมพันธ์ที่เชื่อมระหว่าง Entity ใดๆ 
มาสร้างตาราง โดยใช้ Key จากทุก Entity ที่เชื่อมกันอยู่มาเป็นสมาชิกในตาราง ดังตัวอย่างคือนำ prereq มาสร้างตารางโดยสมาชิกในตารางคือ reqc_id ซึ่งเป็น key จาก course ที่เป็น entity ที่เชื่อมอยู่กับความสัมพันธ์นี้ (แต่ในกรณีนี้เราต้องนำ key ของวิชาที่เรียนก่อนหน้ามาเป็นสมาชิกในตารางด้วย)


ความสัมพันธ์ต่อมาคือ teaches โดยที่สมาชิกในตารางประกอบไปด้วย i_id ซึ่งเป็น key จากของ instructor และ s_id ซึ่งเป็น key จากของ section และ s_semester ซึ่งเป็น key จากของ section เช่นกัน และสุดท้าย c_id ซึ่งเป็น key จากของ course


ความสัมพันธ์สุดท้ายของ M:N คือ takes ซึ่งสมาชิกในตารางประกอบไปด้วย st_id, s_id, s_semester, c_id, grade ซึ่งเป็น key จาก student, section, course และ grade ที่เป็น entity ของ takes ตามลำดับ


Step 6 คือการแมพ attributes ที่เป็น multivalued หรือ attributes ที่เป็นวงรี 2 วงล้อมรอบกัน โดยในตัวอย่างไม่มี แต่หากมี เราจะสร้างตารางจากตัว attributes ขึ้นมา ซึ่งสมาชิกในตารางก็คือ key ของ entity ที่ attributes นั้นๆอยู่นั่นเอง (อธิบายเพิ่มเติม Multivalued Attribute ก็คือ Attribute ที่สามารถมีได้หลายค่า เช่น เบอร์มือถือ 1 คน อาจมีเบอร์มือถือได้หลายเบอร์ เป็นต้น)


Step 7 คือการแมพความสัมพันธ์แบบ N-ary ซึ่งในตัวอย่างไม่มี


หากนำทั้ง 7 Steps ที่ทำไปทั้งหมด มาสร้างตารางความสัมพันธ์จะได้ดังนี้ โดยเส้นแต่ละเส้น คือเส้นที่ชี้จาก Foreign key แต่ละตัวไปหา Primary Key ของตัวมันเอง

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

Link Video Presentation Resort Managemant System Project.

Video Presentation Resort Managemant System Project. จัดทำโดย พากษ์เสียง: คุณาสิน  ทองมณี  5801012620011 ลำดับภาพ: สุพิชชา  ศรีศิริ...