Database: Relationsalgeba 2-11 Relationsalgeba Relationsalgeba bestå av en mängd opeatoe som ta en elle två elatione som input och poducea en ny elation som esultat. De fundamentala opeationena ä unäa opeatoe select σ (sigma) poject Π (pi) ename ρ (ho) binäa opeatoe union (union) mängd diffeens (minus) Katesisk podukt (kyss) Vi definiea exta opeatione som inte öka stykan av elationsalgeban, men som föenkla vanliga fågo. De exta opeationena ä mängd intesektion (snitt) natulig join division tilldelning
Database: Relationsalgeba 2-12 C D α α 1 7 α β 5 7 β β 12 10 β α 23 3 C D α α 1 7 α β 5 7 β β 12 10 β α 23 3 σ A=B D>5 () C D α α 1 7 β β 12 10 Π A, D () A D β 10 β 3 Π A, D () A D β 10 β 3 Selekt Pojekt α 1 β 5 s β 1 s α 1 β 5 β 1 Union { (α,7), (α,1), (β,5)} { (α,7), (β,1)} = { (α,7), (α,1), (β,5), (β,1) } { (α,7), (α,1), (β,5)} { (α,7), (β,1)} = { (α,1), (β,5) } α 1 β 5 s β 1 s α 1 β 5 Diffeens α 1 β 2 s C D E α 10 a β 10 a β 20 b γ 10 b s C D E α 1 α 10 a α 1 β 10 a α 1 β 20 b α 1 γ 10 b β 2 α 10 a β 2 β 10 a β 2 β 20 b β 2 γ 10 b Katesisk podukt
Database: Relationsalgeba, fundamentala opeatoe 2-13 Fundamentala opeatoe i elationsalgeba Select opeationen not.: σ P () Välje ut, u en elation, tuple som satisfiea ett givet pedikat. Def.: σ p ( ) = { tt pt ()} dä ä ett elationsnamn och p en fomel i popositionskalkylen bestående av teme sammanbundna av (and), (o), (not). Vaje tem ä en av: <attibut> op <attibut> <attibut> op <konstant> dä op ä en av: =,, <,, >, Ex.: σ banch_name = "Downtown" (loan) loan loan_numbe banch_name amount L-11 Round Hill 900 L-14 Downtown 1500 L-15 Peyidge 1500 L-16 Peyidge 1300 L-17 Downtown 1000 L-23 Redwood 2000 L-93 Mianus 500 loan_numbe banch_name amount L-14 Downtown 1500 L-17 Downtown 1000
Database: Relationsalgeba, fundamentala opeatoe 2-14 Poject-opeationen not.: Π A () 1, A 2,..., A k Välje ut en elle flee attibut u en elation Def.: Π A1, A 2,, A k ( ) dä A i ä attibutnamn och ä ett elationsnamn. Resultatet definieas som den elation med k kolonne som ehålls genom att styka de kolonne u som ej ä listade. Duplikat ade avlägsnas fån elationen, ty elatione ä mängde. Ex.: Π loan_numbe, amount (loan) loan_numbe amount L-11 900 L-14 1500 L-15 1500 L-16 1300 L-17 1000 L-23 2000 L-93 500 loan loan_numbe banch_name amount L-11 Round Hill 900 L-14 Downtown 1500 L-15 Peyidge 1500 L-16 Peyidge 1300 L-17 Downtown 1000 L-23 Redwood 2000 L-93 Mianus 500 Eftesom esultatet av en opeation ä en elation kan elationsalgebaiska opeatione sammansättas till elationsalgebaiska uttyck Ex.: Π loan_numbe, amount (σ banch_name = "Downtown" (load)) loan_numbe amount L-14 1500 L-17 1000 loan_numbe banch_name amount L-14 Downtown 1500 L-17 Downtown 1000
Database: Relationsalgeba, fundamentala opeatoe 2-15 Union-opeationen not.: s Resultat elationen fö union opeationen s innehålle de tuple som ingå i den ena elle båda input elationena. Def.: s = { tt t s} Fö att s skall vaa giltigt : 1. och s måste ha samma aitet (samma antal attibut). 2. Attibutdomänena måste vaa kompatibla (den i:te kolonnen i måste innehålla samma typs väden som den i:te kolonnen i s, fö vaje i. Ex.: Π custome_name (boowe) Π custome_name (deposito) custome_name Adams Cuy Jackson Williams custome_name Johnsson Lindsay Tune En elation ä en mängd inga dublette custome_name Adams Cuy Jackson Williams Johnsson Lindsay Tune Pesone som ha antingen lån elle konto, elle båda. boowe custome_name loan_numbe Adams L-16 Cuy L-93 L-15 Jackson L-14 L-17 L-11 L-23 Williams L-17 deposito custome_name account_numbe A-102 Johnsson A-101 Johnsson A-201 A-217 Lindsay A-222 A-215 Tune A-305
Database: Relationsalgeba, fundamentala opeatoe 2-16 Mängddiffeens-opeationen not.: s Resultatelationen fö diffeens opeationen -s innehålle de tuple som ingå i men ej i s. Def.: s = { tt t s} Input elationena måste vaa kompatibla, dvs.: och s måste ha samma aitet. attibut domänena av och s måste vaa kompatibla. Ex.: Π custome_name (boowe) Π custome_name (deposito) custome_name Adams Cuy Jackson Williams custome_name Johnsson Lindsay Tune custome_name Adams Cuy Jackson Williams Pesone som ha lån men ej konto. boowe custome_name loan_numbe Adams L-16 Cuy L-93 L-15 Jackson L-14 L-17 L-11 L-23 Williams L-17 deposito custome_name account_numbe A-102 Johnsson A-101 Johnsson A-201 A-217 Lindsay A-222 A-215 Tune A-305
Database: Relationsmodellen, fundamentala opeatoe 2-17 Katesiskpodukt-opeationen not.: s Kombinea infomationen i två elatione. Def.: s = { tq t q s} Antag att attibuten i R ( ) och ss ( ) ä disjunkta, dvs. R S =. Om attibuten (R) och s(s) inte ä disjunkta, så måste enaming användas. Eftesom attibuten i input elationena kan ha samma namn fölängs attibutnamnen med elationens namn i esultatelationen vid behov. boowe custome_name loan_numbe Adams L-16 Cuy L-93 L-15 Jackson L-14 L-17 L-11 L-23 Williams L-17 loan loan_numbe banch_name amount L-11 Round Hill 900 L-14 Downtown 1500 L-15 Peyidge 1500 L-16 Peyidge 1300 L-17 Downtown 1000 L-23 Redwood 2000 L-93 Mianus 500 boowe loan custome_name boowe.loan_numbe loan.loan_numbe banch_name amount Adams L-16 L-11 Round Hill 900 Adams L-16 L-14 Downtown 1500 Adams L-16 L-15 Peyidge 1500 Adams L-16 L-16 Peyidge 1300 Adams L-16 L-17 Downtown 1000 Adams L-16 L-23 Redwood 2000 Adams L-16 L-93 Mianus 500 Cuy L-93 L-11 Round Hill 900 Cuy L-93 L-14 Downtown 1500 Cuy L-93 L-15 Peyidge 1500 Cuy L-93 L-16 Peyidge 1300 Cuy L-93 L-17 Downtown 1000 Cuy L-93 L-23 Redwood 2000 Cuy L-93 L-93 Mianus 500 L-15 L-11 Round Hill 900............... Williams L-17 L-93 Mianus 500 Innehålle 8 7 = 56 element
Database: Relationsalgeba, fundamentala opeatoe 2-18 Resultatelationen fö ett elationsalgebaiskt uttyck ha inget namn. Ett namn behövs fö att kunna efeea till elationen. Rename-opeationen not.: ρ x (E), ρ (E) x(a 1, A 2,..., A n ) Tillåte oss att namnge, och således efeea till, esultaten av elationsalgebaiska uttyck. efeea till en elation med mea än ett namn. Def.: ρ x ( E) Retunea uttycket E unde namnet x. Tillåte oss att ge nya namn åt attibuten i en elation Def.: Låt det elationsalgebaiska uttycket E ha aiteten n. ρ x ( A1, A 2,, A n ) ( E) Retunea uttycket E unde namnet x, och med attibut med de nya namnen A 1, A 2,...,A n. Ex.: ρ lantagae(kundnamn) ( Π custome_name (boowe) ) lantagae kundnamn Adams Cuy Jackson Williams Rename-opeationen behövs om en elation ingå me än en gång i en opeation.
Database: Relationsalgeba, fomell definition 2-19 Relationsalgeba - fomell definition Ett basuttyck i elationsalgeba bestå av antingen en elation i en databas elle en konstant elation En konstant elation skivs i fomen {(tupel) (tupel)... (tupel)} Ex.: {(L-15, Peyidge,1500) (L-23, Redwood, 2000)} Ett geneellt uttyck i elationsalgeba konstueas av minde deluttyck. Låt E 1 och E 2 vaa elationsalgebaiska uttyck; då ä följande alla uttyck i elationsalgeba: E 1 E 2 E 1 E 2 E 1 E 2 σ P (E 1 ), dä P ä ett pedikat på attibut i E 1 Π S (E 1 ), dä S ä en lista bestående av någa av attibuten i E 1 ρ x (E 1 ), dä x ä det nya namnet fö esultatet av E 1
Database: Relationsalgeba, exta opeatoe 2-20 M.h.a. de fundamentala elationalgebaiska opeationena kan vilken fåga som helst uttyckas. Men uttycken bli ofta långa vafö exta opeatione definieats. Exta opeatione i elationsalgeba α 1 β 5 C D α 1 α a β 2 γ a γ 4 β b α 1 γ a δ 2 β b s β 1 s B D E 1 a α 3 a β 1 a γ 2 b δ 3 b ε s s C D E α 1 α a α α 1 α a γ α 1 γ a α α 1 γ a γ δ 2 β b δ Intesektion { (α,7), (α,1), (β,5)} { (α,7), (β,1)} = { (α,7) } Natulig join C D E α a α a 1 α a γ a 1 α a γ b 1 β a γ a 1 β a γ b 3 γ a γ a 1 γ a γ b 1 γ a a b 1 s D E a 1 b 1 s C α a γ γ a γ Division B D E 1 a α 3 a β 1 a γ s B D E 1 a α 3 a β 1 a γ Tilldelning
Database: Relationsalgeba, exta opeatoe 2-21 Intesektion-opeationen not.: s (snitt ) Resultat elationen fö intesektion opeationen s innehålle de tuple som ingå i både och s. Def.: s = { tt t s} Input elationena måste vaa kompatibla. Obs! s = ( s ) Ex.: Π custome_name (boowe) Π custome_name (deposito) = Π custome_name (boowe) (Π custome_name (boowe) Π custome_name (deposito)) custome_name Adams Cuy Jackson Williams custome_name Johnsson Lindsay Tune custome_name Adams Cuy Jackson Williams Pesone som ha lån men ej depositione custome_name Pesone som ha både lån och depositione boowe custome_name loan_numbe Adams L-16 Cuy L-93 L-15 Jackson L-14 L-17 L-11 L-23 Williams L-17 deposito custome_name account_numbe A-102 Johnsson A-101 Johnsson A-201 A-217 Lindsay A-222 A-215 Tune A-305
Database: Relationsalgeba, exta opeatoe 2-22 Natulig join-opeationen not.: s Natulig join opeationen välje ut de tuple u den katesiska podukten fö input elationena som ha samma väden på attibut med samma namn. Def.: Låt och s vaa elatione på schema R esp. S. Då ä s en elation på schema R S som fås enligt: Betakta vaje pa av tuple t fån och t s fån s. Om t och t s ha samma väde på vat och ett av attibutena i R S, lägg till en tupel t till esultatet dä t ha samma väde som t på t ha samma väde som t s på s dvs.: s = Π R S ( σ.a1 = s.a 1.A 2 = s.a 2.A n = s.a ( s) ) n dä R S = { A 1, A 2,..., A n }. Ex.: boowe loan =? vilken fåga besvaas Π custome_name, loan_numbe, banch_name, amount (σ boowe.loan_numbe = (boowe loan)) loan.loan_numbe boowe custome_name loan_numbe Adams L-16 Cuy L-93 L-15 Jackson L-14 L-17 L-11 L-23 Williams L-17 loan loan_numbe banch_name amount L-11 Round Hill 900 L-14 Downtown 1500 L-15 Peyidge 1500 L-16 Peyidge 1300 L-17 Downtown 1000 L-23 Redwood 2000 L-93 Mianus 500
Database: Relationsalgeba, exta opeatoe 2-23 Ex.: boowe loan = Π custome_name, loan_numbe, banch_name, amount (σ boowe.loan_numbe = loan.loan_numbe (boowe loan)) custome_name boowe.loan_numbe loan.loan_numbe banch_name amount Adams L-16 L-11 Round Hill 900 Adams L-16 L-14 Downtown 1500 Adams L-16 L-15 Peyidge 1500 Adams L-16 L-16 Peyidge 1300 Adams L-16 L-17 Downtown 1000 Adams L-16 L-23 Redwood 2000 Adams L-16 L-93 Mianus 500 Cuy L-93 L-11 Round Hill 900 Cuy L-93 L-14 Downtown 1500 Cuy L-93 L-15 Peyidge 1500 Cuy L-93 L-16 Peyidge 1300 Cuy L-93 L-17 Downtown 1000 Cuy L-93 L-23 Redwood 2000 Cuy L-93 L-93 Mianus 500 L-15 L-11 Round Hill 900............... custome_name Williams boowe.loan_numbe L-17 loan.loan_numbe L-93banch_name Mianus amount 500 Adams L-16 L-16 Peyidge 1300 Cuy L-93 L-93 Mianus 500 L-15 L-15 Peyidge 900 Jackson L-14 L-14 Downtown 1500 L-17 L-17 Downtown 1000 L-11 L-11 Round Hill 900 L-23 L-23 Redwood 2000 Williams L-17 L-17 Downtown 1000 custome_name loan_numbe banch_name amount Adams L-16 Peyidge 1300 Cuy L-93 Mianus 500 L-15 Peyidge 900 Jackson L-14 Downtown 1500 L-17 Downtown 1000 L-11 Round Hill 900 L-23 Redwood 2000 Williams L-17 Downtown 1000 Pesone som ha lån samt lånets numme, gen och lånebelopp.
Database: Relationsalgeba, exta opeatoe 2-24 Divisions-opeationen not.: s Antag att elation innehålle alla attibut som ingå i elation s. Divisions opeationen s välje ut de tuple (med de attibut som ej ingå i s) u som fö vaje tupel i s ha samma väden Def.: Låt och s vaa elatione på schema R esp. S. Låt S R. Relationen s ä en elation på schema R S. En tupel t ä i s omm: 1 t tillhö Π R-S () 2 Fö vaje tupel t s i s finns en tupel t i som satisfiea t [S] = t s [S] t [R - S] = t Obs! s = Π R-S () Π R-S ((Π R-S () s) Π R-S,S ()) Ex.: Π custome_name, banch_name (deposito account) Π banch_name (σ banch_city = Booklyn (banch)) custome_name Johnsson Johnsson Lindsay Tune banch_name Peyidge Downtown Bighton Bighton Redwood Mianus Round Hill banch_name Bighton Downtown genana i Booklyn banch banch_name banch_city assets Bighton Booklyn 7100000 Downtown Booklyn 9000000 Mianus Hoseneck 400000 Noth Town Rye 3700000 Peyidge Hoseneck 1700000 Pownal Bennington 300000 Redwood Palo Alto 2100000 Round Hill Hoseneck 8000000 custome_name Johnsson deposito custome_name account_numbe A-102 Johnsson A-101 Johnsson A-201 A-217 Lindsay A-222 A-215 Tune A-305 Pesone som ha konton i alla gena i Booklyn account account_numbe banch_name balance A-101 Downtown 500 A-102 Peyidge 400 A-201 Bighton 900 A-215 Mianus 700 A-217 Bighton 750 A-222 Redwood 700 A-305 Round Hill 350
Database: Relationsalgeba, exta opeatoe 2-25 Tilldelnings-opeationen not.: E Tilldelningsopeationen ge ett bekvämt sätt att uttycka komplexa fågo: Tillåte att en fåga skivs som ett sekventiellt pogam bestående av en seie av tilldelninga följda av ett uttyck vas väde visas som esultat av fågan Tilldelning måste alltid ske till en tempoä elationsvaiabel. Ex.: s kan skivas som temp1 Π R-S () temp2 Π R-S ((temp1 s) Π R-S,S ()) esult temp1 temp2