Πολυτιμή εξάρτηση σε βάσεις δεδομένων

Πίνακας περιεχομένων:

Πολυτιμή εξάρτηση σε βάσεις δεδομένων
Πολυτιμή εξάρτηση σε βάσεις δεδομένων
Anonim

Σε μια σχεσιακή βάση δεδομένων, προκύπτει μια εξάρτηση όταν οι πληροφορίες που είναι αποθηκευμένες στον ίδιο πίνακα βάσης δεδομένων καθορίζουν μοναδικά άλλες πληροφορίες που είναι αποθηκευμένες στον ίδιο πίνακα. Μια εξάρτηση πολλαπλών τιμών εμφανίζεται όταν η παρουσία μιας ή περισσότερων σειρών σε έναν πίνακα υποδηλώνει την παρουσία μιας ή περισσότερων άλλων σειρών στον ίδιο πίνακα. Με άλλα λόγια, δύο χαρακτηριστικά (ή στήλες) σε έναν πίνακα είναι ανεξάρτητα το ένα από το άλλο, αλλά και τα δύο εξαρτώνται από ένα τρίτο χαρακτηριστικό.

Image
Image

Μια εξάρτηση πολλαπλών τιμών αποτρέπει την τυπική τέταρτη κανονική μορφή κανονικοποίησης. Οι σχεσιακές βάσεις δεδομένων ακολουθούν πέντε κανονικές φόρμες που αντιπροσωπεύουν κατευθυντήριες γραμμές για το σχεδιασμό εγγραφών. Αποτρέπουν ανωμαλίες ενημέρωσης και ασυνέπειες στα δεδομένα. Η τέταρτη κανονική φόρμα ασχολείται με σχέσεις πολλά προς ένα σε μια βάση δεδομένων.

Λειτουργική εξάρτηση έναντι εξάρτησης πολλαπλών τιμών

Για να κατανοήσετε μια εξάρτηση πολλαπλών τιμών, είναι χρήσιμο να ξαναδείτε τι είναι μια λειτουργική εξάρτηση.

Αν ένα χαρακτηριστικό 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 Ποδόσφαιρο

Η κανονικοποίηση επιτυγχάνεται συχνά απλοποιώντας πολύπλοκους πίνακες, έτσι ώστε να περιέχουν πληροφορίες που σχετίζονται με μια μεμονωμένη ιδέα ή θέμα αντί να προσπαθείτε να κάνετε έναν μεμονωμένο πίνακα να περιέχει πάρα πολλές διαφορετικές πληροφορίες.

Συνιστάται: