DIPLOMSKI RAD Katastar i Oracle 8i Spatial

51
SVEUČILIŠTE U ZAGREBU GEODETSKI FAKULTET UNIVERSITY OF ZAGREB FACULTY OF GEODESY Zavod za inženjersku geodeziju - Institute of Engineering Geodesy Kačićeva 26, HR-10000 Zagreb, CROATIA Tel.: (+385 1) 456 12 22; Fax.: (+385 1) 48 28 081; WEB: www.geof.hr DIPLOMSKI RAD Katastar i Oracle 8i Spatial Izradio: Zoran Janković 5205 Hrv. branitelja 62 Kutina Mentor: prof. dr. sc. Miodrag Roi ć Zagreb, studeni 2000.

Transcript of DIPLOMSKI RAD Katastar i Oracle 8i Spatial

Page 1: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

SVEUČILIŠTE U ZAGREBU GEODETSKI FAKULTET UNIVERSITY OF ZAGREB FACULTY OF GEODESY

Zavod za inženjersku geodeziju - Institute of Engineering Geodesy Kačićeva 26, HR-10000 Zagreb, CROATIA

Tel.: (+385 1) 456 12 22; Fax.: (+385 1) 48 28 081; WEB: www.geof.hr

DIPLOMSKI RAD

Katastar i Oracle 8i Spatial

Izradio: Zoran Janković

5205 Hrv. branitelja 62

Kutina

Mentor: prof. dr. sc. Miodrag Roić

Zagreb, studeni 2000.

Page 2: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

2

Zahvala:

Hvala svima koji su pomogli, na ovaj ili onaj način.

Page 3: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

3

Sažetak:

U ovom radu opisuje se Oracle Spatial modul Oracle8i Enterprise Edition, verzija 8.1.5 sustava za upravljanje bazom podataka (DBMS), odnosno mogućnost upotrebe ove tehnologije u katastru. Iznose se osnove potrebne za poznavanje ove baze podataka, kao i rečenog modula. Opisan je i praktični primjer stvaranja baze prostornih podataka. Tehnički dio katastarskog operata prebačen je iz CAD programa u SDO bazu podataka.

Abstract:

In this paper Oracle Spatial module of Oracle8i Enterprise edition, version 8.1.5 database management system (DBMS) is described. Usage of this technology in cadastrial purposes is also described. The basic facts about this DB are laid out, and the Spatial module is described. The practical example of creating the spatial database and transfering the technical part of the cadastrial operate from CAD application to SDO database is included.

Page 4: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

4

S A D R Ž A J

1. UVOD ...............................................................................................................................................5

2. POVIJEST ORACLE-A ...................................................................................................................6

3. DBMS – DATA BASE MANAGEMENT SYSTEM ........................................................................7

4. TIPOVI PODATAKA.....................................................................................................................10

5. OBJEKTNO – RELACIJSKI MODEL UPRAVLJANJA BAZOM PODATAKA.......................12

5.1. RELACIJSKI MODEL .......................................................................................................................13 5.2. OBJEKTNO – RELACIJSKI MODEL....................................................................................................13

5.2.1. Sheme i njihovi objekti ........................................................................................................15 5.2.2. Tablice................................................................................................................................15 5.2.3. Pogledi ...............................................................................................................................15 5.2.4. Materijalizirani pogledi ......................................................................................................16 5.2.5. Slijedovi..............................................................................................................................16 5.2.6. Sinonimi..............................................................................................................................17 5.2.7. Indeksi ................................................................................................................................17 5.2.8. Riječnik podataka (data dictionary).....................................................................................17 5.2.9. Prednosti objektno – relacijskog modela..............................................................................18 5.2.10. Nedostatci objektno relacijskog – modela ............................................................................18

6. ORACLE8i SPATIAL ....................................................................................................................19

6.1. UVOD U PROSTORNE PODATKE.......................................................................................................19 6.2. GEOMETRIJSKI TIPOVI U RELACIJSKIM I OBJEKTNO – RELACIJSKIM MODELIMA.................................20 6.3. MODEL PODATAKA .......................................................................................................................21

6.3.1. Elementi..............................................................................................................................21 6.3.2. Geometrijski oblici ..............................................................................................................22 6.3.3. Slojevi (Layers)...................................................................................................................22

6.4. MODEL UPITA (QUERY MODEL).....................................................................................................22 6.5. METODE INDEKSIRANJA ................................................................................................................24

6.5.1. Teselacija sloja tokom indeksiranja .....................................................................................25 6.5.2. Fiksno indeksiranje .............................................................................................................25 6.5.3. Hibridno indeksiranje .........................................................................................................28

6.6. PROSTORNE RELACIJE I FILTRIRANJE ..............................................................................................29

7. STVARANJE BAZE PROSTORNIH PODATAKA......................................................................32

7.1. STVARANJE NOVE BAZE PODATAKA ...............................................................................................33 7.2. UNOS PODATAKA..........................................................................................................................39 7.3. PRIKAZIVANJE (VIZUALIZACIJA) SPREMLJENIH PODATAKA..............................................................46

8. ZAKLJUČAK.................................................................................................................................49

LITERATURA ........................................................................................................................................50

ŽIVOTOPIS.............................................................................................................................................51

Page 5: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

5

1. Uvod

Osnovna misao vodilja prilikom odabira i izrade ovoga diplomskog rada bila je upoznavanje s novim tehnologijama, te njihovo “iskorištavanje”, odnosno primjena u katastru.

Budući se u geodeziji radi s prostornim podacima, vrlo je zanimljiva mogućnost stvaranja baze prostornih podataka. Ovakova baza sadržava sve podatke iz tehničkog, kao i iz knjižnog dijela katastarskog operata, te omogućava i na neki način, olakšava manipulaciju s tim podacima.

Opće je poznata i priznata činjenica da je na području baza podataka, naročito onima s prefiksom Enterprise, unatoč svim Microsoftovim naporima (SQL Server) još uvijek prvi upravo Oracle.

Oracle 8i Enterprise Edition, verzija 8.1.5, dolazi s ugrađenim (iako izbornim) Spatial modulom, dizajniranim za upravo, kao što mu ime kaže, pohranu prostornih podataka. Upravo sam zato u svom diplomskom radu prvo teoretski obradio osnove rečene baze podataka, a zatim i na praktičnom primjeru prikazao mogućnost prebacivanja podataka tehničkog dijela katastarskog operata u Oracle Spatial.

Moj diplomski rad ograničen je određenim softverskim (nedostatak novijeg GIS softvera) i hardverskim (relativno slabo računalo) uvjetima. No, cilj i nije bio izrada cjelokupnog Geoinformacijskog sustava (GIS), odnosno, točnije rečeno, Zemljišnog informacijskog sustava (ZIS), već samo prikaz temeljnog dijela ovakovog informacijskog sustava – baze prostornih podataka.

Naime, upravo je ovaj segment ZIS–a najznačajniji i najosjetljiviji. Ukoliko je ova baza općenito loše dizajnirana ili izvedena, te je pristup podacima spor, ili se podacima u najgorem slučaju ne može ni pristupiti, to će se reflektirati i na ostale komponente IS–a, bez obzira koliko pažljivo oni sami bili dizajnirani. Dakle i u ovom slučaju vrijedi sintagma – Garbage In Garbage Out, u prevodu: smeće unutra smeće van.

Oracle 8i zasigurno je najsveobuhvatniji i najrobustniji sustav za upravljanje bazom podataka (DBMS) trenutačno na tržištu, a pred konkurencijom se ističe i zbog svojih modula (Spatial, interText, TimeSeries itd.), koji omogućavaju rukovanje posebnim vrstama podataka. No, to je ujedno i kompleksan i složen softverski proizvod, vrlo velikih hardverskih zahtjeva i cijene. Iz ovih razloga cilj diplomskog rada nije bio prikazivanje svih detalja ovog softverskog paketa, već tehnologije i modela u specifičnoj situaciji rukovanja s prostornim podacima. Kao primjer uzeti su u procesiranje podaci K.O.Bakarac.

Osim Oracle-ovog softvera nužno je osvrnuti se i na ESRI-jev SDE (Spatial Data Engine). SDE je kontinuirani, nedijeljeni (nontiled) prostorni model za dodavanje prostornih podataka u relacijski sustav za upravljanje bazom podataka (RDBMS). Ovaj klijent/serverski softver omogućuje spremanje, upravljanje, te brzo “povlačenje” (retrieval) iz baze. Ova baza može biti neki od komercijalnih DBMS-ova, kao što su Oracle, Microsoft SQL Server, Sybase, IBM DB2 i Informix. SDE je skalabilno rješenje, koje omogućava laku integraciju prostornih podataka s ostalim podacima. Radi u raznim okružjima, od malih radnih grupa do velikih, enterprise implementacija (ESRI 2000).

Page 6: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

6

2. Povijest Oracle-a

Godine 1977, Larry Ellison, Bob Miner i Ed Oates osnovali su kompaniju pod nazivom Relational Software Incorporated (RSI). Ova kompanija izradila je RDBMS (Relational DataBase Management System) pod nazivom Oracle. Samo ime preuzeto je iz Shakespeareovog “Venecijanskog trgovca”, a na engleskom znači – proročište. Trojica osnivača donijeli su ključnu odluku: razvili su RDBMS koristeći C programski jezik i SQL sučelje. Ubrzo nakon osnivanja izdali su prototip, odnosno Oracle verziju 1. 1979. RSI je izdao prvu službenu verziju svoga produkta. Oracle RDBMS verzija 2 radio je na Digital PDP-11 radnim stanicama, kojima je upravljao RSX-11 operacijski sustav, a uskoro je Oracle prenešen (“portan”) na DEC VAX sustav (Whalen 1998).

Izdavanjem treće verzije 1983. godine unešene su promjene u SQL (Standard Query Language), kao i ostala poboljšanja. Za razliku od prijašnjih verzija, verzija 3 je bila gotovo potpuno napisana u C-u. Te godine je i RSI promijenio ime u Oracle Corporation.

Oracle 4 pušten je u prodaju 1984. godine. Ova verzija podržavala je VAX i IBM VM operativne sustave, a prva je koja je podržavala read consistency (konzistenciju, stalnost čitanja podataka, što je bitno prilikom obavljanja transakcija). Peta verzija, puštena u korištenje 1985 godine bila je vrlo značajna, jer je uključivala client/server arhitekturu uz pomoć modula SQL*Net. Verzija 5 također je prvi proizvod za MS-DOS koji je probio opće poznatu barijeru od 640 KB.

Slijedeća verzija Oracle-a uslijedila je tek 1988 godine. U toj verziji, osim daljnjeg poboljšanja performansi uvedena je automatsko stvaranje nizova (sequence generation), kao i nisko-razinsko zaključavanje podataka (low-level locking). 1991 godine Oracle je uveo Oracle Parallel Server, prvo za DEC VAX platformu, a onda i za sve ostale sustave.

Oracle 7 izdan je 1992. godine. S njim su uvedene mnoge promjene u arhitekturi cijelog sustava na području upravljanja memorijom, korištenja CPU-a i I/O sustava. Oracle7 je potpuni RDBMS koji je uveo mnoge novosti na području jednostavnosti korištenja, kao što su na primjer SQL*DBA (DataBase Access) i database uloge.

