Prostorové databáze PDB demonstrační cvičení Oracle

Slides:



Advertisements
Podobné prezentace
Aplikační a programové vybavení
Advertisements

SQL Další dotazy a pohledy
Základy jazyka SQL Jan Tichava
Zpracování SQL Lubomír Andrle 5. přednáška
SQL: DDL v ORACLE CREATE TABLE jméno_tabulky (atribut datový_typ [DEFAULT][attribut_constraint] [, atribut datový_typ [DEFAULT] [attribut_constraint]],...
Aplikační a programové vybavení
Jazyk SQL Ing. Zdena DOBEŠOVÁ. SQL Structured Query Language 1974 SEQUEL (Structured English Query Language) neprocedurální relační dotazovací jazyk norma.
LOV, Listbox, Poplist a Combobox v Oracle Forms LOV – seznam hodnot, které se zobrazí po stisku klávesy Enter v textovém poli. LOV – seznam hodnot, které.
 Informací se data a vztahy mezi nimi stávají vhodnou interpretací pro uživatele, která odhaluje uspořádání, vztahy, tendence a trendy  Existuje celá.
DB1 – 9. cvičení Optimalizace dotazu Konkurenční přístup a deadlock Indexace Transakce.
Fakulta elektrotechniky a informatiky
Analytické nástroje GIS
Informační systémy Realizace uložených procedur a spouští, jejich praktické využití.
Informační systémy Nástroje pro sběr dat, návrh a realizace databáze.
Další dotazy SQL Structured Query Language. Některé SQL příkazy mohou mít v sobě obsaženy další kompletní příkazy SELECT. Využijeme je tam, kde potřebujeme.
Informatika pro ekonomy II přednáška 11
Databázové systémy 1 Cvičení č. 2 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Databázové systémy II Přednáška č. 6 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Fakulta elektrotechniky a informatiky
Temporální databáze a TSQL
Radek Špinka Přepínače MSSQL výběr.
MySQL - Vytvoření nové tabulky  create table jméno_tabulky (jméno_položky typ_položky,... ) Přehled nejběžnějších datových typů Přehled nejběžnějších.
Databázové systémy II Přednáška č. 8 – Pohledy (Views)
EKO/GISO – Modely prostorových dat.  Mnoho definic - jedno mají společné – Gisy pracují s prostorovými daty  Minimální GIS vždy spojuje databázi, prostorové.
Školení správců II. Petr Pinkas RNDr. Vít Ochozka.
Analýza dat v GIS Dotazy na databáze Překrytí – Overlay Mapová algebra
Databázové systémy teorie a návrh relačních databázových systémů část II.
Relační databáze.
Aplikační a programové vybavení
SQL – základní pojmy Ing. Roman Danel, Ph.D.
SQL PVA Jan Hora. SQL „graficky“ Grafický vs. pravý SQL SELECT ORDED BY WHERE.
Rauer Luboš Kopic Petr Blažek Tomáš. Structured Query Language - dotazovací jazyk -> pracuje s dotazy - neprocedurální jazyk - mocný, ale přitom jednoduchý.
Unifikovaná architektura databáze Katsiaryna Chernik.
Číslo šablony: III/2 VY_32_INOVACE_P4_3.8 Tematická oblast: Aplikační software pro práci s informacemi II. Databáze – základy SQL Typ: DUM - kombinovaný.
Architektury a techniky DS Cvičení č. 9 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy II Cvičení č. 3 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Aplikační a programové vybavení
EKO/GISO – Prostorová analýza  Prostorová složka  lokace  tvar  vzájemné prostorové vztahy zPopisná složka yatributy Složky prostorové informace:
Databázové systémy 2 Zkouška – 12:00. Příklad I - Funkce Vytvořte funkci ZK_TRP_TREND(P_ID_TRPASLIKA IN NUMBER, P_DATUM_OD IN VARCHAR2, P_DATUM_DO.
Databázové systémy UIN010 N-ticový (řádkový) relační kalkul Hodnoty proměnných n-tice relací (řádky) Konstanty hodnoty atributů Unární funkční.
Informatika II PAA DOTAZOVACÍ JAZYKY
Databázové systémy 2 Zkouška – 8:00. Příklad I – Procedura – 5 bodů Vytvořte proceduru P_ZK2(p_table_name VARCHAR2, p_min_nuls NUMBER, p_drop.
Aplikační a programové vybavení
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B13 Autor Ing. Jiří Kalousek Období vytvoření březen.
Základní obeznámení s jazykem SQL Databázové systémy.
Databázové Aplikace Slidy ke cvičení DBI026, část 3 KSI MFF UK Verze
Prostorové dotazy.
Databázové systémy 2 Zkouška – 8:00. Příklad I - Funkce Vytvořte funkci ZK_DIFF_MIN_MAX (P_ZAM_ID NUMBER) RETURN VARCHAR2. Funkce může vracet.
Administrace Oracle Paralelní zpracování.
SQL Další dotazy a pohledy Databázové systémy. Některé SQL příkazy mohou mít v sobě obsaženy další kompletní příkazy SELECT. Využijeme je tam, kde potřebujeme.
Geografické informační systémy. Digitální mapy Rastrové obrázky (například Vektorové obrázky Geografické databáze.
Geografické informační systémy
Úvod do PostGIS Jan Ježek.
Databázové systémy I Cvičení č. 5 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
Geografické informační systémy. Atributová tabulka Otevření atributové tabulky Řádky v tabulce = jednotlivé záznamy (objekty) Sloupce v tabulce = atributy.
Databázové systémy přednáška 6 – Indexy
SQL – příkaz SELECT Ing. Roman Danel, Ph.D.
Databázové systémy a SQL
Dotazovací jazyk SQL - III
Dotazovací jazyk SQL I.
Databázové systémy a SQL
Databázové systémy a SQL
Databázové systémy a SQL
Databázové systémy a SQL
Databázové systémy a SQL
Přednáška 9 Triggery.
Databázové systémy a SQL
Databázové jazyky Jaroslav Pokorný FI BVŠP Bratislava
Databázové systémy a SQL
Transkript prezentace:

Prostorové databáze PDB demonstrační cvičení Oracle [ http://www.fit.vutbr.cz/~chmelarp/pdb/ ] [ http://www.fit.vutbr.cz/study/courses/PDB ]

Objekty v databázi CREATE TYPE Person AS OBJECT ( name VARCHAR(30), birthdate DATE, MEMBER FUNCTION getAge RETURN NUMBER ) NOT FINAL; CREATE TYPE Employee UNDER Person ( salary NUMBER, manager REF Employee, MEMBER PROCEDURE incrSalary (increment NUMBER) ); SELECT REF(p) INTO x FROM person_tab p WHERE ... … p.manager.name … ; [ Kuba ]

Objektově relační schizofrenie CREATE TABLE person_tab OF Person; INSERT INTO person_tab VALUES ( 'Jim Smith', '15 Jun 1965' ); INSERT INTO person_tab VALUES ( Person( 'Jim Smith', '15 Jun 1965‘ ) ); VALUES ( Employee( 'Jim Smith', '15 Jun 1965', 5000 ) );

Kolekce CREATE TYPE WeekDays AS VARRAY(7) OF VARCHAR(10); CREATE TYPE PhoneNumberTable AS TABLE OF PhoneNumber; CREATE TYPE Person AS OBJECT ( ... phoneNumbers PhoneNumberTable ); = CREATE TABLE person_tab OF Person NESTED TABLE phoneNumbers STORE AS phoneNumbers_tab;

Vytvoření tabulky Tabulka s metadaty Vložení metadat Vytvoření tabulky s prostorovými daty Vložení dat Vytvoření indexu [ http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14255.pdf ]

Tabulka s metadaty Nevytváří se, od verze 9.X.Y již součástí systému (pohled v MDSYS) CREATE TABLE USER_SDO_GEOM_METADATA ( TABLE_NAME VARCHAR2(30), COLUMN_NAME VARCHAR2(30), DIMINFO MDSYS.SDO_DIM_ARRAY, SRID zadává se NULL ); Listing Information about Schema Objects ALL_OBJECTS, USER_OBJECTS ALL_CATALOG, USER_CATALOG ALL_TABLES, USER_TABLES ALL_TAB_COLUMNS, USER_TAB_COLUMNS ALL_TAB_COMMENTS, USER_TAB_COMMENTS ALL_COL_COMMENTS, USER_COL_COMMENTS ALL_VIEWS, USER_VIEWS ALL_MVIEWS, USER_MVIEWS ALL_INDEXES, USER_INDEXES ALL_IND_COLUMNS, USER_IND_COLUMNS USER_CLUSTERS USER_CLU_COLUMNS ALL_SEQUENCES, USER_SEQUENCES ALL_SYNONYMS, USER_SYNONYMS ALL_DEPENDENCIES, USER_DEPENDENCIES

Vložení metadat Nutné zaregistrovat informace o tom, kde jsou prostorová data – neděje se automaticky, jako u relačních dat INSERT INTO USER_SDO_GEOM_METADATA VALUES ( 'TABULKA', 'geometrie', MDSYS.SDO_DIM_ARRAY( MDSYS.SDO_DIM_ELEMENT( 'X', 0, 400, 0.005 ), MDSYS.SDO_DIM_ELEMENT( 'Y', 0, 300, 0.005 ) ), NULL ); CREATE TABLE USER_SDO_GEOM_METADATA ( TABLE_NAME VARCHAR2(30), COLUMN_NAME VARCHAR2(30), DIMINFO MDSYS.SDO_DIM_ARRAY, SRID zadává se NULL );

Vytvoření tabulky Jméno a sloupec musí korespondovat s metadaty CREATE TABLE TABULKA ( jméno_věci VARCHAR2(32), geometrie MDSYS.SDO_GEOMETRY );

SDO_GEOMETRY Předdefinováno jako: CREATE TYPE SDO_GEOMETRY AS OBJECT ( SDO_GTYPE NUMBER, SDO_SRID NUMBER, SDO_POINT SDO_POINT_TYPE, SDO_ELEM_INFO MDSYS.SDO_ELEM_INFO_ARRAY, SDO_ORDINATES MDSYS.SDO_ORDINATE_ARRAY );

SDO_GTYPE 4 číslice: dltt d: dimenze (1-4 (2)) CREATE TYPE SDO_GEOMETRY AS OBJECT ( SDO_GTYPE NUMBER, SDO_SRID NUMBER, SDO_POINT SDO_POINT_TYPE, SDO_ELEM_INFO MDSYS.SDO_ELEM_INFO_ARRAY, SDO_ORDINATES MDSYS.SDO_ORDINATE_ARRAY ); 4 číslice: dltt d: dimenze (1-4 (2)) l: lineární reference (0) tt: typ (00-07) 00: neznámý 01: bod 02: úsečka / křivka 03: polygon 04-07: viz manuál

SDO_SRID Souřadný systém Euklidovský typicky NULL CREATE TYPE SDO_GEOMETRY AS OBJECT ( SDO_GTYPE NUMBER, SDO_SRID NUMBER, SDO_POINT SDO_POINT_TYPE, SDO_ELEM_INFO MDSYS.SDO_ELEM_INFO_ARRAY, SDO_ORDINATES MDSYS.SDO_ORDINATE_ARRAY ); Souřadný systém Euklidovský typicky NULL

SDO_POINT Objekt – bod X, Y, Z Jen pokud „l“ z GTYPE je 0 CREATE TYPE SDO_GEOMETRY AS OBJECT ( SDO_GTYPE NUMBER, SDO_SRID NUMBER, SDO_POINT SDO_POINT_TYPE, SDO_ELEM_INFO MDSYS.SDO_ELEM_INFO_ARRAY, SDO_ORDINATES MDSYS.SDO_ORDINATE_ARRAY ); Objekt – bod X, Y, Z Jen pokud „l“ z GTYPE je 0 Typicky ve 2D Další dvě položky MUSÍ být NULL Pokud geometrie není bod je NULL

SDO_ELEM_INFO Pole trojic Offset v dalším parametru SDO_ORDINATES CREATE TYPE SDO_GEOMETRY AS OBJECT ( SDO_GTYPE NUMBER, SDO_SRID NUMBER, SDO_POINT SDO_POINT_TYPE, SDO_ELEM_INFO MDSYS.SDO_ELEM_INFO_ARRAY, SDO_ORDINATES MDSYS.SDO_ORDINATE_ARRAY ); Pole trojic Offset v dalším parametru SDO_ORDINATES Typ elementu Interpretace 1-1 Bod 2-1 Řetězec úseček 1003/2003-1 Polygon 1003/2003-3 Obdélník (rovnoběžný) 1003/2003-4 Kružnice

SDO_ORDINATES Pole (n-tic) CREATE TYPE SDO_GEOMETRY AS OBJECT ( SDO_GTYPE NUMBER, SDO_SRID NUMBER, SDO_POINT SDO_POINT_TYPE, SDO_ELEM_INFO MDSYS.SDO_ELEM_INFO_ARRAY, SDO_ORDINATES MDSYS.SDO_ORDINATE_ARRAY ); Pole (n-tic) Seznam bodů, které tvoří objekt definovaný v SDO_ELEM_INFO X, Y, Z Důležitý offset Musí odpovídat definici

Příklad dat A = 40 , 20 B 110 90 exterior rectangle ETYPE 1003 E _ INTERPRETATION 3 MDSYS . SDO ORDINATE ARRAY ( ) Obdélník INSERT INTO TABULKA VALUES ( 'PC', MDSYS.SDO_GEOMETRY ( 2003, NULL, NULL, MDSYS.SDO_ELEM_INFO_ARRAY( 1,1003,3 ), MDSYS.SDO_ORDINATE_ARRAY( 40,20, 110,90 ) ) );

Příklad dat A = 75 , 15 B 115 55 exterior circle ETYPE 1003 E _ INTERPRETATION 4 MDSYS . SDO ORDINATE ARRAY ( C ) 95 Kružnice INSERT INTO TABULKA VALUES ( 'Kvetinac1', MDSYS.SDO_GEOMETRY( 2003, NULL, NULL, MDSYS.SDO_ELEM_INFO_ARRAY( 1,1003,4 ), MDSYS.SDO_ORDINATE_ARRAY( 75,15, 75,95, 115,55,) ) );

Vytvoření indexu Až po vložení dat Ne nad prázdnou tabulkou Detaily viz dokumentace CREATE INDEX TABULKA_I ON TABULKA(geometrie) INDEXTYPE IS MDSYS.SPATIAL_INDEX; CREATE INDEX TABULKA_I ON TABULKA(geometrie) INDEXTYPE IS MDSYS.SPATIAL_INDEX PARAMETERS('SDO_LEVEL = 6, SDO_NUMTILES=12');

Ukázka

Dotazování a operace SQL Funkce z objektů prostorové nadstavby nad objektově-relačním schématem Operátory Geometrické funkce Agregační funkce Nelze bez indexu

Ukázka operací SDO_GEOM.SDO_AREA(geom, tol, [,unit]) geom je geometrie (jak ji ukládáme do DB) vytažená z DB dotazem, nebo je to konstanta stejného tvaru tol je číselná přesnost, s jakou se má pracovat v rámci sítě bodů (zásadně stejná, nebo hrubější, než jak je objekt uložen) nepovinná je textová položka udávající jednotky Výsledek: Výsledkem je číselná hodnota udávající plochu 2D polygonu.

Ukázka operací SDO_GEOM.SDO_CENTROID(geom, tol) geom je geometrie (jak ji ukládáme do DB) vytažená z DB dotazem, nebo je to konstanta stejného tvaru tol je číselná přesnost, s jakou se má pracovat v rámci sítě bodů (zásadně stejná, nebo hrubější, než jak je objekt uložen) Výsledek: Výsledkem je geometrie – bod. Jedná se o těžiště a je aplikovatelné na polygon, multi-polygon, bod, bodový shluk (cluster).

Ukázka operací SDO_GEOM.SDO_DISTANCE(geom1, geom2, tol, [,unit]) geom1/geom2 je geometrie (jak ji ukládáme do DB) vytažená z DB dotazem, nebo je to konstanta stejného tvaru tol je číselná přesnost, s jakou se má pracovat v rámci sítě bodů (zásadně stejná, nebo hrubější, než jak je objekt uložen) nepovinná je textová položka udávající jednotky Výsledek: Výsledkem je číselná hodnota udávající vzdálenost dvou nejbližších bodů, nebo segmentů daných objektů.

Ukázka operací SDO_GEOM.SDO_INTERSECTION(geom1, geom2, tol) // UNION, XOR, DIFERENCE geom1/geom2 je geometrie (jak ji ukládáme do DB) vytažená z DB dotazem, nebo je to konstanta stejného tvaru tol je číselná přesnost, s jakou se má pracovat v rámci sítě bodů (zásadně stejná, nebo hrubější, než jak je objekt uložen) Výsledek: Výsledkem je geometrický obrazec daný topologickým průnikem obou zadaných objektů.

Ukázka dotazu SELECT A.jméno_věci FROM TABULKA A, TABULKA D WHERE D.jméno_věci='Kvetinac3' AND A.jméno_věci<>D.jméno_věci AND MDSYS.SDO_WITHIN_DISTANCE( A.geometrie, D.geometrie, 'distance=50') = 'TRUE';

Ukázka dotazu SELECT V.GID, W.GID, SDO_GEOM.SDO_DISTANCE(V.geometrie, W.geometrie, 0.005) "Vzdalenost” FROM VECIKDE V, VECIKDE W WHERE W.GID <> V.GID AND W.GID IN ( SELECT A.GID FROM VECIKDE A, VECIKDE C WHERE C.GID='Stul' AND A.GID<>C.GID AND SDO_RELATE(A.geometrie, C.geometrie, 'mask=anyinteract') = 'TRUE' ) AND V.GID IN (SELECT A.GID SDO_RELATE(A.geometrie, C.geometrie, 'mask=anyinteract') = 'TRUE' );

GeoRaster Rastrová data (grid, buňky, pixely) Vzdálené pozorování Fotogrammetrie Mapové podklady GIS [ http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14254.pdf ]

Vytvoření tabulky CREATE TABLE georaster_table ( georid VARCHAR2(32), georaster SDO_GEORASTER ); CREATE TYPE SDO_GEORASTER AS OBJECT ( rasterType NUMBER, spatialExtent MDSYS.SDO_GEOMETRY, rasterDataTable VARCHAR2(32), rasterID NUMBER, metadata SYS.XMLType );

Vytvoření rastru CREATE TABLE rasterDataTable_1 OF SDO_RASTER ( PRIMARY KEY (rasterID, pyramidLevel, bandBlockNumber, rowBlockNumber, columnBlockNumber)) TABLESPACE geor_tbs NOLOGGING LOB(rasterBlock) STORE AS rdt_1_rbseg( TABLESPACE geor_tbs_2 CHUNK 8192 CACHE READS NOLOGGING PCTVERSION 0 STORAGE (PCTINCREASE 0) ) );

Manipulace SDO_GEOR SDO_GEOR_UTL [ http://www.oracle.com/technology/sample_code/products/spatial/htdocs/georaster.html ]

Díky Otázky?