Συνδέσεις DBMS: Εσωτερικοί, ΘΗΤΑ, Εξωτερικοί, Equi Τύποι σύνδεσης Operaσεις
Τι είναι το Join στο DBMS;
Εγγραφείτε στο DBMS είναι μια δυαδική λειτουργία που σας επιτρέπει να συνδυάσετε το προϊόν ένωσης και την επιλογή σε μία μόνο δήλωση. Ο στόχος της δημιουργίας μιας συνθήκης σύνδεσης είναι ότι σας βοηθά να συνδυάσετε τα δεδομένα από δύο ή περισσότερους πίνακες DBMS. Οι πίνακες στο DBMS συσχετίζονται χρησιμοποιώντας το πρωτεύον κλειδί και τα ξένα κλειδιά.
Τύποι Συμμετοχής
Υπάρχουν κυρίως δύο τύποι συνδέσεων στο DBMS:
- Εσωτερικές συνδέσεις: Θήτα, Φυσικό, EQUI
- Εξωτερική σύνδεση: Αριστερά, Δεξιά, Πλήρης
Ας τα δούμε αναλυτικά:
Εσωτερική σύνδεση
Εσωτερική σύνδεση χρησιμοποιείται για την επιστροφή σειρών και από τους δύο πίνακες που ικανοποιούν τη δεδομένη συνθήκη. Είναι η πιο ευρέως χρησιμοποιούμενη λειτουργία σύνδεσης και μπορεί να θεωρηθεί ως προεπιλεγμένος τύπος σύνδεσης
Ένας εσωτερικός σύνδεσμος ή ισοσύνδεση είναι ένας σύνδεσμος που βασίζεται σε σύγκριση που χρησιμοποιεί συγκρίσεις ισότητας στο κατηγόρημα σύνδεσης. Ωστόσο, εάν χρησιμοποιείτε άλλους τελεστές σύγκρισης όπως ">", δεν μπορεί να ονομαστεί ισοζυγία.
Η εσωτερική ένωση χωρίζεται περαιτέρω σε τρεις υποτύπους:
- Θήτα εγγραφείτε
- Φυσική ένωση
- EQUI συμμετοχή
Εγγραφή Θήτα
Εγγραφή Θήτα σας επιτρέπει να συγχωνεύσετε δύο πίνακες με βάση τη συνθήκη που αντιπροσωπεύεται από το θήτα. Το Theta ενώνει το έργο για όλους τους τελεστές σύγκρισης. Συμβολίζεται με σύμβολο θ. Η γενική περίπτωση της λειτουργίας JOIN ονομάζεται ένωση θήτα.
Σύνταξη:
A ⋈θ B
Το Theta Join μπορεί να χρησιμοποιήσει οποιεσδήποτε συνθήκες στα κριτήρια επιλογής.
Εξετάστε τους παρακάτω πίνακες.
Πίνακας Α | Πίνακας Β | |||
---|---|---|---|---|
στήλη 1 | στήλη 2 | στήλη 1 | στήλη 2 | |
1 | 1 | 1 | 1 | |
1 | 2 | 1 | 3 |
Για παράδειγμα:
A ⋈ A.column 2 > B.column 2 (B)
A ⋈ A.στήλη 2 > B.στήλη 2 (Β) | |
---|---|
στήλη 1 | στήλη 2 |
1 | 2 |
EQUI Εγγραφείτε
EQUI Εγγραφείτε γίνεται όταν μια ένωση Θήτα χρησιμοποιεί μόνο τη συνθήκη ισοδυναμίας. Η σύνδεση EQUI είναι η πιο δύσκολη λειτουργία για αποτελεσματική εφαρμογή σε ένα RDBMS, και ένας λόγος για τον οποίο τα RDBMS έχουν σημαντικά προβλήματα απόδοσης.
Για παράδειγμα:
A ⋈ A.column 2 = B.column 2 (B)
A ⋈ A.στήλη 2 = B.στήλη 2 (Β) | |
---|---|
στήλη 1 | στήλη 2 |
1 | 1 |
Φυσική ένωση (⋈)
Φυσική συμμετοχή δεν χρησιμοποιεί κανέναν από τους τελεστές σύγκρισης. Σε αυτόν τον τύπο σύνδεσης, τα χαρακτηριστικά πρέπει να έχουν το ίδιο όνομα και τομέα. Στο Natural Join, θα πρέπει να υπάρχει τουλάχιστον ένα κοινό χαρακτηριστικό μεταξύ δύο σχέσεων.
Εκτελεί επιλογή σχηματίζοντας ισότητα σε εκείνα τα χαρακτηριστικά που εμφανίζονται και στις δύο σχέσεις και εξαλείφει τα διπλά χαρακτηριστικά.
Παράδειγμα:
Εξετάστε τους παρακάτω δύο πίνακες
C | |
---|---|
Σε | Τετράγωνα |
2 | 4 |
3 | 9 |
D | |
---|---|
Σε | Κύβος |
2 | 8 |
3 | 18 |
C ⋈ D
Γ ⋈ Δ | ||
---|---|---|
Σε | Τετράγωνα | Κύβος |
2 | 4 | 8 |
3 | 9 | 18 |
Εξωτερική συμμετοχή
An Εξωτερική συμμετοχή δεν απαιτεί κάθε εγγραφή στους δύο πίνακες ένωσης να έχει αντίστοιχη εγγραφή. Σε αυτόν τον τύπο ένωσης, ο πίνακας διατηρεί κάθε εγγραφή ακόμα κι αν δεν υπάρχει άλλη αντίστοιχη εγγραφή.
Τρεις τύποι εξωτερικών ενώσεων είναι:
- Αριστερά εξωτερική εγγραφή
- Δεξιά εξωτερική συμμετοχή
- Πλήρης εξωτερική συμμετοχή
Αριστερή εξωτερική ένωση (A ⟕ B)
Αριστερά εξωτερική εγγραφή επιστρέφει όλες τις σειρές από τον πίνακα στα αριστερά ακόμα κι αν δεν έχουν βρεθεί αντίστοιχες γραμμές στον πίνακα στα δεξιά. Όταν δεν βρεθεί αντίστοιχη εγγραφή στον πίνακα στα δεξιά, επιστρέφεται NULL.
Εξετάστε τους παρακάτω 2 πίνακες
A | |
---|---|
Σε | Τετράγωνα |
2 | 4 |
3 | 9 |
4 | 16 |
B | |
---|---|
Σε | Κύβος |
2 | 8 |
3 | 18 |
5 | 75 |
A B
Α ⋈ Β | ||
---|---|---|
Σε | Τετράγωνα | Κύβος |
2 | 4 | 8 |
3 | 9 | 18 |
4 | 16 | - |
Δεξιά εξωτερική ένωση ( A ⟖ B )
Δεξιά εξωτερική συμμετοχή επιστρέφει όλες τις στήλες από τον πίνακα στα δεξιά, ακόμα κι αν δεν έχουν βρεθεί αντίστοιχες γραμμές στον πίνακα στα αριστερά. Όπου δεν έχουν βρεθεί αντιστοιχίες στον πίνακα στα αριστερά, επιστρέφεται NULL. Η ΔΕΞΙΑ Εξωτερική ΣΥΝΔΕΣΗ είναι το αντίθετο της ΑΡΙΣΤΕΡΗΣ ΣΥΝΔΕΣΗΣ
Στο παράδειγμά μας, ας υποθέσουμε ότι πρέπει να λάβετε τα ονόματα των μελών και των ταινιών που έχουν νοικιάσει. Τώρα έχουμε ένα νέο μέλος που δεν έχει νοικιάσει ακόμα καμία ταινία.
A B
Α ⋈ Β | ||
---|---|---|
Σε | Κύβος | Τετράγωνα |
2 | 8 | 4 |
3 | 18 | 9 |
5 | 75 | - |
Πλήρης εξωτερική ένωση ( A ⟗ B)
Σε Πλήρης εξωτερική συμμετοχή , όλες οι πλειάδες και από τις δύο σχέσεις περιλαμβάνονται στο αποτέλεσμα, ανεξάρτητα από τη συνθήκη αντιστοίχισης.
Παράδειγμα:
A B
Α ⋈ Β | ||
---|---|---|
Σε | Τετράγωνα | Κύβος |
2 | 4 | 8 |
3 | 9 | 18 |
4 | 16 | - |
5 | - | 75 |
Σύνοψη
- Υπάρχουν κυρίως δύο τύποι ενώσεων DBMS 1) Εσωτερική ένωση 2) Εξωτερική ένωση
- Ένας εσωτερικός σύνδεσμος είναι η ευρέως χρησιμοποιούμενη λειτουργία σύνδεσης και μπορεί να θεωρηθεί ως προεπιλεγμένος τύπος σύνδεσης.
- Το Inner Join χωρίζεται περαιτέρω σε τρεις υποτύπους: 1) Theta Join 2) Natural Join 3) EQUI Join
- Το Theta Join σάς επιτρέπει να συγχωνεύσετε δύο πίνακες με βάση την συνθήκη που αντιπροσωπεύεται από το θήτα
- Όταν μια ένωση θήτα χρησιμοποιεί μόνο συνθήκη ισοδυναμίας, γίνεται ισοδύναμη ένωση.
- Η φυσική ένωση δεν χρησιμοποιεί κανέναν από τους τελεστές σύγκρισης.
- Μια εξωτερική ένωση δεν απαιτεί κάθε εγγραφή στους δύο πίνακες ένωσης να έχει αντίστοιχη εγγραφή.
- Η εξωτερική ένωση χωρίζεται περαιτέρω σε τρεις υποτύπους: 1) Αριστερή εξωτερική ένωση 2) δεξιά εξωτερική ένωση 3) πλήρης εξωτερική ένωση
- Το LEFT Outer Join επιστρέφει όλες τις σειρές από τον πίνακα στα αριστερά, ακόμα κι αν δεν έχουν βρεθεί αντίστοιχες σειρές στον πίνακα στα δεξιά.
- Το RIGHT Outer Join επιστρέφει όλες τις στήλες από τον πίνακα στα δεξιά, ακόμα κι αν δεν έχουν βρεθεί αντίστοιχες γραμμές στον πίνακα στα αριστερά.
- Σε μια πλήρη εξωτερική ένωση, όλες οι πλειάδες και από τις δύο σχέσεις περιλαμβάνονται στο αποτέλεσμα, ανεξάρτητα από τη συνθήκη αντιστοίχισης.