Multimedialne bazy danych. Andrzej Łachwa, WFAiIS UJ 2011

Podobne dokumenty
3. Standaryzacja modeli danych przestrzennych

Przestrzenne bazy danych. Wstęp do przestrzennych baz danych

Przestrzenne bazy danych PostGIS

Przestrzenne bazy danych. Definicja i cechy przestrzennych baz danych

Przestrzenne bazy danych. Typy obiektów przestrzennych

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

GIS i dane geograficzne w bazach relacyjnych

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

GIS i dane geograficzne w bazach relacyjnych

MULTILINESTRING MULTILINESTRING((11 5, 7 4, 3 9), (5 3, 2 7, 6 5)) MULTIPOLYGON MULTIPOLYGON(((0 0, 5 5, 10 0, 0 0)), ((3 2, 5 1, 7 2, 3 2)))

Język SQL, zajęcia nr 1

Wykład 05 Bazy danych

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

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

Przestrzenne bazy danych. Funkcje geometryczne

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

Autor: Joanna Karwowska

Dane przestrzenne w relacyjnych bazach danych

Przestrzenne bazy danych. Funkcje relacji przestrzennych

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

GIS. Grzegorz Chilkiewicz

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

GIS STRUKTURY DANYCH RELACJE PRZESTRZENNE.

MOŻLIWOŚCI SKŁADOWANIA DANYCH 3D W BAZACH DANYCH PRZESTRZENNYCH 1

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

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

TWORZENIE RAPORTÓW ZAWIERAJĄCYCH DANE PRZESTRZENNE

Geografická data a databázové systémy, OGC Simple Features pro SQL, PostgreSQL, MySQL, SQLite

Wykład 4. SQL praca z tabelami 1

Programowanie w Ruby

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

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

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

Wykład 2. SQL 1 Structured Query Lenguage

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

Wykład 5. SQL praca z tabelami 2

Wykład 8. SQL praca z tabelami 5

Bazy danych 7. SQL podstawy

PODSTAWY BAZ DANYCH Wykład Partycjonowanie tabel i indeksów

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

ZAPIS PLIKÓW GRAFIKI WEKTOROWEJ DO BAZY DANYCH MS SQL

Wykład 6. SQL praca z tabelami 3

Po prawidłowym podłączeniu do serwera MySQL należy wybrać bazę, na której będziesz pracować:

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

Bazy danych 6. Klucze obce. P. F. Góra

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

Bazy danych - Materiały do laboratoriów VIII

SIECI KOMPUTEROWE I BAZY DANYCH

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

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Projektowanie systemów baz danych

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

Wykład IV Modelowanie danych, projektowanie systemu informatycznego Modelowanie konceptualne implementacyjne Modelowanie pojęciowe na encjach

1. Wstęp ELŻBIETA BIELECKA

3 Źródła 13. Mogą to być dane geoprzestrzenne, przestrzenne, dane o terenie, katastralne, itp..

Bazy danych 10. SQL Widoki

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

Oracle Spatial Option

Przestrzenne bazy danych. Analizy przestrzenne

Zarządzanie danymi przestrzennymi. Analizy przestrzenne

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

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

Modelowanie wymiarów

Bazy Danych i Usługi Sieciowe

Zasady transformacji modelu DOZ do projektu tabel bazy danych

I. Język manipulowania danymi - DML (Data Manipulation Language). Polecenia INSERT, UPDATE, DELETE

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

Podstawy języka SQL. standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi. Bazy danych s.5-1

SQL 4 Structured Query Lenguage

PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH

Instalacja MySQL.

1. Sprawdzenie ustawień konfiguracyjnych. Uruchomienie wiersza poleceń:..\ścieżka\bin>mysqladmin variables

Systemy GIS Tworzenie zapytań w bazach danych

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

Styczeń Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska. Systemy baz danych - wykład VIII. dr inż.

Bazy danych i usługi sieciowe

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

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

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2. zadania

Bazy danych 5. Samozłaczenie SQL podstawy

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

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Oracle PL/SQL. Paweł Rajba.

