Baza danych przestrzennych - Spatial database

Bazie przestrzenna jest baza zoptymalizowane do przechowywania i pobierania danych, który reprezentuje obiekty zdefiniowane w geometryczny powierzchni. Większość baz danych przestrzennych umożliwia reprezentację prostych obiektów geometrycznych, takich jak punkty, linie i wielokąty. Niektóre bazy danych przestrzennych obsługują bardziej złożone struktury, takie jak obiekty 3D, pokrycia topologiczne, sieci liniowe i TIN (nieregularna sieć triangulacyjna). Podczas gdy typowe bazy danych zostały opracowane do zarządzania różnymi typami danych numerycznych i znakowych , takie bazy danych wymagają dodatkowej funkcjonalności do wydajnego przetwarzania typów danych przestrzennych, a programiści często dodawali typy danych geometrycznych lub obiektowych . Open Geospatial Consortium (OGC) opracował prosty Features Specification (wydany w 1997) oraz normy zestawy do dodawania funkcjonalności do systemów baz danych przestrzennych. Standard SQL/MM Spatial ISO/IEC jest częścią standardu multimedialnego SQL/MM i rozszerza standard Simple Features o typy danych, które obsługują interpolacje kołowe.

Geobaza

Geobazie (także baza danych geograficznych i geoprzestrzennych baza danych ) to baza danych z danymi geograficznymi , takich jak kraje , podziałów administracyjnych , miastach i związanych z nimi informacji. Takie bazy danych mogą być przydatne dla stron internetowych, które chcą identyfikować lokalizacje swoich gości w celu dostosowania.

Charakterystyka

Systemy baz danych używają indeksów do szybkiego wyszukiwania wartości; jednak ten sposób indeksowania danych nie jest optymalny dla zapytań przestrzennych . Zamiast tego przestrzenne bazy danych używają indeksu przestrzennego, aby przyspieszyć operacje na bazie danych.

Oprócz typowych zapytań SQL, takich jak instrukcje SELECT, przestrzenne bazy danych mogą wykonywać wiele różnych operacji przestrzennych. Następujące operacje i wiele innych są określone przez standard Open Geospatial Consortium :

  • Pomiary przestrzenne: oblicza długość linii, obszar wielokąta, odległość między geometriami itp.
  • Funkcje przestrzenne: Modyfikuj istniejące obiekty, aby tworzyć nowe, na przykład zapewniając bufor wokół nich, obiekty przecinające się itp.
  • Predykaty przestrzenne: Umożliwia zapytania typu prawda/fałsz dotyczące relacji przestrzennych między geometriami. Przykłady to „czy dwa wielokąty nakładają się na siebie” lub „czy w promieniu mili od terenu, na którym planujemy wybudować składowisko, znajduje się rezydencja?”. (patrz DE-9IM )
  • Konstruktory geometrii: Tworzy nowe geometrie, zwykle określając wierzchołki (punkty lub węzły), które definiują kształt.
  • Funkcje obserwatora: zapytania, które zwracają określone informacje o funkcji, takie jak położenie środka okręgu

Niektóre bazy danych obsługują tylko uproszczone lub zmodyfikowane zestawy tych operacji, szczególnie w przypadku systemów NoSQL , takich jak MongoDB i CouchDB .

Indeks przestrzenny

Indeksy przestrzenne są wykorzystywane przez bazy danych przestrzennych (bazy danych przechowujące informacje dotyczące obiektów w przestrzeni) do optymalizacji zapytań przestrzennych . Konwencjonalne typy indeksów nie obsługują wydajnie zapytań przestrzennych, takich jak odległość między dwoma punktami lub to, czy punkty mieszczą się w przestrzennym obszarze zainteresowania. Typowe metody indeksowania przestrzennego obejmują:

Zapytanie przestrzenne

Zapytanie przestrzenne jest specjalnym typem zapytania do bazy danych obsługiwane przez baz danych przestrzennych, w tym geodatabases. Zapytania różnią się od nieprzestrzennych zapytań SQL na kilka ważnych sposobów. Dwa z najważniejszych to to, że pozwalają na użycie typów danych geometrycznych, takich jak punkty, linie i wielokąty, oraz to, że zapytania te uwzględniają przestrzenne relacje między tymi geometriami.

