วันอังคารที่ 29 มีนาคม พ.ศ. 2559

Normal Forms

Presentation Group 4

Normalization
คือ กระบวนการปรับเปลี่ยนโครงสร้างของ relation schema ให้อยู่ในรูปแบบ Normal Form ในลำดับต่างๆ เพื่อให้ได้โครงสร้างของตารางที่ดี  ลดความซ้ำซ้อนของข้อมูล
Normal Forms คือ ตัวทดสอบว่า relation schema  เป็นไปตามเงื่อนไขหรือเปล่า

First normal form (1NF)

      if the values in the domain of each attribute of the relation are atomic (that is simple and indivisible).
  •     ในแต่ละ attribute ของ relation จะเก็บข้อมูลเพียงค่าเดียว คือในแต่ละ attribute ทุก ๆtuple จะมีเพียงข้อมูลเดียว เรียกว่า atomic (นั่นคือเป็น simple หรือ indivisible value)  และต้องไม่มีกลุ่มข้อมูลที่ซ้ำกัน(repeating groups)
  •     วิธีการที่จะทาให้เป็น 1NF คือ 1. แยกคอลัมน์ที่มีค่ามากกว่า 1 ค่าออกเป็นแถวใหม่ 2. เพิ่มข้อมูลเข้าไปในคอลัมน์ที่ว่างอยู่ของแถวที่เกิดขึ้นใหม่ 
ตัวอย่างของ 1NF






1NF สามารถแก้ปัญหาของกลุ่มข้อมูลที่ซ้ำกันได้ แต่กลับทำให้เกิดปัญหา เรื่องความซ้ำซ้อนของข้อมูล (Redundancy)  ดังต่อไปนี้
1.การแก้ไขข้อมูล  การแก้ไขข้อมูลที่มีข้อมูลอยู่หลาย tuple จะต้อง แก้ไขข้อมูลมากกว่าหนึ่งแห่ง เช่น แก้ไขชื่อใน Attribute DOCTOR-NAME ก็ต้องแก้ทุกๆ tuple ที่มีชื่อนั้น
2.การลบข้อมูล  บางส่วนออกไป อาจจะทำให้ข้อมูลอื่น ๆ ถูกลบออกไปด้วย เช่น เมื่อลบข้อมูลของ DOCTOR ก็จะทำให้ข้อมูลของ PATIENT หายไปด้วย
3.การเพิ่มข้อมูล บางอย่างอาจไม่สามารถทำได้ หรือ เพิ่มเข้าไปแล้วจะขัดแย้งกับข้อมูลเดิม


Second normal form (2NF)

 if it is in 1NF and every non-prime key attributes of R is fully functionally dependent on each relation (primary) key of R. 

- relation นั้นมีคุณสมบัติอยู่ใน 1NF  
ทุก Atribute ที่เป็น non-prime key ต้องมีความสัมพันธ์กับ Attribute ที่เป็น primary
ตัวอย่างของ 2NF





จากตัวอย่างใน 1NF จะมี Attribute CONTACT-NO ที่มีความสัมพันธ์กับ DOCTOR-NAME แต่ไม่มีความสัมพันธ์ DATE-TIME ซึ่งเป็น primary key ด้วยหรือเรียกว่าไม่เป็น full function dependency
ดั้งนั้น จึงแยก  DOCTOR-NAME กับ DATE-TIME ออกมาเป็น table ใหม่ก็จะอยู่ในเงื่อนไขของ 2NF

ปัญหาของ 2NF

เมื่อลบข้อมูล จาก relation PATIENT_DOCTOR จะทำให้ข้อมูล PATIENT หายไป
เมื่อมีการแก้ไขข้อมูล บางทีอาจเกิดข้อมูลที่หลากหลาย เพราะว่า ข้อมูลถูกเก็บเกินความจำเป็น


Third normal form (3NF)

        if the relation R is in 2NF and the non-prime attributes (that is, attributes that are not part of the primary key) are
  •      mutually independent,
  •     functionally dependent on the primary (or relation) key
- relation นั้นมีคุณสมบัติอยู่ใน 2NF  
- ต้องไม่มีAttribute ใดในตาราง นอกจาก Primary Key ที่สามารถไปกำหนด Attribute อื่น
(non-prime เป็นอิสระจากกันและมีความสัมพันธ์ primary key )

ตัวอย่างของ 3NF





จากตารางก่อนหน้ามีข้อมูลหลายตัวที่มีส่วนร่วมกับ DATE-OF-BIRTH จึงต้องทำการแก้ไข
โดยการใช้ PATIENT-NAME ในการชี้ไปที่ DATE-OF-BIRTH เพียงตัวเดียว
จะได้ ข้อมูล Relation ใหม่ ดังนี้
  • PATIENT : (PATIENT-NAME , DATE-OF-BIRTH)
  • PATIENT_DOCTOR : (PATIENT-NAME , DOCTOR_NAME , DATE-TIME , DURATION-MINUTES)
  • DOCTOR : (DOCTOR-NAME , CONTACT-NO)

ปัญหาของ 3NF

กรณีที่เปลี่ยนแปลงข้อมูลของ NON-KEY ที่ทำหน้าที่เชื่อม NON-KEY อื่น จะทำให้เราต้องเปลี่ยน ทุก Tuple ที่เกี่ยวข้องกับ NON-KEY นั้นๆด้วย


reference : https://www.safaribooksonline.com/library/view/database-systems-concepts/9788131760925/22_chapter010.html

Textbook
Database Systems: Concepts, Design and Applications, 2nd Edition
by Shio Kumar Singh
ISBN: 9788131760925

Presentation Group 4 Week 11

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

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