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



Σχετικά έγγραφα
Βάσεις Δεδομένων (Databases)

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

Lecture 8: RM I + RA I

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

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

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

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

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

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

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

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

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

Lecture 16: SQL DML III

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

ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ Σχεσιακός Ορισµός. Μαθ. #12

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

Query-by-Example (QBE)

Lecture 14: SQL DML I

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

Βάσεις Δεδομένων Σύνθετα SQL queries. Ψευδώνυμα (Aliases) (2) Ψευδώνυμα (Aliases) (1) Ασάφεια και Πλήρη Ονόματα. Ερώτημα χωρίς τον όρο WHERE (1)

Βάσεις Δεδομένων Σύνθετα SQL queries

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Department of Computer Science University of Cyprus. EPL342 Databases. Lecture 8: RM II. Relational Model. (Chapter )

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

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

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

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

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πράξεις στο Σχεσιακό Μοντέλο

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

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Εισαγωγή στην. Εισαγωγή Σ Β. Αρχεία ευρετηρίου Κατάλογος. συστήματος. Αρχεία δεδομένων

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

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

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

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

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

Πανεπιστήμιο Κρήτης Τμήμα Επιστήμης Υπολογιστών. Σχεσιακός Λογισμός

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

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

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

Φροντιστήριο Σχεσιακή Άλγεβρα (μέρος 2 ο ) - Σχεσιακός Λογισμός Δημητράκη Κατερίνα

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

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

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


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

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

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

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

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

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

Διάλεξη 08: Αντιστοίχηση Εννοιολογικού σε Σχεσιακό Μοντέλο (ER/EER to Relational) Διδάσκων: Παναγιώτης Ανδρέου

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

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

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

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

SQL Data Manipulation Language

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

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

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

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

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

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

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

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

Βάσεις Δεδομένων ΗγλώσσαSQL (Structured Query Language)

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

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

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

Lecture 21: Functional Dependencies and Normalization

Βάσεις Δεδομένων Η γλώσσα SQL (Structured Query Language) Εισαγωγή στην SQL (2) Ιστορικά Στοιχεία. SQL - Structured Query Language (1)

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

Βελτιστοποίηση επερωτημάτων

Βάσεις Δεδομένων. Βασίλειος Βεσκούκης Εισαγωγή στη γλώσσα SQL (Structured Query Language) Η γλώσσα SQL

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

Επεξεργασία ερωτημάτων

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 6: SQL (Συζεύξεις, Εμφώλευση, Ομαδοποίηση) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

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

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Transcript:

Εισαγωγή στη Σχεσιακή Άλγεβρα Η Σχεσιακή Άλγεβρα παρέχει τους τελεστές (operators): Μοναδιαίοι Σχεσιακοί Τελεστές (Unary Relational Ops) Επιλογή (Select, (sigma)) Προβολή (Project, (pi)) Μετονομασία (Rename, (rho)) Σχεσιακοί Τελεστές από την Θεωρία Συνόλων Ένωση (UNION, ), Τομή (INTERSECTION, ), ιαφορά Συνόλων (DIFFERENCE ή MINUS, ) Καρτεσιανό Γινόμενο (CARTESIAN PRODUCT, x ) υαδικοί Σχεσιακοί Τελεστές (Binary Relational Ops) Συνένωση (JOIN, )(υπάρχουν πολλαπλές εκδοχές) ιαίρεση (DIVISION, /) Επιπλέον Σχεσιακοί Τελεστές Συναρτήσεις Συνάθροισης AGGREGATE FUNCTIONS (π.χ., SUM, COUNT, AVG, MIN, MAX) Εξωτερική Συνένωση, κ.α., (OUTER JOINS) 2

Τυπικές Γλώσσες Σχεσιακού Μοντέλου (Formal Languages for the Relational Model) Για την εκτέλεση επερωτήσεων σε σχέσεις ορίζονται οι ακόλουθες τυπικές (θεωρητικές) γλώσσες: Σχεσιακή Άλγεβρα (Relational Algebra) Λογισμός Πλειάδων (Tuple Relational Calculus) Λογισμός Πεδίων (Domain Relational Calculus) Αυτές οι γλώσσες είναι εκφραστικά ισοδύναμες! ηλαδή μπορούν να εκφράσουν αντίστοιχες επερωτήσεις. Οποιαδήποτε γλώσσα είναι εκφραστικά ισοδύναμη με την Σχεσιακή Άλγεβρα ονομάζεται Σχεσιακά Πλήρης Γλώσσα (Relationally-Complete Language) Η SQL είναι μια relationally complete γλώσσα 3

Τυπικές Γλώσσες Σχεσιακού Μοντέλου (Formal Languages for the Relational Model) Πάνω σε αυτές τις θεωρητικές γλώσσες έχουν δημιουργηθεί πραγματικές γλώσσες βάσεων δεδομένων (π.χ., SQL, QBE) Σχεσιακή Άλγεβρα (Relational Algebra) Προστακτική: ορίζεται η σειρά εκτέλεσης των πράξεων. Μια Επερώτηση του χρήστη σε SQL μεταφράζεται από την βάση σε μια έκφραση σχεσιακής άλγεβρας, το λεγόμενο πλάνο εκτέλεσης (query plan). Λογισμός Πλειάδων (Tuple Calculus) ηλωτική: δεν ορίζεται η σειρά εκτέλεσης των πράξεων απλά το επιθυμητό αποτέλεσμα, Η SQL στηρίζεται πάνω στην δηλωτική φύση του Λογισμού Πλειάδων εάν SQL επερωτήσεις εκτελούνται σαν εκφράσεις Σχεσιακής Άλγεβρας Λογισμός Πεδίων (Domain Calculus) Όμοια με Λογισμό Πλειάδων (οι μεταβλητές είναι γνωρίσματα και όχι πλειάδες) ηλωτική και πάνω σ αυτή στηρίζεται η QBE Υλοποιείται ΙΒΜ QMF, MS Access και Paradox, κ.α. 4

Τυπικές Γλώσσες Σχεσιακού Μοντέλου (Formal Languages for the Relational Model) Παράδειγμα SQL (πραγματικής γλώσσας βάσης) SELECT fname, lname, salary FROM EMPLOYEE WHERE dno=5 Παράδειγμα Σχεσιακής Άλγεβρας: TEMP DNO=5 (EMPLOYEE) RESULT FNAME, LNAME, SALARY (TEMP) Παράδειγμα Λογισμού Πλειάδων: { t.fname, t.lname, t.salary EMPLOYEE(t) AND t.dno=5} H πιο πάνω έκφραση ονομάζεται Set Builder Notation (Σημειογραφία ημιουργίας Συνόλων) {<γνωρίσματα αποτελέσματος> <συνθήκες>} Παράδειγμα Λογισμού Πεδίων Ορισμού: { (F,L,S,D) (F,L,S,D) EMPLOYEE ^ D=5} Παρόμοια με Λογισμό Πλειάδων (οι μεταβλητές είναι γνωρίσματα οι περιορισμοί εκφράζονται στο πεδίο ορισμού) Οι εκφράσεις σε σε QBE { flsd EMPLOYEE(flsd) and d=5} βασίζονται στο πιο πάνω ηλωτική διατύπωση, Προστακτική εκτέλεση Προστακτική διατύπωση & εκτέλεση ηλωτική διατύπωση & εκτέλεση ηλωτική διατύπωση & εκτέλεση 5

