Κλειδιά DBMS: Υποψήφιοι, Πρωτεύοντες, Υπερ και Ξένοι Τύποι

⚡ Έξυπνη Σύνοψη

Τα κλειδιά στο ΣΔΒΔ είναι χαρακτηριστικά που προσδιορίζουν μοναδικά μια γραμμή σε έναν πίνακα και δημιουργούν σχέσεις μεταξύ των πινάκων. Οκτώ τύποι κλειδιών, από το super και το primary έως το foreign και το surrogate, επιβάλλουν την ταυτότητα και την ακεραιότητα σε μια σχεσιακή βάση δεδομένων.

  • 🗝️ Βασικός Σκοπός: Ένα κλειδί προσδιορίζει μια μοναδική γραμμή και συνδέει σχετικούς πίνακες, ώστε τα δεδομένα να παραμένουν συνεπή.
  • 🔝 Υπερκλειδί: Οποιοδήποτε σύνολο χαρακτηριστικών που προσδιορίζει γραμμές, πιθανώς με επιπλέον χαρακτηριστικά πέρα ​​από το ελάχιστο.
  • ⭐ Πρωτεύων κλειδί: Το επιλεγμένο υποψήφιο κλειδί, ποτέ null και ποτέ διπλότυπο, ένα ανά πίνακα.
  • 🎯 Κλειδί Υποψηφίου: Ένα ελάχιστο υπερκλειδί χωρίς πλεονάζον χαρακτηριστικό· το πρωτεύον κλειδί επιλέγεται από αυτά.
  • 🔁 Εναλλακτικό κλειδί: Οποιοδήποτε υποψήφιο κλειδί δεν έχει επιλεγεί ως πρωτεύον κλειδί.
  • 🔗 Ξένο κλειδί: Μια στήλη που αναφέρεται στο πρωτεύον κλειδί ενός άλλου πίνακα για την επιβολή της ακεραιότητας αναφοράς.
  • 🧩 Σύνθετο και Υποκατάστατο: Τα σύνθετα κλειδιά συνδυάζουν στήλες για μοναδικότητα. Ένα υποκατάστατο κλειδί είναι ένα δημιουργημένο υποκατάστατο.

Κλειδιά DBMS Υποψήφιος Υπερ-Πρωτεύων

Τι είναι τα κλειδιά στο DBMS;

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

Παράδειγμα:

Ταυτότητα Υπαλλήλου Ονομα Επίθετο
11 Ανδρέας Johnson
22 τόμος Ξύλου
33 alex Υγιής

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

Γιατί χρειαζόμαστε ένα κλειδί;

Ακολουθούν μερικοί λόγοι για τη χρήση ενός κλειδιού σε ένα ΣΔΒΔ:

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

Τύποι κλειδιών σε ΣΔΒΔ

Υπάρχουν κυρίως οκτώ διαφορετικοί τύποι κλειδιών στο DBMS και κάθε κλειδί έχει τη δική του λειτουργικότητα:

  1. Σούπερ κλειδί
  2. Πρωτεύων κλειδί
  3. Υποψήφιο κλειδί
  4. Εναλλακτικό κλειδί
  5. Ξένο κλειδί
  6. Σύνθετο Κλειδί
  7. Σύνθετο κλειδί
  8. Υποκατάστατο κλειδί

Ο παρακάτω πίνακας συνοψίζει και τα οκτώ με μια ματιά, προτού εξηγηθεί λεπτομερώς το καθένα.

Κλειδί Σε μία γραμμή Μοναδικός?
Σούπερ κλειδί Οποιοδήποτε σύνολο χαρακτηριστικών που προσδιορίζει μια γραμμή, επιτρέπονται επιπλέον στοιχεία Ναι
Υποψήφιο κλειδί Ένα ελάχιστο υπερκλειδί, χωρίς περιττό χαρακτηριστικό Ναι
Πρωτεύων κλειδί Το επιλεγμένο υποψήφιο κλειδί, όχι null Ναι
Εναλλακτικό κλειδί Ένα υποψήφιο κλειδί δεν έχει επιλεγεί ως πρωτεύον Ναι
Ξένο κλειδί Αναφέρεται σε ένα πρωτεύον κλειδί σε έναν άλλο πίνακα Οχι
Σύνθετο Κλειδί Δύο ή περισσότερα χαρακτηριστικά, το καθένα ενδεχομένως μη μοναδικό Σε συνδυασμό
Σύνθετο κλειδί Δύο ή περισσότερες στήλες συνδυάζονται για μοναδικότητα Σε συνδυασμό
Υποκατάστατο κλειδί Ένα δημιουργημένο τεχνητό αναγνωριστικό Ναι

Τι είναι ένα Super Key;

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

Παράδειγμα:

