Professional Documents
Culture Documents
Baze 01 A
Baze 01 A
Baze podataka
Prof. dr. sc. Damir Medak
Geodetski fakultet Sveuilita u Zagrebu c s
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/
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)
Pojam baze podataka, informacijskog sustava, informacije, podatka, modela podataka Dizajn baza podataka:
konceptualni implementacijski ziki dizajn c
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
Primjene u geodeziji i geoinformatici (kompleksnost prostornih podataka i procesa) Uvod u UML (Unied Modeling Language): dijagram geometrijski klasa, nasljedivanje
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
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
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
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.
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
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
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.
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.
Razine apstrakcije
Pogled 1
Pogled 2
Pogled 3
Logiki model
Fiziki model
Modeliranje podataka
Isjeak stvarnosti manualno/intelektualno modeliranje konceptualni model (ER-shema) poluautomatska transformacija relacijski model mreni model objektni model
Isjeak stvarnosti: SVEUILITE (studenti, profesori, predavanja, ...) konceptualno modeliranje BrojInd Ime Studenti sluaju Predavanja Profesori dre ifraPred Naziv BrRadKnj Ime
mreni model z hijerarhijski model relacijski model objektni model objektno-relacijski model deduktivni model
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)
Pretraivanje podataka z
jednostavno i brzo pretraivanje (pronalaenje) - jedna od z z temeljnih funkcija baze podataka
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
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.
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)
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
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).
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
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.
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.
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?
M
3 b 2 c A a 1 4 d
5 e B g 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
M
A a b
1
B c
2 3
d
4
e
5
f
6
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
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 ...
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
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
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).
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.
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
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
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
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.
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.
unija relacija razlika relacija presjek relacija projekcija selekcija Kartezijev produkt pridruivanje ili join z
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
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
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
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
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
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.
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.
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.
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
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
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).
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)
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
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)
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;
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
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
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.
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;
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
rafura ne ne
s01 p08
t13 s02
Stranica
(2,2) omeene (3,*)
PlohaD TokaPo TokaKraj p08 t13 t14 p10 ... p67 t13 ... t87 t33 ... t89
Toka
X Y Z
X 0,00 3,00
Y 0,00 4,00
Z 0,00 0,00
Aplikacija A
rotacija
Aplikacija B
rotacija
Poliedar
Ploha
Stranica
Toka
premjesti rotiraj
promijeni mjerilo
Poliedar volumen
masa
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.
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
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.
Nasljedivanje
Ime
Sveuilitarac
je
BrInd
Student
Radnik
je
BrRadKnj
Predmet
Asistent
Nastavnik
Titula Soba
Radnik
Asistent
Nastavnik
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
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)
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
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
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
Nai ceste koje prolaze opinom X: c c SELECT FROM WHERE AND Cesta.naziv Opcine, Ceste Opcine.opcinaID = X Opcine.geometry ?# Ceste.geometry;
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
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
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
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.
Dedukcija: izvodenje zakljuaka iz premisa u logikim c c sustavima. Primjer Svi ljudi su smrtni. Sokrat je ovjek. c Sokrat je smrtnik
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.
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).
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