Σε μια σχεσιακή βάση δεδομένων, προκύπτει μια εξάρτηση όταν οι πληροφορίες που είναι αποθηκευμένες στον ίδιο πίνακα βάσης δεδομένων καθορίζουν μοναδικά άλλες πληροφορίες που είναι αποθηκευμένες στον ίδιο πίνακα. Μια εξάρτηση πολλαπλών τιμών εμφανίζεται όταν η παρουσία μιας ή περισσότερων σειρών σε έναν πίνακα υποδηλώνει την παρουσία μιας ή περισσότερων άλλων σειρών στον ίδιο πίνακα. Με άλλα λόγια, δύο χαρακτηριστικά (ή στήλες) σε έναν πίνακα είναι ανεξάρτητα το ένα από το άλλο, αλλά και τα δύο εξαρτώνται από ένα τρίτο χαρακτηριστικό.
Μια εξάρτηση πολλαπλών τιμών αποτρέπει την τυπική τέταρτη κανονική μορφή κανονικοποίησης. Οι σχεσιακές βάσεις δεδομένων ακολουθούν πέντε κανονικές φόρμες που αντιπροσωπεύουν κατευθυντήριες γραμμές για το σχεδιασμό εγγραφών. Αποτρέπουν ανωμαλίες ενημέρωσης και ασυνέπειες στα δεδομένα. Η τέταρτη κανονική φόρμα ασχολείται με σχέσεις πολλά προς ένα σε μια βάση δεδομένων.
Λειτουργική εξάρτηση έναντι εξάρτησης πολλαπλών τιμών
Για να κατανοήσετε μια εξάρτηση πολλαπλών τιμών, είναι χρήσιμο να ξαναδείτε τι είναι μια λειτουργική εξάρτηση.
Αν ένα χαρακτηριστικό X καθορίζει μοναδικά ένα χαρακτηριστικό Y, τότε το Y εξαρτάται λειτουργικά από το X. Αυτό γράφεται ως X -> Y. Για παράδειγμα, στον πίνακα Students παρακάτω, το Student_Name καθορίζει το Major:
Student_Name | Μάγχος |
---|---|
Ravi | Ιστορία Τέχνης |
Beth | Χημεία |
Αυτή η λειτουργική εξάρτηση μπορεί να γραφτεί: Student_Name -> Major. Κάθε Student_Name καθορίζει ακριβώς ένα Major και όχι περισσότερο.
Εάν θέλετε η βάση δεδομένων να παρακολουθεί επίσης τα αθλήματα που παίρνουν αυτοί οι μαθητές, ίσως σκεφτείτε ότι ο ευκολότερος τρόπος για να το κάνετε αυτό είναι απλώς να προσθέσετε μια άλλη στήλη με τίτλο Αθλητισμός:
Student_Name | Μάγχος | Αθλητισμός |
---|---|---|
Ravi | Ιστορία Τέχνης | Ποδόσφαιρο |
Ravi | Ιστορία Τέχνης | Βόλεϊ |
Ravi | Ιστορία Τέχνης | Τένις |
Beth | Χημεία | Τένις |
Beth | Χημεία | Ποδόσφαιρο |
Το πρόβλημα εδώ είναι ότι τόσο ο Ράβι όσο και η Μπεθ παίζουν πολλά αθλήματα. Είναι απαραίτητο να προσθέσετε μια νέα σειρά για κάθε επιπλέον άθλημα.
Αυτός ο πίνακας εισήγαγε μια εξάρτηση πολλαπλών τιμών, επειδή η κύρια και το άθλημα είναι ανεξάρτητα το ένα από το άλλο, αλλά και τα δύο εξαρτώνται από τον μαθητή. Αυτό είναι ένα απλό παράδειγμα και εύκολα αναγνωρίσιμο, αλλά μια εξάρτηση πολλαπλών τιμών θα μπορούσε να γίνει πρόβλημα σε μια μεγάλη, πολύπλοκη βάση δεδομένων.
Μια εξάρτηση πολλαπλών τιμών γράφεται X ->-> Y. Σε αυτήν την περίπτωση:
Student_Name ->-> Major
Όνομα_μαθητή -2633 > Sport
Αυτό διαβάζεται ως "Student_Name multidetermines Major" και "Student_Name multidetermines Sport."
Μια εξάρτηση πολλαπλών τιμών απαιτεί πάντα τουλάχιστον τρία χαρακτηριστικά επειδή αποτελείται από τουλάχιστον δύο χαρακτηριστικά που εξαρτώνται από ένα τρίτο.
Πολυτιμή εξάρτηση και κανονικοποίηση
Ένας πίνακας με εξάρτηση πολλαπλών τιμών παραβιάζει το πρότυπο κανονικοποίησης της τέταρτης κανονικής φόρμας, επειδή δημιουργεί περιττές απολύσεις και μπορεί να συμβάλει σε ασυνεπή δεδομένα. Για να το ανεβείτε στο 4NF, είναι απαραίτητο να χωρίσετε αυτές τις πληροφορίες σε δύο πίνακες.
Ο παρακάτω πίνακας έχει τώρα μια λειτουργική εξάρτηση Student_Name -> Major και όχι εξαρτήσεις πολλαπλών τιμών:
Student_Name | Μάγχος |
---|---|
Ravi | Ιστορία Τέχνης |
Ravi | Ιστορία Τέχνης |
Ravi | Ιστορία Τέχνης |
Beth | Χημεία |
Beth | Χημεία |
Ενώ αυτός ο πίνακας έχει επίσης μια ενιαία λειτουργική εξάρτηση Student_Name -> Sport:
Student_Name | Αθλητισμός |
---|---|
Ravi | Ποδόσφαιρο |
Ravi | Βόλεϊ |
Ravi | Τένις |
Beth | Τένις |
Beth | Ποδόσφαιρο |
Η κανονικοποίηση επιτυγχάνεται συχνά απλοποιώντας πολύπλοκους πίνακες, έτσι ώστε να περιέχουν πληροφορίες που σχετίζονται με μια μεμονωμένη ιδέα ή θέμα αντί να προσπαθείτε να κάνετε έναν μεμονωμένο πίνακα να περιέχει πάρα πολλές διαφορετικές πληροφορίες.