Godine 1997. Oracle je izdao Oracle8, koji je dodao na Oracle7 objektne ekstenzije, kao i neke nove administrativne alate. 1999 godine izašla je verzija Oracle8i, gdje ovo i znači Internet, a samim time je i objašnjena razlika između ove verzije i “obične” osmice. U ovoj (2000-toj) godini izdana je i verzija Oracle8i Lite, namijenjena mobilnim klijentima i općenito slabijim računalima. S ovom verzijom Oracle je postao dostupan i za Windows CE, EPOC i Palm OS klijente. Osnovna funkcionalnost je zadržana, no sama je jezgra (kernel) smanjena do krajnjih granica, te zauzima (footprint) manje od 1 MB.

Oracle je kao kompanija svoj daljnji razvoj snažno vezala uz Internet i pripadajuće mu tehnologije, s naglaskom na Java programski jezik, a u zadnje vrijeme sve je veća podrška i za sve popularniji Linux operativni sustav. Oracle, kao druga po veličini softverska kompanija (poslije Microsofta), ne želi ovisiti o Microsoftu i njihovim operativnim sustavima, a kao što je i vidljivo iz povijesti razvoja Oracle-a, njihovi korijeni su u Unix-u i C programskom jeziku, što se i te kako uklapa u nadolazeći Linux (Whalen 1998).

Page 7: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

7

3. DBMS – Data Base Management System

Pojam data base (baza podataka) može se definirati kao skup informacija organiziranih na takav način da se te informacije mogu pronaći i koristiti. Sustav upravljanja bazama podataka (DataBase Management System – DBMS) može se nadalje definirati kao alat, koji nam omogućava upravljanje bazom podataka, odnosno sredstvo izvršavanja raznih zadaća.

Većina DBMS – ova može izvršiti sljedeće zadaće:

- pohrana podataka

- stvaranje i održavanje struktura podataka

- provođenje raznih sigurnosnih pravila i zaštita privatnosti podataka

- izvlačenje i manipulacija nad spremljenim podacima

- omogućavanje unošenja podataka

- pružanje dovoljno brzog indeksnog mehanizma za brzo pronalaženje podataka

- konzistencija između različitih zapisa

- pružanje mogućnosti sigurne pohrane (backup) i procesa obnove oštećene ili uništene baze podataka

Nekoliko različitih DBMS – ova razvijeno je kako bi podržali ove zahtjeve. Oni se mogu klasificirati na sljedeći način:

- Hijerarhijski DBMS – sprema podatke u drvoliku strukturu (tree). U tom načinu pohrane podataka podrazumijeva se odnos roditelj – dijete između podataka (parent – child). Vrh strukture, pod imenom root, odnosno korijen, može imati bilo koji broj podataka ispod sebe, a oni opet mogu imati bilo koji broj podataka ispod sebe. Struktura je vrlo slična organizaciji direktorija i poddirektorija u nekom file systemu. Hijerarhijski DBMS-ovi su zastarjeli.

Slika 1: Hijerarhijski DBMS

Page 8: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

8

- Mrežni DBMS pohranjuje podatke u obliku zapisa i veza. Sustav omogućava fleksibilne mnogo – prema – mnogo odnose između podatka, što nije moguće u hijerarhijskom DBMS –u. Mrežni DBMS- ovi vrlo su brzi i efikasni u raspodjeli prostora za pohranu. Omogućavaju kompleksne podatkovne strukture, ali su zato vrlo nefleksibilni i zahtjevaju vrlo veliku pažnju prilikom dizajniranja baze podataka. Sustav koji pohranjuje podatke o zaposlenima (Human Resources) primjer je ovakovog DBMS-a.

Slika 2: Mrežni DBMS

- Relacijski DBMS-ovi (RDBMS) vjerojatno imaju najjednostavniju strukturu koju baza podataka može imati. U RDBMS – u podaci su organizirani u tablicama. Tablice se sastoje od zapisa (records), a zapisi od polja (fields). Svako polje korespondira jednoj podatkovnoj jedinici. Dvije ili više tablica mogu biti povezane, ukoliko imaju jedno ili više polja zajedničkih. RDBMS –ovi se jednostavno koriste, te su vrlo rasprostranjeni. Uglavnom su se tokom prošlog desetljeća koristili na slabijim računalnim sustavima, no u zadnje vrijeme njihova upotreba se širi i na jače računalne sustave. Neki od popularnih RDBMS – ova su Oracle, Informix, Access i Sybase.

Slika 3: Relacijski DBMS

Page 9: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

9

- Objektno orjentirani DBMS-ovi su dizajnirani za pohranu podataka kao što su npr. brojevi i riječi. Ti sustavi mogu pohranjivati objekte kao što su video-snimke, slike i sl. Posljednjih godina sve se više koriste (Ramakrishnan & Gehrke 1999).

Oracle8 je objektno relacijski DBMS. Oracle8 sprema objekte u relacijske tablice, na sličan način kao što se pohranjuju brojevi i riječi u relacijskom DBMS – u.

Page 10: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

10

4. Tipovi podataka

Oracle8i dolazi s nekim, već unaprijed definiranim, tipovima podataka (built-in datatypes). Svaka vrijednost u nekoj koloni i konstanta u SQL naredbi mora imati tip podatka (datatype), koji je povezan sa specifičnim načinom spremanja, skupom ispravnih vrijednosti, te sa zabranama (constraints). Kada kreiramo tablicu moramo odrediti tip podataka koji će se nalaziti u svakoj od njezinih kolona. Ugrađeni tipovi podataka dani su u tablici 1. Moram naglasiti da su ovo samo najčešće korišteni, možemo reći – opći, tipovi podataka, dok u objektno – relacijskom, prostornom modu postoje još neki tipovi podataka, koji su opisani u poglavlju Oracle8i Spatial.

Tablica 1: Tipovi podataka

Tip Opis Dužina kolone i podrazumijevana vrijednost

CHAR (veličina) Znakovni podaci fiksne duljine.

Fiksne veličine za svaki red u tablici (s pratećim praznim poljima); maksimalna veličina je 2000 bajta po redu, podrazumijevana veličina je 1 bajt po redu. Potrebno je uzeti u obzir koji se character set koristi, jedno-bajtni (US-ASCII) ili više-bajtni (srednjoeuropski character set), prije no što se odredi veličina.

VARCHAR2 (veličina)

Znakovni podaci promjenjive (varijabilne) duljine. Mora biti određena maksimalna veličina

Promjenjiva vrijednost za svaki red, maksimalno do 4000 bajtova po redu. Također je potrebno uzeti u obzir znakovni skup (character set) prije no što se odredi veličina.

NCHAR (veličina)

Znakovni podaci fiksne duljine, određeni duljinom znakovnog skupa u bajtima, koja ovisi o nacionalnom znakovnom skupu (national character set).

Fiksne veličine za svaki red u tablici (s pratećim praznim poljima). Veličina kolone je broj znakova za fiksnu širinu nacionalnog znakovnog skupa ili broj bajtova za nacionalni znakovni skup promjenjive širine. Maksimalna veličina je određena brojem bajtova potrebnih da se spremi jedan znak, s gornjom granicom od 2000 znakova po redu. Podrazumijevana vrijednost je jedan znak ili jedan bajt, ovisno o znakovnom skupu.

NVARCHAR2 (veličina)

Znakovni podaci promjenjive duljine; ovisno o nacionalnom znakovnom skupu mogu biti znakovi ili bajtovi. Mora biti određena maksimalna veličina.

Promjenjiva vrijednost za svaki red. Veličina kolone je broj znakova za znakovni skup određene širine ili broj bajtova za nacionalni znakovni skup promjenjive širine. Maksimalna vekličina određena je s brojem bajtova potrebnih da se spremi jedan znak, s gornjom granicom od 4000 bajtova po redu. Podrazumijevana vrijednost je jedan znak ili jedan bajt, ovisno o zankovnom skupu.

LONG Znakovni podaci promjenjive veličine.

Promjenjive vrijednosti za svaki red u tablici: mogu poprimiti vrijednosti do 231 bajtova, ili 2 GB po redu.

NUMBER (p,s)

Brojčani podaci (numeric data) promjenjive duljine. Maksimalna preciznost p i/ili scale je 38.

Promjenjiva vrijednost za svaki red. Maksimalni prostor potreban za određenu kolonu je 21 bajt po redu.

DATE Podaci o datumu i vremenu fiksne veličine, početak računanja od 01.01. 4712 p.n.e do 31.12.9999.

Veličina je točno određena na 7 bajtova po svakom redu u tablici. Podrazumijevani format je string (na primjer: DD-MON-YY), koji je određen parametrom

Page 11: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

11

NLS_DATE_FORMAT..

RAW (veličina)

Binarni podaci promjenljive veličine. Maksimalna vrijednost mora biti određena.

Promjenljiva vrijednost za svaki red u tablici, do 2000 bajtova po redu.

LONG RAW Sirovi binarni podaci (raw binary) promjenljive veličine.

Promjenljiva vrijednost za svaki red u tablici, do 231

bajtova, odnosno 2 GB po redu.

BLOB Binary Large Objects. Binarni podaci velike i promjenljive duljine.

Promjenljiva vrijednost za svaki redu u tablici, do 232

bajtova, odnosno 4 GB.

CLOB Character Large Objects. Jednobajtni znakovni podaci promjenljive veličine.

Promjenljiva vrijednost za svaki red u tablici, do 232

bajtova, odnosno 4 GB.

NCLOB

National Character Large Objects. Jednobajtni ili fiksni ili višebajtni podaci promjenljive širine izraženi pomoću nacionalnih znakovnih skupova (national character set).

Promjenljiva vrijednost za svaki red u tablici, do 232

bajtova, odnosno 4 GB.

BFILE Bianrni podaci spremljeni u “vanjskoj” datoteci (external file)..

Promjenljiva vrijednost za svaki red u tablici, do 232

bajtova, odnosno 4 GB.

ROWID Binarni podaci koji predstavljaju fizičku adresu retka u nekoj tablici unutar baze podataka.

Fiksna veličina je 10 bajtova za prošireni ROWID (extended ROWID) ili 6 bajtova za ograničeni ROWID (restricted ROWID) za svaki red u tablici.

UROWID Binarni podaci koji predstavljaju bilo koji tip adrese retka u tablici: fizički, logički ili vanjski (foreign).

Sprema do 4000 bajtova (ali za logički ROWID, samo 3950 bajtova se može koristiti za primarni ključ). Podrazumijevana vrijednost je 4000 bajtova.

Page 12: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

12

5. Objektno – relacijski model upravljanja bazom podataka

Sustavi za upravljanje bazama podataka evoluirali su od hijerarhijskih, preko mrežnih pa do relacijskih modela. Oracle je dodao svoje objektne ekstenzije relacijskom modelu, te se takav model naziva objektno – relacijski. Objektno – relacijski model omogućava pohranu kompleksnih poslovnih modela u relacijsku bazu podataka.

Izbor objekata u Oracleu 8 donijela je novu eru dizajna baze podataka koja koristi objektno-orijentirani pristup. Objektna tehnologija danas postaje infrastruktura za sve pokušaje razvoja aplikacija. Korak prema objektnoj tehnologiji se uglavnom dogodio u razvoju krajnjih, odnosno klijent aplikacija. Ubacivanjem objektne paradigme u sistemski razvoj omogućena je izrada komponenti koje oponašaju procese poslovanja iz stvarnog života. Ovi objekti postaju upravljivi i višekratno upotrebljivi, te olakšavaju napore razvoja. Razvojne aplikacije predstavljaju blizak model fizičke infrastrukture poduzeća, te potiču sustave poslovanja da se ponašaju točno kao i fizički procesi poslovanja (McCullough-Dieter 1998).

