Skip to main content

การพึ่งพิงในฐานข้อมูลหลายค่า

Anonim

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

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

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

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

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

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

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

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

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

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

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

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

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

ชื่อนักเรียน ->-> สำคัญชื่อนักเรียน->-> กีฬา

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

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

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

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

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

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

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

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

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