Βάσεις Δεδομένων Σχεσιακή Άλγεβρα Φροντιστήριο 4 ο 13-11-2008
Σύνδεση με τα Προηγούμενα (Σχεσιακή) Βάση Δεδομένων ένα σύνολο από σχέσεις (πίνακες) Γραμμές: πλειάδες Στήλες: Γνωρίσματα Βαθμός σχέσης: πλήθος γνωρισμάτων Στιγμιότυπο σχέσης r(r): σύνολο από πλειάδες όπου κάθε πλειάδα έχει t τιμές (t = v 1, v 2,, v n ) και κάθε τιμή είναι ένα στοιχείο dom(ai) (πεδίο ορισμού για το γνώρισμα Α ι ) ή null Κλειδί υπερ-κλειδί, υποψήφιο, πρωτεύον
ΣΧΕΣΙΑΚΗ ΑΛΓΕΒΡΑ
Ορισμός Σχεσιακή Άλγεβρα: σύνολο πράξεων του σχεσιακού μοντέλου που όταν εφαρμοστούν σε πίνακες (σχέσεις) μας δίνουν νέες σχέσεις από τις υπάρχουσες σχέσεις της ΒΔ Μια ερώτηση εφαρμόζεται σε ένα στιγμιότυπο σχέσης και το αποτέλεσμα της ερώτησης είναι πάλι ένα στιγμιότυπο σχέσης Είναι Διαδικαστική γλώσσα ερωτημάτων Περιγράφεται ο τρόπος που θα ανακτηθούν δεδομένα από την βάση.
Πράξεις Σχεσιακής Άλγεβρας 1. Πράξεις σχεσιακής ΒΔ (αφορούν τμήματα πλειάδων) ΕΠΙΛΟΓΗ (SELECT) : σ Ε (Α) ΠΡΟΒΟΛΗ (PROJECT) : π Σ1,Σ2,...,Σn (Α) 2. Μετονομασία γνωρισμάτων ΑΝΑΘΕΣΗ (ASSIGNMENT) Α Β ΜΕΤΟΝΟΜΑΣΙΑ (RENAME) ρ S(B1,..Bn) (R) 3. Πράξεις συνόλων (αφορούν σύνολα πλειάδων) ΕΝΩΣΗ (UNION) : Α Β ΤΟΜΗ (INTERSECTION) : Α Β ΔΙΑΦΟΡΑ (DIFFERENCE) : Α-Β 4. Πράξεις που συνδυάζουν πλειάδες από δύο σχέσεις ΚΑΡΤΕΣΙΑΝΟ ΓΙΝΟΜΕΝΟ (CARTESIAN PRODUCT) : Α X B ΣΥΝΕΝΩΣΗ (JOIN) Α Β ΕΣΩΤΕΡΙΚΗ ΣΥΝΕΝΩΣΗ (INNER JOIN) Α <συνθήκη συνένωσης> Β ΕΞΩΤΕΡΙΚΗ ΣΥΝΕΝΩΣΗ Πλήρης (FULL OUTER JOIN) Αριστερή (LEFT OUTER JOIN) Δεξιά (RIGHT OUTER JOIN) ΔΙΑΙΡΕΣΗ (Division) : A B
Η Πράξη της Επιλογής (select) Επιλογή ενός υποσυνόλου των πλειάδων μιας σχέσης που ικανοποιεί μια συνθήκη επιλογής σ <συνθήκη επιλογής> (<όνομα σχέσης>)
Επιλογή (select) σ = τελεστής της πράξης ΕΠΙΛΟΓΗ <συνθήκη επιλογής> = Boolean έκφραση για τα γνωρίσματα της σχέσης Λογική έκφραση = προτάσεις της μορφής : <όνομα γνωρίσματος> <τελεστής σύγκρισης> <σταθερή τιμή> <όνομα γνωρίσματος> <τελεστής σύγκρισης> <όνομα γνωρίσματος> Τελεστές σύγκρισης: σ <συνθήκη επιλογής> (<όνομα σχέσης>) AND, OR, NOT (για γενικά SELECT) =, <,, >,, (για διατεταγμένες τιμές γνωρισμάτων) =, (για μη διατεταγμένες τιμές γνωρισμάτων)
Παράδειγμα Ταινία Τίτλος Έτος Διάρκεια Είδος Παίζει Όνομα-Ηθοποιού Τίτλος Έτος Ηθοποιός Όνομα Διεύθυνση Έτος-Γέννησης Σύζυγος-Ηθοποιού
Επιλογή (select) τίτλος χρόνος διάρκεια είδος Star Wars 1997 124 έγχρωμη Mighty Ducks 1991 104 έγχρωμη Wayne s World 1992 95 έγχρωμη 1. Ταινίες με διάρκεια μεγαλύτερη των 100 λεπτών) σ διάρκεια > 100 (Ταινία) τίτλος χρόνος διάρκεια είδος Star Wars 1997 124 έγχρωμη Mighty Ducks 1991 104 έγχρωμη
Επιλογή (select) τίτλος χρόνος διάρκεια είδος Star Wars 1997 124 έγχρωμη Mighty Ducks 1991 104 έγχρωμη Wayne s World 1992 95 έγχρωμη 2. Ταινίες με διάρκεια μεγαλύτερη των 100 λεπτών που γυρίστηκαν μετά το 1995 σ διάρκεια > 100 AND χρόνος > 1995 (Ταινία) τίτλος χρόνος διάρκεια είδος Star Wars 1997 124 έγχρωμη
Επιλογή (select) Η <συνθήκη επιλογής> εφαρμόζεται ανεξάρτητα σε κάθε πλειάδα και αν είναι true τότε η πλειάδα επιλέγεται Ο τελεστής σ (ΕΠΙΛΟΓΗ) είναι μοναδιαίος (δηλ. εφαρμόζεται σε μία σχέση) Ο βαθμός της σχέσης που προκύπτει μετά από μια πράξη ΕΠΙΛΟΓΗΣ είναι ίδιος με το βαθμό της αρχικής σχέσης στην οποία εφαρμόστηκε (δηλ. έχει τα ίδια γνωρίσματα) Το πλήθος των πλειάδων της προκύπτουσας σχέσης είναι μικρότερο ή ίσο με το πλήθος των πλειάδων της αρχικής (% πλειάδων που επιλέγονται selectivity)
Επιλογή (select) Ιδιότητες Αντιμεταθετική σ <συνθ1> (σ <συνθ2> (R)) = σ <συνθ2> (σ <συνθ1> (R)) σ <συνθ1> (σ <συνθ2> ( σ <συνθn> (R)..)) = σ <συνθ1> AND < συνθ2 >... AND < συνθn > (R)
Η Πράξη της Προβολής (Project) Επιλέγει ορισμένες στήλες (δηλ. γνωρίσματα) από τον πίνακα σχέσης π <λίστα γνωρισμάτων> (<όνομα σχέσης>)
Προβολή (Project) π <λίστα γνωρισμάτων> (<όνομα σχέσης>) π = τελεστής πράξης ΠΡΟΒΟΛΗ <λίστα γνωρισμάτων> = λίστα από γνωρίσματα της αρχικής σχέσης R Η προκύπτουσα σχέση έχει μόνο τα γνωρίσματα που προσδιορίζονται στη <λίστα γνωρισμάτων> με την ίδια διάταξη που προσδιορίζονται στη λίστα
Παράδειγμα τίτλος χρόνος διάρκεια είδος Star Wars 1997 124 έγχρωμη Mighty Ducks 1991 104 έγχρωμη Wayne s World 1992 95 έγχρωμη
Παράδειγμα 1. Τίτλος, χρόνος, διάρκεια των ταινιών π τίτλος, χρόνος, διάρκεια (Ταινία) τίτλος χρόνος διάρκεια Star Wars 1997 124 Mighty Ducks 1991 104 Wayne s World 1992 95
Παράδειγμα 2. Είδος ταινιών π είδος (Ταινία) είδος έγχρωμη Προσοχή: απαλοιφή διπλότυπων ΠΡΟΣΟΧΗ Με βάση τον ορισμό το αποτέλεσμα πρέπει να είναι σχέση (δηλ.σύνολο πλειάδων)
Διπλότυπα Αν η λίστα γνωρισμάτων περιλαμβάνει μόνο γνωρίσματα της αρχικής σχέσης που δεν είναι κλειδιά, ενδέχεται να εμφανιστούν διπλές πλειάδες στο αποτέλεσμα της πράξης ΠΡΟΒΟΛΗ Η πράξη ΠΡΟΒΟΛΗ απομακρύνει διπλότυπες πλειάδες έτσι ώστε το αποτέλεσμά της να είναι μια έγκυρη σχέση
Προβολή (Project) Τα γνωρίσματα έχουν την ίδια διάταξη Οτελεστήςπ είναι μοναδιαίος Ο βαθμός της σχέσης είναι ίσος με τον αριθμό γνωρισμάτων στη <λίστα γνωρισμάτων> Το πλήθος των πλειάδων της προκύπτουσας σχέσης είναι μικρότερο ή ίσο με το πλήθος των πλειάδων της αρχικής Αν η λίστα γνωρισμάτων προβολής είναι υπερκλειδί της R(δηλ. περιλαμβάνει ένα κλειδί της R) το αποτέλεσμα έχει το ίδιο πλήθος πλειάδων με την R
Προβολή (Project) Ιδιότητες ΙΣΧΥΕΙ: π <λίστα1> (π <λίστα2> (R)) = π <λίστα1> (R) ΔΕΝ είναι αντιμεταθετική: Γιατί; Α Β 1 5 2 7 3 8 Β Α 5 1 7 2 8 3
Παράδειγμα Select - Project Παράδειγμα ιάρκειες μεγαλύτερες των 100 λεπτών π διάρκεια (σ διάρκεια > 100 (Ταινία)) διάρκεια 124 104
Ανάθεση (Assignment) Όταν έχουμε μια πολύπλοκη ακολουθία πράξεων μπορούμε να «μετονομάσουμε» τις ενδιάμεσες σχέσεις R Παράδειγμα ΜΕΓΑΛΗΣ_ ΙΑΡΚΕΙΑΣ σ διάρκεια > 100 (Ταινία)
Μετονομασία (Rename) Με την πράξη RENAME μπορούμε να μετονομάσουμε και τα γνωρίσματα της σχέσης που προκύπτει από την εφαρμογή μιας πράξης σχεσιακής άλγεβρας R(λίστα-με-νέα-ονόματα) Παράδειγμα ΜΕΓΑΛΗΣ_ ΙΑΡΚΕΙΑΣ (όνομα ταινίας, έτος παραγωγής, διάρκεια, είδος) σ διάρκεια > 100 (Ταινία) όνομα ταινίας έτος παραγωγής διάρκεια είδος Star Wars 1997 124 έγχρωμη Mighty Ducks 1991 104 έγχρωμη
Μετονομασία (Rename) Με την πράξη RENAME μπορούμε να μετονομάσουμε και τις ενδιάμεσες σχέσεις και τα ονόματα των γνωρισμάτων τους ΗπράξηRENAME συμβολίζεται ρ S (B1, B2,, Bn) (R) : (μετονομάζει τη σχέση και τα γνωρίσματά της) ρ S (R): (μετονομάζειμόνοτησχέση) ρ (B1,B2, Bn) (R): (μετονομάζει μόνο τα γνωρίσματα)
Πράξεις Συνόλου Πράξεις συνόλου Ένωση ( ) Τομή ( ) ιαφορά (-) Οι πράξεις συνόλου είναι δυαδικές, δηλ. εφαρμόζονται σε δύο σχέσεις Για να επιτευχθεί αυτό πρέπει οι δύο σχέσεις να έχουν τον ίδιο τύπο πλειάδων συνθήκη συμβατότητας ως προς την ένωση, δηλ. 1. Έχουν τον ίδιο βαθμό n(πλήθος γνωρισμάτων) 2. i, dom(a i ) = dom(b i )(ίδιο πεδίο ορισμού γνωρισμάτων)
Πράξεις Συνόλου ΕΝΩΣΗ ΤΟΜΗ Η πράξη ένωσης μεταξύ δύο σχέσεων παράγει μια σχέση που περιλαμβάνει όλες τις πλειάδες που ανήκουν είτε στην 1 η είτε στη 2 η είτε και τις δύο αρχικές σχέσεις Η πράξη τομής μεταξύ δύο σχέσεων παράγει μια σχέση που περιλαμβάνει όλες τις πλειάδες που ανήκουν και στην 1 η και στη 2 η σχέση ΔΙΑΦΟΡΑ Η πράξη διαφοράς μεταξύ δύο σχέσεων παράγει μια σχέση που περιλαμβάνει όλες τις πλειάδες που ανήκουν στην 1 η και όχι στη 2 η
Πράξεις Συνόλου Σύμβαση: η προκύπτουσα σχέση έχει τα ίδια ονόματα γνωρισμάτων με την πρώτη σχέση Απαλοιφή διπλοτύπων
Παράδειγμα - Άσκηση R S Α Β 1 2 1 4 2 1 6 5 A B 2 3 2 5 1 4 1.σ Α > Β (R) 2. Π Α (R) Α Β 2 1 6 5 3. R S Α Β 1 2 1 4 2 1 2 3 2 5 6 5 Α 1 2 6 4. R S Α Β 1 4 5. S - R Α Β 2 3 2 5 6. R - S Α Β 1 2 2 1 6 5
Πράξεις Συνόλου Ιδιότητες Η ΕΝΩΣΗ και η ΤΟΜΗ είναι αντιμεταθετικές R U S = S U R και R S = S R και προσεταιριστικές R U (S U T) = (R U S) U T και R (S T) = (R S) T Η ΔΙΑΦΟΡΑ δεν είναι αντιμεταθετική R S S R
Καρτεσιανό Γινόμενο (Cartesian product ή cross join) Συμβολίζεται με x Είναι δυαδική πράξη συνόλων Οι σχέσεις στις οποίες εφαρμόζεται δε χρειάζεται ναείναισυμβατέςωςπροςτηνένωση, δηλ. δε χρειάζεται να έχουν τον ίδιο τύπο πλειάδων R(A 1, A 2,, A n ) x S(B 1, B 2,, B m ) αποτέλεσμα η σχέση Q: Q(A 1, A 2,, A n, B 1, B 2,, B m ) n + m γνωρίσματα με αυτή τη σειρά!! n R * n S πλειάδες
Καρτεσιανό Γινόμενο R Α Β 1 2 3 4 S B C D 2 5 6 4 7 8 9 10 11 R x S A R.B S.B C D 1 2 2 5 6 1 2 4 7 8 1 2 9 10 11 3 4 2 5 6 3 4 4 7 8 3 4 9 10 11
Παράδειγμα Ταινία Τίτλος Έτος Διάρκεια Είδος Παίζει Όνομα-Ηθοποιού Τίτλος Έτος Ηθοποιός Όνομα Διεύθυνση Έτος-Γέννησης Σύζυγος-Ηθοποιού
Καρτεσιανό Γινόμενο Τίτλος Έτος ιάρκεια Είδος Παραμύθι 1990 90 Έγχρωμη Παραμύθι 1930 120 Ασπρόμαυρη Φυγή 2000 98 Ασπρόμαυρη Άνοιξη 1998 101 Έγχρωμη Ταινία Όνομα-Ηθοποιού Τίτλος Έτος Αλίκη Παππά Παραμύθι 1930 Μαρία Γεωργίου Παραμύθι 1990 Κώστας Χρήστου Φυγή 2000 Μαρία Στεργίου Άνοιξη 1998 Παίζει
Ταινία Ταινία.Τίτλος Ταινία.Έτος ιάρκεια Είδος Παραμύθι 1990 90 Έγχρωμη Παραμύθι 1930 120 Ασπρόμαυρη Φυγή 2000 98 Ασπρόμαυρη Άνοιξη 1998 101 Έγχρωμη Παίζει Όνομα-Ηθοποιού Παίζει.Τίτλος Παίζει.Έτος Αλίκη Παππά Παραμύθι 1930 Μαρία Γεωργίου Παραμύθι 1990 Κώστας Χρήστου Φυγή 2000 Μαρία Στεργίου Άνοιξη 1998 Κατερίνα Αποστόλου Φυγή 2000 Ταινία.Τίτλος Ταινία.Έτος ιάρκεια Είδος Όνομα-Ηθοποιού Παίζει.Τίτλος Παίζει.Έτος Παραμύθι 1990 90 Έγχρωμη Αλίκη Παππά Παραμύθι 1930 Παραμύθι 1990 90 Έγχρωμη Μαρία Γεωργίου Παραμύθι 1990 Παραμύθι 1990 90 Έγχρωμη Κώστας Χρήστου Φυγή 2000 Παραμύθι 1990 90 Έγχρωμη Μαρία Στεργίου Άνοιξη 1998 Παραμύθι 1990 90 Έγχρωμη Κατερίνα Αποστόλου Φυγή 2000 Παραμύθι 1930 120 Ασπρόμαυρη Αλίκη Παππά Παραμύθι 1930 Παραμύθι 1990 120 Ασπρόμαυρη Μαρία Γεωργίου Παραμύθι 1990 Παραμύθι 1930 120 Ασπρόμαυρη Κώστας Χρήστου Φυγή 2000 Παραμύθι 1930 120 Ασπρόμαυρη Μαρία Στεργίου Άνοιξη 1998 Παραμύθι 1930 120 Ασπρόμαυρη Κατερίνα Αποστόλου Φυγή 2000 Φυγή 2000 98 Ασπρόμαυρη Αλίκη Παππά Παραμύθι 1930
Καρτεσιανό Γινόμενο Παράδειγμα Για κάθε ηθοποιό το όνομα και τον τίτλο-έτος για όλες τις έγχρωμες ταινίες στις οποίες παίζει π όνομα, τίτλος, έτος (σ είδος = έγχρωμη AND Παίζει.τίτλος = Ταινία.τίτλος AND Παίζει.έτος = Ταινία.έτος (Παίζει x Ταινία)) ή π όνομα, τίτλος, έτος (σ Παίζει.τίτλος = Ταινία.τίτλος AND Παίζει.έτος =Ταινία.έτος (Παίζει x (σ είδος = έγχρωμη (Ταινία)))
Συνένωση (join) Συνένωση (ή θήτα συνένωση) (join) Συνδυάζει σχετιζόμενες πλειάδες από δύο σχέσεις R <συνθήκη συνένωσης> S ( σ <συνθήκη συνένωσης> (R x S) )
Συνένωση (join) Τελεστής πράξης ΣΥΝΕΝΩΣΗ <συνθήκη συνένωσης> = προτάσεις της μορφής =, >, <,,, A i <τελεστής σύγκρισης> B j όπου A i γνώρισμα της R, συνδυασμένες με AND B j γνώρισμα της S, dom(a i ) = dom(b j )
Συνένωση (join) Αποτέλεσμα συνένωσης: σχέση Q με n + m γνωρίσματα Q(A 1, A 2,, A n, B 1, B 2,, B m ) με αυτή τη σειρά. Η Q έχει μία πλειάδα από κάθε συνδυασμό πλειάδων μία από την R και μία από την S- όταν ο συνδυασμός ικανοποιεί τη συνθήκη συνένωσης Η συνθήκη αποτιμάται για κάθε συνδυασμό Πλειάδες των οποίων τα γνωρίσματα συνένωσης έχουν τιμή null δεν εμφανίζονται!! ΘΗΤΑ ΣΥΝΕΝΩΣΗ (THETA JOIN)
Διαφορά Καρτεσιανού Γινομένου και Συνένωσης Στη συνένωση μόνοοισυνδυασμοί πλειάδων που ικανοποιούν τη συνθήκη συνένωσης εμφανίζονται στο αποτέλεσμα Στο καρτεσιανό γινόμενο εμφανίζονται στο αποτέλεσμα όλοι οι συνδυασμοί πλειάδων
Παράδειγμα Συνένωσης U Α Β C 1 2 3 6 7 8 9 7 8 V B C D 2 3 4 2 3 5 7 8 10 U A < D V A U.B U.C V.B V.C D 1 2 3 2 3 4 1 2 3 2 3 5 1 2 3 7 8 10 6 7 8 7 8 10 9 7 8 7 8 10 Είναι δυνατή συνένωση της μορφής: U A<D AND U.B V.B V
Παράδειγμα Ταινία Τίτλος Έτος Διάρκεια Είδος Παίζει Όνομα-Ηθοποιού Τίτλος Έτος Ηθοποιός Όνομα Διεύθυνση Έτος-Γέννησης Σύζυγος-Ηθοποιού
Παράδειγμα - Συνένωση Ταινία Τίτλος Έτος Διάρκεια Είδος Παίζει Όνομα-Ηθοποιού Τίτλος Έτος Ηθοποιός Όνομα Διεύθυνση Έτος-Γέννησης Σύζυγος-Ηθοποιού Για κάθε ηθοποιό το όνομα και τον τίτλο-έτος για όλες τις έγχρωμες ταινίες στις οποίες παίζει π όνομα, τίτλος, έτος (σ Παίζει.τίτλος = Ταινία.τίτλος AND Παίζει.έτος =Ταινία.έτος (Παίζει x (σ είδος = έγχρωμη (Ταινία))) π όνομα, τίτλος, έτος (Παίζει Παίζει.τίτλος = Ταινία.τίτλος AND Παίζει.έτος =Ταινία.έτος (σ είδος = έγχρωμη (Ταινία))
Συνένωση Ισότητας (Equijoin) Όταν η συνθήκη συνένωσης περιλαμβάνει μόνο συγκρίσεις ισότητας, δηλ. χρησιμοποιεί μόνο τον τελεστή = Συνθήκη συνένωσης Προτάσεις της μορφής A i = B j όπου A i γνώρισμα της R, B j γνώρισμα της S, και dom(a i ) = dom(b j ) συνδυασμένες με AND
R Συνένωση Ισότητας Στο αποτέλεσμα της συνένωσης ισότητας τα ζεύγη γνωρισμάτων από τις δύο σχέσεις έχουν τις ίδιες τιμές σε κάθε πλειάδα Παράδειγμα Α Β 1 2 3 4 S B C D 2 5 6 4 7 8 9 10 11 R R.B = S.B S A R.B S.B C D 1 2 2 5 6 3 4 4 7 8
Φυσική Συνένωση (natural join) Στην πράξη της συνένωσης ισότητας τα ζεύγη γνωρισμάτων έχουν τις ίδιες τιμές σε κάθε πλειάδα πλεονασμός Για την απαλοιφή του δεύτερου γνωρίσματος σε μια συνένωση ισότητας δημιουργήθηκε η πράξη ΦΥΣΙΚΗ ΣΥΝΕΝΩΣΗ (NATURAL_KOIN) * τελεστής Φυσικής Συνένωσης
Φυσική Συνένωση - Ορισμός Μια συνένωση ισότητας ακολουθούμενη από την απαλοιφή των γνωρισμάτων της δεύτερης σχέσης από το αποτέλεσμα Τι γίνεται όταν τα γνωρίσματα δεν έχουν το ίδιο όνομα?
Φυσική Συνένωση Όταν ζεύγη γνωρισμάτων που προκύπτουν από συνένωση ισότητας έχουν τις ίδιες τιμές σε κάθε πλειάδα αλλά δεν έχουν το ίδιο όνομα τότε εφαρμόζουμε πρώτα την πράξη της μετονομασίας και μετά την πράξη της φυσικής συνένωσης Μετονομασία γνωρισμάτων!!
Φυσική Συνένωση Το γνώρισμα που μετονομάζεται προκειμένου να εκτελεστεί η πράξη της φυσικής συνένωσης λέγεται: Γνώρισμα Συνένωσης (join attribute) Σημ. Αν τα γνωρίσματα πάνω στα οποία προσδιορίζεται η φυσική συνένωση έχουν το ίδιο όνομα και στις δύο σχέσεις, τότε δε χρειάζεται μετονομασία
Παράδειγμα 1 R S R * S Α Β B C D A B C D 1 2 3 4 2 5 6 4 7 8 9 10 11 1 2 5 6 3 4 7 8
Παράδειγμα 2 U V U * V Α Β C 1 2 3 6 7 8 9 7 8 B C D 2 3 4 7 8 10 A B C D 1 2 3 4 6 7 8 10 9 7 8 10
Παράδειγμα 3 Για κάθε ηθοποιό το όνομα και τον τίτλο-έτος για όλες τις έγχρωμες ταινίες στις οποίες παίζει π όνομα, τίτλος, έτος (σ Παίζει.τίτλος = Ταινία.τίτλος AND Παίζει.έτος =Ταινία.έτος (Παίζει x (σ είδος = έγχρωμη (Ταινία))) π όνομα, τίτλος, έτος (Παίζει >< Παίζει.τίτλος = Ταινία.τίτλος AND Παίζει.έτος =Ταινία.έτος (σ είδος = έγχρωμη (Ταινία)) π όνομα, τίτλος, έτος (Παίζει * (σ είδος = έγχρωμη (Ταινία))) είναι η τρίτη έκφραση πριν την προβολή ισοδύναμη των άλλων δύο;
Συνένωση Ισότητας & Φυσική Συνένωση ΙΔΙΟΤΗΤΕΣ Μπορούν να οριστούν μεταξύ πολλών πινάκων (σχέσεων), οδηγώντας σε συνένωση τάξεως n Παράδειγμα ((ΕΡΓΟ Κ_ΤΜΗΜΑ = ΚΩΔ_ΤΜΗΜΑ ΤΜΗΜΑ) ΔΙΕΥΘΥΝΤΗΣ = ΑΡ_ΤΑΥ ΕΡΓΑΖΟΜΕΝΟΣ)
Συνένωση ΙΔΙΟΤΗΤΕΣ Αν κανένας συνδυασμός πλειάδων δεν ικανοποιεί τη συνθήκη συνένωσης, το αποτέλεσμα της συνένωσης είναι μια κενή σχέση με μηδέν πλειάδες Έστω δύο σχέσεις R και S με πλειάδες n R και n S αντίστοιχα. Αν εφαρμόσουμε μια πράξη συνένωσης στις παραπάνω σχέσεις το αποτέλεσμα θα έχει μεταξύ 0 και n R * n S πλειάδες
Χιαστί Συνένωση (Cross join) Αν δεν υπάρχει <συνθήκη συνένωσης> να ικανοποιηθεί, όλοι οι συνδυασμοί πλειάδων θεωρούνται ικανοποιητικοί και η συνένωση γίνεται ένα καρτεσιανό γινόμενο που λέγεται και ΧΙΑΣΤΙ ΣΥΝΕΝΩΣΗ (CROSS JOIN)
Εξωτερική Συνένωση Όταν θέλουμε να κρατήσουμε στο αποτέλεσμα όλες τις πλειάδες - και αυτές που δεν ταιριάζουν) είτε της σχέσης στα αριστερά (αριστερή εξωτερική συνένωση) είτε της σχέσης στα δεξιά (δεξιά εξωτερική συνένωση) R Α C 1 6 2 4 S Α B 1 3 1 5 3 9 R * S Left Right Α R.Α C B C B S.A R.Α C S.A B 1 6 3 1 6 3 1 1 6 1 3 1 6 5 1 6 5 1 1 6 1 5 2 4 null null null null 3 9
Πλήρης Εξωτερική Συνένωση Ηπράξηπλήρης εξωτερική συνένωση (FULL OUTER JOIN) διατηρεί όλες τις πλειάδες της αριστερής και της δεξιάς σχέσης και όταν δεν βρεθούν πλειάδες που να τους ταιριάζουν, συμπληρώνονται τιμές null όπου χρειάζεται
Η Πράξη της Διαίρεσης (Division) Έστω R (A1,, An,B1,, Bm) και S (B1,, Bm) Ηδιαίρεση R S είναι μια σχέση Τ με σχήμα A1,, An. Περιέχει τις πλειάδες t οι οποίες είναι τέτοιες ώστε, για κάθε πλειάδα s της S, η πλειάδα που προκύπτει από την παράθεση των t και s ανήκει στην R. O τελεστής της διαίρεσης μπορεί να θεωρηθεί ως αντίστροφος του τελεστή του Καρτεσιανού γινομένου: Τ S παράγει μια σχέση συμβατή με την R και ενδέχεται να ισχύει Τ S= R εν γένει, αν T= R S, τότε η Τ είναι το μεγαλύτερο δυνατό σύνολο πλειάδων ώστε Τ S R
Παράδειγμα Διαίρεσης Παραδείγματα: R Α Β C a1 b1 c1 a2 b1 c1 a1 b2 c1 a1 b2 c2 a2 b1 c2 a1 b2 c3 a1 b2 c4 a1 b1 c5 T:= R S S C A B c1 a1 b1 a2 b1 a1 b2 S T R T μέγιστο
Example - Division
Συναθροιστικές Συναρτήσεις Aggregate Functions
Συναθροιστικές Συναρτήσεις Υπάρχουν τύποι ερωτημάτων που δεν μπορούν να εκφραστούν στη σχεσιακή άλγεβρα, π.χ. Βρες το μέσο όρο του μισθού όλων των εργαζομένων Βρες το πλήθος των πλειάδων εργαζομένων Εκφράζουμε τα παραπάνω ερωτήματα με χρήση συναθροιστικών συναρτήσεων
Συναθροιστικές Συναρτήσεις Εφαρμόζονται σε συλλογές πλειάδων με αριθμητικές τιμές Τέτοιες συναρτήσεις είναι οι: ΑΘΡΟΙΣΜΑ (SUM) ΜΕΣΟΣ ΟΡΟΣ (AVEGARE) ΜΕΓΙΣΤΟ (MAXIMUM) ΕΛΑΧΙΣΤΟ (MINIMUM) ΠΛΗΘΟΣ (COUNT)
Συναθροιστικές Συναρτήσεις Y <λίστα συνάρτησης> (R) Όπου: Y : το σύμβολο της πράξης <λίστα συνάρτησης> : μια λίστα από ζεύγη της μορφής (<συνάρτηση><γνώρισμα>) Όπου: Διαβάζεται «καλλιγραφικό F» <συνάρτηση> : είναι μία από τις επιτρεπτές συναρτήσεις όπως SUM, AVERAGE, MAXIMUM, MINIMUM, COUNT <γνώρισμα> : είναι ένα γνώρισμα της σχέσης (R)
Συναθροιστικές Συναρτήσεις Σε κάποιες περιπτώσεις ερωτημάτων πρώτα ομαδοποιούμε τις πλειάδες μιας σχέσης με βάση τις τιμές κάποιων γνωρισμάτων και στη συνέχεια εφαρμόζουμε μια πράξη συναθροιστικής συνάρτησης <γνωρίσματα ομαδοποίησης> Y <λίστα συνάρτησης> (R) Όπου <γνωρίσματα ομαδοποίησης> είναι μια λίστα από γνωρίσματα της σχέσης (R)
Συναθροιστικές Συναρτήσεις Το αποτέλεσμα της πράξης είμαι μια σχέση που έχει τα γνωρίσματα ομαδοποίησης και ένα επιπλέον γνώρισμα για κάθε στοιχείο της λίστας συναρτήσεων Απαραίτητη η μετονομασία των γνωρισμάτων της προκύπτουσας σχέσης διαφορετικά το καθένα θα είναι η συνένωση του ονόματος της συνάρτησης με το όνομα του γνωρίσματος
Συναθροιστικές Συναρτήσεις Παράδειγμα Να βρεθεί 1. ο κωδικός κάθε τμήματος, 2. το πλήθος των εργαζομένων στο τμήμα και 3. ο μέσος μισθός των εργαζομένων στο τμήμα ΜΕ ΜΕΤΟΝΟΜΑΣΙΑ ρ ΑΡΙΘ_Τ, ΕΡΓΑΖΟΜΕΝΟΙ, ΜΕΣΟΣ_ΜΙΣΘΟΣ) ( ΑΡΙΘ_Τ Y COUNT ΑΡ_ΤΑΥΤ,AVERAGE ΜΙΣΘΟΣ (ΕΡΓΑΖΟΜΕΝΟΣ) ) ΧΩΡΙΣ ΜΕΤΟΝΟΜΑΣΙΑ ΑΡΙΘ_Τ Y COUNT ΑΡ_ΤΑΥΤ, AVERAGE ΜΙΣΘΟΣ (ΕΡΓΑΖΟΜΕΝΟΣ)
Συναθροιστικές Συναρτήσεις ΑΡΙΘ_Τ ΕΡΓΑΖΟΜΕΝΟΙ ΜΕΣΟΣ_ΜΙΣΘΟΣ 5 4 33250 4 3 31000 1 1 55000 ΑΡΙΘ_Τ COUNT_ΑΡ_ΤΑΥ AVERAGE_ΜΙΣΘΟΣ 5 4 33250 4 3 31000 1 1 55000
Συναθροιστικές Συναρτήσεις Αν δεν προσδιορίζονται γνωρίσματα ομαδοποίησης τότε οι συναρτήσεις εφαρμόζονται στις τιμές των γνωρισμάτων όλων των πλειάδων της σχέσης και επομένως το αποτέλεσμα έχει μόνο μία πλειάδα!! Y COUNT ΑΡΙΘ_Τ, AVERAGE ΜΙΣΘΟΣ (ΕΡΓΑΖΟΜΕΝΟΣ) COUNT_ΑΡΙΘ_Τ AVERAGE_ΜΙΣΘΟΣ 8 35125
Συναθροιστικές Συναρτήσεις Δε γίνεται απαλοιφή διπλοτιμών όταν εφαρμόζεται μια συναθροιστική συνάρτηση Το αποτέλεσμα της πράξης είναι μία σχέση και όχι ένας αριθμός ακόμα κι αν πρόκειται για μια απλή τιμή!
Παραδείγματα Παράδειγμα 1 ο Δρομολόγια αεροπλάνων
Παρακάτω έχουμε το σχήμα μιας βάσης δεδομένων για την διαχείριση των δρομολογίων αεροπλάνων μιας εταιρίας. ΑΕΡΟΠΛΑΝΟ ΘΕΣΕΙΣ ΕΠΙΒΑΤΩΝ:int ΜΟΝΤΕΛΟ:string ID:int ΤΑΞΙΔΙ ΑΦΕΤΡΙΑ:int ΠΡΟΟΡΙΣΜΟΣ:int ΗΜΕΡΟΜΗΝΙΑ :date ID:int ID_ΑΕΡΟΠΛΑΝΟΥ:int ΑΕΡΟΔΡΟΜΙΟ ΧΩΡΑ:string ΠΟΛΗ:string ID:int ΟΝΟΜΑΣΙΑ: STRING
Ερωτήματα: 1. Να προβάλετε το μοντέλο και το ID των αεροπλάνων που έχουν περισσότερες από 100 θέσεις. 2. Να προβάλετε τις πόλεις που αποτέλεσαν προορισμό του αεροπλάνου με ID=23456 από τις 24/5/2006 έως 24/6/2006 3. Να προβάλετε το μοντέλο και το ID των αεροπλάνων που ταξίδεψαν στις 25/3/2006 από το αεροδρόμιο Gatwick του Λονδίνου πως το αεροδρόμιο ΕΛ.Βενιζέλος στην Αθήνα. 4. Να προβάλετε το όνομα της πόλης η οποία διαθέτει παραπάνω από ένα αεροδρόμια καθώς και την χώρα στην οποία ανήκει.
Παραδείγματα Παράδειγμα 2 ο Προϊόντα Πληροφορικής
Εκφώνηση έστω το παρακάτω σχήμα μιας βάσης δεδομένων: Product (maker, model, type) PC (model, speed, ram, hd, cd, price) Laptop (model, speed, ram, hd, screen, price) Printer (model, color, type, price)
Ερωτήματα 1. Ποια μοντέλα PCs έχουν ταχύτητα τουλάχιστον 2,3 GHz; 2. Βρείτε τους αριθμούς μοντέλου κάθε έγχρωμου Laser εκτυπωτή 3. Ποιοι κατασκευαστές φτιάχνουν laptops με σκληρό μεγαλύτερο από 1 Gb; 4. Ποιος είναι ο αριθμός μοντέλου και η τιμή κάθε προϊόντος του κατασκευαστή Β; 5. Βρείτε τους κατασκευαστές που φτιάχνουν laptops αλλά όχι PCs 6. Βρείτε τα μεγέθη των σκληρών που υπάρχουν σε περισσότερα από ένα PC 7. Βρείτε τα ζευγάρια (μοντέλων) των PCs με ίδιο επεξεργαστή και μνήμη 8. Όπως το 7, αλλά με μη διακριτά ζευγάρια δηλαδή (Α,Β)=(Β,Α) 9. Βρείτε τους κατασκευαστές που κατασκευάζουν ακριβώς δύο μοντέλα PCs
Παραδείγματα Παράδειγμα 3 ο Πότες...Μπύρας!!!
ΠΡΟΤΙΜΑ(ΠΟΤΗΣ, ΜΠΥΡΑ) ΣΥΧΝΑΖΕΙ(ΠΟΤΗΣ, ΜΑΓΑΖΙ) ΣΕΡΒΙΡΕΙ(ΜΑΓΑΖΙ, ΜΠΥΡΑ) Παράδειγμα 1. Τους πότες που συχνάζουν σε μαγαζιά που σερβίρουν μπύρα «Guinness» 2. Tα μαγαζιά που σερβίρουν μπύρα «Guinness» ήμπύρα«leffe Brune» ήκαι τα δύο 3. Tα μαγαζιά που σερβίρουν μπύρα «Guinness» και μπύρα «Leffe Brune» 4. Tα μαγαζιά που σερβίρουν μόνο μπύρα «Guinness» 5. Μαγαζιά που σερβίρουν τουλάχιστον δύο διαφορετικές μπύρες. (μόνο μία;) 6. Μαγαζιά που σερβίρουν ακριβώς δύο διαφορετικές μπύρες. 7. Τα μαγαζιά που σερβίρουν μπύρες που προτιμά ο πότης «ημήτρης». 8. Τα μαγαζιά που σερβίρουν όλες τις μπύρες που προτιμά ο ημήτρης
Παραδείγματα Παράδειγμα 4 ο Κρατήσεις πλοίων μιας επιχείρησης
Παρακάτω έχουμε το σχήμα μιας βάσης δεδομένων για την διαχείριση των κρατήσεων πλοίων μιας επιχείρησης. ΚΡΑΤΗΣΗ Π_id: int Ν_id: int Day:date ΝΑΥΤΙΚΟΣ ID:int Όνομα: string Ημερομηνία_Γεν :date Αξιολόγηση:int ΠΛΟΙΟ ID:integer Όνομα:string Χρώμα:string
Να δημιουργήσετε τα κατάλληλα ερωτήματα στην σχεσιακή άλγεβρα προκειμένου να απαντηθούν τα παρακάτω: 1. Βρείτε τα ονόματα και τις αξιολογήσεις των ναυτικών με βαθμό αξιολόγησης > 8. 2. Βρείτε τα πλοία που έχουν χρώμα διαφορετικό του πράσινου(green) ή έχουν το όνομα «THASOS» 3. Βρείτε τα ονόματα των ναυτικών που έχουν ναυλώσει πλοίο. 4. Βρείτε τα ονόματα των ναυτικών που έχουν ναυλώσει ένα πλοίο στις 15-12-2005. 5. Βρείτε τα ονόματα των ναυτικών που έχουν ναυλώσει το πλοίο με κωδικό 103. 6. Βρείτε τα ονόματα των ναυτικών που έχουν ναυλώσει ένα κόκκινο πλοίο. 7. Βρείτε το χρώμα των πλοίων που έχουν ναυλωθεί από τον ναυτικό με όνομα Bob. 8. Βρείτε τους κωδικούς των ναυτικών ηλικίας > 20 που δεν έχουν ναυλώσει κόκκινο πλοίο.
Ερωτήσεις... Ευχαριστώ!!!