Σχεσιακό Μοντέλο Τυπικές Γλώσσες Ερωτήσεων Σχεσιακή Άλγεβρα Πλειάδων Πεδίου Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 1 Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 2 Γιατί σχεσιακό λογισµό; αδυναµία σχεσιακή άλγεβρας: περιγράφει τον τρόπο (τα βήµατα) για να πάρουµε την απάντηση σε µια ερώτηση -δηλαδή, το πως στόχος: περιγραφή του τι θέλουµε (βάση για ) Στη σχεσιακή άλγεβρα έχουµε µια ακολουθία πράξεων (procedural) ενώ στον σχεσιακό λογισµό έχουµε δηλωτικές εκφράσεις (declarative µη διαδικαστικός τρόπος) υο προσαρµογές (µε βάση το από που παίρνουν τιµές οι µεταβλητές): -- σχεσιακός λογισµός πλειάδων -- σχεσιακός λογισµός πεδίου Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 3 Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 4 Ισοδυναµία = ίδια εκφραστική δύναµη όποια ανάκτηση µπορεί να προσδιοριστεί σε σχεσιακή άλγεβρα µπορεί και σε σχεσιακό λογισµό και αντιστρόφως σχεσιακά πλήρης γλώσσα Πλειάδων Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 5 Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 6
Εισαγωγή Γενική Μορφή Ο σχεσιακός λογισµός πλειάδων βασίζεται στον προσδιορισµό ενός πλήθους τιµών πλειάδων: «ώσε µου τις πλειάδες που ικανοποιούν µια συνθήκη» {t COND(t)} (όπου t µεταβλητή πλειάδων) t είναι µια µεταβλητή πλειάδων (σχέση) και COND(t) είναι ένας τύπος (formula) που περιγράφει την t Η ερώτηση δίνει τη συνθήκη ως µια λογική έκφραση (στη συνέχεια, θα δούµε τη σύνταξη της) Κάθε µεταβλητή έχει πεδίο τιµών µια σχέση µιας βδ Αποτέλεσµα είναι το σύνολο όλων των πλειάδων t για τις οποίες η συνθήκη COND(t) είναι TRUE π.χ., {t (t)} Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 7 Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 8 Παίζει Όνοµα-Ηθοποιού Τίτλος Έτος {t COND(t)} (όπου t µεταβλητή πλειάδων) πχ. οι ταινίες µε διάρκεια πάνω από 100 λεπτά επιλογή {t Ταινία(t) and t. ιάρκεια > 100} µόνο ο τίτλος και το έτος προβολή {t.τίτλος, t.έτος Ταινία(t) and t. ιάρκεια > 100} Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 9 Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 10 Τυπικός Ορισµός Ποια σχέση {t.τίτλος, t.έτος Ταινία(t) and t. ιάρκεια > 100} Τυπικός Ορισµός {t 1.A 1, t 2.A 2,, t n.a n COND(t 1, t 2,, t n, t n+1, t n+2, t n+m )} ποια γνωρίσµατα (project) Ποια συνθήκη t 1, t 2,, t n+m : µεταβλητές πλειάδων Α 1, Α 2,, Α n : γνωρίσµατα COND µια συνθήκη ή τύπος του σχεσιακού λογισµού πλειάδων Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 11 Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 12
Τυπικός Ορισµός (συνέχεια) Τυπικός Ορισµός (συνέχεια) Ένας τύπος του σχεσιακού λογισµού πλειάδων αποτελείται από άτοµα Άτοµα του σχεσιακού λογισµού πλειάδων: R(t i ): R όνοµα σχέσης, t i µεταβλητή πλειάδων, προσδιορίζει ότι το πεδίο τιµών της πλειάδας είναι η σχέση R opt : = < > t i.a opt t j.b t i.a opt c ή c opt t i.a c : σταθερά A, B : γνωρίσµατα Κάθε άτοµο αποτιµάται σε true ή false (τιµή αληθείας) του ατόµου Κάθε τύπος κατασκευάζεται από ένα ή περισσότερα άτοµα Κάθε άτοµο είναι ένας τύπος (F1 and F2) (F1 or F2) not(f1) Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 13 Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 14 Τυπικός Ορισµός (συνέχεια) Πλειάδων Επίσης: ( τ) (Φ) ( τ) (Φ) Ελεύθερη και δεσµευµένη µεταβλητή Απλά, δεσµευµένη αν ποσοδεικτείται Υπενθύµιση: DeMorgan implication: ιπλή άρνηση: P1 and P2 not (not(p1) or not(p2)) P1 P2 not(p1) or P2 ( t) P(t) not ( t) (not P(t)) every human is mortal : no human is immortal Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 15 Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 16 (επιλογή, προβολή): Τα ονόµατα ηθοποιών που γεννήθηκαν µετά το 1980 Παίζει Όνοµα-Ηθοποιού Τίτλος Έτος {t.όνοµα (t) and t.ετος-γέννησης > 1980} Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 17 Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 18
(συνένωση): Το όνοµα και η διεύθυνση όλων των ηθοποιών που έπαιξαν στη ταινία «Νύφες» του 2004 {t.όνοµα, t.διεύθυνση (t) and (( d) ( Παίζει(d) and d.τίτλος = Νύφες and d.έτος = 2004 and d. Όνοµα-Ηθοποιού = t. Όνοµα))} (συνένωση): Το όνοµα και η διεύθυνση όλων των ηθοποιών που έπαιξαν στη ταινία «Νύφες» του 2004 {d.όνοµα-ηθοποιού, t.διεύθυνση (t) and Παίζει(d) and d.τίτλος = Νύφες and d.έτος = 2004 and d. Όνοµα-Ηθοποιού = t. Όνοµα} υο διαφορετικές (ελεύθερες) µεταβλητές πλειάδων Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 19 Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 20 (διαφορά): Τα ονόµατα ηθοποιών που δεν έπαιξαν στην ταινία American Beauty του 1999 {t.όνοµα (t) and (not (( d) ( Παίζει(d) and d.τίτλος = Αmerican Beauty and d.έτος = 1999 and d.όνοµα-ηθοποιού = t. Όνοµα))} Χρήση του (διαφορά): Τα ονόµατα ηθοποιών που δεν έπαιξαν στην ταινία American Beauty του 1999 Χρήση του Χρειάζεται ιδιαίτερη προσοχή, πρέπει να είναι true για όλες τις δυνατές πλειάδες {t.όνοµα (t) and (( d) ( not(παίζει(d)) or (d.όνοµα-ηθοποιού t. Όνοµα or d.τίτλος Αmerican Beauty and d.έτος 1999)))} Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 21 Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 22 Ασφαλείς Εκφράσεις Ασφαλείς Εκφράσεις Πρέπει να αποτιµάται σε πεπερασµένο αριθµό πλειάδων Για κάθε ηθοποιό το όνοµα και τον τίτλο-έτος για όλες τις ταινίες στις οποίες παίζει µαζί µε τον σύζυγο του/της µη ασφαλούς: {t not((t)} Πεδίο ορισµού µιας έκφρασης Ρ: σύνολο τιµών που αναφέρονται στο Ρ, δηλαδή οι τιµές που εµφανίζονται άµεσα στο Ρ (ως σταθερές) και οι τιµές πλειάδων σχέσεων που εµφανίζονται στο Ρ Ασφαλής: τιµές στο αποτέλεσµα από το πεδίο ορισµού Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 23 Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 24
Πεδίων Πεδίου ιαφορά από το σχεσιακό λογισµό πλειάδων: οι µεταβλητές είναι απλές τιµές του πεδίου ορισµού των γνωρισµάτων {x 1, x 2,, x n COND(x 1, x 2,, x n, x n+1, x n+2, x n+m } x 1, x 2,, x n : µεταβλητές πεδίου τιµών που παίρνουν τιµές από πεδία ορισµού γνωρισµάτων COND µια συνθήκη ή τύπος του σχεσιακού λογισµού πεδίων Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 25 Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 26 Πεδίων Πεδίων Άτοµα του σχεσιακού λογισµού πεδίου R(x 1, x 2,, x n ): R όνοµα σχέσης n-οστού βαθµού Κάθε τύπος κατασκευάζεται από ένα ή περισσότερα άτοµα Για συντοµία {x 1 x 2 x n R(x 1, x 2,, x n ) αντί του {x 1, x 2,, x n R(x 1, x 2,, x n ) x i opt x j x i opt c ή c opt x i Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 27 Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 28 Πεδίου : Το όνοµα και η διεύθυνση όλων των ηθοποιών που έπαιξαν στη ταινία «Νύφες» του 2004 {t.όνοµα, t. ιεύθυνση (t) and πλειάδων (( d) ( Παίζει(d) and d.τίτλος = Νύφες and d.έτος = 2004 and d. Όνοµα-Ηθοποιού = t. Όνοµα))} {ο, d (odes) and πεδίου (( q) ( r) ( s) ( Ταινία(qrs) and r = Νύφες and s = 2004 and q = ο))} Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 29 Παίζει Όνοµα-Ηθοποιού Τίτλος Έτος Μια γραφική γλώσσα Τα σχήµατα των σχέσεων (οι πίνακες) εµφανίζονται στη οθόνη, ο χρήστης συµπληρώνει τα αντίστοιχα πεδία Ερωτήσεις: συµπλήρωση µιας ή περισσοτέρων γραµµών στους πίνακες Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 30
> 120 επιλογή > 120 έγχρωµη Παίζει Όνοµα-Ηθοποιού Τίτλος Έτος Βουγιουκλάκη > 1980 Στην ίδια γραµµή : AND προβολή Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 31 Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 32 έγχρωµη _Τ _Ε έγχρωµη > 120 Παίζει Όνοµα-Ηθοποιού Τίτλος Έτος _Ο _Τ _Ε Σε διαφορετικές γραµµές: OR Αποτέλεσµα Όνοµα Τίτλος Έτος _Ο _Τ _Ε Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 33 Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 34 Ανακεφαλαίωση Στη συνέχεια... Είδαµε διάφορες γλώσσες ερωτήσεων για το σχεσιακό µοντέλο Τυπικές γλώσσες Σχεσιακή Άλγεβρα Σχεσιακό Λογισµός (πλειάδων και πεδίου) SQL (Πλήρης γλώσσα: ορισµό δεδοµένων, ενηµερώσεις και ερωτήσεις) Στη συνέχεια: Θεωρία για το πότε ένας σχεδιασµός είναι «καλός» Άσκηση: σχεδιασµός και υλοποίηση µιας εφαρµογής Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 35 Βάσεις εδοµένων 2004-2005 Ευαγγελία Πιτουρά 36