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:
- zapamiętywanie danych oraz ich wyszukiwanie na podstawie różnych warunków,
- oddzielenie funkcji zapamiętywania i wyszukiwania od programów aplikacyjnych, co powoduje, że programy stają się mniej wrażliwe na zmiany bazy danych,
- umożliwienie korzystania z danych na podstawie ich logicznego opisu; system przejmuje całkowicie kontrolę nad wykorzystaniem urządzeń pamięciowych dla zapisu danych,
- umożliwienie dostępu do danych wielu użytkownikom jednocześnie,
- weryfikowanie danych za pomocą odpowiednio zdefiniowanych procedur kontrolnych,
- 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
- obiektowe.
Wymieniona kolejność jest również kolejnością chronologiczną w jakiej poszczególne bazy powstawały.
Hierarchiczna
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
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 danego 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.
Relacyjna
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 dane 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.
Obiektowa
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 danego 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).
Powyższy tekst jest fragmentem wykładów dr inż. Waldemara Izdebskiego prowadzonych w ramach przedmiotu SIT i Mapa zasadnicza na Wydziale Geodezji i Kartografii Politechniki Warszawskiej (www.izdebski.edu.pl)