Prostorová data v SQL

Podobné dokumenty
Artur Finger min

PROSTOROVÉ DOTAZOVACÍ JAZYKY. (Maroš Kasinec, Jakub Kúdela)

SQL/MM. SQL Multimedia and Application Packages

Algoritmizace prostorových úloh

FAKULTA STAVEBNÍ STUDIJNÍ PROGRAM: GEODÉZIE A KARTOGRAFIE TYP PROGRAMU: MAGISTERSKÝ STUDIJNÍ OBOR: GEOMATIKA ÚVOD DO ZPRACOVÁNÍ PROSTOROVÝCH DAT

Simple Features. Úvod do problematiky, geodatabáze, OGC Simple Features. Martin Landa

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.

Databázové systémy Cvičení 5.2

Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL

Databáze I. Přednáška 7

KMA/PDB. Karel Janečka. Tvorba materiálů byla podpořena z prostředků projektu FRVŠ č. F0584/2011/F1d

Vzorové příklady SQL. Tabulka: Kniha CREATE TABLE kniha (id INTEGER, název VARCHAR(50), PRIMARY KEY (id))

Simple Features. Úvod do problematiky, geodatabáze, OGC Simple Features. Martin Landa

3. přednáška z předmětu GIS1 atributové a prostorové dotazy

Návrh a tvorba WWW stránek 1/14. PHP a databáze

Databáze I. Přednáška 4

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE

INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA

Metody ukládání časoprostorových dat pro multirelační dolování

Databázové systémy I

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

Inovace a zkvalitnění výuky prostřednictvím ICT. Základní seznámení s MySQL Ing. Kotásek Jaroslav

Databázové systémy II. KIV/DB2 LS 2007/2008. Zadání semestrální práce

Simple Features. Úvod do problematiky, geodatabáze, OGC Simple Features. Martin Landa

A laskavého čtenáře odkážeme na oblíbený vyhledávač, který zajisté poskytne dostatek výsledků.

Jazyk SQL slajdy k přednášce NDBI001

GIS Geografické informační systémy

Informační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek

Object-relational mapping (JPA, Hibernate)

Co bude výsledkem mého SELECTu? RNDr. David Gešvindr MVP: Data Platform MCSE: Data Platform MCSD: Windows Store MCT

Stručný obsah. část III Aktualizace dat Kapitola 10: Aktualizace databáze 257 Kapitola 11: Integrita dat 275 Kapitola 12: Zpracování transakcí 307

6. blok část C Množinové operátory

Použití databází na Webu

Kapitola 4: SQL. Základní struktura

SQL. strukturovaný dotazovací jazyk. Structured Query Language (SQL)

Databáze SQL SELECT. David Hoksza

Databáze I. Přednáška 6

GIS Spatial SQL. Dotazy nad prostorovými daty 11 požadavků na prostorový dotazovací jazyk Prostorové operace Prostorové predikáty Příklad užití GIS 1

PG 9.5 novinky ve vývoji aplikací

PostGIS Topology. Topologická správa vektorových dat v geodatabázi PostGIS. Martin Landa

1. Relační databázový model

Databázové systémy. Cvičení 6: SQL

B0M33BDT Technologie pro velká data. Supercvičení SQL, Python, Linux

Základy informatiky. 08 Databázové systémy. Daniela Szturcová

Operátory ROLLUP a CUBE

Analýzy v GIS. Co se nachází na tomto místě? Kde se nachází toto? Kolik tam toho je? Co se změnilo od? Co je příčinou? Co když?

Transformace konceptuálního modelu na relační

Dotazování v relačním modelu a SQL

GEOGRAFICKÉ INFORMAČNÍ SYSTÉMY 10

6. SQL složitější dotazy, QBE

PostGIS. Luboš Hejduk, Petr Sedlář 2007

Oracle XML DB. Tomáš Nykodým

J. Zendulka: Databázové systémy 4 Relační model dat 1

Databázové systémy a SQL

