Skip to main content

Η δύναμη των ξένων κλειδιών στις σχετικές βάσεις δεδομένων

Data Analysis in R by Dustin Tran (Ιούνιος 2025)

Data Analysis in R by Dustin Tran (Ιούνιος 2025)
Anonim

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

Μερικά βασικά στοιχεία σχεσιακών βάσεων δεδομένων

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

Codd στην IBM το 1970), αλλά αυτό δεν είναι το θέμα αυτού του άρθρου.

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

Χρησιμοποιώντας ξένα κλειδιά

Τα περισσότερα τραπέζια, ειδικά σε μεγάλες, σύνθετες βάσεις δεδομένων, έχουν πρωτεύοντα κλειδιά. Οι πίνακες που έχουν σχεδιαστεί για πρόσβαση σε άλλους πίνακες πρέπει επίσης να διαθέτουν ένα ξένο κλειδί.

Για να χρησιμοποιήσετε την κοινά αναφερόμενη βάση δεδομένων Northwinds, εδώ υπάρχει ένα απόσπασμα από έναν πίνακα προϊόντων:

Το απόσπασμα πίνακα προϊόντων της βάσης δεδομένων Northwind
Κωδικός προϊόντοςΟνομα προϊόντοςΚατηγορίαIDQuantityPerUΤιμή μονάδας
1Chai110 κουτιά x 20 σακούλες18.00
2Chang124 - 12 οζ φιάλες19.00
3Σιρόπι γλυκάνισου212 - φιάλες των 550 ml10.00
4Ο καπνιστής Cajun του σεφ του Αντόνιου2Δοχεία 48 - 6 οζ22.00
5Σεμινάριο γκουμπού του αρχιμάγειρα Αντόνιο236 κιβώτια21.35
6Το Boysenberry της γιαγιάς απλώνεται2Δοχεία 12 - 8 οζ25.00
7Τα βιολογικά αποξηραμένα αχλάδια του θείου Bob712 - 1 λίβρες pkgs.30.00

ο Κωδικός προϊόντος στήλη είναι το πρωτεύον κλειδί αυτού του πίνακα. Αναθέτει ένα μοναδικό αναγνωριστικό σε κάθε προϊόν.

Αυτός ο πίνακας περιέχει επίσης μια ξένη στήλη κλειδιού, ΚατηγορίαID. Κάθε προϊόν στον πίνακα προϊόντων συνδέεται με μια καταχώρηση στον πίνακα κατηγοριών που ορίζει την κατηγορία του προϊόντος.

Σημειώστε αυτό το απόσπασμα από τον πίνακα κατηγοριών της βάσης δεδομένων:

Βάση δεδομένων κατηγοριών βάσης δεδομένων του Northwind
ΚατηγορίαIDΟνομα κατηγορίαςΠεριγραφή
1ΠοτάΑναψυκτικά, καφέδες, τσάγια, μπύρες και μπίρες
2ΚαρυκεύματαΓλυκές και αλμυρές σάλτσες, απολαύσεις, απλώματα και καρυκεύματα
3ΖαχαρωτάΕπιδόρπια, καραμέλες και γλυκά
5γαλακτοκομικά προϊόνταΤυριά

Η στήλη ΚατηγορίαID είναι το πρωτεύον κλειδί αυτής της στήλης. (Δεν έχει ξένο κλειδί επειδή δεν χρειάζεται να έχει πρόσβαση σε άλλο πίνακα.) Κάθε ξένο κλειδί στον πίνακα προϊόντων συνδέεται με ένα πρωτεύον κλειδί στον πίνακα Κατηγορίες. Για παράδειγμα, το προϊόν Chai έχει ανατεθεί κατηγορία "Ποτά", ενώ το σιρόπι γλυκάνισου είναι στην κατηγορία Καρυκεύματα.

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