Διαφορά μεταξύ πρωτεύοντος κλειδιού και ξένου κλειδιού

Βασικές διαφορές μεταξύ του πρωτεύοντος κλειδιού έναντι του ξένου κλειδιού

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

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

Τι είναι το Πρωτεύον Κλειδί;

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

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

Παράδειγμα Πρωτεύοντος Κλειδιού

Σύνταξη:

Παρακάτω είναι η σύνταξη του Πρωτεύοντος Κλειδιού:

CREATE TABLE <Table-Name>
(
Column1 datatype,
Column2 datatype,  PRIMARY KEY (Column-Name)
.
);    

Εδώ,

  • Table_Name είναι το όνομα του πίνακα που πρέπει να δημιουργήσετε.
  • Column_Name είναι το όνομα της στήλης που έχει το πρωτεύον κλειδί.

Παράδειγμα:

StudID Ρολό Αρ ΟΝΟΜΑ/ΕΠΩΝΥΜΟ ΤΗΛΕΦΩΝΟ Email
1 11 τόμος Τιμή abc@gmail.com
2 12 Nick Κατασκευαστής xyz@gmail.com
3 13 Dana Natan mno@yahoo.com

Στο παραπάνω παράδειγμα, δημιουργήσαμε έναν πίνακα μαθητή με στήλες όπως το StudID, το Roll No., το Όνομα, το Επώνυμο και το Email. Το StudID επιλέγεται ως πρωτεύον κλειδί επειδή μπορεί να προσδιορίσει μοναδικά άλλες σειρές στον πίνακα.

Γιατί να χρησιμοποιήσετε το πρωτεύον κλειδί;

Κατά τη διάρκεια των ετών διαχείρισης συστημάτων βάσεων δεδομένων, έχω σημειώσει αυτά τα μειονεκτήματα και τα πλεονεκτήματα κατά τη χρήση ενός πρωτεύοντος κλειδιού:

  • Ο κύριος στόχος του πρωτεύοντος κλειδιού είναι να αναγνωρίσει κάθε εγγραφή στον πίνακα της βάσης δεδομένων.
  • Μπορείτε να χρησιμοποιήσετε ένα πρωτεύον κλειδί όταν δεν επιτρέπετε σε κάποιον να εισάγει μηδενικές τιμές.
  • Εάν διαγράψετε ή ενημερώσετε εγγραφές, η ενέργεια που καθορίσατε θα πραγματοποιηθεί για να διασφαλιστεί η ακεραιότητα των δεδομένων.
  • Εκτελέστε τη λειτουργία περιορισμού για να απορρίψετε τη λειτουργία διαγραφής ή ενημέρωσης για τον γονικό πίνακα.
  • Τα δεδομένα οργανώνονται σε μια ακολουθία ομαδοποιημένων ευρετηρίων όποτε οργανώνετε φυσικά έναν πίνακα DBMS.

Τι είναι το ξένο κλειδί;

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

Παράδειγμα ξένου κλειδιού

Σύνταξη:

Παρακάτω είναι η σύνταξη του ξένου κλειδιού:

CREATE TABLE <Table Name>( 
column1    datatype,
column2    datatype,  
constraint (name of constraint) 
FOREIGN KEY [column1, column2...] 
REFERENCES [primary key table name] (List of primary key table column) ...);

Εδώ,

  • Η παράμετρος Όνομα πίνακα υποδεικνύει το όνομα του πίνακα που πρόκειται να δημιουργήσετε.
  • Οι παράμετροι στήλη1, στήλη 2… απεικονίζουν τις στήλες που πρέπει να προστεθούν στον πίνακα.
  • Ένας περιορισμός υποδηλώνει το όνομα του περιορισμού που δημιουργείτε.
  • Οι αναφορές υποδεικνύουν έναν πίνακα με το πρωτεύον κλειδί.

Παράδειγμα:

DeptCode Όνομα τμήματος
001 Επιστήμη
002 Αγγλικά
005 υπολογιστή
Ταυτότητα εκπαιδευτικού Fname Lname
B002 Δαβίδ Προειδοποιών
B017 Sara Ιωσήφ
B009 μικρόφωνο Μπράντον

Στο παραπάνω παράδειγμα, έχουμε δύο πίνακες: έναν δάσκαλο και ένα τμήμα σε ένα σχολείο. Ωστόσο, δεν υπάρχει τρόπος να δείτε ποια αναζήτηση λειτουργεί σε ποιο τμήμα.

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

Ταυτότητα εκπαιδευτικού DeptCode Fname Lname
B002 002 Δαβίδ Προειδοποιών
B017 002 Sara Ιωσήφ
B009 001 μικρόφωνο Μπράντον

Αυτή η έννοια είναι επίσης γνωστή ως αναφορική ακεραιότητα.

