Κεφάλαιο 3. ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ B Μέρος. Tο Σχεσιακό Μοντέλο Σελίδα 1

Σχετικά έγγραφα
Η Γλώσσα SQL. Μέρος α. Η Γλώσσα SQL Σελίδα 1

ΣΧΕΣΙΑΚΟΣ ΛΟΓΙΣΜΟΣ. Tο Σχεσιακό Μοντέλο Σελίδα 1

Βάσεις Δεδομένων (Databases)

Query-by-Example (QBE)

Διδάσκων: Παναγιώτης Ανδρέου

Βελτιστοποίηση ερωτημάτων Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη

Βάσεις Δεδομένων (Databases)

Κεφάλαιο 3 ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ. I.B. Το Σχεσιακό Μοντέλο Σελίδα 2.1

Εισαγωγή στη Σχεσιακή Άλγεβρα

Σχεσιακή Άλγεβρα και Σχεσιακός Λογισμός. Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός

Βάσεις Δεδομένων (Databases)

ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ Relational Model. SQL Μαθ. #11

Τελεστής Προβολής - Παράδειγμα. Π Πόλη, Εξάμηνο (Φοιτητές)

QUERY-BY-EXAMPLE. Η Γλώσσα SQL Σελίδα 1

Διάλεξη 10: Σχεσιακή Άλγεβρα και Σχεσιακός Λογισμός (Relational Algebra/Calculus) ΙI

ΗΥ360 Αρχεία και Βάσεις Δεδομένων. Φροντιστήριο στην Σχεσιακή Άλγεβρα.

Βάσεις Δεδομένων. Σχεσιακό Μοντέλο Δεδομένων. Βασίλειος Βεσκούκης Ορισμός Βάσης Δεδομένων Δομή Περιορισμοί

Σχεσιακή Άλγεβρα Σχεδιασμός Βάσεων Δεδομένων

H Γλώσσα SQL Σχεδιασμός Βάσεων Δεδομένων

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής Ακαδημαϊκό Έτος Εαρινό. Μάθημα 7 Κεφάλαιο 6: Τυπικές Σχεσιακές Γλώσσες

Βάσεις δεδομένων. (6 ο μάθημα) Ηρακλής Βαρλάμης

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

Βάσεις εδοµένων. Συνολοθεωρητικές Πράξεις. Ειδικές Πράξεις. Εκφράσεις. Θεµελίωση της Σχεσιακού Μοντέλου εδοµένων. Σχεσιακή Άλγεβρα Σχεσιακός Λογισµός

Κεφ 4: Προχωρημένες Εντολές SQL

Σχεσιακή Άλγεβρα. Κεφάλαιο 4. Database Management Systems, R. Ramakrishnan and J. Gehrke

Kεφ.2: Σχεσιακό Μοντέλο (επανάληψη) Κεφ.6.1: Σχεσιακή Άλγεβρα

SQL Data Manipulation Language

SQL: Αιτήματα. Κεφάλαιο 5. Database Management Systems, R. Ramakrishnan and J. Gehrke

ΗΥ360: Αρχεία και Βάσεις Δεδομένων Διδάσκων: Πλεξουσάκης Δημήτρης. Φροντιστήριο Σχεσιακή Άλγεβρα Δημητράκη Κατερίνα

Βάσεις εδοµένων Ευαγγελία Πιτουρά 2

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

ΗΥ-360 Αρχεία και Βάσεις Δεδομένων Διδάσκων: Δ. Πλεξουσάκης. Φροντιστήριο SQL Examples ΙΙ Ξένου Ρουμπίνη

Σχεσιακή Άλγεβρα Relational Algebra

BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΦΕΒΡΟΥΑΡΙΟΥ 2005

#5. Σχεσιακό Μοντέλο

Σχεσιακή Άλγεβρα. Σχεσιακή Άλγεβρα

Διάλεξη 13: Γλώσσα Επεξεργασίας Δεδομένων/ Data Manipulation Language (SQL DML) I. Διδάσκων: Παναγιώτης Ανδρέου

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Επιλέγει όλες τις πλειάδες, από μια σχέση R, που ικανοποιούν τη συνθήκη επιλογής.

ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ (Relational Model) Μαθ. #10

Σχεσιακή Άλγεβρα. Παύλος Εφραιμίδης. Βάσεις Δεδομένων Σχεσιακή Άλγεβρα 1

Τμήμα Διοίκησης Επιχειρήσεων

Βάσεις Δεδομένων Ενότητα 6

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 2. Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων)


Βάσεις Δεδομένων Ευαγγελία Πιτουρά 2. Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

Department of Computer Science University of Cyprus. EPL342 Databases. Lecture 10: RA IΙ. RA Advanced + Examples

SQL: Συναρτήσεις Συνάθροισης

Το εσωτερικό ενός Σ Β

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

Αρχεία και Βάσεις Δεδομένων

Κεφάλαιο 3 ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ. I.B. Το Σχεσιακό Μοντέλο Σελίδα 1.144

Βάσεις Δεδομένων Προχωρημένα Ερωτήματα SQL

S Q Q L L -- SQL (Structured Query Language) select insert update delete 2.47

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

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ

Θεωρία Κανονικοποίησης

Σχεσιακή Άλγεβρα. Προγράµµατα που απαντούν σε ερωτήσεις για τον παρόν στιγµιότυπο της βάσης δεδοµένων (quering)

