Βάσεις Δεδομένων

Οι βάσεις δεδομένων είναι η ραχοκοκαλιά όλων των σχεσιακών βάσεων δεδομένων

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

Πώς λειτουργεί ένα ξένο κλειδί για να δημιουργήσει μια σχέση

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

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

Για παράδειγμα, εξετάστε αυτούς τους δύο πίνακες που προσδιορίζουν ποιος δάσκαλος διδάσκει ποια πορεία.

Εδώ, το κύριο κλειδί του πίνακα μαθημάτων είναι το Course_ID. Το ξένο κλειδί είναι το Teacher_ID:

ΚΥΚΛΟΣ ΜΑΘΗΜΑΤΩΝ
Αναγνωριστικό_χρήστη Course_Name Teacher_ID
Course_001 Βιολογία Teacher_001
Course_002 Μαθηματικά Teacher_001
Course_003 Αγγλικά Teacher_003

Μπορείτε να δείτε ότι το ξένο κλειδί στα Μαθήματα ταιριάζει με ένα πρωτεύον κλειδί στους Καθηγητές:

Καθηγητές
Teacher_ID Teacher_Name
Teacher_001 Carmen
Teacher_002 Βερενίκη
Teacher_003 Jorge

Μπορούμε να πούμε ότι το ξένο κλειδί Teacher_ID βοήθησε να δημιουργηθεί μια σχέση μεταξύ των μαθημάτων και των πινάκων των εκπαιδευτικών.

Τύποι σχέσεων βάσης δεδομένων

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

One-to-One : Αυτός ο τύπος σχέσης επιτρέπει μόνο μία εγγραφή από κάθε πλευρά της σχέσης.

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

Ένα προς πολλούς : Η σχέση ενός με πολλούς επιτρέπει σε μία εγγραφή σε έναν πίνακα να σχετίζεται με πολλαπλές εγγραφές σε άλλο πίνακα.

Εξετάστε μια επιχείρηση με μια βάση δεδομένων που έχει πίνακες πελατών και παραγγελιών.

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

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

Και πάλι, η σχέση μεταξύ του πίνακα Πελάτες και Παραγγελίες είναι ένας προς πολλούς, αλλά εξετάστε τη σχέση μεταξύ του πίνακα Παραγγελίες και Προϊόντα. Μια παραγγελία μπορεί να περιέχει πολλά προϊόντα και ένα προϊόν θα μπορούσε να συνδεθεί με πολλαπλές παραγγελίες: πολλοί πελάτες ενδέχεται να υποβάλουν μια παραγγελία που περιέχει μερικά από τα ίδια προϊόντα. Αυτό το είδος σχέσης απαιτεί τουλάχιστον τρεις πίνακες.

Τι είναι οι Βάσεις Δεδομένων Βάσης Δεδομένων;

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

Δάσκαλοι και μαθήματα
Teacher_ID Teacher_Name Σειρά μαθημάτων
Teacher_001 Carmen Βιολογία, Μαθηματικά
Teacher_002 Βερενίκη Μαθηματικά
Teacher_003 Jorge Αγγλικά

Αυτός ο σχεδιασμός είναι άκαμπτος και παραβιάζει την πρώτη αρχή της κανονικοποίησης της βάσης δεδομένων, Πρώτη Κανονική Μορφή (1NF), η οποία δηλώνει ότι κάθε κυψέλη πίνακα θα πρέπει να περιέχει ένα ενιαίο, διακριτό κομμάτι δεδομένων.

Ή ίσως αποφασίσαμε απλά να προσθέσουμε ένα δεύτερο ρεκόρ για την Carmen, προκειμένου να επιβάλουμε το 1NF:

Δάσκαλοι και μαθήματα
Teacher_ID Teacher_Name Σειρά μαθημάτων
Teacher_001 Carmen Βιολογία
Teacher_001 Carmen Μαθηματικά
Teacher_002 Βερενίκη Μαθηματικά
Teacher_003 Jorge Αγγλικά

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

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

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