You are on page 1of 108

Baze podataka

Baze podataka
Prof. dr. sc. Damir Medak
Geodetski fakultet Sveuilita u Zagrebu c s

Zagreb, listopad 2008.

Baze podataka Uvodno predavanje Sadraj i cilj kolegija z

Sadraj kolegija z

Cilj uvodnog predavanja: kratak pregled sadraja kolegija z Baze podataka Sadraji svih kolegija na Geodetskom fakultetu dostupni su na z internetu: http://www.geof.hr/

Baze podataka Uvodno predavanje Sadraj i cilj kolegija z

Cilj kolegija

ovladati temeljima suvremenih baza podataka s posebnim naglaskom na prostorne (geo-) podatke usvojiti osnove samostalnog rukovanja komercijalnim i slobodnim programskim paketima za baze podataka (relacijski model, ER-model) stei osnovna znanja o konceptima baza podataka koje e c c postati industrijski standard u vrijeme poetka profesionalne c karijere (objektno-relacijske baze podataka)

Baze podataka Uvodno predavanje Temeljni pojmovi i denicije

Temeljni pojmovi i denicije

Pojam baze podataka, informacijskog sustava, informacije, podatka, modela podataka Dizajn baza podataka:
konceptualni implementacijski ziki dizajn c

Fizika organizacija podataka c

Baze podataka Uvodno predavanje Modeli baza podataka

Relacijske baze podataka

Osnovni elementi: tablice i relacije, atributi i kljuevi c Osnove relacijske algebre: selekcija, projekcija, produkt, povezivanje (join), razlika, unija, presjek Upitni jezici (SQL) ER-dijagram Normalne forme relacijskih baza podataka Primjene u geodeziji i geoinformatici

Baze podataka Uvodno predavanje Modeli baza podataka

Sustav za upravljanje bazom podataka (DBMS)

eng. DataBase Management System Integritet podataka Transakcije ACID uvjeti:


atominost (eng. atomicity) c konzistentnost (eng. consistency) izolacija (eng. isolation) trajnost (eng. durability)

Viekorisnike baze podataka s c

Baze podataka Uvodno predavanje Modeli baza podataka

Uvod u objektno-orijentirani dizajn

Osnove OO programskih jezika i baza podataka:


nasljedivanje (eng. inheritance) vieoblinost (eng. polymorphysm) s c prikrivanje unutarnjeg ustroja (eng. encapsulation)

Primjene u geodeziji i geoinformatici (kompleksnost prostornih podataka i procesa) Uvod u UML (Unied Modeling Language): dijagram geometrijski klasa, nasljedivanje

Baze podataka Uvodno predavanje Modeli baza podataka

Budunost baza podataka c

Objektno-relacijski model Objektno-orijentirane baze podataka Deduktivne baze podataka (Prolog)

Baze podataka Uvodno predavanje Program vjebi z

Program vjebi z

Raunalne vjebe (podjela u 8 grupa) c z Relacijske baze podataka, SQL (PostgreSQL, MySQL, MSSQL) Fakultativno: Deduktivne baze podataka, predikatna logika (Prolog) Pohadanje vjebi obavezno! z Asistenti: Ivan Medved, Almin Dapo, Mario Miler i Branko Kordi c Suradnici: Draen Odobai i Vedran Tatarevi z sc c

Baze podataka Uvodno predavanje Ispit

Obaveze, ispit, ocjena

Vjebe obavezne: est zadataka i jedan projekt uvjet za potpis z s Meduispit (30 bodova): 10 pitanja, 3 boda za toan, -1 za c netoan odgovor, 0 za neodgovoreno) c Pismeni ispit (30 bodova): 10 pitanja, 3 boda za toan, -1 za c netoan odgovor, 0 za neodgovoreno) c Dva meduispita: vie od 40 bodova - ocjena vrlo dobar ili s odlian c

Baze podataka Baze podataka - motivacija i denicija

Kad ne bi bilo baza podataka...

Redundancija i inkonzistentnost Ograniena mogunost pristupa podacima c c Problemi pri viekorisnikoj upotrebi podataka s c Gubitak podataka Povreda integriteta podataka Sigurnosni problemi Visoki trokovi razvoja aplikacija s

Baze podataka Baze podataka - motivacija i denicija

Baza podataka i informacijski sustav

Baza podataka je centralno mjesto informacijskog sustava. Pohranjeni podaci u bazi podataka opisuju trenutano stanje c dijela realnog svijeta za koji je i razvijen informacijski sustav, naravno na nain pogodan za raunalnu obradu. c c Informacijski sustav je uvijek podsustav nekog organizacijskog sustava, a svrha mu je prikupljanje, obrada, pohranjivanje i distribucija informacija, koje su potrebne za praenje rada i upravljanje tim organizacijskim sustavom ili c nekim njegovim podsustavom.

Baze podataka Baze podataka - motivacija i denicija

Informacija i podatak

Informacija je znanje koje primatelju opisuje nove injenice. c To znanje se materijalizira u obliku podataka, simbola koji slue za prikaz informacija u svrhu spremanja, prijenosa i z obrade. Informacija je i obradeni podatak koji za primatelja ima karakter novosti, otklanja neizvjesnost i slui kao podloga za z odluivanje. c Podatak je skup znakova u memoriji koji prikazuje jedan ili vie elemenata informacije. s

Baze podataka Baze podataka - motivacija i denicija

Baza podataka - denicija

Baza podataka je skup medusobno povezanih podataka pohranjenih bez nepotrebne zalihosti s ciljem da na optimalni nain poslue u raznim primjenama. Podaci se spremaju c z neovisno o programima koji ih koriste, zajednikim pristupom c dodaju se novi podaci te mijenjaju i premjetaju postojei. s c Podaci se pohranjuju u bazu podataka na jedan organizirani nain koristei odgovarajui model podataka. c c c

Baze podataka Model podataka

Model podataka - denicija

Model podataka je formalni sustav koji mora imati barem sljedee tri komponente: c
1 2

Skup objekata koji su osnovni elementi baze podataka; Skup operacija koje moemo izvoditi nad objektima z deniranim pod 1) i kojima se mogu pretraivati, dobivati i z modicirati podaci o tim objektima; Skup opih pravila integriteta podataka koja implicitno ili c eksplicitno deniraju skup konzistentnih stanja podataka ili promjena stanja, ili oboje i koja su openita u smislu da su c primjenjiva na bilo koju bazu podataka koja koristi taj model.

Baze podataka Model podataka

Model podataka se koristi za:

razvijanje sustava za upravljanje bazom podataka, razvijanje programskih jezika za rad s podacima u bazi podataka, razvijanje opcih teorija oblikovanja baza podataka, istraivanje svojstava podataka, odnosno svojstava baza z podataka.

Baze podataka Sustav za upravljanje bazom podataka

Sustav za upravljanje bazom podataka