Περιεχόμενα. Βάσεις Δεδομένων Προχωρημένα Ερωτήματα SQL. Συνένωση Σχέσεων στην SQL2 (3) Συνένωση Σχέσεων στην SQL2. (Join Relations Feature in SQL)

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 3ο Μάθημα: Εισαγωγή στην SQL. Δρ. Κωνσταντίνος Χ.

Βάσεις Δεδομένων (Databases)

Βάσεις εδοµένων Ευαγγελία Πιτουρά 2. Εννοιολογικός Σχεδιασµός Βάσεων Δεδοµένων (µε χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων)

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Εισαγωγή στις βασικές έννοιες των Βάσεων Δεδομένων

Σχεσιακή Άλγεβρα. Προγράµµατα που απαντούν σε επερωτήσεις για τον παρόν στιγµιότυπο της βάσης δεδοµένων (querying)

Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων

Σχεσιακή Άλγεβρα. Συνολοθεωρητικές Πράξεις. Εκφράσεις. Ειδικές Πράξεις. Θεμελίωση της Σχεσιακού Μοντέλου Δεδομένων. Σχεσιακός Λογισμός

Σχεδίαση Σχεσιακών ΒΔ

Εισαγωγή. Γενική Εικόνα του Μαθήµατος. Το εσωτερικό ενός Σ Β. Εισαγωγή. Εισαγωγή Σ Β Σ Β. Αρχεία ευρετηρίου Κατάλογος συστήµατος Αρχεία δεδοµένων

Lecture 16: SQL DML III

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 7: Αλγόριθμοι για επεξεργασία ερωτήσεων και βελτιστοποίηση

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

Βάσεις δεδομένων. (7 ο μάθημα) Ηρακλής Βαρλάμης

Λογικός Σχεδιασµός Σχεσιακών Σχηµάτων: Αποσύνθεση. Βάσεις εδοµένων Ευαγγελία Πιτουρά 1

Βάσεις Δεδομένων. Σχεσιακή Άλγεβρα. Φροντιστήριο 4 ο

Η Γλώσσα SQL. Παράδειγμα ΒΔ (Τράπεζα)

Επεξεργασία Ερωτήσεων

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής

Σχεσιακό Μοντέλο. Σχεδιασμός Βάσεων Δεδομένων Μάθημα 2 ο Μαρία Χαλκίδη

ΑΣΚΗΣΕΙΣ ΣΕ ΔΙΑΓΡΑΜΜΑΤΑ ΟΝΤΟΤΗΤΩΝ - ΣΥΣΧΕΤΙΣΕΩΝ

Διάλεξη 06: Σχεσιακό Μοντέλο I (Relational Data Model) Διδάσκων: Παναγιώτης Ανδρέου

Κεφάλαιο 9 Συναθροίσεις

ΤΑΞΙΝΟΜΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΩΤΗΜΑΤΟΣ

BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΦΕΒΡΟΥΑΡΙΟΥ 2013

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

Σχεσιακή Άλγεβρα. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Διάλεξη 14: Γλώσσα Επεξεργασίας Δεδομένων/ Data Manipulation Language (SQL DML) II. Διδάσκων: Παναγιώτης Ανδρέου

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - ΣΧΕΣΙΑΚΗ ΑΛΓΕΒΡΑ

Σχεσιακή Άλγεβρα. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Σχεσιακή Άλγεβρα. Βάσεις Δεδομένων : Σχεσιακή Άλγεβρα 1

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Μεταβλητές- Τύποι- Τελεστές

(Μέρος 3:Γλώσσα Ορισµού, Γλώσσα Τροποποίησης, Ενσωµατωµένη SQL) Βάσεις εδοµένων Ευαγγελία Πιτουρά 2

Η SQL ως γλώσσα ερωτημάτων. Υπενθυμίζουμε: Σχέση = Πίνακας Πλειάδα = Εγγραφή = Γραμμή (Πίνακα) Πεδίο = Γνώρισμα (Σχέσης) = Στήλη (Πίνακα)

Σύνολα Ασκήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1


ΗΥ-360 Αρχεία και Βάσεις Δεδομένων Διδάσκων: Δ. Πλεξουσάκης. Φροντιστήριο SQL Examples Ξένου Ρουμπίνη

SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Σχεσιακή Άλγεβρα. Εισαγωγή. Εισαγωγή. Εισαγωγή. Παράδειγμα. Εισαγωγή. Ταινία Τίτλος Έτος Διάρκεια Είδος. Παίζει Όνομα-Ηθοποιού Τίτλος Έτος.

Το Σχεσιακό Μοντέλο-Σχεσιακή Άλγεβρα, Σχεσιακός Λογισμός. 06/06/2009 Μ.Χατζόπουλος 1

Transcript:

Κεφάλαιο 3 ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ B Μέρος Tο Σχεσιακό Μοντέλο Σελίδα 1

Το Σχεσιακό Μοντέλο ΣΥΝΟΨΗ ΚΕΦΑΛΑΙΟΥ Σχεσιακή Άλγεβρα Επέκταση της Σχεσιακής Άλγεβρας Παραδείγµατα Όψεις Κανόνες Ακεραιότητας Πράξεις Αλλαγών / Ενηµερώσεων Tο Σχεσιακό Μοντέλο Σελίδα 2