Dane przestrzenne Ćwiczenia laboratoryjne (6)

P o d s t a w y j ę z y k a S Q L

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Zakład Hydrologii i Geoinformacji, Instytut Geografii UJK

Bazy danych. Polecenia SQL

Model relacyjny. Wykład II

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

DMX DMX DMX DMX: CREATE MINING STRUCTURE. Tadeusz Pankowski

2 Przygotował: mgr inż. Maciej Lasota

3 Źródła 14. Mogą to być dane geoprzestrzenne, przestrzenne, dane o terenie, katastralne, itp..

PLANIMETRIA CZYLI GEOMETRIA PŁASZCZYZNY CZ. 1

Rysunek 1: Przykłady graficznej prezentacji klas.

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u

Bazy danych 12. SQL Wyszukiwanie pełnotekstowe

Transkrypt:

11 Multimedialne bazy danych Andrzej Łachwa, WFAiIS UJ 2011

Obiekty przestrzenne w bazach danych Wszystkie rysunki pochodzą z OpenGIS Simple Features Specification For SQL. Revision 1.1, Open GIS Consortium, Inc. z 1999 r. Aktualne standardy zawarte są w dokumencie z 2005 r. OpenGIS Implementation Specification for Geographic Information - Simple feature access - Part 2: SQL option http://www.opengeospatial.org/standards/sfs

Obiekt przestrzenny (geographic feature, geospatial feature, geometry) jest czymś, co posiada lokalizację. W modelu zaproponowanym przez OGC każdy obiekt przestrzenny: - jest związany z pewnym przestrzennym systemem odniesienia, - należy do określonej klasy. Model OGC wprowadza: - klasy abstrakcyjne: obiekt geometryczny, krzywa, powierzchnia, kolekcja, multi-krzywa i multi-powierzchnia, - klasy zwykłe: punkt, łamana, odcinek, pierścień, wielobok, multi-punkt, multi-krzywa, multiwielobok.

Obiekt geometryczny ma następujące atrybuty: - typ, - SRID (Spatial Reference Identifier), identyfikator przestrzeni, układu współrzędnych (w MySQL jest to liczba całkowita, a wszystkie obiekty tworzone są w dwuwymiarowym układzie kartezjańskim), - koordynaty w przestrzeni, współrzędne (dwie liczby podwójnej precyzji; obiekt pusty nie ma współrzędnych; współrzędne dotyczą układu odniesienia, ale w MySQL mamy tylko układ współrzędnych kartezjańskich), - wnętrze, granicę i zewnętrze, - MBR, ograniczenie prostokątne, - prosty / złożony, - zamknięty / otwarty, - wymiary (-1, 0, 1, 2).

Właściwości punktu: - wartość współrzędnej na osi X, - wartość współrzędnej na osi Y. - punkt ma wymiar 0, - granicą punktu jest zbiór pusty.

Właściwości krzywej: - krzywa jest zwykle reprezentowana zbiorem punktów, przy czym w zależności od interpolacji możemy mieć różne rodzaje krzywych, - ma wymiar 1, - ma współrzędne każdego definiującego ją punktu, - jest prosta gdy nie przechodzi przez żaden swój punkt dwukrotnie, - jest zamknięta jeżeli punkt początkowy jest identyczny z końcowym, - granica krzywej zamkniętej jest zbiorem pustym, - granica krzywej otwartej to jej początek i koniec, - krzywa prosta i zamknięta, to pierścień.

Własności łamanej: - składa się z segmentów, a każdy segment jest zdefiniowany przez dwa punkty, - jest odcinkiem, gdy posiada tylko jeden segment, - jest pierścieniem, gdy jest krzywą prostą i zamkniętą.

