Πρωτεύον κλειδί έναντι υποψηφίου κλειδιού
Αν και επιλέγεται το πρωτεύον κλειδί από τα υποψήφια κλειδιά, υπάρχει κάποια διαφορά μεταξύ του πρωτεύοντος κλειδιού και των άλλων υποψηφίων κλειδιών, η οποία θα συζητηθεί λεπτομερώς σε αυτό το άρθρο. Ο σχεδιασμός της βάσης δεδομένων είναι μια από τις πιο σημαντικές δραστηριότητες που πρέπει να γίνει κατά τη διατήρηση και αποθήκευση δεδομένων. Κατά τη διάρκεια αυτής της διαδικασίας σχεδιασμού, πρέπει να δημιουργηθούν διαφορετικοί πίνακες με πολλές σχέσεις. Για την πρόσβαση σε αυτούς τους πίνακες σε μια βάση δεδομένων, χρησιμοποιούνται διαφορετικοί τύποι κλειδιών σε σύγχρονες γλώσσες σχεδιασμού βάσεων δεδομένων, όπως MYSQL, MSAccess, SQLite, κ.λπ. Από αυτά τα κλειδιά, τα υποψήφια κλειδιά και τα κύρια κλειδιά έχουν γίνει απαραίτητα στις πρακτικές σχεδιασμού βάσεων δεδομένων.
Τι είναι το κλειδί υποψηφίου;
Κλειδί υποψηφίου είναι μια στήλη ή σύνολο στηλών σε έναν πίνακα μιας βάσης δεδομένων που μπορεί να χρησιμοποιηθεί για τον μοναδικό προσδιορισμό οποιασδήποτε εγγραφής βάσης δεδομένων χωρίς αναφορά σε άλλα δεδομένα. Κάθε πίνακας μιας βάσης δεδομένων μπορεί να έχει ένα ή περισσότερα από ένα υποψήφια κλειδιά. Ένα σύνολο υποψήφιων κλειδιών μπορεί να δημιουργηθεί χρησιμοποιώντας λειτουργικές εξαρτήσεις. Υπάρχουν μερικά σημαντικά χαρακτηριστικά σε ένα υποψήφιο κλειδί. Είναι;
• τα υποψήφια κλειδιά πρέπει να είναι μοναδικά εντός του τομέα και δεν πρέπει να περιέχουν NULL τιμές.
• το υποψήφιο κλειδί δεν πρέπει ποτέ να αλλάξει και πρέπει να διατηρεί την ίδια τιμή για μια συγκεκριμένη εμφάνιση μιας οντότητας.
Ο κύριος σκοπός ενός υποψηφίου κλειδιού είναι να βοηθήσει στον εντοπισμό μιας μεμονωμένης γραμμής από εκατομμύρια σειρές σε έναν μεγάλο πίνακα. Κάθε υποψήφιο κλειδί είναι κατάλληλο να γίνει πρωτεύον κλειδί. Ωστόσο, από όλα τα υποψήφια κλειδιά, το πιο σημαντικό και ειδικό κλειδί υποψηφίου θα γίνει το πρωτεύον κλειδί ενός πίνακα και είναι το καλύτερο μεταξύ των υποψηφίων κλειδιών.
Τι είναι το πρωτεύον κλειδί;
Ένα πρωτεύον κλειδί είναι το καλύτερο υποψήφιο κλειδί ενός πίνακα που χρησιμοποιείται για τον μοναδικό προσδιορισμό εγγραφών που είναι αποθηκευμένες σε έναν πίνακα. Όταν δημιουργούμε έναν νέο πίνακα σε μια βάση δεδομένων, μας ζητείται να επιλέξουμε ένα πρωτεύον κλειδί. Επομένως, η επιλογή ενός πρωτεύοντος κλειδιού για έναν πίνακα είναι η πιο κρίσιμη απόφαση που πρέπει να ληφθεί από έναν σχεδιαστή βάσης δεδομένων. Ο πιο σημαντικός περιορισμός, που πρέπει να λαμβάνεται υπόψη όταν αποφασίζεται ένα πρωτεύον κλειδί, είναι ότι η επιλεγμένη στήλη του πίνακα πρέπει να περιέχει μόνο μοναδικές τιμές και δεν πρέπει να περιέχει τιμές NULL. Μερικά από τα κύρια κλειδιά που χρησιμοποιούνται συνήθως κατά τη σχεδίαση πινάκων είναι ο Αριθμός Κοινωνικής Ασφάλισης (SSN), ο Αριθμός Ταυτότητας και ο Αριθμός Εθνικής Ταυτότητας (NIC).
Ο προγραμματιστής θα πρέπει να θυμάται να επιλέξει ένα πρωτεύον κλειδί προσεκτικά γιατί είναι δύσκολο να το αλλάξει. Επομένως, σύμφωνα με τους προγραμματιστές, η καλύτερη πρακτική για τη δημιουργία ενός πρωτεύοντος κλειδιού είναι η χρήση ενός πρωτεύοντος κλειδιού που δημιουργείται εσωτερικά, όπως το αναγνωριστικό εγγραφής που δημιουργήθηκε από τον τύπο δεδομένων AutoNumber της MS Access. Εάν προσπαθήσουμε να εισαγάγουμε μια εγγραφή σε έναν πίνακα με ένα πρωτεύον κλειδί που αντιγράφει μια υπάρχουσα εγγραφή, η εισαγωγή θα αποτύχει. Η τιμή του πρωτεύοντος κλειδιού δεν πρέπει να αλλάζει συνεχώς, επομένως είναι πιο σημαντικό να διατηρείτε ένα στατικό πρωτεύον κλειδί.
Ένα πρωτεύον κλειδί είναι το καλύτερο υποψήφιο κλειδί.
Ποια είναι η διαφορά μεταξύ του κύριου κλειδιού και του υποψηφίου κλειδιού;
• Ένα υποψήφιο κλειδί είναι η στήλη που χαρακτηρίζεται ως μοναδική, ενώ το πρωτεύον κλειδί είναι η στήλη που προσδιορίζει μοναδικά μια εγγραφή.
• Ένας πίνακας χωρίς υποψήφια κλειδιά δεν αντιπροσωπεύει καμία σχέση.
• Μπορεί να υπάρχουν πολλά υποψήφια κλειδιά για έναν πίνακα σε μια βάση δεδομένων, αλλά θα πρέπει να υπάρχει μόνο ένα πρωτεύον κλειδί για έναν πίνακα.
• Αν και το πρωτεύον κλειδί είναι ένα από τα υποψήφια κλειδιά, μερικές φορές είναι το μόνο υποψήφιο κλειδί.
• Μόλις επιλεγεί ένα πρωτεύον κλειδί, τα άλλα υποψήφια κλειδιά γίνονται μοναδικά.
• Πρακτικά ένα υποψήφιο κλειδί μπορεί να περιέχει NULL τιμές αν και προς το παρόν δεν περιέχει καμία τιμή. Επομένως, το υποψήφιο κλειδί δεν είναι κατάλληλο για πρωτεύον κλειδί επειδή το πρωτεύον κλειδί δεν πρέπει να περιέχει τιμές NULL.
• Ενδέχεται επίσης τα υποψήφια κλειδιά, τα οποία είναι μοναδικά αυτήν τη στιγμή, να περιέχουν διπλότυπες τιμές που αποκλείουν ένα υποψήφιο κλειδί από το να γίνει πρωτεύον κλειδί.
Σύνοψη:
Κύριο κλειδί έναντι υποψηφίου κλειδιού
Το υποψήφιο κλειδί και το πρωτεύον κλειδί είναι βασικά κλειδιά που χρησιμοποιούνται στο σχεδιασμό βάσεων δεδομένων προκειμένου να αναγνωρίζονται μοναδικά δεδομένα σε μια εγγραφή και να δημιουργούνται σχέσεις μεταξύ των πινάκων μιας βάσης δεδομένων. Ένας πίνακας πρέπει να περιέχει μόνο ένα πρωτεύον κλειδί και μπορεί να περιέχει περισσότερα από ένα υποψήφια κλειδιά. Σήμερα, οι περισσότερες βάσεις δεδομένων είναι σε θέση να δημιουργούν αυτόματα το δικό τους πρωτεύον κλειδί. Επομένως, το πρωτεύον κλειδί και τα υποψήφια κλειδιά παρέχουν πολυάριθμη υποστήριξη στα συστήματα διαχείρισης βάσεων δεδομένων.