ΤΥΠΙΚΟΣ (Formal) ΟΡΙΣΜΟΣ ΕΚΦΡΑΣΗΣ ΣΤΗ ΣΧΕΣΙΑΚΗ ΑΛΓΕΒΡΑ Μία έκφραση στη Σχεσιακή Άλγεβρα αποτελείται από ένα εκ των: Μία Σχέση στη Βάση εδοµένων Μια σταθερή Σχέση Αν E 1 και E 2 είναι εκφράσεις στη Σχεσιακή Άλγεβρα, τότε και τα παρακάτω είναι όλα εκφράσεις στη Σχεσιακή Άλγεβρα: E 1 E 2 E 1 - E 2 E 1 x E 2 σ p (E 1 ), Pείναι συνθήκη σε γνωρίσµατα του E 1 s (E 1 ), Sείναι µια λίστα από γνωρίσµατα του E 1 ρ x (E 1 ), x είναι το νέο όνοµα του αποτελέσµατος του E 1 Tο Σχεσιακό Μοντέλο Σελίδα 3

Example Queries Find the names of all customers who have a loan at the Perryridge branch. loan (loan-number, branch-name, amount) borrower (customer-name, loan-number) π customer-name (σ loan.loan-number = borrower.loan-number (σ branch-name = Perryridge (borrower x loan))) loan x borrower σ branch-name = Perryridge (borrower x loan)) result Tο Σχεσιακό Μοντέλο Σελίδα 4

Example Queries Find the names of all customers who have a loan at the Perryridge branch. Query 1 π customer-name (σ branch-name = Perryridge (σ borrower.loan-number = loan.loan-number (borrower x loan))) Query 2 π customer-name (σ loan.loan-number = borrower.loan-number ((σ branch-name = Perryridge (loan)) x borrower)) Tο Σχεσιακό Μοντέλο Σελίδα 5

Find the largest account balance Rename account relation as d The query is: account Example Queries π balance (account) -π account.balance (σ account.balance < d.balance (account x ρ d (account))) σ account.balance < d.balance result Tο Σχεσιακό Μοντέλο Σελίδα 6

Additional Operations Ορίζουµε επιπλέον πράξεις που δεν προσθέτουν κάτι στη δύναµη της σχεσιακής άλγεβρας αλλά απλοποιούν συχνά queries Set intersection Natural join Division Assignment Tο Σχεσιακό Μοντέλο Σελίδα 7

Set-Intersection Operation Βάλε όλες τις κοινές πλειάδες των δύο Σχέσεων σε µια Σχέση Συµβολισµός: R S Τυπικά: : R S = { t t is in R and t is in S } Παράδειγµα : STUDENT INSTRUCTOR Assume: attributes of r and s are compatible Note: r s= r - (r - s) Tο Σχεσιακό Μοντέλο Σελίδα 8

Set-Intersection Operation - Example Relation r, s: A B α 1 α 2 β 1 A B α β 2 3 r s A B α 2 r s Tο Σχεσιακό Μοντέλο Σελίδα 9

Παράδειγµα Τράπεζας Customers With Both an Account and a Loan at the Bank π customer-name (depositor) π customer-name (borrower) borrower result depositor Tο Σχεσιακό Μοντέλο Σελίδα 10

Φυσική Συνένωση Natural Join Συνδύασε πλειάδες δύο Σχέσεων που ταιριάζουν (έχουν την ίδια τιµή) σε όλα τακοινά γνωρίσµατα. Στο αποτέλεσµα, τα κοινά γνωρίσµατα κρατούνται µόνο µια φορά >< Συµβολισµός : R S ή R [ X = X ] S Αν R = (A, B, C, D) S = (E, B, D) Result schema = (A, B, C, D, E) >< Παρατηρήστε ότι R S ορίζεται ως:s R.A, R.B, R.C, R.D, S.E (σ R.B = S.B R.D = S.D (r x s)) >< Παράδειγµα : borrower loan Tο Σχεσιακό Μοντέλο Σελίδα 11

Natural Join Operation Example Relations r, s: A B α β γ α 1 2 4 1 C D α γ β γ a a b a B 1 3 1 2 3 D a a a b b E α β γ δ Tο Σχεσιακό Μοντέλο Σελίδα 12 δ 2 β b 3 b ε r A B α α α α δ 1 1 1 1 2 C D α α γ γ β a a a a b E α γ α γ δ s r s

Παράδειγµα Τράπεζας (1) Βρες τo δάνειο και το αντίστοιχο ποσό που έχει δανειστεί κάθε πελάτης >< Π customer-name, loan-number, amount (borrower loan) borrower result loan Tο Σχεσιακό Μοντέλο Σελίδα 13

Παράδειγµα Τράπεζας (2) Σε ποιο υποκατάστηµα έχει λογαριασµό ο κάθε πελάτης >< Result of Π customer-name, branch-name (depositor account) account result depositor Tο Σχεσιακό Μοντέλο Σελίδα 14

ιαίρεση - Division Όταν δίνονται οι σχέσεις R = (A 1,, A m, B 1,, B n ) S = (B 1,, B n ) Το αποτέλεσµα της διαίρεσης R/Sείναι µια σχέση στο R S = (A 1,, A m ) τέτοια ώστε για κάθε t S στην S υπάρχει κάποιο t στην R/Sτέτοιο ώστε t t s να ανήκει στο R. Αναλογία µε την αριθµητική: Το πηλίκο q της a/b είναι ο µεγαλύτερος αριθµός έτσι ώστε qb <=a Το πηλίκο Q της R / S είναι η µέγιστη σχέση (σε πληθυσµό) έτσι ώστε Q X S R Χρήσιµη Πράξη για ερωτήσεις που περιέχουν το «για όλα» Tο Σχεσιακό Μοντέλο Σελίδα 15

