html5-img
1 / 74

Baze podataka

Lekcija 8. Baze podataka. Relaciona algebra. Relaciona algebra. Relaciona algebra pripada kategoriji formalnih upitnih jezika proceduralnog karaktera Čini je skup operatora za rad sa relacijama, a rezultati operacija su takođe relacije

dash
Download Presentation

Baze podataka

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lekcija 8 Baze podataka Relaciona algebra Relaciona algebra

  2. Relaciona algebra • Relaciona algebra pripada kategoriji formalnih upitnih jezika proceduralnog karaktera • Čini je skup operatora za rad sa relacijama, a rezultati operacija su takođe relacije • Relaciona algebra je osnova za upitne jezike koje koriste ljudi • Svaki od algebarskih izraza je jedan upit ili pretraživanje • Upitni jezik – jezik kojim korisnici zahtevaju informacije iz BP Relaciona algebra

  3. Relaciona algebra- operacije - • Čini je skup od 8 operacija koje se nazivaju osnovnim (5 elementarnih i 3 izvedene) • Elementarne: restrikcija (selekcija), projekcija, unija, razlika, Dekartov proizvod • Izvedene: presek, spajanje, deljenje • Klasifikacija prema broju operanada: • Unarne (1 operand) • Binarne (2 operanda) • E.F.Codd podela: • Tradicionalne (pogodne za ažuriranje) • Posebne (pogodne za izveštavanje) Relaciona algebra

  4. Relaciona algebra- operacije - Relaciona algebra

  5. Restrikcija ()(selekcija, ograničenje) • Definicija: iz polazne relacije po zadatom kriterijumu izdvaja podskup n-torki • Izbor n-torki koje zadovoljavuju određeni uslov • Kriterijum je neki logički izraz koji je izračunljiv nad svakom n-torkom • Dobijena relacija ima istu strukturu kao i polazna Relaciona algebra

  6. Restrikcija ()(selekcija, ograničenje) • Notacija - P(r) • P – uslov za selekciju • P se sastoji iz članova koji su povezani sa: (and),  (or),  (not) • Svaki član je u sledećoj formi: <atribut>op <atribut> ili <konstanta> gde jeopjedan od: =, , >, , <,  • Primer selekcije:BrInd=‘125/2004’(student) Relaciona algebra

  7. Restrikcija ()(selekcija, ograničenje) • Relacijar A B C D         1 5 12 23 7 7 3 10 • A=B ^ D > 5(r) A B C D     1 23 7 10 Relaciona algebra

  8. Restrikcija ()(selekcija, ograničenje) • Primer: Iz relacije naslov izdvojiti samo one naslove čija je šifra oblasti (SIFO) jednaka PJ • SIFO=‘PJ’(naslov)  t(SIFN,NAZIV,SIFO) • Dobija se relacija t:t (SIFN NAZIV SIFO) PP00 PASCAL programiranje PJ PJC0 Programski jezik C PJ Relaciona algebra

  9. Restrikcija ()(selekcija, ograničenje) • Primer: Posmatra se relacija je_autor. Da bi dobili podatke za naslove koji imaju više od jednog autora primeniti:KOJI>1(je_autor)  t(SIFA,SIFN,KOJI)t (SIFA SIFN KOJI) JN0 RBP0 2 DM0 PP00 2 IT0 PP00 3 ZP0 PJC0 2 Relaciona algebra

  10. Restrikcija ()(selekcija, ograničenje) • Operacija restrikcije kao rezultat može da da prazan skup  n-torki. • Primer: Izdvojiti sve autore koji imaju više od tri naslovaKOJI3(je_autor)  t(SIFA,SIFN,KOJI)=  • Zaključakza restrikciju: • Struktura relacije se ne menja, šema rezultata odgovara šemi operanda (polazne relacije) • Za broj n-torki u relaciji važi:N(t)  N(r) • Restrikcija, selekcija  selekcija n-torki Relaciona algebra

  11. Restrikcija ()(selekcija, ograničenje) • Primer: Nad relacijom student(BrInd#,Ime,Adresa,Telefon,,...) • Napraviti restrikciju po atributu Adresa • Izdvojiti samo one studente koji su iz Subotice • ADRESA=‘Subotica’(student) • Prethodnom restrikcijom nastaje iz relacije student nova relacija, sa novim imenom • Upiti kojima se vrši selekcija moraju uvek biti logični i izvodljivi Relaciona algebra

  12. Restrikcija ()(selekcija, ograničenje) • Nad relacijom kredit(BR_KRED#, IME_EXP, IME_KL, IZNOS) • Želimo da vidimo sve transakcije kredita u ekspozituri IEX • IME_EXP=IEX(kredit)  kredit_IEX(...) • Dozvoljeno je koristiti sledeće operatore:=, ≠, <, >, ≤, ≥, ,  npr: (IME_EXP=IEX)  (IZNOS>1000)(kredit) • Kao kriterijum se može uvesti i poređenje između dva atributa Relaciona algebra

  13. restrikcija: y>2 restrikcija: y>2 and X<>'C' Relaciona algebra

  14. Projekcija () • Definicija: iz polazne relacije po zadatom skupu atributa formira se nova relacija kao skup n-torki nad tim atributima • Zadati skup atributa mora biti podskup skupa atributa polazne relacije • Vrednosti atributa u n-torkama nastale relacije odgovaraju onima u polaznoj relaciji Relaciona algebra

  15. Projekcija () • Primenom operacije projekcije moguće je da više n-torki polazne relacije daje iste vrednosti • Pošto rezultat operacije mora biti relacija, uzima se samo jedna rezultantna relacija • Primer: Iz relacije naslov želimo da dobijemo pregled svih naziva i šifara oblasti: NAZIV,SIFO(naslov)  t(NAZIV,SIFO) • Kao rezultat dobija se relacijat ( NAZIV SIFO) Relacione baze podataka BP Računarske komunikacije RM PASCAL programiranje PJ Programski jezik C PJ Relaciona algebra

  16. Projekcija () A B C • Relacijar:     10 20 30 40 1 1 1 2 • A,C (r) A C A C     1 1 1 2    1 1 2 = Relaciona algebra

  17. Projekcija () • Ilustracija slučaja kada više n-torki polazne relacije daje jednu n-torku u novoj:SIFO(naslov)  t(SIFO) • Kao rezultat dobija se relacijat ( SIFO) BP RM PJ • Vrednost PJ se pojavljuje jednom dok je u polaznoj relaciji naslov ta vrednost prisutna dva puta Relaciona algebra

  18. Projekcija () • Jedna od namena operacije projekcije je promena redosleda atributa:NAZIV,SIFN,SIFO(naslov)t(NAZIV,SIFN,SIFO) • Kao rezultat dobija se relacijat ( NAZIV SIFN SIFO) Relacione baze podataka RBP0 BP Računarske komunikacije RK00 RM PASCAL programiranje PP00 PJ Programski jezik C PJC0 PJ Relaciona algebra

  19. Projekcija () • Operacije relacione algebre se mogu kombinovati • Primer: Složena operacijaNAZIV(SIFO=‘PJ’(naslov))pj_naslov(NAZIV) • Kao rezultat dobijaju se nazivi svih naslova za koje je šifra oblasti jednaka ‘PJ’:pj_naslov ( NAZIV) PASCAL programiranje Programski jezik C • Zaključakzа projekciju: • Šema relacije se menja i određuje je zadati skup atributa • Za broj n-torki u relaciji važi: N(t)  N(r) • Projekcija  selekcija po atributima Relaciona algebra

  20. Projekcija () • Primer: Nad relacijom roba(SIFRA#,NAZIV,PROIZVOĐAČ,DATUM,ADRESA,...) • Projekcija relacije roba po atributima: SIFRA#, NAZIV i ADRESA dobili bi novu relaciju:roba1(SIFRA#,NAZIV,ADRESA)koja ima isti broj n-torki kao i polazna • Primer:student(BROJIND#,IME,PREZIME,IMEOCA,DATROD,…) • Projekcija po BROJIND#, zadržava se broj n-torki • Projekcija po IME, smanjuje se broj n-torki (moguće su greške, jer se brišu svi ostali studenti) Relaciona algebra

  21. Projekcija () • Primer: Nad relacijom kredit(BR_KRED#, IME_EXP, IME_KL, IZNOS) • Želimo da vidimo klijente i ekspoziture iz kojih su klijenti uzeli kredit • Ne interesuje nas iznos kredita niti broj kredita •  IME_EXP, IME_KL(kredit)  kredit_lista(IME_EXP, IME_KL) Relaciona algebra

  22. Projekcija () • Rezultat primene je podskup kolona relacije, uz uklanjanje duplikata projekcija na kolone x i y Relaciona algebra

  23. Unija () • Definicija: iz dve polazne relacije formira novu koja sadrži sve n-torke iz obe relacije • Ova operacija nije moguća između bilo koje dve relacije, tj. mora biti zadovoljeno: • Šeme relacija moraju imati isti broj atributa • Atributi šema relacija redom odgovaraju po značenju i tipu (ne mora po nazivu) • Navedeni uslovi se nazivaju:unijska kompatibilnost Relaciona algebra

  24. Unija () • Svaka n-torka koja je prisutna u obe relacije pojavljuje se samo jednom u rezultantnoj • Primer: Posmatraju se relacije clan i autor. Ako želimo podatke o svim osobama u evidenciji, to se postiže primenom operacije unije:clan  autor  osoba(SIFx,IME) Relaciona algebra

  25. Unija () • Relacije r, s: A B A B    1 2 1   2 3 s r A B r  s:     1 2 1 3 Relaciona algebra

  26. Unija () • Primer: Posmatraju se relacije drzi i pozajmica. Želimo da utvrdimo koje knjige su trenutno ili su nekada bile kod članova. • Pre operacije unije prvo se moraju uskladiti šeme relacija:SIFK(drzi)  t1(SIFK) SIFK(pozajmica)  t2(SIFK) • Zatim se primeni operacija unije:t1  t2  knjiga_u_prometu(SIFK) • Zaključakzа uniju: • Šeme relacija se prethodno moraju uskladiti • max(N(r),N(s))  N(t)  N(r)+N(s) Relaciona algebra

  27. Unija () A B AB Relaciona algebra

  28. Unija () • Primer: Nad relacijama kredit(BR_KRED#, IME_EXP, IME_KL, IZNOS)racun(IME_EXP, BR_RAC#, IME_KL#, STANJE)Naći sve klijente koji u ekspozituri IEX imaju ili račun ili kredit • Naći sve klijente koji imaju kredit u IEX IME_KL(IME_EXP=IEX(kredit))  t1 • Naći sve klijente koji imaju racun u IEX  IME_KL(IME_EXP=IEX(racun))  t2 • Rezultat je: t1  t2 Relaciona algebra

  29. Unija () Relaciona algebra

  30. Razlika (-) • Definicija: iz dve polazne relacije formira novu koja sadrži sve n-torke prve relacije koje se ne nalaze u drugoj • Ova operacija je moguća samo između unijski kompatibilnih relacija. Relaciona algebra

  31. Razlika (-) • Primer: Posmatraju se relacije drzi i pozajmica. Želimo da utvrdimo koji članovi čitaju koje knjige prvi put. • Pre operacije razlika prvo se moraju uskladiti šeme relacija:SIFC,SIFK(drzi)  t1(SIFC,SIFK) SIFC,SIFK(pozajmica)  t2(SIFC,SIFK) • Zatim se primeni operacija razlike:t1 - t2  cita_1(SIFC,SIFK) Relaciona algebra

  32. t1 ( SIFC SIFK ) JJ0 001 PP0 002 JJ0 004 Razlika (-) t2 ( SIFC SIFK ) JJ0004 PP0 007 JJ1 005 JJ0 008 PP0 002 JJ1 009 t1-t2 = cita_1 ( SIFC SIFK ) JJ0001 Relaciona algebra

  33. Razlika (-) • Primer: Ako želimo uvid u šifre članova koji trenutno ne drže ni jednu knjigu kod sebe, mora se izvršiti sledeća sekvenca operacija: SIFC(clan)  t1(SIFC)SIFC(drzi)  t2(SIFC)t1 - t2  ne_drzi(SIFC) • Zaključakzaoperaciju razlika: • Šeme relacija se prethodno moraju uskladiti • Broj n-torki u rezultatu 0  N(t)  N(r) Relaciona algebra

  34. Razlika (-) t1 ( SIFC ) JJ0 JJ1 PP0 MM0 t2 ( SIFC ) JJ0 PP0 JJ0 t1-t2 = ne_drzi ( SIFK ) JJ1 MM0 Relaciona algebra

  35. Razlika (-) A B A-B B-A Relaciona algebra

  36. Razlika (-) • Primer: Nad relacijama kredit(BR_KRED#, IME_EXP, IME_KL, IZNOS)racun(IME_EXP, BR_RAC#, IME_KL#, STANJE)Naći sve klijente koji u ekspozituri IEX imaju račun ali još uvek nemaju kredit • Naći sve klijente koji imaju racun u IEX  IME_KL(IME_EXP=IEX(racun))  t1 • Naći sve klijente koji imaju kredit u IEX IME_KL(IME_EXP=IEX(kredit))  t2 • Rezultat je: t1 - t2 Relaciona algebra

  37. Razlika (-) Relaciona algebra

  38. Presek () • Definicija: iz dve polazne relacije formira novu koja sadrži sve n-torke prve relacije koje se nalaze u drugoj relaciji • Ova operacija je moguća samo između unijski kompatibilnih relacija. • Presek je izvedena operacija, može se izvesti iz: rs = r – (r-s) Relaciona algebra

  39. Presek () • Primer: Posmatraju se relacije drzi i pozajmica. Želimo da odredimo koji članovi ponovo čitaju koju knjigu. • Pre operacije presek prvo se moraju uskladiti šeme relacija:SIFC,SIFK(drzi)  t1(SIFC,SIFK) SIFC,SIFK(pozajmica)  t2(SIFC,SIFK) • Zatim se primeni operacija preseka:t1  t2  cita_opet(SIFC,SIFK) • Zaključak за operaciju presek: • Šeme relacija se prethodno moraju uskladiti • Broj n-torki u rezultatu 0  N(t)  min(N(r),N(s) Relaciona algebra

  40. t1 ( SIFC SIFK ) JJ0 001 PP0 002 JJ0 004 t2 ( SIFC SIFK ) JJ0004 PP0 007 JJ1 005 JJ0 008 PP0 002 JJ1 009 t1  t2 = cita_opet ( SIFC SIFK ) PP0002 JJ0 004 Relaciona algebra

  41. Presek () A B AB Relaciona algebra

  42. Presek () • Primer: Nad relacijama kredit(BR_KRED#, IME_EXP, IME_KL, IZNOS)racun(IME_EXP, BR_RAC#, IME_KL#, STANJE)Naći sve klijente koji u ekspozituri IEX imaju i račun i kredit • Naći sve klijente koji imaju racun u IEX  IME_KL(IME_EXP=IEX(racun))  t1 • Naći sve klijente koji imaju kredit u IEX IME_KL(IME_EXP=IEX(kredit))  t2 • Rezultat je: t1  t2 Relaciona algebra

  43. Presek () Relaciona algebra

  44. Dekartov proizvod () • Definicija: iz dve polazne relacije formira se nova sa n-torkama dobijenim tako što se svaka n-torka prve relacije spaja sa svakom iz druge • Šema nastale relacije sadrži sve atribute polaznih relacija • Označavanje: za puni naziv atributa se može koristiti relacija.atribut Relaciona algebra

  45. Dekartov proizvod () A B C D E Relacijer, s:   1 2     10 10 20 10 a a b b r s A B C D E r x s:         1 1 1 1 2 2 2 2         10 10 20 10 10 10 20 10 a a b b a a b b Relaciona algebra

  46. Dekartov proizvod • Primer: Posmatraju se relacije naslov i oblast. Ako izvršimo operaciju Dekartovog proizvoda: • naslov  oblast  t(SIFN,N.NAZIV,N.SIFO,O.SIFO,O.NAZIV) • Dobijena relacija kao celina nema smisla, međutim pojedine n-torka imaju jasno značenje • Zaključakzа operaciju Dekartov proizvod: • Šema rezultantne relacije sadrži sve atribute polaznih relacija • Broj n-torki u rezultatu: N(t) = N(r)N(s) Relaciona algebra

  47. Dekartov proizvod t (SIFN, NAZIVN.SIFO O.SIFO O.NAZIV ) RBP0 Relacione baze podataka BP BP Baze podataka RBP0 Relacione baze podataka BP RM Računarske mreže RBP0 Relacione baze podataka BP PJ Programski jezici RK00 Računarske komunikacuje RK BP Baze podataka RK00 Računarske komunikacuje RK RM Računarske mreže RK00 Računarske komunikacuje RK PJ Programski jezici PP00 PASCAL Programiranje PJ BP Baze podataka PP00 PASCAL Programiranje PJ RM Računarske mreže PP00 PASCAL Programiranje PJ PJ Programski jezici PJC0 Programski jezik C PJ BP Baze podataka PJC0 Programski jezik C PJ RM Računarske mreže PJC0 Programski jezik C PJ PJ Programski jezici U označenim n-torkama, uz svaki deo iz relacije naslov nalazi se odgovarajući deo iz relacije oblast Relaciona algebra

  48. Dekartov proizvod • Primer: Nad relacijama klijent(IME_KL, UL_BR, GRAD),licni_bankar(IME_KL, IME_SL)Naći sve klijente sa ličnim bankarom IS1 i gradove u kojima klijenti žive • licni_bankar klijent  t(LB.IME_KL, LB.IME_SL, K.IME_KL, K.UL_BR, K.GRAD) • Broj n-torki • u klijent je N1, u licni_bankar je N2 • u t je N1N2 • Neke od n-torki u t su ne važeće Relaciona algebra

  49. Klijent Lični_bankar Klijent  Lični_bankar Relaciona algebra

  50. Spajanje (><) • Definicija: iz dve polazne relacije formira se nova sa n-torkama dobijenim u dva koraka: • Svaka n-torka iz prve relacije redom se spaja sa svim n-torkama iz druge relacije • Iz tako dobijenih n-torki izdvajaju se one koje zadovoljavaju zadati uslov P Relaciona algebra

More Related