![]() |
|
![]() |
|
![]() |
รูปแบบที่เป็นบรรทัดฐานขั้นที่ 4แม้รีเลชันใดจะมีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานขั้นที่ 3 หรือรูปแบบที่เป็นบรรทัดฐานของบอยส์และคอดด์แล้วก็ตาม รีเลชันนั้นก็อาจก็ยังมีปัญหาที่เกิดจากความสัมพันธ์ระหว่างแอททริบิวต์แบบหลายค่าปรากฏอยู่อีก ซึ่งปัญหาดังกล่าวนี้ก่อให้เกิดความซ้ำซ้อนของข้อมูลได้เช่นเดียวกับที่พบในรูปแบบที่เป็นบรรทัดฐานขั้นที่ผ่าน ๆ มา ดังนั้น รูปแบบที่เป็นบรรทัดฐานขั้นที่ 4 (Fourth Normal Form : 4NF) จึงเป็นขั้นตอนถัดมาในการแก้ไขปัญหาความซ้ำซ้อนของข้อมูลที่พบในรีเลชัน ซึ่งในขั้นตอนนี้จะให้ความสำคัญกับรีเลชันที่ประกอบด้วยแอททริบิวต์อย่างน้อยสามแอททริบิวต์ และมีความสัมพันธ์ระหว่างแอททริบิวต์แบบหลายค่า 1. คุณสมบัติของรูปแบบที่เป็นบรรทัดฐานขั้นที่ 4รีเลชันใด ๆ จะมีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานขั้นที่ 4 ก็ต่อเมื่อ 1. รีเลชันนั้นมีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานของบอยส์และคอดด์แล้ว 2. รีเลชันนั้นต้องเป็นรีเลชันที่ไม่มีความสัมพันธ์ระหว่างแอททริบิวต์แบบหลายค่า 2. ขั้นตอนการจัดทำรีเลชันให้เป็นรูปแบบที่เป็นบรรทัดฐานขั้นที่ 4เพื่อแสดงให้เห็นถึงการจัดทำรีเลชันให้เป็นรูปแบบที่เป็นบรรทัดฐานขั้นที่ 4 ในที่นี้ขอนำตัวอย่างรีเลชันมาประกอบดังนี้ รีเลชันการสอน-การปรึกษาประกอบด้วย 3 แอททริบิวต์ คือ แอททริบิวต์รหัสอาจารย์ รหัสชุดวิชา ที่สอน และรหัสนักศึกษาในการปรึกษา โดยมีรายละเอียดดังนี้
ภาพที่ 4.19รีเลชันการสอน-การปรึกษา
จากรีเลชันการสอน-การปรึกษาจะพบว่า เกิดปัญหาความซ้ำซ้อนของข้อมูลในรีเลชันดังนี้คือ 1. การปรับปรุงข้อมูลใด ๆ จะต้องทำซ้ำหลายแห่ง ทำให้สิ้นเปลืองเวลา รวมทั้งอาจทำการแก้ไขข้อมูลได้ไม่ครบถ้วนและถูกต้องทุกรายการก็ได้ ตัวอย่างเช่น การแก้ไขรหัสอาจารย์จาก Q1035 เป็น Q1073 2. การเพิ่มเติมข้อมูลในรีเลชันไม่สามารถทำได้ ตัวอย่างเช่น หากรหัสอาจารย์ Q1061 ต้องการเพิ่มข้อมูลรหัสชุดวิชาที่สอน คือ 172596 จะไม่สามารถเพิ่มเติมข้อมูลเข้ามาในรีเลชันนี้ได้ เนื่องจากยังไม่ปรากฏข้อมูลเพิ่มในแอททริบิวต์รหัสนักศึกษาในการปรึกษา ค่าของรหัสนักศึกษาในการปรึกษาจึงเป็นค่าว่าง ทำให้ไม่อาจเพิ่มเติมข้อมูลลงในรีเลชันได้ เพราะแอททริบิวต์ที่เป็นส่วนของคีย์หลักจะมีค่าว่างไม่ได้ 3. การลบข้อมูลออกจากรีเลชันอาจทำให้ข้อมูลบางส่วนสูญหายไปจากฐานข้อมูล ตัวอย่างเช่น หากรหัสนักศึกษาในการปรึกษา คือ 41012147 ลาออก ข้อมูลที่เกี่ยวข้องจะถูกลบไปทั้งทูเพิล ดังนั้น ข้อมูลรหัสชุดวิชา 729103 และรหัสอาจารย์ Q1061 ซึ่งมีเพียงแห่งเดียวในฐานข้อมูลก็จะสูญหายไปด้วย เพื่อขจัดปัญหาความซ้ำซ้อนของข้อมูลที่เกิดขึ้นในรีเลชันจึงต้องจัดทำรีเลชันให้เป็นรูปแบบที่เป็นบรรทัดฐาน โดยลำดับแรก คือ การตรวจสอบรีเลชันการสอน-การปรึกษาว่า มีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานขั้นใดก่อนที่จะทำให้เป็นรูปแบบที่เป็นบรรทัดฐานในขั้นต่อไป จากการตรวจสอบพบว่า รีเลชันการสอน-การปรึกษามีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานของบอยส์และคอดด์แล้ว เนื่องจาก
ลำดับถัดมา คือ การตรวจสอบรีเลชันการสอน-การปรึกษาว่าเป็นรีเลชันที่มีความสัมพันธ์ระหว่าง แอททริบิวต์แบบหลายค่าหรือไม่ จากการตรวจสอบพบว่า รีเลชันการสอน-การปรึกษามีความสัมพันธ์ระหว่างแอททริบิวต์แบบหลายค่า ดังนี้ หมายความว่า หากระบุค่าของรหัสอาจารย์หนึ่งค่าก็จะสามารถทราบรหัสชุดวิชาที่สอนได้หลายค่า เช่น ถ้าระบุค่าของรหัสอาจารย์ คือ Q1035 จะทำให้ทราบค่าของรหัสชุดวิชาที่สอน คือ 729101, 729104 และ 999211 และในขณะเดียวกัน หากระบุค่าของรหัสอาจารย์หนึ่งค่าก็จะสามารถทราบรหัสนักศึกษาใน การปรึกษาได้หลายค่า เช่น ถ้าระบุค่าของรหัสอาจารย์ คือ Q1059 จะทำให้ทราบค่าของรหัสนักศึกษาใน การปรึกษา คือ 41010703 และ 41013327 ดังนั้นจึงกล่าวได้ว่า รีเลชันการสอน-การปรึกษาไม่มีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานขั้นที่ 4 ภาพที่ 4.20การจำแนกรีเลชันการสอน-การปรึกษาการที่รีเลชันการสอน-การปรึกษาเกิดความสัมพันธ์ระหว่างแอททริบิวต์แบบหลายค่า เนื่องจากมี การนำแอททริบิวต์สามแอททริบิวต์ คือ รหัสอาจารย์ รหัสชุดวิชาที่สอน และ รหัสนักศึกษาในการปรึกษา มาไว้ในรีเลชันเดียวกัน โดยแอททริบิวต์รหัสอาจารย์มีความสัมพันธ์กับแอททริบิวต์รหัสชุดวิชาที่สอนและรหัส นักศึกษาในการปรึกษาเท่านั้น หากทว่าแอททริบิวต์รหัสชุดวิชาที่สอนและรหัสนักศึกษาในการปรึกษาไม่มีความสัมพันธ์ต่อกันเลย เมื่อทั้งสามแอททริบิวต์มาปรากฏอยู่ในรีเลชันเดียวกัน จึงทำให้เกิดค่าของข้อมูลที่ ซ้ำซ้อนส่งผลให้เกิดปัญหาในการปรับปรุง การเพิ่ม หรือการลบ ข้อมูลได้ ดังนั้น เพื่อขจัดปัญหาความสัมพันธ์ระหว่างแอททริบิวต์แบบหลายค่าที่เกิดขึ้น จึงต้องทำการจำแนกรีเลชันการสอน-การปรึกษาออกเป็น 2 รีเลชันย่อย คือ รีเลชันรหัสอาจารย์-รหัสชุดวิชา และรีเลชันรหัสอาจารย์-รหัสนักศึกษา
ทั้งนี้จากที่กล่าวมาข้างต้นอาจสรุปได้ว่า ความสัมพันธ์ระหว่างแอททริบิวต์แบบฟังก์ชันเป็นลักษณะเฉพาะอย่างหนึ่งของความสัมพันธ์ระหว่างแอททริบิวต์แบบหลายค่า หากทว่าในความสัมพันธ์ระหว่าง แอททริบิวต์แบบฟังก์ชัน คีย์หลักหรือ Determinant หนึ่งค่าสามารถระบุค่าของ Dependent หรือแอททริบิวต์อื่นๆ ได้เพียงค่าเดียวเท่านั้น ขณะที่ความสัมพันธ์ระหว่างแอททริบิวต์แบบหลายค่าคีย์หลักหรือ Determinant หนึ่งค่าสามารถระบุค่าของ Dependent หรือแอททริบิวต์อื่น ๆ ได้หลายค่า |
|||||||||||||||||||||||||||
|
|