Εισαγωγή στη Σχεσιακή Άλγεβρα Η Σχεσιακή Άλγεβρα αποτελείται από ένα βασικό σύνολο πράξεων (τελεστών) για το σχεσιακό μοντέλο. Είναι ουσιαστικά η πιο διαδεδομένη τυπική γλώσσα του Σχε. Μοντ. Αυτοί οι τελεστές επιτρέπουν σε κάποιο να διατυπώσει βασικές πράξεις ανάκτησης, δηλ., επερωτήσεις (queries). Το αποτέλεσμα εκτέλεσης ΟΛΩΝ των τελεστών μας επιστρέφει πίσω μια νέα σχέση, η οποία μπορεί να δημιουργείται από 1 ή περισσότερες σχέσεις εισόδου. Αυτή η ιδιότητα κάνει την Σχεσιακή Άλγεβρα «Κλειστή» ( closed ), δηλ., ΌΛΑ τα αντικείμενα στη σχεσιακή άλγεβρα είναι σχέσεις (ακόμη και μια απλή αριθμητική τιμή) Έκφραση σχεσιακής άλγεβρας (Relational Algebra Expression): Ακολουθία εφαρμογής τελεστών πάνω σε σχέσεις, π.χ., FNAME, LNAME, SALARY ( DNO=5 (EMPLOYEE)) 6

Εισαγωγή στη Σχεσιακή Άλγεβρα Η Σχεσιακή Άλγεβρα παρέχει τους τελεστές (operators): Μοναδιαίοι Σχεσιακοί Τελεστές (Unary Relational Ops) Επιλογή (Select, (sigma)) Προβολή (Project, (pi)) Μετονομασία (Rename, (rho)) Σχεσιακοί Τελεστές από την Θεωρία Συνόλων Ένωση (UNION, ), Τομή (INTERSECTION, ), ιαφορά Συνόλων (DIFFERENCE ή MINUS, ) Καρτεσιανό Γινόμενο (CARTESIAN PRODUCT, x ) υαδικοί Σχεσιακοί Τελεστές (Binary Relational Ops) Συνένωση (JOIN, )(υπάρχουν πολλαπλές εκδοχές) Εφόσον το δεν υποστηρίζεται σαν σύμβολο θα χρησιμοποιείται το ιαίρεση (DIVISION, /) Επιπλέον Σχεσιακοί Τελεστές Συναρτήσεις Συνάθροισης AGGREGATE FUNCTIONS (π.χ., SUM, COUNT, AVG, MIN, MAX) Εξωτερική Συνένωση, κ.α., (OUTER JOINS) 7

Μοναδιαίοι Τελεστές Επιλογή (σ) Ο Τελεστής Επιλογής (συμβολίζεται με (sigma)) χρησιμοποιείται για να επιλέξουμε ένα υποσύνολο των πλειάδων μιας σχέσης βάσει κάποιου κριτηρίου επιλογής (selection condition) <Κριτήρια Επιλογής> (R) Το κριτήριο επιλογής λειτουργεί ως φίλτρο (δηλ., επιστρέφει μόνο τις πλειάδες που ικανοποιούν την συνθήκη) Π.χ., : Εύρεση των EMPLOYEE που δουλεύουν στο department 4: DNO = 4 (EMPLOYEE) Εύρεση των EMPLOYEE που έχουν μισθό πάνω από $30,000: SALARY > 30,000 (EMPLOYEE) 8

Μοναδιαίοι Τελεστές Επιλογή (σ) <Κριτήρια Επιλογής> (R) Το κριτήριο επιλογής αποτελείται από μια (1) ή περισσότερες προτάσεις (clauses) της μορφής: Κριτήριο Επιλογής := <όνομα γνωρίσματος> <τελεστής> <σταθερή τιμή όνομα γνωρίσματος> Τελεστής: υαδικός Τελεστής Σύγκρισης {<,>,=,!=, >=, <=} Οι προτάσεις μπορεί να συνδέονται με Λογικούς Τελεστές: AND ή OR Π.χ., DNO = 4 AND SALARY > 30,000 (EMPLOYEE) 9

Μοναδιαίοι Τελεστές Επιλογή (σ) Ιδιότητες Τελεστή Επιλογής (σ) 1. Ο τελεστής <selection condition> (R) παράγει μια νέα σχέση S ή οποία έχει το ίδιο σχήμα με την R, όπου S == R και r(s) <= r(r) Ισχύει η αντιμεταθετική ιδιότητα (commutative) : <condition1> ( <condition2> (R)) = <condition2> ( <condition1> (R)) Επίσης, μπορούμε να διαδώσουμε (cascade) μια επιλογή δηλ., <cond1> ( <cond2> ( <cond3> (R)) = <cond2> ( <cond3> ( <cond1> ( R))) π.χ., <dno=5> ( <fname= Chris > ( <sex= M > (EMPLOYEE)) = <fname= Chris > ( <sex= M > ( <dno=5> (EMPLOYEE)) Επίσης, μια διάδοση τελεστών σ μπορεί να αντικατασταθεί από μια και μόνο επιλογή η οποία θα είναι η σύζευξη όλων των συνθηκών: δηλ., <cond1> ( < cond2> ( <cond3> (R)) = <cond1> AND < cond2> AND < cond3> (R))) π.χ., <dno=5> AND <fname= Chris > AND <sex= M > (EMPLOYEE) 10

Μοναδιαίοι Τελεστές Παραδείγματα Επιλογής (σ) εδομένα Επερώτηση Αποτέλεσμα 11

Μοναδιαίοι Τελεστές Προβολή (π) Ο Τελεστής Προβολής συμβολίζεται με (pi)) χρησιμοποιείται για να επιλέξουμε ένα υποσύνολο γνωρισμάτων μιας σχέσης: Attribute1,Attribute2,,AttributeN (R) Συνεπώς, ο τελεστής αυτός μπορεί να ειδωθεί σαν μια κατακόρυφη διαμέριση (vertical partitioning) της αρχικής σχέσης R Π.χ., : Ανάκτησε όλα τα Επίθετα, Ονόματα, Μισθούς των EMPLOYEE LNAME, FNAME,SALARY (EMPLOYEE) Ο τελεστής προβολής διαγράφει εξ ορισμού τα διπλότυπα (duplicate tuple elimination) Αυτό διότι το αποτέλεσμα ΠΡΕΠΕΙ να είναι ΣΥΝΟΛΟ πλειάδων και όπως αναφέραμε τα σύνολα δεν επιτρέπουν τα διπλότυπα. 12

Μοναδιαίοι Τελεστές Προβολή (π) Ιδιότητες Τελεστή Προβολής π 1. Ο τελεστής π <Attributes> (R) παράγει μια νέα σχέση S για την οποία ισχύει S <= R αλλά και r(s) <= r(r) (λόγω της ενδεχόμενης διαγραφής διπλοτύπων) Εάν το Attributes περιλαμβάνει κάποιο κλειδί της R τότε r(s) == r(r) Προφανώς, και στις δυο πιο πάνω περιπτώσεις ο αριθμός των γνωρισμάτων του S είναι υποσύνολο του R. 2. Ο τελεστής π ΕΝ είναι αντιμεταθετικός (not commutative): <list1> ( <list2> (R) ) = <list2> ( <list1> (R) ) Το πιο πάνω ισχύει ΜΟΝΟ εάν list1 list2 π.χ., <ssn,fname,dno> ( <ssn,fname,lname,dno> (EMPLOYEE)) ΣΩΣΤΟ π.χ., <ssn,fname,lname,dno> ( <ssn,fname,dno> (EMPLOYEE)) ΛΑΘΟΣ 3. Η Προβολή μπορεί να αντιμετατεθεί με την Επιλογή σε ορισμένες περιπτώσεις 13

Μοναδιαίοι Τελεστές Παραδείγματα Προβολής (π) εδομένα ιπλότυπα Επερώτηση Αποτέλεσμα 7 εγγραφές αντί 8 εγγραφές (λογω duplicates) 14

Εκφράσεις Σχεσιακής Άλγεβρας (Relational Algebra Expressions) Οι εκφράσεις σχεσιακής άλγεβρας μπορούν να διατυπωθούν κατά τους ακόλουθους τρόπους: A) Μια έκφραση η οποία θα αποτελείται από εμφωλευμένες (nested) εκφράσεις: Π.χ., FNAME, LNAME, SALARY DNO=5 (EMPLOYEE)) Β) Πολλαπλές εκφράσεις με επί μέρους αποτελέσματα Π.χ., TEMP DNO=5 (EMPLOYEE) RESULT FNAME, LNAME, SALARY (TEMP) Στην Β περίπτωση πρέπει να δηλώσουμε ονόματα για τα ενδιάμεσα αποτελέσματα. 15

Μοναδιαίοι Σχεσιακοί Τελεστές Τελεστής RENAME Σε ορισμένες περιπτώσεις θέλουμε να μετονομάσουμε τα γνωρίσματα μιας σχέσης ή τη σχέση (ή και τα δυο) Χρήσιμο όταν μια επερώτηση χρειάζεται πολλαπλές πράξεις Απαραίτητα σε ορισμένες περιπτώσεις (π.χ., joins). Ο τελεστής Μετονομασίας (RENAME) μπορεί να χρησιμοποιείται καθ οποιοδήποτε απ τους πιο κάτω τρόπους: S (B1, B2,, Bn) (R): S (R) Αλλαγή Ονόματος Σχέσης από R σε S B1, B2,, Bn: Νέα Ονόματα Γνωρισμάτων Αλλαγή Ονόματος Σχέσης από R σε S (B1, B2,, Bn ) (R): Για επερωτήσεις δεν χρησιμοποιείται γενικά B1, B2,, Bn: Νέα Ονόματα Γνωρισμάτων Αποτελέσματος R (a->b) (R) Αλλαγή Ονόματος Γνωρίσματος R.a σε R.b 16

εδομένα Μοναδιαίοι Σχεσιακοί Τελεστές Τελεστής RENAME No Renaming (A) FNAME, LNAME, SALARY ( DNO=5 (EMPLOYEE) ) With Renaming (B) TEMP DNO=5 (EMPLOYEE) R(First_Name, Last_Name, Salary) FNAME, LNAME, SALARY (TEMP) 17

Τελεστές Θεωρίας Συνόλων Ένωση (UNION) Τελεστής Ένωσης (UNION) Είναι δυαδικός τελεστές και συμβολίζεται με Το αποτέλεσμα του R S, είναι μια σχέση η οποία περιλαμβάνει όλες τις πλειάδες οι οποίες ανήκουν i) στο R, ii) το S ή iii) στο R και S. R S = { x x R x S } Θυμηθείτε ότι οι τελεστές της σχεσιακής άλγεβρας είναι κλειστοί (δηλαδή το αποτέλεσμα ενός τελεστή είναι μια νέα σχέση). Τα διπλότυπα (duplicate tuples) απαλείφονται R S 18

Τελεστές Θεωρίας Συνόλων Ένωση (UNION) Οι δυο τελεσταίοι (operands), R and S, πρέπει να είναι Συμβατοί-προς-τον-τύπο ( type compatible ή UNION-compatible) R and S πρέπει να χουν τον ίδιο αριθμό γνωρισμάτων (π.χ., Department Employee) Κάθε ζεύγος αντίστοιχων γνωρισμάτων πρέπει να είναι συμβατό-προς-τον-τύπο (πεδίο ορισμού) (π.χ., Emp(ssn:int) Mgr(ssn:int)) Για την Ένωση ισχύουν οι ακόλουθες ιδιότητες: R S = S R Αντιμεταθετική (Commutative) R (S T) = (R S) T Προσεταιριστική (Associative) 19

Τελεστές Θεωρίας Συνόλων Ένωση (UNION) Παράδειγμα: Βρες το SSN όλων των υπαλλήλων που δουλεύουν στο τμήμα (dno) 5 ή επιβλέπουν κάποιο υπάλληλο που δουλεύει στο τμήμα 5. Με ποια σειρά σχεσιακών τελεστών θα απαντήσουμε το πιο πάνω ερώτημα; 20

Τελεστές Θεωρίας Συνόλων Ένωση (UNION) ιατύπωση σε Σχεσιακή Άλγεβρα Eπερώτηση: TEMP DNO=5 (EMPLOYEE) RESULT1 SSN (TEMP) RESULT2(SSN) SUPERSSN (TEMP) RESULT RESULT1 RESULT2 Σημειώστε την μετονομασία Αποτέλεσμα: 21

