3. Standaryzacja modeli danych przestrzennych



Podobne dokumenty
2. Modele danych przestrzennych

Multimedialne bazy danych. Andrzej Łachwa, WFAiIS UJ 2011

6. Organizacja dostępu do danych przestrzennych

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Baza danych. Baza danych to:

Przestrzenne bazy danych. Definicja i cechy przestrzennych baz danych

Systemy baz danych. mgr inż. Sylwia Glińska

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

Baza danych. Modele danych

2017/2018 WGGiOS AGH. LibreOffice Base

Bazy Danych. Bazy Danych i SQL Podstawowe informacje o bazach danych. Krzysztof Regulski WIMiIP, KISiM, regulski@metal.agh.edu.pl

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

Wykład I. Wprowadzenie do baz danych

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

Zastosowanie relacyjnych baz danych w Systemach Informacji Geograficznej

Alicja Marszałek Różne rodzaje baz danych

KURS ACCESS 2003 Wiadomości wstępne

8. Analiza danych przestrzennych

Definicja bazy danych TECHNOLOGIE BAZ DANYCH. System zarządzania bazą danych (SZBD) Oczekiwania wobec SZBD. Oczekiwania wobec SZBD c.d.

< K (2) = ( Adams, John ), P (2) = adres bloku 2 > < K (1) = ( Aaron, Ed ), P (1) = adres bloku 1 >

Pojęcie systemu informacyjnego i informatycznego

Przestrzenne bazy danych. Wstęp do przestrzennych baz danych

9. Podstawowe narzędzia matematyczne analiz przestrzennych

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)

Wykład 2. Relacyjny model danych

Paweł Kurzawa, Delfina Kongo

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000

Bazy danych - wykład wstępny

WPROWADZENIE DO BAZ DANYCH

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04

Rysunek 1: Przykłady graficznej prezentacji klas.

Baza danych to zbiór wzajemnie powiązanych ze sobą i zintegrowanych danych z pewnej dziedziny.

Bazy Danych. Bazy Danych i SQL Podstawowe informacje o bazach danych. Krzysztof Regulski WIMiIP, KISiM,

Podstawowe zagadnienia z zakresu baz danych

Programowanie obiektowe

Pojęcie bazy danych. Funkcje i możliwości.

Programowanie obiektowe

Podstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1

Bazy danych Wykład zerowy. P. F. Góra

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Wykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy

7. Analiza danych przestrzennych

2. Modele danych przestrzennych

BAZY DANYCH model związków encji. Opracował: dr inż. Piotr Suchomski

Wrocławska Wyższa Szkoła Informatyki Stosowanej. Bazy danych. Dr hab. inż. Krzysztof Pieczarka.

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku

Wprowadzenie do baz danych

Teoretyczne podstawy informatyki

Program wykładu. zastosowanie w aplikacjach i PL/SQL;

Porównanie systemów zarządzania relacyjnymi bazami danych

Podstawy Informatyki. Wykład 6. Struktury danych

Technologia informacyjna

Teoretyczne podstawy informatyki

Definicja pliku kratowego

Projektowanie systemów informatycznych. Roman Simiński siminskionline.pl. Modelowanie danych Diagramy ERD

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

PLAN WYKŁADU BAZY DANYCH INDEKSY - DEFINICJE. Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew

Wprowadzenie do baz danych

RELACYJNE BAZY DANYCH

Teoretyczne podstawy informatyki

Algebra liniowa z geometrią

RELACYJNE BAZY DANYCH I ICH ZNACZENIE W SYSTEMACH INFORMACJI GEOGRAFICZNEJ

BAZY DANYCH wprowadzenie. Opracował: dr inż. Piotr Suchomski

Relacyjny model baz danych, model związków encji, normalizacje

Bazy danych. Zachodniopomorski Uniwersytet Technologiczny w Szczecinie. Wykład 3: Model związków encji.

Wrota Parsęty II o bazie danych przestrzennych - wprowadzenie

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

PODSTAWY BAZ DANYCH Wykład 6 4. Metody Implementacji Baz Danych

GIS STRUKTURY DANYCH RELACJE PRZESTRZENNE.