ιαίρεση Παράδειγµα (1) Relations r, s: A B B r / s: A α α α α β γ δ δ δ ε ε β r 1 2 3 1 1 1 3 4 6 1 2 1 2 s Θέλουµε τις τιµές του Α που στην r συνδυάζονται µε όλες τις τιµές του Β της s β Tο Σχεσιακό Μοντέλο Σελίδα 16

ιαίρεση Παράδειγµα (2) A B α α α β β a a a a a C D α γ γ γ γ a a b a b E 1 1 1 1 3 Relations r, s: D a b E 1 1 s Tο Σχεσιακό Μοντέλο Σελίδα 17 γ γ γ a a a γ γ β a b b 1 1 1 r / s: A B α γ a a C γ γ r

Εκχώρηση - Assignment Η Λειτουργία εκχώρησης ( ) προσφέρει µια διευκόλυνση στην έκφραση πολύπλοκων επερωτήσεων, γράφοντας αυτές σαν σειριακά προγράµµατα που αποτελούνται από Μια σειρά εκχωρήσεων Ακολουθούµενη από µια έκφραση η τιµή της οποίας παρουσιάζεται ως το αποτέλεσµα της επερώτησης ΠΑΡΑ ΕΙΓΜΑ: temp1 R-S (r) temp2 R-S ((temp1 x s) R-S,S (r)) result = temp1 temp2 Το αποτέλεσµα στα δεξιά του εκχωρείται στη σχεσιακή µεταβλητή στα αριστερά του. Οι επόµενες εκφράσεις ΜΠΟΡΟΥΝ να τη χρησιµοποιήσουν Tο Σχεσιακό Μοντέλο Σελίδα 18

Εκτεταµένες πράξεις Σχεσιακής Άλγεβρας Generalized Projection Aggregate Functions Outer Join Tο Σχεσιακό Μοντέλο Σελίδα 19

Γενικευµένη Προβολή - Generalized Projection Επέκταση του projection που επιτρέπει αριθµητικές συναρτήσεις στη λίστα των γνωρισµάτων F1, F2,, Fn (E) E είναι οποιαδήποτε έκφραση σχεσιακής άλγεβρας Κάθε F 1, F 2,, F n είναι αριθµητικές εκφράσεις που συµπεριλαµβάνουν σταθερές και γνωρίσµατα στο σχήµα του Ε Αν θεωρήσουµε σχέση credit-info(customer-name, limit, credit-balance),βρες πόσα ακόµα µπορεί να ξοδέψει κάθε πελάτης customer-name, limit credit-balance (credit-info) Tο Σχεσιακό Μοντέλο Σελίδα 20

Συν-αθροιστικές Συναρτήσεις και Πράξεις Μια Aggregation functionδέχεται µια συλλογή από τιµές και επιστρέφει µια τιµή ως αποτέλεσµα. avg: average value min: minimum value max: maximum value sum: sum of values count: number of values Μια Συν-αθροιστική Πράξη στη σχεσιακή άλγεβρα: G1, G2,, Gng F1( A1), F2( A2),, Fn( An) (E) E έκφραση στη σχεσιακή άλγεβρα G 1, G 2, G n λίστα γνωρισµάτων για οµαδοποίηση Κάθε F i είναι µια συν-αθροιστική συνάρτηση Κάθε A i είναι το όνοµα ενός γνωρίσµατος Tο Σχεσιακό Μοντέλο Σελίδα 22

Aggregate Operation Παράδειγµα A B C Σχέση r: α α 7 α β 7 β β 3 β β 10 g sum(c) (r) sum-c 27 Tο Σχεσιακό Μοντέλο Σελίδα 23

Aggregate Operation Example Σχέση account grouped by (οµαδοποιηµένο σε) branch-name: branch-name account-number balance Perryridge Perryridge Brighton Brighton Redwood A-102 A-201 A-217 A-215 A-222 branch-name g sum(balance) (account) 400 900 750 750 700 branch-name Perryridge Brighton Redwood balance 1300 1500 700 Tο Σχεσιακό Μοντέλο Σελίδα 24

Συνένωση - Join Υπάρχουν πολλές µορφές Συνένωσης όλες συνδυάζουν δύο σχέσεις για την δηµιουργία µιας τρίτης (theta) join, equality join, semi-join, outer join Tο Σχεσιακό Μοντέλο Σελίδα 25

Θ-Συνένωση Theta join Συνδύασε πλειάδες δύο Σχέσεων που ταιριάζουν (πληρούν κάποια Boolean συνθήκη c) σε κάποια προσδιοριζόµενα γνωρίσµατα >< Συµβολισµός : R c S ή R [ c ] S Μια Θ-Συνένωσηείναι ισοδύναµη ενός Καρτεσιανού γινοµένου που ακολουθείται από µια επιλογή µε συνθήκη c. R >< c S =σ c( R S) Η Σχέση αποτέλεσµα έχειολατα γνωρίσµατατης R και της S Tο Σχεσιακό Μοντέλο Σελίδα 26

Θ-Συνένωση -Παράδειγµα EMPLOYEE(eid, ename, esalary, mngrid) MANAGER(mid, mname, msalary) Βρες τα ονόµατα των υπαλλήλων που βγάζουν περισσότερα από τους managers τους Π ename (EMPLOYEE >< mngrid = mid and esalary>msalary MANAGER) Tο Σχεσιακό Μοντέλο Σελίδα 27

Equality join (ή Equijoin) Συνδύασε πλειάδες δύο Σχέσεων που ταιριάζουν (έχουν την ίδια τιµή) σε κάποια γνωρίσµατα.είναι ειδική περίπτωση της Θ-Συνένωσης όπου η συνθήκη είναι ισότητα. Συµβολισµός: R >< c S ή R [ c ] S Παράδειγµα: EMPLOYEE >< mngrid = mid MANAGER Tο Σχεσιακό Μοντέλο Σελίδα 28

Ηµι-συνένωση Semi-join Επίλεξε το υποσύνολο µιας Σχέσης που συνενώνεται µε µια άλλη. Μια semi-join είναι ισοδύναµη µε µια συνένωση ακολουθούµενη από µια προβολή. Συµβολισµός : R c S Ισοδυναµεί µε π a1,..,an (R S)αν a 1,..., a n τα attributes της R Παράδειγµα: Βρες όλες τις πληροφορίες των υπαλλήλων που είναι mangers σε κάποιο τµήµα EMPLOYEE SSN=MgrSSN DEPARTMENT Tο Σχεσιακό Μοντέλο Σελίδα 29

Εξωτερική Συνένωση Outer Join Επέκταση του join για την αποφυγή απώλειας πληροφορίας Κίνητρο: Σε µια τυπική συνένωση, πλειάδες της µιας σχέσης που δεν ταιριάζουν µε καµία πλειάδα της άλλης σχέσης δεν παρουσιάζονται στο αποτέλεσµα. Σε ένα outer joinόλες οι πλειάδες πρέπει να παρουσιαστούν στο αποτέλεσµα -όταν δεν υπάρχουν ταιριάζουσες πλειάδες, τότε οι ειδικές τιµές NULL τοποθετούνται για τις τιµές γνωρισµάτων που λείπουν. Xωρίζονται σε: Left outer join: R S (όλες οι πλειάδες στην R παρουσιάζονται) Right outer join: R S (όλες οι πλειάδες στην S παρουσιάζονται) Full outer join: R S (όλες οι πλειάδες στην R και S παρουσιάζονται) Tο Σχεσιακό Μοντέλο Σελίδα 30

Joins Example loan loan-number branch-name amount borrower customer-name loan-number L-170 L-230 L-260 Downtown Redwood Perryridge 3000 4000 1700 Jones Smith Hayes L-170 L-230 L-155 Inner Join loan Borrower loan-number branch-name amount customer-name L-170 L-230 Downtown Redwood 3000 4000 Jones Smith Tο Σχεσιακό Μοντέλο Σελίδα 31

Outer Join Example loan loan-number branch-name amount borrower customer-name loan-number L-170 L-230 L-260 Downtown Redwood Perryridge 3000 4000 1700 Jones Smith Hayes L-170 L-230 L-155 Left Outer Join loan Borrower loan-number branch-name amount customer-name L-170 L-230 L-260 Downtown Redwood Perryridge 3000 4000 1700 Jones Smith null Tο Σχεσιακό Μοντέλο Σελίδα 32

Outer Join Example loan loan-number branch-name amount borrower customer-name loan-number L-170 L-230 L-260 Downtown Redwood Perryridge 3000 4000 1700 Jones Smith Hayes L-170 L-230 L-155 Rigt Outer Join loan Borrower loan-number branch-name amount customer-name L-170 L-230 L-155 Downtown Redwood null 3000 4000 null Jones Smith Hayes Tο Σχεσιακό Μοντέλο Σελίδα 33

Outer Join Example loan loan-number branch-name amount borrower customer-name loan-number L-170 L-230 L-260 Downtown Redwood Perryridge 3000 4000 1700 Jones Smith Hayes L-170 L-230 L-155 Full Outer Join loan Borrower loan-number branch-name amount customer-name L-170 L-230 L-260 L-155 Downtown Redwood Perryridge null 3000 4000 1700 null Jones Smith null Hayes Tο Σχεσιακό Μοντέλο Σελίδα 34

Σχεσιακή Άλγεβρα: Ερωταποκρίσεις (Queries) Ένα σύνολο ερωταποκρίσεων στην Σχεσιακή Άλγεβρα παρουσιάζεται στην συνέχεια, µε χρήση µιας Βάσης εδοµένων που περιλαµβάνει ναυτικούς (SAILORS ) οι οποίοι κάνουν κρατήσεις (RESERVE) για κάποια σκάφη (BOATS.) SAILORS (Sid, SName, Rating) BOATS (Bid, BName, Color) RESERVE (Sid, Bid, Date) Tο Σχεσιακό Μοντέλο Σελίδα 35

Σχεσιακή Άλγεβρα: Ερωταποκρίσεις (2) SAILORS (Sid, SName, Rating) BOATS (Bid, BName, Color) RESERVE (Sid, Bid, Date) QUERY1: Βρες τα ονόµατα των SAILORS πουέχουν κρατήσει το BOAT µε νούµερο 2 >< π SName (σ Bid=2 RESERVE Sid=Sid SAILORS) QUERY2: Βρες τα ονόµατα των SAILORS που έχουν κρατήσει BOAT µε χρώµα κόκκινο >< >< π SName (σ Color=red BOAT Bid=Bid RESERVE Sid=Sid SAILORS) Tο Σχεσιακό Μοντέλο Σελίδα 36

Σχεσιακή Άλγεβρα: Ερωταποκρίσεις (3) SAILORS (Sid, SName, Rating) BOATS (Bid, BName, Color) RESERVE (Sid, Bid, Date) QUERY3: Βρες τα χρώµατα των σκαφών που έχει κρατήσει η ναυτικός µε το όνοµα Ελένη π Color ( σ SName=eleni SAILORS Sid=Sid RESERVE Bid=Bid BOATS ) QUERY4: Βρες τα ονόµατα των ΝΑΥΤΙΚΩΝ που έχουν κρατήσει τουλάχιστον ένα ΣΚΑΦΟΣ >< >< π SName ( RESERVE Sid=Sid SAILORS ) >< Tο Σχεσιακό Μοντέλο Σελίδα 37

