Skip to main content

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

Εισαγωγή στις βάσεις δεδομένων - (E) μέρος 1ο (1/4) (Ιούνιος 2026)

Εισαγωγή στις βάσεις δεδομένων - (E) μέρος 1ο (1/4) (Ιούνιος 2026)
Anonim

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

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

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

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

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

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

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

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

Καθηγητές
Teacher_IDTeacher_Name
Teacher_001Carmen
Teacher_002Βερενίκη
Teacher_003Jorge

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

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

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

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

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

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

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

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

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

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

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

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

Δάσκαλοι και μαθήματα
Teacher_IDTeacher_NameΣειρά μαθημάτων
Teacher_001CarmenΒιολογία, Μαθηματικά
Teacher_002ΒερενίκηΜαθηματικά
Teacher_003JorgeΑγγλικά

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

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

Δάσκαλοι και μαθήματα
Teacher_IDTeacher_NameΣειρά μαθημάτων
Teacher_001CarmenΒιολογία
Teacher_001CarmenΜαθηματικά
Teacher_002ΒερενίκηΜαθηματικά
Teacher_003JorgeΑγγλικά

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

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

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