Michal Krátký, Miroslav Beneš

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA HORNICKO GEOLOGICKÁ FAKULTA INSTITUT GEOINFORMATIKY. Prostorové databáze

Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava

Jádrem systému je modul GSFrameWork, který je poskytovatelem zejména těchto služeb:

1GIS2. Přednáška 3. Databáze vývoj, vlastnosti, přístupy ke zpracování informací, databázové modely, základy SQL FŽP UJEP

XMW4 / IW4 Pokročilé SELECT dotazy. Štefan Pataky

Databázové systémy. Datová integrita + základy relační algebry. 4.přednáška

Databázové systémy. Přirozené spojení. Vilém Vychodil. V. Vychodil (KMI/DATA1, Přednáška 4) Přirozené spojení Databázové systémy 1 / 41

POSTUP PRO VYTVOŘENÍ STRUKTUR PRO UKLÁDÁNÍ RDF DAT V ORACLE

Měřící systém se vzdáleným přístupem. Databáze

Tabulka fotbalové ligy

PostGIS Raster. Správa rastrových dat v geodatabázi PostGIS. Martin Landa. 155UZPD Úvod do zpracování prostorových dat, zimní semestr

Obsah. Kapitola 1. Kapitola 2. Kapitola 3. Kapitola 4. Úvod 11. Stručný úvod do relačních databází 13. Platforma 10g 23