Τελεστές Θεωρίας Συνόλων Τομή (INTERSECTION) Τελεστής Τομής (Intersection) Είναι δυαδικός τελεστές και συμβολίζεται με R S Το αποτέλεσμα του R S, είναι μια σχέση η οποία περιλαμβάνει ΟΛΕΣ τις πλειάδες οι οποίες ανήκουν τόσο στο R όσο ΚΑΙ στο S. R S = { x x R x S } Τα διπλότυπα (duplicate tuples) απαλείφονται και ισχύει και πάλι ο περιορισμός συμβατότητας-προς-τον-τύπου ( type compatibility ) Για την Tομή ισχύουν οι ακόλουθες ιδιότητες: R S = S R Αντιμεταθετική (Commutative) R (S T) = (R S) T) Προσεταιριστική (Associative) (R S) = (R S) Κανόνας De Morgan μετατροπής. 22

Τελεστές Θεωρίας Συνόλων Τομή (INTERSECTION) Παράδειγμα: Βρες το SSN όλων των υπαλλήλων που δουλεύουν στο τμήμα (dno) 5 ΚΑΙ έχουν εξαρτώμενο (dependent) Απάντηση: SSN 333445555 23

Τελεστές Θεωρίας Συνόλων Τομή (INTERSECTION) ιατύπωση σε Σχεσιακή Άλγεβρα R1 SSN ( DNO=5 (EMPLOYEE)) R2(SSN) ESSN (DEPENDENT) RESULT R1 R2 Tο ίδιο ερώτημα μπορεί να διατυπωθεί και με συνένωση (που θα δούμε αργότερα) 24

Επανάληψη Ταυτοτήτων Συνόλων (Revision of Set Identities) (σύμπαν) Complement (συμπλήρωμα συνόλου) Συμπληρωματική ιδιότητα Ταυτοδύναμη ιδιότητα Αντιµεταθετική ιδιότητα Προσεταιριστική Ιδιότητα Επιμεριστική Ιδιότητα Ιδιότητες (Κανόνες) De Morgan 25

Τελεστές Θεωρίας Συνόλων ιαφορά Συνόλων (Minus) Τελεστής ιαφοράς (Minus ή Set Difference) Είναι δυαδικός τελεστές και συμβολίζεται με Το αποτέλεσμα του R S, είναι μια σχέση η οποία περιλαμβάνει όλες τις πλειάδες της R η οποίες δεν ανήκουν στο S. R S = { x x R x S } = R S Οι δυο τελεσταίοι (operands), R and S, πρέπει και πάλι να είναι Συμβατοί-προς-τον-τύπο ( type compatible ) ΕΝ ισχύει η αντιμεταθετική ιδιότητα : R S S R Ισχύει όμως η προσεταιριστική R (S Τ)= (R S) Τ 26

Τελεστές Θεωρίας Συνόλων ιαφορά Συνόλων (Minus) Συμβατές-προς-Τύπο (παρόλο που έχουν διαφορετικά ονόματα γνωρισμάτων) * * * Student =7 Student Instructor = 5 Αφαίρεση Susan και Ramesh from Student * Instructor =5 Instructor Student = 3 Αφαίρεση Susan και Ramesh from Instructor 27

Τελεστές Θεωρίας Συνόλων Συμμετρική ιαφορά Συνόλων Όπως θα θυμάστε, υπάρχει και η Συμμετρική ιαφορά (Symmetric Difference), η οποία συμβολίζεται με το σύμβολο: Αναπαριστάται ουσιαστικά από τον λογικό τελεστή XOR (Exlusive-OR) ηλ., R S = { x x R x S } Ισχύουν τα ακόλουθα: R S= S R αντιμεταθετική ιδιότητα R S = (R S) (S R) Γενικά, υπάρχουν πολλές άλλες ταυτότητες οι οποίες μπορούν να αποδειχθούν με λογικές ισοδυναμίες, πίνακες συμμετοχής ή με χρήση γνωστών ισοδυναμιών R 28 S

