Επιμέλεια: ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣ tmanavis@ist.edu.gr Σχεσιακή Άλγεβρα Επιμέλεια: ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣ tmanavis@ist.edu.gr T Manavis
Συνενώσεις - Joins
Ερωτήματα και Άλγεβρα Προγράμματα που απαντούν σε ερωτήσεις για τον παρόν στιγμιότυπο της βάσης δεδομένων (quering) Το σχεσιακό μοντέλο έχει ένα σύνολο από πράξεις -> Σχεσιακή Άλγεβρα Τι είναι μία άλγεβρα ? Ένα κλειστό σύνολο Α ως προς ένα σύνολο πράξεων, με άλλα λόγια το αποτέλεσμα της πράξης είναι στοιχείο του Α. Πράξεις επί πινάκων που δίνουν πίνακες.
Σχεσιακή Άλγεβρα Γλώσσες Ερωτήσεων (Query Languages): Επιτρέπουν τον χειρισμό και την εύρεση πληροφορίας από μια βάση δεδομένων Το σχεσιακό μοντέλο υποστηρίζει απλές και ισχυρές γλώσσες ερωτήσεων (σε αντίθεση με το μοντέλο Ο/Σ)
Σχεσιακή Άλγεβρα Γλώσσες Ερωτήσεων != Γλώσσες Προγραμματισμού! Δεν αναμένεται να είναι “Turing complete”. Δεν αναμένεται να χρησιμοποιηθούν για ”δύσκολους υπολογισμούς”. Υποστηρίζουν εύκολη και αποδοτική προσπέλαση σε μεγάλα σύνολα δεδομένων
Σχεσιακή Άλγεβρα Δύο μαθηματικές γλώσσες ερωτήσεων αποτελούν το θεωρητικό υπόβαθρο για τις πραγματικές γλώσσες ερωτήσεων (π.χ. SQL) και για την υλοποίησή τους Σχεσιακή Άλγεβρα: Πιο λειτουργική “operational” (database byte-code!) Σχεσιακός Λογισμός (calculus): Επιτρέπει στους χρήστες να περιγράψουν τι θέλουν αλλά όχι πώς να το υπολογίσουν (δηλωτική)
Σχεσιακή Άλγεβρα μετάφραση optimization SQL Σχεσιακή Άλγεβρα Πλάνο Εκτέλεσης Σχεσιακή άλγεβρα: ένας απλός τρόπος δημιουργίας νέων σχέσεων από παλιές. Ένα σύνολο από πράξεις που όταν εφαρμοστούν σε σχέσεις μας δίνουν νέες σχέσεις
Σχεσιακή Άλγεβρα Οι πράξεις τις σχεσιακής άλγεβρας: 1. Πράξεις που αφαιρούν κομμάτια από μια σχέση είτε επιλέγοντας γραμμές είτε προβάλλοντας στήλες 2. Οι συνηθισμένες πράξεις συνόλου - ένωση, τομή, διαφορά 3. Πράξεις που συνδυάζουν πλειάδες από δύο σχέσεις 4. Μετονομασία γνωρισμάτων
Η Πράξη της Επιλογής Η πράξη της επιλογής (selection) Επιλογή ενός υποσυνόλου των πλειάδων (γραμμών) μιας σχέσης (πίνακα) που ικανοποιεί μια συνθήκη επιλογής θ σ<συνθήκη επιλογής> (<όνομα σχέσης>)
Η Πράξη της Επιλογής σθ (<όνομα πίνακα>) συνθήκη θ Επιλογή ενός υποσυνόλου των πλειάδων μιας σχέσης που ικανοποιεί μια συνθήκη επιλογής θ σθ (<όνομα πίνακα>) <όνομα γνωρίσματος> <τελεστής σύγκρισης> <όνομα γνωρίσματος> ή <σταθερή τιμή από το πεδίο ορισμού του γνωρίσματος> προτάσεις της μορφής συνθήκη θ =, >, <, , , συνδυασμένες με AND, OR, NOT
Η Πράξη της Επιλογής σ διάρκεια > 100 (Ταινία) Παραδείγματα τίτλος χρόνος διάρκεια είδος Star Wars 1997 124 έγχρωμη Mighty Ducks 1991 104 έγχρωμη Wayne’s World 1992 95 έγχρωμη 1. Ταινίες με διάρκεια μεγαλύτερη των 100 λεπτών) σ διάρκεια > 100 (Ταινία) τίτλος χρόνος διάρκεια είδος Star Wars 1997 124 έγχρωμη Mighty Ducks 1991 104 έγχρωμη
Η Πράξη της Επιλογής σ διάρκεια > 100 AND χρόνος > 1995 (Ταινία) τίτλος χρόνος διάρκεια είδος Star Wars 1997 124 έγχρωμη Mighty Ducks 1991 104 έγχρωμη Wayne’s World 1992 95 έγχρωμη 2. Ταινίες με διάρκεια μεγαλύτερη των 100 λεπτών που γυρίστηκαν μετά το 1995 σ διάρκεια > 100 AND χρόνος > 1995 (Ταινία) τίτλος χρόνος διάρκεια είδος Star Wars 1997 124 έγχρωμη
Η Πράξη της Επιλογής Η συνθήκη επιλογής εφαρμόζεται ανεξάρτητα σε κάθε πλειάδα (γραμμή) Ο τελεστής είναι μοναδιαίος (unary) Ο βαθμός της σχέσης που προκύπτει είναι ίδιος με τον βαθμό της αρχικής R Πλήθος γραμμών μικρότερο ή ίσο με την αρχική σχέση: το ποσοστό που επιλέγονται ονομάζεται επιλεκτικότητα (selectivity)
Η Πράξη της Προβολής Η πράξη της προβολής (projectιοn) Επιλογή συγκεκριμένων στηλών (γνωρισμάτων) π<λίστα γνωρισμάτων> (<όνομα σχέσης>)
Η Πράξη της Προβολής Παραδείγματα τίτλος χρόνος διάρκεια είδος τίτλος χρόνος διάρκεια είδος 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. Είδος ταινιών π είδος (Ταινία) είδος έγχρωμη Προσοχή: απαλοιφή διπλότιμων (duplicate elimination)
Η Πράξη της Προβολής Τα γνωρίσματα έχουν την ίδια διάταξη Ο τελεστής είναι μοναδιαίος Ο βαθμός της σχέσης είναι ίσος με τον αριθμό γνωρισμάτων στη <λίστα γνωρισμάτων> Πλήθος πλειάδων μικρότερο ή ίσο (πότε;) με την αρχική σχέση
Σχεσιακή Άλγεβρα - Συνθετικότητα Παράδειγμα (ερώτημα με πράξεις σε σειρά - σημαντικό) Διάρκειες μεγαλύτερες των 100 λεπτών π διάρκεια (σ διάρκεια > 100 (Ταινία)) διάρκεια 124 104
Πράξεις συνόλου Πράξεις συνόλου Ένωση () - union Τομή () - intersection Διαφορά (-) - difference Πράξεις συνόλου Συμβατότητα ως προς την ένωση Δύo σχέσεις R(A1, A2, …, An) και S(B1, B2, …, Bn) είναι συμβατές ως προς την ένωση όταν 1. Έχουν τον ίδιο βαθμό n, και 2. i, dom(Ai) = dom(Bi)
Ανάθεση Ανάθεση (Assignment) όνομα στην ενδιάμεση σχέση (χρησιμοποιείται και το ελληνικό γράμμα ‘ρ’ R Παράδειγμα ΜΕΓΑΛΗΣ_ΔΙΑΡΚΕΙΑΣ σ διάρκεια > 100 (Ταινία)
Μετονομασία R(λίστα με νέα ονόματα) μετονομασία γνωρισμάτων Παράδειγμα ΜΕΓΑΛΗΣ_ΔΙΑΡΚΕΙΑΣ (όνομα ταινίας, έτος παραγωγής, διάρκεια, είδος) σ διάρκεια > 100 (Ταινία) όνομα ταινίας έτος παραγωγής διάρκεια είδος Star Wars 1997 124 έγχρωμη Mighty Ducks 1991 104 έγχρωμη
Καρτεσιανό Γινόμενο Καρτεσιανό Γινόμενο (cartesian product) (ή χιαστί γινόμενο (cross product) ή χιαστί συζεύξη (cross join) R(A1, A2, …, An) x S(B1, B2, …, Bm) αποτέλεσμα η σχέση Q: Q(A1, A2, …, An, B1, B2, …, Bm) n + m γνωρίσματα nR * n S πλειάδες τι γίνεται αν κάποια γνωρίσματα έχουν ίδια ονόματα ?
Καρτεσιανό Γινόμενο R x S A R.B S.B C D 1 2 2 5 6 1 2 4 7 8 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 R S Α Β 1 2 3 4 B C D 2 5 6 4 7 8 9 10 11
Παράδειγμα Παράδειγμα – Υπάλληλος(ΑΦΜ, κωδικός, όνομα, διευθυνση, μισθος) Project (κωδικός_έργου, περιγραφή, τοποθεσία) Συμμετέχει(ΑΦΜ, κωδικός_έργου, ώρες)
Καρτεσιανό Γινόμενο Παράδειγμα Για κάθε υπάλληλο δείξε το όνομα του και την περιγραφή κάθε έργου στο οποίο συμμετέχει. π ονομα, περιγραφη (σκωδικός_έργου = Project.κωδικός_έργου (σ Υπάλληλος.ΑΦΜ = Συμμετέχει.ΑΦΜ (Υπάλληλος x Συμμετέχει) x Project)) Άλλη έκφραση που να περιγράφει το ίδιο ερώτημα? Γιατί?
Σύζευξη (Join) Θ-Σύζευξη (θ-join) συνδυασμός σχετιζόμενων πλειάδων R θ S ( σ θ (R x S) ) Συνθήκη σύζευξης θ Προτάσεις της μορφής =, >, <, , , Ai <τελεστής σύγκρισης> Bj όπου Ai γνώρισμα της R, Bj γνώρισμα της S, και dom(Ai) = dom(Bj) συνδυασμένες με AND
Σύζευξη (Join) το αποτέλεσμα είναι οι συνδυασμοί πλειάδων που ικανοποιούν τη συνθήκη η συνθήκη αποτιμάται για κάθε συνδυασμό αποτέλεσμα σχέση Q με n + m γνωρίσματα πλειάδες με τιμή null σε γνώρισμα συνένωσης δεν εμφανίζονται στο αποτέλεσμα γιατί μια καινούργια πράξη? πιο αποτελεσματικό implementation + σύνηθες
Σύζευξη (Join) U A<D V U V A U.B U.C V.B V.C D 1 2 3 2 3 4 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 Α Β C 1 2 3 6 7 8 9 7 8 B C D 2 3 4 2 3 5 7 8 10
Η σύζευξη των 2 ακόλουθων πινάκων EMP και DEPART δίνει...
Επίσης:
Συναθροιστικές Συναρτήσεις (Aggregate functions) Χρήσιμη η δυνατότητα της συνάθροισης: συνδυασμός των γραμμών μιας σχέσης για τον υπολογισμό μιας συναθροιστικής τιμής (π.χ. min, max, sum, count, avg) Παραδείγματα: πόσοι ηθοποιοί παίζουν σε μια ταινία, ποιος ηθοποιός πήρε το μεγαλύτερο μισθό, κ.λ.π. Παραδείγματα: πόσοι δουλεύουν σε κάποιο έργο, ποιός έχει το μεγαλύτερο μισθό, κ.λ.π. Η βάση για ερωτήματα στήριξης αποφάσεων (decision support)
Συναθροιστικές Συναρτήσεις συναρτήσεις που παίρνουν ως παράμετρο μια συλλογή (όχι σύνολο) από τιμές συνήθεις συναρτήσεις: SUM, AVERAGE, MAX, MIN, COUNT αποτέλεσμα μια σχέση (πίνακας) και όχι μια τιμή π<λίστα συναρτήσεων> (<όνομα σχέσης>) ζεύγη <συνάρτηση γνώρισμα> - π.χ. max(μισθός)
Συναθροιστικές Συναρτήσεις Παράδειγμα: μέση διάρκεια ταινιών AVERAGE_διάρκεια 91 π AVERAGE(διάρκεια)(Ταινία) Παράδειγμα: παλιότερη και πιο πρόσφατη έγχρωμη ταινία π ΜΙΝ (έτος), ΜΑΧ (έτος) ( σ είδος = έγχρωμη (Ταινία)) ΜΙΝ_έτος MAX_έτος 1945 1999
Συναθροιστικές Συναρτήσεις Ομαδοποίηση (Grouping) <γνωρίσματα ομαδοποίησης> F <λίστα συναρτήσεων> (<όνομα σχέσης>) Παράδειγμα: πόσοι ηθοποιοί ανά ταινία πόσα έργα ανά υπάλληλο
Συναθροιστικές Συναρτήσεις Παράδειγμα: αριθμός ηθοποιών ανά ταινία Τίτλος, έτος F COUNT Όνομα-Ηθοποιού (Παίζει) Τίτλος Έτος COUNT_Όνομα Ηθοποιού Sixth Sense 1999 20 Run Lola Run 1998 10 Eyes Wide Shut 1999 14 Ποιο θα ήταν το αποτέλεσμα αν δεν υπήρχαν τα γνωρίσματα ομαδοποίησης;
Εξωτερική Σύζευξη (Outer Join) Όταν θέλουμε να κρατήσουμε στο αποτέλεσμα όλες τις πλειάδες - και αυτές που δεν ταιριάζουν) είτε της σχέσης στα αριστερά (αριστερή – left - εξωτερική συνένωση) είτε της σχέσης στα δεξιά (δεξιά – right - εξωτερική συνένωση) R * S R S Α C B 1 6 3 1 6 5 2 4 null Α C B 1 6 3 1 6 5 3 null 9 Α C 1 6 2 4 Α B 1 3 1 5 3 9 Α C B 1 6 3 1 6 5
Πηγές Πανεπιστήμιο Ιωαννίνων – σημειώσεις του μαθήματος Βάσεις Δεδομένων Πανεπιστήμιο Πατρών, τμήμα Μηχανικών Η/Υ και Πληροφορικής – σημειώσεις μαθήματος Βάσεις Δεδομένων Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης – σημειώσεις μαθήματος Βάσεις Δεδομένων ΤΕΙ Σερρών – σημειώσεις μαθήματος Βάσεις Δεδομένων