HOME

DAT001

DAT001

26 ธันวาคม 2559

Database System-E-R Model

Entity-Relationship Model (E-R Model)
โมเดลจำลองความสัมพันธ์ระหว่างข้อมูล


     บทนี้จุดประสงค์หลักคือ การออกแบบ 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 


         
     ความสัมพันธ์นึง สามารถมี Entity มาเกี่ยวข้องได้มากกว่า 2 Entity เรียกว่า N-ary Relationship
     2 Entity เรียก Binary Relationship
   

E-R Diagram



อันนี้เรียก Chen model

อันนี้เรียก Crow'sFoot




การออกแบบฐานข้อมูลด้วย E-R Model

     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)













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

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

Comments system