Back to Home

DataBase System

Lesson1235679101112131415

Lesson 4 : Normal Form



Lesson Plan
Section No.
Section 1
Section 2
Test
PDF file
PPT File


<<Prev pageCourse MapNext page>>

Print content of this page
Save content of this page

 

รูปแบบที่เป็นบรรทัดฐานขั้นที่ 4

แม้รีเลชันใดจะมีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานขั้นที่ 3 หรือรูปแบบที่เป็นบรรทัดฐานของบอยส์และคอดด์แล้วก็ตาม รีเลชันนั้นก็อาจก็ยังมีปัญหาที่เกิดจากความสัมพันธ์ระหว่างแอททริบิวต์แบบหลายค่าปรากฏอยู่อีก ซึ่งปัญหาดังกล่าวนี้ก่อให้เกิดความซ้ำซ้อนของข้อมูลได้เช่นเดียวกับที่พบในรูปแบบที่เป็นบรรทัดฐานขั้นที่ผ่าน ๆ มา

ดังนั้น รูปแบบที่เป็นบรรทัดฐานขั้นที่ 4 (Fourth Normal Form : 4NF) จึงเป็นขั้นตอนถัดมาในการแก้ไขปัญหาความซ้ำซ้อนของข้อมูลที่พบในรีเลชัน ซึ่งในขั้นตอนนี้จะให้ความสำคัญกับรีเลชันที่ประกอบด้วยแอททริบิวต์อย่างน้อยสามแอททริบิวต์ และมีความสัมพันธ์ระหว่างแอททริบิวต์แบบหลายค่า

1. คุณสมบัติของรูปแบบที่เป็นบรรทัดฐานขั้นที่ 4

รีเลชันใด ๆ จะมีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานขั้นที่ 4 ก็ต่อเมื่อ

1. รีเลชันนั้นมีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานของบอยส์และคอดด์แล้ว

2. รีเลชันนั้นต้องเป็นรีเลชันที่ไม่มีความสัมพันธ์ระหว่างแอททริบิวต์แบบหลายค่า

2. ขั้นตอนการจัดทำรีเลชันให้เป็นรูปแบบที่เป็นบรรทัดฐานขั้นที่ 4

เพื่อแสดงให้เห็นถึงการจัดทำรีเลชันให้เป็นรูปแบบที่เป็นบรรทัดฐานขั้นที่ 4 ในที่นี้ขอนำตัวอย่างรีเลชันมาประกอบดังนี้

รีเลชันการสอน-การปรึกษาประกอบด้วย 3 แอททริบิวต์ คือ แอททริบิวต์รหัสอาจารย์ รหัสชุดวิชา ที่สอน และรหัสนักศึกษาในการปรึกษา โดยมีรายละเอียดดังนี้

รหัสอาจารย์

รหัสชุดวิชาที่สอน

รหัสนักศึกษาในการปรึกษา

Q1011

999211

41010943

Q1011

999211

41013780

Q1035

729101

41012451

Q1035

729104

41012451

Q1035

999211

41012451

Q1059

729111

41010703

Q1059

729111

41013327

Q1061

729103

41012147

ภาพที่ 4.19 รีเลชันการสอน-การปรึกษา

    1. รีเลชันการสอน-การปรึกษามีแอททริบิวต์รหัสอาจารย์ รหัสชุดวิชาที่สอน และรหัสนักศึกษาในการปรึกษาประกอบกันเป็นคีย์หลัก
    2. อาจารย์แต่ละคนจะสอนอย่างน้อย 1 ชุดวิชา โดยบางคนอาจสอนชุดวิชาเดียวกันก็ได้
    3. อาจารย์บางคนอาจมีนักศึกษาในการปรึกษาได้มากกว่า 1 คน
    4. รหัสนักศึกษาในการปรึกษากับรหัสชุดวิชาที่สอนไม่มีความสัมพันธ์กันเลย

จากรีเลชันการสอน-การปรึกษาจะพบว่า เกิดปัญหาความซ้ำซ้อนของข้อมูลในรีเลชันดังนี้คือ

1. การปรับปรุงข้อมูลใด ๆ จะต้องทำซ้ำหลายแห่ง ทำให้สิ้นเปลืองเวลา รวมทั้งอาจทำการแก้ไขข้อมูลได้ไม่ครบถ้วนและถูกต้องทุกรายการก็ได้ ตัวอย่างเช่น การแก้ไขรหัสอาจารย์จาก Q1035 เป็น Q1073