EmpSSN EmpNum Empname
9812345098 AB05 Απεικονίζεται
9876512345 AB06 Roslyn
199937890 AB07 James

Στο παραπάνω παράδειγμα, τα EmpSSN και EmpNum είναι υπερκλειδιά.

Τι είναι το πρωτεύον κλειδί;

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

Κανόνες για τον ορισμό ενός πρωτεύοντος κλειδιού

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

Παράδειγμα: Στο παρακάτω παράδειγμα, StudID είναι ένα πρωτεύον κλειδί.

StudID Ρολό Αρ ΟΝΟΜΑ Επίθετο Ηλεκτρονικό Ταχυδρομείο
1 11 τόμος Τιμή abc@gmail.com
2 12 Nick Κατασκευαστής xyz@gmail.com
3 13 Dana Natan mno@yahoo.com

Τι είναι ένα Εναλλακτικό Κλειδί;

ΕΝΑΛΛΑΚΤΙΚΟ ΚΛΕΙΔΙ είναι μια στήλη ή ομάδα στηλών σε έναν πίνακα που προσδιορίζει μοναδικά κάθε γραμμή. Ένας πίνακας μπορεί να έχει πολλαπλές επιλογές για ένα πρωτεύον κλειδί, αλλά μόνο μία μπορεί να οριστεί ως πρωτεύον κλειδί. Όλα τα κλειδιά που δεν είναι το πρωτεύον κλειδί ονομάζονται εναλλακτικά κλειδιά.

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

StudID Ρολό Αρ ΟΝΟΜΑ Επίθετο Ηλεκτρονικό Ταχυδρομείο
1 11 τόμος Τιμή abc@gmail.com
2 12 Nick Κατασκευαστής xyz@gmail.com
3 13 Dana Natan mno@yahoo.com

Τι είναι το Υποψήφιο Κλειδί;

ΚΛΕΙΔΙ ΥΠΟΨΗΦΙΟΥ είναι ένα σύνολο χαρακτηριστικών που προσδιορίζουν μοναδικά πλειάδες σε έναν πίνακα. Ένα υποψήφιο κλειδί είναι ένα υπερκλειδί χωρίς επαναλαμβανόμενα χαρακτηριστικά. Το πρωτεύον κλειδί πρέπει να επιλεγεί από τα υποψήφια κλειδιά. Κάθε πίνακας πρέπει να έχει τουλάχιστον ένα υποψήφιο κλειδί και ένας πίνακας μπορεί να έχει πολλά υποψήφια κλειδιά αλλά μόνο ένα πρωτεύον κλειδί.

Ιδιότητες ενός υποψήφιου κλειδιού:

  • Πρέπει να περιέχει μοναδικές τιμές.
  • Ένα υποψήφιο κλειδί μπορεί να έχει πολλαπλά χαρακτηριστικά.
  • Δεν πρέπει να περιέχει τιμές null.
  • Θα πρέπει να περιέχει τα ελάχιστα απαραίτητα πεδία για να διασφαλιστεί η μοναδικότητα.
  • Προσδιορίζει μοναδικά κάθε εγγραφή σε έναν πίνακα.

Παράδειγμα: Στον παρακάτω πίνακα, τα StudID, Roll No και Email είναι υποψήφια κλειδιά που μας βοηθούν να αναγνωρίσουμε μοναδικά ένα αρχείο μαθητή. Η σχέση τους με τα υπερ και τα πρωτεύοντα κλειδιά είναι ένας συνηθισμένος τρόπος κατανόησης. λειτουργική εξάρτηση.

StudID Ρολό Αρ ΟΝΟΜΑ Επίθετο Ηλεκτρονικό Ταχυδρομείο
1 11 τόμος Τιμή abc@gmail.com
2 12 Nick Κατασκευαστής xyz@gmail.com
3 13 Dana Natan mno@yahoo.com
Υποψήφιο κλειδί στο DBMS
Υποψήφιο κλειδί στο DBMS

Τι είναι ένα Ξένο Κλειδί;

ΞΕΝΟ ΚΛΕΙΔΙ είναι μια στήλη που δημιουργεί μια σχέση μεταξύ δύο πινάκων. Ο σκοπός ενός ξένου κλειδιού είναι να διατηρεί την ακεραιότητα των δεδομένων και να επιτρέπει την πλοήγηση μεταξύ δύο διαφορετικών στιγμιότυπων μιας οντότητας. Λειτουργεί ως διασταυρούμενη αναφορά μεταξύ δύο πινάκων, καθώς αναφέρεται στο πρωτεύον κλειδί ενός άλλου πίνακα.

Παράδειγμα:

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

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

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

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

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

Τι είναι ένα Σύνθετο Κλειδί;