Τελεστές Θεωρίας Συνόλων Συμμετρική ιαφορά Συνόλων Student =7 Instructor =5 * * * S I * S I = (S - I) (I S) = 5 + 3 = 8 29

Τελεστές Θεωρίας Συνόλων Καρτεσιανό Γινόμενο (Cartesian Product) Καρτεσιανό Γινόμενο ( ) CARTESIAN (or CROSS) PRODUCT To R S είναι το σύνολο όλων των διατεταγμένων ζευγών (r,s), όπου r R και s S, δηλ., R S = { (r,s) r R s S } Πρακτικά, το χρησιμοποιείται για να συνδυαστούν οι πλειάδες δυο σχέσεων (και θα χρησιμοποιηθεί για να εξηγηθεί ο σημαντικός τελεστής της συνένωσης join) Το μεταξύ δυο σχέσεων βαθμού μεγαλυτέρου του 2, π.χ., R(A 1, A 2,..., A n ) x S(B 1, B 2,..., B m ), μας επιστρέφει μια σχέση Q βαθμού n+m Q(A1, A2,..., An, B1, B2,..., Bm) (H Q έχει n*m πλειάδες) Οι τελεσταίοι R, S δεν χρειάζεται να συμφωνούν στον τύπο. 30

Τελεστές Θεωρίας Συνόλων Καρτεσιανό Γινόμενο (Cartesian Product) Στην πραγματικότητα, το Καρτεσιανό Γινόμενο δεν είναι τόσο πρακτικός τελεστής. Χρησιμοποιείται μόνο όταν θέλουμε να δημιουργήσουμε όλες τις δυνατές διατάξεις μεταξύ δυο σχέσεων. Π.χ., STUDENT(ssn) x COURSES(course_id) ημιούργησε όλους τους συνδυασμούς (ssn, course_id) το οποίο δεν είναι και τόσο χρήσιμο. Γίνεται ωστόσο πρακτικό εάν χρησιμοποιείται ως μέρος ακολουθίας άλλων τελεστών, π.χ., Φτιάχνουμε το καρτεσιανό γινόμενο και επιλεγούμε ένα υποσύνολο αυτού του συνόλου ως απάντηση (το οποίο μας οδηγεί στην έννοια της Συνένωσης (JOIN)) Το επόμενο παράδειγμα δείχνει ότι το καρτεσιανό γινόμενο ΕΝ είναι και τόσο πρακτικό από μόνο του. 31

Τελεστές Θεωρίας Συνόλων Καρτεσιανό Γινόμενο (Cartesian Product) Θεωρήστε τη σχέση Reserves η οποία μας δείχνει ποια βάρκα (bid) νοίκιασε ο κάθε Ναυτικός, Sailor (sid). Reserves =6 sid bid day 28 103 12/4/06 28 103 11/3/06 31 101 10/10/06 31 102 10/12/06 31 101 10/11/06 58 103 11/12/06 Sailors =5 sid sname rating age 22 dustin 7 45.0 28 yuppy 9 35.0 31 lubber 8 55.5 44 guppy 5 35.0 58 rusty 10 35.0 Εάν εκτελέσουμε το Καρτεσιανό Γινόμενο μεταξύ των δυο αυτών σχέσεων τότε μας επιστρέφεται ένα αποτέλεσμα το οποίο δεν έχει και ιδιαίτερο νόημα. Συγκεκριμένα, επιστρέφονται τριάντα (30) 8-άδες: 28, 103, 12/4/06, 22, dustin, 7, 45.0 28, 103, 12/4/06, 28, yuppy, 9, 35.0 28, 103, 12/4/06, 31, lubber, 8, 55.5 28, 103, 12/4/06, 44, guppy, 5, 35.0 28, 103, 12/4/06, 58, rusty, 10, 35.0. 28, 103, 11/3/06, yuppy, 22, dustin, 7, 45.0 32

Relational Algebra Σημειώσεις από το Πανεπιστήμιο Κύπρου Department of Computer Science ιδάσκων: Παναγιώτης Ανδρέου EPL342 Databases