Do sada je problem bio što je razvoj objektno-orijentiranih aplikacija uglavnom bio usredotočen na stranu klijenta. Pozadinski (back-end) sustav upravljanja bazom podataka – RDBMS – nije mogao podržavati poslovanje direktno u terminima njegovih poslovnih objekata. Zoran prikaz može se vidjeti na slici 4.

Slika 4: Poslovni objekti i relacijske tablice ne mapiraju se izravno jedan na drugi

Page 13: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

13

Do izdanja Oracle, verzije 8, poslovni objekti na strani aplikacije morali su uzajamno raditi s normaliziranim relacijskim tablicama, da bi mogli preuzimati i obrađivati informaciju. Graditelji aplikacije su, međutim, mogli sabiti više funkcija i procedura u jedan samostojeći objekt paket. Ovaj objekt paket je mogao biti u direktnom odnosu s poslovnim objektima aplikacije. Sve u svemu, objektno – orijentirana analiza sprovedena za aplikaciju, nije mogla biti unakrsno primjenjena za faze analize, dizajna i ostvarivanje baze podataka Oraclea. Relacijski model je stajao na mjestu mnogo godina.

5.1. Relacijski model

Relacijski model ima tri glavna gledišta:

Strukture su dobro definirani objekti (kao što su tablice, pogledi, indeksi itd.), koji pohranjuju ili pristupaju podacima unutar baze podataka. Strukturama i podacima pohranjenima unutar njih može se manipulirati uz pomoć operacija.

Operacije su jasno definirane akcije, koje omogućavaju korisnicima manipuliranje podacima i strukturama u bazi podataka. Operacije moraju podlijegati pravilima cjelovitosti.

Pravila cjelovitosti (Integirty rules) su pravila koja određuju koje operacije su dozvoljene nad kojim podacim i strukturama u bazi podataka. Pravila cjelovitosti štite podatke i strukture u bazi podataka.

Prednosti relacijskih DBMS-ova su:

- neovisnost fizičke pohrane podataka o logičkoj strukturi baze podataka

- promjenjivi i lak način pristupa svim podacima

- potpuna fleksibilnost pri dizajniranju baze podataka

- smanjena redundancija (ponavljanje podataka), a samim time i smanjeni zahtjevi za prostorom prilikom pohrane podataka (Oracle8 Documentation 1999).

5.2. Objektno – relacijski model

Oracle8i je objektno – relacijska baza podataka, što omogućuje arhitektima podataka da u bazi podataka modeliraju poslovne objekte na strani klijenta kao tipove objekata i održavaju podatke unutar relacijskog okvira. Prema tome Oracle8i koristi prednosti oba svijeta, objektnog i relacijskog.

Oracle8i ostvaruje objektnu tehnologiju korištenjem opcije objekata. Te opcije omogućuju mu da pohranjuje objekte u njima najprirodnijem obliku, te tako omogućuje djelotvornu manipulaciju i preuzimanje podataka koji su u vezi s poslovanjem. Na ovaj način, poslovni objekti u aplikacijama na strani klijenta mogu biti direktno mapirani u njihovim relacijskim tablicama Oraclea8i.

Page 14: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

14

Objekti se ostvaruju kao korisnički definirani tipovi podataka. Korisnički definirani tipovi podataka (user defined datatypes) koriste ugrađene tipove podataka i druge korisnički definirane tipove podataka kao cigle za objekte koji modeliraju strukturu podataka iz poslovnih objekata klijenta. Objektne tablice (object tables) koriste stvorene objekte kao shemu skladišta za podatke, kao i bilo koji drugi tip podataka. Tipovi podataka ne pohranjuju podatke, oni samo definiraju podatke koji će biti pohranjeni. Na slici 5 je prikazan odnos između poslovnih objekata klijenta i objektnih tablica u bazi opdataka.

Slika 5: Poslovni objekti i objektno – relacijske tablice prirodno se poklapaju

Životni krug razvoja softvera započinje s definiranjem poslovanja. Programer dijeli poslovanje u manje procese i atribute podataka svakog od ovih procesa. Stvara se pojmovna mapa procesa (conceptual process map) koja podržava infrastrukturu poslovanja. Pojmovna mapa podržava stvaranje procesa front-end aplikacija na klijentima.Dijagram odnosa entiteta i fizička inačica pojmovne mape procesa omogućava stvaranje modela fizičkih podataka relacijske baze podataka. Model fizičkih podataka definira strukturu poslovnih podataka koja će biti pohranjena u obliku tablica. Ograničenja referencijalnog integriteta definiraju u kakovom će odnosu biti poslovni podaci s različitim tablicama.

Dugo vrijeme su relacijske baze podataka bile skladišta podataka tvrtke. Programeri su koristili tablice za pohranjivanje podataka tvrtke s tipovima podataka, koji su predstavljali atribute poslovnih podataka. Relacijske tablice same po sebi ne mogu biti uvijek točno mapirane kao i njihovi pandani podataka poslovnih objekata. To se može dogoditi zbog prirode poslovnih podataka ili zbog pravila normalizacije, koja su potaknuta prilikom dizajna relacijske baze podataka. Pravila normalizacije se primjenjuju radi brzog pristupa i djelotvornog pohranjivanja poslovnih podataka.

Page 15: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

15

Objektno – relacijski model omogućava korisnicima da definiraju tipove objekata (object types), točno određujući kako strukturu podataka, tako i metode izvršavanja operacija nad tim podacima, te korištenje tih tipova unutar relacijskog modela.

Tipovi objekata su apstrakcije entiteta iz stvarnog svijeta, na primjer narudžbenice, s kojima aplikacijski programi barataju. Tip objekta ima tri komponente:

- ime, koje služi za jedinstveno određivanje objekta

- atribute, koji su unaprijed određeni, ugrađeni, tipovi podataka (built- in datatypes), ili drugi korisnikovi tipovi. Atributi modeliraju strukturu entiteta stvarnog svijeta.

- metode, koje su funkcije ili procedure napisane u PL/SQL (Procedure Language/Standard Query Language) i pohranjene u bazi podataka. Mogu biti napisane i u nekom drugom jeziku, na primjer u C- u, i pohranjene izvan baze podataka. Metode implementiraju speicfične operacije koje neka aplikacija može izvršiti nad podacima. Svaki tip objekta ima konstruktorsku metodu (constructor method) koja stvara novi objekt prema specifikaciji određenog tipa podataka (Oracle Documentation 1999).

5.2.1. Sheme i njihovi objekti

Shema (schema) je kolekcija objekata baze podataka koji su dostupni korisniku. Schema objects su logične strukture koje su direktno povezane s podacima unutar baze podataka. Oni uključuju takove strukture kao što su tablice, pogledi, slijedovi (sequences), pohranjene procedure, sinonime, indekse, skupove (clusters) i veze na baze podataka. Ne postoji odnos između tabličnog prostora i sheme; objekti u istoj shemi mogu biti iz različitih tabličnih prostora, a tablični prostori mogu sadržavati objekte iz različitih shema.

5.2.2. Tablice

Tablica je osnovna jedinica pohrane podataka u relacijskoj bazi (Oracle). Tablice jedne baze podataka sadrže sve podatke koji su korisniku dostupni.

Podaci su u tablicama organizirani po redovima i kolonama. Svaka tablica je određena sa svojim imenom i setom kolona. Svakoj koloni se daje ime kolone, podatkovni tip (na primjer CHAR, DATE ili NUMBER), širina (koja može biti predodređena s tipom podataka, npr. DATE) ili skala i preciznost (samo za NUMBER podatkovni tip). Jednom kada se stvori tablica mogu se u nju ubacivati redovi podataka. Redovi u tablicama se tada mogu ispitivati (query), brisati ili mijenjati.

Oracle8i Enterprise Edition donosi i mogućnost dijeljenja velikih tablica.

5.2.3. Pogledi

Pogled (view) je korisnički prilagođena prezentacija podataka iz jedne ili više tablica. Pogled se također može smatrati i "pohranjenim upitnikom".

Page 16: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

16

Pogledi ustvari ne zadržavaju niti pohranjuju podatke. Oni umjesto toga “izvlače” podatke iz tablica u kojima su ti podaci bazirani. Te tablice se nazivaju bazne tablice (base tables). Bazne tablice također mogu biti pogledi, što znači da se pogledi mogu temeljiti na nekim drugim, već definiranim, pogledima.

Pogledi se često koriste za slijedeće stvari:

- Ostvarivanje dodatnog nivoa sigurnosti u tablicama ograničavanjem pristupa samo na unaprijed određeni skup redova i kolona u tablici. Na primjer, pogled na tablicu može biti stvoren tako da se ne vide povjerljivi podaci, kao što su plaće radnika.

- Skrivaju kompleksnost podataka. Moguće je, na primjer, u jedan pogled, iskombinirati 12 mjesečnih tablica s podacima prodaje, da bi se dobili godišnji izvještaji. Jedan pogled također se može koristiti za stvaranje spoja (join), što je u stvari prikaz kolona i redaka iz više tablica koje su na neki način povezane. Pogled skriva činjenicu da su ovi podaci u stvari iz više tablica.

- Pojednostavljuje naredbe za korisnika. Pogled omogućava korisniku da odabere informacije iz više tablica bez potrebe za poznavanjem kompliciranih koreliranih upitnika.

- Pohranjivanje složenih upitnika. Na primjer, upitnik može izvršiti zahtjevne proračune s informacijama iz tablice. Snimanjem toga upitnika kao pogleda, proračun se obavlja samo jednom.

5.2.4. Materijalizirani pogledi

Materijalizirani pogled (materialized view) omogućava neposredni pristup tablici pohranjivanjem rezultata upitnika u odvojeni objekt sheme. Za razliku od običnog pogleda, koji ne zauzima prostor za pohranu i ne sadrži podatke, materijalizirani pogled sadrži retke dobivene iz upitnika provedenih na jednoj ili više baznih tablica i pogleda. Materijalizirani pogled može biti pohranjen u istu bazu podataka u kojoj su i bazne tablice, ili u neku drugu bazu podataka.

Oni materijalizirani pogledi koji su pohranjeni u istu bazu podataka kao i njihove bazne tablice mogu poboljšati performanse preko prepisivanja upitnika (query rewrites). Prepisivanjem upitnika omogućava se pristup drugim upitnicima unaprijed izračunatim podacima pohranjenim u materijaliziranom pogledu.

Drugo ime za materijalizirani pogled je snimak (snapshot). Ovaj pojam se uglavnom odnosi na materijalizirani pogled koji se koristi za repliciranje podataka u udaljenoj bazi podataka. U SQL jeziku ključne riječi SNAPSHOT i MATERIALIZED VIEW su sinonimi.

5.2.5. Slijedovi

Slijed (sequence) generira seriju jedinstvenih brojeva za brojčane kolone tablice u bazi podataka. Slijedovi olakšavaju programiranje aplikacija automatskim stvaranjem jedinstvenih brojčanih vrijednosti za redove unutar jedne ili više tablica.

Page 17: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

17

Pretpostavimo, na primjer, da dva korisnika istodobno unose imena novih zaposlenika u tablicu. Korištenjem slijedova za generiranje rednog broja zaposlenika niti jedan od korisnika ne mora čekati onog drugog da unese slijedeći slobodni redni broj, već se brojevi generiraju automatski i ispravno upisuju kod svakog korisnika.

Redni brojevi (slijedovi) neovisni su o tablicama, tako da se isti slijed brojeva može korisititi u više tablica. Nakon stvaranja, slijedu mogu pristupiti razni korisnici da bi generirali pravi slijed brojeva.