Σχεσιακή Άλγεβρα: Ερωταποκρίσεις (4) SAILORS (Sid, SName, Rating) BOATS (Bid, BName, Color) RESERVE (Sid, Bid, Date) QUERY5: Βρες τα ονόµατα των ΝΑΥΤΙΚΩΝ που έχουν κρατήσει ένα κόκκινο ή ένα πράσινο ΣΚΑΦΟΣ π SName ((σ Color=red BOATS σ Color=green BOATS) Bid=BidRESERVE Sid=SidSAILORS) QUERY6: Βρες τα ονόµατα των ΝΑΥΤΙΚΩΝ που έχουν κρατήσει ένα κόκκινο και ένα πράσινο ΣΚΑΦΟΣ >< >< π SName ((π Sid (σ Color=red BOATS Bid=Bid RESERVE) >< >< >< π Sid (σ Color=green BOATS Bid=Bid RESERVE)) Sid=Sid SAILORS ) Tο Σχεσιακό Μοντέλο Σελίδα 38

Σχεσιακή Άλγεβρα: Ερωταποκρίσεις (5) SAILORS (Sid, SName, Rating) BOATS (Bid, BName, Color) RESERVE (Sid, Bid, Date) QUERY7: Βρες τα ονόµατα των ΝΑΥΤΙΚΩΝ που έχουν κρατήσει όλα τα ΣΚΑΦΗ π SName (( π Sid, Bid RESERVE / π Bid BOATS) Sid=Sid SAILORS) QUERY8: Βρες τα ονόµατα και διαβαθµίσεις των ΝΑΥΤΙΚΩΝ που έχουν κρατήσει όλα τα κόκκινα ΣΚΑΦΗ >< >< π SName, Rating (( π Sid, Bid RESERVE / π Bid (σ Color=red BOATS )) Sid=Sid SAILORS) Tο Σχεσιακό Μοντέλο Σελίδα 39

Σχεσιακή Άλγεβρα: ΣΧΟΛΙΑ (1) Υπάρχουν διάφορες ιδιότητες που ισχύουν σε µια έκφραση της Σχεσιακής Άλγεβρας (µεταβατική, αντιµεταθετική, προσεταιριστική, κλπ.) Παραδείγµατα: σ c1 ( π L (R) ) = π L ( σ c1 (R) ) σ c1 ( R c2 S ) = σ c1 ( R ) c2 S σ c1 (R S) = σ c1 (R) σ c1 (S)... >< >< Αυτές οι ιδιότητες είναι εξαιρετικά χρήσιµες στην βελτιστοποίηση των ερωταποκρίσεων (query optimization) Tο Σχεσιακό Μοντέλο Σελίδα 40

Σχεσιακή Άλγεβρα: ΣΧΟΛΙΑ (2) ΠΛΗΡΕΣ ΣΥΝΟΛΟ ΠΡΑΞΕΩΝ Το σύνολο των πράξεων {σ, π,,, Χ, ρ }ονοµάζεται πλήρεςσύνολο πράξεων της Σχεσιακής Άλγεβρας. Η επαγωγή είναι ότι ΟΛΕΣ οι άλλες πράξεις µπορεί να περιγραφούν ως µια ακολουθία πράξεων από το σύνολο αυτό (το σύνολο αυτό έχουµε δει στον τυπικό ορισµό της έκφρασης σχεσιακής άλγεβρας ) Για παράδειγµα, η διαίρεση περιγράφεται ως: R / S = π X (R) ( (π X (R)Χ S) R ) όπου X είναι τα µη κοινά γνωρίσµατα στην R µε την S Ισοδυνάµως, περιγράφεται ως: (R / S) [X] = R[X] - ( ( R[X] Χ S ) - R )[X] Tο Σχεσιακό Μοντέλο Σελίδα 41

Σχεσιακή Άλγεβρα: ΠΛΗΡΟΤΗΤΑ Υπάρχουν αρκετοί συνδυασµοί πράξεων που συγκροτούν ένα πλήρεςσύνολο πράξεων. Κάθε Γλώσσα Ερωταποκρίσεων ισοδύναµη µε ένα πλήρες σύνολο πράξεων ονοµάζεται Σχεσιακά Πλήρης (RELATIONALLY COMPLETE) Tο Σχεσιακό Μοντέλο Σελίδα 42

Null Values (Κενές Τιµές) Είναι δυνατόν να έχουµε κενές τιµές για κάποια από τα γνωρίσµατα σε µια πλειάδα (null) Το nullυποδηλώνει ότι η τιµή είναι ΑΓΝΩΣΤΗ ή ότι ΕΝ ΥΠΑΡΧΕΙ Το αποτέλεσµα µιας αριθµητικής πράξης που έχει µέσα το null είναι null. Οι συν-αθροιστικές συναρτήσεις αγνοούν το null Αυτή είναι µια τυχαία απόφαση (θα µπορούσαν ενδεχοµένως να επιστρέφουν σαν αποτέλεσµα το null). υο null θεωρούνται ότι είναι ίσα Tο Σχεσιακό Μοντέλο Σελίδα 43

Κενές Τιµές Συγκρίσεις µε null επιστρέφουν την τιµή unknown Αν επέστρεφε false αντί για unknown, τότε not (A < 5) θα ήταν ισοδύναµο µε A >= 5 Εφαρµόζεται µια Λογική τριών τιµών (true, false, unknown): OR: (unknown or true) = true, (unknown or false) = unknown (unknown or unknown) = unknown AND: (true and unknown) = unknown, (false and unknown) = false, (unknown and unknown) = unknown NOT: (not unknown) = unknown Tο Σχεσιακό Μοντέλο Σελίδα 44

Αλλαγές των τιµών στη Βάση εδοµένων Το περιεχόµενο της Βάσης αλλάζει µε τις παρακάτω πράξεις: Deletion Insertion Updating Οι πράξεις αυτές εκφράζονται µε τον τελεστή ASSIGNMENT (εκχώρηση) Tο Σχεσιακό Μοντέλο Σελίδα 45

ιαγραφή (DELETION) Μια ιαγραφή εκφράζεται όπως µια επερώτηση, µε τη διαφορά ότι αντί να παρουσιαστεί το αποτέλεσµα, αυτό διαγράφεται. ιαγράφονται ΜΟΝΟ Πλειάδες (όχι µεµονωµένες τιµές) Στη Σχεσιακή Άλγεβρα, η ιαγραφή παρίσταται µε: r r E όπου rείναι µια σχέση και Eείναι το αποτέλεσµα µιας σχεσιακής έκφρασης. Tο Σχεσιακό Μοντέλο Σελίδα 46

Παραδείγµατα ΙΑΓΡΑΦΩΝ branch (branch-name, branch-city, assets) customer (customer-name, customer-street, customer-city) account (account-number, branch-name, balance) loan (loan-number, branch-name, amount) depositor (customer-name, account-number) borrower (customer-name, loan-number) ιάγραψε όλες τις account εγγραφές στο Perryridge branch. account account σ branch-name = Perryridge (account) ιάγραψεόλεςτις loan εγγραφέςµε ποσόµεταξύ 0 και 50 loan loan σ amount 0 and amount 50 (loan) Tο Σχεσιακό Μοντέλο Σελίδα 47

Παραδείγµατα ΙΑΓΡΑΦΩΝ branch (branch-name, branch-city, assets) customer (customer-name, customer-street, customer-city) account (account-number, branch-name, balance) loan (loan-number, branch-name, amount) depositor (customer-name, account-number) borrower (customer-name, loan-number) ιάγραψε όλα τα accounts σε branches του Needham. r 1 σ branch-city = Needham (account branch) r 2 branch-name, account-number, balance (r 1 ) r 3 customer-name, account-number (r 2 depositor) account account r 2 depositor depositor r 3 Tο Σχεσιακό Μοντέλο Σελίδα 48

ΕΙΣΑΓΩΓΗ (Insertion) Για εισαγωγή δεδοµένων σε µια Σχέση, είτε: Παρουσιάζουµε µια νέα πλειάδα Ή γράφουµε µια επερώτηση το αποτέλεσµα της οποίας θα εισαχθεί Στη σχεσιακή άλγεβρα, η Εισαγωγή συµβολίζεται µε: r r E όπου r είναι µια σχέση και E είναι µια έκφραση Tο Σχεσιακό Μοντέλο Σελίδα 49

Παραδείγµατα Εισαγωγής Να εισαχθούν τα δεδοµένα: Smith has $1200 in account A-973 at the Perryridge branch. account account {( Perryridge, A-973, 1200)} depositor depositor {( Smith, A-973)} Κάνε δώρο σε όλους τους loan customers στο Perryridge branch, ένα $200 savings account. r 1 (σ branch-name = Perryridge (borrower loan)) account account branch-name, account-number,200 (r 1 ) depositor depositor customer-name, loan-number (r 1 ) Tο Σχεσιακό Μοντέλο Σελίδα 50

ΕΝΗΜΕΡΩΣΗ (Updating) Ένας µηχανισµός για αλλαγές επιλεκτικά σε ΤΙΜΕΣ µιας Πλειάδας ΧΩΡΙΣ να αλλάζουν ΟΛΕΣ οι τιµές της ΠΛΕΙΑ ΑΣ Χρησιµοποιείται ο συµβολισµός: r F1, F2,, FI, (r) όπου τα F i είναι ένα εκ των: το ith γνώρισµα του r, αν το ith γνώρισµα δεν αλλάζει, ή, αν το ithγνώρισµα πρόκειται να αλλάξει, τότε το F i είναι µια έκφραση, που περιλαµβάνει µόνο σταθερέςκαι τα γνωρίσµατα του r, που δίνουν τη νέα τιµή για το γνώρισµα Tο Σχεσιακό Μοντέλο Σελίδα 51

Παραδείγµατα Ενηµέρωσης Πλήρωσε τους τόκους αυξάνοντας όλα τα υπόλοιπα λογαριασµών µε 5 % account AN, BN, BAL * 1.05 (account) όπου AN, BNκαι BALείναι το account-number, branch-nameκαι balance, αντίστοιχα. Πλήρωσε όλους µε υπόλοιπο πάνω από $10,000 6 % τόκους και Πλήρωσε όλους τους άλλους 5 % account AN, BN, BAL * 1.06 (σ BAL > 10000 (account)) AN, BN, BAL * 1.05 (σ BAL 10000 (account)) Tο Σχεσιακό Μοντέλο Σελίδα 52