DBMS - Database Management System SUBP je programski sustav koji osigurava osnovne funkcije odabranog modela podataka u postupku kreiranja i koritenja baze s podataka. SUBP se sastoji od integrirane kolekcije programske podrke koja s omoguava: c opis i manipulaciju podacima pomou posebnog jezika ili c posebnih jezika visoki nivo suelja prema podacima neovisan o strukturi c podataka u raunalu c ekasno koritenje i razumijevanje informacija pohranjenih u s bazi podataka, zahvaljujui skupu programskih alata c (pomagala).

Baze podataka Modeliranje podataka

Razine apstrakcije

Pogled 1

Pogled 2

Pogled 3

Logiki model

zika neovisnost c podataka logika neovisnost c podataka

Fiziki model

Baze podataka Modeliranje podataka

Modeliranje podataka

Isjeak stvarnosti manualno/intelektualno modeliranje konceptualni model (ER-shema) poluautomatska transformacija relacijski model mreni model objektni model

Baze podataka Modeliranje podataka

ER-shema: Model entiteta i veza


Entiteti, veze i atributi ine ER ili ERA c model. Simboli u ER-dijagramima su: entitet (eng. entity): pravokutnik atribut (eng. attribute): oval (elipsa) veza (eng. relationship): romb

Studenti Ime sluaju

Baze podataka Modeliranje podataka

Model entiteta i veza

Isjeak stvarnosti: SVEUILITE (studenti, profesori, predavanja, ...) konceptualno modeliranje BrojInd Ime Studenti sluaju Predavanja Profesori dre ifraPred Naziv BrRadKnj Ime

Baze podataka Modeliranje podataka

Logiki modeli podataka c

mreni model z hijerarhijski model relacijski model objektni model objektno-relacijski model deduktivni model

Baze podataka Modeliranje podataka

Logika organizacija podataka c

Zapis (record): niz podataka povezan s jednim entitetom (npr. podaci o jednom studentu) Polje (eld): mjesto rezervirano za jedan element zapisa (npr. mjesto za prezime studenta)
polje varijabilne duljine (npr. komentar, popis ocjena) polje ksne duljine (npr. godina upisa na studij) klju jednoznano denira zapis (npr. broj indeksa, JMBG) c c

Datoteka (le): niz zapisa obino istog tipa (npr. popis c studenata Geodetskog fakulteta)

Baze podataka Modeliranje podataka

Fizika organizacija podataka c


Datoteke su ziki spremljene na disk tako da blokovi na disku c uvaju zapise. c Ako je kapacitet bloka manji od veliine zapisa, zapis e c c zauzeti dva ili vie blokova. s Ako je kapacitet bloka vei od veliine zapisa, blok e c c c sadravati vie zapisa (najei sluaj). z s c sc c

Baze podataka Modeliranje podataka

Metode pristupa podacima


Otvaranje (open): priprema datoteku za pristup Traenje (nd): lociranje bloka na disku koji sadri zapis koji z z zadovoljava postavljeni uvjet Citanje (read): kopira zapis u radnu memoriju Brisanje (delete): brie zapis i sprema rezultat na disk s Izmjena (modify): mijenja polje u zapisu i sprema rezultat na disk Dodavanje (insert): ita blok u radnu memoriju, dodaje novi c zapis i sprema rezultat na disk Zatvaranje (close): prekida pristup datoteci

Baze podataka Pretraivanje podataka z

Pretraivanje podataka z
jednostavno i brzo pretraivanje (pronalaenje) - jedna od z z temeljnih funkcija baze podataka

Baze podataka Pretraivanje podataka z

Linearno pretraivanje z

neuredene datoteke jednostavno dodavanje novih podataka sloen direktni pristup (npr. nai ocjene studenta prema z c imenu: potrebno pretraivanje svih zapisa dok se ne pronade z upravo onaj zapis u kojem se polje slae s uvjetom), z za n podataka prosjecno je potrebno ucitati n/2 zapisa linearno pretraivanje se jo naziva brute-force (sirova snaga) z s

Baze podataka Pretraivanje podataka z

Binarno pretraivanje z

uredene datoteke broj zapisa se u svakom koraku prepolovi za n podataka potrebno je maksimalno log2 n koraka, npr. za 1000 studenata poredanih po prezimenu dovoljno je 10 pristupa.

Baze podataka Pretraivanje podataka z Indeksiranje podataka

Indeksiranje podataka

Dobra strana: ubrzava pristup zapisima Loa strana: potreban dodatan prostor za spremanje indeksa s Usporedba: knjigu bez indeksa pojmova bi trebalo svaki put pretraiti od prve do zadnje stranice z Indeks je uredena datoteka ciji zapisi sadre dva polja: z
polje indeksa (sadri sortirane vrijednosti indeksnog polja) z polje pokazivaa (sadri adrese blokova na disku koje imaju c z vrijednost indeksa)

Pretraivanje indeksne datoteke je binarno. z

Baze podataka Pretraivanje podataka z Indeksiranje podataka

Indeksiranje podataka
Pronalazak traenog indeksa vodi nas do zapisa koji sadri z z pokaziva na zapis s ostalim poljima o traenom entitetu. c z

DATOTEKA INDEKS
Indeksno Pokazivako polje polje Adi Babi Bevanda
... * * *

BrojInd Prezime 5756 5876 ... 5881 5887 5907 5910 ... 5959 5972

Ime

Vjebe + + + + + + + +

Bogner Hrvoje Gojmerac Darija Adi ustovi Gradier Babi anak Bevanda Ivana Aida Lovro Luka Luka Slavica

Baze podataka Entiteti i atributi

Entiteti i atributi
Entitet Entitet je individualni primjer elementa stvarnog svijeta ili njegova isjeka. Entitet je bilo to o emu elimo prikupljati i spremati c s c z informacije. Tip entiteta je skup entiteta s istim svojstvima. Atribut Atribut je svojstvo koje posjeduje neki entitet. Primjer Najjednostavniji geometrijski element je toka opisana s barem c dvije (nerazdvojne) koordinate (y i x).

Baze podataka Entiteti i atributi

Odnos izmedu entiteta

ovisan o odabranom modelu podataka odnos moe biti i entitet! z binarni odnosi: 1:1, 1:m, m:n Drava z Drava z Drava z 1 1 m 1 m n Glavni grad Zupanija Jezik

Baze podataka Kljuevi c Primarni klju c

Primarni klju c
Primarni klju je minimalni skup atributa potreban za c jednoznano odredivanje zapisa (npr. JMBG). c Primarni klju kojeg ine dva ili vie atributa zovemo c c s kompozitni klju (npr. Fakultet i BrojIndeksa jednoznano c c odreduju studenta na Sveuilitu). c s Sekundarni klju je bilo koji atribut koji nije kandidat za c primarni klju. c Primarni klju je s entitetom kojeg opisuje uvijek povezan c asocijacijom 1:1 ili m:1. Primjer Ime drave moe biti napisano na vie razliitih jezika (Germany, z z s c Deutschland, Njemaka), a ipak se odnosi na jedan te isti zapis u c bazi podataka.

