Department of Computer Science University of Cyprus EPL342 Databases Lecture 9: RA IΙ Relational Algebra (Chapter 6.2-6.3 Elmasri-Navathe 5ED) Demetris Zeinalipour http://www.cs.ucy.ac.cy/courses/epl342 9-1
Δηζαγσγή ζηε Σρεζηαθή Άιγεβξα Η Σρεζηαθή Άιγεβξα παξέρεη ηνπο ηειεζηέο (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) 9-2
Πεξηερόκελν Γηάιεμεο Κεθάιαην 6: Σρεζηαθή Άιγεβξα Οινθιήξωζε Γηάιεμεο 8 (π θαη ξ) 6.2) Πξάμεηο ηεο Σρεζηαθήο Άιγεβξαο από ηε Θεσξία Σπλόισλ. Έλσζε, Τνκή, Γηαθνξά Σπλόισλ, Σπκκεηξηθή Γηαθνξά 6.3) Γπαδηθέο Σρεζηαθέο Πξάμεηο: Σπλέλσζε 9-3
Τειεζηέο Θεσξίαο Σπλόισλ Έλωζε (UNION) Τειεζηήο Έλωζεο (UNION) Δίλαη δπαδηθόο ηειεζηέο θαη ζπκβνιίδεηαη κε Τν απνηέιεζκα ηνπ R S, είλαη κηα ζρέζε ε νπνία πεξηιακβάλεη όιεο ηηο πιεηάδεο νη νπνίεο αλήθνπλ i) ζην R, ii) ην S ή iii) ζην R θαη S. R S = { x x R x S } Θπκεζείηε όηη νη ηειεζηέο ηεο ζρεζηαθήο άιγεβξαο είλαη θιεηζηνί (δειαδή ην απνηέιεζκα ελόο ηειεζηή είλαη κηα λέα ζρέζε). Τα δηπιόηππα (duplicate tuples) απαιείθνληαη R S 9-4
Τειεζηέο Θεσξίαο Σπλόισλ Έλωζε (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) 9-5
Τειεζηέο Θεσξίαο Σπλόισλ Έλωζε (UNION) Παξάδεηγκα: Βξεο ην SSN όισλ ησλ ππαιιήισλ πνπ δνπιεύνπλ ζην ηκήκα (dno) 5 ή επηβιέπνπλ θάπνην ππάιιειν πνπ δνπιεύεη ζην ηκήκα 5. Με ποια σειρά σχεσιακών τελεστών θα απαντήσουμε το πιο πάνω ερώτημα; 9-6
Τειεζηέο Θεσξίαο Σπλόισλ Έλωζε (UNION) Γηαηύπσζε ζε Σρεζηαθή Άιγεβξα Eπεξώηεζε: TEMP DNO=5 (EMPLOYEE) RESULT1 SSN (TEMP) RESULT2(SSN) SUPERSSN (TEMP) RESULT RESULT1 RESULT2 Σεκεηώζηε ηελ κεηνλνκαζία Απνηέιεζκα: 9-7
Τειεζηέο Θεσξίαο Σπλόισλ Τνκή (INTERSECTION) R S Τειεζηήο Τνκήο (Intersection) Δίλαη δπαδηθόο ηειεζηέο θαη ζπκβνιίδεηαη κε Τν απνηέιεζκα ηνπ 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 κεηαηξνπήο. 9-8
Τειεζηέο Θεσξίαο Σπλόισλ Τνκή (INTERSECTION) Παξάδεηγκα: Βξεο ην SSN όισλ ησλ ππαιιήισλ πνπ δνπιεύνπλ ζην ηκήκα (dno) 5 ΚΑΙ έρνπλ εμαξηώκελν (dependent) Απάληεζε: SSN 333445555 9-9
Τειεζηέο Θεσξίαο Σπλόισλ Τνκή (INTERSECTION) Γηαηύπσζε ζε Σρεζηαθή Άιγεβξα R1 SSN ( DNO=5 (EMPLOYEE)) R2(SSN) ESSN (DEPENDENT) RESULT R1 R2 Tν ίδην εξώηεκα κπνξεί λα δηαηππσζεί θαη κε ζπλέλσζε (πνπ ζα δνύκε αξγόηεξα) 9-10
Τειεζηέο Θεσξίαο Σπλόισλ Γηαθνξά Σπλόιωλ (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) Τ 9-12
Τειεζηέο Θεσξίαο Σπλόισλ Γηαθνξά Σπλόιωλ (Minus) Σπκβαηέο-πξνο-Τύπν (παξόιν πνπ έρνπλ δηαθνξεηηθά νλόκαηα γλσξηζκάησλ) * * * Student =7 Student- Instructor = 5 Αθαίξεζε Susan θαη Ramesh from Student * Instructor =5 Instructor Student = 3 Αθαίξεζε Susan θαη Ramesh from Instructor 9-13
Τειεζηέο Θεσξίαο Σπλόισλ Σπκκεηξηθή Γηαθνξά Σπλόιωλ Όπσο ζα ζπκάζηε, ππάξρεη θαη ε Σπκκεηξηθή Γηαθνξά (Symmetric Difference), ε νπνία ζπκβνιίδεηαη κε ην ζύκβνιν: Αλαπαξηζηάηαη νπζηαζηηθά από ηνλ ινγηθό ηειεζηή XOR (Exlusive-OR) Γει., R S = { x x R x S } Ιζρύνπλ ηα αθόινπζα: R S = S R αληηκεηαζεηηθή ηδηόηεηα R S = (R S) (S R) Γεληθά, ππάξρνπλ πνιιέο άιιεο ηαπηόηεηεο νη νπνίεο κπνξνύλ λα απνδεηρζνύλ κε ινγηθέο ηζνδπλακίεο, πίλαθεο ζπκκεηνρήο ή κε ρξήζε γλωζηώλ ηζνδπλακηώλ R S 9-14
Τειεζηέο Θεσξίαο Σπλόισλ Σπκκεηξηθή Γηαθνξά Σπλόιωλ Student =7 Instructor =5 * * * S I * S I = (S - I) (I S) = 5 + 3 = 8 9-15
Τειεζηέο Θεσξίαο Σπλόισλ Καξηεζηαλό Γηλόκελν (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 δελ ρξεηάδεηαη λα ζπκθσλνύλ ζηνλ ηύπν. 9-16
Τειεζηέο Θεσξίαο Σπλόισλ Καξηεζηαλό Γηλόκελν (Cartesian Product) Σηελ πξαγκαηηθόηεηα, ην Καξηεζηαλό Γηλόκελν δελ είλαη ηόζν πξαθηηθόο ηειεζηήο. Φξεζηκνπνηείηαη κόλν όηαλ ζέινπκε λα δεκηνπξγήζνπκε όιεο ηηο δπλαηέο δηαηάμεηο κεηαμύ δπν ζρέζεσλ. Π.ρ., STUDENT(ssn) x COURSES(course_id) Γεκηνύξγεζε όινπο ηνπο ζπλδπαζκνύο (ssn, course_id) ην νπνίν δελ είλαη θαη ηόζν ρξήζηκν. Γίλεηαη σζηόζν πξαθηηθό εάλ ρξεζηκνπνηείηαη σο κέξνο αθνινπζίαο άιιωλ ηειεζηώλ, π.ρ., Φηηάρλνπκε ην θαξηεζηαλό γηλόκελν θαη επηιεγνύκε έλα ππνζύλνιν απηνύ ηνπ ζπλόινπ σο απάληεζε (ην νπνίν καο νδεγεί ζηελ έλλνηα ηεο Σπλέλσζεο (JOIN)) Τν επόκελν παξάδεηγκα δείρλεη όηη ην θαξηεζηαλό γηλόκελν ΓΔΝ είλαη θαη ηόζν πξαθηηθό από κόλν ηνπ. 9-17
Τειεζηέο Θεσξίαο Σπλόισλ Καξηεζηαλό Γηλόκελν (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 9-18
Γπαδηθνί Σρεζηαθνί Τειεζηέο Σπλέλωζε (JOIN) Απηό πνπ ζα ζέιακε ζηε πξαγκαηηθόηεηα, είλαη λα ζπλδπάζνπκε ηα Reserves κε ηνπο Sailors θαηά ηέηνην ηξόπν πνπ λα δεκηνπξγείηαη θάπνηα ρξήζηκε πιεξνθνξία Χξήζηκν Δξώηεκα: Βξεο ζε πνην όλνκα αλήθεη θάζε θξάηεζε Reserve 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 Δάλ εθηειεζηεί ην Reserves x Sailors αθνινπζνύκελν από ζ Reserves.sid = Sailors.sid ηόηε βξίζθνπκε ην επηζπκεηό απνηέιεζκα To απνηέιεζκα ζα απηή ηελ θνξά κόλν έμη πιεηάδεο: (28, 103, 12/4/06, yuppy, 9, 35.0) (28, 103, 11/3/06, yuppy, 9, 35.0) (31, 101, 10/10/06, lubber, 8, 55.5) (31, 102, 10/12/06, lubber, 8, 55.5) (31, 101, 10/11/06, lubber, 8, 55.5) (58, 103, 11/12/06, rusty, 10, 35.0) 9-19
Γπαδηθνί Σρεζηαθνί Τειεζηέο Σπλέλωζε (JOIN) Τειεζηήο Σπλέλωζεο (JOIN, *) * Θα ρξεζηκνπνηνύκε ην εάλ θαη δελ είλαη επίζεκν ζύκβνιν Δίλαη έλαο δπαδηθόο ηειεζηήο ν όπνηνο ζπλδπάδεη ζρεηηδόκελεο πιεηάδεο ζρέζεσλ ζε κηα εληαία πιεηάδα. Τππηθά, νξίδεηαη σο ην θαξηεζηαλό γηλόκελν κεηαμύ δπν ζρέζεσλ αθνινπζνύκελν από επηινγή. R <Κξηηήξηα> S = <Κξηηήξηα> (R S) Τα θξηηήξηα είλαη κηα Λνγηθή Έθθξαζε (Boolean Expression): Κξηηήξηα:= <Κξηηήξην> $ <Κξηηήξην> $... $ <Κξηηήξην> $ είλαη Λνγηθόο Τειεζηήο AND ή OR Κξηηήξην := <γλώξηζκα> # <ζηαζεξή ηηκή γλώξηζκα> # είλαη δπαδηθόο Τειεζηήο Σύγθξηζεο {<,>,=,!=, >=, <=} π.ρ., (age=30) AND (sex= M ) AND (ssn!=mgr_ssn) Γηα λα αλαθεξζνύκε ζε γλσξίζκαηα ρξεζηκνπνηείηαη θαη ε ζεκεηνγξαθία κε ηελ ηειεία, π.ρ., DEPARTMENT.MGRSS, EMPLOYEE.SSN 9-20
Γπαδηθνί Σρεζηαθνί Τειεζηέο Τειεζηήο Σπλέλωζεο (JOIN) Δπεξώηεζε: Βξείηε ην όλνκα ηνπ manager θάζε department. a) Πξέπεη λα ζπλδπάζνπκε θάζε πιεηάδα ηνπ πηλάθα Department κε ηηο πιεηάδεο ηνπ πίλαθα Employee. R = (DEPARTMENT EMPLOYEE) b) Μέηα πξέπεη λα επηιέμνπκε ηηο πιεηάδεο γηα ηηο νπνίεο ηζρύεη ην Mgr_ssn=SSN, δει., ζ Mgr_ssn = SSN (R) Απνηέιεζκα Τν a-b ηζνδπλακεί κε ηελ έθθξαζε: DEPARTMENT Mgr_ssn = SSN EMPLOYEE 9-21
Γπαδηθνί Σρεζηαθνί Τειεζηέο Τειεζηήο Σπλέλωζεο (JOIN) Πξαθηηθά, ην ρξεζηκνπνηείηαη γηα λα ζπλδπαζηνύλ ζρεηηδόκελεο πιεηάδεο δπν ζρέζεωλ, Η Σπλέλσζε κεηαμύ δπν ζρέζεσλ βαζκνύ κεγαιπηέξνπ ηνπ 2, π.ρ., R(A 1, A 2,..., A n ) S(B 1, B 2,..., B m ), καο επηζηξέθεη κηα ζρέζε Q βαζκνύ n+m δει., Q(A1, A2,..., An, B1, B2,..., Bm) Ο κεγαιύηεξε δπλαηή ηηκή ηνπ Q είλαη n*m (εάλ θαη ζηε πξάμε αλακέλεηαη λα είλαη κηθξόηεξν, ιόγσ ηεο επηινγήο) Σηελ ζπλέλωζε, όπσο θαη ζην Καξηεζηαλό Γηλόκελν, νη ηειεζηαίνη (R, S) ΓΔΝ ρξεηάδεηαη λα ζπκθωλνύλ ζηνλ ηύπν ΑΛΛΑ πξέπεη λα έρνπλ έλα θνηλό πεδίν (ην νπνίν ζα ζπκθσλεί ζηνλ ηύπν δεδνκέλσλ, δει., R.Ai=S.Bj ή r[ai]=s[bj]) Σηε ζπλέρεηα ζα δνύκε δηάθνξεο παξαιιαγέο ηνπ βαζηθνύ ηειεζηή (Σπλέλωζε Ιζόηεηαο (Equi-join), Φπζηθή Σπλέλωζε (Natural Join), θηι) 9-22
Γπαδηθνί Σρεζηαθνί Τειεζηέο Θ-Σπλέλωζε (Θ-JOIN) Ο ηειεζηήο ζπλέλσζεο πνπ είδακε κέρξη ηώξα νλνκάδεηαη Θ-join θαη απνηειεί ηελ γεληθεπκέλε πεξίπησζε: R Θ S Όπως είταμε αναθέρει, η ζπλζήθε ζπλέλσζεο Θ μπορεί να είναι οποιαδήποηε Λογική (Boolean) έκυραση Σεκεηώζηε όηη νπνηαδήπνηε ινγηθή έθθξαζε κπνξεί λα κεηαθξαζηεί ζε Σπδεπθηηθή Καλνληθή Μνξθή (Conjunctive Normal Form - CNF) κε ρξήζε ινγηθώλ ηζνδπλακηώλ CNF: Μηα ζύδεπμε όξσλ, όπνπ θάζε όξνο είλαη κηα δηάδεπμε θξηηεξίσλ (ιεθηηθώλ ζηνηρείσλ) Π.ρ., (day<8/9/94 OR bid=5 OR sid=3) AND (rname= Paul OR bid=5 OR sid=3) CNF NOT CNF 9-23
Γπαδηθνί Σρεζηαθνί Τειεζηέο Σπλέλωζε Ιζόηεηαο (EQUIJOIN) Σπλέλωζε Ιζόηεηαο (EQUIJOIN) Δμεηδίθεπζε ηνπ ηειεζηή ζ-join: ν ηειεζηήο ζύγθξηζεο πεξηνξίδεηαη κόλν ζε ηζνδπλακία = Π.ρ., DEPARTMENT Mgr_ssn = SSN EMPLOYEE Υπάξρεη ζαλ νξηζκόο εθόζνλ νη πεξηζζόηεξεο ζπλελώζεηο ρξεζηκνπνηνύλ κόλν ζπγθξίζεηο ηζόηεηαο Σηελ πξάμε σζηόζν δελ δηαθέξεη (ζε άπνςε ζεκεηνγξαθίαο ή πινπνίεζεο) Σεκεηώζηε όηη ζην απνηέιεζκα ηνπ Equijoin ζα έρνπκε δπν ζηήιεο κε ηελ ίδηα πιεξνθνξία Π.ρ., Mgr_ssn θαη SSN 9-24
Γπαδηθνί Σρεζηαθνί Τειεζηέο Φπζηθή Σπλέλωζε (Natural Join) Φπζηθή Σπλέλωζε (Natural Join, Σύκβνιν * ) Δμεηδίθεπζε ηνπ ηειεζηή equi-join (δει., κόλν =) κε ηνπο εμήο πεξηνξηζκνύο: 1. Οη ηειεζηαίνη έρνπλ ην ίδην όλνκα ζην γλώξηζκα ζπλέλσζεο, π.ρ., Department * Dept_Locations (Dnumber = Dnumber) OK Department * Employee (SSN=Mgr_SSN) Με-επηηξεπηό Σε απηή ηελ πεξίπησζε πξέπεη λα γίλεη πξώηα κεηνλνκαζία ηνπ ελ ιόγσ πεδίνπ π.ρ., ξ D (Mgr_SSN->SSN) (D) κεηά Dept_Mgr=D * E 2. Τν θνηλό γλώξηζκα εκθαλίδεηαη ζην απνηέιεζκα 1 θνξά. Π.ρ., 9-25
Γπαδηθνί Σρεζηαθνί Τειεζηέο Φπζηθή Σπλέλωζε (Natural Join) Παξάδεηγκα Ι: DEPT_LOCS DEPARTMENT * DEPT_LOCATIONS 9-26
Γπαδηθνί Σρεζηαθνί Τειεζηέο Φπζηθή Σπλέλωζε (Natural Join) Παξάδεηγκα ΙΙ: Γηα θάζε Project ηύπσζε ηηο πιεξνθνξίεο ηνπ Department πνπ αλήθεη PROJ_DEPT PROJECT * ξ Dnumber Dnum (DEPARTMENT) 9-27
Γπαδηθνί Σρεζηαθνί Τειεζηέο Φπζηθή Σπλέλωζε (Natural Join) Παξάδεηγκα ΙΙΙ: Q R(A,B,C,D) * S(C,D,E) Η ππνλννύκελε ζπλζήθε ζπλέλωζεο πεξηιακβάλεη όια ηα δεύγε γλωξηζκάηωλ κε ην ίδην όλνκα, γηα ηα νπνία δεκηνπξγνύκε κηα ζύδεπμε (AND): Γει., R.C=S.C AND R.D=S.D Τν απνηέιεζκα δηαηεξεί κόλν κηα θνξά θάζε γλώξηζκα, δει.: Q(A,B,C,D,E) 9-28
Κιεηζηόηεηα Σρεζηαθώλ Τειεζηώλ Complete Set of Relational Operations To ζύλνιν ζρεζηαθώλ ηειεζηώλ {,,, -,, X} νλνκάδεηαη θιεηζηό ζύλνιν (complete set) διόηι κάθε έκθραζη ζτεζιακής άλγεβρας μπορεί να διαησπωθεί από ηον ζσνδσαζμό ηων πιο πάνω ηελεζηών: Π.ρ., : R S = (R S ) ((R - S) (S - R)) R <join condition> S = <join condition> (R X S) R S 9-29