Własności powierzchni: - ma wymiar 2, - jest prosta gdy ma jedną granicę zewnętrzną i może mieć wiele granic wewnętrznych (wiele dziur), a każda taka granica jest zamkniętą krzywą. - jedyną podklasą powierzchni jest klasa wieloboków. Własności wieloboku: - każda granica jest pierścieniem, - pierścienie te mogą się stykać, ale nie mogą przecinać, - wielobok nie może mieć wewnątrz wyciętych punktów, odcinków, ani na zewnątrz kolców, - wnętrze jest zbiorem spójnym, - każda dziura definiuje spójny fragment zewnętrza.

Własność kolekcji jest dowolnym zbiorem obiektów tej samej przestrzeni. Multipunkt - punkty nie są połączone i nie są uporządkowane - ma wymiar 0 - jest prosty, gdy żadne dwa punkty nie są identyczne - granicą jest zbiór pusty. Multi-łamana Multi-powierzchnia - powierzchnie wchodzące w jej skład nie mogą mieć niepustego przecięcia wnętrz - granice mogą się przecinać w skończonej liczbie punktów.

Multi-wielobok - wnętrza wieloboków nie mogą mieć niepustego przecięcia - granice nie mogą mieć nieskończenie licznej części wspólnej - nie mogą mieć linii przecinających, kolców, czy punktów wykluczonych; są regularnymi domkniętymi zbiorami punktów - liczba spójnych obszarów wnętrza jest równa liczbie wieloboków - ma wymiar 2 - granica jest zbiorem krzywych zamkniętych, z których każda jest granicą jednego z wieloboków, i na odwrót.

Formaty danych przestrzennych: - tekstowy (WKT) i binarny (WKB) - wewnętrzny format MySQL Przykłady WKT: POINT (15 20) LINESTRING (0 0, 10 10, 20 25, 50 60) POLYGON ((0 0,10 0,10 10,0 10,0 0), (5 5, 7 5,7 7,5 7,5 5)) MULTIPOINT (0 0,20 20,60 60) MULTILINESTRING ((10 10,20 20),(15 15,30 15)) MULTIPOLYGON ( ) GEOMETRYCOLLECTION ( POINT(10 10), POINT(30 30), LINESTRING(15 15,20 20) )

Format WKB 1 bajt porządku ( 0 to little-endian, 1 to big-endian) 4 bajty określające typ obiektu 1 punkt 2 łamana 3 wielobok 4 multi-punkt 5 multi-łamana 6 multi-wielobok 7 kolekcja 8 bajtowe liczby podwójnej precyzji Przykład dla LINE(1 1): 01 01000000 000000000000F03F 000000000000F03F

Typy danych w MySQL - o pojedynczych wartościach: GEOMETRY POINT LINESTRING POLYGON - dla kolekcji: MULTIPOINT MULTILINESTRING MULTIPOLYGON GEOMETRYCOLLECTION

Funkcje przeznaczone do tworzenia obiektów przestrzennych w MySQL z opisu w formacie WKT: GeomFromText(wkt[,srid]), gdzie wkt to obiekt przestrzenny dowolnego typu PointFromText(wkt[,srid]), gdzie wkt to obiekt typu punkt MPointFromText( ) LineFromText( ), MLineFromText( ) PolyFromText( ), MPolyFromText( ) GeomCollFromText( )

Dla formatu WKB mamy odpowiednio: GeomFromWKB(wkb[,srid]) PointFromWKB( ), MPointFromWKB( ) LineFromWKB( ), MLineFromWKB( ) PolyFromWKB( ), MPolyFromWKB( ) GeomCollFromWKB( ) W obu formatach MySQL nie implementuje funkcji tworzących wieloboki i multi-wieloboki przy pomocy łamanych określających granice zewnętrzne i wewnętrzne.

Dodatkowe funkcje MySQL nie opisane w specyfikacji OpenGIS: GeometryCollection(geom1, geom2, ) tworzy WKB kolekcję LineString(point1, point2, ) tworzy WKB łańcuch MultiLineString(line1, line2, ) MultiPoint(p1, p2, ) MultiPolygon(pol1, pol2, ) Point(x,y) Polygon(ls1, ls2, )