Baze podataka Kljuevi c Strani klju c

Strani klju c
Strani klju (foreign key) je atribut koji slui kao primarni c z klju drugog entiteta (npr. kratica drave kao atribut grada). c z Strani klju vaan je kod povezivanja tablica: ako zapis u c z vezanoj tablici ne sadri na mjestu primarnog kljua vrijednost z c koja se eli unijeti kao strani klju, unos nije mogu. z c c Primjer Ako u tablici Student postoji uvjet da je potanski broj strani klju s c (Student.Grad), koji je ujedno primarni klju u tablici Grad c (Grad.GradID). U polje Student.Grad ne moemo unijeti vrijednost z 20000, ako vrijednost 2000 nije prethodno unesena u polje Grad.GradID.

Baze podataka Kljuevi c Strani klju c

Interna navigacija baza podataka

Iako je sustav za upravljanje bazom podataka (DBMS) obino c vrlo napredan program, za pojedine namjene obino se rade c posebna, dodatna programska rjeenja (aplikacije). s manje pojedina aplikacija zna o internoj navigaciji baze Sto - to bolje! Openito, aplikacije bi se trebale baviti pitanjem: c STO je potrebno? dok DBMS (SUBP) odgovara na pitanje: KAKO realizirati zahtjev?

Baze podataka Kljuevi c Strani klju c

Geometrijski primjer: karta M s dva poligona A i B

M
3 b 2 c A a 1 4 d

5 e B g f

Baze podataka Modeli podataka Hijerarhijski model

Hijerarhijski model podataka


vlasnici i lanovi: jedan lan moe c c z imati samo jednog vlasnika putovi pretraivanja su ksni z
M
3 b 2 c A a 1 4 d B g 5 e f

M
A a b c d d e B f
5 6

g
6 1

1 2 2 3 3 4 4 1

1 4 4 5

Baze podataka Modeli podataka Mreni model z

Mreni model podataka z


opi sluaj hijerarhijskog modela c c odnosi denirani eksplicitno aplikacija mora poznavati interni model baze podataka

M
A a b
1

B c
2 3

d
4

e
5

f
6

Baze podataka Relacijski model

Relacijski model podataka


M 3 b 2
Karta M

5 e c A a 1 4 d B g 6 f

Poligoni A a B d

b e

c f

d g

Linije a b c d e f g

1 2 3 4 4 5 6

2 3 4 1 5 6 1

Toke 1 2 3 4 5 6

x1 x2 x3 x4 x5 x6

y1 y2 y3 y4 y5 y6

Baze podataka Relacijski model

Relacijske baze podataka


Svi su podaci spremljeni u tablinom obliku. c Svakom tipu podataka odgovara jedna tablica. Zapisima odgovaraju reci u tablici. Poljima odgovaraju stupci u tablici.
Grad_ID ZAG MUC W IE GRZ BER ... Ime Zagreb Mnchen Be Graz Berlin ... Geometrija (y1,x1),... (ym,xm),... (yn,xn),... (yo,xo),... (yp,xp),... ... Drava_ID Ime GER AUT CRO SUI SLO ... Njemaka Austrija Hrvatska vicarska Slovenija ... Geometrija (yr,xr),... ... ... ... ... ...

Baze podataka Relacijski model

Relacije
Temelj relacijskih baza podataka: povezivanje entiteta razliitog tipa. c Odnos grada i drave mogue je i implicitno denirati: z c gradovi kao toke, drave kao poligoni, provjeriti da li je toka c z c u poligonu.
Grad_ID Drava_ID ZAG CRO GER AUT AUT GER ... MUC W IE GRZ BER ...

Druga mogunost je denicija c predmetnog odnosa (relacije) uz pomo nove tablice. c

Baze podataka Relacijski model

Posebnosti relacijskih baza podataka

Niti redoslijed zapisa niti redoslijed polja u tablici nije vaan. z Poloaj (redoslijed) identinih vrijednosti nije vaan. z c z Relacija se uspostavlja preko primarnih kljueva entitetnih c tablica. Ako je primarni klju atribut druge tablice, onda je to strani c klju. c

Baze podataka Relacijski model

Posljedice (1)

Interna organizacija neke tablice potpuno je neovisna od drugih tablica (npr. sortiranje). Korisnikov upit se bavi samo pitanjem STO?, dok sustav za upravljanje relacijskim bazama podataka (RDBMS) rjeava s problem KAKO?. primjena je neovisna o unaprijed zadanim putevima pristupa podacima (hijerarhijski i mreni model). z tablice su bliske strukturama koje susreemo u svakodnevnom c ivotu (rauni, kalendar, ...) z c

Baze podataka Relacijski model

Posljedice (2)

Tablice je mogue jednostavno kombinirati, mijenjati i c pretraivati: relacijska algebra je matematiki precizno z c denirana. Upitni jezik sadri malen broj elemenata i lagano ga je z nauiti (SQL). c Tablice se lako proiruju novim podacima. s Tablice dozvoljavaju prikaze specine za pojedinog c korisnika (eksterni model). Postoje jednostavna pravila za spremanje podataka bez redundancije (normalne forme).

Baze podataka Relacijski model Normalne forme

Normalne forme

Realizacija relacijskih baza podataka ostavlja veliki prostor za izbor entiteta, atributa i relacija. Ciljevi: to jednostavnije odravanje, konzistentnost, stabilna s z struktura podataka. Nepotrebno spremljeni podaci - nestabilna struktura anomalije baza podataka. Opasnost: pri izmjeni podataka dolazi do neeljenih sporednih z efekata. Relacijski model: jednostavna provjera pridravanja normalnih z formi.

Baze podataka Relacijski model Normalne forme

1. normalna forma
Uvjeti 1. normalne forme:
1

veza izmedu podataka na logikoj, a ne na zikoj razini c c (adrese na disku), za svaki tip entiteta postoji jedan primarni klju, c svako polje unutar jednog entiteta ima jednoznano ime c koje se ne ponavlja.

2 3

Prva dva uvjeta su za relacijske baze neminovna, dok trei uvjet ne c zadovoljava sljedei primjer (jer se polje upanija ponavlja): c z entitet: Drava z DravaID, Naziv, GlavniGrad, Zupanija1, Zupanija2, ... z

Baze podataka Relacijski model Normalne forme

2. normalna forma
Uvjeti 2. normalne forme:
1 2

moraju biti ispunjeni uvjeti 1. normalne forme, svako polje unutar jednog entiteta koje nije dio primarnog kljua funkcionalno potpuno ovisi o cijelom (kompozitnom) c kljuu. c

