Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Baze podataka:: Predavanje 03 © 2012 Carić, Buntić
BAZE PODATAKA Predavanje 03
Prof. dr. sc. Tonči Carić
Mario Buntić, mag. ing. traff.
Juraj Fosin, mag. ing. traff.
Baze podataka:: Predavanje 03 © 2012 Carić, Buntić
Sadržaj današnjeg predavanja
• Relacijski model podataka – Coddova pravila
– Terminologija
– Domena atributa
• Osnove relacijske algebre – Teorija skupova
– Prirodne relacijske operacije
– Logičke operacije
Baze podataka:: Predavanje 03 © 2012 Carić, Buntić
Sadržaj današnjeg predavanja
• Relacijski model podataka – Coddova pravila
– Terminologija
– Domena atributa
• Osnove relacijske algebre – Teorija skupova
– Prirodne relacijske operacije
– Logičke operacije
Baze podataka:: Predavanje 03 © 2012 Carić, Buntić
Relacijski model Povijest
• Podlogu postavio Edgar Frank Codd 80-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
Baze podataka:: Predavanje 03 © 2012 Carić, Buntić
• 1970. E. F. Codd,
– A Relational Model of Data for Large Shared Data Banks,
– Communications of the ACM, Vol. 13, No. 6, lipanj 1970
Baze podataka:: Predavanje 03 © 2012 Carić, Buntić
• 1970. E. F. Codd,
– A Relational Model of Data for Large Shared Data Banks,
– Communications of the ACM, Vol. 13, No. 6, lipanj 1970
• 1985. objavio je 12 pravila
– kao skicu za procjenu proizvoda za koji se tvrdilo da je relacijski sistem za upravljanje bazama podataka
• Iako su ova pravila kasnije proširena
– ona i dalje služe kao osnova za definiciju
• relacijskog sustava za upravljanje bazama podataka.
Baze podataka:: Predavanje 03 © 2012 Carić, Buntić
Relacijski model Coddova pravila (1/3)
• Nulto pravilo – DBMS koji se smatra relacijskim mora upravljati bazom podataka
isključivo na relacijski način
1. Predstavljanje informacija – Sve informacije isključivo se predstavljene vrijednostima u tablici tj.
relacijama
2. Pravilo pristupa – Svakoj zapisanoj vrijednosti može se logički pristupiti preko imena ili
kombinacije imena tablica, primarnog ključa i atributa
3. Tretiranje NULL vrijednosti – NULL vrijednost može zamjeniti bilo koji tip vrijednosti i predstavlja
nepostojeću informaciju
4. 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
Baze podataka:: Predavanje 03 © 2012 Carić, Buntić
Relacijski model Coddova pravila (2/3)
5. 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 pogleda – Svi pogledi koji se po relacijskoj teoriji mogu ažurirati, moraju se moći
ažurirati i implementirati u model
7. 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. 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
Baze podataka:: Predavanje 03 © 2012 Carić, Buntić
Relacijski model Coddova pravila (3/3)
9. Nezavisnost logičkih podataka – Odnosi među tablicama se mogu mijenjati tako de sa ne utječe na
funkcije aplikacije koje se spajaju na te tablice
10. Nezavisnost integriteta podataka – Sam DBMS mora se brinuti o integritetu podataka, a ne aplikacije
izvana
11. Distribuirana nezavisnost – Aplikacija mora nastaviti operativno raditi kada se uvede distribuirana
verzija DBMS-a ili kada se distribuirana verzija centralizira.
12. Pravilo o nenarušavanju integriteta – integritet podataka ne smije biti narušen drugim putevima u bazu
podataka koja zaobilaze pravila integriteta i ograničenja
Baze podataka:: Predavanje 03 © 2012 Carić, Buntić
Matematički naziv RDBMS naziv
Relacija Tablica
N-torka ili Tuple Red ili redak
Atribut Stupac ili kolona
Vrijednost atributa Pojedinačni podatak ili ćelija
Odnos (između entiteta) Veza ili relacija (između entiteta)
Izvedeni račun Rezultat upita
Relacijski model Terminologija
• Matematičari imaju drugačije nazivlje za dijelove relacijskog modela od onog u praksi
Baze podataka:: Predavanje 03 © 2012 Carić, Buntić
Relacijski model Primjer terminologije
N-torka, tuple ili redak
Stupac ili atribut
Entitet, relacija ili tablica
Pojedinačni podataka, Ćelija ili vrijednost atributa
Baze podataka:: Predavanje 03 © 2012 Carić, Buntić
Relacijski model Primjer
• Relacijski model se sastoji od tablica i veza među njima
• Svaka tablica se sastoji od strukture i podataka
Struktura
Podaci
Baze podataka:: Predavanje 03 © 2012 Carić, Buntić
Relacijski model
• Postoje četiri osnovna svojstva relacijske sheme
– Tablica ne sadrži dva jednaka atributa
– Redosljed stupaca u tablici nije bitan
– Tablica ne sadržava dva jednaka redka
– Redosljed redaka u tablici nije bitan
• Primjer
– Redosljed dolazaka vlakova je zapisan u tablicu • Jedan dolazak jedan redak
• Kako da znamo koji vlak je prvi stigao?
– Ne smije se pouzdati u redosljed redaka već se mora dodati novi atribut npr. VrijemeDolaskaVlaka
Svojstva
Baze podataka:: Predavanje 03 © 2012 Carić, Buntić
Pojedinačni podatak
• Pojedinačni podataka (atomic data value) je najmanji element relacijskog modela
• U tablici je predstavaljen ćelijom
• Ne može se rastaviti na manje dijelove bez gubljenja semantičkih svojstava
– Primjer imena osobe ŽARKO – ima značenje
– Elementi imena Ž, A, R, K, O – gube značenje
• Naziva se i vrijednost atributa
Baze podataka:: Predavanje 03 © 2012 Carić, Buntić
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
Baze podataka:: Predavanje 03 © 2012 Carić, Buntić
Domena
• Karakteristike domene
– Može postojati više atributa sa istom domenom u jednoj 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
Baze podataka:: Predavanje 03 © 2012 Carić, Buntić
Sadržaj današnjeg predavanja
• Relacijski model podataka – Coddova pravila
– Terminologija
– Domena atributa
• Osnove relacijske algebre – Teorija skupova
– Prirodne relacijske operacije
– Logičke operacije
Baze podataka:: Predavanje 03 © 2012 Carić, Buntić
Osnove relacijske algebre Teorija skupova
• Teoriju skupova u baze podataka uveo je E.F. Codd
• Operacije teorije skupova (Set-theory operations) su:
– Unija (𝑻 ≔ 𝑹 𝑺)
– Presjek (𝑻 ≔ 𝑹 𝑺)
– Razlika (𝑻 ≔ 𝑹 − 𝑺)
– Produkt (𝑻 ≔ 𝑹 𝒙 𝑺)
• Relacijska algebra podrazumijeva definiranje operacija nad tablicama (entitetima)
• Provode se samo na kompatibilnim tablicama
– Sadrže atribute jednakog naziva i isti broj atributa
– Atributi istog naziva definirani su nad jednakim domenama
Baze podataka:: Predavanje 03 © 2012 Carić, Buntić
Teorija skupova Unija
• Unija skupova R i S je skup T koji je skup svih elemenata koji su članovi ili skupa A ili skupa B
𝑻 ≔ 𝑹 𝑺
Baze podataka:: Predavanje 03 © 2012 Carić, Buntić
Teorija skupova Presjek
• Presjek skupova R i S je skup T koji je skup svih elemenata koji su članovi i skupa A i skupa B
𝑻 ≔ 𝑹 𝑺
Baze podataka:: Predavanje 03 © 2012 Carić, Buntić
Teorija skupova Razlika
• Razlika skupova R i S je skup T koji se sastoji od svih elemenata koji pripadaju skupu R i ne pripadaju skupu S.
𝑻 ≔ 𝑹 − 𝑺
Baze podataka:: Predavanje 03 © 2012 Carić, Buntić
Teorija skupova Produkt
• Produkt skupova R i S je skup T koji se sastoji od svih kombinacija uređenih parova skupova R i S. (naziva se i Kartezijev produkt)
𝑻 ≔ 𝑹 𝒙 𝑺
Baze podataka:: Predavanje 03 © 2012 Carić, Buntić
Teorija skupova Pravila
• Za operacije unije, presjeka i produkta vrijede pravila asocijativnosti i komutativnosti
(𝐑 𝐒) 𝐓 = 𝐑 (𝐒 𝐓) = 𝐑 𝐒 𝐓
(𝐑 𝐒) 𝐓 = 𝐑 (𝐒 𝐓) = 𝐑 𝐒 𝐓
𝐑 𝐱 𝐒 𝐱 𝐓 = 𝐑 𝐱 𝐒 𝐱 𝐓 = 𝐑 𝐱 𝐒 𝐱 𝐓
• Međuovisnost operacija 𝐑 𝐒 = 𝐑 − 𝐑 − 𝐒 = 𝐒 − (𝐒 − 𝐑)
𝐑 − 𝐒 = 𝐑 − (𝐑 𝐒)
Baze podataka:: Predavanje 03 © 2012 Carić, Buntić
Osnove relacijske algebre Prirodne relacijske operacije
• U prirodne relacijske operacije (Native-relation operations) spadaju
– Projekcija (T:= R [a])
– Selekcija (T:=R where a=12)
– Dijeljenje (T:=R ÷ S)
– Spajanja
• Inner join (T:=R►◄S)
• Left outer join (T:=R►◄LOS)
• Right outer join (T:=R ►◄ROS)
• Outer join (T:=R ►◄OS)
Baze podataka:: Predavanje 03 © 2012 Carić, Buntić
Prirodne relacijske operacije
• Operacijom projekcije tablice nad atributima izdvajaju se atributi tablice na kojima se vrši projekcija.
T:= R [a]
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
Baze podataka:: Predavanje 03 © 2012 Carić, Buntić
Prirodne relacijske operacije
• Selekcija nad tablicom R izdvaja skup redova koji zadovoljavaju postavljeni uvjet
T:=R where a=12
Selekcija
• Tablica koja se dobije kao 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
Baze podataka:: Predavanje 03 © 2012 Carić, Buntić
Prirodne relacijske operacije
• Tablica T koja se dobije dijeljenjem R i S je najveća tablica za koju vrijedi da se svi redovi produkta T x S nalaze u tablici R
T:=R % S
Dijeljenje
Baze podataka:: Predavanje 03 © 2012 Carić, Buntić
Prirodne relacijske operacije
• Operacijom untrašnjeg spajanja (Inner join) 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:=R►◄S
Spajanje – unutrašnje
Baze podataka:: Predavanje 03 © 2012 Carić, Buntić
Prirodne relacijske operacije
• Operacijom lijevog vanjskog spajanja (left outer join) proširuje se unutarnje spajanje
• Na unutrašnje spajanje dodaju se oni elementi tablice s lijeve strane koji ne sudjeluju u vezi
T:=R►◄LOS
Spajanje – lijevo vanjsko
Baze podataka:: Predavanje 03 © 2012 Carić, Buntić
Prirodne relacijske operacije
• Operacijom desnog vanjskog spajanja (right outer join) proširuje se unutarnje spajanje
• Na unutrašnje spajanje dodaju se oni elementi tablice s desne strane koji ne sudjeluju u vezi
T:=R►◄ROS
Spajanje – desno vanjsko
Baze podataka:: Predavanje 03 © 2012 Carić, Buntić
Prirodne relacijske operacije
• Operacijom potpunog vanjskog spajanja (outer join) dobije se unija lijevog i desnog vanjkog spajanja relacija
• Vrijedi da je:
T:=R►◄OS = R►◄LOS R►◄ROS
Spajanje – potpuno vanjsko
Baze podataka:: Predavanje 03 © 2012 Carić, Buntić
Logičke operacije
• Logičke operacije č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
AND Rezultat
T T T
T F F
F T F
F F F
OR Rezultat
T T T
T F T
F T T
F F F
NOT Rezultat
T F
F T
Baze podataka:: Predavanje 03 © 2012 Carić, Buntić
Logičke operacije
• Unutrašnju vezu može se izraziti kombinacijom produkta, selekcije i projekcije ...
1. korak: Operacija Kartezijevog produkta C := R S
Unutarnja veza (1/2)
Baze podataka:: Predavanje 03 © 2012 Carić, Buntić
Logičke operacije
1. korak: izdvajanje redaka gdje atributi istog naziva u obje tablice imaju istu vrijednost
D := C where R.B=S.B =(RS) where R.B= S.B
– rezultantna tablica ima jedan atribut više u odnosu na rezultat
operacije unutrašnje veze
2. korak: projekcija: T:=D[A, R.B, C, D]
Unutarnja veza (2/2)