Εισαγωγή στις σχέσεις βάσης δεδομένων

Ο όρος βάσης δεδομένων "σχεσιακή" ή "σχέση" περιγράφει τον τρόπο σύνδεσης των δεδομένων σε πίνακες.

Οι νεοεισερχόμενοι στον κόσμο των βάσεων δεδομένων έχουν συχνά δυσκολία να δουν τη διαφορά μεταξύ μιας βάσης δεδομένων και ενός υπολογιστικού φύλλου. Βλέπουν πίνακες δεδομένων και αναγνωρίζουν ότι οι βάσεις δεδομένων σας επιτρέπουν να οργανώνετε και να αναζητάτε δεδομένα με νέους τρόπους, αλλά δεν κατανοείτε τη σημασία των σχέσεων μεταξύ των δεδομένων που δίνουν το όνομα της τεχνολογίας των σχεσιακών βάσεων δεδομένων.

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

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

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

Σχέσεις αυτοαναφοράς: μια ειδική περίπτωση

Οι σχέσεις αυτοαναφοράς προκύπτουν όταν υπάρχει μόνο ένας πίνακας. Ένα κοινό παράδειγμα είναι ένας πίνακας υπαλλήλων που περιέχει πληροφορίες σχετικά με τον επόπτη κάθε υπαλλήλου. Κάθε επόπτης είναι επίσης υπάλληλος και έχει το δικό του επιβλέποντα. Σε αυτή την περίπτωση, υπάρχει μια σχέση απόλυτης αυτοαναφοράς, καθώς κάθε εργαζόμενος έχει έναν επόπτη, αλλά κάθε επόπτης μπορεί να έχει περισσότερους από έναν εργαζόμενους.

Δημιουργία σχέσεων με ξένα κλειδιά

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

Εξετάστε και πάλι το παράδειγμα των πινάκων των εκπαιδευτικών και των σπουδαστών. Ο πίνακας "Δάσκαλοι" περιέχει μόνο μια ταυτότητα, ένα όνομα και μια στήλη μαθήματος:

Καθηγητές
InstructorID Teacher_Name Σειρά μαθημάτων
001 John Doe Αγγλικά
002 Jane Schmoe Μαθηματικά

Ο πίνακας μαθητών περιλαμβάνει ένα αναγνωριστικό, όνομα και μια ξένη στήλη κλειδιού:

Φοιτητές
StudentID Ονομα μαθητή Teacher_FK
0200 Lowell Smith 001
0201 Brian Short 001
0202 Κορκ Μέντεζ 002
0203 Monica Jones 001

Η στήλη Teacher_FK στον πίνακα μαθητών αναφέρει την τιμή του πρωτεύοντος κλειδιού ενός εκπαιδευτή στον πίνακα Δασκάλους.

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

Σημειώστε ότι αυτοί οι δύο πίνακες απεικονίζουν μία σχέση μεταξύ των καθηγητών και των φοιτητών.

Σχέσεις και ακεραιότητα αναφοράς

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

Εφαρμογή σχέσεων

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

Αν γράφετε απευθείας SQL, θα πρέπει πρώτα να δημιουργήσετε τον πίνακα Καθηγητές, δηλώνοντας μια στήλη ταυτότητας ως πρωτεύον κλειδί:

ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ Καθηγητές (

ΔιδάσκωνID INT AUTO_INCREMENT PRIMARY KEY,
Teacher_Name VARCHAR (100),
Μάθημα VARCHAR (100)
) ·

Όταν δημιουργείτε τον πίνακα "Φοιτητές", δηλώνετε ότι η στήλη Teacher_FK είναι ένα ξένο κλειδί που αναφέρει τη στήλη InstructorID στον πίνακα "Δάσκαλοι":

Δημιουργία πίνακα μαθητών (
ID σπουδαστών INT AUTO_INCREMENT PRIMARY KEY,
Όνομα σπουδαστή VARCHAR (100), Teacher_FK INT,
ΕΞΩΤΕΡΙΚΟ ΚΕΝΤΡΟ (Teacher_FK) ΒΙΒΛΙΟΓΡΑΦΙΑ Καθηγητές (InstructorID))
) ·

Χρησιμοποιώντας σχέσεις για να εγγραφείτε στους πίνακες

Μόλις δημιουργήσετε μία ή περισσότερες σχέσεις στη βάση δεδομένων σας, μπορείτε να αξιοποιήσετε την εξουσία τους χρησιμοποιώντας ερωτήματα SQL JOIN για να συνδυάσετε πληροφορίες από πολλούς πίνακες. Ο συνηθέστερος τύπος σύνδεσης είναι μια SQL INNER JOIN ή μια απλή σύνδεση. Αυτός ο τύπος εγγραφής επιστρέφει όλες τις εγγραφές που πληρούν τις προϋποθέσεις σύνδεσης από πολλούς πίνακες. Για παράδειγμα, αυτή η συνθήκη JOIN θα επιστρέψει το Student_Name, Teacher_Name και Course όπου το ξένο κλειδί στον πίνακα μαθητών αντιστοιχεί στο πρωτεύον κλειδί στον πίνακα Teachers:

SELECT Students.Student_Name, Teachers.Teacher_Name, Εκπαιδευτικοί
ΑΠΟ Φοιτητές
ΕΣΩΤΕΡΙΚΗ ΣΥΝΔΕΣΗ Καθηγητές
ON Students.Teacher_FK = Teachers.InstructorID;

Αυτή η δήλωση παράγει ένα τραπέζι σαν αυτό:

Επιστραφέν Πίνακας από τη Δήλωση Συμμετοχής SQL

Student_NameTeacher_NameCourseLowell SmithJohn DoeEnglishBrian ShortJohn DoeΕγχειρίδιοCorky MendezJane SchmoeMathMonica JonesJohn DoeΕλληνικά