Druga normalna forma dolazi do izraaja kod primarnih kljueva z c sastavljenih od dva ili vie polja (kompozitni primarni klju). s c entitet: Student SifraFakulteta, BrInd, Ime, Prezime, AdresaFakulteta Polje AdresaFakulteta ovisi o dijelu kompozitnog primarnog kljua c kojeg ine polja SifraFakulteta i BrInd. c

Baze podataka Relacijski model Normalne forme

3. normalna forma
Uvjeti 3. normalne forme:
1 2

moraju biti ispunjeni uvjeti 2. normalne forme, ne postoji tranzitivna ovisnost nijednog polja o nijednom kljuu. c

Tranzitivnost: ako a R b i b R c, slijedi a R c. entitet: Zupanija Zupanija, Drava, GlavniGradDrave z z Polje GlavniGradDrave ovisi o polju Drava, a polje Drava o z z z polju Zupanija. Relacija nije u 3. normalnoj formi pa ju treba rastaviti na dvije relacije: Zupanija, Drava, odnosno Drava, z z GlavniGradDrave. z

Baze podataka Relacijski model Normalne forme

Normalne forme - posljedice

Postoje i vii stupnjevi normalnih formi. s Normalne forme su skup pravila korisnih za modeliranje opih c sluajeva baza podataka. c Kod kompleksnih tipova podataka ponekad su neophodni kompromisi: odstupanje od idealnog rjeenja. s Takvi kompleksni tipovi podataka posebno se esto javljaju u c geoinformatici. Rezultat: objektno-relacijske baze podataka.

Baze podataka Relacijska algebra

Relacijska algebra

Relacije opisuju i podatke i njihove odnose. Rezultat operacije nad relacijama je ponovo relacija (slino c kao i kod brojeva: rezultat zbrajanja u skupu prirodnih brojeva je uvijek prirodan broj. Da li je isto s oduzimanjem?). Relacijska algebra je zatvoreni i konzistentni skup pravila koja su primjenjiva na relacije.

Baze podataka Relacijska algebra

Elementarne operacije relacijske algebre

unija relacija razlika relacija presjek relacija projekcija selekcija Kartezijev produkt pridruivanje ili join z

Baze podataka Relacijska algebra

Unija relacija: C = A B

koncept sukladan uniji skupova rezultirajua relacija sadri sve zapise iz obje tablice pri emu c z c se zapisi koji se ponavljaju spremaju samo jedanput UVJET: ulazne relacije (tablice) moraju biti kompatibilne, tj. moraju imati identina polja c Primjer: pri udruivanju geodetskih toaka koordinate istih z c toaka u razliitim tablicama mogu biti razliite c c c

Baze podataka Relacijska algebra

Razlika relacija: C = A B

rezultat ove operacije su svi zapisi sadrani u relaciji A, a koji z nisu u relaciji B UVJET: kompatibilnost relacija Primjer: baza geodetskih toaka, tablica A sadri sve toke, a c z c tablica B samo izjednaene tocke; razlikom A-B dobijemo c toke koje tek treba izjednaiti c c operacija u standardnom programskom jeziku vrlo sloena, u z RDBMS vrlo jednostavna

Baze podataka Relacijska algebra

Presjek relacija: C = A B

rezultat ove operacije sadri samo zapise koji postoje i u z relaciji A i u relaciji B. Primjer:
A: tablica zemalja u kojima se govori engleski jezik B: tablica europskih zemalja C = A B : tablica europskih zemalja u kojima se govori engleski jezik

Baze podataka Relacijska algebra

Projekcija: B = A

unarna operacija (samo jedan argument) izbor polja neke relacije (izbor stupaca neke tablice) Primjer: tablica s podacima o geodetskim tokama (n, y, x, c H, naziv, tip toke, ...), a elimo samo broj toke i koordinate c z c (n, y, x) (n,y ,x) Tocke izbor podataka za eksterni model gdje isti podaci ne moraju ili ne smiju biti vidljivi svim korisnicima baze podataka

Baze podataka Relacijska algebra

Selekcija: B = A

izbor zapisa koji zadovoljavaju postavljene uvjete Primjer: relacija Student ima polja: BrInd, Ime, Prezime, ProsjekOcjena Selekcijom se mogu izabrati samo oni studenti koji imaju prosjek ocjena vei od 3,5: c (ProsjekOcjena>3,5) Student ponekad nas zanimaju samo pojedini stupci iz zapisa koji zadovoljavaju uvjete pa se izraz selekcija primjenjuje i za kombinaciju selekcije i projekcije

Baze podataka Relacijska algebra

Kartezijev produkt: C = A B

Rezultat je tablica u kojoj je svaki zapis iz prve tablice kombiniran sa svakim zapisom iz druge tablice. Primjer: Student Predmet Student (BrInd,Ime,Prezime,Slusa) Predmet (Sifra,Naziv,Satnica) StudentPredmet (BrInd,Ime,Prezime,Slusa,Sifra,Naziv,Satnica) pri emu je broj zapisa u rezultatu jednak umnoku broja zapisa u c s tablici Student s brojem zapisa u tablici Predmet.

Baze podataka Relacijska algebra

Pridruivanje: C = A z

poseban oblik Kartezijevog produkta razlikujemo unutarnji, vanjski (lijevi i desni) join u svakoj se tablici (relaciji) bira stupac (polje) preko ijih se c vrijednosti uspostavlja veza Primjer: Student Predmet

Student (BrInd, Ime, Prezime, Slusa) Predmet (Sifra, Naziv, Satnica) Student Predmet (BrInd, Ime, Prezime, Slusa, Sifra, Naziv, Satnica) on (Slusa = Sifra) U rezultatu e biti samo kombinacije zapisa iz tablica Student i c Predmet u kojima polje Slusa ima jednaku vrijednost polju Sifra.

Baze podataka Relacijska algebra

Relacijska algebra - zakljuak c


Opisane operacije relacijske algebre primjenjuju se uvijek u kombinaciji:
1 2 3

iz vie tablica selektiramo samo one zapise koji udovoljavaju s uvjetima napravimo pridruivanje (join) z projekcijom odaberemo eljena polja z

Na taj se nain iz vrlo malog broja osnovnih operacija c relacijske algebre moe izvesti veliki broj kombinacija za z obradu i analizu podataka. Prijevod operacija relacijske algebre u jezik za deniciju i manipulaciju podacima koji danas predstavlja osnovni standard za relacijske baze podataka: SQL.

Baze podataka Strukturirani upitni jezik: SQL Povijest

Povijest relacijskih upitnih jezika

1970-ih: IBM DBMS System upitni jezik SEQUEL (Structured English Query Language) 1980-ih: SEQUEL preimenovan u SQL (Structured Query Language), komercijalni sustav SQL/DS, pojava novih relacijskih DBMS-a (Oracle, Informix), potreba za standardizacijom upitnog jezika 1986: prvi SQL-standard ANSI-komisije 1989: prva revizija standarda 1992: proirenje na SQL-92 (SQL 2) s 2003: objavljena prva verzija SQL 3 standarda

