Praktiskajā darbā jāveido ģeometrisko datu (spatial data ... Web viewŅemot vērā minēto,...
Transcript of Praktiskajā darbā jāveido ģeometrisko datu (spatial data ... Web viewŅemot vērā minēto,...
RĪGAS TEHNISKĀ UNIVERSITĀTEDatorzinātnes un informācijas tehnoloģijas fakultāte
Lietišķo datorsistēmu institūts
1.praktiskais darbsmācību priekšmetā
“Lielu datu bāzu administrēšana ”
Izstrādāja: Ieva KričfalušijaStruktūrvienība: 02S03 Tālākizglītības nodaļa
Apl.nr.001RDK019
2013. gada pavasara semestris
Anotācija
Šī praktiskā darba tēma ir ģeometrisko datu (Spatial) datu bāzes izveidošana. Praktiskā darba ietvaros un tā pārskatā realizēta un aprakstīta telpiskās datu bāzes izveidošana, kas satur slāņu, slāņu tabulu definēšanu, grafisko datu ievadi ar SQL komandu INSERT, datu ievadi ar programmu SQL*Loader, meta datu ievadi, indeksu izveidošanu, vaicājumu izveidošanu, vizualizēšanas rīka iespēju izpēti un aprakstīšanu, grafiskās datu bāzes objektu un vaicājumu rezultātu vizualizēšanu.
Praktiskais darbs tika realizēts izmantojot Oracle 10g datu bāzes vadības sistēmu, Integrēto izstrādes vidi (IDE) darbam ar Oracle datu bāzēm – Oracle SQL Developer un tā spraudni (PlugIn) telpisko datu attēlošanai – GeoRaptor.
Darbā iekļauti 78 attēli. Darba kopējais apjoms ir 51 lpp.
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 2
Satura rādītājs
1. Darba uzdevums.....................................................................................................52. Telpiskās datu bāzes satura veidošana...................................................................62.1. Slāņu definēšana...................................................................................................72.2. Tabulu un saišu definēšana...................................................................................92.3. Metadatu ievade..................................................................................................112.4. Slāņu tabulu veidošana.......................................................................................13
2.4.1. Telpas.....................................................................................................132.4.2. Serveri....................................................................................................13
2.4.2.1. Apkopes....................................................................................132.4.3. Klimata kontroles...................................................................................14
2.4.3.1. Robežas.....................................................................................142.4.4. Elektro-barošanas iekārtas.....................................................................15
2.4.4.1. Jaudas........................................................................................152.4.5. Ugunsdrošības iekārtas...........................................................................16
2.4.5.1. Apsekošanas.............................................................................162.4.6. Maršrutētāji............................................................................................162.4.7. Kabeļi.....................................................................................................172.4.8. Klimata iekārtas.....................................................................................172.4.9. Piekļuves kontroles................................................................................18
2.5. Datu ielāde ar INSERT un SQL*Loader............................................................182.5.1. Telpas.....................................................................................................192.5.2. Serveri....................................................................................................20
2.5.2.1. Apkopes....................................................................................212.5.3. Klimata kontroles...................................................................................21
2.5.3.1. Robežas.....................................................................................222.5.4. Elektrobarošanas iekārtas.......................................................................23
2.5.4.1. Jaudas........................................................................................232.5.5. Ugunsdrošības iekārtas...........................................................................24
2.5.5.1. Apsekošanas.............................................................................252.5.6. Maršrutētāji............................................................................................262.5.7. Kabeļi.....................................................................................................262.5.8. Klimata iekārtas.....................................................................................282.5.9. Piekļuves kontroles................................................................................29
3. Indeksi..................................................................................................................304. Ģeometriskās datu bāzes ģeometriju vizualizēšana.............................................324.1. Vaicājumu rezultātu vizualizēšanas iespējas......................................................384.2. Vaicājumi............................................................................................................40
4.2.1. Primārā filtra vaicājumi (2)....................................................................404.2.1.1. Ģeometrijas izvēlētajā atlases logā...........................................404.2.1.2. Saistītās ģeometrijas.................................................................41
4.2.2. Topoloģiju analīzes vaicājumi (4)..........................................................424.2.2.1. SDO_TOUCH...........................................................................424.2.2.2. SDO_CONTAINS....................................................................424.2.2.3. SDO_INSIDE...........................................................................434.2.2.4. SDO_EQUAL...........................................................................43
4.2.3. Ģeometriju skaitlisko raksturojumu iegūšanas vaicājumi (4)................444.2.3.1. Maršrutētājam pievienoto kabeļu ģeometrija...........................444.2.3.2. Poligonu koordinātes................................................................444.2.3.3. Objektu kolonnas saturs............................................................444.2.3.4. Elementu masīva vērtības.........................................................45
4.2.4. Atributīvo datu izgūšanas vaicājumi (3)................................................45
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 3
4.2.4.1. Viena tipa kabeļu kopskaits serveru telpā................................454.2.4.2. Elektro iekārtas ar izvēlēto jaudas lielumu...............................464.2.4.3. Jauda, kas 2x lielāka par visu iekārtu kopējo vidējo jaudu.......46
4.2.5. Ģeometriju ģeometrisko datu iegūšanas vaicājumi (4)..........................474.2.5.1. Funkcija SDO_GEOM.VALIDATE_GEOMETRY................474.2.5.2. Funkcija SDO_GEO.AREA.....................................................484.2.5.3. Funkcija SDO_GEO.DISTANCE............................................484.2.5.4. Funkcija SDO_GEO.LENGTH................................................48
Secinājumi.....................................................................................................................49Literatūra un resursi.......................................................................................................51
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 4
1. Darba uzdevums
Praktiskajā darbā jāizveido ģeometrisko datu (spatial data) datu bāze, izmantojot komerciālus datu bāzes sistēmas paplašinājumus (piemēram, Oracle Spatial). Jāizmanto ģeometriju relāciju – objektu datu bāzes modelis (SDO_GEOMETRY). Veicamie darba uzdevumi maksimālajam novērtējumam ir:
1) Jāizveido vismaz 4 ģeometrisko datu slāņi ar ģeometriskajiem un atributīvajiem datiem. Katru slāni veido pamat-tabula ar ģeometriskiem datiem un papildus tabulas ar atributīviem datiem.
2) Pirms datu ievades jānorāda ģeometriju meta-dati – koordināšu minimālās un maksimālās vērtības, kā arī precizitāte.
3) Gan atributīvo, gan ģeometrisko datu ielāde jāveic izmantojot SQL komandu INSERT;
4) Gan atributīvo, gan ģeometrisko datu ielāde jāveic izmantojot specializētu datu ievades programmu (Oracle DB gadījumā ar SQL*Loader).
5) Jāpielieto parastie, hibrīda un R-koku indeksi.6) Jāveic indeksu ātrdarbības salīdzinājums.7) Ģeometriju datu bāzes pārbaudei jādefinē un jārealizē dažādas sarežģītības
pakāpes datu izgūšanas vaicājumi:8) primārā filtra vaicājumi (2);9) topoloģiju analīzes vaicājumi (4);10) ģeometriju skaitlisko raksturojumu iegūšanas vaicājumi (4);11) atributīvo datu izgūšanas vaicājumi (3);12) ģeometriju ģeometrisko datu iegūšanas vaicājumi (4)).13) Jāveic ģeometriskās datu bāzes ģeometriju vizualizēšana izmantojot kādu
no komerciālām grafisko datu vizualizācijas paketēm (Oracle Map Viewer, Spatial Console vai cita). Jāizpēta tās iespējas.
14) Jāveic ģeometriskās datu bāzes izgūšanas vaicājumu rezultātu vizualizēšana;
15) Jāveic ģeometrisko datu vizualizēšana izmantojot programmēšanas valodu Java un tās bibliotēkas.
Šī darba ietvaros realizēšu 1.–14. no minētajiem uzdevumiem.
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 5
2. Telpiskās datu bāzes satura veidošana
Informācijas sistēmu (IS) dažādība ir ļoti liela. Katram IS tipam nepieciešama arī noteikta tipa datu bāzes sistēma (DBS). Relāciju, objektu un relāciju-objektu DBS (RODBS) nav orientētas uz noteiktu IS tipu. Tās ir universālas. Lai iegūtu attiecīgam IS tipam specializētu DBS, tiek veidoti universālo DBS paplašinājumi (extensions). Paplašinājumi galvenokārt tiek veidoti izmantojot relāciju-objektu DBS. Šajās sistēmās dati glabājas modificētās relāciju struktūrās, kurās tiek iekļauti objekti ar metodēm. Bez datu struktūrām datu bāzes (DB) serverī tiek glabātas speciālas servera programmas, kas pilnveido un paplašina DB iespējas. Šajā darbā tiks praktiski tiks apskatīts viens no DBS paplašinājumiem – telpiskais (jeb, ģeometriskais – spatial). (Avots: http://datubaze.wordpress.com/macibu-kursi/db3/db3_rakst/).
Spatial ir izveidots lai atvieglotu telpisko datu pārvaldību un padarītu to dabiskāku lietotājiem vai tādiem lietojumiem, kā, piemēram, Ģeogrāfiskās Informācijas Sistēmām (GIS). Ja tādi dati tiek glabāti Oracle datu bāzē, tad tie ir viegli manipulējami, atjaunojami, un sasaistāmi ar jebkuriem citiem datiem, kas tiek glabāti datu bāzē. (Avots: http://datubaze.wordpress.com/macibu-kursi/db3/macibu-materiali-prieksmeta-progresivas-datu-bazesdb3/macibu-materiali-par-grafiskajam-datu-bazes-sistemam/)
Darba ir uzdevumā noteikts, ka jāizmanto relāciju – objektu datu bāzes modelis. Relāciju – objektu modelis strādā ātrāk par relāciju modeli un atbalsta papildus ģeometriju tipus, kā arī, ir salīdzinoši vieglāk uztverams un veidojams. Ģeometrija tiek glabāta kā objekts vienā rindā un vienā kolonnā ar datu tipu SDO_GEOMETRY. Jebkurā tabulā, kur ir SDO_GEOMETRY tipa kolonna, jābūt arī kolonnai, kurā tiek definēta šīs tabulas primārā atslēga. Tādas tabulas dēvē par ģeometriju tabulām. Tās var savienot ar citām tabulām, kurās glabāsies papildus atribūtu informācija. (Avots: http://datubaze.wordpress.com/macibu-kursi/db3/db3_rakst/)
Attēls Nr. 2-1
Domājot par telpiskās datu bāzes saturu, nolēmu projektēt serveru telpas, jeb datu centra shematisko attēlu, paredzot, ka tajā plānotais saturs ļaus pielietot un praktiski izmēģināt lekciju kursā dzirdēto, kā arī materiālos un internetā izlasīto teoriju. Saprotot, ka nepietiks laika definēt un, rezultātā, arī – grafiski izveidot visus iedomātos serveru telpas elementus, tomēr, ceru šajā darbā realizēt vismaz daļu no tiem, lai izmēģinātu teorijas pielietojumu praksē.
Izmantojamo ģeometriskās telpas fragmenta izmēru paredzēju 150x150 vienību ietvaros. Koordināšu minimālo un maksimālo vērtību definēšanu var apskatīt sadaļā Metadatu ievade.
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 6
2.1. Slāņu definēšana
Telpisko datu modelis ir hierarhiska struktūra, kas sastāv no:1) elementiem;2) ģeometrijas;3) slāņiem, kuri atbilst telpisko datu attēlojumiem.
Slāņi sastāv no ģeometrijām, kas savukārt sastāv no elementiem. Elements ir ģeometrijas pamata bloks. Atbalstītie elementu tipi ir punkti, līniju virknes, un daudzstūri. Piemēram, ar elements var modelēt zvaigznāju (punktu klasteri), ceļu (līniju virknes), un pilsētas apgabalus (daudzstūri). Katra koordināta elementā tiek glabāta kā X,Y pāris. Ģeometrija ir lietojuma telpiskās īpašības attēlojums, kas ir modelēta kā primitīvo elementu kopa.
Slānis ir ģeometriju heterogēna kolekcija, kas sastāv no ģeometrijām, kurām ir vienāda atribūtu kopa. Piemēram, viens slānis var saturēt topogrāfiskās īpašības, kamēr cits slānis attēlo iedzīvotāju koncentrāciju, un trešais slānis apraksta tiltu un ceļu tīklu šajā laukumā (līnijas un punkti). Katra slāņa ģeometrija un to asociētais telpiskais indekss tiek glabāti datu bāzes standarta tabulās. (Avots: http://datubaze.wordpress.com/macibu-kursi/db3/macibu-materiali-prieksmeta-progresivas-datu-bazesdb3/macibu-materiali-par-grafiskajam-datu-bazes-sistemam/ )
Plānotais attēls var būt sarežģīts. Lai to reģistrētu datu bāzē, attēlu sadala slāņos. Šim dalījumam ir 2 principi:
1) loģiskais (piemēram, ceļi, upes, ēkas);2) ģeometriskais (līnijas, poligoni, utt.).
Analizējot izvēlēto ģeometriju, nolēmu to dalīt slāņos pēc loģiskā principa. Definēju sekojošus slāņus:
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 7
Nr#
Slānis Krāsa
1 Telpas2 Serveri3 Maršrutētāji4 Elektro barošanas iekārtas5 Klimata uzturēšanas iekārtas6 Klimata kontroles 7 Piekļuves kontroles8 Ugunsdrošības iekārtas9 Kabeļi
Kad slāņi realizēti, ģeometriju karte izskatās sekojoši:
Attēls Nr. 2-2
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 8
2.2. Tabulu un saišu definēšana
Ģeometrijas tabulās parasti veido vismaz 3 kolonnas. Katrai ģeometrijai obligāti norāda: unikālu ID, unikālu nosaukumu, katram slānim tiek piekārtotas atributīvās informācijas tabulas, parasti ar saiti 1:N.
Visus augstāk minētos, uzskaitītos slāņus definēju tabulās. Paredzēju 9 grafisko objektu tabulas (Telpas, Piekļuves kontroles, Klimata iekārtas, Kabeļi, Maršrutētāji, Serveri, Klimata kontroles, Elektroiekārtas, Ugunsdrošības iekārtas) – pa vienai katram slānim. Četriem, no pieminētajiem slāņiem, definēju atribūtu tabulas (Apkopes, Robežas, Jaudas, Apsekošanas), kurās glabāsies papildus informācija par datu centra objektiem. Starp telpas tabulu un definēto slāņu tabulām paredzēju saiti 1:N. Atribūtu un grafisko objektu tabulām izveidoju saiti 1:N, kas dod iespēju vienam grafiskajam objektam pakārtot vairākus atribūtus.
Lai būtu ērtāk projektēt darba uzdevumā paredzēto struktūru, izveidoju sākotnējo skici, kas ļaus izvairīties no precizitātes problēmām veidojot datu tabulas, kā arī, vieglāk un uzskatāmi ļaus realizēt paredzēto uzdevumu. Jāpiemin gan, ka šajā skicē nav iekļautas grafisko objektu kolonnas (Attēls Nr.2-3).
Attēls Nr. 2-3
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 9
Paredzētā tabulu un saišu EER struktūra SQL Developer loģiskajā realizācijā (iekļaujot arī grafisko objektu kolonnas) izskatās sekojoši (Attēls Nr.2-4).
Attēls Nr. 2-4.
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 10
2.3. Metadatu ievade
Metadati ļauj izmantot Oracle Spatial funkcijas, tādejādi nodrošinot iespēju strādāt ar ievadītajiem ģeometriskajiem datiem. Metadatu definēšanas procesā tiek aizpildīti tabulas USER_SDO_GEOM_METADATA lauki:
– tabulas, kurā atrodas ģeometriskie dati, nosaukums – TABLE_NAME– kolonnas, kas satur ģeometriju, nosaukums – COLUMN_NAME– dimensiju (koordināšu) dati – DIMINFO– koordināšu sistēma – SRIDŠajā darbā tiek veidoti 2 dimensiju attēli, tas nozīmē, ka tiks reģistrēti dati par
dimensijām X un Y, kā arī – norādītas ass mazākā un lielākā vērtības.
Attēls Nr. 2-5
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 11
Atlasot ievadītos datus, redzam:
Attēls Nr. 2-6
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 12
2.4. Slāņu tabulu veidošana
2.4.1. TelpasTelpas slāņa realizācijai izveidotas tabulas TELPAS. Ģeometrisko objektu
glabāšanai šajā tabulā, tiek izveidota kolonna telpa ar tipu MDSYS.SDO_GEOMETRY.
create table TELPAS (telpas_id number (10,0) constraint pk_telpa primary key,telpa mdsys.sdo_geometry,nosaukums varchar2 (25),numurs number (4,0));
Lai turpmāk būrtu ērti izmantot izveidotās komandas, saglabāju tās .sql failos ar informējošiem nosaukumiem, šajā gadījumā create_telpas.sql. Šie faili tiek saglabāti Oracle BIN apakšdirektorijā, jeb C:\oracle\product\10.2.0\db_2\BIN .
Sekojoši, izsaucu failā šo komandu izpildi, norādot @faila_nosaukums.
Attēls Nr. 2-7
2.4.2. ServeriServeru slāņa realizācijai izveidotas tabulas SERVERI un APKOPES.
Ģeometrisko objektu glabāšanai tabulā SERVERI, tiek izveidota kolonna serveris ar tipu MDSYS.SDO_GEOMETRY. Serveru attēla grafiskajai realizācijai paredzu izmantot 2 dimensiju taisnstūra poligonus.
create table SERVERI (servera_id number (10,0) constraint pk_serveris primary key,serveris mdsys.sdo_geometry,loma varchar2 (25),s_telpa number,constraint fk_s_telpa foreign key (s_telpa) references TELPAS (telpas_id));
Attēls Nr. 2-8
2.4.2.1. ApkopesAtributīvā tabula APKOPES, saskaņā ar tās definīciju, šī un citas atributīvās tabulas
nesaturēs ģeometriskos datus. Tabulā APKOPES tiks glabāti dati par konkrētiem serveru apkopes datumiem un to izpildes statusu.
create table APKOPES (apkope_id number (10,0) constraint pk_apkope primary key,datums date default sysdate not null,izpilde number (1,0) default 1 not null constraint ch_apk_izpilde check (izpilde in (0,1)),serveris number,constraint fk_serveris foreign key (serveris) references SERVERI (servera_id));
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 13
Attēls Nr. 2-9
2.4.3. Klimata kontroles
Klimata kontroļu (ar to tiek domāts – iekārta telpas temperatūras un mitruma monitorēšanai) slāņa realizācijai izveidotas tabulas KLIMATA_KONTROLES un ROBEZAS. Ģeometrisko objektu glabāšanai tabulā KLIMATA_KONTROLES, līdzīgi, kā serveru slāņa ģeometrisko datu tabulā, tiek izveidota īpaša kolonna kl_kontrole grafisko datu glabāšanai ar tipu MDSYS.SDO_GEOMETRY. Klimata kontroļu attēla grafiskajai realizācijai paredzu izmantot 2 dimensiju taisnstūra poligonus.
create table KLIMATA_KONTROLES (kl_kontrole_id number (10,0) constraint pk_kl_kontrole primary key,kl_kontrole mdsys.sdo_geometry,kontrole varchar2 (25),kk_telpa number,constraint fk_kk_telpa foreign key (kk_telpa) references TELPAS (telpas_id));
Attēls Nr. 2-10
2.4.3.1. Robežas Atributīvā tabula ROBEZAS, būs paredzēta pieminēto klimata kontroļu (mitrums,
temperatūra) informācijas glabāšanai par to kritiskajām (minimālajām un maksimālajām) robežām.
create table ROBEZAS (robeza_id number (10,0) constraint pk_robeza primary key,min number (4,0), max number (4,0), kl_kontr number,constraint fk_kl_kontr foreign key (kl_kontr) references KLIMATA_KONTROLES (kl_kontrole_id));
Attēls Nr. 2-11
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 14
2.4.4. Elektro-barošanas iekārtas
Elektroiekārtu slānī nolēmu ietvert nepārtrauktās barošanas iekārtas un serveru barošanas blokus. Sagatavojot konceptuālo skici, pamanīju, ka darba sākumā izvēlētais slāņu dalījums pēc loģikas principa, neļauj barošanas blokus (kas atrodas serveros) attēlot vienā grafiskajā figūrā, kas būtu salikts poligons. Faktiski sapratu, ka zaudēju iespēju šāda poligona realizēšanai. Nolēmu, ka šādu struktūru mēģināšu aprakstīt kustību sensoram, kas ieplānots piekļuves kontroļu slānī. Tāpēc turpināju darbu nemainot izvēlēto koncepciju. Elektroiekārtu attēla grafiskajai realizācijai paredzu izmantot 2 dimensiju taisnstūra poligonus.
Slānim izveidotas tabula ELEKTRO_IEKARTAS. Ģeometrisko objektu glabāšanai tabulā KLIMATA_KONTROLES – izveidota kolonna el_iek grafisko datu glabāšanai ar tipu MDSYS.SDO_GEOMETRY.
create table ELEKTRO_IEKARTAS (el_iek_id number (10,0) constraint pk_el_iek primary key,iel_iek mdsys.sdo_geometry,tips varchar2 (25),ei_telpa number,constraint fk_ei_telpa foreign key (ei_telpa) references TELPAS (telpas_id));
Attēls Nr. 2-12
2.4.4.1. JaudasAtributīvā tabula JAUDAS, būs paredzēta datu glabāšanai par pieminēto
elektroiekārtu jaudām.
create table JAUDAS (jauda_id number (10,0) constraint pk_jauda primary key,jauda_w number (4,0),ei_iek number,constraint fk_ei_iek foreign key (ei_iek) references ELEKTRO_IEKARTAS (el_iek_id));
Attēls Nr. 2-13
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 15
2.4.5. Ugunsdrošības iekārtas
Ugunsdrošības iekārtu slānī paredzēju iekļaut dūmu detektorus un ogļskābās gāzes aparātus. Slānim izveidotas tabulas UGUNSDROSIBAS_IEKARTAS un APSEKOSANAS. Ģeometrisko objektu glabāšanai tabulā UGUNSDROSIBAS_IEKARTAS – izveidota kolonna ug_iek grafisko datu glabāšanai ar tipu MDSYS.SDO_GEOMETRY. Ugunsdrošības iekārtu attēla grafiskajai realizācijai paredzu izmantot apļa poligonus (Circle polygon), definējot 3 punktus uz riņķa līnijas.
create table UGUNSDROSIBAS_IEKARTAS (ug_iek_id number (10,0) constraint pk_ug_iek primary key,ug_iek mdsys.sdo_geometry,nosaukums varchar2 (25),ui_telpa number,constraint fk_ui_telpa foreign key (ui_telpa) references TELPAS (telpas_id));
Attēls Nr. 2-14
2.4.5.1. ApsekošanasAtributīvā tabula APSEKOSANAS, būs paredzēta datu glabāšanai par pieminēto
ugunsdrošības iekārtu regulāro apsekošanu.
create table APSEKOSANAS (apsekosana_id number (10,0) constraint pk_apsekosana primary key,datums date default sysdate not null,izpilde number (1,0) default 1 not null constraint ch_aps_izpilde check (izpilde in (0,1)),ui_iek number (10,0),constraint fk_ui_iek foreign key (ui_iek) references UGUNSDROSIBAS_IEKARTAS (ug_iek_id));
Attēls Nr. 2-15
2.4.6. Maršrutētāji
Maršrutētāju slānī paredzēju iekļaut 2 lokālā tīkla komutatorus ar atšķirīgu portu skaitu, ugunsmūra iekārtu un optikas kabeļa pievad-iekārtu. Slānim izveidota tabula MARSRUTETAJI. Ģeometrisko objektu glabāšanai tajā izveidota kolonna marsrutetajs grafisko datu glabāšanai ar tipu MDSYS.SDO_GEOMETRY. Maršrutētāju attēla grafiskajai realizācijai paredzu izmantot 2 dimensiju taisnstūra poligonus.
create table MARSRUTETAJI (marsr_id number (10,0) constraint pk_marsr primary key,marsrutetajs mdsys.sdo_geometry,tips varchar2 (25),m_telpa number,constraint fk_m_telpa foreign key (m_telpa) references TELPAS (telpas_id));
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 16
Attēls Nr. 2-16
2.4.7. Kabeļi
Kabeļu slānī paredzēju iekļaut 3 kabeļu tipus – vīto pāri, optisko kabeli, un standarta elektrokabeļus. Slānim izveidota tabula KABELU. Ģeometrisko objektu glabāšanai tajā izveidota kolonna kabelis grafisko datu glabāšanai ar tipu MDSYS.SDO_GEOMETRY. Kabeļu attēlu grafiskajai realizācijai paredzu saliktās (savienotās) līnijas (connected lines).
create table KABELI (kabelis_id number (10,0) constraint pk_kabelis primary key,kabelis mdsys.sdo_geometry,veids varchar2 (25),k_telpa number,constraint fk_k_telpa foreign key (k_telpa) references TELPAS (telpas_id));
Attēls Nr. 2-17
2.4.8. Klimata iekārtasKlimata iekārtu slānī paredzēju iekļaut 2 atšķirīgu jaunu un tipu. Slānim
izveidota tabula KLIMATA_IEKARTAS. Ģeometrisko objektu glabāšanai tajā izveidota kolonna kl_iek grafisko datu glabāšanai ar tipu MDSYS.SDO_GEOMETRY.Klimata iekārtu attēla grafiskajai realizācijai paredzu izmantot 2 dimensiju taisnstūra poligonus.
create table KLIMATA_IEKARTAS (kl_iek_id number (10,0) constraint pk_kl_iek primary key,kl_iek mdsys.sdo_geometry,modelis varchar2 (25),ki_telpa number,constraint fk_ki_telpa foreign key (ki_telpa) references TELPAS (telpas_id));
Attēls Nr. 2-18
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 17
2.4.9. Piekļuves kontroles
Piekļuves kontroļu slānī paredzēju iekļaut video kameru un kustību sensoru. Slānim izveidota tabula PIEKLUVES_KONTROLES. Ģeometrisko objektu glabāšanai tajā izveidota kolonna piek_k grafisko datu glabāšanai ar tipu MDSYS.SDO_GEOMETRY.Piekļuves kontroļu attēla grafiskajai realizācijai paredzu izmantot salikto poligonu –compound (video kamerai) un poligonu ar caurumu – gredzenu (kustību sensoram).
create table PIEKLUVES_KONTROLES (piek_k_id number (10,0) constraint pk_piek_k primary key,piek_k mdsys.sdo_geometry,kontrole varchar2 (25),pi_telpa number,constraint fk_pi_telpa foreign key (pi_telpa) references TELPAS (telpas_id));
Attēls Nr. 2-19
2.5. Datu ielāde ar INSERT un SQL*Loader
Datu ielādes procesu var sadalīt divās kategorijās:1) liela apjoma datu ielāde (bulk loading). Šo procesu izmanto, lai ielādētu lielus
datu apjomus datu bāzē, izmantojot utilītu SQL*Loader. Bulk loading var importēt ASCII datu lielus apjomus Oracle datu bāzē.
2) transakcionāla ievietošana (Transactional inserts). Šo procesu izmanto lai ievietotu relatīvi mazus datu apjomus datu bāzē, lietojot valodas SQL frāzi INSERT.
(Avots: http://datubaze.wordpress.com/macibu-kursi/db3/macibu-materiali-prieksmeta-progresivas-datu-bazesdb3/macibu-materiali-par-grafiskajam-datu-bazes-sistemam/)
Ielādējot datus ar SQL Loader, tiek panākts lielāks ielādes ātrums, turklāt ievadāmie dati ir ērti pārskatāmi. Datu ielādei ar SQL Loader ir nepieciešami:
1) vadības fails (loader control file – .ctl), ko sagatavo lietotājs. Fails satur INSERT līdzīgu konstrukciju, un, cita starpā, tajā norāda tabulas un lauku nosaukumus.
2) ievadāmo datu faili (input data files – .dat) – lietotāja gatavoti. Tie satur datus, kas jāievada tabulās.
Pēc vadības faila izpildes tiek automātiski veidoti:1) žurnāla faili (log files) – tajos tiek ierakstīta informācija par datu pievienošanas
rezultātiem – cik rindas izpildītas, cik nē, un kāpēc, kā arī citi paziņojumi, kļūdas brīdinājumi, u.tml.
2) sliktie ieraksti (bad files) – satur informāciju par ierakstiem, kas nav ielādēti dēļ kļūdām, ja tādas bijušas.
3) noraidītie ieraksti (discard files) – satur informāciju noraidītajiem par ierakstiem, ja tādi bijuši.
2.5.1. Telpas
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 18
Telpas tabulas aizpildīšanai izmantošu SQL komandu INSERT. Tā kā šī ir pirmā izpildāmā komanda praktiskā darba ietvaros, tad komentēšu katru rindu, lai aprakstītu izmantoto telpisko rādītāju nozīmi.
Komandas rinda Skaidrojums
insert into TELPAS values (1, MDSYS.SDO_GEOMETRY(2003,
Dimensiju skaits=2; Parasta (ne LRS) ģeometrija=0; Ģeometrijas tips - SDO_GTYPE=03(Poligons); JEB - Divu dimensiju poligons
NULL, NULL, Izmantojamā koordināšu sistēma SDO_SRID=0; Punkta koordināšu vērtības SDO_POINT=0
MDSYS.SDO_ELEM_INFO_ARRAY (1,3,1),
Pirmā koordinātes pozīcija SDO_ORDINATES masīvā, jeb SDO_STARTING_OFFSET=1; Elementa tips, jeb SDO_ETYPE=3 (vienkāršs elements);Pieraksta interpretācija, jeb SDO_INTERPRETATION=1 (vienkāršs poligons kura sastāvdaļas savienotas ar taisniem līniju segmentiem)
MDSYS.SDO_ORDINATE_ARRAY (10, 10, 145.5, 10, 145.5, 135, 10, 135)
SDO_ORDINATES masīvs, kas glabā koordinātu vērtības, jeb koordinātu pārus (10, 10, 145.5, 10, 145.5, 135, 10, 135), kuras ir telpiska objekta robeža
) , 'Datu centrs', '133'); Tabulas lauku NOSAUKUMS un NUMURS vērības.
Attēls Nr. 2-20
Faktiski telpa ir paredzēta kā vienkāršs poligons, kam nepieciešams uzdot tikai 2 koordinātas. Tāpēc dzēšu aizpildīto ierakstu un izveidoju jaunu, norādot jaunu SDO_INTERPRETATION vērtību – 3, kas apzīmē vienkāršu taisnstūri, kuram jānorāda augšējā–labā stūra un apakšējā–kreisā stūra koordinātas.
Attēls Nr. 2-21
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 19
Atlasot datus par veikto ierakstu, iegūstu:
Attēls Nr. 2-22
2.5.2. Serveri
Katrai DB ir sava programma, kura ļauj efektīvi ievadīt datus. Oracle tas ir SQL Loader. Serveru tabulu aizpildu ar SQL Loader. Lai to paveiktu, sākotnēji, izmantojot Notepad, izveidoju 2 failus. Katru no tiem saglabāju ar attiecīgu paplašinājumu – .ctl un .dat. Šie faili tiek saglabāti – C:\Documents and Settings\Ieva
ctl.faila satursCTL2_Serveri.ctl
.dat faila satursDAT2_Serveri.dat
load datainfile 'DAT2_Serveri.dat'into table SERVERIfields terminated by ','(servera_id, loma,s_telpa,serveris column object(sdo_gtype constant 2003,sdo_elem_info varray count (constant 3) (x),sdo_ordinates varray count (constant 4) (y) ))
1, Datu bāzes, 1, 1,3,3, 30, 45, 50, 702, Lietojumu, 1, 1,3,3, 55, 45, 75, 70
SQL Loader tiek palaists no komandrindas. Tāpēc, lai izsauktu attiecīgo failu izpildi, komandrindā ievadu: sqlldr userid=scott/tiger control= CTL2_Serveri.ctl, kur:
1) sqlldr – SQL Loader .exe izsaukšana2) userid – lietotāja vārds un parole, lai pieslēgtos datu bāzei;3) control – norāda uz lietotāja izveidoto vadības failu .ctl
Komandrindā redzams rezultāts par 2 ierakstu ielādi.
Attēls Nr. 2-23
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 20
Lai apskatītu ielādētos datus, atlasu tos attiecīgajā tabulā:
Attēls Nr. 2-24
2.5.2.1. ApkopesTabula Apkopes ir atributīvā tabula, tajā, līdzīgi kā iepriekš datus ielādēju ar
SQL*Loader.
ctl.faila satursCTL3_Apkopes.ctl
.dat faila satursDAT3_Apkopes.dat
load datainfile 'DAT3_Apkopes.dat'into table APKOPESfields terminated by ','(apkope_id, izpilde,serveris)
1, 1, 12, 0, 23, 0, 14, 1, 2
Attēls Nr. 2-25
Atlasu tabulā ielādētos datus:
Attēls Nr. 2-26
2.5.3. Klimata kontroles
insert into KLIMATA_KONTROLES values (1, mdsys.sdo_geometry (2003, null, null, mdsys.sdo_elem_info_array (1,3,3),mdsys.sdo_ordinate_array (25,90, 45,95)), 'Mitrums', '1');
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 21
ctl.faila satursCTL1_Klimata_kontroles.ctl
.dat faila satursDAT1_Klimata_kontroles.dat
load datainfile 'DAT1_Klimata_kontroles.dat'into table KLIMATA_KONTROLESfields terminated by ','(kl_kontrole_id, kontrole,kk_telpa,kl_kontrole column object(sdo_gtype constant 2003,sdo_elem_info varray count (constant 3) (x),sdo_ordinates varray count (constant 4) (y)))
1, Mitrums, 1, 1,3,3, 95, 30, 110, 352, Temperatūra, 1, 1,3,3, 95, 30, 110, 35
Attēls Nr. 2-27
Attēls Nr. 2-28
2.5.3.1. Robežas
ctl.faila satursCTL7_Robezas.ctl
.dat faila satursDAT7_Robezas.dat
load datainfile 'DAT7_Robezas.dat'into table ROBEZASfields terminated by ','(robeza_id, min,max,kl_kontr)
1, 18, 22, 12, 48, 52, 2
Attēls Nr. 2-29
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 22
Attēls Nr. 2-30
2.5.4. Elektrobarošanas iekārtas
ctl.faila satursCTL5_Elektro_iekartas.ctl
.dat faila satursDAT5_Elektro_iekartas.dat
load datainfile 'DAT5_Elektro_iekartas.dat'into table ELEKTRO_IEKARTASfields terminated by ','(el_iek_id, tips,ei_telpa,iel_iek column object(sdo_gtype constant 2003,sdo_elem_info varray count (constant 3) (x),sdo_ordinates varray count (constant 4) (y)))
1, Barošanas bloks_srw_DB, 1, 1,3,3, 40,60, 45, 652, Barošanas bloks_srw_DB, 1, 1,3,3, 40,50,45,553, Barošanas bloks_srw_Liet, 1, 1,3,3, 65,60,70,654, Barošanas bloks_srw_Liet, 1, 1,3,3, 65,50,70,555, UPS_1000VA, 1, 1,3,3, 45,30,65,406, UPS_1500VA, 1, 1,3,3, 35,15, 55,25
Attēls Nr. 2-31
2.5.4.1. Jaudas
ctl.faila satursCTL8_Jaudas.ctl
.dat faila satursDAT8_Jaudas.dat
load datainfile 'DAT8_Jaudas.dat'into table JAUDASfields terminated by ','(jauda_id, jauda_w,ei_iek)
1, 100, 12, 100, 23, 100, 34, 100, 45, 600, 56, 1000, 6
Attēls Nr. 2-32
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 23
Attēls Nr. 2-33
2.5.5. Ugunsdrošības iekārtas
insert into UGUNSDROSIBAS_IEKARTAS values (1, mdsys.sdo_geometry (2003,null, null, mdsys.sdo_elem_info_array (1,1003,4, 7,2003,4), // 1003-poligona ārējā kontūra, 2003-poligona iekšējā kontūra, 4 – iekšējais un ārējais poligoni ir apļi, 7 – poligona iekšējās kontūras pirmās koordinātes kārtas numurs masīvāmdsys.sdo_ordinate_array (17.5, 37.5, 22.5, 32.5, 17.5, 27.5, 17.5,35, 20, 32.5, 17.5, 30)), 'Dūmu detektors', '1');
insert into UGUNSDROSIBAS_IEKARTAS values (2, mdsys.sdo_geometry (2003,null, null, mdsys.sdo_elem_info_array (1,1003,4, 7,2003,4), mdsys.sdo_ordinate_array (117.5, 97.5, 122.5,92.5, 117.5, 87.5, 117.5, 95, 120, 92.5, 117.5, 90)), 'Dūmu detektors', '1');
insert into UGUNSDROSIBAS_IEKARTAS values (3, mdsys.sdo_geometry (2003,null, null, mdsys.sdo_elem_info_array (1,1005,4, 1,2,2, 5,2,1, 9, 2,2, 13, 2,1), mdsys.sdo_ordinate_array (114.5, 20, 115,15, 115.5,20, 115.5,22.5, 116.5,25, 115, 27.5, 113.5,25, 114.5,22.5, 114.5,20)), 'Ogļsk_gāze', '1');commit;
insert into UGUNSDROSIBAS_IEKARTAS values (4, mdsys.sdo_geometry (2003,null, null, mdsys.sdo_elem_info_array (1,1005,4, 1,2,2, 5,2,1, 9, 2,2, 13, 2,1), mdsys.sdo_ordinate_array (24.5, 125, 25,120, 25.5,125, 25.5,127.5, 26.5,130, 25, 132.5, 23.5,130, 24.5,127.5, 24.5, 125)), 'Ogļsk_gāze', '1');
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 24
Attēls Nr. 2-34
2.5.5.1. Apsekošanas
ctl.faila satursCTL9_Apsekosanas.ctl
.dat faila satursDAT9_ Apsekosanas.dat
load datainfile 'DAT9_Apsekosanas.dat'into table APSEKOSANASfields terminated by ','(apsekosana_id, izpilde,ui_iek)
1, 0, 12, 1, 23, 1, 34, 0, 45, 1, 16, 0, 27, 0, 38, 1, 4
Attēls Nr. 2-35
Attēls Nr. 2-36
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 25
2.5.6. Maršrutētāji
ctl.faila satursCTL6_Marsrutetaji.ctl
.dat faila satursDAT6_Marsrutetaji.dat
load datainfile 'DAT6_Marsrutetaji.dat'into table MARSRUTETAJIfields terminated by ','(marsr_id, tips,m_telpa,marsrutetajs column object(sdo_gtype constant 2003,sdo_elem_info varray count (constant 3) (x),sdo_ordinates varray count (constant 4) (y)))
1, SW 24, 1, 1,3,3, 35,80, 50,852, SW 48, 1, 1,3,3, 60,80, 75,854, Ugunsmūris, 1, 1,3,3, 75,95, 95,100
Attēls Nr. 2-37
insert into MARSRUTETAJI values (3, mdsys.sdo_geometry (2003,null, null, mdsys.sdo_elem_info_array (1,3,1),mdsys.sdo_ordinate_array (100,70, 100,75, 102.5,75, 102.5,77.5, 112.5,77.5, 112.5,75, 115,75, 115,70, 100,70)), 'Optika', '1');
Attēls Nr. 2-38
2.5.7. Kabeļi
insert into KABELI values (1, mdsys.sdo_geometry (2002, // 2 dimensiju līniju segmentinull, null, mdsys.sdo_elem_info_array (1,2,1), // taisnu līniju segmentsmdsys.sdo_ordinate_array (67.5, 85, 67.5, 90, 90, 90, 90, 95)), 'Vītais pāris', '1');
insert into KABELI values (2, mdsys.sdo_geometry (2002, null, null, mdsys.sdo_elem_info_array (1,2,1),mdsys.sdo_ordinate_array (42.5, 85, 42.5, 92.5, 80, 92.5, 80, 95)
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 26
), 'Vītais pāris', '1');
insert into KABELI values (3, mdsys.sdo_geometry (2002, null, null, mdsys.sdo_elem_info_array (1,2,1),mdsys.sdo_ordinate_array (107.5, 77.5, 107.5, 97.5, 95, 97.5)), 'Vītais pāris', '1');
insert into KABELI values (4, mdsys.sdo_geometry (2002, null, null, mdsys.sdo_elem_info_array (1,2,1),mdsys.sdo_ordinate_array (42.5, 70, 42.5,80)), 'Vītais pāris', '1');
insert into KABELI values (5, mdsys.sdo_geometry (2002, null, null, mdsys.sdo_elem_info_array (1,2,1),mdsys.sdo_ordinate_array (67.5,70, 67.5, 80)), 'Vītais pāris', '1');
insert into KABELI values (6, mdsys.sdo_geometry (2002, null, null, mdsys.sdo_elem_info_array (1,2,1),mdsys.sdo_ordinate_array (52.5, 40, 52.5,62.5, 45, 62.5)), 'Elektro', '1');
insert into KABELI values (7, mdsys.sdo_geometry (2002, null, null, mdsys.sdo_elem_info_array (1,2,1),mdsys.sdo_ordinate_array (42.5, 25, 42.5,50)), 'Elektro', '1');
insert into KABELI values (8, mdsys.sdo_geometry (2002, null, null, mdsys.sdo_elem_info_array (1,2,1),mdsys.sdo_ordinate_array (57.5, 40, 57.5,62.5, 65, 62.5)), 'Elektro', '1');
insert into KABELI values (9, mdsys.sdo_geometry (2002, null, null, mdsys.sdo_elem_info_array (1,2,1),mdsys.sdo_ordinate_array (67.5, 50, 67.5,20, 55, 20)), 'Elektro', '1');
insert into KABELI values (10, mdsys.sdo_geometry (2002, null, null, mdsys.sdo_elem_info_array (1,2,1),mdsys.sdo_ordinate_array (102.5, 30, 102.5, 17.5, 55, 17.5)
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 27
), 'Elektro', '1');
insert into KABELI values (11, mdsys.sdo_geometry (2002, null, null, mdsys.sdo_elem_info_array (1,2,1),mdsys.sdo_ordinate_array (35,82.5, 25, 82.5, 25, 35, 45, 35)), 'Elektro', '1');
insert into KABELI values (12, mdsys.sdo_geometry (2002, null, null, mdsys.sdo_elem_info_array (1,2,1),mdsys.sdo_ordinate_array (75,82.5, 85, 82.5, 85, 22.5, 55, 22.5)), 'Elektro', '1');
insert into KABELI values (13, mdsys.sdo_geometry (2002, null, null, mdsys.sdo_elem_info_array (1,2,1),mdsys.sdo_ordinate_array (92.5,95, 92.5, 35, 65,35)), 'Elektro', '1');
insert into KABELI values (14, mdsys.sdo_geometry (2002, null, null, mdsys.sdo_elem_info_array (1,2,1),mdsys.sdo_ordinate_array (107.5,70, 107.5,65, 135,65)), 'Optika', '1');
2.5.8. Klimata iekārtas
ctl.faila satursCTL4_Klimata_iekartas.ctl
.dat faila satursDAT4_Klimata_iekartas.dat
load datainfile 'DAT4_Klimata_iekartas.dat'into table KLIMATA_IEKARTASfields terminated by ','(kl_iek_id, modelis,ki_telpa,kl_iek column object(sdo_gtype constant 2003,sdo_elem_info varray count (constant 3) (x),sdo_ordinates varray count (constant 4) (y)))
1, eXtremate_KRF2_5W, 1, 1,3,3, 55, 115, 70, 1202, eXtremate_KRF50WZBP, 1, 1,3,3, 110, 115, 125, 120
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 28
Attēls Nr. 2-39
2.5.9. Piekļuves kontroles
Failā geometry_Piekluves_kontroles.sql saglabāju sekojošas insert komandas tabulas PIEKLUVES_KONTROLES aizpildīšanai. insert into PIEKLUVES_KONTROLES values (1, mdsys.sdo_geometry (2003,null, null, mdsys.sdo_elem_info_array (1,3,1, 11,3,1),mdsys.sdo_ordinate_array (20,110, 25,115, 30,110, 25,105, 20,110, 22.5,110, 25, 112.5, 27.5, 110, 25,107.5, 22.5,110)), 'Kustibu_sensors', '1');insert into PIEKLUVES_KONTROLES values (2, mdsys.sdo_geometry (2003,null, null, mdsys.sdo_elem_info_array (1,3,1),mdsys.sdo_ordinate_array (122.5,30, 115, 37.5, 117.5, 40, 125, 32.5, 122.5,30)), 'Video kamera', '1');
Izsaucu failā geometry_Piekluves_kontroles.sql esošo komandu izpildi, norādot @geometry_Piekluves_kontroles .
Attēls Nr. 2-40
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 29
3. Indeksi
Telpiskie dati tiek glabāti tabulās ar kolonnas tipu SDO_GEOMETRY. Lai datus ielādētu jāveic sekojošas darbības:
1) datu ielāde kolonnā ar tipu SDO_GEOMETRY;2) telpisko indeksu izveidošana kolonnām ar tipu SDO_GEOMETRY.
Kad dati ir ielādēti telpiskās tabulās, nepieciešams izveidot telpisko indeksu, lai efektīvi piekļūtu un strādātu ar datiem. To realizē pārklājot ģeometrijas ar dakstiņiem (tile).
Mazāka izmēra fiksētie dakstiņi un vairāk mainīga izmēra dakstiņu nodrošina labākas ģeometriju aproksimācijas (tuvinājumus). Jo lielāks fiksēto dakstiņu izmērs, un jo mazāks mainīga izmēra dakstiņu skaits, jo rupjākas aproksimācijas.
Telpiskais indekss nodrošina mehānismu, kas ļauj ierobežot meklēšanas procesu tabulās (vai datu telpās), šis mehānisms balstās uz telpiskiem kritērijiem –krustošanos, ietvērumu. Telpiskais indekss ir vajadzīgs lai:
1) atrastu objektus indeksētā datu telpā, kas daļēji nosedz doto punktu vai interešu lauku (loga vaicājums – window query);
2) atrastu objektu pārus indeksētā datu telpā, kas telpiski savstarpēji mijiedarbojas (spatial join – telpiskais savienojums).
Fiksēta indeksēšana – ar nenulles SDO_LEVEL vērtību un nulles SDO_NUMTILES vērtību. Fiksēta izmēra dakstiņu telpiska indeksēšana ir atzīta par labāko indeksēšanas metodi relāciju modelim. Šī metode izmanto vienāda izmēra dakstiņus lai apklātu ģeometriju. Tādēļ, ka visiem dakstiņiem ir vienāds izmērs, visiem ir vienāds garuma kods, un var izmantot SQL standarta vienādības operatoru (=), lai salīdzinātu tos savienošanas operācijas laikā.
Hibrīdveida indeksēšana – ar nenulles SDO_LEVEL vērtību un nenulles SDO_NUMTILES vērtību. Šī ir labāka indeksēšanas metode objektu – relāciju modelim. Ja tā ir izpildīta korekti, tad tā nodrošinās labāko selektivitāti un telpiskos sakarus, palielinot darba efektivitāti ar telpiskiem datiem. Hibrīda indeksēšana izmanto fiksēta un mainīga izmēra dakstiņu kombinācijas. Katrai ģeometrijai jāizvēlas fiksēta izmēra dakstiņu kopu, kas pilnīgi apklāj ģeometriju, un mainīga izmēra dakstiņu kopu, kas arī pilnīgi apklāj ģeometriju.
R – tree ļauj indeksēt telpiskos datus līdz pat četrām dimensijām quadtree indexing (fiksētie un hibrīdie indeksi) atbalsta tikai 2 dimensijas. R-tree indeksu veidošanai nav jāievada parametri SDO_LEVEL un SDO_NUMTILES. Šeit indekss aproksimē katru ģeometriju ar mazāko tā iespējamo robežu MIR (minimālais ierobežojuma rādiuss) vai Minimum Bounding Rectangle – MBR).
Ņemot vērā norādīto, kā arī praktiskajā darbā veidoto ģeometriju īpatnības nolēmu veidot attiecīgos indeksus sekojošām ģeometriju tabulām:
1) Fiksētie indeksi – tabulu TELPAS, KLIMATA_KONTROLES, KLIMATA_IEKARTAS ģeometrisko objektu kolonnām.
2) Hibrīdie indeksi – tabulu UGUNSDROSIBAS_IEKARTAS, MARSRUTETAJI, ELEKTRO_IEKARTAS ģeometrisko objektu kolonnām.
3) R-tipa koka indeksi – tabulu PIEKLUVES_KONTROLES, KABELI, SERVERI ģeometrisko objektu kolonnām, atbilstoši – piek_k, kabelis un serveris.
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 30
Saglabāju indeksu kodu .sql failā index_9_TABLES.sql.
create index ind_telpas on TELPAS (telpa)indextype is mdsys.spatial_index parameters ('sdo_level=4');create index ind_piekluve on PIEKLUVES_KONTROLES (piek_k)indextype is mdsys.spatial_index;create index ind_klimats_i on KLIMATA_IEKARTAS (kl_iek)indextype is mdsys.spatial_index parameters ('sdo_level=4');create index ind_kabeli on KABELI (kabelis)indextype is mdsys.spatial_index;create index ind_marsrutetaji on MARSRUTETAJI (marsrutetajs)indextype is mdsys.spatial_index parameters ('sdo_level=4, sdo_numtiles=4');create index ind_serveri on SERVERI (serveris)indextype is mdsys.spatial_index;create index ind_klimats_k on KLIMATA_KONTROLES (kl_kontrole)indextype is mdsys.spatial_index parameters ('sdo_level=4');create index ind_elektro on ELEKTRO_IEKARTAS (iel_iek)indextype is mdsys.spatial_index parameters ('sdo_level=4, sdo_numtiles=4');create index ind_ugunsdrosiba on UGUNSDROSIBAS_IEKARTAS (ug_iek)indextype is mdsys.spatial_index parameters ('sdo_level=4, sdo_numtiles=4');
Izsaucu sql. faila izpildi:
Attēls Nr. 3-41
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 31
4. Ģeometriskās datu bāzes ģeometriju vizualizēšana
Lai veiktu tabulās ievadīto grafisko objektu vizualizēšanu, izmantošu SQL Developer spraudni (PlugIn) Oracle GeoRaptor.
Sākotnēji instalēju SQL Developer, kas ļoti atvieglo arī darba procesu un manipulācijas ar datu bāzes objektiem. Tā instalāciju ņēmu saitē http://datubaze.wordpress.com/macibu-kursi/db3/macibu-materiali-prieksmeta-progresivas-datu-bazesdb3/programmatura-sql-developer/, taču tā ir pieejama arī Oracle mājas lapā, saitē http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html.
GeoRaptor spraudni instalē, SQL Developer izvēlnē Help izvēloties opciju Search For Updates, un pievienojot: Add, Name: GeoRaptor, Source: http://georaptor.sourceforge.net/install.xml.
Lai veiktu ģeometrisko datu vizualizēšanu, nepieciešams izvēlēties vajadzīgos objektus (tabulas, vai skatus) datu bāzes menedžerī. Tad tos pievieno Telpiskajam skatam (jeb – kartei): GeoRaptor->Add to Map.
Attēlā Nr.4-1 ir parādīts, kā objektu ar ģeometriskajiem datiem var pievienot šai kartei.
Attēls Nr. 4-42
Izmantojot View izvēlni iespējams pieslēgties šim skatam, ja tas ticis aizvērts View->GeoRaptor->Open Map. (Attēls Nr.4-2).
Attēls Nr. 4-43
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 32
GeoRaptor telpiskajā skatā pastāv daudz iespēju manipulēt ar vizualizācijām un
to noformējumu. Katru pievienoto slāni var „izslēgt” no kopējā skata. Atjaunojot skatu,
attiecīgā slāņa vizuālais attēls nebūs apskatāms, (Attēls Nr.4-3).
Attēls Nr. 4-44
Rīku joslā ir opcijas, kas ļauj:
1) dažādos veidos apskatīt vizualizēto attēlu (pietuvināt; attālināt;
pietuvināt izvēlētu apgabalu, izmantojot taisnstūri; pārvietot attēlu
vēlamā virzienā; atjaunot karti, ņemot vērā izvēlēto slāņu izmaiņas;
pārvietoties uz priekšu un atpakaļ starp veiktajām izmaiņām skatā);
2) izmērīt ģeometriju aplis, poligons, taisnstūris laukumu vai ģeometrijas
līnija garumu izmantojot: izmantojot līniju, poligonu, apli un taisnstūri,
garumu un laukumu.
– Lai izvēlētos nepieciešamo mērījuma tipu, nepieciešams sākotnēji
izvēlēties kādu no opcijām: Measure Shape, Line. Polygon, Circle vai
Rectangle.
– Lai uzsāktu un pabeigtu mērījumu, grafiskajā skatā nepieciešams
pārmaiņus operēt ar labo un kreiso peles taustiņiem. Šī informācija
lietotājam tiek „pateikta priekšā”, piemēram līnijas mērīšanai (Line):
Left-click to start (kreisais taustiņš, lai uzsāktu mērījumu)
, un Left-click next point. Right-click finishes (kreisais
taustiņš – nākošais punkts . Labais
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 33
taustiņš – noslēgt mērījumu). Pēc mērījuma noslēgšanas, iepriekšējo
norādījumu vietā tiek parādīts mērījuma rezultāts: .
Pie attēla ir pievienots mērogs, kas palīdz noteikt izmērus redzamajiem objektiem, (Attēls Nr.4-4). Attālums tiek rādīts metros un tiek balstīts uz ievadītajām vērtībām. Tas nozīmē, ka GeoRaptor, pēc noklusējuma, visas vērtības uzskata par metriem. To ir jāņem vērā, jo var būt, ka ievadītas vērtības bija ar citiem mērvienībām.
Attēls Nr. 4-45
Vizualizējot izveidotos slāņus, sākotnēji iegūstu sekojošu attēlu, (Attēls Nr.4-5). Šajā attēlā pie katras atjaunošanas, nejaušā kārtībā tiek mainītas visu ģeometriju krāsas. Tas var būt diezgan kaitinoši, tāpēc meklēju iespējas, kā definēt patstāvīgas krāsas.
Attēls Nr. 4-46
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 34
Konstatēju, ka jebkuram slānim ir iespējams veidot individuālus iestatījumus:
Izvēlēties slāni->Properties, kas ietver arī krāsu ar Fill (Attēls Nr.4-6), un kontūrlīniju
ar Stroke maiņu, Taču bez tā, pastāv iespēja pievienot arī ģeometriju aprakstus ar
Labelling, kā arī veikt rindu citu darbību.
Attēls Nr. 4-47
Attēls Nr. 4-48
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 35
Pēc attēla iestatījumu apstrādes, ģeometrija izskatās sekojoši, (Attēls Nr.4-8).
Attēls Nr. 4-49
Kad kursors atrodas virs ģeometriskā attēla, tiek uzrādītas tā atrašanās vietas x un y koordinātas (Attēls Nr.4-9), kas var palīdzēt ērtāk plānot attēlu, jo liek noprast – kādas koordinātas jāievada ģeometriskajās datu tabulā.
Attēls Nr. 4-50
GeoRptor nodrošina ērtas iespējas veidot telpiskos vaicājumus, nesastādot SQL, bet gan uzzīmējot vaicājumu ar peles palīdzību. Izvēlamies slāni -> Lbais taustiņš->Spatial Query->Rectangle->AYINTERRACT-> Iezīmējam izvēlēto laukumu, (Attēls Nr.4-10). Vaicājuma rezultātā tiks atlasīti vis Maršrutētāju slāņa objekti, kas kaut kādā veidā saskaras ar novilkto taisnstūri.
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 36
Attēls Nr. 4-51
Vaicājuma logā ir iespēja to izmainīt. Kad vaicājums gatavs apstiprinu tā izpildi ar Execute.
Rezultātā slāņu kokā parādās vēl viens elements (attiecīgā vaicājuma rezultāts), un šis rezultāts tiek vizualizēts ar noklusēto vai uzstādīto iezīmēšanas krāsu, (Attēls Nr.4-11).
Attēls Nr. 4-52
Turpmāk darbā veidošu vaicājumus manuāli, neizmantojot šīs automatizētās iespējas.
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 37
4.1. Vaicājumu rezultātu vizualizēšanas iespējas
Pirms sāku aprakstīt vaicājumus, vēlos īsi izstāstīt par vaicājumu vizualizēšanas iespējām ar izvēlēto rīku.
GeoRaptor ietvaros vaicājumu var vizualizēt izveidojot skatu (view). Uzsākot skatu veidošanu, ieguvu kļūdu „SQL Error: ORA-01031: insufficient privileges”. Sapratu, ka esošajām lietotājam SCOTT nav nepieciešamās privilēģijas (tiesības), lai veidotu skatus. Sākotnēji mēģināju ar GRANT komandas palīdzību šīs tiesības piešķirt, taču saņēmu to pašu kļūdu. Šī kļūda radās, jo, lai šis tiesības piešķirtu, bija nepieciešams autorizēties ar SYSTEM lietotāju. Kad to izdarīju, tiesību piešķiršana noritēja veiksmīgi.
Attēls Nr. 4-53
Kā pirmo, mēģināšu vizualizēt vaicājumu ar SDO_EQUAL – kur divām ģeometrijām ir vienādas robežas un iekšienes. Kā minēts iepriekš, šajā vaicājumā noskaidroti – klimata kontroles objekti, kuru koordinātes sakrīt ar taisnstūra objekta koordinātām p1= 95,30 p2=110,35.
Sākumā no vaicājuma tiek izveidots skats. To var izdarīt izmantojot SQL Developer grafiskos rīkus. Connections kokā uz Views nospiežam New View, un atvērtajā grafiskajā logā iekopējam (vai ierakstām) vajadzīgo SQL:
Attēls Nr. 4-54
Zem DDL varam atrast mūsu jaunizveidotā skata kodu. Pēc apstiprināšanas tas parādās Views kokā. Lai vizualizētu attiecīgā vaicājuma rezultātu, nepieciešams to pievienot Spatial View, identiski, kā tas tika darīts ar ģeometriju tabulām.
Lai vizualizētu vaicājumus no skatiem, šiem vaicājumiem SELECT daļā obligāti jāsatur ģeometriskā objekta kolonna. Pretējā gadījumā tiks atgriezta kļūda:
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 38
Attēls Nr. 4-55
Veiksmīgas vaicājumu rezultātu vizualizēšanas nolūkā pievienoju šīs kolonnas vaicājumiem, tieši vizualizēšanas etapā.
CREATE OR REPLACE VIEW TOPOL_2_EQUAL AS SELECT a.kl_kontrole_id, a.kontrole, a.kl_kontrole FROM klimata_kontroles aWHERE mdsys.SDO_EQUAL(a.kl_kontrole,
mdsys.sdo_geometry (2003, null, null, mdsys.sdo_elem_info_array (1,3,3), mdsys.sdo_ordinate_array (95,30,110,35))) ='TRUE';
Lai kopējā ģeometriju kartē izceltu atlasīto rezultātu, var izņemt atzīmes pie visu objektu radio pogām, atstājot iezīmētu vizualizēšanai tikai izvēlēto skatu. Tādejādi vizualizēšanas logā redzēsim tikai konkrēto vaicājuma rezultātu (Attēls Nr.4-9).
Attēls Nr. 4-56
Taču, manuprāt, interesantāk ir redzēt vaicājuma rezultāta attēlojumu kopējā ģeometriju kartē tāpēc – pievienotajam vaicājuma rezultāta skatam aktivizēju rezultāta iezīmēšanas opciju spilgti dzeltenā krāsā.
Attēls Nr. 4-57
Tagad rezultāts ģeometriju kartē tiek marķēts spilgti dzeltenā krāsā:
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 39
Attēls Nr. 4-58
Šādi rezultātus, pie katra no vizualizētajiem skatiem, atspoguļošu arī turpmāk.
4.2. Vaicājumi
Lai risinātu telpiskos vaicājumus un savienojumus, tiek izmantots two-tier vaicājuma modelis. Šīs jēdziens tiek lietots, lai apzīmētu divas atšķirīgas operācijas, kas tiek izpildītas, risinot vaicājumus. Abu operāciju izvade dod konkrētu rezultātu kopu. Operācijas ir nosauktas par primāro un sekundāro filtru:
1) Primārais filtrs nodrošina vajadzīgo ierakstu ātro iezīmēšanu un nodot tos sekundāram filtram. Primārais filtrs salīdzina ģeometriju aproksimācijas (tuvinājumus), lai samazinātu skaitļošanas sarežģītību un izdevumus. Tā kā primārais filtrs salīdzina ģeometriju aproksimācijas (tuvinājumus), tas atgriež rezultējošās kopas superkopu.
2) Sekundārais filtrs nodrošina ģeometriju konkrētus aprēķinus, kas nāk no primāra filtra. Sekundārais filtrs dod precīzu atbildi uz telpisko vaicājumu. Sekundārā filtra operācija ir apjomīga izskaitļošanā, bet to pielieto tikai primārā filtra rezultātiem, nevis visai datu kopai. (Avots: CD materiāli - 3_Geom_DB_realiz_apraksts.doc) 4.2.1. Primārā filtra vaicājumi (2)
SDO_FILTER ir primārā filtra operators. Tas nosaka vai ģeometrijas ir saistītas ar noteiktu telpas apgabalu (tas tiek definēts arī ar ģeometriju).
4.2.1.1. Ģeometrijas izvēlētajā atlases logā. Veikt ģeometriju atlasi, kurām vismaz kāda daļa ietilpst atlases logā (30,30) , (90,90).
SELECT a.marsr_id, a.tipsFROM MARSRUTETAJI aWHERE SDO_FILTER (a.marsrutetajs, SDO_GEOMETRY(2003, NULL, NULL, SDO_ELEM_INFO_ARRAY(1,1003,3), SDO_ORDINATE_ARRAY(30,30, 90,90)) ) = 'TRUE';
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 40
Attēls Nr. 4-59
Pievienoju vaicājuma SELECT daļā grafiskā objekta kolonnu a.marsrutetajs, tad izveidoju skatu un vizualizēju to (rezultāts – spilgti dzeltenie objekti.)
Attēls Nr. 4-60
4.2.1.2. Saistītās ģeometrijas. Veikt ģeometriju atlasi no tabulas KABEĻI, kuras jebkurā veidā ir saistītas ar ģeometrijām tabulā ELEKTRO_IEKARTAS
SELECT /*+ ORDERED */ c.kabelis_id, c.veidsFROM ELEKTRO_IEKARTAS b, KABELI c WHERE SDO_FILTER(c.kabelis, b.iel_iek) = 'TRUE';
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 41
Attēls Nr. 4-61
4.2.2. Topoloģiju analīzes vaicājumi (4)
4.2.2.1. SDO_TOUCH – Viens objekts robežojas ar otru.Šajā vaicājumā noskaidrosim – kādi kabeļi pievienoti vienam no maršrutētājiem. Izgūsim ziņas par maršrutētāja ID un veidu, kā arī tam pievienoto kabeļu ID un veidu
Attēls Nr. 4-62
4.2.2.2. SDO_CONTAINS – viena objekta robeža un iekšiene pilnīgi atrodas cita objekta iekšienē. Šajā vaicājumā noskaidrosim – kādas elektroiekārtas (barošanas bloki) atrodas DB serverī. Izgūsim ziņas par elektroiekārtas (barošanas bloka) ID un tipu.
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 42
Attēls Nr. 4-63
SELECT b.el_iek_id, b.tips FROM serveri a, elektro_iekartas b WHERE servera_id='1' and SDO_CONTAINS (a.serveris, b.iel_iek ) = 'TRUE';
4.2.2.3. SDO_INSIDE – viens objekts pilnīgi atrodas cita objekta iekšienē. Šajā
vaicājumā noskaidrosim – kurā serverī atrodas ceturtais barošanas bloks.
Attēls Nr. 4-64
4.2.2.4. SDO_EQUAL – divām ģeometrijām ir vienādas robežas un iekšienes. Šajā vaicājumā noskaidrosim – klimata kontroles objektus, kuru koordinātes sakrīt ar taisnstūra objekta koordinātām p1= 95,30 p2=110,35 .
Attēls Nr. 4-65
Pievienoju vaicājuma SELCT daļā grafiskā objekta kolonnu a.kl_kontrole, tad izveidoju skatu un vizualizēju to (rezultāts – spilgti dzeltenais objekts).
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 43
Attēls Nr. 4-66
4.2.3. Ģeometriju skaitlisko raksturojumu iegūšanas vaicājumi (4)
4.2.3.1. Maršrutētājam pievienoto kabeļu ģeometrija. Tiek pieprasīti to kabeļu ģeometriju tipi, kuri pievienoti konkrētam maršrutētājam. Izvadīti attiecīgo kabeļu ID un ģeometrijas skaitliskā vērtība.
Attēls Nr. 4-67
4.2.3.2. Poligonu koordinātes. Tiek izvadītas visas ugunsdrošības iekārtu koordinātes, kuru ģeometrijas tips ir poligons.
Attēls Nr. 4-68
4.2.3.3. Objektu kolonnas saturs. Tiek izvadīta skaitliskā informācija par dūmu detektoru ģeometrijām. Tiek izgūts visas objektu kolonnas saturs.
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 44
Attēls Nr. 4-69
4.2.3.4. Elementu masīva vērtības. Tiek izvadīta skaitliskā informācija par ugunsdrošības iekārtu ģeometrijām. Tiek izgūtas ģeometriju elementu masīva skaitliskās vērtības – dati par salikto poligonu segmentiem, kā arī ģeometriju nosaukumi.
Attēls Nr. 4-70
4.2.4. Atributīvo datu izgūšanas vaicājumi (3)
4.2.4.1. Viena tipa kabeļu kopskaits serveru telpāNoskaidrot kādi kabeļu veidi tiek izmantoti izvēlētajā telpā, sagrupēt tos pa veidiem un saskaitīt.
Attēls Nr. 4-71
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 45
4.2.4.2. Elektro iekārtas ar izvēlēto jaudas lielumu
Vaicājums atlasa elektroiekārtu tipus (ne-konkrētas unikālas iekārtas), kuru jauda ir 100W.
Attēls Nr. 4-72
4.2.4.3. Jauda, kas 2x lielāka par visu iekārtu kopējo vidējo jaudu
Vaicājums atrod vidējo aritmētisko jaudu tabulā JAUDAS (t.i.333,33), sareizina to ar 2 (666.67) un atgriež tās jaudas no tabulas JAUDAS, kuras ir lielākas par šo reizinājumu.
Attēls Nr. 4-73
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 46
4.2.5. Ģeometriju ģeometrisko datu iegūšanas vaicājumi (4)
4.2.5.1. Funkcija SDO_GEOM.VALIDATE_GEOMETRY. Lai pārbaudītu ievadīto ģeometrisko datu korektumu, veikšu sekojošus vaicājumus. Vaicājums salīdzinās slāņu tabulā esošo ģeometriju ar informāciju, kas atrodas ģeometrisko objektu metadatu tabulā, ja nav pieļautas kļūdas tad lauka „Vai_pareizs” vērtība pie katras salīdzināšanas pieņem vērtību TRUE, pretējā gadījumā, tiek izvadīta skaitļu virkne.
Attēls Nr. 4-74
Attēls Nr. 4-75
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 47
4.2.5.2. Funkcija SDO_GEO.AREA – kas aprēķina divu dimensiju poligona laukumu. Izmērām laukumu sarežģītākajām ģeometrijām – tām, kas ietvertas Ugunsdrošības iekārtu slānī.
Attēls Nr. 4-76
4.2.5.3. Funkcija SDO_GEO.DISTANCE –kas aprēķina attālumu starp diviem ģeometriskiem objektiem. Izmērīšu attālumu starp ugunsdrošības iekārtu Nr.3 (ugunsdzēšamais aparāts) un Datu bāzes serveri.
Attēls Nr. 4-77
4.2.5.4. Funkcija SDO_GEO.LENGTH – kas aprēķina ģeometriskā objekta garumu vai perimetru. Izmērīšu visu kabeļu garumu
Attēls Nr. 4-78
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 48
Secinājumi
Sākšu ar to, ka pēdējo reizi ar Oracle un SQL nodarbojos pirms 5 gadiem, tāpēc, lai uzsāktu praktiskā darba gatavošanu, nācās kārtīgi izstudēt un atgādināt sev daudzus pamata jautājumus, sākot ar SQL sintaksi līdz pat Oracle instalēšanai, un vienkāršiem vārdiem runājot – atkārtot, kas ir kas. Lai to paveiktu, izmantoju gan interneta resursus, gan arī http://datubaze.wordpress.com/ materiālus par DB2 un pat DB1 kursu, kā arī CD ar lekciju materiāliem. Šeit jāsaka, ka ļoti priecājos par labi sagatavotiem un strukturētiem materiāliem šajā mācību priekšmetā, tajos atradu daudzas atbildes uz saviem jautājumiem.
Ārpus uzstādītajiem uzdevumiem, kas norādīti sadaļā Darba uzdevums, praktiskā darba ietvaros:
1) veicu vides sagatavošanu: Oracle 10g, SQL Developer, GeoRaptor instalācijas;2) veicu paredzētās datu struktūras projektēšanu (skicēšanu) „uz papīra”;3) lasīju un analizēju informāciju internetā, lekciju pierakstos CD materiālos,
vietnēs http://datubaze.wordpress.com/, www.oracle.com, http://www.sql-plus.com, kā arī citos interneta resursos.
4) daudz laika veltīju neuzmanības kļūdu labošanai/atkļūdošanai.
Sākotnēji, instalējot Oracle 10g savā mājas datorā sastapos ar kļūmēm, kas neļāva instalāciju veiksmīgi realizēt un datora ātrdarbība ļoti būtiski kritās. Pieņēmu lēmumu veikt instalāciju citā, jaudīgākā datorā. Kopumā, instalēšana un mēģinājumi novērst šī procesa kļūmes, prasīja vismaz 2 reizes vairāk laika, nekā biju plānojusi tam veltīt.
Tā kā manā pamata darbā šobrīd vienlaicīgi tiek ieviestas 2 jaunas sistēmas un paralēli jāveic arī citi uzdevumi, tad brīva laika nav pat brīvdienās. Taču šo priekšmetu izvēlējos studēt mērķtiecīgi. Tas man šķiet ļoti saistošs un interesants, kā arī vēlos rast tajā apgūtā pielietojumu savā turpmākajā darbā. Sekojoši, nolēmu, ka pretēji jebkuram šķērslim, laiks ir jāatrod. Rēķinoties ar esošajiem apstākļiem, veicu praktiskā darba gatavošanu vēlu vakaros un naktīs, kas radīja koncentrēšanās trūkumu. Rezultātā tika pieļauts nesamērīgi daudz neuzmanības kļūdu, kuru labošanai bija nepieciešams papildus laiks ieplānotajam. Tas liek secināt, ka, līdzīgi kā programmatūras izstrādes projektos, nedrīkst par zemu novērtēt atkļūdošanai paredzamo laika resursu nepieciešamību.
Noteikto Darba uzdevumu apjoms sākotnēji rada mānīgu priekšstatu par paredzamo laiku veiksmīgai praktiskā darba izpildei. Jāsecina, ka ir ļoti būtiski ieplānot arī laika resursus nosaukto papildus darbību (vides sagatavošana, informācijas meklēšana un analīze, atkļūdošana, u.tml.) veikšanai.
Sākotnēji tabulu izveidošanu un aizpildīšanu veicu izmantojot Oracle Database utilītu SQL*Plus. Daudz ērtāk, ātrāk un pārskatāmāk būtu bijis izmantot Oracle integrēto izstrādes vidi SQL Developer, kas piedāvā rindu efektīvu izstrādes opciju.
Attēla sākotnējo skici veidoju manuāli „uz papīra”, kas, līdzīgi, prasīja laika resursus. Taču, jau sākotnēji zinātot izvēlētā vizualizēšanas rīka ērtās funkcijas, ar kurām iespējams:
1) novietojot kursoru skatā – un automātiski redzēt x un y koordinātas, 2) ērti (zīmējot ar peli) veidot ģeometrijas, automātiski iegūstot SQL kodu.
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 49
lielu daļu iedomāto ģeometrijas objektu datu varētu sagatavot bez šī starpposma – skices projektēšanas. Šajā gadījumā es vizualizētu tikai telpas koordinātes un pārējos objektus un to datus varētu aprakstīt izmantojot šo opciju. Šāda pieeja būtu ietaupījusi laiku. Tomēr, jāsecina, ka manis izvēlētais garais ceļš ir ļāvis labāk iepazīt grafisko objektu veidošanas sintaksi no pamatiem.
Ņemot vērā minēto, secinu, ka veicot jebkuru darbu ar datubāzēm vienmēr ir jādomā līdzi – kā veicamās darbības (izstrādi, datu apstrādi, u.tml.) var optimizēt. Ja min piemēru no dzīves par auto vadīšanas apmācību, var teikt, ka mācību procesā labāk būtu braukt ar mehānisko ātrumkārbu, kas pretstatā automātiskajai, ļauj apgūt auto darbību pamatīgāk un perspektīvā ļauj saprast problēmu cēloņus. Līdzīgi, kā DB izstrādē labāk sākotnēji izmantot utilītu SQL*Plus, pretstatā SQL Developer attīstītajām iespējām, kas ļoti atvieglo tā lietotāja darbu.
Taču reālā dzīvē, kur ir svarīgi izvairīties no kļūmēm, veikt darbu ātri un efektīvi, ierobežotos projektu termiņos, noteikti jādomā par specializētu rīku, iespēju un metožu, tādu kā SQL*Loader efektīvākai datu ielādei, SQL Developer – izstrādei, pielietošanu.
Noslēgumā varu teikt, ka katra darba posma izpilde man virzījās lēni, taču praktiski esmu tikusi galā ar visiem uzdevumiem. Esmu atgādinājusi sev būtiskas lietas, kas bija aizmirstas šo 5 gadu laikā, kā arī – esmu iemācījusies telpiskās datu bāzes veidošanas pamatus. Grafiskās daļas izpilde rada vēlēšanos pētīt šīs iespējas pamatīgāk, un, mēģināt realizēt sarežģītākas ģeometrijas (varbūt 3D) ar reālu pielietojumu. Būtu ļoti interesanti apskatīt, kā ģeometriskās datu bāzes pielieto kādā organizācijā tepat Latvijā.
Paldies par Spatial lekciju kursu un pasniegšanas pieeju, kas motivē mācīties!
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 50
Literatūra un resursi
1. Oracle Database utilītas SQL*Plus iespējas – http://www.sql-plus.com/sql-plus-set-commands.php
2. Kursa materiāli un paraugi – http://datubaze.wordpress.com/3. Oracle 10g instalācijas CD4. DB3_1 kursa materiālu CD5. GeoRaptor - http://sourceforge.net/apps/mediawiki/georaptor/index.php?
title=Main_Page, http://heanet.dl.sourceforge.net/project/georaptor/Spatial%20View.pdf.
6. SQL un funkciju sintakse – http://docs.oracle.com/cd/A87860_01/doc/inter.817/a85337/sdo_objg.htm#863674
7. SQL un vaicājumu sintakse – http://msdn.microsoft.com/en-us/library/aa259171%28v=sql.80%29.aspx
8. SQL Developer – http://datubaze.wordpress.com/macibu-kursi/db3/macibu-materiali-prieksmeta-progresivas-datu-bazesdb3/programmatura-sql-developer/, http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html.
Ģeometrisko (Spatial) datu DB – 1.praktiskais darbs Page 51