Projektowanie relacyjnych baz danych

Abstrakcyjne struktury danych - stos, lista, drzewo

INFORMATYKA DANE.

Informatyka Ćwiczenie 10. Bazy danych. Strukturę bazy danych można określić w formie jak na rysunku 1. atrybuty

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi

030 PROJEKTOWANIE BAZ DANYCH. Prof. dr hab. Marek Wisła

WPROWADZENIE DO BAZ DANYCH

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

Modele (graficznej reprezentacji) danych przestrzennych postać danych przestrzennych

ORGANIZACJA I ZARZĄDZANIE INFORMACJĄ W BAZIE DNYCH. podstawowe pojęcia.

Pojęciowy model danych etap 1 (identyfikacja obiektów) Pojęciowy model danych etap 2A (powiązania obiektów)

Bazy danych. dr inż. Andrzej Macioł

Data Mining Wykład 9. Analiza skupień (grupowanie) Grupowanie hierarchiczne O-Cluster. Plan wykładu. Sformułowanie problemu

Tabela wewnętrzna - definicja

Model logiczny SZBD. Model fizyczny. Systemy klientserwer. Systemy rozproszone BD. No SQL


Bazy danych TERMINOLOGIA

Projektowanie struktury danych

WSTĘP DO INFORMATYKI. Struktury liniowe

BAZY DANYCH. Co to jest baza danych. Przykłady baz danych. Z czego składa się baza danych. Rodzaje baz danych

22. Podstawowe pojęcia baz danych. Baza Danych. Funkcje bazy danych. Właściwości bazy danych. Modele baz danych.


Bazy danych. Andrzej Łachwa, UJ, /15

Przykładowe B+ drzewo

Modelowanie konceptualne model EER

Jarosław Kuchta Projektowanie Aplikacji Internetowych. Projektowanie warstwy danych

FUNKCJE SZBD. ZSE - Systemy baz danych 1

1. Prymitywy graficzne

Transkrypt:

3. Standaryzacja modeli danych przestrzennych Budowa baz danych systemów SIP w oparciu o różne modele danych nie ułatwia późniejszej wymiany danych między systemami. Problem stał się na tyle istotny, że organizacja Open Geospatial Consortium Inc. opracowała standard Simple Feature Access, który szczegółowo określa zasady odzwierciedlania geometrii obiektów przechowywanych w systemie. Opracowany standard został przyjęty również jako norma ISO 19125. Przed szczegółowym omówieniem istoty standardu Simple Feature Access wprowadzimy kilka potrzebnych definicji. Boundary - reprezentacja granicy obiektu, Point - zerowymiarowy podstawowy element geometryczny reprezentujący pozycję, Curve - jednowymiarowy podstawowy element geometryczny reprezentujący linie łamaną, Surface - dwuwymiarowy podstawowy element geometryczny reprezentujący obszar, GeometryCollection - kolekcja geometrii. Na poniższym rysunku przedstawiono schemat Simple Feature Access opisany w notacji UML w postaci diagramu klas. Rys. 3.1. Schemat prostego modelu geometrycznego Cały schemat składa się klasy geometrii podstawowej (base geometry) i geometrii rozszerzonej (extended geometry). Geometria podstawowa zawiera w sobie klasy Point, Curve, Surface oraz GeometryCollection. Geometria rozszerzona zawiera wyspecjalizowane klasy 0, 1 i 2-wymiarowe MultiPoint, MultiLineString i MultiPolygon oraz dwie abstrakcyjne nadklasy MultiCurve i MultiSurface zbierające obiekty typu Curve i Surface.