5.2.6. Sinonimi

Sinonim je alias, drugo ime, za tablicu, pogled, slijed, ili programsku jedinicu (SQL procedura ili funkcija). Sinonim, sam po sebi, nije objekt u shemi, već je direktni pokazivač na objekt u shemi. Sinonimi se koriste za:

- maskiranje pravog imena i korisnika objekta u shemi

- davanje javnog pristupa objektu sheme

- transparentno korištenje tablica, pogleda ili programskih jedinica udaljene baze podataka

- pojednostavljenje SQL izjava za korisnika programa

Sinonim može biti javni i osobni. Pojedinačni korisnik može stvarati osobne sinonime, koji su dostupni samo tom korisniku. Administratori baze podataka stvaraju javne sinonime, koje onda može koristiti bilo koji korisnik te baze podataka.

5.2.7. Indeksi

Indeksi su izborne strukture, povezane s tablicama, a stvaraju se da bi poboljšali mogućnosti pronalaženja podataka, odnosno brže pronalaženje staze (path) do podatka.

Prilikom procesiranja zahtjeva za nekim podacima Oracle koristi indekse za učinkovito lociranje tih podataka. Indeksi su posebno korisni kada aplikacije često pretražuju tablice zbog određenog skupa podataka. Na primjer, podaci o svim zaposlenicima čije su plaće veće od 1000 dolara.

Indeksi se mogu stvoriti u odnosu na jednu ili više kolona u tablici. Jednom stvoren indeks Oracle automatski održava i koristi.

Indeksi su potpuno logički i fizički neovisni o podacima. Mogu se obrisati i stvoriti u svakom trenutku, bez utjecaja na tablicu ili ostale indekse. Međutim, ako se uklone indeksi, pristup indeksiranim podacima može biti usporen (Oracle Documentation 1999).

5.2.8. Riječnik podataka (data dictionary)

Svaka Oracle-ova baza podataka sadrži riječnik podataka (data dictionary). Riječnik podataka je set tablica i pogleda koji se koriste kao read-only (samo mogućnost čitanja) referenca o bazi podataka. Tako, na primjer, riječnik podataka sadrži informacije kako o logičkoj tako i o fizičkoj strukturi baze podataka.

Page 18: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

18

Riječnik podataka također sadrži:

- popis korisnika baze podataka

- informacije o pravilima i ograničenjima radi očuvanja cjelovitosti baze podataka, definiranima za tablice unutar baze podataka.

- koliko mjesta je određeno za neki objekt sheme i koliko od toga mjesta se trenutačno koristi.

Riječnik podataka se stvara kada i sama baza podataka, te se automatski obnavlja poslije specifičnih akcija (na primjer kada se mijenja struktura baze podataka), kako bi precizno odražavao status baze podataka. Riječnik podataka od kritične je važnosti za bazu podataka. Od njega se očekuje da snima, provjerava i provodi zadaće unutar baze podataka. Na primjer, prilikom rada u bazi podataka, Oracle čita iz riječnika podataka radi provjere da određeni objekt sheme postoji i da korisnici imaju pravo pristupa.

5.2.9. Prednosti objektno – relacijskog modela

Prebacivanje na objektno orijentiranu prezentaciju podataka i njihovog ponašanja omogućuje lakši pristup podacima poslovnih objekata. Objektno – relacijski model nudi sljedeće prednosti kod dizajna baze podataka:

- Višekratno korištenje objekata. Objekti Oraclea8 se mogu koristiti više puta radi stvaranja drugih objekata ili radi ugrađivanja u različite tablice. Na taj način se dobiva više jednoobrazan pristup razvoju baze podataka, bez potrebe otkrivanja tople vode svaki put kada je potrebno definirati elemente podataka.

- Disciplinirani dizajn baze podataka. Objekti se mogu ugraditi u stupce tablice ili mogu egzistirati kao objekti retka. Svaki objekt može se neovisno dizajnirati i testirati. Korištenjem objekata može se stvoriti arhitektura baze podataka orjentirana na komponente, s objektima koji su vezani na njihove poslovne objekte.

5.2.10. Nedostatci objektno relacijskog – modela

Budući da je ovo relativno nova tehnologija, postoji nekoliko nedostataka, koji bi trebali nestati sazrijevanjem tehnologije.

- Povećanje složenosti. Programer ili DBA (DataBase Administrator) mora napraviti pomak s relacijskog na više objektno – orjentirano razmišljanje. Potrebno je veće znanje o poslovnim domenama i arhitekturi baze podataka. Objekti se mogu pojavljivati kao “crne kutije”, ali ako je dostupna odgovarajuća dokumentacija i komentari, koji će podržati njihovo postojanje i upotrebu.

- Prenošenje objekata. Ako je baza podataka stvorena u Oracleu8 i preuzima njegove kompletne mogućnosti objektno – orjentiranih osobina, migracija baze podataka u bazu podataka drugog proizvođača zahtijevati će potpuno novu arhitekturu baze podataka. Potrebna je migracija objektne orjentacije na relacijsku. Nadalje, aplikacije koje su sučeljene s objektno – orjentiranom arhitekturom podataka zahtjevaju njima odgovarajuće SQL upite.

Page 19: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

19

6. Oracle8i Spatial

Oracle8i Spatial (eng. spatial = prostorni) je integrirani set funkcija i procedura, koje omogućavaju spremanje, pristupanje, te brzo i učinkovito analiziranje prostornih podataka unutar Oracle8i baze podataka. Prostorni podaci predstavljaju lokacijske karakteristike pravih ili pojmovnih (konceptualnih) objekata, odnosno kako su ti objekti postavljeni u odnosu na stvarni ili konceptualni prostor u kojem su smješteni.

Oracle8i Spatial, često označavan samo Spatial, podržava standardnu SQL shemu i funkcije koje omogućuju pohranjivanje, pozivanje, obnavljanje i pregledavanje skupa prostornih prikaza u bazi podataka. Sastoji se od četiri komponente:

- Sheme koja propisuje spremanje, sintaksu i semantiku podržanih geometrijskih tipova podataka

- Prostornog indeksnog mehanizma

- Skupa operatora i funkcija za izvršavanje područja-zanimanja (area-of-interest) upitnike i upitnik prostornog spajanja (spatial join)

- Administrativne alate

Prostorno svojstvo, atribut, prostornog prikaza jest geometrijski opis njegovog oblika u nekom koordinatnom sustavu. Taj pojam se naziva geometrija.

Najnovije izdanje Spatiala podržava dva mehanizma za predstavljanje geometrije. Prva, objektno – relacijska shema, koristi tablicu s jednom jedinom kolonom tipa MDSYS.SDO_GEOMETRY i po jedan red za geometrijsku instancu. Druga, relacijska shema, koristi tablicu s unaprijed definiranim skupom kolona tipa NUMBER i s jednim ili više redaka za svaku geometrijsku instancu. Ovi mehanizmi grubo odgovaraju dvjema alternativama opisanim u OpenGIS ODBC/SQL specifikacijama za geoprostorne prikaze. Prvi odgovara “SQL sa geometrijskim tipovima” implementaciji tablica prostornih prikaza, a drugi implementaciji tablica prostornih prikaza korištenjem brojčanih SQL tipova za pohranjivanje geometrije.

6.1. Uvod u prostorne podatke

Spatial opcija u Oracle8i bazi podataka dizajnirana je kako bi olakšala upravljanje prostornim podacima, te kako bi takova prezentacija podataka bila što prirodnija korisnicima ili aplikacijama kao što su GeoInformacijski Sustavi (GIS). Kada se jednom podaci pohrane u bazu podataka s njima možemo lako manipulirati te ih stavljati u odnose s ostalim podacima pohranjenim u bazu podataka.

Uobičajeni primjer prostornih podataka je auto-karta. Auto-karta je dvodimenzionalni objekt, koji sadrži točke, linije i poligone, koji mogu predstavljati gradove, ceste i političke granice. Auto-karta je vizualizacija, zorni prikaz prostornih informacija. Lokacije gradova, puteva i političkih granica koje postoje na fizičkoj površini Zemlje, projicirane su na dvodimenzionalni prikaz na papiru/ekranu, čuvajući relativne pozicije i relativne udaljenosti između prikazanih objekata.

Page 20: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

20

Podaci koji daju smještaj na Zemlji (zemljopisna širina i duljina, te visina ili dubina) stvarnih objekata su prostorni podaci. Kada se stvara karta, ovi prostorni podaci se koriste da bi se projicirale lokacije objekata na dvodimenzionalni papir/ekran. GIS se često koristi za pohranjivanje i prikazivanje ovih prostornih podataka vezanih uz Zemlju.

Osim GIS prostornih podataka, koristeći Spatial moguće je pohraniti podatke stvorene sustavima računalno podržanog dizajna (Computer Aided Design) i sustavima računalno podržane proizvodnje (Computer Aided Manufacturing). Umjesto da se rukuje s objektima na geografskoj razini, CAD/CAM sustavi rade na puno nižoj razini, kao što je automobilski motor ili tiskane pločice.

Razlike ova tri sustava – GIS, CAD i CAM – su jedino u količini podataka, a ne i u njihovoj složenosti. Na geografskoj razini lokacija mosta može varirati nekoliko milimetara, ili čak centimetara, bez stvaranja značajnih teškoća građevincima. S druge strane, promjer klipova motora ne smije ni približno biti toliko neprecizno određen, a tiskana pločica sadrži tisuće objekata utisnutih na svoju površinu, manjih i od najmanjih detalja prikazanih na građevinskim planovima mosta (Oracle Documentation 1999).

Ove aplikacije spremaju, prikazuju i obnavljaju skup podataka koji imaju i prostorna i ne-prostorna svojstva. Primjeri ne-prostornih svojstava su ime, vrsta tla, ime vlasnika i broj dijela. Prostorna svojstva čini geometrija ili vektorski bazirana reprezentacija nekog oblika. Prostorna svojstva, često nazivana geometrija, su uređeni skup vrhova koji su spojeni ravnim linijama ili kružnim lukovima. Semantika, način korištenja geometrije, određena je njenim tipom, koji može biti točka, linija ili poligon.

6.2. Geometrijski tipovi u relacijskim i objektno – relacijskim modelima

Spatial-ov relacijski model podržava tri tipa geometrijskih primitiva i geometrijske oblike sastavljene od ovih tipova. Tri primitivna tipa su:

- 2D točka i 2D skup točaka (cluster)

- 2D linije i linijski nizovi

- 2D poligoni

2D točke elementi su sastavljeni od dvije koordinate X i Y, koje često odgovaraju geografskoj širini i dužini. Linijski nizovi su sastavljeni od jednog ili više parova točaka koji definiraju odsječke. Poligoni su sastavljeni od linija koje zatvaraju neki oblik. Slika 6 prikazuje podržane osnovne geometrijske elemente (primitive).

Slika 6: Podržani primitivni geometrijski tipovi

Page 21: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

21

Poligoni kojima se stranice križaju, odnosno prelaze jedna preko druge (self – crossing poligoni) nisu podržani, iako ukriženi linijski nizovi jesu. Ako linija, odnosno linijski niz, prijeđe sama preko sebe, ona ne postaje poligon, te kao takva nema određenu unutrašnjost. Poligoni imaju određenu unutrašnjost (po obliku i površini).

Objektno – relacijski model dodaje sljedeće tipove prethodno nabrojenima:

- 2D složene linije, sastavljene od lukova. Svi lukovi generirani su kao kružni.

- 2D poligoni s lukovima