Γιατί να χρησιμοποιήσετε το ξένο κλειδί;

Από ό,τι έχω δει, εδώ είναι οι σημαντικοί λόγοι για την εφαρμογή ξένων κλειδιών:

  • Τα ξένα κλειδιά σάς βοηθούν να μετεγκαταστήσετε οντότητες χρησιμοποιώντας ένα πρωτεύον κλειδί από τον γονικό πίνακα.
  • A ξένο κλειδί σας δίνει τη δυνατότητα να συνδέσετε δύο ή περισσότερους πίνακες μεταξύ τους.
  • Κάνει τα δεδομένα της βάσης δεδομένων σας συνεπή.
  • Ένα ξένο κλειδί μπορεί να χρησιμοποιηθεί για την αντιστοίχιση μιας στήλης ή ενός συνδυασμού στηλών με το πρωτεύον κλειδί σε έναν γονικό πίνακα.
  • Ο περιορισμός ξένου κλειδιού SQL χρησιμοποιείται για να βεβαιωθεί ότι η ακεραιότητα αναφοράς του γονέα δεδομένων ταιριάζει με τις τιμές στον θυγατρικό πίνακα.

Διαφορά μεταξύ πρωτεύοντος κλειδιού και ξένου κλειδιού

Επιτρέψτε μου να μοιραστώ τη σημαντική διαφορά μεταξύ ενός πρωτεύοντος κλειδιού και ενός ξένου κλειδιού, όπως έχω βιώσει προσωπικά:

Πρωτεύον κλειδί εναντίον ξένου κλειδιού
Πρωτεύον κλειδί εναντίον ξένου κλειδιού
Βάση σύγκρισης Πρωτεύων κλειδί Ξένο κλειδί
Ορισμός Ένας περιορισμός πρωτεύοντος κλειδιού είναι μια στήλη ή μια ομάδα στηλών που προσδιορίζουν μοναδικά κάθε γραμμή στον πίνακα του σχεσιακό σύστημα διαχείρισης βάσεων δεδομένων. Ένα ξένο κλειδί είναι μια στήλη που δημιουργεί μια σχέση μεταξύ δύο πινάκων.
Βασικο Σας βοηθά να προσδιορίσετε μοναδικά μια εγγραφή στον πίνακα. Είναι ένα πεδίο στον πίνακα που είναι το πρωτεύον κλειδί ενός άλλου πίνακα.
Τιμή NULL Το πρωτεύον κλειδί δεν δέχεται ποτέ μηδενικές τιμές. Ένα ξένο κλειδί μπορεί να δέχεται πολλές μηδενικές τιμές.
Ευρετηρίαση Το πρωτεύον κλειδί είναι ένα ευρετήριο συμπλέγματος και τα δεδομένα στον πίνακα DBMS οργανώνονται φυσικά με τη σειρά του ευρετηρίου συμπλέγματος. Ένα ξένο κλειδί δεν μπορεί να δημιουργήσει αυτόματα ένα ευρετήριο, συμπλεγμένο ή μη.
Κόμης Μπορείτε να έχετε ένα μόνο Κύριο κλειδί σε έναν πίνακα. Μπορείτε να έχετε πολλά ξένα κλειδιά σε έναν πίνακα.
διαγραφή Η τιμή του πρωτεύοντος κλειδιού δεν μπορεί να αφαιρεθεί από τον γονικό πίνακα. Η τιμή του ξένου κλειδιού μπορεί να αφαιρεθεί από τον θυγατρικό πίνακα.
Προσωρινό τραπέζι Μπορείτε να ορίσετε το πρωτεύον κλειδί έμμεσα στους προσωρινούς πίνακες. Δεν μπορείτε να ορίσετε ξένα κλειδιά στους τοπικούς ή καθολικούς προσωρινούς πίνακες.
Σχέση Το πρωτεύον κλειδί είναι ένα ευρετήριο συμπλέγματος. Από προεπιλογή, δεν είναι ευρετήριο συμπλέγματος.
Αναπαραγωγή σε πανομοιότυπο Δεν υπάρχουν δύο σειρές που να έχουν ίδιες τιμές για ένα πρωτεύον κλειδί. Ένα ξένο κλειδί μπορεί να περιέχει διπλές τιμές.
Εισαγωγή Δεν υπάρχει περιορισμός στην εισαγωγή των τιμών στη στήλη του πίνακα. Κατά την εισαγωγή οποιασδήποτε τιμής στον πίνακα ξένων κλειδιών, βεβαιωθείτε ότι η τιμή υπάρχει σε μια στήλη ενός πρωτεύοντος κλειδιού.

Πώς να επιλέξετε μεταξύ ενός πρωτεύοντος κλειδιού και ενός ξένου κλειδιού

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