Nazwy funkcji dla zapytań różnią się w różnych geobazach. Poniższa lista zawiera powszechnie używane funkcje wbudowane w PostGIS , darmową geobazę będącą rozszerzeniem PostgreSQL (termin 'geometria' odnosi się do punktu, linii, prostokąta lub innego dwu- lub trójwymiarowego kształtu):

Prototyp funkcji : functionName (parametry) : zwracany typ

  • Odległość (geometria, geometria): liczba
  • Równe (geometria, geometria) : boolean
  • Disjoint(geometria, geometria): boolean
  • Przecięcia (geometria, geometria) : boolean
  • Dotyk (geometria, geometria): boolean
  • Krzyże (geometria, geometria): boolean
  • Nakładanie się (geometria, geometria) : boolean
  • Zawiera (geometria, geometria): boolean
  • Długość (geometria): liczba
  • Obszar (geometria): liczba
  • Centroid (geometria): geometria

Systemy zarządzania przestrzennymi bazami danych

Lista

  • AllegroGraphgrafowa baza danych udostępniająca mechanizm wydajnego przechowywania i wyszukiwania dwuwymiarowych współrzędnych geoprzestrzennych dla danych Resource Description Framework . Zawiera składnię rozszerzenia dla zapytań SPARQL .
  • ArangoDB - wielomodelowa baza danych, która zapewnia możliwość geoindeksowania.
  • Caliper rozszerza Raima Data Manager o typy danych przestrzennych, funkcje i narzędzia.
  • CouchDB system bazy danych oparty na dokumentach, który można włączyć przestrzennie za pomocą wtyczki o nazwie Geocouch
  • Elasticsearch to system bazy danych oparty na dokumentach, który obsługuje dwa typy danych geograficznych: pola geo_point, które obsługują pary szerokości/długości, oraz pola geo_shape, które obsługują punkty, linie, okręgi, wielokąty, wielokąty itp.
  • GeoMesa jest bazą danych przestrzenno-czasowego chmurze zbudowany na szczycie Apache Accumulo i Apache Hadoop (obsługuje również Apache HBase , Google Bigtable , Cassandra i Apache Kafka ). GeoMesa obsługuje pełne proste funkcje OGC i wtyczkę GeoServer.
  • H2 obsługuje typy geometrii i indeksy przestrzenne od wersji 1.3.173 (28.07.2013). Rozszerzenie o nazwie H2GIS dostępne w Maven Central zapewnia pełną obsługę OGC Simple Features .
  • Dowolna edycja IBM DB2 może być włączona przestrzennie w celu zaimplementowania funkcji przestrzennej OpenGIS z typami i funkcjami przestrzennymi SQL.
  • Rozszerzenia IBM Informix Geodetic and Spatial datablade są automatycznie instalowane podczas użytkowania i rozszerzają typy danych Informix o wiele standardowych układów współrzędnych i obsługę indeksów RTree. Dane geodezyjne i przestrzenne można również włączyć do obsługi danych Timeseries firmy Informix w celu śledzenia obiektów w ruchu w czasie.
  • Linter SQL Server obsługuje typy przestrzenne i funkcje przestrzenne zgodnie ze specyfikacją OpenGIS.
  • Microsoft SQL Server obsługuje typy przestrzenne od wersji 2008
  • Rozszerzenie MonetDB/GIS dla MonetDB dodaje proste funkcje OGS do relacyjnej bazy danych magazynu kolumn .
  • MySQL DBMS implementuje geometrię typu danych oraz kilka funkcji przestrzennych zaimplementowanych zgodnie ze specyfikacją OpenGIS. Jednak w MySQL w wersji 5.5 i wcześniejszych funkcje testujące relacje przestrzenne są ograniczone do pracy z minimalnymi prostokątami ograniczającymi, a nie z rzeczywistymi geometriami. Wersje MySQL wcześniejsze niż 5.0.16 obsługiwały tylko dane przestrzenne w tabelach MyISAM. Od MySQL 5.0.16, InnoDB, NDB, BDB i ARCHIVE również obsługują funkcje przestrzenne.
  • Neo4jbaza danych wykresów, która może budować indeksy 1D i 2D jako krzywa B-tree , Quadtree i Hilbert bezpośrednio na wykresie
  • OpenLink Virtuoso obsługuje SQL/MM od wersji 6.01.3126, ze znaczącymi ulepszeniami, w tym GeoSPARQL w Open Source Edition 7.2.6 i Enterprise Edition 8.2.0
  • Oracle przestrzenne
  • PostgreSQL DBMS (system zarządzania bazą danych) wykorzystuje przestrzenne rozszerzenie PostGIS do implementacji znormalizowanej geometrii typów danych i odpowiednich funkcji.
  • Redis z Geo API.
  • RethinkDB obsługuje indeksy geoprzestrzenne w 2D.
  • SAP HANA obsługuje geoprzestrzennie z SPS08.
  • Smallworld VMDS , natywna baza danych GE Smallworld GIS
  • Przestrzenny serwer zapytań firmy Boeing umożliwia przestrzennie Sybase ASE.
  • SpatiaLite rozszerza Sqlite o przestrzenne typy danych, funkcje i narzędzia.
  • Tarantool obsługuje zapytania geoprzestrzenne z indeksem RTREE.
  • Teradata Geospatial zawiera funkcje przestrzenne 2D (zgodne z OGC) w swoim systemie hurtowni danych.
  • Vertica Place , rozszerzenie geoprzestrzenne dla HP Vertica , dodaje funkcje przestrzenne zgodne z OGC do relacyjnej bazy danych magazynu kolumn .

