![]() |
|
![]() |
|
![]() |
รูปแบบที่เป็นบรรทัดฐานขั้นที่ 5ในกระบวนการทำให้เป็นรูปแบบที่เป็นบรรทัดฐานตั้งแต่ขั้นที่ 1 มาจนถึงขั้นที่ 4 จะพบว่า เพื่อแก้ไขปัญหาความซ้ำซ้อนของข้อมูลที่ปรากฏในรีเลชัน มักจะทำการจำแนกรีเลชันออกเป็นรีเลชันย่อย (projection) ซึ่งจะทำให้ได้รีเลชันใหม่อย่างน้อย 2 รีเลชันย่อย และในทุกครั้งของการจำแนกรีเลชันออกเป็นรีเลชันย่อย สิ่งสำคัญที่ควรคำนึงถึงเสมอ คือ เมื่อทำการจำแนกรีเลชันออกเป็นรีเลชันย่อยแล้ว หากนำรีเลชันย่อยที่ถูกจำแนกมารวมกันจะต้องได้รีเลชันกลับไปเหมือนเช่นเดิมเสมอ นั่นคือ จะต้องไม่มีข้อมูลทูเพิลใดเกินมาจาก รีเลชันเดิม (no spurious tuple) หรือไม่มีข้อมูลทูเพิลใดสูญหายไปจากรีเลชันเดิม โดยทั่วไป กระบวนการทำให้เป็นรูปแบบที่เป็นบรรทัดฐานมักทำจนกระทั่งรีเลชันมีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานขั้นที่ 3 ซึ่งหากยังพบปัญหาความซ้ำซ้อนของข้อมูลหลงเหลืออยู่อีกจึงดำเนินการทำให้รีเลชันมีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานของบอยส์และคอดด์ หรือรูปแบบที่เป็นบรรทัดฐานขั้นที่ 4 ซึ่งมักพบได้น้อยมาก จากนั้นจึงทำการตรวจสอบคุณสมบัติของรีเลชันอีกครั้งด้วยการจัดทำให้เป็นรูปแบบที่เป็นบรรทัดฐานขั้นที่ 5 เพื่อให้เกิดความมั่นใจว่า รีเลชันมีปัญหาความซ้ำซ้อนของข้อมูลหลงเหลืออยู่น้อยมากหรือแทบจะไม่ปรากฏอยู่เลย ดังนั้น รูปแบบที่เป็นบรรทัดฐานขั้นที่ 5 (Fifth Normal Form : 5NF) จึงเป็นขั้นตอนสุดท้ายในกระบวนการทำให้เป็นรูปแบบที่เป็นบรรทัดฐาน ซึ่งเป็นการแก้ไขปัญหาความซ้ำซ้อนของข้อมูลที่ ปรากฏในรีเลชัน หากรีเลชันใดมีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานขั้นที่ 5 แล้วก็แทบจะรับรองได้ว่า ข้อมูลในรีเลชันนั้นมีความถูกต้องและสมบูรณ์ จนแทบจะไม่มีปัญหาความซ้ำซ้อนของข้อมูลหลงเหลืออยู่ ทั้งนี้ นิยามคุณสมบัติของรูปแบบที่เป็นบรรทัดฐานขั้นที่ 5 จะมีขอบเขตครอบคลุมคุณสมบัติของรูปแบบที่เป็นบรรทัดฐานที่ต่ำกว่าทั้งหมด โดยไม่ระบุว่า รีเลชันนั้นจะต้องมีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานขั้นที่ 4 หรือรูปแบบที่เป็นบรรทัดฐานขั้นที่ต่ำกว่า 1. คุณสมบัติของรูปแบบที่เป็นบรรทัดฐานขั้นที่ 5รีเลชันใด ๆ จะมีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานขั้นที่ 5 หรือ Projection-Join Normal Form (PJ/NF) ก็ต่อเมื่อ 1. รีเลชันนั้น ๆ มีความสัมพันธ์ระหว่างแอททริบิวต์แบบ Join และรีเลชันย่อย ๆ ที่จำแนกออกมาต้องมีคีย์คู่แข่งของรีเลชันเดิมอยู่ด้วยเสมอ หรือ 2. รีเลชันนั้น ๆ ไม่มีความสัมพันธ์ระหว่างแอททริบิวต์แบบ Join 2. ขั้นตอนการจัดทำรีเลชันให้เป็นรูปแบบที่เป็นบรรทัดฐานขั้นที่ 5เพื่อแสดงให้เห็นถึงการจัดทำรีเลชันให้เป็นรูปแบบที่เป็นบรรทัดฐานขั้นที่ 5 ในที่นี้ขอนำ ตัวอย่างรีเลชันมาประกอบดังนี้ - รีเลชันนักศึกษาประกอบด้วย แอททริบิวต์ชื่อนักศึกษา ชื่ออาจารย์ที่ปรึกษา และวิชาเอก โดยมีแอททริบิวต์ชื่อนักศึกษา ชื่ออาจารย์ที่ปรึกษา และวิชาเอก ประกอบกันเป็นคีย์หลัก
ภาพที่ 4.21รีเลชันนักศึกษาจากภาพจะพบว่า เกิดปัญหาความซ้ำซ้อนของข้อมูลในรีเลชันดังนี้คือ การปรับปรุงข้อมูลใด ๆ จะต้องทำซ้ำหลายแห่ง ทำให้สิ้นเปลืองเวลา รวมทั้งอาจทำการแก้ไขข้อมูลได้ไม่ครบถ้วนและถูกต้องทุกรายการก็ได้ ตัวอย่างเช่น การแก้ไขข้อมูลชื่ออาจารย์ที่ปรึกษาจาก สัมพันธ์ เย็นสำราญ เป็น จันทนา พรหมศิริ นอกจากนี้ การลบข้อมูลออกจากรีเลชันอาจทำให้ข้อมูลบางส่วนสูญหายไปจากฐานข้อมูล ตัวอย่างเช่น หากนักศึกษาชื่อ นภดล ทับทิมทอง ลาออก ข้อมูลที่เกี่ยวข้องจะถูกลบไปทั้งทูเพิล ดังนั้น ข้อมูลชื่ออาจารย์ ที่ปรึกษา ศิริชัย ศรีพรหม ซึ่งมีเพียงแห่งเดียวในฐานข้อมูลก็จะสูญหายไปด้วย เพื่อขจัดปัญหาความซ้ำซ้อนของข้อมูลที่เกิดขึ้นในรีเลชันจึงต้องจัดทำรีเลชันให้เป็นรูปแบบที่เป็นบรรทัดฐาน โดยลำดับแรก คือ การตรวจสอบรีเลชันนักศึกษาว่า มีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานใดก่อนที่จะทำให้เป็นรูปแบบที่เป็นบรรทัดฐานในขั้นต่อไป จากการตรวจสอบพบว่า รีเลชันนักศึกษามีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานขั้นที่ 4 แล้ว เนื่องจาก 1. รีเลชันนักศึกษามีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานขั้นที่ 1 แล้ว เนื่องจากทุกแอททริบิวต์ในแต่ละทูเพิลมีค่าของข้อมูลเพียงค่าเดียว 2. รีเลชันนักศึกษามีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานขั้นที่ 2 แล้ว เนื่องจากทุกแอททริบิวต์ในรีเลชันนักศึกษาเป็นคีย์ผสมที่มีคุณสมบัติเป็นคีย์หลัก ดังนั้น จึงไม่มีความสัมพันธ์ระหว่าง แอททริบิวต์แบบบางส่วนเกิดขึ้น 3. รีเลชันนักศึกษามีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานขั้นที่ 3 แล้ว เนื่องจากในรีเลชัน นักศึกษาไม่มีแอททริบิวต์อื่นที่ไม่ใช่คีย์หลัก ดังนั้น จึงไม่มีความสัมพันธ์ระหว่างแอททริบิวต์แบบ Transitive เกิดขึ้น 4. รีเลชันนักศึกษามีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานของบอยส์และคอดด์แล้ว เนื่องจากทุกแอททริบิวต์ในรีเลชันนักศึกษาเป็นคีย์ผสมที่มีคุณสมบัติเป็นคีย์หลัก ดังนั้น จึงไม่มีแอททริบิวต์ใดในรีเลชันที่สามารถระบุค่าของแอททริบิวต์ที่เป็นคีย์หลัก หรือส่วนใดส่วนหนึ่งของแอททริบิวต์ที่ประกอบกันเป็นคีย์หลักได้ 5.รีเลชันนักศึกษามีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานขั้นที่ 4 แล้ว เนื่องจากรีเลชัน นักศึกษาเป็นรีเลชันที่มีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานของบอยส์และคอดด์แล้ว และไม่มีความสัมพันธ์ระหว่างแอททริบิวต์แบบหลายค่า ลำดับถัดมา คือ การตรวจสอบว่า รีเลชันนักศึกษามีความสัมพันธ์ระหว่างแอททริบิวต์แบบ Join โดยรีเลชันย่อย ๆ ที่จำแนกออกมามีคีย์คู่แข่งของรีเลชันเดิมอยู่ด้วยเสมอ หรือไม่ จากการตรวจสอบพบว่า รีเลชันนักศึกษาสามารถจำแนกได้ 3 รีเลชันย่อย คือ รีเลชันที่ 1 รีเลชันที่ 2 และรีเลชันที่ 3 - รีเลชันที่ 1 ประกอบด้วยแอททริบิวต์ชื่อนักศึกษา และชื่ออาจารย์ที่ปรึกษา โดยมีแอททริบิวต์ชื่อนักศึกษา และชื่ออาจารย์ที่ปรึกษา ประกอบกันเป็นคีย์หลัก - รีเลชันที่ 2 ประกอบด้วยแอททริบิวต์ชื่ออาจารย์ที่ปรึกษา และวิชาเอก โดยมีแอททริบิวต์ชื่ออาจารย์ที่ปรึกษา และวิชาเอก ประกอบกันเป็นคีย์หลัก - รีเลชันที่ 3 ประกอบด้วยแอททริบิวต์ชื่อนักศึกษา และวิชาเอก โดยมีแอททริบิวต์ชื่อนักศึกษา และวิชาเอก ประกอบกันเป็นคีย์หลัก เมื่อนำรีเลชันย่อยทั้งสามมาเชื่อมโยงกันจะพบว่า มีข้อมูลเหมือนในรีเลชันเดิม จึงกล่าวได้ว่า รีเลชันย่อยทั้งสามมีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานขั้นที่ 5 แล้ว ภาพที่ 4.22 ความสัมพันธ์ระหว่างแอททริบิวต์แบบ Join ของรีเลชันนักศึกษาเพื่อแสดงให้เห็นถึงการจัดทำรีเลชันให้เป็นรูปแบบที่เป็นบรรทัดฐานขั้นที่ 5 ที่ชัดเจนยิ่งขึ้น ในที่นี้ขอนำตัวอย่างรีเลชันมาประกอบอีกลักษณะหนึ่งดังนี้ - รีเลชันการสอนประกอบด้วย แอททริบิวต์รหัสชุดวิชา หมู่เรียน และชื่ออาจารย์ผู้สอน โดยมี แอททริบิวต์รหัสชุดวิชา หมู่เรียน และชื่ออาจารย์ผู้สอน ประกอบกันเป็นคีย์หลัก
ภาพที่ 4.23รีเลชันการสอนจากภาพจะพบว่า เกิดปัญหาความซ้ำซ้อนของข้อมูลในรีเลชันดังนี้คือ การลบข้อมูลออกจากรีเลชันอาจทำให้ข้อมูลบางส่วนสูญหายไปจากฐานข้อมูล ตัวอย่างเช่น หากปิดการสอนรหัสชุดวิชา 729101 หมู่ 700 ข้อมูลที่เกี่ยวข้องจะถูกลบไปทั้งทูเพิล ดังนั้น ข้อมูลชื่ออาจารย์ผู้สอน ศิริชัย ศรีพรหม ซึ่งมีเพียงแห่งเดียวในฐานข้อมูลก็จะสูญหายไปด้วย เพื่อขจัดปัญหาความซ้ำซ้อนของข้อมูลที่เกิดขึ้นในรีเลชันจึงต้องจัดทำรีเลชันให้เป็นรูปแบบที่เป็นบรรทัดฐาน โดยลำดับแรก คือ การตรวจสอบรีเลชันการสอนว่า มีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานใดก่อนที่จะทำให้เป็นรูปแบบที่เป็นบรรทัดฐานในขั้นต่อไป จากการตรวจสอบพบว่า รีเลชันการสอนมีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานขั้นที่ 4 แล้ว เนื่องจาก 1. รีเลชันการสอนมีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานขั้นที่ 1 แล้ว เนื่องจากทุกแอททริบิวต์ในแต่ละทูเพิลมีค่าของข้อมูลเพียงค่าเดียว 2. รีเลชันการสอนมีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานขั้นที่ 2 แล้ว เนื่องจากทุกแอททริบิวต์ในรีเลชันการสอนเป็นคีย์ผสมที่มีคุณสมบัติเป็นคีย์หลัก ดังนั้น จึงไม่มีความสัมพันธ์ระหว่างแอททริบิวต์แบบบางส่วนเกิดขึ้น 3. รีเลชันการสอนมีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานขั้นที่ 3 แล้ว เนื่องจากในรีเลชัน การสอนไม่มีแอททริบิวต์อื่นที่ไม่ใช่คีย์หลัก ดังนั้น จึงไม่มีความสัมพันธ์ระหว่างแอททริบิวต์แบบ Transitive เกิดขึ้น 4. รีเลชันการสอนมีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานของบอยส์และคอดด์แล้ว เนื่องจากทุกแอททริบิวต์ในรีเลชันการสอนเป็นคีย์ผสมที่มีคุณสมบัติเป็นคีย์หลัก ดังนั้น จึงไม่มีแอททริบิวต์ใดในรีเลชันที่สามารถระบุค่าของแอททริบิวต์ที่เป็นคีย์หลัก หรือส่วนใดส่วนหนึ่งของแอททริบิวต์ที่ประกอบกันเป็น คีย์หลักได้ 5. รีเลชันการสอนมีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานขั้นที่ 4 แล้ว เนื่องจากรีเลชันการสอนเป็นรีเลชันที่มีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานของบอยส์และคอดด์แล้ว และไม่มีความสัมพันธ์ระหว่างแอททริบิวต์แบบหลายค่า ลำดับถัดมา คือ การตรวจสอบว่า รีเลชันการสอนมีความสัมพันธ์ระหว่างแอททริบิวต์แบบ Join โดยรีเลชันย่อย ๆ ที่จำแนกออกมามีคีย์คู่แข่งของรีเลชันเดิมอยู่ด้วยเสมอ หรือไม่ จากการตรวจสอบพบว่า รีเลชันการสอนสามารถจำแนกได้ 3 รีเลชันย่อย คือ รีเลชันที่ 1 รีเลชันที่ 2 และรีเลชันที่ 3 - รีเลชันที่ 1 ประกอบด้วยแอททริบิวต์รหัสชุดวิชา และหมู่เรียน โดยมีแอททริบิวต์รหัสชุดวิชา และหมู่เรียน ประกอบกันเป็นคีย์หลัก - รีเลชันที่ 2 ประกอบด้วยแอททริบิวต์หมู่เรียน และชื่ออาจารย์ผู้สอน โดยมีแอททริบิวต์หมู่เรียน และชื่ออาจารย์ผู้สอน ประกอบกันเป็นคีย์หลัก - รีเลชันที่ 3 ประกอบด้วยแอททริบิวต์รหัสชุดวิชา และชื่ออาจารย์ผู้สอน โดยมีแอททริบิวต์รหัสชุดวิชา และชื่ออาจารย์ผู้สอน ประกอบกันเป็นคีย์หลัก ภาพที่ 4.24 ความสัมพันธ์ระหว่างแอททริบิวต์แบบ Join ของรีเลชันการสอนเมื่อนำรีเลชันย่อยทั้งสามมาเชื่อมโยงกันจะพบว่า มีทูเพิลที่เกินมาจากรีเลชันเดิมหนึ่งทูเพิล เรียกว่า Spurious Tuple ดังนั้นอาจกล่าวได้ว่า ในการทำรีเลชันให้มีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานขั้นที่ 5 เมื่อทำการจำแนกรีเลชันออกมาและเชื่อมโยงรีเลชันย่อยทั้งหมดเข้าด้วยกันแล้ว หากพบว่า มีข้อมูลที่แตกต่างไปจากรีเลชันเดิมก็ไม่ควรจำแนกรีเลชันนั้นออกมา โดยให้ถือว่า รีเลชันเดิมนั้นมีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานขั้นที่ 5 แล้ว ทั้งนี้โดยทั่วไปในทางปฏิบัติพบว่า หากรีเลชันใดมีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานขั้นที่ 3 หรือรูปแบบที่เป็นบรรทัดฐานของบอยส์และคอดด์แล้ว เมื่อทำการตรวจสอบรีเลชันจะพบว่า รีเลชันนั้นมักมีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐานขั้นที่ 5 ด้วย หากทว่ายกเว้นในกรณีที่ รีเลชันนั้นมีปัญหาที่เกิดจากความสัมพันธ์ระหว่างแอททริบิวต์แบบหลายค่าปรากฏอยู่ จะต้องดำเนินการให้รีเลชันนั้นมีคุณสมบัติอยู่ใน รูปแบบที่เป็นบรรทัดฐานขั้นที่ 4 เสียก่อน ดังนั้น การทำให้รีเลชันมีคุณสมบัติอยู่ในรูปแบบที่เป็นบรรทัดฐาน จะไปสิ้นสุดในรูปแบบที่เป็นบรรทัดฐานขั้นที่ 5 เสมอ ดังนั้น อาจสรุปได้ว่า ความสัมพันธ์ระหว่างแอททริบิวต์แบบ Join มีคุณสมบัติครอบคลุมกว่าความสัมพันธ์ระหว่างแอททริบิวต์แบบฟังก์ชันและความสัมพันธ์ระหว่างแอททริบิวต์แบบหลายค่า |
|||||||||||||||||||||||||||||||||||||||
|
|