- 2D složeni poligoni

- 2D složene linije

- 2D kružnice

- 2D optimirani pravokutnici

Ove objektno – relacijske tipove podataka možemo vidjeti na slici 7.

Slika 7: Novi geometrijski tipovi u objektno relacijskom modelu

6.3. Model podataka

Model podataka koji se koristi u Oracle 8i Spatial je hijerarhijska struktura, koja se sastoji od elemenata, geometrije i slojeva (layers), koji odgovaraju stvarnim prostornim podacima. Slojevi se sastoje od geometrijskih oblika, koji su opet sastavljeni od elemenata. Na primjer točka može predstavljati lokaciju gradilišta, linija odnosno niz linija mogu biti put, a poligon pože predstavljati državu, grad, blok zgrada i sl.

6.3.1. Elementi

Elementi su osnovni dijelovi od kojih se grade geometrijski oblici. Podržani tipovi prostornih elemenata su točke, linijski nizovi i poligoni. Elementi, na primjer, se mogu

Page 22: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

22

koristiti za modeliranje zvjezdanih konstelacija (skupovi točaka), modeliranje puteva (nizovi linija) ili političkih granica (poligoni). Svaka koordinata elementa pohranjena je kao uređeni par X, Y. Vanjski prsten poligona i unutrašnji prsten ili prstenovi poligona s “rupama” smatraju se različitim elementima, koji formiraju jedan složeni poligon.

Podaci o točki sastoje se od jednog para koordinata. Podaci o liniji sastoje se od dva para koordinata koji predstavljaju linijski odsječak. Podaci o poligonu sastoje se od parova koordinata, po jedan za svaki vrh poligona, odnosno od parova vrhova, po jedan par za svaku stranicu poligona. Koordinate su poredane ili u smjeru kazaljke na satu ili u suprotnom smjeru, opisujući poligon.

6.3.2. Geometrijski oblici

Geometrijski oblici su prezentacija korisnikovih prostornih prikaza, modeliranih i poslaganih kao skup primitivnih elemenata. U relacijskom modelu, svaki geometrijski model mora biti jedinstveno određen geometrijskim identifikatorom (geometry identifier – GID), koji ga povezuje s ostalim svojstvima nekog prostornog prikaza. GID nije potreban u objektno – relacijskom modelu.

Geometrijski oblik se može sastojati od jednog jedinog elementa, koji je instanca jednog od podržanih primitivnih tipova. Geometrijski oblik također može biti i homogena ili heterogena kolekcija elemenata. Multipoligon, na primjer onaj koji predstavlja skup otoka, homogeni je skup. Heterogeni skup čine elementi različitih tipova.

U relacijskom modelu, složeni geometrijski oblik, kao što je poligon s rupama, bit će pohranjen kao slijed poligonskih elemenata. Svi podelementi (subelements) složenog poligona su potpuno sadržani u jednom, najvećem, elementu. Ovo također nije potrebno koristimo li objektno – relacijski model.

Primjer ovakovog složenog geometrijskog oblika može biti prikaz svih građevnih površina u nekom gradu. Ti prostorni podaci mogu biti prikazani uz pomoć poligona s rupama, gdje voda ili neki drugi razlozi sprječavaju gradnju.

6.3.3. Slojevi (Layers)

Sloj je heterogena kolekcija geometrijskih oblika koji imaju isti skup atributa. Na primjer, jedan sloj u GIS – u može prikazivati topografske elemente, dok drugi sloj prikazuje gustoću stanovništva, a treći mrežu puteva i mostova na nekom području (linije i točke). Svaki sloj geometrijskih oblika, te s njima povezani prostorni indeksi, pohranjeni su u bazi podataka u standardnim tablicama.

6.4. Model upita (Query Model)

Spatial koristi dvorazinski (two – tier) model upita kako bi riješio prostorne upite i prostorne spojeve (spatial joins). Pojam dvorazinski se koristi kako bi se naglasilo da se koriste dvije odvojene operacije da bi se riješili upiti. Izlaz (output) obje operacije daje točan skup rezultata.

Page 23: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

23

Dvije operacije nazivaju se primarna i sekundarna filter operacija:

- Primarni filter omogućava na brzinu izabranom skupu zapisa prolazak do drugog filtera. Primarni filter uspoređuje aproksimacije geometrijskih oblika da bi smanjio složenost računanja i smatra se filterom s manjim zahtjevima. Budući upoređuje aproksimacije geometrijskih oblika on u stvari vraća superset podataka koje smo tražili, odnosno vraća veći skup podataka no što nam je potrebno.

- Sekundarni filter primjenuje precizno računanje na geometrijske oblike koji su dobiveni primarnim filterom. Sekundarni filter daje točne rezultate upita nad prostornim podacima. Međutim, on je vrlo računski zahtjevan, te se upravo zato i primjenjuje samo nad ograničenim skupom podataka, dobivenih primarnim filterom. Slika 8 prikazuje odnose između primarnog i sekundarnog filtera.

Slika 8: Model upita

Spatial koristi linearni quadtree-based prostorni indeks za implementaciju primarnog filtera. Funkcija SDO_GEOM.RELATE() koristi se kao sekundarni filter. Ta funkcija procjenjuje topološke odnose – da li se, na primjer, geometrijski oblici dodiruju, prekrivaju jedan drugog, ili su u bilo kakovom drugom odnosu.

Spatial ne zahtjeva da se koriste oba filtera, primarni i sekundarni. U nekim slučajevima primarni filter je sasvim dovoljan. Primjer toga je zoom funkcija neke aplikacije, gdje se traže podaci koji padaju u neki pravokutnik koji predstavlja vidljive granice. Aplikacija tada primjenjuje rutine za “rezanje” (clipping), kako bi se pokazalo samo ciljano područje.

Svrha primarnog filtera je da brzo stvori podskup podataka i smanji količinu računanja potrebnu da se provede i sekundarno filtriranje. Primarni filter prema tome mora biti efikasan i što je moguće brži. To se određuje karakteristikama prostornog indeksa podataka.

Page 24: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

24

6.5. Metode indeksiranja

Uvođenje mogućnosti prostornog indeksiranja u Oracle bazu podataka ključna je karakteristika Oracle 8i Spatiala. Prostorni indeks, kao i svaki drugi, daje mehanizam ograničavanja pretraživanja unutar tablica (ili prostora podataka), zasnovan na prostornim kriterijima kao što su presjek i sadržaj.

Prostorni indeks ima sljedeće zadatke:

- Pronalaženje objekata unutar indeksiranog prostora podataka koji se poklapaju s određenim područjem zanimanja (window query)

- Pronalaženje parova objekata iz dva indeksirana prostora podataka koji su u nekakvoj prostornoj interakciji (spatial join)

Prostorni indeks smatra se logičkim indeksom. Upisi u prostorni indeks ovisni su o lokaciji geometrijskih oblika u koordinatnom sustavu, ali vrijednosti indeksa su u drugoj domeni. Indeksni upisi uzimaju vrijednosti iz linearno poredane cjelobrojne domene, dok koordinate geometrijskih oblika mogu biti parovi cjelih brojeva, float ili double tipa brojeva. Spatial koristi linearnu quadtree-based shemu indeksiranja, poznatu i pod nazivom z-ordering.

Koordinatni prostor (za sloj gdje su smješteni svi geometrijski objekti) podvrgava se procesu teselacije, koji definira jedinstveni i sveobuhvatni skup pločica (tiles) za svaki pohranjeni geometrijski oblik. Teselacija se izvršava rastavljanjem koordinatnog sustava na hijerarhijski način. Raspon koordinata, odnosno koordinatni sustav, predočava se kao pravokutnik. Na prvom nivou rastavljanja pravokutnik se dijeli na polovice duž svake koordinatne osi, te se na taj način stvaraju četiri manja pravokutnika – ploče (tile). Svaka daljnja pločica koja je u interakciji s geometrijskim oblikom koji se teselira rastavlja se na daljnje četiri pločice. Ovaj se proces nastavlja sve do nekog terminacijskog kriterija, kao što je na primjer, veličina pločice, ili maksimalan broj pločica za neki geometrijski oblik.

Spatial može koristiti pločice fiksirane veličine ili pločice promjenljive veličine da bi “pokrio” geometrijske oblike.Pločice fiksirane veličine kontroliraju se rezolucijom. Pločice promjenljive veličine kontroliraju se unaprijed zadanim maksimalnim brojem pločica.

Rezolucija pločica fiksirane veličine i broj pločica promjenljive veličine su parametri koje korisnik sam može odrediti, pod nazivom SDO_LEVEL i SDO_NUMTILES. Više pločica omogućava bolje geometrijske aproksimacije. Što je manji broj većih pločica, grublje su i aproksimacije.

Spatial podržava dvije ispravne kombinacije varijabli SDO_LEVEL i SDO_NUMTILES. Prva je kada SDO_LEVEL ima vrijednost različitu od nule, a SDO_NUMTILES je jednak nuli, koja kao rezultat daje pločice fiksirane veličine (što se naziva i fiksno indeksiranje). Druga ispravna kombinacija je kada i SDO_LEVEL i SDO_NUMTILES imaju vrijednosti različite od nule, što kao rezultat daje hibridno indeksiranje. Hibridno indeksiranje generira dva skupa pločica za jedan skup geometrijskih oblika. Jedan skup sadržava pločice fiksirane veličine, a drugi one promjenljive veličine.

Page 25: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

25

6.5.1. Teselacija sloja tokom indeksiranja

Proces otkrivanja koje pločice prekrivaju određeni geometrijski oblik zove se teselacija. Teselacijski proces je quadtree rastavljanje, gdje se dvodimenzionalni koordinatni sustav rastavlja na četiri jednake pločice. Daljnje teselacije rastavljaju te manje pločice – pravokutnike – u još manje. Rezultat teselacije se sprema u tablicu pod nazivom SDOINDEX tablica.

Pločice na određenom nivou teselacije mogu biti linearno poslagane te im se može pristupati uz pomoć krivulje, kao što je prikazano na slici 9. Pločicama se također mogu pridružiti jedinstveni brojčani identifikatori, poznati i pod nazivom Mortonovi kodovi ili z – veličine.

Slika 9: Quadtree rastavljanje i Mortonovi kodovi

6.5.2. Fiksno indeksiranje

Prostorno indeksirajne uz pomoć pločica određene, fiksne veličine, najčešća je i preporučena metoda za relacijski model baze podataka. Budući su sve pločice iste veličine, one imaju i kodove iste dužine, pa se standardni SQL operator jednakosti (=) može koristiti za usporedbu pločica prilikom operacije prostornog spajanja.

Dva skupa geometrijskih oblika bit će u interakciji, te tako proći primarni filter, ukoliko dijele jednu ili više pločica.

Djelotvornost i produktivnost ove metode indeksiranja ovisi o nivou pločica i o promjenjivosti veličina geometrijskih oblika unutar sloja. Ukoliko odaberemo male pločice određene veličine da bi “pokrili” male geometrijske oblike i onda pokušamo koristiti istu vrstu pločica na velikim geometrijskim oblicima, bit će nam potreban veliki broj pločica. Međutim, ukoliko izaberemo veće pločice, kako bi ih manje bilo generirano za veće geometrijske oblike, onda oštećujemo indeksnu selektivnost, budući da velike pločice ne aproksimiraju dovoljno dobro male geometrijske oblike.Slike 10 i 11 prikazuju odnose između veličine, selektivnosti i broj pločica.