Waldemar Izdebski - Wykłady z przedmiotu SIT 42 3.1. Klasa Geometry W modelu zaproponowanym przez OGC wszystkie typy obiektów są skupione w klasie Geometry, która zawiera wspólne właściwości obiektów. Jest to tzw. klasa abstrakcyjna. Oznacza to, że nie może być ona reprezentacją żadnego obiektu rzeczywistego, a zawiera jedynie zbiór reguł definiujących inne klasy. Obiekty geometryczne rozpatrywane są w przestrzeni dwuwymiarowej. 3.1.1. Podstawowe metody klasy Geometry Dla klasy Geometry zdefiniowano kilka podstawowych metod służących określaniu właściwości obiektów, nalezą do nich metody: Dimension( ):Integer zwraca wymiarowość obiektu, która musi być mniejsza lub równa wymiarowi układu współrzędnych, GeometryType( ):String zwraca nazwę typu geometrii, SRID( ):Integer zwraca identyfikator układu współrzędnych w którym po są współrzędne obiektu, Envelope( ):Geometry zwraca minimalny prostokąt ograniczający geometrię, prostokąt jest definiowany jako poligon [(minx, miny), (MaxX, MinY), (MaxX, MaxY), (MinX, MaxY), (MinX, MinY)], AsText( ):String zwraca geometrię w postaci tekstowej, AsBinary( ):Binary zwraca geometrię w postaci binarnej, IsEmpty( ):Integer zwraca wartość 1, jeśli obiekt nie posiada geometrii, IsSimple( ):Integer zwraca wartość 1, jeśli obiekt jest obiektem prostym tzn. nie posiadającym żadnych anomali typu przecięcia wzajemne boków obiektu, w przypadku obydwu obiektów przedstawionych na rysunku 3.2 metoda IsSimple nie zwróci wartości 1 ponieważ występują w nich wzajemne przecięcie odcinków definiujących obiekty, Boundary( ):Geometry zwraca granicę obiektu. punkt początkowy punkt końcowy punkt początkowy = punkt końcowy Rys. 3.2. Ilustracja wyników metod IsClosed oraz IsSimple Jeśli geometria obiekt jest kolekcją geometrii wtedy aby uzyskać dostęp do konkretnej geometrii musimy skorzystać z dwóch metod: NumGeometries( ):Integer zwraca liczbę geometriii w obiekcie, GeometryN(N:integer):Geometry zwraca N-tą geometrię z kolekcji.

Waldemar Izdebski - Wykłady z przedmiotu SIT 43 3.1.2. Metody klasy Geometry służące testowaniu relacji z innymi obiektami Inna grupą metod zdefiniowanych dla klasy Geometry są metody służące do określania relacji przestrzennych miedzy danym obiektem, a innym wskazanym obiektem. Ogólnie definicje każdej z tych metod można zapisać następująco: Metoda(innaGeometria:Geometry):Integer zwraca wartość 1 jeśli prawda. Poniżej przedstawiono wszystkie zdefiniowane metody i ilustracje graficzne poszczególnych relacji przestrzennych obiektów. Operator Opis Ilustracja geometryczna Eqals zwraca wartość 1 jeśli obiekty są równe przestrzennie, tzn. ich geometrie się pokrywają, Disjoint zwraca wartość 1 jeśli obiekty są całkowicie rozdzielne przestrzennie, Intersects zwraca wartość 1 jeśli obiekty wzajemnie się przecinają, Touches zwraca wartość 1 obiekty przylegają do siebie, Crosses zwraca wartość 1 jeśli obiekty przecinają się krawędziami, Within zwraca wartość 1 jeśli jeden obiekt znajduje się całkowicie wewnątrz drugiego Contains odwrotność Within, zwraca wartość 1 jeśli obiekt całkowicie zawiera w sobie inny obiekt, Overlaps zwraca wartość 1 jeśli obiekt częściowo przykrywa inny obiekt,