Tabela darmowych systemów specjalnie do przetwarzania danych przestrzennych

DBS Licencja Rozpowszechniane Obiekty przestrzenne Funkcje przestrzenne Interfejs PostgreSQL Interfejs UMN MapServer Dokumentacja Modyfikowalny HDFS
ArangoDB Licencja Apache 2.0 tak tak tak - przegląd możliwości funkcji języka zapytań nie nie oficjalna dokumentacja AQL nie
GeoMesa Licencja Apache 2.0 tak tak ( Proste funkcje ) tak ( JTS ) nie (produkcja za pomocą GeoTools ) nie części funkcji, kilka przykładów dzięki prostemu dostępowi do funkcji w Java Virtual Machine i Apache Spark można rozwiązać wszelkiego rodzaju zadania tak
H2 (H2GIS) LGPL 3 (od v1.3), GPL 3 przed nie tak (niestandardowe, bez rastra) Prosty dostęp do funkcji i niestandardowe funkcje dla H2Network tak nie tak (strona główna) SQL nie
Ingres GPL lub zastrzeżone tak (jeśli rozszerzenie jest zainstalowane) tak (niestandardowe, bez rastra) Silnik geometrii, Open Source nie z MapScript tylko krótko z C i OME nie
Neo4J -przestrzenny Powszechna licencja publiczna GNU affero nie tak ( Proste funkcje ) tak (zawierają, zakrywają, zakrywają, krzyżują się, rozłączne, przecinają się, przecinają okno, nakładają się, dotykają, w obrębie i w odległości) nie nie tylko krótko widelec JTS nie
PostgreSQL z PostGIS Powszechna Licencja Publiczna GNU nie tak ( Proste funkcje i raster) tak ( prosty dostęp do funkcji i funkcje rastrowe) tak tak szczegółowy SQL, w połączeniu z R nie
Postgres-XL z PostGIS Licencja publiczna Mozilli i ogólna licencja publiczna GNU tak tak ( Proste funkcje i raster) tak ( prosty dostęp do funkcji i funkcje rastrowe) tak tak PostGIS: tak, Postgres-XL: krótko SQL związane z R lub Tcl lub Pythonie nie
Rasdaman serwer GPL , klient LGPL , własność przedsiębiorstwa tak po prostu raster manipulowanie rastrem za pomocą rasql tak z usługą pokrycia sieci lub usługą przetwarzania sieci szczegółowa wiki własna zdefiniowana funkcja w edycji Enterprise nie
Przemyśl DB AGPL tak tak
  • dystans
  • pobierz przecinające się
  • zdobądźNajbliższy
  • zawiera
  • przecina
nie nie oficjalna dokumentacja rozwidlenie nie

Zobacz też

Bibliografia

Dalsza lektura

Zewnętrzne linki