Baze podataka Strukturirani upitni jezik: SQL Povijest

SQL-92
upitni jezik zasnovan na relacijskoj algebri teorijske postavke pojednostavljene zbog jednostavnije uporabe i vee brzine c deklarativni jezik (to? a ne kako?) s jezik nije samo upitni, nego slui i za deniciju i z manipulaciju podacima: DDL (Data Denition Language) i DML (Data Manipulation Language) SQL ne obraduje relacije u matematikom smislu, nego tablice c zapis i polje postaju redak i stupac osim manipulacije tablicama, SQL omoguuje deniciju c integriteta podataka, prava pristupa i kontrolu transakcija

Baze podataka Strukturirani upitni jezik: SQL Osnovni tipovi podataka u SQL-u

Osnovni tipovi podataka u SQL-92


Tri temeljna tipa podataka:
brojevi (numeric) znakovni nizovi (character) datum/vrijeme (date, time)

Brojevi mogu biti cjelobrojni (integer) i decimalni (oat). Znakovni nizovi mogu biti ksne duljine (character) ili varijabilne duljine (varchar). Datum i vrijeme mogu biti denirani pojedinano ili kao c intervali. Osim navedenih, postoji i BLOB (Binary Large OBject) odnosno RAW za binarne tipove podataka (npr. u CAD-primjenama).

Baze podataka Strukturirani upitni jezik: SQL DDL

Deniranje sheme baze podataka: CREATE TABLE

CREATE TABLE Nastavnik (BrRadKnj INTEGER NOT NULL, Ime VARCHAR(10) NOT NULL, Titula CHARACTER(4)); popis atributa i tipa podatka za svaki atribut NOT NULL: primjer denicije uvjeta integriteta podataka (nije moguce zadati nastavnika bez imena)

Baze podataka Strukturirani upitni jezik: SQL DDL

Izmjena sheme baze podataka: ALTER TABLE


- Ako bismo htjeli dodati broj sobe za svakog nastavnika: ALTER TABLE Nastavnik ADD COLUMN Soba INTEGER; - Ako je 10 znakova bila pogrena procjena za duljinu imena s nastavnika: ALTER TABLE Nastavnik MODIFY COLUMN Ime VARCHAR(30); - Prethodna naredba ne iskljuuje ranije zadani uvjet integriteta c (not null).

Baze podataka Strukturirani upitni jezik: SQL DML

Manipulacija podacima
- dodavanje redaka (punjenje podacima): INSERT INTO Nastavnik VALUES (21366, Medak, prof, 75) - izbor podataka na temelju kriterija (selekcija): SELECT BrRadKnj, Ime FROM Nastavnik WHERE Titula = prof; select odreduje atribute koji e se pojaviti u rezultatu c from odreduje iz koje se relacije trae podaci z where odreduje uvjet kojeg reci u rezultatu moraju zadovoljiti

Baze podataka Strukturirani upitni jezik: SQL DML

Manipulacija podacima: sortiranje


snaga SQL-a je u bliskosti naredbi s razgovornim jezikom: najee je dovoljan prijevod naredbe s engleskog (izaberi c sc broj i ime nastavnika ija je titula prof) c rezultat prethodnog upita bila je lista bez utvrdenog redoslijeda SQL omoguuje sortiranje prema bilo kojem atributu: c SELECT BrRadKnj, Ime, Titula FROM Nastavnik ORDER BY Titula DESC, Name ASC; pri emu je ascending uzlazno sortiranje (a-z, 1-9), a descending c silazno sortiranje (z-a, 9-1).

Baze podataka Strukturirani upitni jezik: SQL DML

Vietablini upiti s c
Povezivanje tablica: Tko predaje Baze podataka? SELECT Ime, Titula FROM Nastavnik, Predmet WHERE BrRadKnj=Drzi and Naziv="Baze podataka"; prijevod: Izaberi ime i titulu iz kombinacije nastavnika i predavanja pri emu je vrijednost stupca Dri u tablici c z Predmet jedanaka vrijednosti stupca BrRadKnj u tablici Nastavnik, a naziv predmeta je Baze podataka Obrada upita se odvija u tri faze:
1 2 3

Kartezijev produkt tablica Nastavnik i Predavanje za svaki redak produkta se ispituje uvjet postavljen pod WHERE projekcijom se biraju pod SELECT zadani stupci (atributi)

Baze podataka Strukturirani upitni jezik: SQL DML

Vietablini upiti - pridruivanje (join) s c z


Povezivanje tablica: Koji studenti sluaju koje predmete? s SELECT Ime, Naziv FROM Student, Slusa, Predmet WHERE Student.BrInd=Slusa.BrInd AND Slusa.Sifra=Predmet.Sifra; - Elegantniji zapis uz pomo varijabli (aliasa): c SELECT s.Ime, p.Naziv FROM Student as s, Slusa as h, Predmet as p WHERE s.BrInd=h.BrInd AND h.Sifra=p.Sifra;

Baze podataka Strukturirani upitni jezik: SQL DML

Vietablini upiti - eksplicitni join s c


Povezivanje tablica: Koji studenti dolaze iz kojeg grada? STUDENT: BrInd Ime ----- ----4350 Ivana 4230 Marko 5140 Ana 4760 Mijo 5145 Pero GRAD: GradID -----10000 20000 10410 21000 44330 34000

Prezime ------Ivic Maric Anic Mijic Peric

Grad ----10000 20000 21000 21000

Naziv ------------Zagreb Dubrovnik Velika Gorica Split Novska Pozega

SELECT Ime, Prezime, Naziv FROM Student JOIN Grad on (Grad=GradID);

Baze podataka Strukturirani upitni jezik: SQL DML

Vietablini upiti - eksplicitni join s c


Rezultat: samo oni zapisi za koje postoje identine vrijednosti za c strani klju Grad u tablici Student i primarni klju GradID u tablici c c Grad. STUDENT JOIN GRAD: Ime Prezime Naziv ----- ------- ----------Ivana Ivic Zagreb Marko Maric Dubrovnik Ana Anic Split Mijo Mijic Split

Baze podataka Strukturirani upitni jezik: SQL DML

Vietablini upiti - left join s c


Povezivanje tablica: Svi studenti, pa i oni koji nisu iz grada? SELECT Ime, Prezime, Naziv FROM Student LEFT JOIN Grad on (Grad=GradID); - U rezultatu se pojavljuju svi zapisi iz tablice Student bez obzira postoji li odgovarajua vrijednost u tablici Grad. c STUDENT LEFT JOIN GRAD: Ime Prezime Naziv ----- ------- ----------Ivana Ivic Zagreb Marko Maric Dubrovnik Ana Anic Split Mijo Mijic Split Pero Peric