Waldemar Izdebski - Wykłady z przedmiotu SIT 44 3.1.3. Metody klasy Geometry związane z analizami przestrzennymi Ostatnia grupa metod zdefiniowanych dla klasy Geometry są metody przydatne w procesie analiz przestrzennych. Do metod tej grupy zaliczamy: Distance(innaGeometria:Geometry):Double zwraca najmniejszą odległość między obiektami, Buffer(odleglosc:Double):Geometry zwraca geometrię buforu we wskazanej odległości od geometrii obiektu, ConvexHull( ):Geometry zwraca geometrię otoczki wypukłej dla obiektu, Intersectionl(innaGeometria:Geometry):Geometry zwraca zbiór punktów przecinania się geometrii obiektów, Union(innaGeometria:Geometry):Geometry zwraca zbiór punktów zawierających wszystkie punkty obydwu geometrii, Difference(innaGeometria:Geometry):Geometry zwraca zbiór punktów zawierających wszystkie punkty stanowiące różnicę obydwu geometrii, SymDifference(innaGeometria:Geometry):Geometry zwraca zbiór punktów zawierających wszystkie punkty stanowiące symetryczną różnicę obydwu geometrii. 3.1.4. Metody charakterystyczne dla poszczególnych klas obiektów Oprócz opisanych wcześniej metod ogólnych związanych z klasą Geometry każdy typ geometrii posiada charakterystyczne metody specyficzne dla siebie. Klasa Point Najbardziej podstawową klasą geometryczną jest Punkt. Jest to 0-wymiarowa reprezentacja geometryczna pozycji w przestrzeni. Posiada współrzędne x i y. Granica (Boundary) dla punktu nie istnieje, gdyż granica to zawsze obiekt n-1 wymiarowy w stosunku do obiektu ograniczanego. Metody dostępne w klasie Point to X( ):Double wartość współrzędnej X dla punktu, Y( ):Double wartość współrzędnej Y dla punktu. Klasa MultiPoint MultiPoint jest klasą geometryczną złożoną z wielu punktów. Znaczy to, że jeden obiekt jest reprezentowany przez zbiór punktów. Również jak w przypadku Point obiekt nie posiada granicy, a punkty nie są uszeregowane w żaden sposób. Klasa Curve Curve jest geometrycznym obiektem zbudowanym z sekwencji punktów. Dla klasy Curve zdefiniowane są następujące metody: Length( ):Double wyznaczenie długości linii, StartPoint( ):Point zwraca punkt początkowy, EndPoint( ):Point zwraca punkt końcowy, IsClosed( ):Integer zwraca wartość 1 jeśli obiekt jest zamknięty tzn. StartPoint()=EndPoint(), IsRing( ):Integer zwraca wartość 1 jeśli obiekt jest zamknięty tzn. StartPoint()=EndPoint() oraz nie występują w nim wzajemne przecięcia odcinków.

Waldemar Izdebski - Wykłady z przedmiotu SIT 45 Geometria i metody klasy LineString, Line, LinearRing LineString jest linią łamaną (Curve) w którym każda para współrzędnych definiuje odcinek linii prostej. W szczególności Line składa się dokładnie z dwóch punktów, a LinearRing charakteryzuje się tym, że jest obiektem zamkniętym tzn. punkt początkowy i końcowy się pokrywają. Metody związane z tymi obiektami to: NumPoints( ):Integer zwraca liczbę punktów wchodzących w skład obiektu, PointN(N:integer):Point zwraca konkretny punkt związany z obiektem. Geometria i metody klasy MultiCurve MultiCurve jest kolekcją obiektów klasy Curve. Obiekt jest obiektem prostym tylko wtedy jeśli wchodzące w skład kolekcji obiekty składowe nie przecinają się w innych punktach niż punkty definiujące obiekty. Z klasą związane są dwie metody: IsClosed( ):Integer zwraca wartość 1 jeśli obiekt jest zamknięty tzn. StartPoint()=EndPoint() zachodzi dla każdego elementu Curve w MultiCurve, Length( ):Double wyznaczenie długości wszystkich elementów Curve chodzących w skład obiektu. Geometria i metody klasy Surface Surface wyznacza obszar płaszczyzny. Związane z nim metody to: Area( ):Double pole powierzchni, Centroid( ):Point punktowa interpretacja obszaru, PointOnSurface( ):Point zwraca punkt z gwarancja, że jest położony wewnątrz obszaru obiektu. Geometria i metody klasy Polygon Polygon jest obszarem zdefiniowanym przez jeden zewnętrzny obiekt stanowiący granicę oraz wiele obiektów wewnętrznych, które definiują obszary wyłączone (wyspy). Do specyficznych metod klasy należą: ExteriorRing( ):LineStringe zwraca zewnętrzny obiekt definiujący poligon, NumInteriorRing( ):Integer zwraca liczbę wewnętrznych obszarów poligonu, InteriorRingN(N:integer):LineString zwraca geometrie wskazanego obszaru w ramach poligonu, Geometria i metody klasy MultiSurface MultiSurface jest kolekcją elementów typu Surface. Wnętrza (interiors) elementów Surface wchodzących w skład kolekcji nie mogą się wzajemnie przecinać. Klasa MultiSurface jest jedynie klasą abstrakcyjną i tylko definiuje pewne charakterystyczne dla niej metody. Instancyjną podklasą dla MutliSurface jest klas MultiPolygon. Poniżej przedstawiono metody zdefiniowane dla klasy MultiSurface: Area( ):Double pole powierzchni, Centroid( ):Point punktowa interpretacja obszaru, rezultat nie gwarantuje że uzyskany punkt będzie leżał w obszarze konkretnego MuluSurface. PointOnSurface( ):Point zwraca punkt z gwarancja, że jest położony wewnątrz obszaru obiektu.