Dotazy v SQL. Výraz relační algebry R1( )[A1,A2,...,Aj] lze zapsat takto: SELECT A1,A2,...,Aj FROM R1 WHERE. Výraz (R1, R2... Rk)( )[A1,A2,...

Databázové a informační systémy

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MySQL základní pojmy, motivace Ing. Kotásek Jaroslav

DUM 12 téma: Příkazy pro tvorbu databáze

Stromové struktury v relační databázi

RELAČNÍ DATABÁZOVÉ SYSTÉMY

6. blok část B Vnořené dotazy

Základy informatiky. 06 Databázové systémy. Kačmařík/Szturcová/Děrgel/Rapant

Co se stane po jeho vykonání? Vyberte libovolný počet možných odpovědí. Správná nemusí být žádná, ale také mohou být správné všechny.

Archivace relačních databází

Úvod do GIS. Atributy a jejich vztah k prostoru. Pouze podkladová prezentace k přednáškám, nejedná se o studijní materiál pro samostatné studium.

Úvod do zpracování prostorových dat. Anna Kratochvílová

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů

Analýza a modelování dat 3. přednáška. Helena Palovská

Databázové systémy I

Jazyk SQL 1. Michal Valenta. Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c Michal Valenta, 2012 BI-DBS, ZS 2011/12

37. Indexování a optimalizace dotazů v relačních databázích, datové struktury, jejich výhody a nevýhody

Úvod do GIS. Karel Jedlička. Analýza a syntéza I. Pouze podkladová prezentace k přednáškám, nejedná se o studijní materiál pro samostatné studium.

4. Relační model dat. J. Zendulka: Databázové systémy 4 Relační model dat 1

Úrovně abstrakce reality

Manipulace a restrukturalizace dat

Abstraktní datové typy Objektový přístup v Oracle

Dotazovací jazyky I. Datová krychle. Soběslav Benda

Konceptuální modelování a SQL

Semestrální projekt. Skupina E. Úvod do zpracování prostorových dat

Databáze 2011/2012 SQL DDL (CREATE/ALTER/DROP TABLE), DML (INSERT/UPDATE/DELETE) RNDr.David Hoksza, Ph.D.

GEOGRAFICKÉ INFORMAČNÍ SYSTÉMY 4

Osnova je orientační pro FIT, u FEKTu se dá předpokládat, že budou zohledněny předchozí znalosti studentů, kde většina s databází nikdy přímo

Sada 1 - PHP. 14. Úvod do jazyka SQL

Jaký je rozdíl v definicicíh VARCHAR2(20 BYTE) a VARCHAR2(20 CHAR):

PostgreSQL. Podpora dědičnosti Rozšiřitelnost vlastní datové typy. Univerzální nasazení ve vědecké sféře

Databáze I. 1. přednáška. Helena Palovská

JAK KOMUNIKOVAT S DATABÁZÍ PostGIS TUTORIAL

Transkript:

Prostorová data v SQL V rámci předmětu: Dotazovací jazyky I Matematicko-fyzikální fakulta Univerzita Karlova v Praze

Zdroje S. Shekhar a S. Chawla, Spatial Databases: A Tour, Prentice Hall, 2003 (ISBN 013-017480-7) K. Stolze, SQL/MM Spatial: The Standard to Manage Spatial Data in Relational Database Systems http://msdn.microsoft.com http://www.oracle.com http://dev.mysql.com

Obsah Motivace a předpoklady OGIS SQL/MM Datové typy Operace Příklady Datové typy Operace Příklady Schéma Realita Závěr

Motivace a předpoklady Relační algebra a SQL/92 pracují pouze s jednoduchými datovými typy (číslo, datum, řetězec...) Snaha opustit náhradní řešení tohoto nedostatku (blob, uložení mimo databázi) Zavedení abstrakce na vyšší úrovni blíže k našemu chápání prostoru Umožněno příchodem složených uživatelských datových typů

The open GIS GIS = geografický informační systém (pracuje s daty, která mají prostorový vztah k povrchu Země) OGIS konsorcium bylo vytvořeno ve snaze formulovat standard pro práci s GIS daty OGIS model pro prostorová data může být začleněn do různých programovacích jazyků (C, Java, SQL...) Hierarchická struktura datových typů a operací nad nimi

OGIS datové typy

OGIS - operace Rozděleny do tří kategorií: Základní operace, které se dají aplikovat na všechny typy Operace zkoumající topologický vztah objektů Obecné operace pro prostorovou analýzu

OGIS základní operace SpatialReference vrací systém souřadnic dané geometrie Envelope vrací minimální obdélník představující okraje geometrie Export vrací geometrii reprezentovanou jiným způsobem IsEmpty vrací TRUE, pokud je geometrie prázdná množina IsSimple vrací TRUE, pokud je geometrie jednoduchá (neprotínající sama sebe) Boundary vrací okraj geometrie...

OGIS topologické operace Vrací TRUE, pokud: Equal je okraj i vnitřní část dvou geometrií prostorově shodná Disjoint se okraj ani vnitřní část dvou geometrií neprotínají Intersect dvě geometrie nejsou disjunktní Touch se okraje dvou geometrií protínají, ale jejich vnitřní části ne Cross se vnitřní část povrchu protíná s křivkou Within se vnitřní část první geometrie neprotíná s oblastí ležící mimo druhou geometrii Contains jedna geometrie obsahuje druhou geometrii Overlap vnitřní části geometrií mají neprázdný průnik...

OGIS obecné operace pro prostorovou analýzu Distance vrací nejkratší vzdálenost dvou geometrií Buffer vrací geometrii, která obsahuje všechny body, které jsou vzdáleny od dané geometrie méně než daná hodnota ConvexHull vrací konvexní obal dané geometrie Intersection vrací geometrický průnik dvou geometrií Union vrací geometrické sjednocení dvou geometrií Difference vrací část geometrie, která se neprotíná s jinou danou geometií SymmDiff vrací části daných geometrií, které se navzájem neprotínají...

OGIS příklady (I) CREATE TABLE country ( name VARCHAR(30), cont VARCHAR(30), pop INTEGER, GDP NUMBER, shape Polygon ); CREATE TABLE river ( name VARCHAR(30), origin VARCHAR(30), length Number, shape LineString ); CREATE TABLE city ( name VARCHAR(30), country VARCHAR(30), pop INTEGER, shape Point );

OGIS příklady (II) Nalezení všech sousedů USA: SELECT c1.name AS Neighbors of USA FROM country c1, country c2 WHERE Touch(c1.shape, c2.shape) AND c2.name = 'USA' Seznam států seřazený podle počtu sousedů SELECT c1.name, Count(c2.name) FROM country c1, country c2 WHERE Touch(c1.shape, c2.shape) GROUP BY c1.name ORDER BY Count(c2.name)

OGIS příklady (III) Seznam řek a jejich délek v jednotlivých státech, kterými protékají: SELECT r.name, c.name, Length(Intersection(r.shape, c.shape)) FROM river r, country c WHERE Cross(r.shape, c.shape) Která města mohou být zásobována vodou z řeky St. Lawrence, je-li to možné pouze do vzálenosti 300 km: SELECT c.name FROM city c, river r WHERE Overlap(c.shape, Buffer(r.shape, 300)) AND r.name = 'St. Lawrence'

SQL/MM ISO/IEC 13249 SQL/MM je snaha o standardizaci multimédií (texty, obrázky, prostorová data...) Part 3: Spatial [ISO02c] část SQL/MM, která je mezinárodním standardem definujícím jak prostřednictvím SQL ukládat, načítat a zpracovávat prostorová data Vychází z OGIS, ale interpretuje data v obecnější rovině, ne jen jako GIS

SQL/MM datové typy I

SQL/MM datové typy II

SQL/MM datové typy III

SQL/MM operace Dělí se do čtyř skupin: Konverze mezi geometriemi a externími formáty Získávání vlastností geometrií Porovnávání vzhledem k prostorovému vztahu geometrií Tvorba nových geometrií z existujících

SQL/MM konverzní operace Tři typy pro externí reprezentaci geometrií: Textová (WKT well-known text representation) Binární (WKB well-known binary representation) Geografické XML (GML geography markup language) Každý typ, který není abstraktní, poskytuje konstruktor umožňující jej vytvořit z WKT a WKB Druhá možnost a jediná pro GML je využít funkcí tvaru ST_{Line, Point,...}From{Text, WKB, GML} Pro konverzi geometrií na daný formát se využívají funkce ST_AsText, ST_AsBinary, ST_AsGML

SQL/MM operace získávání vlastností ST_Boundary vrací okraj geometrie ST_IsValid test zda je geometrie správně definovaná (např. neuzavřený mnohoúhelník) ST_IsEmpty test zda je geometrie prázdná množina ST_X vrací X-ovou souřadnici bodu ST_IsRing test zda je křivka kruh (uzavřená a prostá) ST_Length vrací délku pro LineString nebo MultiLineString

SQL/MM porovnávací operace ST_Equals test zda jsou geometrie shodné ST_Disjoint test zda mají geometrie prázdný průnik ST_Intersects, ST_Crosses, ST_Overlaps test zda se vnitřní části geometrií protínají ST_Touches test zda se okraje geometrií dotýkají, ale jejich vnitřní části mají prázdný průnik ST_Within, ST_Contains test zda je jedna geometrie celá uvnitř jiné ST_Distance vrací vzdálenost mezi geometriemi

SQL/MM tvorba nových geometrií ST_Buffer vrací geometrii obsahující body, které mají menší než zadanou vzdálenost ST_ConvexHull vrací konvexní obal geometrie ST_Difference, ST_Intersection, ST_Union vrací geometrii odpovídající množinovým operacím rozdíl, průnik a sjednocení geometrií

SQL/MM příklady (Pojišťovna I) CREATE TABLE rivers ( name water_amount river_line flood_zones VARCHAR(30) PRIMARY KEY, DOUBLE PRECISION, ST_LineString, ST_MultiPolygon ) CREATE TABLE buildings ( customer_name street city zip ground_plot VARCHAR(50) PRIMARY KEY, VARCHAR(50), VARCHAR(20), VARCHAR(10), ST_Polygon )

SQL/MM příklady (Pojišťovna II) Rozšíření záplavové zóny o 2 km u řeky FLOOD: UPDATE SET rivers flood_zones = flood_zones.st_buffer(2, 'KILOMETER') WHERE name = 'FLOOD' Nalezení zákazníků jejichž domy leží v záplavových oblastech: SELECT FROM WHERE customer_name, street, city, zip buildings AS b, rivers AS r b.ground_plot.st_within(r.flood_zones)=1

SQL/MM příklady (Banka I) CREATE TABLE customers ( customer_id INTEGER PRIMARY KEY, name VARCHAR(20), street VARCHAR(25), city VARCHAR(10), state VARCHAR(2), zip VARCHAR(5), type VARCHAR(10), location ST_POINT ); CREATE TABLE branch_id name street state location ); branches ( INTEGER PRIMARY KEY, VARCHAR(12), manager VARCHAR(20), city VARCHAR(2), zip ST_Point, zone VARCHAR(20), VARCHAR(10), VARCHAR(5), ST_Polygon

SQL/MM příklady (Banka II) CREATE TABLE accounts ( account_id INTEGER PRIMARY KEY, routing_no INTEGER NOT NULL, customer_id INTEGER NOT NULL, branch_id INTEGER NOT NULL, type VARCHAR(10) NOT NULL, balance DECIMAL(14, 2) NOT NULL, CONSTRAINT fk_customers FOREIGN KEY(customer_id) REFERENCES customers(customer_id), CONSTRAINT fk_branches FOREIGN KEY(branch_id) REFERENCES branches(branch_id) );

SQL/MM příklady (Banka III) Seznam zákazníků s více než 10 000 na účtu žijící dále než 20 mil od jejich pobočky: SELECT DISTINCT c.customer_id, c.name FROM customers AS c JOIN accounts AS a ON (c.customer_id = a.customer_id) WHERE a.balance > 10000 AND a.location.st_distance( ( SELECT b.location FROM branches AS b WHERE b.branch_id = a.branch_id), 'MILES') > 20

SQL/MM příklady (Banka IV) Nalezení překryvu polí působnosti jednotlivých poboček: SELECT FROM b1.branch_id, b2.branch_id, b1.zone.st_overlaps(b2.zone).st_astext() branches AS b1 JOIN branches AS b2 ON (b1.branch_id < b2.branch_id) WHERE b1.zone.st_overlaps(b2.zone).st_isempty()=0

SQL/MM příklady (Banka V) Nalezení zákazníků žijících méně než 10 mil od pobočky, která nespravuje jejich účty: SELECT FROM WHERE c.name, c.phone, b.branch_id branches AS b, customers AS c b.location.st_buffer(10, 'MILES').ST_Contains(c.location) = 1 AND NOT EXISTS ( SELECT 1 FROM accounts AS a WHERE a.customer_id = c.customer_id AND a.branch_id = b.branch_id )

SQL/MM schéma SQL/MM definuje informační schéma, aby bylo možné zjistit, které vlastnosti jsou podporovány Tvoří jej čtyři pohledy: ST_GEOMETRY_COLUMNS obsahuje všechny sloupce mající za typ některý z podtypů ST_Geometry ST_SPATIAL_REFERENCE_SYSTEMS obsahuje dostupné systémy souřadnic ST_UNITS_OF_MEASURE obsahuje dostupné jednotky, pro které lze pokládat dotazy ST_SIZINGS obsahuje meta-proměnné a jejich hodnoty (např. maximální možnou délku WKT řetězce)

Realita MS SQL Server, Oracle Database, MySQL... většina systémů poskytuje podporu pro práci s prostorovými daty, ale různé implementují různé podmnožiny standardů. Často s odchylkami například v názvech a běžnou praxí také je, že jsou až součástí rozšíření samotné databáze.

Závěr OGIS doporučení pro práci s prostorovými daty. SQL/MM standard pro práci s multimédii pomocí SQL, Part 3: Spatial se zaměřuje na prostorová data a přejímá myšlenky OGIS. Při používání konkrétní databáze je třeba ověřit dostupnost jednotlivých funkcí.