Definiowanie kolumn z wartościami przestrzennymi: CREATE TABLE nazwatabeli (nazwakolumny GEOMETRY, ID int unsigned not null); ALTER TABLE nazwatabeli ADD pt POINT; Indeksy na kolumnach z wartościami przestrzennymi: CREATE, ALTER SPATIAL INDEX nazwakolumny DROP INDEX nazwakolumny

Wypełnianie bazy danymi przestrzennymi: INSERT INTO nazwatabeli VALUES (GeomFromText('POINT(1 2)')); SET @geom = GeomFromText('POINT(1 2)'); INSERT INTO nazwatabeli VALUES(@geom); SET @point = 'POINT(1 2)'; INSERT INTO nazwatabeli VALUES (PointFromText(@point));

Pobieranie danych przestrzennych z bazy: SELECT AsText(kolumna) FROM nazwatabeli; gdzie AsText() konwertuje obiekt z formatu wewnętrznego na format WKT; funkcja AsBinary() konwertuje na format WKB, Format wewnętrzny może być wykorzystany do przekazywania danych między tabalemi.

Funkcje konwersji danych przestrzennych: AsBinary (geom) AsText (geom) GeomFromText (wkt [,srid]) GeomFromWKB (wkt [,srid])

Funkcje dotyczące geometrii: Dimension (geom) [zwraca wymiar -1,0,1,2] Envelope (g) [zwraca MBR dla g] GeometryType (g) SRID (g) X (point), Y (point) [zwraca napis, np. POINT] [zwraca liczbę całkowitą] [zwraca współrzędną] StartPoint (linestring), EndPoint (linestring) [zwraca punkt] PointN (linestring, N) [zwraca n-ty punkt] GLength (linestring), GLength (multilinestring) [zwraca długość łamanej, multi-łamanej w postaci liczby podwójnej precyzji]

IsRing (linestring) [zwraca 1 gdy jest łamaną zamkniętą i prostą, 0 wpp, -1 gdy jest NULL] IsClosed (multilinestring) [zwraca 1 gdy każda łamana jest zamknięta, 0 wpp, -1 dla NULL] Area (polygon), Area (multipolygon) ExteriorRing (polygon) InteriorRingN (polygon, N) NumInteriorRings (polygon) Centroid (mpoly) [zwraca środek jako POINT] PointOnSurface (mply) [zwraca POINT] GeometryN (gc, N) [zwraca n-ty obiekt kolekcji] NumGeometries (gc) [zwraca liczbę obiektów]

Funkcje testujące relacje przestrzenne: MBRContains (g1, g2) [zwraca 1 gdy MBR obiektu g1 zawiera w sobie MBR obiektu g2] MBRDisjoint (g1, g2) [zwraca 1 gdy MBRy obiektów nie przecinają się] MBRIntersects (g1, g2)[zwraca 1 gdy się przecinają] MBROverlaps (g1, g2) [zwraca 1 gdy się nakładają; część wspólna powinna być tego samego wymiaru i różna od obu obiektów] MBRTouches (g1, g2) MBRWithin (g1, g2) [zwraca 1 gdy się stykają] [zwraca 1 gdy MBR obiektu g1 zawiera się w MBR obiektu g2]

Funkcje jeszcze nie zaimplementowane w MySQL: Boundary(g), IsEmpty(g), IsSimple(g) Buffer (g, d) [zwraca obiekt złożony z punktów, których odległość od g jest od d] ConvexHull (g) [zwraca wypukły korpus obiektu g] Difference (g1, g2) Intersection (g1, g2) [zwraca różnicę g1-g2] [zwraca część wspólną] SymDifference (g1, g2) [zwraca różnicę symetryczną] Union (g1, g2) [zwraca sumę] Relacje: Contains, Crosses, Disjoint, Distance, Equals, Intersects, Overlaps, Related, Touches, Within

Zobacz - Projekt OpenStreetMap www.openstreetmap.org http://wiki.openstreetmap.org/wiki/main_page Zobacz wykłady na MIT http://ocw.mit.edu/courses/urban-studies-andplanning/11-521-spatial-database-managementand-advanced-geographic-information-systemsspring-2003/