Waldemar Izdebski - Wykłady z przedmiotu SIT 46 4. Ogólne informacje o strukturach i bazach danych Przyjęte do modelowania rzeczywistości modele przestrzenne w praktycznej realizacji systemu muszą znaleźć odzwierciedlenie w odpowiednich danych, zapisanych w bazach danych z zastosowaniem struktur danych określających ich interpretację. 4.1. Struktury danych Elementy składowe danych (określone typy liczb, ciągi znaków alfanumerycznych) są ze sobą łączone, tworząc struktury danych, na których wykonuje się właściwe tym strukturom operacje. Struktury danych stanowią formy pośrednie między modelami danych, które mają charakter koncepcyjny i fizycznymi reprezentacjami danych w postaci numerycznej. Struktury danych określają sposób dostępu do określonego obszaru lub obszarów pamięci i ich interpretację. Najważniejsze struktury danych przedstawiono schematycznie na rysunku 3.1. a) P1 P2 Pi Pq b) i,j c) wskaźnik wskaźnik wskaźnik wskaźnik wskazanie puste d) wskazanie puste wskaźnik-1 wskaźnik-1 wskaźnik-1 wskaźnik-1 wskaźnik-2 wskaźnik-2 wskaźnik-2 wskaźnik-2 wskazanie puste e) f) Rys. 4.1.Przykładowe struktury danych

Waldemar Izdebski - Wykłady z przedmiotu SIT 47 Rekord Rekord (rysunek 3.1a) jest zbiorem q elementów, które mogą być różnych typów i zapisywane są w ustalonej kolejności. Elementy rekordu nazywane są polami. W szczególności pola mogą być również innymi strukturami danych. Tablica Tablica (rysunek 3.1b) jest uporządkowanym zbiorem elementów tego samego typu. Elementy identyfikowane są za pomocą q indeksów, gdzie q określa wymiar tablicy. Tablica jednowymiarowa jest reprezentacją wektora, a tablica dwuwymiarowa - macierzy. Elementy tablicy zapisywane są w ustalony sposób, np. wiersz po wierszu lub kolumna po kolumnie. Lista Lista jest uporządkowanym zbiorem elementów, które mogą być pojedynczymi danymi określonych typów lub też innymi strukturami danych np. innymi listami. Lista nie zawierająca innych list nazywa się listą liniową, natomiast zawierająca inne listy nazywa się strukturą listową. Uporządkowanie elementów listy może być ustalone kolejnością zapisu lub wskaźnikiem dołączonym do każdego elementu i wskazującym miejsce następnego lub sygnalizującym koniec listy. W zależności od powiązań między elementami listy wyróżnia się: listę jednokierunkową - dla każdego składnika poza ostatnim określony jest składnik następny (rysunek 3.1c), listę dwukierunkową - każdy składnik z wyjątkiem pierwszego i ostatniego posiada określony element poprzedni i następny, dla elementu pierwszego określony jest jedynie element następny, a dla ostatniego element poprzedni (rysunek 3.1d). Szczególnymi przypadkami list liniowych są stosy i kolejki. Stos jest listą liniową, do której dostęp istnieje tylko w jednym miejscu. Miejsce dostępu nazywa się wierzchołkiem stosu i jest jedynym miejscem do którego można dołączyć lub z którego można usuwać elementy. Oznacza to, że element wprowadzony na stos jako ostatni będzie odczytany jako pierwszy. Kolejka jest listą liniową, do której elementy mogą być wprowadzane tylko w jednym końcu (na początku kolejki) a usuwane w drugim końcu (na początku kolejki). Drzewo Drzewo jest strukturą ustanawiającą hierarchie elementów. Każdy element (węzeł) jest przyporządkowany jednemu elementowi nadrzędnemu i ma pewną liczbę elementów podrzędnych. Pierwszy element drzewa zwany korzeniem nie ma elementu nadrzędnego. Elementy na najniższym poziomie nie mają elementów podrzędnych. Jeśli każdy z elementów posiada co najwyżej dwa elementy następne (następniki) wtedy drzewo nazywany drzewem binarnym. W przeciwnym wypadku drzewo nazywanym drzewem wielokierunkowym rzędu n, gdzie n określa maksymalną liczbę następników. Rysunek 3.1e ilustruje drzewo binarne. Graf Graf jest klasą struktur reprezentujących sieć elementów. Każdy element może być połączony z dowolnym innym elementem grafu. Z tego też względu grafy definiowane są przez dwa zbiory: zbiór wierzchołków i zbiór krawędzi określający powiązania między poszczególnymi wierzchołkami (rysunek 3.1f).

