i osnove relacijske algebre 4. tjedan T. Carić, T. Erdelić Zavod za inteligentne transportne sustave Fakultet prometnih znanosti Sveučilište u Zagrebu Baze podataka T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)1/48
Pregled 1. poglavlja T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)2/48
Gdje smo sada? T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)3/48
Podlogu postavio Edgar Frank Codd 70-tih godina prošlog stoljeća Počiva na matematičkoj teoriji relacijske algebre i računa Početne implementacije su bile spore, ali su porastom računalne snage postale prevladavajući model U relacijskom modelu je brzina žrtvovana zbog fleksibilnosti T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)4/48
1970. E. F. Codd A Relational Model of Data for Large Shared Data Banks, Communications of the ACM, Vol. 13, No. 6, lipanj 1970 T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)5/48
Nulto pravilo DBMS koji se smatra relacijskim mora upravljati bazom podataka isključivo na relacijski način 1. pravilo - Predstavljanje informacija Sve informacije isključivo se predstavljene vrijednostima u tablici tj. relacijama 2. pravilo - Pravilo pristupa Svakoj zapisanoj vrijednosti može se logički pristupiti preko imena ili kombinacije imena tablica, primarnog ključa i atributa 3. pravilo - Tretiranje NULL vrijednosti NULL vrijednost može zamjeniti bilo koji tip vrijednosti i predstavlja nepostojeću informaciju T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)6/48
4. pravilo - Relacijski pristup online katalogu baze Na lokalnom nivo baza podataka opisana je na isti način kao i podaci, tako da se može koristiti isti relacijski jezik za pristup katalozima baze 5. pravilo - Pravilo sveobuhvatnog jezika Mora postojati jezik za komunikaciju sa bazom podataka koji podržava definiranje podataka i pogleda, manipulaciju podacima, administraciju, upravljanje transakcijama... 6. pravilo - Pravilo pogleda Svi pogledi koji se po relacijskoj teoriji mogu ažurirati, moraju se moći ažurirati i implementirati u model T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)7/48
7. pravilo - Visok nivo unosa, ažuriranja i brisanja Svojstva manipulacije podacima kod dohvaćanja moraju biti moguća i pri unosu, ažuriranju i brisanju podataka 8. pravilo - Nezavisnost fizičkih podataka Sve aktivnosti koje poduzimaju korisnici i aplikacije prema bazi podataka ne smiju biti ovisne o fizičkom načinu spremanja podataka 9. pravilo - Nezavisnost logičkih podataka Odnosi medu tablicama se mogu mijenjati tako de sa ne utječe na funkcije aplikacije koje se spajaju na te tablice T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)8/48
10. pravilo - Nezavisnost integriteta podataka Sam DBMS mora se brinuti o integritetu podataka, a ne aplikacije izvana 11. pravilo - Distribuirana nezavisnost Aplikacija mora nastaviti operativno raditi kada se uvede distribuirana verzija DBMS-a ili kada se distribuirana verzija centralizira 12. pravilo - Pravilo o nenarušavanju integriteta Integritet podataka ne smije biti narušen drugim putevima u bazu podataka koja zaobilaze pravila integriteta i ograničenja T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)9/48
- objekti Elementi skupa objekata u relacijskom modelu podataka su relacije (ili tablice) Svaka relacija sadrži listu atributa (ili stupaca) Svaki atribut ima svoju domenu (ili tip) Odreduje kojeg je podatkovnog tipa vrijednost atributa Koji raspon vrijednosti može poprimiti Svaka relacija sastoji se od skupa n-torka (ili redaka) Svaka n-torka ima vrijednosti svih atributa relacije N-torke sa istim vrijednostima nisu dopuštene T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)10/48
Primjer jedne relacije T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)11/48
Nazivi - formalni i neformalni Neformalni naziv Tablica Stupac Sve moguće vrijednosti stupca Redak Definicija tablice Popunjenost tablice Rezultat upita Formalni naziv Relacija Atribut Domena N-torka Relacijska shema Stanje relacije Izvedeni račun T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)12/48
Relacijska shema R(a 1, a 2,..., a n ) je relacijska shema relacije (tablice) R predstavlja naziv relacije a 1, a 2,..., a n predstavljaju atribute relacije Relacijska shema - specificira kako će podaci biti strukturirani logički (definicija tablice) Rijetko se mijenja Instanca sheme (podaci)- predstavlja stanje relacije (popunjenost tablice) Često se mijenja stanje relacije T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)13/48
Relacijska shema - primjer Što je na slici iznad relacijska shema, a što instanca sheme? T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)14/48
Relacijska shema - primjer Što je na slici iznad relacijska shema, a što instanca sheme? Relacijska shema obuhvaća naziv relacije (Student) i skup atributa (JMBAG, Ime, Prezime, DatumRodjenja) Instanca sheme je { <0135187314, Mario, Marić, 27.11.1990>, <0135188315, Jura, Jurić, 17.10.1991>,... } T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)14/48
Relacijska shema Postoje četiri osnovna svojstva relacijske sheme Tablica ne sadrži dva jednaka atributa Redosljed stupaca u tablici nije bitan Tablica ne sadržava dva potpuno jednaka redka Redosljed redaka u tablici nije bitan T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)15/48
Elementarni podatak Elementarni podatak (atomic data value) je najmanji element relacijskog modela U tablici je predstavaljen jednom ćelijom Ne može se rastaviti na manje dijelove bez gubljenja semantičkih svojstava Primjer naziva marke automobila MERCEDES ima značenje Elementi naziva marke automobila M,E,R,C,E,D,E,S gube značenje Elementarni podatak se naziva i vrijednost atributa T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)16/48
Domena Domena je skup svih vrijednosti koje atribut može poprimiti Svaki atribut ima samo jednu domenu Više atributa u istoj tablici može imati istu domenu Primjer atributa i domene Za atribut MjestoOdrzavanjaPredavanja domena je skup svih dvorana Za atribut BojaAutomobila domena je skup svih boja Za atribut Ocjena domena su cijeli brojevi od 1 do 5 T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)17/48
Domena Karakteristike domene Može postojati više atributa sa istom domenom u istoj tablici MjestoRodjenja i MjestoBoravka BojaKose, BojaAuta i BojaKuće Sadržaj domene se ne mijenja s vremenom Aktivna domena je podskup domene i sastoji se od svih vrijednosti atributa koje su trenutno zapisane u tablici Sadržaj aktivne domene se mijenja sa vremenom Ako imamo aute sa bojama crna, plava i žuta te tri boje su trenutno aktivna domena Ako nabavimo još jedan auto koji je zelene boje mijenja se aktivna domena tj. zelena postaje njen dio T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)18/48
NULL vrijednost Informacije koje nedostaju u relaciji iz bilo kojeg razloga prikazuju se kao poseban oblik podatka NULL vrijednost 3. Coddovo pravilo - tretiranje NULL vrijednosti NULL vrijednost može zamjeniti bilo koji tip vrijednosti i predstavlja nepostojeću informaciju Omogućuje baratanje s vrijednostima koje ne postoje upotrebom relacijske algebre Neovisna je o tipu podatka i različita je od svih ostalih vrijednosti T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)19/48
NULL vrijednost - primjer Sa NULL vrijednosti se prikazuju podaci koji nedostaju tj. nisu poznati u tome trenutku NULL vrijednost je različita od primjerice 0 - u brojčanim tipovima podataka - praznine u znakovnim tipovima T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)20/48
Primarni ključ Primarni ključ Primarni ključ je atribut ili skup atributa koji na jedinstven način identificira/ju svaku n-torku u relaciji (redak u tablici) 2. Coddovo pravilo - pravilo pristupa Svakoj zapisanoj vrijednosti može se logički pristupiti preko naziva ili kombinacije naziva relacija, primarnog ključa i atributa T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)21/48
Primarni ključ - osnovni uvjeti Primarni ključ mora zadovoljavati tri osnovna uvjeta 1. Jedinstvenost - u tablici ne mogu postojati dva retka s istom vrijednošću primarnog ključa 2. Minimalnost - ako je primarni ključ složen tj. sastoji se od više atributa, tada se niti jedna njegova komponenta ne može ukloniti, a da se ne naruši pravilo jedinstvenosti 3. Pravilo integriteta primarnog ključa Niti jedna komponenta primarnog ključa ne smije imati NULL vrijednost ( kardinalitet(1,1)) Pravilo integriteta posljedica je pravila minimalnosti - ako bi neki atribut koji je dio primarnog ključa mogao poprimiti NULL vrijednost to znači da se n-torke relacije mogu identificirati bez njega Iz toga proizlazi da takav atribut uopće ne treba biti dio primarnog ključa tj. narušilo bi se pravilo minimalnosti T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)22/48
Primarni ključ - primjer Uz pomoć prirodne relacijske operacije selekcije moguće je dohvatiti svaku pojedinu n-torku prema atributu JMBAG koji je primarni ključ relacije Student Primarni ključ se može sastojati od od više atributa T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)23/48
Strani ključ Strani ključ Strani ključ predstavlja primarni ključ jedne tablice, koji se kao veza prema svojoj originalnoj tablici javlja u drugoj tablici Veze izmedu tablica u relacijskom modelu se ostvaruju pomoću njega Veze se ostvaruju stvarnim zapisom i o njima se brine sam korisnik Strani ključ uvijek referencira neki primarni ključ T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)24/48
Strani ključ - primjer T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)25/48
Pregled 2. poglavlja T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)26/48
podrazumijeva definiranje operacija nad tablicama (relacijama) Na osnovu nje je nastao jezik za upite u relacijskim bazama podataka Karakteristika relacijske algebre je njezina proceduralnost - navodi se redoslijed operacija koje se provode nad relacijama T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)27/48
su Unija (T := R S) Presjek (T := R S) Razlika (T := R S) Kartezijev produkt (T := R x S) Projekcija (T := R[a]) Selekcija (T := R where a = x) Dijeljenje (T := R S) Spajanje Inner join (T := R S) Left outer join (T := R LO S) Right outer join (T := R RO S) Full outer join (T := R FO S) Preimenovanje (ρ) Agregacija i grupiranje T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)28/48
Unija Unija skupova R i S je skup T koji je skup svih elemenata koji su članovi ili skupa A ili skupa B T := R S T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)29/48
Presjek Presjek skupova R i S je skup T koji je skup svih elemenata koji su članovi i skupa A i skupa B T := R S T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)30/48
Razlika Razlika skupova R i S je skup T koji se sastoji od svih elemenata koji pripadaju skupu R a ne pripadaju skupu S T := R S T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)31/48
Produkt Produkt skupova R i S je skup T koji se sastoji od svih kombinacija uredenih parova skupova R i S Još se naziva i Kartezijev produkt T := R x S T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)32/48
Pravila Za operacije unije, presjeka i produkta vrijede pravila asocijativnosti i komutativnosti (R S) T = R (S T ) = R S T (R S) T = R (S T ) = R S T (R x S) x T = R x (S x T ) = R x S x T Meduovisnost operacija R S = R (R S) = S (S R) R S = R (R S) T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)33/48
Projekcija Operacijom projekcije (T := R[a]) tablice nad atributima izdvajaju se atributi tablice na kojima se vrši projekcija Projekcija tablice R nad atributima A jest tablica T sa zaglavljem head(t ) = {A} koja sadržava sve redove koji su sadržani u tablici R Kao rezultat operacije projekcije dobije se nova tablica koja predstavlja vertikalni podskup zadane tablice T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)34/48
Selekcija Selekcija (T := R where a = x) nad tablicom R izdvaja skup redova koji zadovoljavaju postavljeni uvjet Rezultat operacije selekcije sadrži sve atribute kao i izvorna tablica, ali samo one redove koji zadovoljavaju traženi uvjet Dobivena tablica predstavlja horizontalni podskup izvorne tablice T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)35/48
Dijeljenje Ako je R relacija stupnja n, a S relacija stupnja m i neka su svi atributi od S pojavljuju i u R Rezultat djeljenja (R S) je skup svih (n m)-torki < x > takvih da se n-torke < x, y > pojavljuje u R za sve m-torke < y > u S Sa x i y su označene grupe od jednog ili više vrijednosti atributa, dok stupanj relacije govori koliko pojedina relacija sadrži atributa T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)36/48
Unutrašnje spajanje Operacijom untrašnjeg spajanja (T := R S) povezuju se tablice na način da se spajaju redovi tablica po istim vrijednostima zajedničkog atributa Spajaju se redovi koji u stupcima istog naziva u obje tablice imaju istu vrijednost T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)37/48
Lijevo vanjsko spajanje Operacijom lijevog vanjskog spajanja (T := R LO S) proširuje se unutarnje spajanje Na unutrašnje spajanje dodaju se oni elementi tablice s lijeve strane koji ne sudjeluju u vezi T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)38/48
Desno vanjsko spajanje Operacijom desnog vanjskog spajanja (T := R RO S) proširuje se unutarnje spajanje Na unutrašnje spajanje dodaju se oni elementi tablice s desne strane koji ne sudjeluju u vezi T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)39/48
Potpuno vanjsko spajanje Operacijom potpunog vanjskog spajanja (T := R FO S) dobije se unija lijevog i desnog vanjkog spajanja relacija Vrijedi da je T := R FO S = R LO S R RO S T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)40/48
Preimenovanje Ako je zadana relacija R(A 1, A 2,..., A n ) moguće je Preimenovanje relacije: operacijom preimenoanja ρs (R) dobiva se relacija S koja ima jednaku relacijsku shemu i sadržaj kao i relacija R Preimenovanje relacije i atributa: operacijom preimenoanja ρ s(b1,b 2,...,B n)(r) dobiva se relacija S čija relacijska shema umjesto atributa (A 1, A 2,..., A n ) sadrži atribute (B 1, B 2,..., B n ), a sadržaj relacije S jednak je sadržaju relacije R T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)41/48
Prioriteti operatora Prioritet operatora je sljedeći 1. Projekcija 2. Selekcija 3. Spajanje, Djeljenje 4. Razlika 5. Unija, Presjek T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)42/48
često se primjenjuju u relacijskoj algebri kod operacije selekcije tj. kod postavljanja složenijih upita za izdvajanje redaka iz tablice Logički operatori su AND, OR i NOT Operatori AND i OR su binarni dok je operator NOT unaran T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)43/48
- unutrašnja veza (1/4) Unutrašnju vezu može se izraziti kombinacijom produkta, selekcije i projekcije... T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)44/48
- unutrašnja veza (2/4) 1. KORAK: Operacija Kartezijevog produkta C := R X S T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)45/48
- unutrašnja veza (3/4) 2. KORAK: Izdvajanje redaka gdje atributi istog naziva u obje tablice imaju istu vrijednost D := C where R.B = S.B D := (R X S) where R.B = S.B Rezultantna tablica ima jedan atribut više u odnosu na rezultat operacije unutrašnje veze T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)46/48
- unutrašnja veza (4/4) 3. KORAK: projekcija: T := D[A, R.B, C, D] T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)47/48
Pitanja T. Carić, T. Erdelić ITS::Baze podataka (4. tjedan)48/48