Przestrzenne bazy danych. Typy obiektów przestrzennych

Podobne dokumenty
Przestrzenne bazy danych. Wstęp do przestrzennych baz danych

Przestrzenne bazy danych. Definicja i cechy przestrzennych baz danych

Przestrzenne bazy danych PostGIS

Zarządzanie danymi przestrzennymi. Analizy przestrzenne

Język SQL, zajęcia nr 1

Przestrzenne bazy danych. Funkcje geometryczne

Charakterystyka przestrzennych typów danych. do tworzenia raportów. Using spatial data types in reports.

Odnawialne Źródła Energii I rok. Tutorial PostgreSQL

Przestrzenne bazy danych. Analizy przestrzenne

Wykład 5. SQL praca z tabelami 2

Relacyjne bazy danych. Podstawy SQL

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

Wykład 6. SQL praca z tabelami 3

Funkcjonalność systemów zarządzania bazami danych przestrzennych w kartografii internetowej (PosrtgreSQL/PostGIS) Krzysztof Kuśnierek

Relacyjne bazy danych. Podstawy SQL

Multimedialne bazy danych. Andrzej Łachwa, WFAiIS UJ 2011

Wykład 8. SQL praca z tabelami 5

Bazy danych 10. SQL Widoki

Bazy danych. Dr inż. Paweł Kasprowski

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Wykład 05 Bazy danych

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Shapefile, GeoPackage czy PostGIS. Marta Woławczyk (QGIS Polska)

Aby uruchomić program klienta i połączyć się z serwerem, należy komendę:

Bazy danych 7. SQL podstawy

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Wprowadzenie do BD Operacje na bazie i tabelach Co poza zapytaniami? Algebra relacji. Bazy Danych i Systemy informacyjne Wykład 2.

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

Modelowanie wymiarów

ACESS- zadania z wykorzystaniem poleceń SQL

UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678');

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Aplikacje bazodanowe. Laboratorium 1. Dawid Poªap Aplikacje bazodanowe - laboratorium 1 Luty, 22, / 37

Zarządzanie danymi przestrzennymi. Rozwiązywanie problemów przestrzennych

Hurtownia Świętego Mikołaja projekt bazy danych

Bazy Danych i Usługi Sieciowe

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

Wykład 4. SQL praca z tabelami 1

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

Zastosowanie relacyjnych baz danych w Systemach Informacji Geograficznej

Systemy GIS Tworzenie zapytań w bazach danych

Paweł Rajba

1. Połączenie z bazą danych. W wybranym edytorze tworzymy plik sqltest.py i umieszczamy w nim poniższy kod. #!/usr/bin/python3 import sqlite3

Bazy danych i usługi sieciowe

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE

Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski.

Ref. 7 - Język SQL - polecenia DDL i DML

Innowacyjne rozwiązania typu open source w aplikacjach typu gis-web. Dominik Tałanda

Projektowanie systemów baz danych

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

SQL (ang. Structured Query Language)

DANE PRZESTRZENNE W BAZACH DANYCH SYSTEMU MICROSOFT SQL SERVER 2008 R2 WPROWADZENIE

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Oracle PL/SQL. Paweł Rajba.

1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) możemy określić do której grupy plików trafi

GIS i dane geograficzne w bazach relacyjnych

GIS i dane geograficzne w bazach relacyjnych