Waldemar Izdebski - Wykłady z przedmiotu SIT 48 4.2. Bazy danych Bazę danych określa się jako zbiór powiązanych wzajemnie danych. Powiązanie danych realizowane jest przez zastosowanie odpowiednich struktur danych. Ponieważ jedna baza danych może być wykorzystywana przez różne programy aplikacyjne, dla odciążenia tych programów od powtarzających się czynności związanych z obsługa bazy danych, wszystkie funkcje z tym związane wykonywane są przez specjalny pakiet programów zwany systemem zarządzania bazą danych (DBMS - Database Management System). Główne zadania DBMS można określić następująco: 1. zapamiętywanie danych oraz ich wyszukiwanie na podstawie różnych warunków, 2. oddzielenie funkcji zapamiętywania i wyszukiwania od programów aplikacyjnych, co powoduje, że programy stają się mniej wrażliwe na zmiany bazy danych, 3. umożliwienie korzystania z danych na podstawie ich logicznego opisu; system przejmuje całkowicie kontrolę nad wykorzystaniem urządzeń pamięciowych dla zapisu danych, 4. umożliwienie dostępu do danych wielu użytkownikom jednocześnie, 5. weryfikowanie danych za pomocą odpowiednio zdefiniowanych procedur kontrolnych, 6. ochrona danych (archiwizacja, zarządzanie prawami użytkowników). Dostęp do bazy danych powinien być realizowany za pośrednictwem łatwego w użyciu języka zapytań oraz z zastosowaniem języków programowania wysokiego poziomu. Z punktu widzenia stosowanych struktur można wyróżnić cztery podstawowe rodzaje baz danych: hierarchiczne, sieciowe, relacyjne i obiektowe. Wymieniona kolejność jest również kolejnością chronologiczną w jakiej poszczególne bazy powstawały. W hierarchicznej bazie danych stosuje się struktury typu drzewa. Węzłom w strukturze drzewa odpowiadają zbiory rekordów danych. Zbiór rekordów poziomu wyższego jest łączony relacjami 1:m (one-to-many) ze zbiorami poziomu niższego. Dzięki takiej budowie, wyszukiwanie określonych elementów w bazie odbywa się stosunkowo szybko. Istotna wadą baz hierarchicznych jest jednak redundancja danych wynikająca z faktu, że można wykorzystywać jedynie relacje typu 1:m. Duże kłopoty sprawia również zmiana struktury istniejącej bazy. Sieciowa baza danych jest rozwinięciem bazy hierarchicznej przez dodanie możliwości zapisu relacji m:m (many-to-many). Tak więc w bazie sieciowej poza relacjami hierarchicznymi występują dodatkowe połączenia, umożliwiające uzyskanie dostępu do go rekordu bez potrzeby każdorazowego przechodzenia przez strukturę drzewa. Wprowadzone zmiany spowodowały zmniejszenia redundancji danych przez dodatkowe możliwości powiązania danych, które już istnieją, ale nie wyeliminowały trudności związane ze zmianą struktury bazy istniejącej. W relacyjnej bazie danych wykorzystywana jest struktura tablicy. W skład bazy wchodzi jedna lub więcej powiązanych ze sobą tablic. Każda kolumna tablicy zawiera elementy tego samego typu, ma swoją nazwę i jest przez nią identyfikowana. Zbiór wartości jakie mogą występować w j kolumnie nazywa się jej dziedziną. Wiersz tablicy, nazywany rekordem lub krotką, identyfikowany jest za pośrednictwem wartości zapisanych w nim elementów (atrybutów). Funkcję klucza, jednoznacznie określającego poszczególne wiersze, może spełniać pojedyncza kolumna lub też kilka odpowiednio wybranych kolumn.

