Kεφ.2: Σχεσιακό Μοντέλο (επανάληψη) Κεφ.6.1: Σχεσιακή Άλγεβρα Database System Concepts, 6 th Ed. Silberschatz, Korth and Sudarshan See www.db-book.com for conditions on re-use
Παράδειγμα Σχέσης attributes (or columns) Στήλες ή ιδιότητες tuples (or rows) Πλειάδες (ή εγγραφές) Database System Concepts - 6 th Edition 2.2 Silberschatz, Korth and Sudarshan
Τύποι Ιδιοτήτων Το σύνολο των επιτρεπόμενων τιμών για κάθε ιδιότητα ονομάζεται πεδίο τιμών (domain) της ιδιότητας Οι τιμές των ιδιοτήτων (συνήθως) απαιτείται να είναι ατομικές, δηλαδή, αδιαίρετες Η ειδική τιμή null είναι μέλος κάθε πεδίου τιμών. Δείχνει ότι η τιμή μας είναι "άγνωστη" Η τιμή null προκαλεί επιπλοκές στον ορισμό πολλών λειτουργιών Database System Concepts - 6 th Edition 2.3 Silberschatz, Korth and Sudarshan
Σχήμα Σχέσης και Στιγμιοτύπου A 1, A 2,, A n είναι ιδιότητες R = (A 1, A 2,, A n ) είναι ένα σχήμα σχέσης Παράδειγμα: instructor = (ID, name, dept_name, salary) Έστω τα σύνολα D 1, D 2,. D n μια σχέση r είναι υποσύνολο του D 1 x D 2 x x D n Άρα, μια σχέση είναι ένα σετ από n-εγγραφές (a 1, a 2,, a n ) όπου a i D i Οι παρούσες τιμές (στιγμιότυπο σχέσης) μιας σχέσης καθορίζονται από έναν πίνακα Ένα στοιχείο t του r είναι μια πλειάδα (tuple), που αναπαριστάται από μια σειρά/εγγραφή στον πίνακα Database System Concepts - 6 th Edition 2.4 Silberschatz, Korth and Sudarshan
Οι Σχέσεις δεν είναι διατεταγμένες Η σειρά των πλειάδων είναι άσχετη (οι πλειάδες μπορούν να αποθηκευτούν με αυθαίρετη σειρά) Παράδειγμα: Η σχέση instructor Database System Concepts - 6 th Edition 2.5 Silberschatz, Korth and Sudarshan
Κλειδιά Έστω K R Το K είναι superkey (υπερ-κλειδί) του R εάν οι τιμές για το K επαρκούν για να αναγνωρίσουν μια μοναδική πλειάδα κάθε πιθανής σχέσης r(r) Π.χ.: Τα {ID} και {ID,name} είναι superkeys της σχέσης instructor. Το Superkey K είναι candidate key (υποψήφιο κλειδί) αν το K είναι ελάχιστο Π.χ.: Το {ID} είναι candidate key της σχέσης Instructor Ένα από τα candidate keys επιλέγεται για πρωτεύον κλειδί (primary key). Ποιο? Περιορισμός ξένου κλειδιού (Foreign key): Τιμές σε μια σχέση να αναφέρονται σε τιμές που πρέπει να υπάρχουν σαν πρωτεύον κλειδί σε άλλη Αναφερόμενη και Αναφερθείσα σχέση Π.χ. Το dept_name στη σχέση instructor είναι foreign key από τη σχέση instructor που αναφέρεται στη σχέση department Database System Concepts - 6 th Edition 2.6 Silberschatz, Korth and Sudarshan
Διάγραμμα Σχήματος για τη ΒΔ Πανεπιστημίου Database System Concepts - 6 th Edition 2.7 Silberschatz, Korth and Sudarshan
Σχεσιακές Γλώσσες Ερωτημάτων Διαδικαστική έναντι μη-διαδικαστικής, ή δηλωτική Καθαρές γλώσσες: Σχεσιακή Άλγεβρα Tuple relational calculus Domain relational calculus Οι παραπάνω 3 καθαρές γλώσσες είναι ισοδύναμες στην υπολογιστική ισχύ Επικεντρωνόμαστε στη σχεσιακή άλγεβρα Μη πλήρης Not turning-machine equivalent 6 βασικοί τελεστές Database System Concepts - 6 th Edition 2.8 Silberschatz, Korth and Sudarshan
Σχεσιακή Άλγεβρα Κεφ. 6.2 Σχεσιακή Άλγεβρα 9
Ορισμοί και Τροποποιήσεις Προγράμματα που απαντούν σε ερωτήσεις για τον παρόν στιγμιότυπο της βάσης δεδομένων (quering) Το σχεσιακό μοντέλο έχει ένα σύνολο από πράξεις -> Σχεσιακή Άλγεβρα ΣΗΜΕΙΩΣΗ: Πέρα από τη σχεσιακή άλγεβρα και τη διατύπωση ερωτήσεων: - ορισμός του σχήματος - τροποποίηση του στιγμιότυπου (εισαγωγή, διαγραφή και τροποποίηση πλειάδων) Σχεσιακή Άλγεβρα 10
Σχεσιακή Άλγεβρα Δύο μαθηματικές γλώσσες ερωτήσεων αποτελούν τη βάση για τις πραγματικές γλώσσες ερωτήσεων (π.χ., SQL) και για την υλοποίησή τους Σχεσιακή Άλγεβρα Ένα σύνολο από πράξεις που όταν εφαρμοστούν σε σχέσεις μας δίνουν νέες σχέσεις Σχεσιακός Λογισμός (calculus) Επιτρέπουν στους χρήστες να περιγράψουν τι θέλουν αλλά όχι πώς να το υπολογίσουν Σχεσιακή Άλγεβρα 11
Σχεσιακή Άλγεβρα Οι πράξεις τις σχεσιακής άλγεβρας: 1. Πράξεις που αφαιρούν κομμάτια από μια σχέση είτε επιλέγοντας γραμμές είτε προβάλλοντας στήλες 2. Οι συνηθισμένες πράξεις συνόλου - ένωση, τομή, διαφορά 3. Πράξεις που συνδυάζουν πλειάδες από δύο σχέσεις 4. Μετονομασία γνωρισμάτων Σχεσιακή Άλγεβρα 12
Η Πράξη της Επιλογής Η πράξη της επιλογής (select) Επιλογή ενός υποσυνόλου των πλειάδων μιας σχέσης που ικανοποιεί μια συνθήκη επιλογής σ <συνθήκη επιλογής> (<όνομα σχέσης>) Σχεσιακή Άλγεβρα 13
Η Πράξη της Επιλογής Επιλογή ενός υποσυνόλου των πλειάδων μιας σχέσης που ικανοποιεί μια συνθήκη επιλογής συνθήκη σ <συνθήκη επιλογής> (<όνομα σχέσης>) προτάσεις της μορφής <όνομα γνωρίσματος> <τελεστής σύγκρισης> =, >, <,,, <όνομα γνωρίσματος> ή <σταθερή τιμή από το πεδίο ορισμού του γνωρίσματος> συνδυασμένες με AND, OR, NOT Σχεσιακή Άλγεβρα 14
Παράδειγμα Ταινία Τίτλος Έτος Διάρκεια Είδος Παίζει Όνομα-Ηθοποιού Τίτλος Έτος Ηθοποιός Όνομα Διεύθυνση Έτος-Γέννησης Σύζυγος-Ηθοποιού Σχεσιακή Άλγεβρα 15
Η Πράξη της Επιλογής Παραδείγματα τίτλος χρόνος διάρκεια είδος Star Wars 1997 124 έγχρωμη Mighty Ducks 1991 104 έγχρωμη Wayne s World 1992 95 έγχρωμη 1. Ταινίες με διάρκεια μεγαλύτερη των 100 λεπτών) σ διάρκεια > 100 (Ταινία) τίτλος χρόνος διάρκεια είδος Star Wars 1997 124 έγχρωμη Mighty Ducks 1991 104 έγχρωμη Σχεσιακή Άλγεβρα 16
Η Πράξη της Επιλογής τίτλος χρόνος διάρκεια είδος Star Wars 1997 124 έγχρωμη Mighty Ducks 1991 104 έγχρωμη Wayne s World 1992 95 έγχρωμη 2. Ταινίες με διάρκεια μεγαλύτερη των 100 λεπτών που γυρίστηκαν μετά το 1995 σ διάρκεια > 100 AND χρόνος > 1995 (Ταινία) τίτλος χρόνος διάρκεια είδος Star Wars 1997 124 έγχρωμη Σχεσιακή Άλγεβρα 17
Η Πράξη της Επιλογής Η συνθήκη επιλογής εφαρμόζεται ανεξάρτητα σε κάθε πλειάδα Ο τελεστής είναι μοναδιαίος Ο βαθμός της σχέσης που προκύπτει ίδιος με τον βαθμό της αρχικής R Πλήθος πλειάδων μικρότερο ή ίσο με την αρχική σχέση: ποσοστό που επιλέγονται - επιλεκτικότητα (selectivity) Σχεσιακή Άλγεβρα 18
Η Πράξη της Προβολής Η πράξη της προβολής (project) Επιλογή συγκεκριμένων στηλών (γνωρισμάτων) π <λίστα γνωρισμάτων> (<όνομα σχέσης>) Σχεσιακή Άλγεβρα 19
Η Πράξη της Προβολής Παραδείγματα τίτλος χρόνος διάρκεια είδος Star Wars 1997 124 έγχρωμη Mighty Ducks 1991 104 έγχρωμη Wayne s World 1992 95 έγχρωμη Σχεσιακή Άλγεβρα 20
Η Πράξη της Προβολής 1. Τίτλος, χρόνος, διάρκεια των ταινιών π τίτλος, χρόνος, διάρκεια (Ταινία) τίτλος χρόνος διάρκεια Star Wars 1997 124 Mighty Ducks 1991 104 Wayne s World 1992 95 Σχεσιακή Άλγεβρα 21
Σχεσιακή Άλγεβρα Παράδειγμα Διάρκειες μεγαλύτερες των 100 λεπτών π διάρκεια (σ διάρκεια > 100 (Ταινία)) διάρκεια 124 104 Σχεσιακή Άλγεβρα 22
Πράξεις Συνόλου Πράξεις συνόλου Ένωση ( ) Τομή ( ) Διαφορά (-) Συμβατότητα ως προς την ένωση Δύo σχέσεις R(A 1, A 2,, A n ) και S(B 1, B 2,, B n ) είναι συμβατές ως προς την ένωση όταν 1. Έχουν τον ίδιο βαθμό n 2. i, dom(a i ) = dom(b i ) Σχεσιακή Άλγεβρα 23
Πράξεις Συνόλου Σύμβαση: η προκύπτουσα σχέση έχει τα ίδια ονόματα με την πρώτη σχέση Απαλοιφή διπλότιμων Σχεσιακή Άλγεβρα 24
Καρτεσιανό Γινόμενο Καρτεσιανό Γινόμενο (ή χιαστί γινόμενο (cross product) ή χιαστί συνένωση (cross join)) 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 πλειάδες Σχεσιακή Άλγεβρα 25
Καρτεσιανό Γινόμενο R x S R Α Β 1 2 3 4 S B C D 2 5 6 4 7 8 9 10 11 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 Σχεσιακή Άλγεβρα 26
Παράδειγμα Ταινία Τίτλος Έτος Διάρκεια Είδος Παίζει Όνομα-Ηθοποιού Τίτλος Έτος Ηθοποιός Όνομα Διεύθυνση Έτος-Γέννησης Σύζυγος-Ηθοποιού Σχεσιακή Άλγεβρα 27
Καρτεσιανό Γινόμενο Παράδειγμα Για κάθε ηθοποιό το όνομα και τον τίτλο-έτος για όλες τις έγχρωμες ταινίες στις οποίες παίζει π όνομα, τίτλος, έτος (σ είδος = έγχρωμη AND Παίζει.τίτλος = Ταινία.τίτλος (Παίζει x Ταινία)) AND Παίζει.έτος = Ταινία.έτος ή π όνομα, τίτλος, έτος (σ Παίζει.τίτλος = Ταινία.τίτλος =Ταινία.έτος (Παίζει x (σ είδος = έγχρωμη (Ταινία))) AND Παίζει.έτος Σχεσιακή Άλγεβρα 28
Συνένωση Φυσική Συνένωση (natural join) συνδυασμός επιλογής και καρτεσιανού γινομένου επί 2 σχέσεων. Εκτελεί επιλογή με ισότητα στις κοινές ιδιοτητες των 2 σχέσεων. Αφαιρεί τις διπλές ιδιότητες. R S ( Π R S (σ <ισότητα σε όλες τις ιδιότητες R S > (R x S) ) Προσεταιριστική πράξη: (R S) Τ R (S Τ ) Σχεσιακή Άλγεβρα 29
Φυσική Συνένωση R S R S Α Β B C D A B C D 1 2 2 5 6 1 2 5 6 3 4 4 7 8 3 4 7 8 9 10 11 Σχεσιακή Άλγεβρα 30
Φυσική Συνένωση U V U V Α Β C 1 2 3 6 7 8 9 7 8 B C D 2 3 4 2 3 5 7 8 10 A B C D 1 2 3 4 1 2 3 5 6 7 8 10 9 7 8 10 Σχεσιακή Άλγεβρα 31
Θήτα Σύνδεσμος Θήτα Σύνδεσμος (theta join) Επιλογή και καρτεσιανό γινόμενο σε μια πράξη R θ S σ θ (R x S) θ: κατηγόρημα με τις ιδιότητες του σχήματος R S Σχεσιακή Άλγεβρα 32
Παράδειγμα 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 Σχεσιακή Άλγεβρα 33
Εξωτερική Συνένωση Εξωτερική Συνένωση Όταν θέλουμε να κρατήσουμε στο αποτέλεσμα όλες τις πλειάδες - και αυτές που δεν ταιριάζουν) είτε της σχέσης στα αριστερά (αριστερή εξωτερική συνένωση) είτε της σχέσης στα δεξιά (δεξιά εξωτερική συνένωση) R S R S Α C Α B Α C B Α C B Α C B 1 6 1 3 1 6 3 1 6 3 1 6 3 2 4 1 5 1 6 5 1 6 5 1 6 5 3 9 2 4 null 3 null 9 Σχεσιακή Άλγεβρα 34
Σχεσιακή Άλγεβρα Πλήρες σύνολο πράξεων επιλογή (σ) προβολή (π) ένωση ( ) διαφορά (-) καρτεσιανό γινόμενο (x) Επίσης τομή ( ) θ συνένωση ( ) συνένωση ισότητας φυσική συνένωση ( ) Σχεσιακή Άλγεβρα 35
Περίληψη Τελεστών Σχεσιακής Άλγεβρας Σύμβολο (Όνομα) σ (Selection) Π (Projection) x (Cartesian Product) (Union) - (Set Difference) (Natural Join) Παράδειγμα Χρήσης σ salary > = 85000 (instructor) Return rows of the input relation that satisfy the predicate. Π ID, salary (instructor) Output specified attributes from all rows of the input relation. Remove duplicate tuples from the output. instructor x department Output pairs of rows from the two input relations that have the same value on all attributes that have the same name. Π name (instructor) Π name (student) Output the union of tuples from the two input relations. Π name (instructor) -- Π name (student) Output the set difference of tuples from the two input relations. instructor department Output pairs of rows from the two input relations that have the same value on all attributes that have the same name. Database System Concepts - 6 th Edition 2.36 Silberschatz, Korth and Sudarshan