การพึ่งพาการออกแบบฐานข้อมูลในหลายรูปแบบ

การพึ่งพาแบบ Multivalued แบ่งรูปแบบปกติที่สี่

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

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

การพึ่งพาการใช้งานกับการพึ่งพาที่มีหลายค่า

หากต้องการทำความเข้าใจเกี่ยวกับการพึ่งพาที่มีหลายค่าคุณควรอ่านข้อมูลเพิ่มเติมเกี่ยวกับการพึ่งพาการทำงาน

ถ้าแอ็ตทริบิวต์ X กำหนดแอตทริบิวต์ Y เป็นเอกลักษณ์ Y จะขึ้นอยู่กับ X โดยฟังก์ชันจะเขียนเป็น X -> Y ตัวอย่างเช่นในตาราง Students ด้านล่าง Student_Name จะกำหนด Major:

นักเรียน
ชื่อนักเรียน สำคัญ
ราวี ประวัติศาสตร์ศิลปะ
เบ ธ เคมี


การพึ่งพาการทำงานนี้สามารถเขียนได้: Student_Name -> Major แต่ละ Student_Name กำหนดว่า Major และไม่มีเลย

หากคุณต้องการให้ฐานข้อมูลติดตามการกีฬานักเรียนเหล่านี้ด้วยเช่นกันคุณอาจคิดว่าวิธีที่ง่ายที่สุดในการทำเช่นนี้ก็คือการเพิ่มคอลัมน์อื่นที่ชื่อ Sport:

นักเรียน
ชื่อนักเรียน สำคัญ กีฬา
ราวี ประวัติศาสตร์ศิลปะ ฟุตบอล
ราวี ประวัติศาสตร์ศิลปะ วอลเลย์บอล
ราวี ประวัติศาสตร์ศิลปะ เทนนิส
เบ ธ เคมี เทนนิส
เบ ธ เคมี ฟุตบอล


ปัญหาคือทั้ง Ravi และ Beth เล่นกีฬาหลาย ๆ จำเป็นต้องเพิ่มแถวใหม่สำหรับการเล่นเพิ่มเติมทุกครั้ง

ตารางนี้ได้แนะนำการพึ่งพาซึ่งกันและกันเนื่องจากวิชาเอกและกีฬาเป็นอิสระจากกัน แต่ทั้งสองขึ้นอยู่กับนักเรียน

นี่เป็นตัวอย่างง่ายๆและสามารถระบุตัวได้ง่าย แต่การพึ่งพาแบบ multivalue อาจกลายเป็นปัญหาในฐานข้อมูลขนาดใหญ่และซับซ้อน

การพึ่งพาที่มีหลายค่าจะถูกเขียน X -> -> Y ในกรณีนี้:

Student_Name -> -> วิชาเอก
Student_Name -> -> กีฬา

ข้อมูลนี้อ่านว่า "Student_Name multidetermines Major" และ "Student_Name multidetermines Sport"

การพึ่งพาแบบ multivalued ต้องมีแอตทริบิวต์อย่างน้อยสามอย่างเนื่องจากแอตทริบิวต์ประกอบด้วยอย่างน้อยสองแอตทริบิวต์ที่ขึ้นอยู่กับหนึ่งในสาม

การพึ่งพาและการทำให้เป็นมาตรฐานแบบหลายค่า

ตารางที่มีการพึ่งพาที่มีหลายค่าจะละเมิดมาตรฐาน normalization ของฟอร์มปกติที่ 4 (4NK) เนื่องจากจะสร้างการซ้ำซ้อนที่ไม่จำเป็นและอาจส่งผลต่อข้อมูลที่ไม่สอดคล้องกัน หากต้องการนำข้อมูลนี้ไปถึง 4NF จำเป็นต้องแบ่งข้อมูลนี้ออกเป็นสองตาราง

ตารางต่อไปนี้มีการพึ่งพาการทำงานของ Student_Name -> Major และไม่มีการพึ่งพาที่มีหลายค่า:

นักศึกษาและวิชาเอก
ชื่อนักเรียน สำคัญ
ราวี ประวัติศาสตร์ศิลปะ
ราวี ประวัติศาสตร์ศิลปะ
ราวี ประวัติศาสตร์ศิลปะ
เบ ธ เคมี
เบ ธ เคมี

ในขณะที่ตารางนี้ยังมีการพึ่งพาการทำงานของ Student_Name -> กีฬา:

นักเรียนและกีฬา
ชื่อนักเรียน กีฬา
ราวี ฟุตบอล
ราวี วอลเลย์บอล
ราวี เทนนิส
เบ ธ เทนนิส
เบ ธ ฟุตบอล

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