Korištenjem male veličine pločice povećava se selektivnost, ali je potreban veći broj pločica. Prozorski upitnik (window query) bi lako identificirao geometrijske oblike A i B, no odbacio bi C, kao što se može vidjeti na slici 10.

Page 26: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

26

Slika 10: Teselacija uz pomoć mnogo malih pločica fiksne veličine

Korištenjem velikih pločica određene veličine, kao što se vidi na slici XX. manje pločica je potrebno da bi se pokrio geometrijski oblik, ali selektivnost nije dovoljno dobra. Prozorski upitnik će vrlo lako uhvatiti sva tri geometrijska oblika. Svaki objekt koji dijeli pločice T1 ili T2 identificirati će C, iako objekti mogu biti daleko razmaknuti, kao što su B i C na ovoj slici.

Slika 11: Teselacija korištenjem manjeg broja većih pločica

Paket pod nazivom SDO_TUNE posjeduje funkciju ESTIMATE_TILING_LEVEL(), koja omogućuje određivanje pogodne veličine pločica za određeni skup podataka.

Page 27: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

27

Slika 12 prikazuje geometrijski oblik, označen brojem 1013, rastavljen – teseliran – na tri fiksne pločice, u prvom stupnju teseliranja. Kodovi ovih pločica koje prekrivaju geometrijski oblik su spremljeni u SDOINDEX tablicu.

Slika 12: Prikaz teseliranog geometrijskog oblika

Samo tri od četiri pločice generirane u prvom stupnju teseliranja su u interakciji s geometrijskim oblikom. Samo se one pločice, koje su u interakciji s geometrijskim oblikom, spremaju u tablicu pod nazivom SDOINDEX, kao što je to prikazano u tablici YY. U ovom primjeru koristili smo tri pločice određene veličine. Struktura tablice prikazana je samo u ilustracijske svrhe. Nazivi kolona u tablici mogu se razlikovati, ovisno o implementacijskoj metodi, relacijskoj ili objektno – relacijskoj. U relacijskom modelu moramo direktno pristupati tablici s indeksima. U objektno – relacijskom modelu to nije potrebno niti se preporučuje.

Tablica 2: Tablica SDOINDEX pri korištenju pločica određene veličine

SDO_GID<number> SDO_CODE<raw>

1013 T0

1013 T2

1013 T3

Svi elementi geometrije podložni su teselaciji. Pri višelementnom obliku, kao što je 1013, element 1 je već pokriven pločicom T2 iz teselacije elementa 0. Da je, na primjer, rezolucija teseliranja bila veća i da se pločica T2 dalje dijeli, te da je jedna od tih manjih pločica potpuno sadržana unutar elementa 1, tada bi ta pločica bila isključena iz tablice, budući nije u nikakovoj interakciji s geometrijskim oblikom.

Page 28: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

28

6.5.3. Hibridno indeksiranje

Hibridno indeksiranje uobičajena je metoda indeksiranja u objektno – relacijskom modelu. Hibridno indeksiranje koristi kombinaciju fiksnih i promjenljivih pločica za prostorno indeksiranje sloja. Prostorno indeksiranje uz pomoć pločica promjenljive veličine koristi upravo takve pločice za aproksimaciju geometrijskog oblika. Za svaki geometrijski oblik imat ćemo skup pločica koje potpuno pokrivaju geometrijski oblik ili skup geometrijskih oblika, i skup promjenjivih pločica koje pokrivaju neki geometrijski oblik. Na slici 13 pločice promjenljive veličine točno prate svaki geometrijski oblik, što daje dobru selektivnost. Broj promjenjljivih pločica koje pokrivaju geometrijski oblik kontrolira se parametrom SDO_NUMTILES.

Slika 13: Prostorno indeksiranje pločicama promjenljive veličine

Promjenljiva pločica (variable tile) dalje se dijeli ukoliko je u interakciji s geometrijskim oblikom, a podijela će rezultirati pločicama manje veličine. Ova veličina, odnosno rezolucija dijeljenja, određena je parametrom SDO_MAXLEVEL. Korisnik može sam mijenjati ovaj parametar, no to nije preporučljivo.

Slika 14 prikazuje kako se geometrijski oblik OBJ_1, koristeći objektno – relacijsku implementaciju, aproksimira hibridnim indeksiranjem (SOD_LEVEL = 1 i SDO_NUMTILES = 4). To nisu preporučene veličine za ove parametre, no koriste se radi pojednostavljenja primjera. Pločice koje prekrivaju spremljene su u tablicu SDOINDEX, kao što se vidi u tablici 3. Pločice su pobrojane na jednostavan način, koji ne predstavlja format koji se inače koristi u Spatialu.

Page 29: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

29

Slika 14: Rastavljanje geometrijskog oblika

Na slici 14 može se primjetiti kako su samo tri (T0, T2 i T3) od četiri velike pločice, generirane teselacijom, u stvarnoj interakciji s geometrijskim oblikom. Samo one su i spremljene u SDOINDEX tablicu. Na pločici T0 vršena je daljnja teselacija na manje pločice, a dvije (T02, T03) se koriste za pokrivanje dijela geometrijskog oblika. Pločice promjenljive veličine pohranjuju se u SDO_CODE kolonu tablice indeksa. Pločice fiksne veličine pohranjene su u koloni SDO_GROUPCODE.

Tablica 3: Dio SDOINDEX tablice

SDO_ROWID <RAW>

SDO_CODE <RAW>

SDO_MAXCODE <RAW>

SDO_GROUPCODE

<RAW>

SDO_META <RAW>

GID_OBJ_1 T02 <binary data> T0 <binary data>

GID_OBJ_1 T03 <binary data> T0 <binary data>

GID_OBJ_1 T2 <binary data> T2 <binary data>

GID_OBJ_1 T3 <binary data> T3 <binary data>

6.6. Prostorne relacije i filtriranje

Spatial koristi metode filtriranja kako bi odredio prostorne odnose između pojedinih entiteta u bazi podataka. Prostorni odnosi zasnovani su na geometrijskom položaju. Najviše korištene prostorne relacije bazirane su na topologiji i udaljenosti. Granica područja se, na primjer, sastoji od skupa krivulja koje odvajaju to područje od ostatka prostora u koordinatnom sustavu. S tim na umu, dva područja su susjedna ako dijele barem

Page 30: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

30

dio granice, ali ne i točke u svojoj unutrašnjosti. Udaljenost dvaju prostornih objekata jednaka je udaljenosti njihovih najbližih točaka, odnosno minimumu udaljenosti između bilo kojih točaka u njima. Dva objekta su unutar određenog radijusa ukoliko je udaljenost među njima manja od danog radijusa.

Spatial ima dvije sekundarne metode filtriranja. Jedna od njih procjenjuje topološke kriterije, a druga određuje da li su dva prostorna objekta na Euklidanskoj udaljenosti. Sekundarni filter koji procjenjuje topološke kriterije zove se RELATE. RELATE primjenjuje model za kategoriziranje binarnih (dvostranih) topoloških relacija između točaka, linija i poligona na temelju devet presjeka (9 – intersection model).

Svaki prostorni objekt ima unutrašnji dio, granicu i vanjski dio. Granica se sastoji od točaka ili linija koje odvajaju unutrašnji dio od vanjskog. Unutrašnjost se sastoji od točaka koje pripadaju objektu a nisu na njegovoj granici, dok se vanjski dio sastoji od točaka koje ne pripadaju objektu.

Ako uzmemo da objekt A ima tri komponente: granicu Ab unutrašnjost Ai i vanjski dio Ae, bilo koji par objekata imat će 9 mogućih međudjelovanja između svojih komponenti. Parovi komponenti mogu imati prazan(0) ili pun(1) presjek. Skup međudjelovanja dvaju objekata predstavljen je matricom s devet članova (devet presjeka), koja određuje koji parovi komponenata se presjecaju, a koji ne. Slika 15 prikazuje devet – presječnu matricu za dva susjedna poligona (dodiruju se). Ova matrica daje slijedeću bit masku, generiranu u obliku retka (row – major): 101001111.

Slika 15: 9 – presječni (9 – intersection) model

Neke od topoloških relacija prikazane su u radu Dr. Egenhofera i drugih. Spatial koristi slijedeća imena:

- DISJOINT – granice i unutrašnjost se ne presjecaju

- TOUCH – granice se presjecaju, ali unutrašnjosti ne

- OVERLAPBYDISJOINT – unutrašnjost jednog objekta presjeca se s granicom i unutrašnjosti drugog objekta, ali se granice ne presjecaju. Ovaj se odnos događa kad imamo liniju s početnom točkom izvan poligona a završnom unutar poligona.

- EQUAL – dva objekta imaju istu granicu i unutrašnjost

Page 31: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

31

- CONTAINS – granica i unutrašjnost jednog objekta potpuno su unutar drugog objekta

- COVERS – unutrašnjost jednog objekta potpuno je sadržana unutar drugog objekta a granice im se presjecaju

- INSIDE – suprotno od CONTAINS. A INSIDE B implicira B CONTAINS A.

- COVERDBY – suprotno od COVERS.

- ANYINTERACT – objekti nisu DISJOINT, odnosno su u bilo kakovoj interakciji.

Drugi sekundarni filter, WITHIN_DISTANCE, određuje da li su dva prostorna objekta, A i B, na Euklidanskoj udaljenosti jedan od drugoga. Prvo se konstruira međuspremnik (distance buffer) Db oko nekog objekta B. Tada sekundarni filter provjerava dali su A i Db u DISJOINT odnosu, to jest, provjerava se dali su A i Db u bilo kakovoj interakciji. Međuspremnik nekog objekta sastoji se od svih točaka na danoj udaljenosti od tog objekta. Slika 16 pokazuje međuspremnike za točku, liniju i poligon. Vidljivo je da su međuspremnici zaobljeni na rubovima objekata.

Slika 16: Međuspremnici (distance buffers) za točke, linije i poligone

Page 32: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

32

7. Stvaranje baze prostornih podataka

U sklopu diplomskog rada, kao praktični dio, zadatak mi je bio napraviti bazu prostornih podataka, koja bi sadržavala podatke K.O. Bakarac. Unutar te baze podataka podaci o katastarskim česticama definirani su kao objektni geometrijski tipovi, te se svakoj katastarskoj čestici može pristupiti kao jednom objektu.

Ovaj zadatak izvršio sam koristeći Oracle Spatial modul Oracle8i Enterprise Edition 8.1.5 baze podataka. Postupak transformacije podataka iz izvorne dgn datoteke u SDO prikazan je dijagramom na slici 17a.

MicroStation*.dgn

MS Access*.mdb

GeomediaProfesional

*.shp*.shx*.dbf

GeomediaProfesional

SDO*.dbf*.ora

Shp2sdo

Slika 17: Dijagram toka

Pojedini koraci opisani su u poglavljima koja slijede.

Računalo na kojem su izvršavani zadaci sastojalo se od Intel Celeron 433 procesora, 128 MB radne memorije, s 9 GB SCSI hard-diskom. Takova konfiguracija se pokazala kao minimalna konfiguracija na kojoj je uopće moguće instalirati Oracle8i Enterprise Edition. Preporučene konfiguracije u Oracle-ovoj dokumentaciji su Pentium III procesori i barem 256 MB radne memorije (Oracle 1999).

Page 33: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

33

7.1. Stvaranje nove baze podataka