Baze podataka Strukturirani upitni jezik: SQL Agregiranje

Agregiranje u SQL-u

Agregativne funkcije u SQL-u izvode operaciju na skupu zapisa i svode skup vrijednosti na jednu vrijednost. Primjeri:
1 2 3 4

avg (prosjek skupa brojeva) max, min (najveci, odnosno najmanji element skupa) sum (zbroj svih vrijednosti) count (broj vrijednosti)

Srednji broj semestara svih studenata je tako: SELECT AVG(Semestar) FROM Student;

Baze podataka Strukturirani upitni jezik: SQL Agregiranje

Grupiranje u SQL-u...
Naredba group by odreduje podgrupe na koje e agregativne c funkcije biti primijenjene. Tako je npr. iz tablice Predmet (Sifra, Naziv, Satnica, Drzi) mogue izraunati satnicu pojedinih nastavnika: c c SELECT Drzi, SUM(Satnica) FROM Predmet GROUP BY Drzi; Objanjenje: u rezultatu su svi zapisi (predmeti) u tablici koje s imaju jednaku vrijednost za atribut Drzi grupirani u jedan, te je za svaki izraunat zbroj satnica. c

Baze podataka Strukturirani upitni jezik: SQL Agregiranje

... Grupiranje u SQL-u


Uz pomo naredbe having mogue je postaviti dodatan uvjet c c kojeg mora ispuniti grupa denirana s group by Primjer: grupirati predmete prema nastavnicima i za svaku grupu (svakog nastavnika) izraunati prosjek satnice, te uzeti c u obzir samo one nastavnike koji imaju vie od tri sata tjedno : s SELECT Drzi, SUM(Satnica) FROM Predmet GROUP BY Drzi HAVING AVG(Satnica)>3; having ima slino znaenje kao i where u uobiajenim c c c upitima: razlika je u tome to se having izvrava nakon s s grupiranja pa je u uvjetu mogue koristiti agregatne funkcije, c to kod where nije mogue. s c

Baze podataka Strukturirani upitni jezik: SQL Agregiranje

SQL - zakljune napomene c


SQL predstavlja standardizirani oblik komunikacije korisnika s relacijskim sustavom za upravljanje bazom podataka (RDBMS). Naredbe napisane u SQL-u su daleko monije od grakih c c korisnikih suelja za upisivanje upita prema primjeru (Query c c By Example). SQL-92 je podran od velike veine komercijalnih (Oracle, z c Informix, DB2) i slobodnih proizvoda (PostgreSQL) SQL 3 ce predstavljati bitno proirenje standarda novim s funkcijama koje proiruju relacijski model u smjeru s objektno-relacijskog modela.

Baze podataka Transakcije, konzistentnost i sigurnost

Transakcije

Transakcija Transakcija je skup operacija koji prevodi bazu podataka iz jednog konzistentnog stanja u drugo konzistentno stanje. Primjer: plaanje s jednog rauna ukljuuje barem dvije c c c operacije: umanji iznos na jednom raunu i uveaj iznos na c c drugom. Ako je prva operacija izvrena, a druga ne, novac bi s mogao nestati, ime bi bilo narueno konzistentno stanje. c s Sustav za upravljanje bazom podataka mora zadovoljiti etiri c tzv. ACID uvjeta da bi omoguio pravilan rad s transakcijama. c

Baze podataka Transakcije, konzistentnost i sigurnost

ACID uvjeti
atomicity atominost transakcije: transakciju nije mogue c c dijeliti na elementarnije transakcije. Ili su izvrene sve s operacije unutar transakcije ili nijedna. consistency konzistentnost: baza podataka mora uvijek zadrati z konzistentno stanje. isolation izolacija: dok transakcija nije izvrena, njezine s operacije ne utjeu na druge, istodobno izvravane c s transakcije. durability trajnost: nakon to je transakcija izvrena, promjene s s ostaju trajno pohranjene, ak i u sluaju pada c c sustava.

Baze podataka Transakcije, konzistentnost i sigurnost

Konzistentnost baza podataka


