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

Πίνακας περιεχομένων:

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

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

Image
Image

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

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

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

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

Κατώτατη γραμμή

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

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

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

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

InstructorID Όνομα_Δασκάλου Μάθημα
001 John Doe Αγγλικά
002 Jane Schmoe Μαθηματικά

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

StudentID Student_Name Teacher_FK
0200 Lowell Smith 001
0201 Brian Short 001
0202 Corky Mendez 002
0203 Monica Jones 001

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

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

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

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

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

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

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

CREATE TABLE Teachers (InstructorID INT AUTO_INCREMENT PRIMARY KEY, Teacher_Name VARCHAR(100), Μάθημα VARCHAR(100));

Όταν δημιουργείτε τον πίνακα Students, δηλώνετε ότι η στήλη Teacher_FK είναι ξένο κλειδί που αναφέρεται στη στήλη InstructorID στον πίνακα Teachers':

CREATE TABLE Students (StudentID INT AUTO_INCREMENT PRIMARY KEY, Student_Name VARCHAR(100), Teacher_FK INT, FOREIGN RE_KEYT));

Χρήση των σχέσεων για συμμετοχή σε τραπέζια

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

Για παράδειγμα, αυτή η συνθήκη JOIN επιστρέφει Student_Name, Teacher_Name και Course, όπου το ξένο κλειδί στον πίνακα Students ταιριάζει με το κύριο κλειδί στον πίνακα Teachers:

SELECT Students. Student_Name, Teachers. Teacher_Name, Teachers. Course

FROM Students

INNER JOIN TeachersON Students. Teacher_FK=Teachers;

Αυτή η δήλωση δημιουργεί έναν πίνακα κάπως έτσι:

Όνομα_μαθητή Όνομα_Δασκάλου Μάθημα
Lowell Smith John Doe Αγγλικά
Brian Short John Doe Αγγλικά
Corky Mendez Jane Schmoe Μαθηματικά
Monica Jones John Doe Αγγλικά

Συνιστάται: