Σχεσιακή Άλγεβρα Παύλος Εφραιμίδης Θεμελίωση της Σχεσιακού Μοντέλου Δεδομένων Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός ΣτομάθημαθαπούμεγιαΣχεσιακή Άλγεβρα Βάσεις Δεδομένων Σχεσιακή Άλγεβρα 1 Βάσεις Δεδομένων Σχεσιακή Άλγεβρα 2 Σχεσιακή Άλγεβρα Το σύνολο των πράξεων που υποστηρίζει το σχεσιακό μοντέλο δεδομένων Διακρίνουμε δύο κατηγορίες πράξεων: Συνολοθεωρητικές: Βασίζονται στο γεγονός ότι οι σχέσεις είναι σύνολα πλειάδων Παράδειγμα: Ένωση, Διαφορά, Τομή Πράξεις ειδικές για σχεσιακές βάσεις δεδομένων: Επιλογή, Προβολή και πιο πολύπλοκες πράξεις όπως η Συνένωση Βάσεις Δεδομένων Σχεσιακή Άλγεβρα 3 Συνολοθεωρητικές Πράξεις Πράξεις από τη μαθηματική θεωρία συνόλων, που μπορούν να εφαρμοστούν επειδή κάθε σχέση είναι ουσιαστικά ένα σύνολο πλειάδων Ένωση Τομή Διαφορά Καρτεσιανό Γινόμενο Βάσεις Δεδομένων Σχεσιακή Άλγεβρα 4 Ειδικές Πράξεις Πράξεις που αναπτύχθηκαν ειδικά για Σχεσιακές Βάσεις Δεδομένων και περιλαμβάνουν μεταξύ άλλων Επιλογή (Select) Προβολή (Project) Συνένωση (Join) Εκφράσεις ΕΚΦΡΑΣΗ της Σχεσιακής Άλγεβρας: Μια ακολουθία πράξεων της Σχεσιακής Άλγεβρας Αποτέλεσμα: Οι πράξεις εφαρμόζονται σε σχέσεις και το το αποτέλεσμα τους είναι επίσης μια σχέση Επιπλέον Πράξεις: Μερικές συνήθεις απαιτήσεις από τις Σχεσιακές ΒΔ δεν μπορούν να ικανοποιηθούναπότις βασικές πράξεις Σχεσιακής Άλγεβρας και για αυτό ορίζονται επιπλέον πράξεις όπως είναι Μέσος Όρος Μέγιστο... Βάσεις Δεδομένων Σχεσιακή Άλγεβρα 5 Βάσεις Δεδομένων Σχεσιακή Άλγεβρα 6 1
Πράξη Επιλογής (SELECT) Επιλογή: Επιλέγει ένα υποσύνολο των πλειάδων μιας σχέσης Κριτήριο επιλογής: Ηεπιλογήτων πλειάδων γίνεται με βάση μια ΣΥΝΘΗΚΗ ΕΠΙΛΟΓΗΣ Η επιλογή είναι ένα είδους ΦΙΛΤΡΟ που κρατά μόνο τις επιθυμητές Συνθήκη Επιλογής Συνθήκη επιλογής: μια λογική παράσταση (έκφραση Boole) που προσδιορίζεται πάνω στα γνωρίσματα της σχέσης Παραδείγματα: 1. Φοιτητές που ανήκουν στο Τμήμα 1 2. Φοιτητές που από το 3 Εξάμηνο και πάνω ή 3. Ταυτόχρονα και τα δύο Βάσεις Δεδομένων Σχεσιακή Άλγεβρα 7 Βάσεις Δεδομένων Σχεσιακή Άλγεβρα 8 Τελεστής Select ΟτελεστήςSELECT είναι μοναδιαίος: Εφαρμόζεται σε μια σχέση Για κάθε πλειάδα υπολογίζεται η συνθήκη και επιλέγονται όλες οι για τις οποίες ισχύει η συνθήκη Ο βαθμός της σχέσης που προκύπτει είναι ίσος με τον βαθμό της αρχικής σχέσης. Ο πληθάρισμος της σχέσης είναι <= από την αρχική. Επιλεκτικότητα Συνθήκης (Selectivity) Το ποσοστό των πλειάδων που επιλέγονται. Αντιμεταθετική Πράξη Επιλογής: Είναι ΑΝΤΙΜΕΤΑΘΕΤΙΚΗ! Πχ ΦΟΙΤΗΤΕΣ του τμήματος 4 και ΦΟΙΤΗΤΕΣπουμένουνστηνΞάνθη Από μια σχέση - ΠΙΝΑΚΑ η πράξη ΕΠΙΛΟΓΗ επιλέγει γραμμές, αντίθετα η πράξη ΠΡΟΒΟΛΗ, επιλέγει στήλες Βάσεις Δεδομένων Σχεσιακή Άλγεβρα 9 Βάσεις Δεδομένων Σχεσιακή Άλγεβρα 10 Παρατήρηση Δενπρέπεινασυγχέουμετοντελεστή Select της σχεσιακής άλγεβρας με την εντολή SELECT της γλώσσας SQL Βάσεις Δεδομένων Σχεσιακή Άλγεβρα 11 Προβολή (Project) Προβολή: Αν μας ενδιαφέρουν ορισμένα μόνο γνωρίσματα μιας σχέσης, τότε χρησιμοποιούμε την ΠΡΟΒΟΛΗ για να "προβάλουμε" τη σχέση στα γνωρίσματα αυτά Παραδείγματα: Μια κατάσταση από τη Γραμματεία για το βαθμολόγιο του μαθήματος: ΠΡΟΒΟΛΗ με γνωρίσματα ΑΜ, Όνομα, Επίθετο, Εξάμηνο Μια κατάσταση Επίθετο, Εξάμηνο ΠΡΟΒΟΛΗ με τα γνωρίσματα Επίθετο Εξάμηνο ΠΡΟΣΟΧΗ μπορεί να υπάρχουν ΔΙΠΛΑ! τα οποία κόβονται εξορισμού. Στην πράξη (SQL) είναι στην ευχέρεια του προγραμματιστή να επιλέξει να επιτρέπει διπλά ή όχι στο αποτέλεσμα της πράξης (λέξη κλειδί DISTINCT της SQL) Βάσεις Δεδομένων Σχεσιακή Άλγεβρα 12 2
Τελεστής Προβολής ΣΥΜΒΟΛΙΣΜΟΣ π_(επιθετο, ΕΞΑΜΗΝΟ) (ΦΟΙΤΗΤΗΣ) π_<λίστα γνωρισμάτων> (R) Το R είναι μια σχέση ή οποιαδήποτε έκφραση σχεσιακής άλγεβρας Η ΠΡΟΒΟΛΗ δημιουργεί μια νέα σχέση που έχει μόνο τα γνωρίσματα που προσδιορίζονται στο <λίστα γνωρισμάτων> και με την ίδια διάταξη που αυτά εμφανίζονται στη λίστα Βάσεις Δεδομένων Σχεσιακή Άλγεβρα 13 ΔΙΠΛΕΣ ΠΛΕΙΑΔΕΣ Διπλές : Αν η λίστα των γνωρισμάτων δεν είναι υπερκλειδί, μπορεί να εμφανιστούν διπλές ή πολλαπλές Στο σχεσιακό μοντέλο δεδομένων δεν επιτρέπονται διπλές Εξ'ορισμού η πράξη της ΠΡΟΒΟΛΗΣ απομακρύνει τα διπλά (απαλοιφή διπλότυπων - duplicate elimination) Στην SQL μπορούμε να αποφασίσουμε εμείς τον χειρισμό των διπλών πλειάδων ΒΑΘΜΟΣ: Ο αριθμός των γνωρισμάτων της ΠΡΟΒΟΛΗΣ ΠΛΗΘΟΣ ΠΛΕΙΑΔΩΝ μετά την απαλοιφή: Αν τα γνωρίσματα είναι υπερκλειδί, είναι ίσος με τον αριθμό πλειάδων της αρχικής σχέσης Δεν ισχύει η αντιμεταθετικότητα!! (Άσκηση: Δώστε ένα παράδειγμα όπου δεν ισχύει ) Βάσεις Δεδομένων Σχεσιακή Άλγεβρα 14 Συνολοθεωρητικές Πράξεις Πράξεις Ένωση Τομή Διαφορά Απαιτείται συμβατότητα πλειάδων!! Καρτεσιανό Γινόμενο Συνδυάζει από δύο σχέσεις ώστε να αναγνωριστούν οι που σχετίζονται Γενικά το αποτέλεσμα της πράξης R(A1,A2,..,An) X S(B1,B2,..,Bm) είναι μια σχέση Q με n+m γνωρίσματα Q(A1,A2,..,An,B1,..,Bm) με αυτή τη σειρά. Η Q έχει μία πλειάδα για κάθε συνδυασμό πλειάδων, και επομένως έχει n_q = n_r * n_s Βάσεις Δεδομένων Σχεσιακή Άλγεβρα 15 Βάσεις Δεδομένων Σχεσιακή Άλγεβρα 16 Παράδειγμα Έστω ότι θέλουμε να πάρουμε για κάθε ΕΡΓΑΖΟΜΕΝΗ μιαλίσταμεόλαταεξαρτώμεναμέλητης. ΓΥΝ_ΕΡΓΑΖ <- σ_(φυλλο = "Θ")(ΕΡΓΑΖΟΜΕΝΟΣ) ΟΝΟΜ_ΕΡΓΑΖ <- π_(ονομα,επιθετο,ατ) (ΓΥΝ_ΕΡΓΑΖ) ΕΞΑΡΤ_ΕΡΓΑΖ <- ΟΝΟΜ_ΕΡΓΑΖ Χ ΕΞΑΡΤΩΜΕΝΟΣ ΠΡΑΓΜ_ΕΞΑΡΤ <- σ_(ατ = Ε_ΑΤ) (ΕΑΞΡ_ΕΡΓΑΖ) ΑΠΟΤΕΛΕΣΜΑ <- π_(ονομα,επιθετο,ονομα_εξαρτωμενου) (ΠΡΑΓΜ_ΕΞΑΡΤ) Συνένωση (Join) Η πράξη ΚΑΡΤΕΣΙΑΝΟ ΓΙΝΟΜΕΝΟ συχνά ακολουθείται από την πράξη ΕΠΙΛΟΓΗ ώστε να επιλεγούν οι έχουν κάποιο συγκεκριμένο νόημα Μια πράξη: ΣΥΝΕΝΩΣΗ Βάσεις Δεδομένων Σχεσιακή Άλγεβρα 17 Βάσεις Δεδομένων Σχεσιακή Άλγεβρα 18 3
Συνένωση (2) Συμβολίζεται με δύο τριγωνάκια: >< Συνδέει σχετιζόμενες από δύο σχέσεις Επιτρέπει την επεξεργασία των συσχετίσεων ΠΑΡΑΔΕΙΓΜΑ (σελ. 292): Θέλουμε το όνομα του διευθυντή κάθε τμήματος. Παράδειγμα Πρέπει να συνδυάσουμε κάθε πλειάδα τμήματος με την πλειάδα του ΕΡΓΑΖΟΜΕΝΟΣ στην οποία ΑΤ είναι ίδια με την τιμή του ΔΙΕΥΘΥΝΤΗΣ στην πλειάδα τμήματος ΔΙΕΥΘ_ΤΜΗΜ <- ΤΜΗΜΑ >< _(ΔΙΕΘΥΝΤΗΣ=ΑΤ) ΕΡΓΑΖΟΜΕΝΟΣ ΑΠΟΤΕΛΕΣΜΑ <- π_(τ_ονομα,ονομα,επιθετο)(διευθ_τμημ) Σημειώνουμε ότι ο ΔΙΕΥΘΥΝΤΗΣ είναι "Ξένο Κλειδί" καιεπομένωςοπεριορισμόςαναφορικήςακεραιότητας παίζει ρόλο. Βάσεις Δεδομένων Σχεσιακή Άλγεβρα 19 Βάσεις Δεδομένων Σχεσιακή Άλγεβρα 20 Γενική Μορφή Συνένωσης R >< _<συνθήκη συνένωσης> S Αποτέλεσμα Q με n+m γνωρίσματα Περιέχει όλες τις του Καρτεσιανού Γινομένου για τις οποίες ικανοποιείται η συνθήκη συνένωσης Η συνθήκη συνένωσης αποτιμάται σε γνωρίσματα των δύο σχέσεων R και S Πλειάδεςτωνοποίωνταγνωρίσματασυνένωσηςέχουν τιμή NULL δεν εμφανίζονται στη ΣΥΝΕΝΩΣΗ ΑΡΑ η συνένωση δεν διατηρεί υποχρεωτικά όλη την πληροφορία των σχέσεων που συμμετέχουν!!! Βάσεις Δεδομένων Σχεσιακή Άλγεβρα 21 Περιπτώσεις Συνένωσης ΘΗΤΑ ΣΥΝΕΝΩΣΗ (THETA JOIN): Συνένωση στην πολύ γενική μορφή της ΣΥΝΕΝΩΣΗ ΙΣΟΤΗΤΑΣ (EQUIJOIN), ηπιο συνηθισμένη περίπτωση Δίνει στις οποίες δύο ή περισσότερα γνωρίσματα έχουν την ίδια τιμή. ΦΥΣΙΚΗ ΣΥΝΕΝΩΣΗ (NATURAL JOIN) Για να μην εμφανίζεται άσκοπα το γνώρισμα συνένωσης δύο φορές στο αποτέλεσμα, ορίζεται η Βάσεις Δεδομένων Σχεσιακή Άλγεβρα 22 Φυσική Συνένωση (Natural Join) Συμβολίζεται με αστεράκι * Τυπικάταδύογνωρίσματαθαπρέπειναέχουντοίδιο όνομα (ή μπορεί τυπικά μετονομαστεί ένα από τα δύο): ΕΡΓΟ_ΤΜΗΜΑ <- ΕΡΓΟ * P(Τ_ΟΝΟΜΑ, ΚΩΔ_ΤΜΗΜΑ, ΔΙΕΥΘΥΝΤΗΣ, ΗΜΕΡ_ΕΝΑΡΞ) ΤΜΗΜΑ Το γνώρισμα ΚΩΔ_ΤΜΗΜΑ ονομάζεται "Γνώρισμα Συνένωσης". Ουσιαστικά η ΦΥΣΙΚΗ ΣΥΝΕΝΩΣΗ είναι μια συνένωση ισότητας ακολουθούμενη από απαλοιφή των γνωρισμάτων που πλεονάζουν. Φυσική Συνένωση (2) Ένας πιο γενικός και όχι τόσο αυστηρός ορισμός της ΦΥΣΙΚΗΣ ΣΥΝΕΝΩΣΗΣ είναι: Q <- R *_(<λίστα1>,<λίστα2>) S λίστα1: i γνωρίσματα από την R λίστα2: i γνωρίσματα από την S Μόνο η λίστα1 διατηρείται στο αποτέλεσμα Ανκανέναςσυνδυασμόςδενικανοποιείτις συνθήκες συνένωσης, το αποτέλεσμα είναι μια κενή σχέση με μηδέν Βάσεις Δεδομένων Σχεσιακή Άλγεβρα 23 Βάσεις Δεδομένων Σχεσιακή Άλγεβρα 24 4
Επιλεκτικότητα Συνένωσης Το μέγεθος του αποτελέσματος συνένωσης δια του μέγιστου μεγέθους n_r * n_s Αν δεν υπάρχει <συνθήκη συνένωσης> είναι ουσιαστικά το Καρτεσιανό Γινόμενο ή ΧΙΑΣΤΙ ΣΥΝΕΝΩΣΗ (CROSS JOIN) Η Συνένωση συνδυάζει δεδομένα από πολλές σχέσεις σε μία νέα σχέση Μπορεί να οριστεί ΣΥΝΕΝΩΣΗ σχέσης με τον εαυτό της Φυσική Συνένωση ή Συνένωση Ισότητας μπορεί να ορισθεί και για n πίνακες: ((ΕΡΓΟ >< _(Κ_ΤΜΗΜΑ=ΚΩΔ_ΤΜΗΜΑ) ΤΜΗΜΑ) >< _(ΔΙΕΥΘΥΝΤΗΣ=ΑΤ) ΕΡΓΑΖΟΜΕΝΟΣ) Συνδέει κάθε ΕΡΓΟ με το ΤΜΗΜΑ που το ελέγχει και στη συνέχεια αυτό με τον ΔΙΕΥΘΥΝΤΗ που διευθύνει το ΤΜΗΜΑ. Αποτέλεσμα: έργο-τμήμα-διευθυντής Βάσεις Δεδομένων Σχεσιακή Άλγεβρα 25 Σχεσιακό Σχήμα Βάσεις Δεδομένων Σχεσιακή Άλγεβρα 26 Πηγές/Αναφορές Κεφάλαιο 6 απότοβιβλίοτουμαθήματος: Θεμελιώσεις Αρχές Συστημάτων Βάσεων Δεδομένων (Τόμος Α' - Έκδοση 4η), Elmasri & Navathe (Μετάφραση: Εκδόσεις ΔΙΑΥΛΟΣ) Βάσεις Δεδομένων Σχεσιακή Άλγεβρα 27 5