Kao preduvjet za izvršenje zadatka prenošenja podataka morao sam stvoriti praznu bazu podataka, koja ima omogućeno korištenje Oracle Spatial modula, kako bi mogao rukovati s prostornim podacima. Za to sam koristio Oracle-ov alat pod nazivom DataBase Configuration Assistant. Ovaj pomoćno program u cjelosti je napisan u Java programskom jeziku, te se kao takav može pokretati na bilo kojoj platformi (operativnom sustavu). Pomoću njega možemo kreirati, obrisati bazu podataka ili joj promijeniti postavke, kao što možemo vidjeti na slici 18.

Slika 18: Oracle-ov konfiguracijski pomoćnik

Kada krenemo u stvaranje nove baze podataka, potrebno je definirati njen tip. Ovaj dijalog može se vidjeti na slici 19. Ponuđeni tipovi su Typical i Custom, odnosno tipična baza podataka i prilagođena baza podataka, respektivno.

Page 34: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

34

Slika 19: Izbor tipa baze podataka

Ponuđeni tip tipične baze podataka uvelike smanjuje posao unošenja osnovnih parametara koji su potrebni za stvaranje i pokretanje baze podataka. Ova opcija unosi neke tipične vrijednosti kao što su početna količina prostora u memoriji na koju ima pravo svaki korisnik, učestalost zapisa stanja baze podataka u dnevnik(log), kao i veličinu i vrstu tih logova i slično. Ukoliko izaberemo Custom opciju, moramo ručno unijeti sve ove postavke, što je vremenski vrlo zahtjevno, a nerijetko se događaju i pogreške koje mogu rezultirati i nemogućnošću pokretanja same baze podataka. Iz ovih razloga preporučuje se korištenje opcije Typical za sve osim za iskusne administratore, koji vrlo dobro razumiju koje posljedice nosi promjena jedne od postavki, čije međudjelovanje može biti vrlo složeno. Na primjer, postavljanje premale kvote (quota), odnosno dozvoljene veličine tablice može onemogućiti korisnika u unošenju novih podataka. Ovo je posebno bitno kada se radi o prostornim podacima, budući oni zauzimaju značajno više mjesta.

U sljedećem koraku potrebno je odabrati okružje u kojem će raditi naša baza podataka. Nude se tri mogućnosti, koje su prikazane na slici 20.

Page 35: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

35

Slika 20: Odabir okružja (environment) u kojem će raditi baza podataka

Tri tipa okružja (environment) su:

- Online Transaction Processing (OLTP) – online obrađivanje transakcija. Mnogi korisnici istovremeno vrše manje transakcije. Mogućnost stalnog pristupa i brzina odziva baze su od kritične važnosti.

- Decision Support System (DSS) – sustav za podržavanje odluka. Nekoliko korisnika izvodi složene upite. Potrebno je u potpunosti iskoristiti hardver, kako bi se što više smanjilo vrijeme potrebno da se izvede neki upit (query). Pogodno za skladištenje velike količine podataka (data warehousing) ili izvještaje koji uglavnom samo čitaju podatke iz baze podataka (read-only).

- Hybrid – miješani sustav.

Pri odabiru okoliša za bazu prostornih podataka odabrao sam Hybrid, budući se podaci u principu ne unose samo jednom, a mnoge transakcije su i čitanje tih podataka iz baze. Upiti su, također, vrlo složeni, te je potrebno u potpunosti iskoristiti hardveske resurse.

Nakon odabira okružja baze podataka, potrebno je odabrati i module, odnosno dodatne opcije, koje će se koristiti u novostvorenoj bazi podataka. Dijalog s ponuđenim opcijama može se vidjeti na slici 21.

Page 36: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

36

Slika 21: Odabir opcija koje će se koristiti u novoj bazi

Vrlo je bitno u ovom koraku uključiti Oracle Spatial opciju, kako bi omogućili novoj bazi podataka rukovanje prostornim podacima. Ostale opcije u ovom slučaju nisu nam bitne, te ih je najbolje isključiti kako ne bismo nepotrebno opteretili računalo na kojemu će se koristiti Oracle Server.

Ostale opcije su:

- Oracle interMedia – omogućava rukovanje audio, video i slikovnim informacijama, preko objektnih tipova. Ova opcija dodaje Oracle bazi mogućnost upravljanja multimedijalnim sadržajem na Internetu, te podržavanje multimedijalnih aplikacija.

- Oracle Visual Information Retrieval – opcija slična prethodnoj. Bitna razlika je što Visual Information Retrieval dopušta stvaranje i korištenje indeksa, te omogućava content-based pretraživanje baze. Ovo pretraživanje dopušta stvaranje upita zasnovanih na unutarnjim vrijednostima slike (boja, struktura), a ne samo na tekstualnim opisima. Ipak, ova opcija je usko povezana s prethodnom, te kao što vidimo i sa slike, mora biti uključena opcija Oracle interMedia, kako bi mogli uključiti opciju Oracle Visual Information Retrieval.

- Oracle interMedia Text – omogućava rukovanje tekstualnim podacima, te ih može indeksirati u raznim formatima, uključujući HTML, PDF, MS Word ili ASCII obični tekst.

Page 37: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

37

- Oracle Time Series – omogućava rukovanje vremenski označenim podacima. Sastoji se od podatkovnih tipova i s njima povezanih funkcija za upravljanje podacima vezanim uz vrijeme.

- Oracle JServer – pruža mogućnost korištenja Jave kao programskog jezika za razvoj aplikacija, odnosno stvara okružje pogodno za Java programiranje.

- Advanced Replication – pruža mogućnosti napredne replikacije, odnosno stvaranja i održavanja kopija objekata baze podataka u više baza podataka, koje zajedno sačinjavaju distribuirani sustav. Promjene na jednoj od kopija se spremaju lokalno, a zatim se upućuju i na sve ostale lokacije. Replikacija omogućava korisniku brz pristup lokalnim dijeljenim podacima, a ukoliko jedna od kopija postane nedostupna, korisnici mogu nastaviti rad na ostalim kopijama transparentno.

- Enable interMedia demos … - probne tablice s podacima i dodatna pomoć, radi lakšeg učenja i upoznavanje s interMedia opcijom.

Odabirom opcija koje ćemo koristiti u novostvorenoj bazi podataka dolazimo i do kraja konfiguracije uz pomoć konfiguracijskog pomoćnika. Potrebno je još definirati globalno ime baze podataka (Global Database Name). Ovo će ime jednoznačno definirati našu bazu podataka u mreži ostalih servera.

Također je potrebno definirati i identifikator pomoću kojega ćemo pozivati, odnosno, pokretati instance baze podataka. U Oracle-ovoj terminologiji ovaj identifikator se zove Oracle System Identifier (SID). Definiranje ovih parametra može se vidjeti na slici 22.

Page 38: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

38

BAKARAC

BAKARAC

Slika 22: Definiranje globalnog imena i sistemskog identifikatora

Posljednji korak u konfiguraciji nove baze podataka je, u stvari, odabir: želimo li stvoriti bazu podataka odmah, ili snimiti sve informacije koje definiraju našu bazu podataka u batch datoteku, koju ćemo izvršiti kasnije. Ova mogućnost nudi se zbog pretpostavljenog dugog vremenskog razdoblja potrebnog da se stvori baza podataka. Ovo vrijeme varira, no u mom slučaju iznosilo je nekoliko minuta više od sat vremena. Potrebno je naglasiti da se ovo vrijeme može i višestruko povećati ukoliko se radi o složenijoj bazi podataka. Iz tih razloga postoji izbor snimanja podataka u batch datoteku, koja bi se izvršavala u vrijeme najmanjeg korištenja računala, na primjer noću ili preko vikenda. Ovaj posljednji korak možemo vidjeti na slici 23.

Page 39: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

39

Slika 23: Posljednji korak – stvaranje sad ili poslije?

Nakon stvaranja nove baze podataka, s uključenom opcijom Oracle Spatial, spremni smo za unos podataka.

7.2. Unos podataka

Podaci koje sam koristio, odnosno grafički prikaz K.O. Bakarac, s katastarskim česticama i njihovim brojevima, dobio sam u MicroStation-ovom dgn (design file) obliku. Zbog ograničenosti hardverskim resursima računala na kojemu sam izvodio ovaj praktični dio svog diplomskog rada radio sam samo na dijelu katastarskih čestica, pomoću kojih sam prikazao osnovni princip rukovanja takovim podacima. Prikaz čestica u Microstation-ovom dgn formatu vidi se na slici 24.

Page 40: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

40

Slika 24: Prikaz dijela K.O. Bakarac

Budući nije postojao neposredan način prenošenja prostornih podataka iz dgn formata u Oracle Spatial bazu podataka bio sam prisiljen koristiti posredničke programe, pomoću kojih sam, na indirektan način, prenio podatke u Oracle Spatial.

U svrhu prenošenja podataka u prvom koraku korištena je Integraph-ova Geomedia Professional, GIS alat, koji ima mogućnost učitavanja MicroStation-ovih datoteka. Za prijenos podataka iz dgn u Geomediu potrebno je definirati koordinatni sustav, te tako zvani CAD server, kojim definiramo iz kojeg CAD programa prenosimo podatke (CAD Server Definition). Prozor pomoćnog programa s kojim definiramo CAD Server vidi se na slici 25.

Page 41: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

41

Slika 25: Prozor programa za definiranje CAD Servera

Kao što se može vidjeti na slici 18, u definiciji CAD Servera odabiremo dgn datoteku u kojoj se nalaze grafički (vektorski) podaci, te datoteku koja će definirati koordinatni sustav. U ovom slučaju te dvije datoteke su iste, iako je moguće definirati i posebnu datoteku koja će određivati koordinatni sustav.

Kada definiramo CAD Server, možemo pokrenuti Geomediu Professional, te učitati i prikazati podatke. Prilikom prvog pokretanja potrebno je stvoriti novi radni prostor (Geomedia Work Space – gws), te skladište (Warehouse) u kojem ćemo spremati podatke. Skladište je u MS Access formatu. Prikaz podataka učitanih u Geomediju vidimo na slici 25.

Page 42: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

42

Slika 26: Prikaz podataka u Geomediji

Sljedeći korak je eksportiranje (izvoz) podataka iz Geomedije u shp datoteku (Shape format – format kompanije ESRI). Da bi to napravili koristimo naredbu Export to… iz menu-a Warehouse, te odabiremo Shape.

Budući su katastarske čestice kojima sam rukovao već u MicroStation-u bile definirane kao zatvoreni poligoni, dakle površine, one se kao takve i izvoze u shp format. Nakon određenog vremena potrebnog za procesiranje stvaraju se tri datoteke: parcele.shp, parcele.dbf i parcele.dbx. Sve tri ove datoteke potrebne su nam radi daljnjeg procesiranja podataka, odnosno njihovog prebacivanja u SDO (Spatial Data Option) Oracle Spatial modula.

U daljnjem postupku korišten je pomoćni program shp2sdo.exe, koji, kao što mu i ime kaže, prebacuje shp datoteke u SDO format. Ovaj program se pokreće u komandnoj liniji, a parametri su ime shape datoteke, te ime tablice i kolone unutar kojih će spremiti podatke. Za ime tablice odabrao sam PARCELE, a za kolonu unutar koje se sprema geometrija zadržao sam podrazumijevanu vrijednost GEOM. Izgled programa shp2sdo.exe može se vidjeti na slici 27.

Page 43: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

43

Slika 27: Pomoćni, komandno – linijski program shp2sdo.exe

Program uzima tri navedene datoteke kao ulazne (*.shp, *.dbf i *.dbx), te kao rezultat izbacuje dvije datoteke PARCELE.sql i PARCELE.ctl.

