Εργαςτιριο Βάςεων Δεδομζνων

Σχετικά έγγραφα
Εργαςτιριο Βάςεων Δεδομζνων

Εργαςτιριο Βάςεων Δεδομζνων

Βάρειπ Δεδξμέμωμ. Εργαζηήριο ΙV. Τμήμα Πληροθορικής ΑΠΘ

Βάρειπ Δεδξμέμωμ. Επγαστήπιο ΙΙ. Τμήμα Πλεπουοπικήρ ΑΠΘ

Βάσεις Δεδομένων. Εργαστήριο ΙV. Τμήμα Πληροφορικής ΑΠΘ

Τμήμα Πληροφορικής ΑΠΘ

Κεφάλαιο 3. Ερωτήματα SQL

ΟΝΟΜΑΣΟΛΟΓΙΑ ΠΑΡΑΜΕΣΡΩΝ ΓΙΑ ΠΡΟΑΡΜΟΜΕΝΕ ΑΝΑΦΟΡΕ. παραμζτρου> (Εμφανίηεται ςαν Caption ςτθν φόρμα των φίλτρων).

GNSS Solutions guide. 1. Create new Project

Βάςεισ Δεδομζνων Ι. Ενότητα 12: Κανονικοποίηςη. Δρ. Τςιμπίρθσ Αλκιβιάδθσ Τμιμα Μθχανικών Πλθροφορικισ ΤΕ

Βάςεισ Δεδομζνων Λ. Ενότθτα 8: SQL Γλώςςα χειριςμοφ δεδομζνων. Δρ. Σςιμπίρθσ Αλκιβιάδθσ Σμιμα Μθχανικών Πλθροφορικισ ΣΕ

Διαδικαςία Διαχείριςθσ Στθλϊν Βιβλίου Εςόδων - Εξόδων. (v.1.0.7)

ΕΦΑΡΜΟΓΕ ΒΑΕΩΝ ΔΕΔΟΜΕΝΩΝ ΣΗ ΝΟΗΛΕΤΣΙΚΗ. Φιλιοποφλου Ειρινθ

Πωσ δημιουργώ μάθημα ςτο e-class του ΠΣΔ [επίπεδο 1]

Τμήμα Πληροφορικής ΑΠΘ

Διαδικασία Δημιοσργίας Ειδικών Λογαριασμών. (v.1.0.7)

ΦΥΕ 14 ΑΚΑΔ. ΕΤΟΣ Η ΕΡΓΑΣΙΑ. Ημερομηνία παράδοςησ: 12 Νοεμβρίου (Όλεσ οι αςκιςεισ βακμολογοφνται ιςοτίμωσ με 10 μονάδεσ θ κάκε μία)

Αυτόματη δημιουργία στηλών Αντιστοίχηση νέων λογαριασμών ΦΠΑ

ςυςτιματα γραμμικϊν εξιςϊςεων

ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΠΕΛΟΠΟΝΝΗΣΟΥ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ

Βάςεισ Δεδομζνων Ι. Ενότθτα 9: SQL-φηευξθ πινάκων. Δρ. Σςιμπίρθσ Αλκιβιάδθσ Σμιμα Μθχανικών Πλθροφορικισ ΣΕ

ΥΡΟΝΣΙΣΗΡΙΟ Μ. Ε. ΚΑΙ ΚΕΝΣΡΟ ΙΔΙΑΙΣΕΡΩΝ ΜΑΘΗΜΑΣΩΝ «ΚΤΡΙΣΗ» ΔΙΑΓΩΝΙΜΑ ΘΕΜΑΣΑ Β ΛΤΚΕΙΟΤ ΥΕΒΡΟΤΑΡΙΟ 2018 ΑΕΠΠ

Βάςεισ Δεδομζνων Ι. Ενότητα 4: Μετατροπή ςχήματοσ Ο/Σ ςε ςχεςιακό. Δρ. Τςιμπίρθσ Αλκιβιάδθσ Τμιμα Μθχανικϊν Ρλθροφορικισ ΤΕ

Βάςεισ Δεδομζνων Ι. Ενότθτα 11: SQL-Ερωτιματα Ομαδοποίθςθσ με υνζνωςθ Πινάκων. Δρ. Σςιμπίρθσ Αλκιβιάδθσ Σμιμα Μθχανικϊν Πλθροφορικισ ΣΕ

Joomla! - User Guide

Διαδικαςία Προγράμματοσ Ωρομζτρθςθσ. (v.1.0.7)

ΣΤΟΙΧΕΙΑ ΜΑΘΗΜΑΤΙΚΗΣ ΛΟΓΙΚΗΣ

ΕΡΓΑΣΗΡΙΟ ΕΦΑΡΜΟΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ

Πολυπλέκτες. 0 x 0 F = S x 0 + Sx 1 1 x 1

ΘΥ101: Ειςαγωγι ςτθν Πλθροφορικι

Γ' ΛΥΚΕΙΟΥ Η ΤΑΞΗ ΤΗΣ ΤΕΛΙΚΗΣ ΕΠΙΛΟΓΗΣ. Στθ ΓϋΛυκείου οι Ομάδεσ Προςανατολιςμοφ είναι τρεισ:

ΑΝΣΙΣΡΟΦΗ ΤΝΑΡΣΗΗ. f y x y f A αντιςτοιχίηεται ςτο μοναδικό x A για το οποίο. Παρατθριςεισ Ιδιότθτεσ τθσ αντίςτροφθσ ςυνάρτθςθσ 1. Η. f A τθσ f.

Πωσ δθμιουργώ φακζλουσ;

ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Γνωριμία με το λογιςμικό του υπολογιςτι

Κατά τθν ενεργοποίθςθ τθσ ιδιότθτασ αυτισ ενδζχεται να εμφανιςτεί ζνα μινυμα ςαν αυτό τθσ παρακάτω εικόνασ. Απλά επιβεβαιϊςτε πατϊντασ ΟΚ.

Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο του Άβακα

ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΠΕΛΟΠΟΝΝΗΣΟΥ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ

Διαχείριςη Αριθμοδεικτών (v.1.0.7)

Είςοδοσ/Εγγραφή ςτη διαχειριςτική ςελίδα του Σχολείου

Epsilon Cloud Services

ΗΛΕΚΣΡΟΝΙΚΗ ΤΠΗΡΕΙΑ ΑΠΟΚΣΗΗ ΑΚΑΔΗΜΑΪΚΗ ΣΑΤΣΟΣΗΣΑ

Αςκιςεισ ςε (i) Δομζσ Ευρετθρίων και Οργάνωςθ Αρχείων (ii) Κανονικοποίθςθ

1. Κατέβαςμα του VirtueMart

Βάρειπ Δεδξμέμωμ. Εξγαζηήξην ΙΙI. Τκήκα Πιεξνθνξηθήο ΑΠΘ

Δείκτεσ Διαχείριςθ Μνιμθσ. Βαγγζλθσ Οικονόμου Διάλεξθ 8

Α) Ενδεικτικϋσ απαντόςεισ των θεμϊτων

ΜΑΘΗΜΑΤΙΚΑ Α Γυμνασίου

Ιδιότθτεσ πεδίων Γενικζσ.

Βάςεισ Δεδομζνων Ι. Ενότθτα 10: Συνακροιςτικζσ ςυναρτιςεισ. Δρ. Σςιμπίρθσ Αλκιβιάδθσ Σμιμα Μθχανικών Πλθροφορικισ ΣΕ

17. Πολυδιάςτατοι πίνακεσ

Διαχείριςθ του φακζλου "public_html" ςτο ΠΣΔ

Electronics μαηί με τα ςυνοδευτικά καλϊδια και το αιςκθτιριο κερμοκραςίασ LM335 που περιζχονται

Ζρευνα ικανοποίθςθσ τουριςτϊν

MySchool Πρακτικζσ οδθγίεσ χριςθσ

Καλϊσ Θλκατε ςτο νζο μασ site & e-shop Livardas.gr.

1. Διαχείριςη ενθεμάτων

Παράςταςη ακεραίων ςτο ςυςτημα ςυμπλήρωμα ωσ προσ 2

Σ ΤΑΤ Ι Σ Τ Ι Κ Η. Statisticum collegium V

Α ΕΚΦΕ ΑΝ. ΑΤΤΙΚΗΣ Υπ. Κ. Παπαμιχάλθσ. Μζτρηςη του λόγου γ=c P /C V των αερίων με τη μζθοδο Clement Desormes

ΑΞΙΟΛΟΓΗΣΗ ΕΚΠΑΙΔΕΥΤΙΚΟΥ

ΑΝΑΠΣΤΞΘ ΕΦΑΡΜΟΓΩΝ Ε ΠΡΟΓΡΑΜΜΑΣΙΣΙΚΟ ΠΕΡΙΒΑΛΛΟΝ 3 ο ΓΕΝΙΚΟ ΛΤΚΕΙΟ Ν. ΜΤΡΝΘ- ΕΠΙΜΕΛΕΙΑ: ΠΤΡΙΔΑΚΘ Λ.

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο)

Καρβέλης Φώτης ΓΟΝΙΔΙΩΜΑΤΙΚΗ ΒΙΒΛΙΟΘΗΚΗ

ΔΟΜΗ ΑΠΛΗΣ ΕΠΙΛΟΓΗΣ Αςκήςεισ με ψευδογλώςςα/ διάγραμμα ροήσ. Αντώνης Μαϊργιώτης

Ανάπτυξη Εφαρμογών με Σχεςιακέσ Βάςεισ Δεδομένων

Αςφάλεια και Προςταςία Δεδομζνων

Περιοριςμοί μιασ Β.Δ. ςτθν Access(1/3)

ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ. 5 ο Εργαςτιριο Ειςαγωγι ςτθ Γραμμι Εντολϊν

Ένα πρόβλθμα γραμμικοφ προγραμματιςμοφ βρίςκεται ςτθν κανονικι μορφι όταν:

ΕΡΓΑΣΤΗΡΙΟ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο)

Ιςοηυγιςμζνα δζντρα και Β- δζντρα. Δομζσ Δεδομζνων

Παράςταςη ςυμπλήρωμα ωσ προσ 1

Τμήμα Πληροφορικής ΑΠΘ

Σφςτημα Κεντρικήσ Υποςτήριξησ τησ Πρακτικήσ Άςκηςησ Φοιτητών ΑΕΙ

Slide 1. Εισαγωγή στη ψυχρομετρία

Εγχειρίδιο Χριςθσ τθσ διαδικτυακισ εφαρμογισ «Υποβολι και παρακολοφκθςθ τθσ ζγκριςθσ Εκπαιδευτικών Πακζτων»

Βαςεις δεδομενων 1. Δρ. Αλζξανδροσ Βακαλουδθσ

Megatron ERP Βάςη δεδομζνων Π/Φ - κατηγοριοποίηςη Databox

Μεθολογία αςκιςεων αραίωςησ και ανάμειξησ διαλυμάτων (με τθν ίδια δ. ουςία).

Οδηγύεσ Εφαρμογόσ Ηλεκτρονικόσ Κοςτολόγηςησ

Ποσοτικές Μέθοδοι Δρ. Χάϊδω Δριτσάκη

Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο τησ Αριθμογραμμήσ

Seventron Limited. Οδηγίες χρήσης EnglishOnlineTests.com

Ηλεκτρονικι Επιχειρθςιακι Δράςθ Εργαςτιριο 1

Ειδικά Θζματα Βάςεων Δεδομζνων

Γεωργικός Πειραματισμός ΙΙ ΑΥΞΗΜΕΝΑ ΣΧΕΔΙΑ