Waldemar Izdebski - Wykłady z przedmiotu SIT 49 Podstawą sprawnego i bezpiecznego operowania relacyjną bazą danych jest właściwy podział danych na tablice, który dokonywany jest fazie projektowania bazy danych. Wyszukiwanie danych w bazie dokonywane jest za pośrednictwem języka zapytań (query language). W relacyjne bazie danych typowym językiem zapytań jest język SQL (ang. Structured Query Language). Wyszukiwanie w więcej niż jednej tablicy dokonywane jest z wykorzystaniem wspólnych wartości tego samego typu atrybutów. Operowanie baz relacyjnych na prostej strukturze jaką są tablice powoduje, że posiadające struktury złożone muszą być przechowywane w wielu powiązanych tablicach. Proces rekonstrukcji tak rozdzielonych danych jest więc związany z przeszukiwaniem i analizowaniem zawartości wielu tablic. Obiektowe bazy danych rozwinęły się wraz z rozwojem i rozpowszechnieniem programowania zorientowanego obiektowo. Cechą charakterystyczną obiektowych baz danych jest to, że przechowują obiekty o dowolnych strukturach wraz z przywiązanymi do nich metodami (procedurami). Dzięki takiemu rozwiązaniu bazy takie mają znaczną przewagę nad innymi rodzajami baz kiedy zachodzi konieczność przechowywania bardzo złożonych struktur. Znaczącą wadą baz obiektowych w chwili obecnej jest problem z realizacją zapytań. Większość współczesnych baz pozwala jedynie na proste przeszukiwanie przechowywanych obiektów. Takie udogodnienia jakie bez problemów można wykorzystywać w bazach relacyjnych na razie są nieosiągalne i znajdują się jedynie w stadium rozwojowych prac badawczych. Rozwiązanie w przyszłości tych problemów prawdopodobnie sprawi, że bazy te będą miały coraz większe zastosowania również w systemach informacji przestrzennej. Obecnie najczęściej stosowanymi bazami danych w systemach informacji przestrzennej są bazy relacyjne. Pakiet programów służący zarządzaniu relacyjną bazą danych nazywany jest RDBMS (ang. Relational Database Management System). Bazy te z powodzeniem realizują wszystkie funkcje związane z zarządzaniem informacją opisową. W przypadku zarządzania informacją przestrzenną pojawiają się natomiast pewne kłopoty wynikające z dużej liczby danych przestrzennych oraz konieczności dostępu do nich w trybie interaktywnym. Ma to szczególne znaczenie przy wyszukiwaniu obiektów spełniających wymagane warunki przestrzenne (np. wybranie wszystkich obiektów leżących wewnątrz go wielokąta) lub topologiczny (np. wybór obiektów stykających się z obiektem danym). Skrócenie czasu dostępu wiąże się przede wszystkim ze zredukowaniem liczby kontaktów z pamięcią dyskową. Służy temu najczęściej i najskuteczniej wyposażanie RDBMS w odpowiednie metody indeksowanie przestrzennego zgromadzonych danych (Quad-tree, R-tree).