โมเดลจำลองความสัมพันธ์ระหว่างข้อมูล
บทนี้จุดประสงค์หลักคือ การออกแบบ E-R Diagram ให้ได้
หัวใจหลักของ database คือการเก็บข้อมูลให้ถูกต้อง
จะเก็บข้อมูลได้ถูกต้อง เราต้องลดความซ้ำซ้อนให้มากที่สุด
E-R Model
- เป็นแบบจำลองข้อมูลซึ่งแสดงถึงโครงสร้างของฐานข้อมูล
รายละเอียดและความสัมพันธ์ระหว่างข้อมูลในระบบ ในลักษณะที่เป็นภาพรวม
- สัญลักษณ์ต่างๆที่ใช้ใน E-R Model เรียกว่า E-R Diagram
เวลาออกแบบตาราง 1 ตาราง ควรเก็บแค่เรื่องเดียว อย่าเก็บหลายเรื่องในตารางเดียว
เพราะแต่ละตารางสามารถเชื่อมโยงกันได้อยู่แล้ว โดยใช้ Primary key
Entity
หมายถึงสิ่งที่สนใจ สามารถระบุได้ในความเป็นจริง
และต้องการเก็ฐรวบรวมข้อมูลที่เกี่ยวข้องด้วยไว้ในฐานข้อมูล
พูดง่ายๆคือ Entity คือ ตารางที่เก็บข้อมูล
Ex.
บุคคล, สถานที่, เหตุการณ์
Q. ถ้าจะสร้างฐานข้อมูลมหาลัย อะไรควรเป็น Entity บ้าง
A. วิชา, อาจารย์, การลงทะเบียน, นักศึกษา
1. Strong Entity : เกิดขึ้นได้ด้วยตัวเอง การคงอยู่ของEntity ไม่เกี่ยวข้องกับ Entity อื่น
>สัญลักษณ์ สี่เหลี่ยมเส้นเดียว
2. Weak Entity : การคงอยู่ของ Entity แบบนี้ จะเกี่ยวข้องกับ Entity อื่นในระบบฐานข้อมูล
คือถ้า Entity ที่เกี่ยวข้องหายไป Entity ตัวนี้ก็ไม่จำเป็นอีกต่อไป
>สัญลักษณ์ สี่เหลี่ยมสองเส้น
Attribute (Column)
ข้อมูลที่แสดงคุณสมบัติหรือคุณลักษณะของ Entity หรือความสัมพันธ์
1. Simple Attribute : Attribute ที่ไม่สามารถแบ่งแยกย่อยลงไปได้อีก
2. Composite Attribute : คือ Attribute ที่สามารถแบ่งแยกย่อยลงไปได้อีก
> สัญลักษณ์ ทั้ง Simple กับ Composite จะเป็นวงกลม
3. Key Attribute : Attributeหรือกลุ่มAttribute ที่มีค่าของข้อมูลไม่ซ้ำกันใน Entity
> สัญลักษณ์ เหมือน Simple แต่จะมีขีดเส้นใต้
4. Single-Valued Attribute : Attribute ที่มีค่าของข้อมูลในแต่ละสมาชิกของ Entity ได้ค่าเดียว
> สัญลักษณ์ เส้นตรงเส้นเดียว
5. Multi-Value Attribute : Attribute ที่มีค่าของข้อมูลในแต่ละสมาชิกของ Entity ได้หลายค่า
> สัญลักษณ์ เส้นตรงสองเส้น
6. Derived Attribute : Attribute ที่ค่าของข้อมูลได้มาจากการ
นำค่าของข้อมูลใน Attributeอื่น มาคำนวณ
> สัญลักษณ์ เส้นประRelationship
หมายถึง Entity ที่แสดงความสัมพันธ์ระหว่าง 2 Entity ขึ้นไป
ความสัมพันธ์นั้นอาจมี Attribute ของตนเองก็ได้
ความสัมพันธ์ระหว่าง Entity ใดๆ อาจมีมากกว่าหนึ่งความสัมพันธ์ก็ได้
> สัญลักษณ์ สี่เหลี่ยมข้าวหลามตัด
Entity ที่เกี่ยวข้องกับความสัมพันธ์เรียกว่า Participant ของความสัมพันธ์
1. Total Participation : คือทุกสมาชิกใน Entity มีความสัมพันธ์กับข้อมูลในอีก Entity
2. Partial Participation : คือสมาชิกบางตัวใน Entity มีความสัมพันธ์กับข้อมูลในอีก Entity
รูปแบบความสัมพันธ์ระหว่าง Entity ***
1. ความสัมพันธ์แบบหนึ่งต่อหนึ่ง (1:1)
2. ความสัมพันธ์แบบหนึ่งต่อกลุ่ม (1:M)
3. ความสัมพันธ์แบบกลุ่มต่อกลุ่ม (M:M)
*2 อันแรกไม่ค่อยมีปัญหา แต่จะยากตรงแบบที่ 3(M:M)
เราสามารถใช้ Foreign Key เชื่อม Entity ในความสัมพันธ์แบบ 1:1 หรือ 1:M ได้
แต่ถ้าเป็น M:M จะใช้ระบบ Foreign Key ไม่ได้
อย่างรูปภาพด้านบน Entity PAINTER กับ PAINTING มีความสัมพันธ์แบบ 1:M
เชื่อมความสัมพันธ์ของ PAINTER กับ PAINTING ด้วย Foreign Key ได้
ความสัมพันธ์แบบ 1:1 ก็ใช้ระบบ Foreign Key ได้เหมือนกัน
แต่ถ้าเป็นความสัมพันธ์แบบ M:M
Ex. นักศึกษา กับ วิชาเรียน
( นักศึกษาคนนึงลงได้หลายวิชาเรียน และ วิชาเรียนนึงก็มีนักศึกษาหลายคน )
ให้ลองคิดว่าจะใช้อะไรเชื่อมกัน
จะเอารหัสนักศึกษา ไปใส่ Entity วิชาเรียน ก็ไม่ได้
หรือจะเอารหัสวิชา ไปใส่ Entity นักศึกษา ก็ใส่ไม่ได้เหมือนกัน
แล้วจะทำยังไง ??
คำตอบคือ Composite Entities
Composite Entities คืออะไร ?
นอกจากความสัมพันธ์ 3 แบบที่กล่าวไป ( 1:1, 1:M, M:M )
ความสัมพันธ์ยังมีลักษณะเพิ่มเติมดังนี้
- Existence Dependency : ความสัมพันธ์ระหว่าง Strong กับ Weak Entity
- Recursive : ความสัมพันธ์ในตัว Entity เอง ไม่ต้องเชื่อมกับ Entity อื่น
Ex. หัวหน้าห้องกับนักศึกษา
ไม่ต้องเชื่อมนักศึกษากับ Entityอื่น เพราะมีข้อมูลอยู่ในนักศึกษาอยู่แล้ว
- Composite Entities : เป็น Entity ที่ถูกสร้างขึ้นเพื่อใช้เชื่อมความสัมพันธ์ระหว่าง Entity
แบบ M:M ให้เป็นความสัมพันธ์แบบ 1:M
Ex. ความสัมพันธ์ นักศึกษา กับ วิชาเรียน
เป็นความสัมพันธ์แบบ M:M
เราจะสร้าง Entities ใหม่ขึ้นมา ซึ่งเรียกว่า Composite Entity
โดยนำ Key หลักของ แต่ละ Entity มาใช้
ซึ่งเมื่อรวมกันแล้วจะเป็น Keyหลักของ Composite Entity
2 Entity เรียก Binary Relationship
E-R Diagram
อันนี้เรียก Chen model
อันนี้เรียก Crow'sFoot
1. ศึกษาทำความเข้าใจระบบงานให้เรียบร้อย
2. ระบุ Entity ที่ควรมีในระบบ
3. กำหนดความสัมพันธ์ เป็นคู่ๆก่อน แล้วค่อยจับมารวมกัน
Case Study
เฉลยอยู่ล่างสุดของโพสต์
EER (Enhance E-R Model)
- เป็นการนำ E-R Model มาเพิ่มเติมในเรื่องของความสัมพันธ์แบบ Supertype/Subtype
- มีกระบวนการถ่ายทอดคุณสมบัติ ( Attribute inheritance )
Supertype : คือ Entity ที่เป็นต้นแบบของ Entity อื่นๆ
โดย Supertype จะประกอบด้วย Subtype ต่างๆ
Subtype : คือ Entity ที่มีคุณสมบัติแตกต่างกัน แต่มีคุณสมบัติพื้นฐานเหมือนกัน
ซึ่งคุณสมบัติพื้นฐานจะถูกเก็บใน Supertype
จากรูปภาพ Employee เป็น Supertype โดยจะเก็บข้อมูลพื้นฐานไว้
และ Employeeแบบต่างๆ จะเป็น Subtype ซึ่งมีคุณสมบัติเฉพาะตัวต่างกัน
Subtype จะสืบทอดคุณสมบัติพื้นฐานจาก Supertype แล้วเพิ่มคุณสมบัติอื่นๆ
Q. แล้วจะหา Supertype กับ Subtype ยังไง?
A. ใช้กระบวนการ Generalization หรือ Specialization
Genaeralization คือ มองหาสิ่งที่เหมือนกันใน Subtype แล้วเอามาเป็น Supertype
Specialization คือ มองหาจุดที่ต่างกันแล้วเอามาเป็น Subtype
ข้อดีของ EER
- ไม่ต้องกำหนด Attribute ซ้ำซ้อนใน Subtype อีกต่อไป
- คุณสมบัติเฉพาะของแต่ละ Subtype ก็จะมีความหมายแตกต่างกันตามความเป็นจริง
ความสัมพันธ์ Supertype กับ Subtype
Disjointess Constraints
อย่าง PERSON นี่จะเป็นทั้ง MALE กับ FEMALE ไม่ได้
แต่ EMPLOYEE ทำหลายอย่างได้
การแปลงจาก E-R Model เป็น Relational Data Model
( แปลงจาก E-R เป็น ตาราง )
1. แปลง Entity เป็นตาราง
2. Attribute ต่างๆ ก็คือ column ในตาราง
เฉลยแบบฝึกด้านบน(Case Study)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น