Θεςιακά ςυςτιματα αρίκμθςθσ

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 2 ο Εργαςτιριο Διαχείριςθ Διεργαςιϊν

ΔΙΑΔΙΚΑΙΑ ΑΛΛΑΓΗ ΦΟΡΩΝ

ΕΦΑΡΜΟΓΕ ΒΑΕΩΝ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΔΙΑΔΙΚΣΤΟΤ. Φιλιοποφλου Ειρινθ

Εισαγωγικές έννοιες. Αντώνησ Κ Μαώργιώτησ

ΕΡΓΑΣΤΗΡΙΟ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ

ΣΟΙΧΕΙΟΜΕΣΡΙΚΟΙ ΤΠΟΛΟΓΙΜΟΙ

Multi Logo. Προγραμματιςμόσ Η/Υ με Multi Logo. Σχεδίαςη και ανάπτυξη εφαρμογήσ κίνηςησ αντικειμζνου

lim x και lim f(β) f(β). (β > 0)

Διαδικαζία Διατείριζης Εκηύπωζης Ιζοζσγίοσ Γενικού - Αναλσηικών Καθολικών. (v )

ΜΑΘΗΜΑΤΙΚΑ ΕΠΙΠΕΔΟ (Β - Γ Λυκείου)

Στα προθγοφμενα δφο εργαςτιρια είδαμε τθ δομι απόφαςθσ (ι επιλογισ ι ελζγχου ροισ). Ασ κυμθκοφμε:

ΥΡΟΝΣΙ ΣΗΡΙΟ Μ. Ε. ΚΑΙ ΚΕΝΣΡΟ ΙΔΙΑΙΣΕΡΩΝ ΜΑΘΗΜΑΣΩΝ «ΚΤΡΙΣ Η» ΔΙΑΓΩΝΙ ΜΑ ΑΕΠΠ

Transcript:

Εργαςτιριο Βάςεων Δεδομζνων 2010-2011 Μάθημα 2 ο 1 Ε. Σςαμούρα Σμήμα Πληροφορικήσ ΑΠΘ

κοπόσ του 2 ου εργαςτθριακοφ μακιματοσ κοπόσ του δεφτερου εργαςτθριακοφ μακιματοσ είναι να μελετιςουμε ερωτιματα επιλογισ δεδομζνων από δφο ι περιςςότερεσ ςχζςεισ. 2

Μορφι ενόσ απλοφ SQL ερωτιματοσ με δφο ι περιςςότερεσ ςχζςεισ SELECT A 1, A 2,, A n FROM R 1, R 2,, R m WHERE condition; Προαιρετικό Για να επιλζξουμε δεδομζνα από δφο ι περιςςότερεσ ςχζςεισ, αρκεί να τισ δθλώςουμε μετά τθν εντολι FROM Όπωσ είπαμε ςτο 1 ο εργαςτθριακό μάκθμα, ζνα ερώτθμα ςτο οποίο μετά τθν εντολι FROM υπάρχουν 2 ι > ςχζςεισ απαντάται αφοφ πρώτα ςχθματιςτεί το καρτεςιανό γινόμενο των ςχζςεων R 1, R 2,, R m και ςτθ ςυνζχεια επιλζγοντασ μόνο τισ πλειάδεσ (από το ςφνολο των πλειάδων που ςχθματίςτθκαν) που ικανοποιοφν τουσ περιοριςμοφσ μετά τθν εντολι WHERE 3

Όνομα Παράδειγμα-1 Ερώτθμα: Να δοκεί για κάκε ςυντελεςτι (όνομα), οι ρόλοι με τουσ οποίουσ ζχει ςυμμετάςχει ςε ταινίεσ. Η πλθροφορία που χρειαηόμαςτε βρίςκεται ςε δφο ςχζςεισ, τθν υντελεςτισ και τθν Σ. Πώσ μποροφμε να ςυνδυάςουμε τισ πλειάδεσ των δφο ςχζςεων για να πάρουμε το επικυμθτό αποτζλεςμα? Βάςει του κλειδιοφ IDΣυντελεςτι υντελεςτισ ID Σ IDυντελεςτή IDΣαινίασ Ρόλοσ Alfred Hitchcock 1 Grace Kelly 2 Anthony Perkins 3 1 1 κηνοθέτησ 2 1 Ηθοποιόσ 1 2 κηνοθέτησ 3 2 Ηθοποιόσ 4

Παράδειγμα-1(ςυνζχεια) SELECT Όνομα, Ρόλοσ FROM ΤΝΣΕΛΕΣΗ, Σ WHERE ΤΝΣΕΛΕΣΗ.ID= Σ.IDυντελεςτι Σα ενδιάμεςα αποτελζςματα που παράγονται.όνομα.id Σ.IDυντελε ςτή Σ.IDΣαινί ασ Σ.Ρόλοσ Alfred Hitchcock 1 1 1 κηνοθέτησ Alfred Hitchcock 1 2 1 Ηθοποιόσ Alfred Hitchcock 1 1 2 κηνοθέτησ Alfred Hitchcock 1 3 2 Ηθοποιόσ Grace Kelly 2 1 1 κηνοθέτησ Grace Kelly 2 2 1 Ηθοποιόσ Grace Kelly 2 1 2 κηνοθέτησ Grace Kelly 2 3 2 Ηθοποιόσ Anthony Perkins 3 1 1 κηνοθέτησ Anthony Perkins 3 2 1 Ηθοποιόσ Anthony Perkins 3 1 2 κηνοθέτησ 5 Anthony Perkins 3 3 2 Ηθοποιόσ.Όνομα Alfred Hitchcock Alfred Hitchcock Grace Kelly Anthony Perkins Σ.Ρόλοσ κηνοθέτησ κηνοθέτησ Ηθοποιόσ Ηθοποιόσ

