Υπάρχουν κάποιες περισσότερες διαφορές μεταξύ του κύριου και του υποψήφιου κλειδιού το οποίο θα συζητήσω με τη βοήθεια του πίνακα σύγκρισης που φαίνεται παρακάτω.
Συγκριτικό διάγραμμα
Βάση σύγκρισης | Πρωτεύων κλειδί | Υποψήφιο κλειδί |
---|---|---|
Βασικός | Υπάρχει μόνο ένα πρωτεύον κλειδί σε οποιαδήποτε σχέση. | Μπορεί να υπάρχουν περισσότερα από ένα υποψήφια κλειδιά σε μια σχέση. |
ΜΗΔΕΝΙΚΟ | Καμία ιδιότητα ενός πρωτεύοντος κλειδιού δεν μπορεί να περιέχει τιμή NULL. | Το χαρακτηριστικό ενός κλειδιού υποψηφίου μπορεί να έχει τιμή NULL. |
Προσδιορίζω | Είναι προαιρετικό να καθορίσετε ένα πρωτεύον κλειδί για οποιαδήποτε σχέση. | Δεν μπορεί να υπάρξει σχέση χωρίς να προσδιοριστεί το υποψήφιο κλειδί. |
χαρακτηριστικό | Το πρωτεύον κλειδί περιγράφει το σημαντικότερο χαρακτηριστικό της σχέσης. | Τα υποψήφια κλειδιά παρουσιάζουν υποψηφίους που μπορούν να πληρούν τις προϋποθέσεις για πρωτεύον κλειδί. |
Αντίστροφα | Ένα πρωτεύον κλειδί είναι ένα υποψήφιο κλειδί. | Αλλά δεν είναι υποχρεωτικό ότι κάθε υποψήφιο κλειδί μπορεί να είναι ένα πρωτεύον κλειδί. |
Ορισμός του πρωτεύοντος κλειδιού
Το πρωτεύον κλειδί είναι ένα χαρακτηριστικό ή ένα σύνολο χαρακτηριστικών που θα αναγνωρίζουν με μοναδικό τρόπο κάθε πλειάδα σε μια σχέση. Για κάθε σχέση μπορεί να υπάρχει μόνο ένα πρωτεύον κλειδί. Πρέπει να ληφθεί μέριμνα ώστε ένα πρωτεύον κλειδί να μην περιέχει ποτέ μια τιμή NULL και πρέπει να έχει τη μοναδική τιμή για κάθε πλειάδα στη σχέση. Οι τιμές των χαρακτηριστικών του πρωτεύοντος κλειδιού πρέπει να είναι στατικές, δηλαδή η τιμή του χαρακτηριστικού δεν πρέπει ποτέ ή σπάνια να αλλάξει.
Ένα από τα υποψήφια κλειδιά αποκτά τα προσόντα για να γίνει πρωτεύον κλειδί. Οι κανόνες που ένα υποψήφιο κλειδί πρέπει να πληρούν τις προϋποθέσεις για να γίνουν πρωτογενείς είναι ότι η τιμή κλειδί δεν πρέπει ποτέ να είναι NULL και πρέπει να είναι μοναδική για όλες τις πλειάδες.
Εάν μια σχέση περιέχει ένα χαρακτηριστικό που είναι ένα πρωτεύον κλειδί κάποιας άλλης σχέσης, τότε αυτό το χαρακτηριστικό ονομάζεται ξένο κλειδί .
Συνιστάται να καταλάβετε το πρωτεύον κλειδί μιας σχέσης πριν εισαγάγετε άλλα χαρακτηριστικά μιας σχέσης ως πρωτεύον κλειδί προσδιορίζει κάθε πλειάδα μοναδικά. Είναι καλύτερα να επιλέξετε ένα απλό χαρακτηριστικό ή ένα μικρό αριθμό χαρακτηριστικών ως πρωτεύον κλειδί που διευκολύνει τη διαχείριση σχέσεων.
Τώρα, ας δούμε ένα παράδειγμα βασικού κλειδιού.
Φοιτητής {ID, First_name, Last_name, Ηλικία, Διεύθυνση}
Εδώ θα καταλάβουμε πρώτα τα υποψήφια κλειδιά. Έχω καταλάβει δύο υποψήφια κλειδιά {ID} και {First_name, Last_name} καθώς θα αναγνωρίζουν με μοναδικό τρόπο κάθε μαθητή στη σχέση σπουδαστών. Τώρα, εδώ θα επιλέξω την ταυτότητα ως το κύριο κλειδί μου επειδή μερικές φορές μπορεί να συμβεί ότι δύο μαθητές μπορεί να έχουν τα ίδια πρώτα και επώνυμα, έτσι θα είναι εύκολο να εντοπιστεί ένας φοιτητής με την ταυτότητά του .
Ορισμός του υποψήφιου κλειδιού
Ένα υποψήφιο κλειδί είναι ένα χαρακτηριστικό ή ένα σύνολο χαρακτηριστικών που ορίζουν με μοναδικό τρόπο μια πλειάδα σε μια σχέση. Υπάρχουν περισσότερα από ένα υποψήφια κλειδιά σε μια σχέση. Αυτά τα Υποψήφια κλειδιά είναι οι υποψήφιοι που μπορούν να χαρακτηριστούν ως πρωταρχικό κλειδί.
Παρόλο που κάθε υποψήφιο κλειδί πληροί τις προϋποθέσεις για να γίνει πρωτεύον κλειδί, μόνο ένα μπορεί να επιλεγεί ως πρωτεύον κλειδί. Οι κανόνες που ένα υποψήφιο κλειδί απαιτεί για να γίνει πρωτεύον κλειδί είναι ότι η τιμή χαρακτηριστικού του κλειδιού δεν μπορεί ποτέ να είναι NULL σε οποιοδήποτε τομέα του κλειδιού, πρέπει να είναι μοναδική και στατική .
Εάν όλα τα υποψήφια κλειδιά πληρούν τις προϋποθέσεις για το πρωτεύον κλειδί, τότε ένα έμπειρο DBA πρέπει να λάβει την απόφαση να καταλάβει το πρωτεύον κλειδί. Δεν μπορεί ποτέ να υπάρξει σχέση χωρίς υποψήφιο κλειδί.
Ας καταλάβουμε το υποψήφιο κλειδί με ένα παράδειγμα. Αν προσθέσουμε κάποιες περισσότερες ιδιότητες στη σχέση των Φοιτητών, θα αναφερθώ παραπάνω.
Φοιτητής {ID, First_name, Last_name, Age, Address, DOB, Department_name}
Εδώ μπορώ να καταλάβω δύο υποψήφια κλειδιά που είναι {ID}, {First_name, Last_name, DOB} . Έτσι μπορείτε να καταλάβετε ότι τα υποψήφια κλειδιά είναι αυτά που αναγνωρίζουν μοναδικά μια πλειάδα σε μια σχέση.
Βασικές διαφορές μεταξύ πρωτεύοντος και υποψήφιου κλειδιού
- Το βασικό σημείο που διαφοροποιεί το πρωτεύον κλειδί από το υποψήφιο κλειδί είναι ότι μπορεί να υπάρχει μόνο μία πρωτεύουσα για οποιαδήποτε σχέση σε ένα σχήμα. Ωστόσο, μπορεί να υπάρχουν πολλά υποψήφια κλειδιά για μία μόνο σχέση.
- Το χαρακτηριστικό του πρωτεύοντος κλειδιού δεν μπορεί ποτέ να περιέχει μια τιμή NULL, καθώς η κύρια λειτουργία του πρωτεύοντος κλειδιού είναι η μοναδική αναγνώριση μιας εγγραφής σε σχέση. Ακόμη και ένα πρωτεύον κλειδί μπορεί να χρησιμοποιηθεί ως ξένο κλειδί σε άλλη σχέση και επομένως δεν πρέπει να είναι NULL έτσι ώστε η σχέση αναφοράς να μπορεί να βρει τις πλειάδες σε μια αναφερόμενη σχέση. Το υποψήφιο κλειδί μπορεί να είναι NULL εκτός αν ο περιορισμός χαρακτηριστικών είναι καθορισμένος όχι null.
- Είναι προαιρετικό να καθορίσετε ένα πρωτεύον κλειδί, αλλά δεν μπορεί να υπάρξει σχέση χωρίς τα υποψήφια κλειδιά.
- Το πρωτεύον κλειδί περιγράφει το μοναδικό και σημαντικό χαρακτηριστικό μιας σχέσης ενώ τα υποψήφια κλειδιά παρέχουν τους υποψηφίους μεταξύ των οποίων μπορεί κανείς να επιλεγεί ως πρωτεύον κλειδί.
- Κάθε πρωτεύον κλειδί είναι ένα υποψήφιο κλειδί, αλλά το αντίστροφο δεν είναι αλήθεια.
Συμπέρασμα:
Είναι προαιρετικό για μια σχέση να καθορίσετε ένα πρωτεύον κλειδί. Από την άλλη πλευρά, αν δηλώνετε μια σχέση, τα υποψήφια κλειδιά πρέπει να είναι παρόντα σε αυτή τη σχέση για να δημιουργήσουν μια καλή σχέση.