PARCELE.sql je tekstualna datoteka koja sadrži naredbe napisane u SQL programskom jeziku, koje kreiraju tablicu unutar baze podataka. Ta tablica sadrži kolone prilagođene podacima iz shp datoteke. SQL skripta iz datoteke PARCELE.sql također unosi podatke u tablicu USER_GEOM_METADATA.

Ispis datoteke PARCELE.sql CREATE TABLE PARCELE ( LEV NUMBER, ID NUMBER, GEOM MDSYS.SDO_GEOMETRY KCBR VARCHAR2(10)); DELETE FROM USER_SDO_GEOM_METADATA WHERE TABLE_NAME = 'PARCELE' AND COLUMN_NAME = 'GEOM' ; INSERT INTO USER_SDO_GEOM_METADATA (TABLE_NAME, COLUMN_NAME, DIMINFO) VALUES ('PARCELE', 'GEOM', MDSYS.SDO_DIM_ARRAY (MDSYS.SDO_DIM_ELEMENT('X', 54668781.899999991, 54669591.950000003, 0.000000050), MDSYS.SDO_DIM_ELEMENT('Y', 50156806.490000002, 50157569.250000000, 0.000000050) ) ); COMMIT;

Page 44: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

44

Ovakovu SQL skriptu izvršavamo u programu SQLPlus, koji dolazi u paketu kao pomoćni alat, te se na taj način stvara tablica, spremna za unos podataka. Prozor programa SQLPlus može se vidjeti na slici 28.

Slika 28: SQLPlus program

Na slici 28 se također vidi struktura tablice PARCELE, koja sadrži kolone:

- ID – identifikacijski broj, jedinstven za svaku katastarsku česticu, predstavlja i primarni ključ tablice, tip podataka je NUMBER.

- LEV – sloj u kojem se nalaze katastarske čestice, preuzeto iz MicroStation-a, sve katastarske čestice se nalaze u istom sloju, tip podataka je NUMBER.

- GEOM – kolona u kojoj se nalaze spremljeni podaci o geometrijskim oblicima, u ovom slučaju zatvoreni poligoni. Ova kolona sadrži tip podataka MDSYS.SDO_GEOMETRY.

- KCBR – broj katastarske čestice, tip podataka je VARCHAR2, s definiranom maksimalnom dužinom od 10 znakova.

Podaci koji se unose u tablicu spremljeni su u datoteci PARCELE.ctl (tzv. Control file), te se unose u tablicu uz pomoć komandno – linijskog programa sqlldr. Ovdje dajem dio sadržaja datoteke PARCELE.ctl, gdje se vidi način definiranja unošenja podataka u određenu kolonu tablice u bazi podataka.

Ispis datoteke PARCELE.ctl LOAD DATA INFILE * TRUNCATE

Page 45: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

45

CONTINUEIF NEXT(1:1) = '#' INTO TABLE PARCELE FIELDS TERMINATED BY '|' TRAILING NULLCOLS ( LEV, ID, KCBR, GEOM COLUMN OBJECT ( SDO_GTYPE INTEGER EXTERNAL, SDO_ELEM_INFO VARRAY TERMINATED BY '|/' (X FLOAT EXTERNAL), SDO_ORDINATES VARRAY TERMINATED BY '|/' (X FLOAT EXTERNAL) ) ) BEGINDATA 50|1|247/8| #3|1|3|1|/ #54668886.080000|50157126.280000|54668908.940000|50157149.340000|54668941.840000|50157180.150000|54669082.690000|50156918.920000|54669027.960000|50156882.980000|54668886.080000|50157126.280000|/ 50|2|247/1| #3|1|3|1|/ #54669204.780000|50157425.200000|54669254.380000|50157470.170000|54669424.480000|50157266.680000|54669385.100000|50157229.240000|54669351.480000|50157205.140000|54669204.780000|50157425.200000|/ 50|3|247/2|

Na slici 29 vidi se kako se uz pomoć programa sqlldr (SQL Loader)podaci iz PARCELE.ctl datoteke prebacuju u tablicu PARCELE. Program kao parametre uzima ime i zaporku korisnika, te naziv ctl datoteke.

Slika 29: Sintaksa sqlldr naredbe za unošenje podataka

Nakon izvršenja sqlldr naredbe, tablica PARCELE napunjena je podacima koji su se nalazili u PARCELE.ctl datoteci. To možemo vidjeti pomoću SQLPlus programa, koristeći SQL naredbu select. Na slici 30 vidimo ispis te naredbe, gdje se ispisuju podaci za česticu 247/1.

Page 46: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

46

Slika 30: Rezultat naredbe select u SQLPlus-u

Kao što se vidi, podaci o geometriji spremljeni su u koloni GEOM tipa MDSYS.GEOMETRY.

7.3. Prikazivanje (vizualizacija) spremljenih podataka

Spremanje podataka u bazu samo je jedan dio posla. Iako je moguće izvršavati razne upite na podacima, na primjer izračunavanje površine pojedinih katastarskih čestica, bez da zapravo vidimo te podatke, psihološki je učinkovitije vizualno prikazivanje tih podataka. GIS softver novije generacije u principu ima mogućnost komuniciranja s Oracle bazom podataka, te je na taj način moguće prikazivanje i manipulacija nad podacima. Geomedia Professional 4.0 jedan je od tih programskih paketa, koji mi je, na žalost, bio nedostupan.

U nedostatku drugih opcija za vizualizaciju podataka upotrijebljen je demo program VisualSDO, koji dolazi na instalacijskom CD-u Oracle 8i EE. Ovaj programčić vrlo je primitivan, te ima mogućnost samo iscrtavanja geometrijskih oblika iz baze podataka, bez mogućnosti promjene ili dodavanja teksta.

Prilikom pokretanja programa potrebno je definirati na koju se bazu (SID) spajamo, te dati korisničko ime i zaporku (slika 31). Koristeći ove podatke VisualSDO se spaja na bazu podataka.

Page 47: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

47

bakarac

Slika 31: Spajanje na bazu podataka

Nakon što smo se spojili, potrebno je odabrati tablicu unutar baze podataka iz koje će VisualSDO “povući” podatke. Ovaj program sam prepoznaje kolone koje sadrže geometriju unutar pojedinih tablica, odnosno kolone s definiranim tipom podataka MDSYS.SDO_GEOMETRY. Ključ po kojemu će se odabrati pojedini redak može biti bilo koja druga kolona u određenoj tablici. To, u ovom slučaju može biti broj katastarske čestice (KCBR), primarni ključ (ID) ili LEVEL vrijednost preuzeta iz MicroStation-ove datoteke. Zanimljivo je napomenuti kako je LEVEL vrijednost ista za sve katastarske čestice (sve su ucrtane na istom sloju), te će se sve i iscrtati ukoiko odaberemo ovu vrijednost kao ključnu.

Na slici 32 vidi se odabir kolone GEOM iz tablice PARCELE. Ključna vrijednost je kolona KCBR, koja sadržava podatke tipa VARCHAR2 (vidi poglavlje 4).

Slika 32: Odabir kolone i retka koje će se prikazati

Nakon odabira određenog retka (ili više njih) koji će se prikazati, nakon kraćeg procesiranja, VisualSDO prikazuje podatke (slika 33).

Page 48: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

48

Slika 33: Prikaz odabranih podatak u programu VisualSDO

Vidljivo je kako je glavni prozor programa podijeljen na dva dijela. U gornjem dijelu grafički se prikazuje odabrana geometrija. U donjem dijelu dan je isti taj podatak, ali u ASCII obliku popisa koordinata svih prelomnih točaka katastarske čestice, kao MDSYS.SDO_ORDINATE_ARRAY.

Page 49: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

49

8. Zaključak

Cilj ovog diplomskog rada bio je stvoriti bazu prostornih podataka katastra, te ju popuniti. U tu svrhu, kao osnovni izvor podataka, koristio sam podatke K.O. Bakarac, spremljene u dgn obliku.

Baza prostornih podataka stvorena je korištenjem Oracle Spatial opcije Oracle Servera. Podaci su transformirani iz dgn datoteke u SDO (Spatial Data Option) korištenjem opisanih posredničkih programa.

Uvođenje novih tehnologija u katastar nužno je kako bi se zadaci mogli izvršavati na vrijeme i dovoljno kvalitetno. Na žalost, ne postoji standard kojeg bi pojedini katastarski uredi morali pratiti, pa je ovo moderniziranje u nas raznoliko. Ovdje do utjecaja dolaze međunarodni i industrijski standardi (SDO), kako bi različiti programi mogli međusobno surađivati i razmjenjivati podatke.

Zaključak je kako korištenje objektnih tipova Oracle Spatial-a, odnosno SDO tehnologije, uvelike pojednostavljuje rukovanje prostornim podacima, te se cjelokupni katastarski operat, kako njegov tehnički, tako i knjižni dio, može smjestiti u ovakvu objektno – relacijsku bazu podataka. Nad ovako pohranjenim katastarskim operatom mogu se izvršavati razne zadaće korištenjem GIS programa. Obrada i unošenje podataka mogu se automatizirati, te se na taj način olakšava i ubrzava posao održavanja katastarskog operata.

Iako je ovo tehnologija budućnosti, još uvijek nema dovoljno podrške, niti je korištenje ove tehnologije jednostavno. Za blisku budućnost najavljen je novi MicroStation s podrškom za Oracle8i, te nova inačica Geomedia Professional paketa. Izdavanjem novijih inačica softverskih paketa možemo očekivati i jednostavniju primjenu ove tehnologije, te njezinu širu uporabu.

Page 50: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

50

Literatura

Whalen, E. (1998): Teach Yourself Oracle8 in 21 days, Macmillan Computer Publishing

Ramakrishnan & Gehrke (1999): Database Management Systems, 2nd Edition, McGraw Hill

McCullough-Dieter, Carol (1998): Oracle8 biblija, Znak Publishing Ltd, Zagreb

Oracle8 (1999): Oracle8i Concepts, Release 8.1.5, Oracle Corporation

Medić, V., Fanton, I., Roić, M. (1996): Katastar, interna skripta, Geodetski fakultet, Zagreb.

ESRI (2000): Introduction to SDE, www.esri.com/sde/index.htm

Page 51: DIPLOMSKI RAD Katastar i Oracle 8i Spatial

51

Životopis

Rođen sam u Kutini, 13. 07. 1976. godine. U istom mjestu pohađao sam osnovnu školu te opću gimnaziju, kao prva generacija nakon ponovnog uvođenja opće gimnazije u školski sustav. Maturirao sam s odličnim uspjehom 1994. godine, te sam iste godine i upisao Geodetski fakultet.

Za vrijeme studiranja na Geodetskom fakultetu obavljao sam zadaće demonstratora iz nekoliko predmeta: Praktična geodezija, Geoinformatika, Inženjerska geodezija, Komunalni informacijski sustavi te Digitalni katastar. Sudjelovao sam i pri izradi pilot projekta Samobor, kojom prilikom sam crtao položajne opise i uređivao bazu podataka u MS Access-u. Također sam sudjelovao i u projektu izmjere i ucrtavanja, u svrhu obnove, nekoliko objekata u Vukovaru.

Certificirani sam Linux administrator, a vrlo dobro poznajem i operativni sustav MS Windows. Intenzivno sam koristio sve dijelove paketa MS Office, uključujući i Access. Aktivno se koristim CAD programima MicroStation i AutoCAD. Od programskih jezika upoznat sam s C++, Perl – om, a koristim se i još nekim skriptnim jezicima.

Od stranih jezika vrlo dobro govorim engleski, a služim se i s njemačkim.