Za pojedine atribute u tablicama mogue je u SQL-u denirati c tono odredene uvjete (constraints) koje vrijednosti atributa c moraju zadovoljiti. Primjer prvi: NOT NULL onemoguuje prazno polje u zapisu. c Primjer drugi: CREATE TABLE Posao ( ... min_placa NUMERIC NOT NULL, max_placa NUMERIC NOT NULL, ... CHECK (min_placa < max_placa);

Baze podataka Transakcije, konzistentnost i sigurnost

Sigurnost baza podataka ...

Fizika sigurnost: vie kopija na razliitim mjestima (u c s c razliitim zgradama), naredba SHADOW kreira istovjetnu c kopiju Logika sigurnost: osigurati autorizirani pristup bazi podataka c (korisniko ime + lozinka) c U SQL-u mogue denirati autorizaciju pristupa svakog c korisnika za pravo izvodenja pretraivanja odabranih tablica: z GRANT SELECT ON Student TO medak;

Baze podataka Transakcije, konzistentnost i sigurnost

... Sigurnost baza podataka


Za naredbe koje mijenjaju vrijednosti u tablicama (INSERT, UPDATE, REFERENCE) mogue je izabrati pojedine stupce c za koje se dozvoljava pristup: GRANT UPDATE (Datum_ispita, Ocjena) ON Ispit TO medak; Sve je dozvole pristupa mogue povui naredbom REVOKE. c c Svrstavanje korisnika u grupe olakava administraciju baze s podataka jer svaki korisnik nasljeduje prava grupe kojoj pripada.

Baze podataka Objektne baze podataka

Objektne baze podataka


Relacijske baze podataka imaju dvije velike prednosti:
upitni jezik je standardiziran (SQL-92) relacijski model ima vrst teorijski temelj: relacijsku algebru c

Relacijski model posebno je pogodan za podatke koji se obino prikazuju tablicama (bankovni rauni, trgovina, c c raunovodstvo, ...). c Geometrijski podaci su kompleksniji, npr. tijela u 3D prostoru (vidi sliku na sljedeoj stranici): c
poliedar zatvaraju 4 ili vie ploha, s svaka ploha je omedena s 3 ili vie stranica, s svaka stranica ima tono jednu poetnu i jednu zavrnu toku, c c s c svaka toka ima tri koordinate. c

3D - ER i relacijski model
Poliedar
(4,*) zatvaraju (1,1)
Poliedar PolyID tetra01 kocka04 Masa Volumen Materijal 25,7 11,9 eljezo 45,9 15,3 Staklo

tetra01
p09

t23

p10
t14 t33

Ploha
(3,*) omeuju (2,2)

Ploha PlohaID p08 p09 ... Stranica StranicaID PlohaL s01 p09 s02 ... s78
Toka

PolyID tetra01 tetra01

Boja plava zelena

rafura ne ne

s01 p08
t13 s02

Stranica
(2,2) omeene (3,*)

PlohaD TokaPo TokaKraj p08 t13 t14 p10 ... p67 t13 ... t87 t33 ... t89

p08 ... p31

Toka
X Y Z

TockaID t13 t14 ...

X 0,00 3,00

Y 0,00 4,00

Z 0,00 0,00

Rotacija denirana izvan RDBMS-a

Aplikacija A
rotacija

Aplikacija B
rotacija

Poliedar

Ploha

Stranica

Toka

Relacijska baza podataka

Baze podataka Objektne baze podataka Nedostaci relacijskog modela

Nedostaci relacijskog modela


Segmentiranje: jedan objekt se obino segmentira na vie c s relacija, ijim se pridruivanjem (join) ponovno uspostavlja c z cjelina - kompleksna i dugotrajna operacija. Umjetni kljuevi: nuno uvodenje dodatnih atributa kao c z kljueva (xxxID) c Nemogue je denirati ponaanje (eng. behavior), npr. c s promjena mjerila, rotacija i translacija, volumen, masa nisu denirani u logikom modelu, nego ovise o konkretnoj c aplikaciji. Eksterno programersko suelje: nuno povezivanje relacijskog c z jezika (SQL) s nekim drugim programskim jezikom (C, Java), to vodi dupliciranju rjeenja istih operacija (npr. rotacija s s poliedra)

Rotacija denirana u OODBMS-u


Aplikacija A poliedar rotiraj (X, 10); Aplikacija B V := poliedar volumen;

premjesti rotiraj

promijeni mjerilo

Poliedar volumen
masa

Objektna baza podataka

Baze podataka Objektne baze podataka Nedostaci relacijskog modela

Prednosti objektno-orijentiranog modela

Prikrivanje informacija (encapsulation): pristup atributima iskljuivo preko operacija. c Ponovna upotrebljivost (reusability): denicije u natklasi vrijede za sve potklase. Operacije su realizirane direktno u jeziku objektnog modela. Nasljeivanje (inheritance) z Vieoblinost (polymorphism): operacija + zbraja i cijele i s c decimalne brojeve.

Baze podataka Objektne baze podataka Nedostaci relacijskog modela

Obiljeja objekata z
Relacijski model:
entiteti u obliku zapisa, zapisi se sastoje iz konanog broja polja, c vrijednosti u poljima su elementarne i nepromjenjive (npr. broj 2)

U objektnom modelu objekt ima tri dijela: Identitet: svaki objekt ima jedinistveni identikator, koji se za vrijeme ivotnog ciklusa objekta ne mijenja. z Tip (klasa): odreduje strukturu i ponaanje objekta. s Konkretni objekti nastaju kao instance tipa objekta. Vrijednost (stanje): u nekom trenutku ivotnog ciklusa objekt z ima odredeno stanje dato vrijednostima atributa i postojeih veza s drugim objektima. c

Baze podataka Objektne baze podataka Nedostaci relacijskog modela

Ukrali identitet 30.000 ljudi (VL, 27.11.2002.)

NEW YORK Dravno tuiteljstvo u New Yorku optuilo je juer z z z c trojicu ljudi za kradu identiteta oko 30 tisua osoba kojima je c nanesena teta od gotovo 3 milijuna dolara. Trojka je tijekom tri s godine krala podatke iz baza podataka kreditnog odjela tvrtke Ford, kreditne agencije Experian i jo nekih tvrtki. Podatke o s osobama preprodavali su za 60 dolara. Kupci novog identiteta mogli su, lano se predstavljajui, nesmetano traiti duplikate z c z kreditnih ili bankovnih kartica, podizati kredite. Dravni tuitelj na z z Manhattanu kae da su na takav nain pribavili oko 15 tisua z c c kreditnih kartica, te da je to najvea krada identiteta u povijesti c SAD-a.

Baze podataka Objektne baze podataka Nedostaci relacijskog modela

JMBG - to znai trinaesta znamenka? s c


Trinaesta znamenka je kontrola da li je prvih 12 ispravno upisano. Dobiva se raunskim putem - neka su znamenke c DDMMGGGRRBBBK date kao niz abcdefghijklm, tada je: m = 11 ((7 (a + g ) + 6 (b + h) + 5 (c + i) + 4 (d + j) + 3 (e + k) + 2 (f + l)) mod 11) Ako je m izmedu 1 i 9, onda je K = m. Ako je m = 10, K se ne moe izraunati, tj. neki od prvih 12 z c brojeva su pogreni. s Ako je m = 11, onda je K=0.

Nasljedivanje
Ime

Sveuilitarac

je

BrInd

Student

Radnik
je

BrRadKnj

Predmet

Asistent

Nastavnik

Titula Soba

Nasljedivanje atributa - ponovna upotrebljivost


BrRadKnj Ime DatRo Sta() Plaa() BrRadKnj Ime DatRo Sta() Plaa() Predmet je

Radnik

BrRadKnj Ime DatRo Sta() Plaa()

Asistent

Nastavnik

Titula Soba Ispituje Dri

Baze podataka Objektne baze podataka Nasljedivanje

Objektne baze podataka - zakljune napomene c


Objektna orijentacija obeavajua metodologija na polju c c programskih jezika i konceptualnog modeliranja (ljudi u svojoj okolini opaaju objekte, a ne tablice). z Trenutani nedostatak standardiziranog upitnog jezika glavna c prepreka nedovoljno brzom irenju objektne paradigme u svijet s kojim dominiraju relacijske baze podataka. Postoji veliki broj OODBMS-ova na tritu (ObjectStore, zs Poet, Versant, Illustra, ...). Velik potencijal upravo kod kompleksnih podataka i operacija kakve su uobiajene u geoinformatici. c Usvajanjem naprednih osobina objektno-orijentiranog modela, relacijske baze podataka postaju objektno-relacijske baze podataka.

Baze podataka Objektno-relacijske baze podataka

Funkcionalno proirenje relacijskog modela s

Skupovni atributi: dozvoljen atribut koji sadri vie z s istovrsnih podataka (ocjene studenta) Deniranje tipova podataka od strane korisnika Reference na pojedine zapise (umjesto stranih kljueva), c npr. reference za predavanja za svakog studenta Identitet objekata Nasljedivanje Operacije (u SQL se podacima ne mogu pridruiti operacije) z

Baze podataka Objektno-relacijske baze podataka Prostorni podaci

Proirenja za prostorne podatke s

Operacije nad prostornim podacima u SQL-92 vrlo sloene z (povrina poligona) s Tipovi prostornih podataka: problem standarda (Open Geodata Interoperability Specication) Operacije nad prostornim podacima: problem kompleksnosti (auriranje baze) i ekasnosti (brzina obrade upita) z Primjeri:
Oracle + Spatial (komercijalna baza podataka) PostgreSQL + PostGIS (slobodna baza podataka, open source)

Baze podataka Objektno-relacijske baze podataka Prostorni podaci

Standardi za prostorne podatke

OpenGIS: Open Geodata Interoperability Specication (Otvorena specikacija za interoperabilnost geopodataka) UML (Unied Modeling Language) JDBC (Java Database Connectivity) OGC: Open Geospatial Consortium ISO: Medunarodna organizacija za standardizaciju ISO/TC 211 Geographic information / Geomatics

UML-hijerarhija geometrijskih klasa (OGC)

Baze podataka Objektno-relacijske baze podataka Geometrijski tipovi podataka

PostgreSQL: geometrijski tipovi podataka

naziv (eng) line lseg box path open path polygon circle

oblik ((x1, y1), (x2, y2)) ((x1, y1), (x2, y2)) ((x1, y1), (x2, y2)) ((x1, y1), ...) [(x1, y1), ...] ((x1, y1), ...) < (x, y), r >

naziv (hr) pravac duina z pravokutnik zatvorena polilinija otvorena polilinija poligon krug

Baze podataka Objektno-relacijske baze podataka Operacije nad geometrijskim podacima

PostgreSQL: operacije nad geometrijskim podacima

simbol + # # && << >> << ?#

naziv translacija pravokutnika promjena mjerila presjek duina z broj vrhova poligona preklapanje poligona da li je s lijeve strane? da li je s desne strane? da li je ispod? presjek

specikacija box point box box integer box lseg lseg point polygon integer polygon polygon bool geom geom bool geom geom bool geom geom bool path geom bool

Baze podataka Objektno-relacijske baze podataka Operacije nad geometrijskim podacima

PostgreSQL - primjer geometrijskog upita

Nai ceste koje prolaze opinom X: c c SELECT FROM WHERE AND Cesta.naziv Opcine, Ceste Opcine.opcinaID = X Opcine.geometry ?# Ceste.geometry;

Baze podataka Objektno-relacijske baze podataka Operacije nad geometrijskim podacima

Objektno-relacijske baze podataka - zakljune napomene c

Objektno-relacijski koncepti prisutni kod veine najnovijih c verzija komercijalnih (Oracle 10g, Informix), i slobodnih baza podataka (Postgresql 8.0) Za geodetske i geoinformatike primjene standardizacija c prostornih podataka kljuni je preduvjet ekasne primjene c baza podataka u svakodnevnom radu. Napori ISO/TC211 i OGC-a vrijedni panje geodeta i z geoinformatiara i prije samog slubenog donoenja standarda. c z s

Baze podataka Deduktivne baze podataka

Baze znanja i logika

Znanje nije jednostavno denirati. Znanje predstavlja sljedeu kariku u nizu: c podaci informacije znanje Stara denicija: istinito vjerovanje koje je mogue c opravdati, tj. znanje je mogue potkrijepiti argumentom c (npr. Zagreb je glavni grad Republike Hrvatske.). Koncept vjerovanja problematian za raunala. c c Razvoj formalne logike omogucio raunalni pristup c problematici izvodenja zakljuaka iz poznatih injenica. c c

Baze podataka Deduktivne baze podataka

Cinjenice i pravila

Cinjenica (eng. fact) u formalnoj logici je atomarna izjava koja se ne moe dijeliti, tj. prikazati kao logika kombinacija z c jednostavnijih izjava. Cinjenice su specine, a ne openite: c c
Sokrat je smrtnik je injenica c Svi ljudi su smrtnici nije injenica c

Pravilo (eng. rule) je uvjetna izjava koja ukljuuje c kvanticiranje: za svaki, postoji Logiki simboli: implikacija, i, ili, negacija. c

Baze podataka Deduktivne baze podataka

Tradicionalni pristup

Cinjenice su tip znanja kojim se bave tradicionalne baze podataka (npr. relacija GLAVNIGRAD bi imala polja GRAD i DRZAVA) Tradicionalne baze podataka se bave jednostavnim injenicama, ali je vrlo teko denirati pravila tipa: Svi letovi c s za Dubrovnik idu preko Zagreba. Kod baza prostornih podataka, vanih za geodeziju i z geoinformatiku, velik broj informacija je implicitno pohranjen.

Baze podataka Deduktivne baze podataka

Deduktivne baze podataka

Dedukcija: izvodenje zakljuaka iz premisa u logikim c c sustavima. Primjer Svi ljudi su smrtni. Sokrat je ovjek. c Sokrat je smrtnik

Baze podataka Deduktivne baze podataka

Pravilo za presjedanje - zrani promet c


Neka je predikatom let zadan niz injenica koji povezuje c polazita i odredita u zranom prometu: let(ZG,FR), s s c let(ZG,ST), let(ZG,DU), let(ZG,PU). Ako elimo denirati predikat jednoPresjedanje, kojim z elimo provjeriti da li se iz polazita X moe stii u odredite z s z c s Y uz tono jedno presjedanje, logika denicija glasi: c c X Y (jednoPresjedanje) Z (let(X , Z ) let(Z , Y ))

Primjena pravila jednoPresjedanje jednoPresjedanje(ZG,ST) - No jednoPresjedanje(FR,ST) - Yes

Baze podataka Deduktivne baze podataka

Usporedba relacijskih i deduktivnih baza podataka


Relacijski model
SQL manipulira sloenom strukturom podataka, ijim z c pretraivanjem dobivamo odgovor, z jezik za manipulaciju je odvojen od podataka.

Deduktivni model
izraunava vrijednost logikih izraza (istina ili neistina) ili trai c c z vrijednosti za koje je logiki izraz istinit, c injenice i pravila su dio jezika, tj. nema razlike izmedu c podataka i jezika za njihovu manipulaciju.

Problemi deduktivnog modela


osiguravanje trajnosti zapisa u deduktivnoj bazi konstrukcija logikog jezika koji ce imati mogunosti prelaziti c c okvire radne memorije

Baze podataka Deduktivne baze podataka

PROLOG
PROgramming with LOGic, logiki sustav, odnedavno open c source iznimno popularan alat u akademskoj zajednici, primjenjiv za rjeenja brojnih logikih problema, pa i onih vezanih uz s c prostorne podatke. http://www.swi-prolog.org/ Primjer: obiteljsko stablo Cinjenice: zensko, musko, roditelj Pravila: majka, otac, kcer, sin, baka, djed, ... majka(X,Y):= zensko(X), roditelj(X,Y).

Baze podataka Deduktivne baze podataka

Deduktivne baze podataka - zakljune napomene c

Deduktivne baze podataka su obeavajua tehnologija za baze c c podataka utemeljene na znanju. Kompaktan format zapisa pravila koja zamjenjuju tisue c redaka. Jedinstvenost podataka i jezika za manipulaciju. Problemi s trajnou podataka. sc

You might also like