Κεφάλιο 3 ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ Α ΜΕΡΟΣ Tο Σχεσικό Μοντέλο Σελίδ 1
Το Σχεσικό Μοντέλο ΣΥΝΟΨΗ ΚΕΦΑΛΑΙΟΥ Άτυπος κι Τυπικός Ορισµός του Μοντέλου οµές, Πράξεις / Λειτουργίες, οµικοί Περιορισµοί Σχεσική Άλγερ Βσικές Πράξεις της Σχεσικής Άλγερς Πρδείγµτ Tο Σχεσικό Μοντέλο Σελίδ 2
ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ: Άτυπος Ορισµός Προτάθηκε το 1970 πό τον E.F. Codd ( A relational model for large shared data banks, CACM), σνθεωρίγι Μοντέλ εδοµένων Έδωσε ένυσµ γι πολλές ερευνητικές προσπάθειες κι κτέληξε ν είνι το πλέον δηµοφιλές µοντέλο. Σήµερ, η συντριπτική πλειοψηφί των DBMS είνι σχεσικά κι διτίθεντι σε ΟΛΕΣ τις Υπολογιστικές Πλτφόρµες. Tο Σχεσικό Μοντέλο Σελίδ 3
ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ: Άτυπος Ορισµός Μι Σχεσική Βάση εδοµένων είνι έν σύνολο πό σχέσεις Σχέση (Relation): Ένς Πίνκς τιµών. Κάθε στήληστον πίνκ έχει επικεφλίδ (όνοµ), που ονοµάζετι γνώρισµ (attribute). Κάθε γρµµήονοµάζετι µι πλειάδ (tuple)κι πριστά τ χρκτηριστικά µις οντότητς στο µοντέλο. Tο Σχεσικό Μοντέλο Σελίδ 4
ΣΧΕΣΕΙΣ Account. Tο Σχεσικό Μοντέλο Σελίδ 5
Τυπικός Ορισµός οµές Μόνο έν είδος: relations (σχέσεις) που έχουν όνοµ Τυπικά, δεδοµένων των συνόλων 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 π.χ. customer-name = {Jones, Smith, Curry, Lindsay} customer-street = {Main, North, Park} customer-city = {Harrison, Rye, Pittsfield} Τότε r = { (Jones, Main, Harrison), (Smith, North, Rye), (Curry, North, Rye), (Lindsay, Park, Pittsfield)} είνι µι σχέση στο customer-name x customer-street x customer-city Tο Σχεσικό Μοντέλο Σελίδ 6
Τύποι γνωρισµάτων Κάθε γνώρισµ έχει έν όνοµ Το σύνολο των επιτρεπόµενων τιµών γι κάθε γνώρισµ Α λέγετι πεδίο τιµών (domain) D(Α) του γνωρίσµτος D(Α) = {d 1, d 2,..., d n } Οι τιµές των γνωρισµάτων πρέπει (συνήθως) ν είνι τοµικές, δλδ διίρετες Π.χ., πλειότιµ γνωρίσµτ δεν είνι τοµικά Π.χ., σύνθετ γνωρίσµτ δεν είνι τοµικά Η ειδική τιµή null είνι µέλος οποιουδήποτε domain τιµή που είνι µη εφρµόσιµη (non-applicable) ή άγνωστη, π.χ, Αριθµός Τηλεφώνου κάποιου που δεν έχει τηλέφωνο Η τιµή null value δηµιουργεί επιπλοκές στον ορισµό κάποιων πράξεων Tο Σχεσικό Μοντέλο Σελίδ 7
Ορισµοί οµών (1) Έν Σχεσικό Σχήµ R είνι το όνοµ κι τ γνωρίσµτ σε µι Σχέση, µζί µε τ ντίστοιχ πεδί τιµών γι τ γνωρίσµτ. Ότν είνι προφνές, τ πεδί τιµών πρλείποντι. Συµολισµός: R(A 1, A 2,... A n ) π.χ.., STUDENT(Name, SSN, BirthDate, Address) Ο θµός (degree) n µις Σχέσης R είνι ο ριθµός των γνωρισµάτων στην Σχέση Έν Σχήµ Βάσης εδοµένων S είνι έν σύνολο Σχέσεων. Συµολισµός: S = {R 1, R 2,... R m } π.χ., COMPANY = { EMPLOYEE, PROJECT,... } Tο Σχεσικό Μοντέλο Σελίδ 8
Ορισµοί οµών (2) Μι πλειάδ (Tuple) t µις Σχέσης R(A 1, A 2,... A n ) είνι µι (διτετγµένη) λίστ τιµών t = <v 1, v 2,... v n >,όπου κάθε τιµή v i είνι έν στοιχείο του πεδίου D(A i ). Έν στιγµιότυπο σχέσης (relation instance) r(r),πιο πλά,σχέση (relation), είνι έν σύνολο πλειάδων r(r) = { t 1, t 2,... t k } ενλλκτικά, είνι έν υποσύνολο του Κρτεσινού Γινοµένου r(r) D(A 1 ) x D(A 2 ) x... x D(A n ) Η πληθικότητ (cardinality)της R είνι ο ριθµός των πλειάδων στην r(r), κι συµολίζετι µε CARD R Μι σχεσική άση (relational database) είνι έν σύνολο σχέσεων Tο Σχεσικό Μοντέλο Σελίδ 9
Στιγµιότυπο Σχέσης Σχέση customer = πίνκς Attributes = ονόµτ στηλών Tuples = γρµµές του πίνκ attributes (or columns) customer-name customer-street customer-city Jones Smith Curry Lindsay Main North North Park Harrison Rye Rye Pittsfield tuples (or rows) customer Tο Σχεσικό Μοντέλο Σελίδ 10
Χρκτηριστικά των Σχέσεων Η διάτξη των γνωρισµάτων σε µι σχέση είνι σηµντική Η διάτξη των πλειάδων σε µι σχέση δεν είνι σηµντική Κάθε πλειάδ ποθηκεύετι ΜΙΑ ΦΟΡΑ σε µι σχέση (σύνολο) Μι τιµή µπορεί ν προυσιάζετι ΠΟΛΛΕΣ ΦΟΡΕΣ σε µι στήλη κι είνι ATOMIKH (µη δισπάσιµη) συχνά υτό νφέρετι σν First Normal Form (1-NF) σχέση Συµολισµός: τιµή γνωρίσµτος A i γι µι πλειάδ t t[a i ] = v i Tο Σχεσικό Μοντέλο Σελίδ 11
οµικοί Περιορισµοί Έµφυτοι περιορισµοί Κλειδιών (key)» Τ διφορετικά κλειδιά, όπως ορίστηκν στο µοντέλο Ε-R, ισχύουν κι στο Σχεσικό Μοντέλο.» Υπενθύµιση: το κλειδί είνι ιδιότητ του Σχεσικού Σχήµτος, όχι του στιγµιότυπου της Σχέσης (δηλδή, ισχύει γι ΌΛΑ τ στιγµιότυπ) Ακεριότητ οντότητς (Entity integrity) Ανφορική κεριότητ (Referential integrity) Ρητοί περιορισµοί Πεδίου τιµών (domain) Στηλών (column) Οριζόµενων πό τον χρήστη (user-defined) άλλοι ρητοί περιορισµοί, π.χ., οι Συνρτησικές Εξρτήσεις (Functional Dependencies,) θ νφερθούν ργότερ Tο Σχεσικό Μοντέλο Σελίδ 12
Περιορισµοί Κλειδιού Έστω K R K είνι υπέρ-κλειδί (superkey) του σχήµτος σχέσης Rν οι τιµές του K είνι ρκετές γι ν τυτοποιήσουνµι µονδική πλειάδ γι κάθε πιθνή σχέση r(r) Πράδειγµ: {customer-name, customer-street} κι {SSN} είνι υπερκλειδιά του Customer Έν υποψήφιο κλειδί (candidate key) K είνι έν ελάχιστο υπέρ-κλειδί (δηλδή, δεν υπάρχει υποσύνολο του K που ν είνι κι υτό υπέρ-κλειδί). Το Κ ονοµάζετι συνήθως κλειδί. Π.χ., SSN είνι υποψήφιο κλειδί στο Customer, λλά ο συνδυσµός {SSN, NAME} ΕΝ είνι. Έν κύριο κλειδί (primary key) PK είνι έν πό τ υποψήφι κλειδιά που συµφωνείτι ν πίξει το ρόλο του τουπροσδιοριστή γι τις πλειάδες της σχέσης (τ κύρι κλειδιά υπογρµµίζοντι) Γι πράδειγµ, SSN είνι το κύριο κλειδί της σχέσης EMPLOYEE. Tο Σχεσικό Μοντέλο Σελίδ 13
Περιορισµοί Ακεριότητς Οντότητς Το κύριο κλειδί PK στο σχήµ της σχέσης R δεν µπορεί ν έχει κενές (NULL) τιµές σε πλειάδες µις σχέσης r(r). t[pk] NULL, γι κάθε t στην r(r) Ο λόγος πίσω πό υτό τον περιορισµό είνι ότι το κύριο κλειδί χρησιµοποιείτι γι τον προσδιορισµό µις πλειάδς σε µι σχέση. Σηµειώνετι ότι κι άλλ γνωρίσµτ στην R µπορεί ν περιορίζοντι στο ν µην έχουν NULL πό ΡΗΤΟΥΣ περιορισµούς. Tο Σχεσικό Μοντέλο Σελίδ 14
Περιορισµοί Ανφορικής Ακεριότητς Αυτός ο δοµικός περιορισµός εµπλέκει ΥΟ σχέσεις κι χρησιµοποιείτι γι ν κτγράψει τη συνέπει σε µι συσχέτιση µετξύ πλειάδων των δυο σχέσεων. Η πλέον συνήθης µορφή είνι υτή των εξωτερικών κλειδιών. Έν εξωτερικό κλειδί (foreign key) FKείνι έν σύνολο γνωρισµάτων σε µι σχέση R1 που ποτελεί κύριο κλειδί σε µι άλλη σχέση R2. Μι πλειάδ t 1 στην r(r 1 ) λέγετι ότι νφέρετι σε µι άλλη πλειάδ t 2 στην r(r 2 ), εάν: t 1 [FK] = t 2 [FK] π.χ., EMPLOYEE ( SSN, Name, BirthDate, Address, Sex, Salary, DNumber) PROJECT ( PNumber, PName, Location, DNumber) WORKS_ON ( SSN, PNumber, HoursPW) Tο Σχεσικό Μοντέλο Σελίδ 15
Περιορισµοί Πεδίου Τιµών Είνι οι κνόνες που ορίζοντι γι το πεδίο τιµών κι κληρονοµούντι πό τις στήλες (γνωρίσµτ) που πίρνουν τιµές πό το πεδίο. Το πεδίο µπορεί ν οριστεί µζί µε κνόνες κεριότητς (π.χ., το πεδίο των integersµε όλους τους κνόνες γι κέριους). Αυτοί είνι (κυρίως) οι σικοί τύποι δεδοµένων (data types.) Η κλύτερη περίπτωση είνι ν έχουµε υποστήριξη γι strong data typing (σπάνιο) Tο Σχεσικό Μοντέλο Σελίδ 16
Περιορισµοί Στηλών Είνι επιπρόσθετοι των περιορισµών πεδίου τιµών κι νφέροντι στις τιµές γι τ γνωρίσµτ. Γι πράδειγµ., η στήλη των small integersήintegers between 1 and 10, κλπ. είνι επιπλέον περιορισµοί των κερίων Σε µερικά σχεσικά συστήµτ, η υποστήριξη πρέχετι µε έν µηχνισµό που ονοµάζετι CHECK option Tο Σχεσικό Μοντέλο Σελίδ 17
Περιορισµοί Οριζόµενοι πό τον Χρήστη Κάθε περιορισµός κεριότητς, πέρν υτών που έχουν ήδη νφερθεί, κλείτι user-defined. Γι την υποστήριξη επιχειρηµτικών κνόνων, πιτούντι περιορισµοί κεριότητς µε σηµντική πολυπλοκότητ Αυτοί προσδιορίζοντι είτε διδικστικάήδηλωτικά (µε προτίµηση) Μι σειρά µηχνισµών χρησιµοποιούντι γι την υποστήριξη τέτοιων κνόνων σε έν σχεσικό σύστηµ: stored procedures, triggers, methods (γι object-oriented systems) Σηµντική οµάδ περιορισµών είνι οι περιορισµοί σηµσιολογικής κεριότητς (semantic integrity constraints) Γενικά, τ DBMS είνι δύντ σε υποστήριξη περιορισµών Tο Σχεσικό Μοντέλο Σελίδ 18
E-R διάγρµµ τράπεζς Tο Σχεσικό Μοντέλο Σελίδ 19
Από E/R Diagrams σε Relations Τύποι Οντοτήτων γίνοντι Σχέσεις (Πίνκες, Relations) µε τ ίδι χρκτηριστικά (attributes) Τύποι Συσχετίσεων γίνοντι Σχέσεις των οποίων τ Χρκτηριστικά είνι (µόνο): Τ Κλειδιά των συσχετιζόµενων Οντοτήτων Χρκτηριστικά του Τύπου Συσχέτισης Tο Σχεσικό Μοντέλο Σελίδ 20
Κθορίζοντς τ κλειδιά πό το E-R Ισχυρός τύπος οντότητς Το πρωτεύον κλειδί της οντότητς γίνετι πρωτεύον κλειδί της σχέσης Ασθενής τύπος οντότητς Το πρωτεύον κλειδί της σχέσης ποτελείτι πό την ένωση του πρωτεύοντος κλειδιού του ισχυρού τύπου οντότητς κι του µερικού κλειδιού του σθενούς τύπου οντότητς Τύπος συσχέτισης Η ένωση των πρωτευόντων κλειδιών των σχετιζόµενων οντοτήτων γίνετι υπερκλειδί της σχέσης Γι δυδικές Ν:1 συσχετίσεις, το πρωτεύον κλειδί της οντότητς στην πλευρά του Ν γίνετι πρωτεύον κλειδί της σχέσης Γι 1:1 συσχετίσεις, το πρωτεύον κλειδί της σχέσης µπορεί ν είνι το πρωτεύον κλειδί οποισδήποτε πό τις 2 εµπλεκόµενες οντότητες Γι Ν:Μ συσχετίσεις, το πρωτεύον κλειδί της σχέσης είνι η ένωση των πρωτεύοντων κλειδιών των σχετιζόµενων οντοτήτων Tο Σχεσικό Μοντέλο Σελίδ 21
Entity Set -> Relation name manf Beers Relation: Beers(name, manf) Tο Σχεσικό Μοντέλο Σελίδ 22
Τύποι Οντοτήτων µε υποκλάσεις 3 τρόποι: 1. Object-oriented : Μι σχέση γι κάθε υποκλάση, µε όλ τ attributes των υπερκλάσεώντης. Υποθέτουµε ότι κάθε οντότητ νήκει σε µί υποκλάση. 2. Χρήση nulls : 1 σχέση,οντότητες µε null τιµές σε attributes που δεν τις φορούν 3. E/R style : 1 σχέση γι κάθε subclass, µε µόνο τ key attributes κι τ attributesπου φορούν την κάθε subclass. Κάθε οντότητ ντιπροσωπεύετι σε όλες τις σχέσεις των κλάσεων που νήκει Tο Σχεσικό Μοντέλο Σελίδ 23
Relationship -> Relation name addr name manf Drinkers Likes Beers wife Favorite Likes(drinker, beer) Favorite(drinker, beer) Married Married(husband, wife) ή Married(husband, wife) Tο Σχεσικό Μοντέλο Σελίδ 24
Συνδυσµοί Σχέσεων Είνι ποδεκτό (κι πολλές φορές, επιθυµητό) ν συνδυάζοντι η Σχέση γι έν Τύπο Οντοτήτων Ε µε τη Σχέση R γι την Ν προς 1 Συσχέτιση της Ε µε κάποιον άλλον Τύπο Οντοτήτων.. Πράδειγµ: Drinkers(name, addr) κι Favorite(drinker, beer) Συνδυάζοντι στο: Drinker1(name, addr, favbeer) 25 Tο Σχεσικό Μοντέλο Σελίδ 25
Risk with Many-Many Relationships Συνδυάζοντς το Drinkers µε το Likes είνι λάθος µι κι οδηγεί σε φινόµεν όπως name addr beer Sally 123 Maple Bud Sally 123 Maple Miller Redundancy Tο Σχεσικό Μοντέλο Σελίδ 26
E-R διάγρµµτράπεζς Tο Σχεσικό Μοντέλο Σελίδ 27
Σχέσεις της Τράπεζς 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) Tο Σχεσικό Μοντέλο Σελίδ 28
Σχεσικό ιάγρµµ Σχήµτος Tο Σχεσικό Μοντέλο Σελίδ 29
Branch Relation Tο Σχεσικό Μοντέλο Σελίδ 30
Borrower Relation Tο Σχεσικό Μοντέλο Σελίδ 31
Loan Relation Tο Σχεσικό Μοντέλο Σελίδ 32
Ορισµός Σχεσικού Μοντέλου: ΠΡΑΞΕΙΣ ΠΡΑΞΕΙΣ / ΛΕΙΤΟΥΡΓΙΕΣ ιχωρίζοντι σε () ΕΝΗΜΕΡΩΣΕΙΣ, () ΑΝΑΚΤΗΣΕΙΣ Το σύνολο των πράξεων στο Σχεσικό Μοντέλο είνι ΚΛΕΙΣΤΟ δηλδή οι πράξεις ορίζοντι σε Σχέσεις κι έχουν ποτέλεσµ νέες Σχέσεις Ενηµερώσεις (UPDATE) σε Σχέσεις Εισγωγή (INSERT) πλειάδς ιγρφή (DELETE) πλειάδς Τροποποίηση (MODIFY) πλειάδς Οι περιορισµοί κεριότητς δεν πρέπει ν πριάζοντι µε την εκτέλεση µις πράξης ενηµέρωσης. Γι υτό, ενηµερώσεις µπορεί είτε ν πορρίπτοντιή ν διορθώνουνµε την εκτέλεση νέων (επιπλέον) ενηµερώσεων. Π.χ., ότν µι πλειάδ του EMPLOYEE διγράφετι, όλες οι πλειάδες στην WORKING_ON που έχουν την ίδι τιµή στο SSN διγράφοντι (νύπρκτοι υπάλληλοι δεν δουλεύουν σε έργ!) Tο Σχεσικό Μοντέλο Σελίδ 33
Πράξεις νάκτησης Σχεσικές γλώσσες H γλώσσ που χρησιµοποιείτι γι την επεξεργσί κι νάκτηση πληροφορίς πό τη άση Κτηγορίες procedural non-procedural Pure languages: Σχεσική Άλγερ (Relational Algebra) - διδιδικστικού τύπου, προσδιορίζει πως υπολογίζετι το ποτέλεσµ Σχεσικός Λογισµός (Relational Calculus) -δηλωτικού χρκτήρ, προσδιορίζει ποιες ιδιότητες πρέπει ν πληροί το ποτέλεσµ Tο Σχεσικό Μοντέλο Σελίδ 34
Σχεσικές Γλώσσες Κνέν σχεσικό DBMS δεν υποστηρίζει τις δύο κτηγορίες γλωσσών στην πλήρη θεωρητική µορφή των. Όµως, οι γλώσσες που υποστηρίζοντι σε DBMS έχουν τις ρίζες τους είτεστην Σχεσική Άλγερ ή στον Σχεσικό Λογισµό. Το Σχεσικό Μοντέλο υποστηρίζει πλές κι εκφρστικές Γλώσσες Ανάκτησης (QLs): Ισχυρή τυπική / θεωρητική άση (Μθηµτική Λογική). Επιτρέπουν µεγάλο θµό ελτιστοποιήσεις. Query Languages ΕΝ ΕΙΝΑΙ programming languages! Οι QLs δεν νµένοντι ν είνι Turing complete Οι QLs δεν χρησιµοποιούντι γι σύνθετους υπολογισµούς. Οι QLs υποστηρίζουν εύκολη κι ποδοτική πρόσση σε µεγάλες Βάσεις εδοµένων. Tο Σχεσικό Μοντέλο Σελίδ 35
Σχεσική Άλγερ ιδικστική γλώσσ 6 σικές πράξεις (συνολοθεωρητικές ή εξειδικευµένες γι άσεις) select project union set difference Cartesian product rename Πίρνουν σν είσοδο 1 ή περισσότερες σχέσεις κι δίνουν ως ποτέλεσµ µι νέ σχέση Οι τελεστές, όπως κι στην ριθµητική άλγερ, µπορεί ν φωλιάσουν (nested),εφόσον το ποτέλεσµ κάθε πράξης είνι µι Σχέση Tο Σχεσικό Μοντέλο Σελίδ 36
ΕΠΙΛΟΓΗ (SELECTION) Επιλέγει τις πλειάδες µις σχέσης που πληρούν κάποι συνθήκη (qualification) c, η οποί είνι µι λογική πράστση (Boolean Expression) στ γνωρίσµτ της Σχέσης Συµολισµός : σ c (R) ή R[c] Τυπικά: σ c (R) = { t t is in r(r) and condition c holds for t } όπου c τύπος που ποτελείτι πό terms που συνδέοντι µε: (and), (or), (not) Κάθε term είνι της µορφής: <attribute> op <attribute> or <constant> όπου op είνι: =,, >,, <, Πρδείγµτ : σ branch-name=«perryridge» (loan), loan[branch-name=«perryridge»] Tο Σχεσικό Μοντέλο Σελίδ 37
ΕΠΙΛΟΓΗ Η ΕΠΙΛΟΓΗ είνι commutative κι associative (a) σ c1 ( σ c2 (R) ) = σ c2 ( σ c1 (R) ) (b) σ c1 ( σ c2 (R) ) = σ c1 AND c2 (R) = σ c1, c2 (R) (c) σ c1 ( σ c2 ( σ c3 (R) ) ) = σ c2 ( σ c3 ( σ c1 (R) ) ) Tο Σχεσικό Μοντέλο Σελίδ 38
Relation r A B C D Επιλογή -Πράδειγµ 1 5 12 7 7 3 23 10 σ A=B ^ D > 5 (r) A B C D 1 7 23 10 Tο Σχεσικό Μοντέλο Σελίδ 39
σ branch-name=«perryridge» (loan) Πράδειγµ Τράπεζς Loan relation result Tο Σχεσικό Μοντέλο Σελίδ 40
ΠΡΟΒΟΛΗ (PROJECTION) Κρτά στο ποτέλεσµ µόνο µερικά γνωρίσµτ (που προσδιορίζοντι πό µι λίστ L) κι διγράφει τ άλλ γνωρίσµτ της R όπως επίσης τις διπλές πλειάδες ( κάθετο υποσύνολο της R) Συµολισµός : π L (R) ή R[L] Τυπικά: π L (R) = { t[l] t is in r(r) and L R } Πράδειγµ : π loan-number, amount (loan), or loan[loan-number, amount] Tο Σχεσικό Μοντέλο Σελίδ 41
Relation r: A B C Προολή -Πράδειγµ 10 20 30 1 1 1 40 2 π A,C (r) A C A C 1 1 1 = 1 1 2 2 Tο Σχεσικό Μοντέλο Σελίδ 42
Π loan-number, amount (account) Πράδειγµ Τράπεζς Loan relation result Tο Σχεσικό Μοντέλο Σελίδ 43
Ένωση (Union) Βάλε όλες τις πλειάδες των δύο Σχέσεων σε µι Σχέση Πρέπει ν έχουµε την ιδιότητ της ΣΥΜΒΑΤΟΤΗΤΑΣ ως προς την ΕΝΩΣΗ (UNION COMPATIBILITY) µετξύ των δυο Σχέσεων ηλδή: R 1 ( A 1, A 2,..., A n ) κι R 2 ( B 1, B 2,..., B n ) πρέπει ν έχουν τονίδιο ριθµό γνωρισµάτωνκι τ πεδί τιµών που ντιστοιχούν ν είνι συµτά, δηλδή, D(A i ) = D(B i ), γι i = 1, 2,..., n Συµολισµός: R S Τυπικά: R S = { t t is in R or t is in S } Πράδειγµ: find all customers with either an account or a loan π customer-name (depositor) π customer-name (borrower) Tο Σχεσικό Μοντέλο Σελίδ 44
Ένωση -Πράδειγµ Relations r, s: A B A B 1 2 2 3 r 1 s r s: A B 1 2 1 3 Tο Σχεσικό Μοντέλο Σελίδ 45
borrower Πράδειγµ Τράπεζς π customer-name (depositor) π customer-name (borrower) result depositor Tο Σχεσικό Μοντέλο Σελίδ 46
ιφορά Set Difference Επίλεξε τις πλειάδες της πρώτης Σχέσης, που δεν είνι στοιχεί της δεύτερης Σχέσης Συµτότητ σχέσεων Συµολισµός: R S Τυπικά: R S = { t t is in R and t is not in S } Πράδειγµ : Customers With An Account But No Loan depositor - borrower Tο Σχεσικό Μοντέλο Σελίδ 47
ιφορά -Πράδειγµ Relations r, s: A B A B 1 2 2 3 r 1 s r s: A B 1 1 Tο Σχεσικό Μοντέλο Σελίδ 48
borrower Πράδειγµ Τράπεζς π customer-name (depositor) π customer-name (borrower) depositor result Tο Σχεσικό Μοντέλο Σελίδ 49
Κρτεσινό Γινόµενο (Cartesian Product) Συνδύσε τις πλειάδες της µις σχέσης µe κάθε πλειάδ της άλλης Συµολισµός : R Χ S Τυπικά: R Χ S = { t t is the concatenation of a Tuple in R with a Tuple in S } Πράδειγµ : borrower loan Tο Σχεσικό Μοντέλο Σελίδ 50
Κρτεσινό Γινόµενο - Πράδειγµ Relations r, s: A B C D E r 1 2 γ 10 10 20 10 a a b b r x s: s A B C D E 1 1 1 1 2 2 2 2 γ γ 10 10 20 10 10 10 20 10 Tο Σχεσικό Μοντέλο Σελίδ 51 a a b b a a b b
Πράδειγµ Τράπεζς borrower borrower loan loan Tο Σχεσικό Μοντέλο Σελίδ 52
Σύνθεση Πράξεων Σύνθετες εκφράσεις µε πολλπλές πράξεις Example: σ A=C (r x s) r x s A B 1 1 1 1 2 2 2 2 C γ γ D 10 10 20 10 10 10 20 10 E a a b b a a b b σ A=C (r x s) A B C D E Tο Σχεσικό Μοντέλο Σελίδ 53 1 2 2 10 20 20 a a b
Πράδειγµ Τράπεζς σ branch-name = Perryridge (borrower loan) Tο Σχεσικό Μοντέλο Σελίδ 54
Μετονοµσί - Rename Μς επιτρέπει ν ΟΝΟΜΑΖΟΥΜΕ, κι κτά συνέπει ν µπορούµε ν νφερόµστε σε υτό, το ποτέλεσµ µις έκφρσης στη Σχεσική Άλγερ. Επίσης µς επιτρέπει ν νφερόµστε σε µί Σχέση µε περισσότερ του ενός ονόµτ. Πράδειγµ: Το ρ x (E) επιστρέφει το ποτέλεσµ της έκφρσης E µε το όνοµ X Αν η έκφρση E είνι θµού n, τότε η ρ x (A1, A2,, An) (E) επιστρέφει το ποτέλεσµ της E µε το όνοµ X, κι µε τ γνωρίσµτ ν έχουν µετονοµστεί σε A1, A2,., An. Tο Σχεσικό Μοντέλο Σελίδ 55
Example Queries Find all loans of over $1200 σ amount > 1200 (loan) Find the loan number for each loan of an amount greater than $1200 π loan-number (σ amount > 1200 (loan)) Tο Σχεσικό Μοντέλο Σελίδ 56
Example Queries Find the names of all customers who have a loan, an account, or both, from the bank π customer-name (borrower) π customer-name (depositor) Find the names of all customers who have a loan and an account at bank. π customer-name (borrower) π customer-name (depositor) Tο Σχεσικό Μοντέλο Σελίδ 57
Example Queries Find the names of all customers who have a loan at the Perryridge branch. π customer-name (σ branch-name= Perryridge (σ borrower.loan-number = loan.loan-number (borrower x loan))) Find the names of all customers who have a loan at the Perryridge branch but do not have an account at any branch of the bank. π customer-name (σ branch-name = Perryridge (σ borrower.loan-number = loan.loan-number (borrower x loan))) π customer-name (depositor) Tο Σχεσικό Μοντέλο Σελίδ 58
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ο Σχεσικό Μοντέλο Σελίδ 59
Example Queries Find the largest account balance Rename account relation as d The query is: π balance (account) - π account.balance (σ account.balance < d.balance (account x ρ d (account))) Tο Σχεσικό Μοντέλο Σελίδ 60