ΌΨΕΙΣ / ΠΡΟΒΟΛΕΣ (VIEWS) Στις περισσότερες περιπτώσεις, δεν είναι επιθυµητό να βλέπουν όλοι οι χρήστες ολόκληρο το λογικό µοντέλο (δηλαδή, όλες τις σχέσεις που αποθηκεύονται στη βάση δεδοµένων.) Ενδεικτικά, θεωρήστε ότι κάποιος θέλει να ξέρει τον αριθµό δανείου για έναν πελάτη, ΑΛΛΑ (π.χ., για λόγους εχεµύθειας ή ασφαλείας) δεν πρέπει να δει το ποσό του δανείου.αυτός µπορεί να «βλέπει» µια σχέση που περιγράφεται στη σχεσιακή άλγεβρα ως: customer-name, loan-number (borrower loan) Κάθε σχέση που δεν είναι στο εννοιολογικό (conceptual) µοντέλοαλλά είναι ορατή σε χρήστες ως µια Ι ΕΑΤΗ ΣΧΕΣΗ ( virtual relation )ονοµάζεται ΟΨΗ (view). Tο Σχεσιακό Μοντέλο Σελίδα 53

ΟΡΙΣΜΟΣ ΟΨΗΣ Μια όψη ορίζεται µε την εντολή create view που έχει τη µορφή: create view v as <query expression> όπου <query expression> είναι κάθε νόµιµη έκφραση επερώτησης. Το όνοµα της ΟΨΗΣ είναι το v. Από τη στιγµή που ορίζεται η Όψη, το όνοµα της χρησιµοποιείται για αναφορά στην ιδεατή σχέση που η ΟΨΗ δηµιουργεί.. Ο Ορισµός της ΟΨΗΣ δεν δηµιουργεί µια νέα Σχέση µε πλειάδες το αποτέλεσµα της εκτέλεσης της επερώτησης. Αντίθετα, ο Ορισµός της ΟΨΗΣ σηµαίνει ότι δηµιουργείται (και κρατιέται) µια έκφραση, που αργότερα αντικαθίσταται στις επερωτήσεις που την χρησιµοποιούν. Tο Σχεσιακό Μοντέλο Σελίδα 54

Παραδείγµατα ΟΨΕΩΝ Έστω η όψη (µε ονοµασία all-customer) που αποτελείται από branches και customers. create view all-customer as branch-name, customer-name (depositor account) branch-name, customer-name (borrower loan) Μπορούµε να βρούµε όλους τους customers του Perryridge branch γράφοντας: customer-name (σ branch-name = Perryridge (all-customer)) Tο Σχεσιακό Μοντέλο Σελίδα 55

Ενηµερώσεις µέσω ΟΨΕΩΝ Ενηµερώσεις της Βάσης εδοµένων εκφραζόµενες µέσω όψεων πρέπει να µεταφραστούν σε ενηµερώσεις των πραγµατικών Σχέσεων στη Βάση. Για παράδειγµα, έστω ότι κάποιος θέλει να δει όλα τα δεδοµένα για δάνεια στην loan σχέση ΕΚΤΟΣ του amount. Η όψη που του δίνεται, branch-loan, ορίζεται ως: create view branch-loan as branch-name, loan-number (loan) Εφόσον επιτρέπουµε το όνοµα µιας ΟΨΗΣ να παρουσιάζεται όπου µπορεί να παρουσιαστεί το όνοµα µιας ΣΧΕΣΗΣ, τότε θα µπορούσε να γραφεί: branch-loan branch-loan {( Perryridge, L-37)} Tο Σχεσιακό Μοντέλο Σελίδα 56

Ενηµερώσεις µέσω ΟΨΕΩΝ (συνέχεια) Η Εισαγωγή των στοιχείων πρέπει να µεταφραστεί σε µια εισαγωγή στοιχείων στην πραγµατική σχέση loan από την οποία η branch-loan κατασκευάζεται. Όµως η εισαγωγή στη σχέση loanαπαιτεί µια τιµή για το amount. Υπάρχουν δύο περιπτώσεις: Απαγόρευσε την εισαγωγή και επέστρεψε κάποιο µήνυµα στο χρήστη Βάλε την πλειάδα ( L-37, Perryridge, null) στη σχέση loan Μερικές τροποποιήσεις µέσω όψεων είναι Α ΥΝΑΤΟ να µεταφραστούν σε τροποποιήσεις στις πραγµατικές σχέσεις! create view v as σ branch-name = Perryridge (account)) v v (L-99, Downtown, 23) Άλλες ΕΝ είναι δυνατό να µεταφραστούν µονοσήµαντα! all-customer all-customer {( Perryridge, John )}» Πρέπει να επιλεχθεί κάποιο loan και account, και να δηµιουργηθεί ένα νέο νούµερο για account / loan! Tο Σχεσιακό Μοντέλο Σελίδα 57

ΟΨΕΙΣ οριζόµενες µέσω άλλων ΟΨΕΩΝ Μία ΟΨΗ µπορεί να χρησιµοποιηθεί στην ορίζουσα έκφραση µιας άλλης ΟΨΗΣ Μια όψη v 1 λέγεται ότι εξαρτάται άµεσα από µια όψη v 2 αν η v 2 χρησιµοποιείται στην έκφραση που ορίζει την v 1 Μια όψη v 1 λέγεται ότι εξαρτάται από µια όψη v 2 αν είτε η v 1 εξαρτάται άµεσα από την v 2 ή υπάρχει ένα µονοπάτι εξαρτήσεων από τη v 1 στη v 2 Μια όψη vλέγεται αναδροµική (recursive) αν εξαρτάται από τον εαυτό της Tο Σχεσιακό Μοντέλο Σελίδα 58