Παράδειγμα-2 το προθγοφμενο παράδειγμα ςφνδεςθσ, θ εντολι WHERE περιείχε μόνο τθν ςυνκικθ που ιταν απαραίτθτθ για τθ δθμιουργία τθσ ςφνδεςθσ των ςχζςεων (WHERE ΤΝΣΕΛΕΣΗ.ID= Σ.IDυντελεςτι). Εκτόσ αυτισ τθσ ςυνκικθσ, είναι δυνατό να περιζχονται και άλλεσ που πρζπει να πλθροφν οι πλειάδεσ του αποτελζςματοσ. 6

Παράδειγμα-2 (ςυνζχεια) Ερώτθμα: Να δοκοφν οι κωδικοί των ταινιών ςτισ οποίεσ ζχει ςυμμετάςχει ο Alfred Hitchcock. SELECT IDΣαινίασ FROM Σ, ΤΝΣΕΛΕΣΗ WHERE Σ.IDυντελεςτι = ΤΝΣΕΛΕΣΗ.ID AND ΤΝΣΕΛΕΣΗ.Όνομα = 'Alfred Hitchcock'; Μετά τθν εντολι WHERE υπάρχει εκτόσ από τθν ςυνκικθ ςφνδεςθσ των ςχζςεων και μία επιπλζον ςυνκικθ φιλτραρίςματοσ 7

Παράδειγμα - 2 (ςυνζχεια).όνομα.id Σ.IDυντελε ςτή Σ.IDΣαινί ασ Σ.Ρόλοσ Alfred Hitchcock 1 1 1 κηνοθέτησ Alfred Hitchcock 1 2 1 Ηθοποιόσ Αντίκετα με το προθγοφμενο παράδειγμα, αυτζσ οι πλειάδεσ απορρίπτονται, κακώσ δεν ικανοποιοφν τον περιοριςμό.όνομα = Alfred Hitchcock Alfred Hitchcock 1 1 2 κηνοθέτησ Alfred Hitchcock 1 3 2 Ηθοποιόσ Grace Kelly 2 1 1 κηνοθέτησ Grace Kelly 2 2 1 Ηθοποιόσ Grace Kelly 2 1 2 κηνοθέτησ Grace Kelly 2 3 2 Ηθοποιόσ Anthony Perkins 3 1 1 κηνοθέτησ Σ.IDΣαινίασ 1 2 Anthony Perkins 3 2 1 Ηθοποιόσ Anthony Perkins 3 1 2 κηνοθέτησ Anthony Perkins 3 3 2 Ηθοποιόσ 8

Η εντολι INNER JOIN Η πράξθ τθσ ςφνδεςθσ δφο ι περιςςοτζρων ςχζςεων μπορεί να δθλωκεί και εκτόσ τθσ εντολισ WHERE. Αυτό γίνεται μζςω τθσ εντολισ INNER JOIN. SELECT... FROM R1,R2 WHERE R1.ID= R2.ID Φεύγει η εντολή WHERE και μετά την εντολή FROM τοποθετούμε την εντολή INNER JOIN, τισ ςχέςεισ που θα ςυνδέςουμε και το χαρακτηριςτικό πάνω ςτο οποίο θα γίνει η ςύνδεςη Σα 2 ερωτήματα είναι ιςοδύναμα SELECT FROM R1 INNER JOIN R2 ON R1.ID= R2.ID Ποιεσ είναι οι αντίςτοιχεσ εντολζσ ςτθ ςχεςιακι άλγεβρα? 9

Η εντολι INNER JOIN (ςυνζχεια) Ζτςι, το ερώτθμα Προςτίκεται θ εντολι INNER JOIN SELECT IDΣαινίασ FROM Σ, ΤΝΣΕΛΕΣΗ WHERE Σ.IDυντελεςτι = ΤΝΣΕΛΕΣΗ.ID AND ΤΝΣΕΛΕΣΗ.Όνομα = 'Alfred Hitchcock'; είναι ιςοδφναμο του Φεφγει θ ςυνκικθ και προςτίκεται μετά τθν εντολι FROM SELECT IDΣαινίασ FROM Σ INNER JOIN ΤΝΣΕΛΕΣΗ ON Σ.IDυντελεςτι = ΤΝΣΕΛΕΣΗ.ID WHERE ΤΝΣΕΛΕΣΗ.Όνομα = 'Alfred Hitchcock'; 10

Join τριών ι περιςςοτζρων ςχζςεων SELECT... Η ςφνδεςθ γίνεται ςυνδζοντασ διαδοχικά τθν 1θ με τθ 2θ ςχζςθ, τθ 2θ με τθν 3θ, τθν 3θ με τθν 4θ, κτλ FROM R 1,R 2, R 3,, R m WHERE R 1.ID= R 2.ID AND R 2.ID= R 3.ID AND R m- 1.ID = R m.id SELECT Σα 2 ερωτήματα είναι ιςοδύναμα FROM R 1 INNER JOIN R 2 ON R 1.ID= R 2.ID INNER JOIN R 3 ON R 2.ID= R 3.ID INNER JOIN. ON R m- 1.ID = R m.id 11

Join τριών ι περιςςοτζρων ςχζςεων (ςυνζχεια) H εντολι INNER JOIN τοποκετείται μόνο μεταξφ δφο ςχζςεων που μποροφν να ςυνδεκοφν βάςει κάποιου χαρακτθριςτικοφ Ζτςι εάν ζχουμε τισ ςχζςεισ R 1 (a,b), R 2 (b,c) R 3 (c,d), το ερώτθμα SELECT FROM R 2 INNER JOIN R 3 ON INNER JOIN R 1 ON. ΠΡΟΟΧΗ είναι λάκοσ. Σο ςωςτό ερώτθμα είναι το SELECT FROM R 1 INNER JOIN R 2 ON R 1.b= R 2.b INNER JOIN R 3 ON R 2.c= R 3.c 12

Join τριών ι περιςςοτζρων ςχζςεων - Παράδειγμα o o o Να βρεκοφν για κάκε πελάτθ (όνομα), ο κωδικόσ και θ τιμι των καςετών που ζχει ενοικιάςει Οι ςχζςεισ που μασ ενδιαφζρουν είναι οι Πελάτθσ, Ενοικίαςθ και Καςζτα. υνδζουμε τισ ςχζςεισ ανά δφο ωσ εξισ: τθν Πελάτθσ με τθν Ενοικίαςθ ςτο χαρακτθριςτικό IDΠελάτθ και τθ Ενοικίαςθ με τθ Καςζτα ςτο χαρακτθριςτικό IDΚαςζτασ. 13

Join τριών ι περιςςοτζρων ςχζςεων Παράδειγμα (ςυνζχεια) SELECT ΠΕΛΑΣΗ.Όνομα, ΚΑΕΣΑ.ID, ΚΑΕΣΑ.Σιμι FROM ΠΕΛΑΣΗ INNER JOIN ΕΝΟΙΚΙΑΗ ON ΠΕΛΑΣΗ.ID = ΕΝΟΙΚΙΑΗ.IDΠελάτθ INNER JOIN ΚΑΕΣΑ ON ΕΝΟΙΚΙΑΗ.IDΚαςζτασ = ΚΑΕΣΑ.ID; 14

Join τριών ι περιςςοτζρων ςχζςεων Παράδειγμα (ςυνζχεια) ID όνομα τηλέφωτο 1 Perkins 246801 2 Καντακουζηνόσ 246801 3 Παλαιολόγοσ 987654 IDΚας έτασ IDΣαινία σ Σύποσ Ποςότητα Σιμή 1 1 VHS 3 2 2 1 DVD 1 3 3 2 VHS 2 2 IDΠελάτη IDΚαςέτασ Από Εώσ 1 1 07/10/2006 09/10/2006 1 2 09/20/2006 11/20/2006 2 1 09/10/2006 NULL ID όνομα τηλέφ ωνο IDΠελά τη IDΚαςέ τασ Από Εώσ IDΚαςέ τασ IDΣαινί ασ Σύποσ Ποςότ ητα Σιμή 1 Perkins 246801 1 1 07/10/2 006 09/10/2 006 1 1 VHS 3 2 15 1 Perkins 246801 1 2 2 Καντακ ουζηνόσ 246801 2 1 09/20/2 006 09/10/2 006 11/20/2 006 NULL 2 1 DVD 1 3 1 1 VHS 3 2

Σελεςτζσ JOIN o Μζχρι ςτιγμισ μελετιςαμε τθν εντολι INNER JOIN που αντιςτοιχεί ςτον EQUI-JOIN (ςφνδεςθ ιςότθτασ) τελεςτι τθσ ςχεςιακισ άλγεβρασ. o Όπωσ είδαμε και ςτα προθγοφμενα παραδείγματα, ςτο αποτζλεςμα του INNER JOIN ςυμμετζχουν μόνο οι πλειάδεσ των ςχζςεων για τισ οποίεσ ζγινε ταφτιςθ των τιμών τουσ με τισ τιμζσ των πλειάδων των άλλων ςχζςεων ςτα χαρακτθριςτικά πάνω ςτα οποία ορίςαμε τθ ςφνδεςθ. Πχ. ςτο προθγοφμενο παράδειγμα ςυμμετζχουν μόνον οι πλειάδεσ τθσ ςχζςθσ Πελάτθσ που οι τιμζσ τουσ ςτο πεδίο ID εμφανίηονται και ςτο πεδίο IDΠελάτθ τθσ ςχζςθσ Ενοικίαςθ (ο πελάτθσ Παλαιολόγοσ δεν ςυμμετζχει ςτο αποτζλεςμα). 16

Σελεςτζσ JOIN (ςυνζχεια) o Επιπλζον υπάρχει θ δυνατότθτα να πραγματοποιιςουμε εξωτερικι ςφνδεςθ μεταξφ δφο ι περιςςοτζρων ςχζςεων. o Η εξωτερικι ςφνδεςθ μπορεί να είναι αριςτερι (left), δεξιά (right), ι πλιρθσ (full). 17

LEFT-OUTER JOIN Με τθν εντολι LEFT OUTER JOIN, το αποτζλεςμα περιζχει όλεσ τισ πλειάδεσ που εμφανίηονται και ςτθν INNER JOIN, και επιπλζον όλεσ τισ πλειάδεσ τθσ αριςτερισ ςχζςθσ για τισ οποίεσ δεν ζγινε ταφτιςθ τιμών (των χαρακτθριςτικών πάνω ςτα οποία ορίςτθκε το JOIN των ςχζςεων) με καμία πλειάδα τθσ δεξιάσ ςχζςθσ. Για τισ πλειάδεσ που δεν ζγινε ταφτιςθ τιμών οι ςτιλεσ που προζρχονται από τθ δεξιά ςχζςθ παίρνουν τιμι NULL. υνεπώσ, κάκε πλειάδα τθσ αριςτερισ ςχζςθσ ςυμμετζχει ςτο αποτζλεςμα. 18

LEFT-OUTER JOIN Παράδειγμα o Ερώτθμα: Να βρεκοφν για κάκε πελάτθ (όνομα), ο κωδικόσ και θ τιμι των καςετών που ζχει ενοικιάςει. Αποτζλεςμα του INNER JOIN Να εμφανίηονται και οι πελάτεσ που δεν ζχουν ενοικιάςει κάποια καςζτα. Αποτζλεςμα του LEFT OUTER JOIN o Για τουσ πελάτεσ που δεν ζχουν ενοικιάςει κάποια καςζτα, δεν υπάρχει το ID τουσ ςτθ ςχζςθ Ενοικίαςθ. Επομζνωσ για να πάρουμε τα ονόματά τουσ, πρζπει να γίνει εξωτερικι ςφνδεςθ των ςχζςεων Πελάτθσ και Ενοικίαςθ SELECT ΠΕΛΑΣΗ.Όνομα, ΚΑΕΣΑ.ID, ΚΑΕΣΑ.Σιμι FROM ΠΕΛΑΣΗ LEFT OUTER JOIN ΕΝΟΙΚΙΑΗ ON ΠΕΛΑΣΗ.ID = ΕΝΟΙΚΙΑΗ.IDΠελάτθ LEFT OUTER JOIN ΚΑΕΣΑ ON ΕΝΟΙΚΙΑΗ.IDΚαςζτασ = ΚΑΕΣΑ.ID; 19

LEFT-OUTER JOIN Παράδειγμα(ςυνζχεια) ID όνομα τηλέφωτο 1 Perkins 246801 2 Καντακουζηνόσ 246801 3 Παλαιολόγοσ 987654 Για τον πελάτθ με όνομα Παλαιολόγοσ, δεν υπάρχει καμία πλειάδα τθσ ςχζςθσ Ενοικίαςθ με IDΠελάτθ = 3. Επομζνωσ θ πλειάδα <3, Παλαιολόγοσ, 987654> εμφανίηεται ςτο τελικό αποτζλεςμα, οι υπόλοιπεσ ςτιλεσ όμωσ παίρνουν τθν τιμι NULL IDΚας έτασ IDΣαινία σ Σύποσ Ποςότητα Σιμή 1 1 VHS 3 2 2 1 DVD 1 3 3 2 VHS 2 2 IDΠελάτη IDΚαςέτασ Από Εώσ 1 1 07/10/2006 09/10/2006 1 2 09/20/2006 11/20/2006 2 1 09/10/2006 NULL ID όνομα τηλέφω νο IDΠελά τη IDΚαςέ τασ Από Εώσ IDΚαςέ τασ IDΣαινί ασ Σύποσ Ποςότη τα Σιμή 20 1 Perkins 246801 1 1 07/10/20 06 1 Perkins 246801 1 2 2 3 Καντακο υζηνόσ Παλαιο 246801 2 1 09/20/20 06 09/10/20 06 09/10/20 06 11/20/20 06 1 1 VHS 3 2 2 1 DVD 1 3 NULL 1 1 VHS 3 2 987654 NULL NULL NULL NULL NULL NULL NULL NULL NULL

LEFT-OUTER JOIN Ερώτθςθ το προθγοφμενο ερώτθμα SELECT ΠΕΛΑΣΗ.Όνομα, ΚΑΕΣΑ.ID, ΚΑΕΣΑ.Σιμι FROM ΠΕΛΑΣΗ LEFT OUTER JOIN ΕΝΟΙΚΙΑΗ ON ΠΕΛΑΣΗ.ID = ΕΝΟΙΚΙΑΗ.IDΠελάτθ LEFT OUTER JOIN ΚΑΕΣΑ ON ΕΝΟΙΚΙΑΗ.IDΚαςζτασ = ΚΑΕΣΑ.ID; τί κα γινόταν εάν το αντικακιςτοφςαμε με το ερώτθμα SELECT ΠΕΛΑΣΗ.Όνομα, ΚΑΕΣΑ.ID, ΚΑΕΣΑ.Σιμι FROM ΠΕΛΑΣΗ LEFT OUTER JOIN ΕΝΟΙΚΙΑΗ ON ΠΕΛΑΣΗ.ID = ΕΝΟΙΚΙΑΗ.IDΠελάτθ ΙΝΝER JOIN ΚΑΕΣΑ ON ΕΝΟΙΚΙΑΗ.IDΚαςζτασ = ΚΑΕΣΑ.ID; 21

RIGHT-OUTER JOIN Με τθν εντολι RIGHT OUTER JOIN, το αποτζλεςμα περιζχει όλεσ τισ πλειάδεσ που εμφανίηονται και ςτθν INNER JOIN, και επιπλζον όλεσ τισ πλειάδεσ τθσ δεξιάσ ςχζςθσ για τισ οποίεσ δεν ζγινε ταφτιςθ τιμών (των χαρακτθριςτικών πάνω ςτα οποία ορίςτθκε το JOIN των πινάκων) με καμία πλειάδα τθσ αριςτερισ ςχζςθσ. Για τισ πλειάδεσ που δεν ζγινε ταφτιςθ τιμών οι ςτιλεσ που αντιςτοιχοφν ςτθν αριςτερι ςχζςθ παίρνουν τιμι NULL. υνεπώσ, κάκε πλειάδα τθσ δεξιάσ ςχζςθσ ςυμμετζχει ςτο αποτζλεςμα. 22

RIGHT-OUTER JOIN Παράδειγμα o Ερώτθμα: Να βρεκοφν για κάκε πελάτθ (όνομα), ο κωδικόσ και θ τιμι των καςετών που ζχει ενοικιάςει. Να εμφανίηονται οι κωδικοί και τιμζσ των καςετών που δεν ζχουν ενοικιαςτεί από κάποιον πελάτθ. Αποτζλεςμα του INNER JOIN Αποτζλεςμα του RIGHT OUTER JOIN o Για τισ καςζτεσ που δεν ζχουν ενοικιαςτεί από κάποιο πελάτθ, δεν υπάρχει το ID τουσ ςτθ ςχζςθ Ενοικίαςθ. Επομζνωσ για να πάρουμε τον κωδικό και τθν τιμι τουσ, πρζπει να γίνει εξωτερικι ςφνδεςθ των ςχζςεων Καςζτα και Ενοικίαςθ 23 SELECT ΠΕΛΑΣΗ.Όνομα, ΚΑΕΣΑ.ID, ΚΑΕΣΑ.Σιμι FROM ΠΕΛΑΣΗ RIGHT OUTER JOIN ΕΝΟΙΚΙΑΗ ON ΠΕΛΑΣΗ.ID = ΕΝΟΙΚΙΑΗ.IDΠελάτθ RIGHT OUTER JOIN ΚΑΕΣΑ ON ΕΝΟΙΚΙΑΗ.IDΚαςζτασ = ΚΑΕΣΑ.ID;

RIGHT-OUTER JOIN Παράδειγμα(ςυνζχεια) ID όνομα τηλέφωτο 1 Perkins 246801 2 Καντακουζηνόσ 246801 3 Παλαιολόγοσ 987654 IDΚας έτασ IDΣαινία σ Σύποσ Ποςότητα Σιμή 1 1 VHS 3 2 2 1 DVD 1 3 3 2 VHS 2 2 ID IDΠελάτη IDΚαςέτασ Από Εώσ 1 1 07/10/2006 09/10/2006 1 2 09/20/2006 11/20/2006 2 1 09/10/2006 NULL όνομα τηλέφω νο IDΠελά τη IDΚαςέ τασ Από Εώσ IDΚαςέ τασ Για τθν καςζτα με IDΚαςζτασ 3, δεν ζχει υπάρχει καμία πλειάδα τθσ ςχζςθσ Ενοικίαςθ με IDΚαςζτασ 3. Επομζνωσ θ πλειάδα < 3, 2,VHS, 2,2> εμφανίηεται ςτο τελικό αποτζλεςμα, οι υπόλοιπεσ ςτιλεσ όμωσ παίρνουν τθν τιμι NULL IDΣαινί ασ Σύποσ Ποςότη τα Σιμή 24 1 Perkins 246801 1 1 07/10/20 06 1 Perkins 246801 1 2 2 Καντακο υζηνόσ 246801 2 1 09/20/20 06 09/10/20 06 09/10/20 06 11/20/20 06 1 1 VHS 3 2 2 1 DVD 1 3 NULL 1 1 VHS 3 2 NULL NULL NULL NULL NULL NULL NULL 3 2 VHS 2 2

RIGHT-OUTER JOIN Ερώτθμα Σι κα γινόταν εάν αντικακιςτοφςαμε το ερώτθμα SELECT ΠΕΛΑΣΗ.Όνομα, ΚΑΕΣΑ.ID, ΚΑΕΣΑ.Σιμι FROM ΠΕΛΑΣΗ RIGHT OUTER JOIN ΕΝΟΙΚΙΑΗ ON ΠΕΛΑΣΗ.ID = ΕΝΟΙΚΙΑΗ.IDΠελάτθ RIGHT OUTER JOIN ΚΑΣΕΤΑ ON ΕΝΟΙΚΙΑΗ.IDΚαςζτασ = ΚΑΕΣΑ.ID; με το ερώτθμα SELECT ΠΕΛΑΣΗ.Όνομα, ΚΑΕΣΑ.ID, ΚΑΕΣΑ.Σιμι FROM ΠΕΛΑΣΗ INNER JOIN ΕΝΟΙΚΙΑΗ ON ΠΕΛΑΣΗ.ID = ΕΝΟΙΚΙΑΗ.IDΠελάτθ RIGHT OUTER JOIN ΚΑΣΕΤΑ ON ΕΝΟΙΚΙΑΗ.IDΚαςζτασ = ΚΑΕΣΑ.ID; 25

FULL-OUTER JOIN o Σζλοσ, υπάρχει και θ εντολι FULL OUTER JOIN, το αποτζλεςμα τθσ οποίασ περιζχει επιπλζον όλεσ τισ πλειάδεσ τθσ δεξιάσ ςχζςθσ και τισ αριςτερισ ςχζςθσ για τισ οποίεσ δεν ζγινε ταφτιςθ τιμών. o Για τισ πλειάδεσ που δεν ζγινε ταφτιςθ τιμών, οι ςτιλεσ που αντιςτοιχοφν ςτθν άλλθ ςχζςθ (αριςτερι ι δεξιά) παίρνουν τιμι NULL. o υνεπώσ, κάκε πλειάδα και των δφο ςχζςεων ςυμμετζχει ςτο αποτζλεςμα. 26

FULL-OUTER JOIN Παράδειγμα Ερώτθμα: Να βρεκοφν για κάκε πελάτθ (όνομα), ο κωδικόσ και θ τιμι των καςετών που ζχει ενοικιάςει. Να εμφανίηονται και οι πελάτεσ που δεν ζχουν ενοικιάςει κάποια καςζτα, αλλά και οι κωδικοί και τιμζσ των καςετών που δεν ζχουν ενοικιαςτεί από κάποιον πελάτθ. SELECT ΠΕΛΑΣΗ.Όνομα, ΚΑΕΣΑ.ID, ΚΑΕΣΑ.Σιμι FROM ΠΕΛΑΣΗ FULL OUTER JOIN ΕΝΟΙΚΙΑΗ ON ΠΕΛΑΣΗ.ID = ΕΝΟΙΚΙΑΗ.IDΠελάτθ FULL OUTER JOIN ΚΑΕΣΑ ON ΕΝΟΙΚΙΑΗ.IDΚαςζτασ = ΚΑΕΣΑ.ID; Αποτζλεςμα του INNER JOIN Αποτζλεςμα του LEFT OUTER JOIN Αποτζλεςμα του RIGHT OUTER JOIN 27

FULL-OUTER JOIN Παράδειγμα(ςυνζχεια) ID όνομα τηλέφωτο 1 Perkins 246801 2 Καντακουζηνόσ 246801 3 Παλαιολόγοσ 987654 IDΚας έτασ IDΣαινία σ Σύποσ Ποςότητα Σιμή 1 1 VHS 3 2 2 1 DVD 1 3 3 2 VHS 2 2 IDΠελάτη IDΚαςέτασ Από Εώσ 1 1 07/10/2006 09/10/2006 1 2 09/20/2006 11/20/2006 2 1 09/10/2006 NULL ID όνομα τηλέφω νο IDΠελά τη IDΚαςέ τασ Από Εώσ IDΚαςέ τασ IDΣαινί ασ Σύποσ Ποςότη τα Σιμή 28 1 Perkins 246801 1 1 07/10/20 06 1 Perkins 246801 1 2 2 Καντακο υζηνόσ 246801 2 1 09/20/20 06 09/10/20 06 09/10/20 06 11/20/20 06 1 1 VHS 3 2 2 1 DVD 1 3 NULL 1 1 VHS 3 2 NULL NULL NULL NULL NULL NULL NULL 3 2 VHS 2 2 3 Παλαιο λόγοσ 987654 NULL NULL NULL NULL NULL NULL NULL NULL NULL

Αυτο-ςφνδεςθ Σί γίνεται όμωσ όταν προκφπτει θ ανάγκθ να ςυνδζςουμε ζναν πίνακα με τον εαυτό του για να πάρουμε το επικυμθτό αποτζλεςμα? Πχ. Να βρεκεί το όνομα κάκε πελάτθ που ζχει το ίδιο τθλζφωνο με τον πελάτθ με το όνομα Perkins (εκτόσ του ίδιου του Perkins). Για να παράξουμε το επικυμθτό αποτζλεςμα κα πρζπει, να ελεγχκεί κάκε γραμμι μίασ ςχζςθσ με όλεσ τισ υπόλοιπεσ τθσ ίδιασ ςχζςθσ. 29

Αυτο-ςφνδεςθ (ςυνζχεια) ε αυτιν τθν περίπτωςθ, δθμιουργοφμε δφο διαφορετικά ςτιγμιότυπα τθσ ίδιασ ςχζςθσ και δουλεφουμε με αυτά τα ςτιγμιότυπα ςαν να ιταν δφο διαφορετικζσ ςχζςεισ. Α ID όνομα τηλέφωτο 1 Perkins 246801 2 Καντακουζηνόσ 246801 3 Παλαιολόγοσ 987654 Β ID όνομα τηλέφωτο 1 Perkins 246801 2 Καντακουζηνόσ 246801 3 Παλαιολόγοσ 987654 30

Αυτο-ςφνδεςθ (ςυνζχεια) Για να απαντιςουμε ςτο παρακάτω ερώτθμα, αρκεί να ςχθματίςουμε το καρτεςιανό γινόμενο των ςχζςεων Α και Β και ςτθ ςυνζχεια να επιλζξουμε όλεσ τισ πλειάδεσ για τισ οποίεσ ιςχφει Α. τθλζφωνο = Β.τθλζφωνο AND Α. όνομα = Perkins AND Α.όνομα <> Β. όνομα Α.ID Α.όνομα Α.τηλέφωτο Β.ID Β.όνομα Β.τηλέφωτο 1 Perkins 246801 1 Perkins 246801 1 Perkins 246801 2 Καντακουζηνόσ 246801 1 Perkins 246801 3 Παλαιολόγοσ 987654 2 Καντακουζηνόσ 246801 1 Perkins 246801 2 Καντακουζηνόσ 246801 2 Καντακουζηνόσ 246801 2 Καντακουζηνόσ 246801 3 Παλαιολόγοσ 987654 3 Παλαιολόγοσ 987654 1 Perkins 246801 3 Παλαιολόγοσ 987654 2 Καντακουζηνόσ 246801 31 3 Παλαιολόγοσ 987654 3 Παλαιολόγοσ 987654

Αυτο-ςφνδεςθ (ςυνζχεια) SELECT B.Όνομα FROM ΠΕΛΑΤΗΣ AS A, ΠΕΛΑΤΗΣ AS B WHERE A.Σθλζφωνο = B.Σθλζφωνο AND A.Όνομα = 'Perkins' AND B.Όνομα <> 'Perkins'; 32

Αυτο-ςφνδεςθ Παράδειγμα 2 Ερώτθμα: Να βρεκοφν ο κωδικόσ κάκε ταινίασ για τθν οποία θ καςζτα τφπου VHS είναι ςε μεγαλφτερθ διακζςιμθ ποςότθτα από τθν αντίςτοιχθ καςζτα τφπου DVD. Βιμα 1 ο. χθματίηουμε δφο διαφορετικά ςτιγμιότυπα Α και Β τθσ ςχζςθσ Καςζτα. Βιμα 2 ο. χθματίηουμε το καρτεςιανό γινόμενο των πλειάδων των ςχζςεων Α και Β. Βιμα 3 ο. Επιλζγουμε τισ πλειάδεσ εξόδου βάςει κάποιων ςυνκθκών (ποιεσ είναι οι ςυνκικεσ ςτθν περίπτωςι μασ?) 33

Αυτο-ςφνδεςθ Παράδειγμα 2 (ςυνζχεια) Α.IDΚ αςέτα σ.idσα ινίασ Α.Σύπ οσ Α.Πος ότητα Α.Σιμή Β.IDΚ αςέτα σ Β.IDΣα ινίασ Β.Σύπο σ Β.Πος ότητα Β.Σιμή 1 1 VHS 3 2 1 1 VHS 3 2 1 1 VHS 3 2 2 1 DVD 1 3 1 1 VHS 3 2 3 2 VHS 2 2 2 1 DVD 1 3 1 1 VHS 3 2 2 1 DVD 1 3 2 1 DVD 1 3 2 1 DVD 1 3 3 2 VHS 2 2 3 2 VHS 2 2 1 1 VHS 3 2 3 2 VHS 2 2 2 1 DVD 1 3 3 2 VHS 2 2 3 2 VHS 2 2 34

Αυτο-ςφνδεςθ Παράδειγμα 2 (ςυνζχεια) SELECT Α.IDΣαινίασ FROM ΚΑΣΕΤΑ AS Α, ΚΑΣΕΤΑ AS Β WHERE Α.IDΣαινίασ = Β.IDΣαινίασ AND Α.Σφποσ = 'VHS' AND Β.Σφποσ = DVD AND Α.Ποςότθτα > B.Ποςότθτα 35