วันจันทร์ที่ 21 พฤษภาคม พ.ศ. 2561

9 - Informal Design Guidelines for Relation Schemas

Informal Design Guidelines for Relation Schemas

        ในบทความนี้จะกล่าวถึง Guidelines ของการออกแบบ Relation Schemas ซึ่งมีอยู่ 4 Guidelines ซึ่งจะทำให้ Database นั้นดียิ่งขึ้น




Informal Design Guidelines for Relation Schemas
  • Measures of quality 
            - Making sure attribute semantics are clear: ให้แน่ใจว่า ความหมายของแต่ละ attribute มีความชัดเจน
            - Reducing redundant information in tuples: ลดความ ซําซ้อนของข้อมลูใน tuples
            - Reducing NULL values in tuples
            - Disallowing possibility of generating spurious (false) tuples: ไม่อนุญาตให้เกิด spurious tuples คือ tuples ที่ผิดพลาด เช่น ได้ข้อมูลเกินจากความเป็นจริงหลังจากรวมข้อมูลจากหลาย Table หรือ Relation

Imparting Clear Semantics to Attributes in Relations
  • Semantics of a relation 
            - Meaning resulting from interpretation of attribute values in a tuple: ความหมายที่สะท้อนถึง relation มาจากการแปลความหมายของค่า ข้อมูล attribute ต่างๆที่อยู่ใน tuple
  • Easier to explain semantics of relation
            - Indicates better schema design: จะต้องอธิบายความหมายของ relation แต่ละ relation ได้ง่าย

Guideline 1

  • Design relation schema so that it is easy to explain its meaning: ต้องออกแบบให้สามารถอธิบายความหมายของ relation แต่ละ relation ได้ง่าย 
  • Do not combine attributes from multiple entity types and relationship types into a single relation: ต้องไม่รวม attribute ที่มาจากหลาย domain ไว้ใน relation เดียว





Redundant Information in Tuples and Update Anomalies 
  • Grouping attributes into relation schemas 
            - Significant effect on storage space: การรวมข้อมูลที่มาจากหลาย domain ไว้ด้วยกันมีผลกระทบโดยตรงทําให้ เปลืองเนื้อที่ในการจัดเก็บข้อมูล
  • Storing natural joins of base relations leads to update anomalies: การจัดเก็บข้อมูลที่อยู่ต่าง domain ถึงแม้จะมีความสัมพันธ์กันในลักษณะ natural joins ก็สามารถนําไปสู่ปัญหา update anomalies ได้ (ปัญหาการปรับปรุงข้อมูลที่ทําให้ข้อมูลมีลักษณะผิดปกติ)
  • Types of update anomalies: 
           - Insertion
            - Deletion 
            - Modification 

Guideline 2

  • Design base relation schemas so that no update anomalies are present in the relations: ต้องออกแบบไม่ให้เกิด update anomalies ในแต่ละ relation
  • If any anomalies are present: ถ้าหลีกเลี่ยงไม่ได้ 
            - Note them clearly: ให้บันทึกไว้ให้ชัดเจน 
            - Make sure that the programs that update the database will operate correctly: ให้แน่ใจว่าโปรแกรมจะ ปรับปรุงข้อมูลในฐานข้อมูลได้ถูกต้อง




NULL Values in Tuples
  • May group many attributes together into a “fat” relation
            - Can end up with many NULLs การรวมข้อมูลจากหลาย domain มาไว้ด้วยกันจะส่งผลให้มีข้อมูลที่มีค่าเป็ น NULL เกิดขึ้นใน relation
  • Problems with NULLs: ปัญหาการจัดเก็บค่า NULL ทําให้ เกิด
            - Wasted storage space: เปลืองเนื้อที่ในการจัดเก็บข้อมูล
            - Problems understanding meaning: การเก็บข้อมูลที่เป็นค่า NULL อาจจะส่งผลในแง่ไม่สื่อความหมาย หรือเข้าใจความหมายได้ยาก 

Guideline 3

  • Avoid placing attributes in a base relation whose values may frequently be NULL หลีกเลี่ยงการจัดเก็บ attribute ที่มีโอกาสจัดเก็บค่า NULL จํานวนมากๆ
  • If NULLs are unavoidable: แต่ถ้าหลีกเลี่ยงไม่ได้ 
            - Make sure that they apply in exceptional cases only, not to a majority of tuples ขอให้เป็นกรณียกเว้น อย่าให้เป็นกรณีส่วนใหญ่ หรือกรณีทั่วไป 




Generation of Spurious Tuples
  • NATURAL JOIN
            - Result produces many more tuples than the original set of tuples in EMP_PROJ
            - Called spurious tuples การรวมข้อมูล (relation) ที่มีความสัมพันธ์กัน แต่เลือก attribute ที"เป็ น ตัวเชื่อมความสัมพันธ์ไม่เหมาะสม จะทําให้เกิด spurious tuples
            - Represent spurious information that is not valid: การที่มีข้อมูล spurious เกิดขึ้นนั้นหมายความว่า ออกแบบไม่ถูกต้อง


Guideline 4
  • Design relation schemas to be joined with equality conditions on attributes that are appropriately related
            - Guarantees that no spurious tuples are generated ต้องออกแบบให้ relation ที่มีการรวมข้อมูลจาก relation อื่น (Join) โดยเลือก attribute ที่เหมาะสม ซึ่งควรอยู่ในลักษณะ equi join จะทํา ให้ไม่เกิด spurious tuples
  • Avoid relations that contain matching attributes that are not (foreign key, primary key) combinations ให้หลีกเลี่ยงการนํา attribute ที่ไม่ใช่ foreign key หรือ primary key มาเป็น ตัวเชื่อมโยง ระหว่าง 2 relation


Reference
Fundamentals of Database Systems Sixth Edition : Ramez Elmasri, Shamkant B. Navathe
http://www.cs.science.cmu.ac.th/course/204222/lib/exe/fetch.php?media=ch15_fd_normalization.pdf

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

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

บทความใหม่ที่แนะนำ

10 - Normalization