ΣΥΝΘΕΤΟ ΚΛΕΙΔΙ έχει δύο ή περισσότερα χαρακτηριστικά που σας επιτρέπουν να αναγνωρίζετε μοναδικά μια συγκεκριμένη εγγραφή. Είναι πιθανό κάθε στήλη να μην είναι μοναδική από μόνη της μέσα στη βάση δεδομένων. Ωστόσο, όταν συνδυάζονται, οι στήλες γίνονται μοναδικές. Ο σκοπός του σύνθετου κλειδιού είναι να αναγνωρίζει μοναδικά κάθε εγγραφή στον πίνακα.

Παράδειγμα:

Αριθμός παραγγελίας Αναγνωριστικό προϊόντος Όνομα Προϊόντος Ποσοτητα
B005 JAP102459 Ποντίκι 5
B005 DKT321573 USB 10
B005 OMG446789 Οθόνη LCD 20
B004 DKT321573 USB 15
B002 OMG446789 Εκτυπωτής με λέιζερ 3

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

Τι είναι ένα Σύνθετο Κλειδί;

ΣΥΝΘΕΤΟ ΚΛΕΙΔΙ είναι ένας συνδυασμός δύο ή περισσότερων στηλών που προσδιορίζουν μοναδικά τις γραμμές σε έναν πίνακα. Ο συνδυασμός των στηλών εγγυάται τη μοναδικότητα, αν και η μοναδικότητα κάθε στήλης δεν είναι εγγυημένη. Επομένως, συνδυάζονται για να προσδιορίζουν μοναδικά τις εγγραφές σε έναν πίνακα.

Η διαφορά μεταξύ ενός σύνθετου και ενός σύνθετου κλειδιού είναι ότι οποιοδήποτε μέρος ενός σύνθετου κλειδιού μπορεί να είναι ξένο κλειδί, αλλά ένα σύνθετο κλειδί μπορεί να είναι ή να μην είναι μέρος ενός ξένου κλειδιού.

Τι είναι ένα Υποκατάστατο Κλειδί;

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

Fname Επίθετο Ωρα έναρξης Ώρα λήξης
Anne Σιδεράς 09:00 18:00
γρύλος Francis 08:00 17:00
Άννα McLean 11:00 20:00
Απεικονίζεται Γουίλαμ 14:00 23:00

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

  • Καμία ιδιότητα δεν έχει την παράμετρο ενός πρωτεύοντος κλειδιού.
  • Το πρωτεύον κλειδί είναι πολύ μεγάλο ή περίπλοκο.

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

Η κύρια διαφορά μεταξύ ενός πρωτεύοντος κλειδιού και ενός ξένου κλειδιού είναι η ακόλουθη:

Πρωτεύων κλειδί Ξένο κλειδί
Σας βοηθά να αναγνωρίσετε με μοναδικό τρόπο μια εγγραφή στον πίνακα. Είναι ένα πεδίο στον πίνακα που είναι το πρωτεύον κλειδί ενός άλλου πίνακα.
Ένα πρωτεύον κλειδί δεν δέχεται ποτέ null τιμές. Ένα ξένο κλειδί μπορεί να δέχεται πολλές μηδενικές τιμές.
Το πρωτεύον κλειδί είναι ένα ομαδοποιημένο ευρετήριο και τα δεδομένα στον πίνακα είναι φυσικά οργανωμένα στην ακολουθία του ομαδοποιημένου ευρετηρίου. Ένα ξένο κλειδί δεν μπορεί να δημιουργήσει αυτόματα ένα ευρετήριο, σε συστάδα ή χωρίς συστάδα. Μπορείτε να δημιουργήσετε ένα μη αυτόματα.
Μπορείτε να έχετε ένα μόνο πρωτεύον κλειδί σε έναν πίνακα. Μπορείτε να έχετε πολλά ξένα κλειδιά σε έναν πίνακα.

Συχνές Ερωτήσεις

Κάθε υποψήφιο κλειδί μπορεί να αναγνωρίσει με μοναδικό τρόπο μια σειρά. Το πρωτεύον κλειδί είναι το ένα υποψήφιο κλειδί που επιλέγει ο σχεδιαστής. Τα υπόλοιπα υποψήφια κλειδιά γίνονται εναλλακτικά κλειδιά.

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

Χρησιμοποιήστε ένα υποκατάστατο κλειδί όταν κανένα φυσικό χαρακτηριστικό δεν είναι αξιόπιστα μοναδικό ή όταν το φυσικό κλειδί είναι μεγάλο ή μπορεί να αλλάξει. Ένας παραγόμενος ακέραιος αριθμός παραμένει σταθερός και διατηρεί τις συνδέσεις απλές.

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

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

Συνοψίστε αυτήν την ανάρτηση με: