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

Τι είναι τα κλειδιά στο DBMS;
Κλειδιά στο DBMS είναι ένα χαρακτηριστικό ή ένα σύνολο χαρακτηριστικών που σας βοηθούν να αναγνωρίσετε μια γραμμή (πλειάδα) σε μια σχέση (πίνακα). Σας επιτρέπουν να βρείτε τη σχέση μεταξύ δύο πινάκων. Τα κλειδιά σάς βοηθούν να αναγνωρίσετε μοναδικά μια γραμμή σε έναν πίνακα μέσω ενός συνδυασμού μίας ή περισσότερων στηλών και είναι επίσης χρήσιμα για την εύρεση μιας μοναδικής εγγραφής στον πίνακα.
Παράδειγμα:
| Ταυτότητα Υπαλλήλου | Ονομα | Επίθετο |
|---|---|---|
| 11 | Ανδρέας | Johnson |
| 22 | τόμος | Ξύλου |
| 33 | alex | Υγιής |
Στο παραπάνω παράδειγμα, το Αναγνωριστικό Εργαζομένου είναι ένα πρωτεύον κλειδί επειδή προσδιορίζει μοναδικά μια εγγραφή εργαζομένου. Σε αυτόν τον πίνακα, κανένας άλλος εργαζόμενος δεν μπορεί να έχει το ίδιο Αναγνωριστικό εργαζομένου.
Γιατί χρειαζόμαστε ένα κλειδί;
Ακολουθούν μερικοί λόγοι για τη χρήση ενός κλειδιού σε ένα ΣΔΒΔ:
- Τα κλειδιά σάς βοηθούν να αναγνωρίσετε οποιαδήποτε γραμμή δεδομένων σε έναν πίνακα. Σε μια πραγματική εφαρμογή, ένας πίνακας θα μπορούσε να περιέχει χιλιάδες εγγραφές και οι εγγραφές θα μπορούσαν να αντιγραφούν. Τα κλειδιά διασφαλίζουν ότι μπορείτε να αναγνωρίσετε με μοναδικό τρόπο μια εγγραφή πίνακα παρά τις προκλήσεις αυτές.
- Σας επιτρέπουν να δημιουργήσετε και να εντοπίσετε σχέσεις μεταξύ πινάκων.
- Σας βοηθούν να ενισχύσετε την ταυτότητα και την ακεραιότητα στη σχέση.
Τύποι κλειδιών σε ΣΔΒΔ
Υπάρχουν κυρίως οκτώ διαφορετικοί τύποι κλειδιών στο DBMS και κάθε κλειδί έχει τη δική του λειτουργικότητα:
- Σούπερ κλειδί
- Πρωτεύων κλειδί
- Υποψήφιο κλειδί
- Εναλλακτικό κλειδί
- Ξένο κλειδί
- Σύνθετο Κλειδί
- Σύνθετο κλειδί
- Υποκατάστατο κλειδί
Ο παρακάτω πίνακας συνοψίζει και τα οκτώ με μια ματιά, προτού εξηγηθεί λεπτομερώς το καθένα.
| Κλειδί | Σε μία γραμμή | Μοναδικός? |
|---|---|---|
| Σούπερ κλειδί | Οποιοδήποτε σύνολο χαρακτηριστικών που προσδιορίζει μια γραμμή, επιτρέπονται επιπλέον στοιχεία | Ναι |
| Υποψήφιο κλειδί | Ένα ελάχιστο υπερκλειδί, χωρίς περιττό χαρακτηριστικό | Ναι |
| Πρωτεύων κλειδί | Το επιλεγμένο υποψήφιο κλειδί, όχι 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 |

Τι είναι ένα Ξένο Κλειδί;
ΞΕΝΟ ΚΛΕΙΔΙ είναι μια στήλη που δημιουργεί μια σχέση μεταξύ δύο πινάκων. Ο σκοπός ενός ξένου κλειδιού είναι να διατηρεί την ακεραιότητα των δεδομένων και να επιτρέπει την πλοήγηση μεταξύ δύο διαφορετικών στιγμιότυπων μιας οντότητας. Λειτουργεί ως διασταυρούμενη αναφορά μεταξύ δύο πινάκων, καθώς αναφέρεται στο πρωτεύον κλειδί ενός άλλου πίνακα.
Παράδειγμα:
| Τμήμα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 τιμές. | Ένα ξένο κλειδί μπορεί να δέχεται πολλές μηδενικές τιμές. |
| Το πρωτεύον κλειδί είναι ένα ομαδοποιημένο ευρετήριο και τα δεδομένα στον πίνακα είναι φυσικά οργανωμένα στην ακολουθία του ομαδοποιημένου ευρετηρίου. | Ένα ξένο κλειδί δεν μπορεί να δημιουργήσει αυτόματα ένα ευρετήριο, σε συστάδα ή χωρίς συστάδα. Μπορείτε να δημιουργήσετε ένα μη αυτόματα. |
| Μπορείτε να έχετε ένα μόνο πρωτεύον κλειδί σε έναν πίνακα. | Μπορείτε να έχετε πολλά ξένα κλειδιά σε έναν πίνακα. |