2. การเพิ่มเติมข้อมูลในรีเลชันไม่สามารถทำได้ ตัวอย่างเช่น หากรหัสอาจารย์ Q1061 ต้องการเพิ่มข้อมูลรหัสชุดวิชาที่สอน คือ 172596 จะไม่สามารถเพิ่มเติมข้อมูลเข้ามาในรีเลชันนี้ได้ เนื่องจากยังไม่ปรากฏข้อมูลเพิ่มในแอททริบิวต์รหัสนักศึกษาในการปรึกษา ค่าของรหัสนักศึกษาในการปรึกษาจึงเป็นค่าว่าง ทำให้ไม่อาจเพิ่มเติมข้อมูลลงในรีเลชันได้ เพราะแอททริบิวต์ที่เป็นส่วนของคีย์หลักจะมีค่าว่างไม่ได้

3. การลบข้อมูลออกจากรีเลชันอาจทำให้ข้อมูลบางส่วนสูญหายไปจากฐานข้อมูล ตัวอย่างเช่น หากรหัสนักศึกษาในการปรึกษา คือ 41012147 ลาออก ข้อมูลที่เกี่ยวข้องจะถูกลบไปทั้งทูเพิล ดังนั้น ข้อมูลรหัสชุดวิชา 729103 และรหัสอาจารย์ Q1061 ซึ่งมีเพียงแห่งเดียวในฐานข้อมูลก็จะสูญหายไปด้วย

เพื่อขจัดปัญหาความซ้ำซ้อนของข้อมูลที่เกิดขึ้นในรีเลชันจึงต้องจัดทำรีเลชันให้เป็นรูปแบบที่เป็นบรรทัดฐาน โดยลำดับแรก คือ การตรวจสอบรีเลชันการสอน-การปรึกษาว่า มีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานขั้นใดก่อนที่จะทำให้เป็นรูปแบบที่เป็นบรรทัดฐานในขั้นต่อไป

จากการตรวจสอบพบว่า รีเลชันการสอน-การปรึกษามีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานของบอยส์และคอดด์แล้ว เนื่องจาก

    1. รีเลชันการสอน-การปรึกษามีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานขั้นที่ 1 แล้ว เนื่องจากทุกแอททริบิวต์ในแต่ละทูเพิลมีค่าของข้อมูลเพียงค่าเดียว
    2. รีเลชันการสอน-การปรึกษามีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานขั้นที่ 2 แล้ว เนื่องจากทุกแอททริบิวต์ในรีเลชันการสอน-การปรึกษาเป็นคีย์ผสมที่มีคุณสมบัติเป็นคีย์หลัก ดังนั้น จึงไม่มีความสัมพันธ์ระหว่างแอททริบิวต์แบบบางส่วนเกิดขึ้น
    3. รีเลชันการสอน-การปรึกษามีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานขั้นที่ 3 แล้ว เนื่องจากในรีเลชันการสอน-การปรึกษาไม่มีแอททริบิวต์อื่นที่ไม่ใช่คีย์หลัก ดังนั้น จึงไม่มีความสัมพันธ์ระหว่าง แอททริบิวต์แบบ Transitive เกิดขึ้น
    4. รีเลชันการสอน-การปรึกษามีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานของบอยส์และคอดด์แล้ว เนื่องจากทุกแอททริบิวต์ในรีเลชันการสอน-การปรึกษาเป็นคีย์ผสมที่มีคุณสมบัติเป็นคีย์หลัก ดังนั้น จึงไม่มี แอททริบิวต์ใดในรีเลชันที่สามารถระบุค่าของแอททริบิวต์ที่เป็นคีย์หลัก หรือส่วนใดส่วนหนึ่งของแอททริบิวต์ที่ประกอบกันเป็นคีย์หลักได้

ลำดับถัดมา คือ การตรวจสอบรีเลชันการสอน-การปรึกษาว่าเป็นรีเลชันที่มีความสัมพันธ์ระหว่าง แอททริบิวต์แบบหลายค่าหรือไม่

จากการตรวจสอบพบว่า รีเลชันการสอน-การปรึกษามีความสัมพันธ์ระหว่างแอททริบิวต์แบบหลายค่า ดังนี้

