35
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 - e-student.fpz.hre-student.fpz.hr/Predmeti/B/Baze_podataka/Materijali/Predavanje_3.pdf · Baze podataka:: Predavanje 03 © 2012 arić, untić Sadržaj današnjeg predavanja

  • 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)

Baze podataka:: Predavanje 03 © 2012 Carić, Buntić