Introduction to Relational Algebra pt3: Joins
Fivi Panopoulou - Sotiris Karras
Joins
· Cartesian Product (Καρτεσιανό Γινόμενο, “x”). Έστω relations R1 και R2. Τότε από την πράξη R1xR2 προκύπτει ένα relation R3, το οποίο έχει ως tuples το concatenation κάθε tuple της R1 με κάθε tuple της R2. Το schema του R3 είναι τα attributes του R1 και στην συνέχεια τα attributes του R2 με την σειρά που αυτά εμφανίζονται στα R1,R2.
· Θ – Join (Θήτα Join, “⋈θ”). Τελεστής, ο οποίος, δέχεται δύο relations R1,R2 ως ορίσματα και μία λογική συνθήκη θ και παράγει το relation R3 το οποίο είναι το καρτεσιανό γινόμενο των R1,R2 φιλτραρισμένο από την λογική συνθήκη. Πρακτικά, είναι μία σύνθετη πράξη η οποία αποτελείται από ένα καρτεσιανό γινόμενο πάνω στα R1,R2 ακολουθούμενη από ένα selection στο παραγόμενο αποτέλεσμα. Αν θεωρήσουμε R1,R2 όπως παραπάνω έχουμε:
· Natural Join (Φυσικό Join, “⋈”). Τελεστής, ο οποίος, δέχεται δύο relations R1,R2 ως ορίσματα και τα συνδέει στο κοινό τους attribute, απαλείφοντας στην συνέχεια τα duplicate tuples.
· Semi-Join (“⋉⋊”). To semi-join εκτελεί την ίδια πράξη με το natural join με την διαφορά ότι επιστρέφει μόνο τα tuples του R1, τα οποία ικανοποιούν την ισότητα στο κοινό γνώρισμα των R1, R2.
· Anti-Join (“⊳”). Όπως το semi-join μόνο που επιστρέφονται τα tuples του R1, τα οποία δεν ικανοποιούν την ισότητα στο κοινό γνώρισμα των R1,R2.
Σημείωση: Οι δύο παραπάνω πράξεις της σχεσιακής άλγεβρας αποτελούν την βάση της θεωρίας των κατανεμημένων συστημάτων διαχείρισης βάσεων δεδομένων.