หมายความว่า หากระบุค่าของรหัสอาจารย์หนึ่งค่าก็จะสามารถทราบรหัสชุดวิชาที่สอนได้หลายค่า เช่น ถ้าระบุค่าของรหัสอาจารย์ คือ Q1035 จะทำให้ทราบค่าของรหัสชุดวิชาที่สอน คือ 729101, 729104 และ 999211 และในขณะเดียวกัน หากระบุค่าของรหัสอาจารย์หนึ่งค่าก็จะสามารถทราบรหัสนักศึกษาใน การปรึกษาได้หลายค่า เช่น ถ้าระบุค่าของรหัสอาจารย์ คือ Q1059 จะทำให้ทราบค่าของรหัสนักศึกษาใน การปรึกษา คือ 41010703 และ 41013327

ดังนั้นจึงกล่าวได้ว่า รีเลชันการสอน-การปรึกษาไม่มีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานขั้นที่ 4

ภาพที่ 4.20 การจำแนกรีเลชันการสอน-การปรึกษา

การที่รีเลชันการสอน-การปรึกษาเกิดความสัมพันธ์ระหว่างแอททริบิวต์แบบหลายค่า เนื่องจากมี การนำแอททริบิวต์สามแอททริบิวต์ คือ รหัสอาจารย์ รหัสชุดวิชาที่สอน และ รหัสนักศึกษาในการปรึกษา มาไว้ในรีเลชันเดียวกัน โดยแอททริบิวต์รหัสอาจารย์มีความสัมพันธ์กับแอททริบิวต์รหัสชุดวิชาที่สอนและรหัส นักศึกษาในการปรึกษาเท่านั้น หากทว่าแอททริบิวต์รหัสชุดวิชาที่สอนและรหัสนักศึกษาในการปรึกษาไม่มีความสัมพันธ์ต่อกันเลย เมื่อทั้งสามแอททริบิวต์มาปรากฏอยู่ในรีเลชันเดียวกัน จึงทำให้เกิดค่าของข้อมูลที่ ซ้ำซ้อนส่งผลให้เกิดปัญหาในการปรับปรุง การเพิ่ม หรือการลบ ข้อมูลได้

ดังนั้น เพื่อขจัดปัญหาความสัมพันธ์ระหว่างแอททริบิวต์แบบหลายค่าที่เกิดขึ้น จึงต้องทำการจำแนกรีเลชันการสอน-การปรึกษาออกเป็น 2 รีเลชันย่อย คือ รีเลชันรหัสอาจารย์-รหัสชุดวิชา และรีเลชันรหัสอาจารย์-รหัสนักศึกษา

    • รีเลชันรหัสอาจารย์-รหัสชุดวิชา ประกอบด้วย แอททริบิวต์รหัสอาจารย์ และรหัสชุดวิชาที่สอน โดยมีแอททริบิวต์รหัสอาจารย์ เป็นคีย์หลัก
    • รีเลชันรหัสอาจารย์-รหัสนักศึกษา ประกอบด้วย แอททริบิวต์รหัสอาจารย์ และรหัสนักศึกษาในการปรึกษา โดยมีแอททริบิวต์รหัสอาจารย์ เป็นคีย์หลัก

ทั้งนี้จากที่กล่าวมาข้างต้นอาจสรุปได้ว่า ความสัมพันธ์ระหว่างแอททริบิวต์แบบฟังก์ชันเป็นลักษณะเฉพาะอย่างหนึ่งของความสัมพันธ์ระหว่างแอททริบิวต์แบบหลายค่า หากทว่าในความสัมพันธ์ระหว่าง แอททริบิวต์แบบฟังก์ชัน คีย์หลักหรือ Determinant หนึ่งค่าสามารถระบุค่าของ Dependent หรือแอททริบิวต์อื่นๆ ได้เพียงค่าเดียวเท่านั้น ขณะที่ความสัมพันธ์ระหว่างแอททริบิวต์แบบหลายค่าคีย์หลักหรือ Determinant หนึ่งค่าสามารถระบุค่าของ Dependent หรือแอททริบิวต์อื่น ๆ ได้หลายค่า

 

Go to top

 

Last Updated: 12/13/2001 11:22:25 AM
© โครงการเครือข่ายสารสนเทศเพื่อพัฒนาการศึกษา ทบวงมหาวิทยาลัย