Διαφορά μεταξύ ξένου κλειδιού και πρωτεύοντος κλειδιού
Ξένο κλειδί vs Πρωτεύον κλειδί
Μια στήλη ή ένα σύνολο από στήλες που μπορούν να χρησιμοποιηθούν για την αναγνώριση ή την πρόσβαση μιας σειράς ή μιας σειράς σειρών σε μια βάση δεδομένων ονομάζεται κλειδί. Ένα πρωτεύον κλειδί σε μια σχεσιακή βάση δεδομένων είναι ένας συνδυασμός στηλών σε έναν πίνακα που αναγνωρίζει μοναδικά μια γραμμή του πίνακα. Το ξένο κλειδί σε μια σχεσιακή βάση δεδομένων είναι ένα πεδίο σε έναν πίνακα που ταιριάζει με το πρωτεύον κλειδί άλλου πίνακα. Το ξένο κλειδί χρησιμοποιείται για τη διασταύρωση των πινάκων αναφοράς.
Τι είναι το πρωτεύον κλειδί;
Το πρωτεύον κλειδί είναι μια στήλη ή ένας συνδυασμός στηλών που καθορίζει με μοναδικό τρόπο μια σειρά σε έναν πίνακα μιας σχεσιακής βάσης δεδομένων. Ένας πίνακας μπορεί να έχει το πολύ ένα πρωτεύον κλειδί. Το πρωτεύον κλειδί επιβάλλει τον έμμεσο περιορισμό NOT NULL. Επομένως, μια στήλη που ορίζεται ως το πρωτεύον κλειδί δεν μπορεί να έχει τιμές NULL σε αυτήν. Το πρωτεύον κλειδί μπορεί να είναι ένα κανονικό χαρακτηριστικό στον πίνακα που είναι εγγυημένο ότι είναι μοναδικό, όπως ένας αριθμός κοινωνικής ασφάλισης ή θα μπορούσε να είναι μια μοναδική τιμή που παράγεται από το σύστημα διαχείρισης βάσεων δεδομένων, όπως ένα παγκοσμίως μοναδικό αναγνωριστικό (GUID) στον Microsoft SQL Server. Τα πρωτεύοντα κλειδιά ορίζονται μέσω του περιορισμού PRIMARY KEY στο ANSI SQL Standard. Το πρωτεύον κλειδί μπορεί επίσης να οριστεί κατά τη δημιουργία του πίνακα. Η SQL επιτρέπει στο πρωτεύον κλειδί να αποτελείται από μία ή περισσότερες στήλες και κάθε στήλη που περιλαμβάνεται στο πρωτεύον κλειδί καθορίζεται σιωπηρά ως NOT NULL. Ωστόσο, ορισμένα συστήματα διαχείρισης βάσεων δεδομένων απαιτούν να μην αναγράφονται ρητά στις πρωτεύουσες στήλες κλειδί NOT NULL.
Τι είναι το ξένο κλειδί;
Το ξένο κλειδί είναι ένας αναφορικός περιορισμός μεταξύ δύο πινάκων. Προσδιορίζει μια στήλη ή ένα σύνολο από στήλες σε έναν πίνακα, που ονομάζεται πίνακας αναφοράς που αναφέρεται σε ένα σύνολο από στήλες σε έναν άλλο πίνακα, που ονομάζεται πίνακας αναφοράς. Το ξένο κλειδί ή οι στήλες στον πίνακα αναφοράς πρέπει να είναι το πρωτεύον κλειδί ή ένα υποψήφιο κλειδί (ένα κλειδί που μπορεί να χρησιμοποιηθεί ως πρωτεύον κλειδί) στον αναφερόμενο πίνακα. Τα ξένα πλήκτρα χρησιμοποιούνται για τη σύνδεση δεδομένων σε διάφορους πίνακες. Επομένως, το ξένο κλειδί δεν μπορεί να περιέχει τιμές που δεν εμφανίζονται στον πίνακα στον οποίο αναφέρεται. Στη συνέχεια, η αναφορά που παρέχεται από το ξένο κλειδί μπορεί να χρησιμοποιηθεί για να συνδέσει τις πληροφορίες σε διάφορους πίνακες και αυτό θα γίνει απαραίτητο με κανονικοποιημένες βάσεις δεδομένων. Πολλαπλές σειρές στον πίνακα αναφοράς μπορούν να αναφέρονται σε μία μόνο γραμμή στον αναφερόμενο πίνακα. Στο πρότυπο ANSI SQL, τα ξένα κλειδιά ορίζονται με τον περιορισμό FOREIGN KEY. Επιπλέον, μπορούν να οριστούν ξένοι κλειδιά κατά τη δημιουργία του ίδιου του πίνακα. Ένας πίνακας μπορεί να έχει πολλά ξένα κλειδιά και μπορούν να αναφέρουν διαφορετικούς πίνακες.
Ποια είναι η διαφορά μεταξύ του ξένου κλειδιού και του κύριου κλειδιού;
Η κύρια διαφορά μεταξύ του πρωτεύοντος κλειδιού και του ξένου κλειδιού είναι ότι το πρωτεύον κλειδί είναι μια στήλη ή ένα σύνολο από στήλες που μπορούν να χρησιμοποιηθούν για την μοναδική αναγνώριση μιας γραμμής σε έναν πίνακα, ενώ το ξένο κλειδί είναι μια στήλη ή ένα σύνολο στηλών που αναφέρονται σε ένα πρωτεύον κλειδί ή σε ένα υποψήφιο κλειδί άλλου πίνακα.Το ξένο κλειδί παρέχει κυρίως μια μέθοδο σύνδεσης των πληροφοριών σε διάφορους πίνακες. Μια άλλη διαφορά είναι ότι ένας πίνακας μπορεί να έχει ένα μόνο πρωτεύον κλειδί, αλλά μπορεί να έχει πολλαπλά ξένα κλειδιά που μπορούν να αναφέρουν διαφορετικούς πίνακες.