Dr Michał Tanaś(

Przestrzenne bazy danych. Funkcje relacji przestrzennych

Struktura drzewa w MySQL. Michał Tyszczenko

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia?

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

Tworzenie raportów XML Publisher przy użyciu Data Templates

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Procedury wyzwalane. (c) Instytut Informatyki Politechniki Poznańskiej 1

Oracle11g: Wprowadzenie do SQL

Widok Connections po utworzeniu połączenia. Obszar roboczy

Przestrzenne bazy danych Podstawy języka SQL

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

BalticBottomBase. Instytut Morski w Gdańsku Gdańsk,

Autor: Joanna Karwowska

Podstawowe operacje w

Zasady transformacji modelu DOZ do projektu tabel bazy danych

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

RELACYJNE BAZY DANYCH I ICH ZNACZENIE W SYSTEMACH INFORMACJI GEOGRAFICZNEJ

Bazy danych 5. Samozłaczenie SQL podstawy

BAZY DANYCH. CREATE TABLE dbo.wydzialy (ID INT, Akronim VARCHAR(4) NOT NULL, Wydzial VARCHAR(30) NOT NULL, CONSTRAINT Kluczyk PRIMARY KEY(ID) )

15. Funkcje i procedury składowane PL/SQL

PODSTAWY BAZ DANYCH. 10. Partycjonowanie tabel i indeksów. 2009/ Notatki do wykładu "Podstawy baz danych"

Wykład 2. SQL 1 Structured Query Lenguage

SQL DDL DML TECHNOLOGIE BAZ DANYCH. Wykład 5: Język DDL i DML. Małgorzata Krętowska

Plan wykładu BAZY DANYCH II WYKŁAD 5. Kolekcje. Tablice asocjacyjne Kolekcje Tablice asocjacyjne VARRAY Tablice zagnieżdżone

DMX DMX DMX DMX: CREATE MINING STRUCTURE. Tadeusz Pankowski

Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle

Jerzy Nawrocki, Wprowadzenie do informatyki

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze

Fizyczna struktura bazy danych w SQL Serwerze

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska

Projekt inżynierski Przestrzenna baza danych

BAZA DANYCH SIECI HOTELI

Tworzenie widoku CREATE OR REPLACE VIEW [nazwa_widoku] AS SELECT [nazwy_kolumn] FROM [nazwa_tablicy];

Tworzenie tabeli przez select CREATE TABLE PRAC2 AS SELECT P.NAZWISKO, Z.NAZWA FROM PRAC P NATURAL JOIN ZESP Z

Database Connectivity

Transkrypt:

Przestrzenne bazy danych Typy obiektów przestrzennych

Typy obiektów przestrzennych Obiekty geometryczne Obiekty geograficzne Obiekty rastrowe

Typ geometryczny i geograficzny GEOMETRY_COLUMNS opis danych typu geometry pozwalającego przechowywać dane w postaci współrzędnych płaskich GEOGRAPHY_COLUMNS opis danych typu geography pozwalającego przechowywać dane w postaci współrzędnych geograficznych i wykonywać obliczenia na sferze wyniki otrzymamy w metrach SELECT ST_Distance('POINT(16.9 52.399)'::geography, 'POINT(-74.5 40.7)':: geography); --6650462.04710672 wynik w metrach SELECT ST_Distance('POINT(16.9 52.399)'::geometry, 'POINT(-74.5 40.7)':: geometry); -- 92.145681401789wynik w stopniach

Widok GEOMETRY COLUMNS F_TABLE_CATALOG, F_TABLE_SCHEMA, F_TABLE_NAME lokalizacja danych F_GEOMETRY_COLUMN nazwa kolumny z geometrią w tabeli przestrzennej COORD_DIAMENSION wymiary przestrzennych danych ( 2-D, 3-D, 4-D) SRID układ odniesienia TYPE typ danych (zgodne z OGC Simple Feature)

Kolumna COORD_DIAMENSION COORD_DIAMENSION wymiary układu współrzędnych (ilość osi układu współrzędnych) 2 X-Y 3 X-Y-Z, X-Y-M 4 X-Y-Z-M Wymiary obiektów geometrycznych - każdy typ geometryczny posiada własne wymiary: point, multipoint (0D) linestring, multistring (1D) polygon, multipolygon (2D) bryły: sześciany, kule, obiekty amorficzne (3D) wspierany w PostGIS 2+

Kolumna SRID SRID (Spatial Reference Identifier) dane pobrane z katalogu wszystkich układów odniesienia dostępnych w bazie danych - SPATIAL_REF_SYS Domyślny SRID w PostGIS 2.0 to 0 reprezentuje nieoznaczony układ odniesień (wersjach Postgis1.* to -1)

Tabela SPATIAL_REF_SYS SRID identyfikator układu odniesienia AUTH_NAME nazwa standardu do opisu układu odniesienia np. EPSG (European Petroleum Survey Group) AUTH_SRID identyfikator układu odniesienia wg standardu określonego w poprzednim polu SRTTEXT reprezentacja WKT układu odniesienia PROJ4TEXT definicja układu współrzędnych zgodna z biblioteką Proj4

Tworzenie tabeli z danymi przestrzennymi CREATE TABLE wyk2.my_geometries ( id serial NOT NULL PRIMARY KEY, name varchar(20), my_points geometry(point), my_linestrings geometry(linestring), my_polygons geometry(polygon), my_multipoints geometry(multipoint), my_multilinestrings geometry(multilinestring), my_multipolygons geometry(multipolygon) );

Wstawianie punktów na podstawie współrzędnych INSERT INTO wyk2.my_geometries (name,my_points) VALUES ( 'Home', ST_GeomFromText('POINT(0 0)') ); INSERT INTO wyk2.my_geometries (name,my_points) VALUES ( 'Pizza1', ST_GeomFromText('POINT(1 1)') ) ; INSERT INTO wyk2.my_geometries (name,my_points)values ( 'Pizza2', ST_GeomFromText('POINT(1-1)') );

Punkty

Wstawianie linii INSERT INTO wyk2.my_geometries (name,my_linestrings) VALUES ( 'Linestring Open', ST_GeomFromText('LINESTRING(0 0,1 1,1-1)') ); INSERT INTO wyk2.my_geometries (name,my_linestrings) VALUES ( 'Linestring Closed', ST_GeomFromText('LINESTRING(0 0,1 1,1-1, 0 0)') );

Linie

Wstawianie poligonu INSERT INTO wyk2.my_geometries (name, my_polygons) VALUES ( 'Triangle', ST_GeomFromText('POLYGON((0 0, 1 1, 1-1, 0 0))') );

Poligon

Wstawianie obiektów multi INSERT INTO wyk2.my_geometries (my_multipoints, my_multilinestrings, my_polygons) VALUES (ST_GeomFromText('MULTIPOINT(-1 1, 0 0, 2 3)'), ST_GeomFromText('MULTILINESTRING((0 0,0 1,1 1),(-1 1,-1-1))'), ST_GeomFromText(MULTIPOLYGON(((2.25 0,1.25 1,1.25-1,2.25 0)),((1-1,1 1,0 0,1-1))) ') );

Obiekty multi

Poligon złożony INSERT INTO wyk2.my_geometries (name,my_polygons) VALUES ('Square with 2 holes',st_geomfromtext('polygon((-0.25-1.25,-0.25 1.25,2.5 1.25,2.5-1.25,-0.25-1.25),(2.25 0,1.25 1,1.25-1,2.25 0),(1-1,1 1,0 0,1-1))'));

Obiekty w wielu wymiarach MULTIPOINT(-1 1, 0 0, 2 3) wielopunkt ze współrzędnymi x, y (2d) MULTIPOINTZ(-1 1 3, 0 0 1, 2 3 1)- wielopunkt ze współrzędnymi x, y, z (3d) MULTIPOINTZM(-1 1 3 4, 0 0 1 2, 2 3 1 2)- wielopunkt ze współrzędnymi x, y, z,m (3dm) MULTIPOINTM(-1 1 4, 0 0 2, 2 3 2)- wielopunkt ze współrzędnymi x, y, m (2dm) MULTILINESTRING((0 0,0 1,1 1),(-1 1,-1-1)) MULTILINESTRINGZM((0 0 1 1,0 1 1 2,1 1 1 3),(-1 1 1 1,-1-1 1 2)) MULTILINESTRINGM((0 0 1,0 1 2,1 1 3),(-1 1 1,-1-1 2)) MULTIPOLYGON(((2.25 0,1.25 1,1.25-1,2.25 0)),((1-1,1 1,0 0,1-1))) MULTIPOLYGONZ(((2.25 0 1,1.25 1 1,1.25-1 1,2.25 0 1)),((1-1 2,1 1 2,0 0 2,1-1 2)) ) MULTIPOLYGONZM(((2.25 0 1 1,1.25 1 1 2,1.25-1 1 1,2.25 0 1 1)),((1-1 2 1,1 1 2 2,0 0 2 3,1-1 2 4)) MULTIPOLYGONM(((2.25 0 1,1.25 1 2,1.25-1 1,2.25 0 1)),((1-1 1,1 1 2,0 0 3,1-1 4)) )

Wymiar M Wymiar M służy do przechowywania wartości typu zmiennoprzecinkowego (double-precision) powstałych w wyniku pomiarów dodatkowych zmiennych nie zależnych od zmiennych przestrzennych. Dane mogą być przechowywane w postaci dwóch wymiarów 2DM x,y,m 3DM x,y,z,m.

Obiekty 3d SELECT ST_GeomFromText( 'POLYHEDRALSURFACE Z ( ); ((12 0 10, 8 8 10, 8 10 20, 12 2 20, 12 0 10)), ((8 8 10, 0 12 10, 0 14 20, 8 10 20, 8 8 10)), ((0 12 10, -8 8 10, -8 10 20, 0 14 20, 0 12 10)) )'

Kolekcje obiektów geometrycznych Kolekcja obiektów - typ danych mogący zawierać w sobie punkty, wielopunkty, linie, wielolinie, poligony i wielopoligony. SELECT ST_AsText(ST_Collect(the_geom)) FROM ( SELECT ST_GeomFromText('MULTIPOINT(-1 1, 0 0, 2 3)') As the_geom UNION ALL SELECT ST_GeomFromText('MULTILINESTRING((0 0,0 1,1 1),(-1 1,-1-1))') As the_geom UNION ALL SELECT ST_GeomFromText('POLYGON((-0.25-1.25,-0.25 1.25,2.5 1.25,2.5-1.25,- 0.25-1.25), (2.25 0,1.25 1,1.25-1,2.25 0), (1-1,1 1,0 0,1-1))') As the_geom) As foo;

Kolumna niejednorodna

Krzywe CIRCULARSTRING ALTER TABLE wyk2.my_geometries ADD COLUMN my_circular_strings geometry(circularstring); INSERT INTO wyk2.my_geometries(name,my_circular_strings) VALUES ('Circle', ST_GeomFromText('CIRCULARSTRING(0 0,2 0, 2 2, 0 2, 0 0)')), ('Half Circle', ST_GeomFromText('CIRCULARSTRING(2.5 2.5,4.5 2.5, 4.5 4.5)')), ('Several Arcs', ST_GeomFromText('CIRCULARSTRING(0 0, 2 0, 2 1, 2 3, 4 4)'));

Transformacja krzywej w linię SELECT name, ST_NPoints(my_circular_strings) As cnpoints, ST_NPoints(ST_CurveToLine(my_circular_strings)) As lnpoints FROM wyk2.my_geometries WHERE my_circular_strings IS NOT NULL; Kontrola ilości punktów kontrolnych obiektów

Krzywe i linie złączone ALTER TABLE wyk2.my_geometries ADD COLUMN my_compound_curves geometry(compoundcurve); INSERT INTO wyk2.my_geometries(name,my_compound_curves) VALUES ('Road with curve', ST_GeomFromText('COMPOUNDCURVE((2 2, 2.5 2.5), CIRCULARSTRING(2.5 2.5,4.5 2.5, 3.5 3.5), (3.5 3.5, 2.5 4.5, 3 5))'));

Funkcje obsługi geometrii WKT WKB ST_GemFromText(text,srid) zwraca geometrię ST_AsText(geometry) zwraca text ST_AsEWKT(geometry) zwraca text ST_As_Binary(geometry) zwraca bytea ST_As_Binary(geometry) zwraca bytea ST_GeomFromWKB(bytea) zwraca geometrię

Modele przechowywania danych Kolumny niejednorodne kolumny pozwalające przechowywać obiekty geometryczne różnego typu np. poligony, linie i punkty (typ geometry) Kolumny jednorodne kolumny pozwalające przechowywać obiekty tylko jednego typu geometrycznego

Zalety kolumn niejednorodnych Pozwalają pojedynczym zapytaniem powiązać cechy różnych typów obiektów bez utraty możliwości modelowania Pozwala umieszczać dowolne obiekty geometryczne w jednej tabeli jeżeli ich atrybuty niezależne od przestrzeni są takie same (takie same atrybuty poligonu i punktu) Szybsze tworzenie tabeli bez konieczności tworzenia dodatkowych kolumn i poręczne w przypadku ładowania różnych danych bez konieczności kontroli typu geometrycznego

Wady kolumn niejednorodnych Ryzyko umieszczenia nieodpowiedniej geometrii dla obiektu (błędnie zdefiniowany obiekt lub brak systemu odniesienia) Wiele zewnętrznych aplikacji i ich narzędzi nie radzi sobie z kolumnami heterogenicznymi (ominięciem tego problemu jest utworzenie widoków z informacją o typach geometrycznych lub wykonanie odpowiedniego zapytania dotyczącego jednego typu geometrii) W przypadku wyodrębnienia jednego typu geometrii potrzebne są czynności filtrowania tabeli (wyzwalacze i reguły) co w przypadku dużych tabel może być czynnością wolną. Umieszczanie wszystkich obiektów geometrycznych w jednej tabeli może doprowadzić do nieodpowiednich samo-połączeń obiektów. ( W przypadku posiadania zbioru 100 punktów i 2 poligonów, chcemy ustalić które punkty zawierają się w danym poligonie otrzymamy łączenie 102 wierszy do 102 wierszy, w przypadku obdzielenia mamy łączenie 100 wierszy jednej tabeli do 2 wierszy drugiej tabeli)

Zalety kolumn jednorodnych Wymusza spójność i zapobiega niezamierzonemu mieszaniu rodzajów geometrii Narzędzia innych aplikacji opierają się często na spójności typu geometrycznego: jeden typ na jedną tabelę (np. ESRI shapefile wspiera jedynie jeden typ geometrii na plik. Aby eksportować dane do ESRI trzeba zastosować zasadę jednego typu geometrii na tabelę) Aby uzyskać lepsze wyniki podczas łączenia należy łączyć tabele z dużymi geometriami i kilkoma rekordami z tabelami z mniejszymi geometriami i wieloma rekordami niż na odwrót. W przypadku rysowania różnych obiektów lepszą wydajność zapewniają obiekty zapisane w tabelach z geometrią jednego typu W przypadku olbrzymich danych, oddzielne tabele pozwalają na zapisywanie danych na oddzielnych dyskach (PostgreSQL tablespace fizyczny folder do przechowywania dodatkowych danych inaczej niż w schema która jest lokalizacją logiczną, Oracle file groups)

Wady kolumn jednorodnych W przypadku zapytań, rysujących w systemach GIS różne typy geometryczne na warstwie, należy zastosować zapytania łączące. Co może mieć wpływ na złożoność i szybkość wykonania zapytania. Należy ograniczać stosowanie tabel z wieloma kolumnami różnego typu geometrycznego. Dłuższe wiersze powodują obniżenie szybkości zapytań takich jak select i update.

Typ rastrowy Wysokość i szerokość kafla rastrowego np. 50x50px (jeden wiersz w tabeli) Ilość kanałów w rastrze (max do 255 w PostGIS) Typ pixela w kanale: 1 bit Boolean - 1BB Unsigned integer of 2, 8, 16, or 32 bits - 2BUI, 8BUI, 16BUI, 32BUI Signed integers of 8, 16, or 32 bits - 8BSI, 16BSI, 32BSI float types: 32, 64 bits - 32BF and 64BF Układ współrzędnych rastra Wysokość i szerokość pixela np. 30x30m Skala pixela - X pixela 1:30, Y pixela 1:30

Ładowanie danych rastrowych raster2pgsql -s 2180 -I -C -M C:\sciezka_do_pliku\pozdem.tif -F -t 50x50 raster.pozdem psql -U postgres -d geodb W efekcie otrzymujemy tabelę zawierającą 1400 wierszy czyli kafli o rozmiarze 50x50px

Ładowanie danych rastrowych

Funkcje do obsługi geometrii (PostGIS 1.5) AddGeometryColumn dodaje kolumnę geometrii to tabeli danych przestrzennych i odpowiednik - metadane w geometry_columns DropGeometryTable usuwa tabelę danych przestrzennych a także metadane związane z tą tabelą w geometry_columns UpdateGeometrySRID zmienia typ układu odniesienia SRID w tabeli danych przestrzennych i w geometry_columns