Rodzaje baz danych
Bazy danych można podzielić według struktur organizacji danych, których używają:
Bazy proste:
-- kartotekowe
-- hierarchiczne
Bazy złożone:
-- relacyjne
-- obiektowe
-- relacyjno - obiektowe
-- strumieniowe
-- temporalne
-- nierelacyjne (NoSQL)
Najczęściej wśród tych struktur wykorzystywane są bazy relacyjne.
Bazy kartotekowe
W bazach kartotekowych każda tablica danych jest samodzielnym dokumentem. Jedna tablica nie może współpracować z innymi. Przykładami tego typu bazy danych mogą być: książki telefoniczne, kucharskie, spisy książek. Są one stosowane w jednym, wybranym wcześniej celu. Dane w kartotekowych bazach danych można sortować, przeszukiwać, stosować w nich filtry ograniczające zakres wyświetlanych informacji.
Bazy hierarchiczne
Są to bazy danych zawierające powiązane ze sobą dane, ułużone w strukturę o kształcie drzewa z jednym punktem początkowym i wieloma rozgałęzieniami. Przypomina to strukturę danych na dysku komputera ułożonych w jednym punkcie początkowym (np. partycja C), i wieloma rozgałęzieniami (foldery /Windows, /Drivers czy /Program Files). Hierarchiczny model bazy danych cechuje skomplikowana struktura i trudności z tworzeniem określonego typu powiązań pomiędzy danymi.
Bazy relacyjne
W przeciwieństwie do baz kartotekowych, w bazach relacyjnych wiele tablic danych może ze sobą współpracować. Bazy te posiadają wewnętrzne języki programowania, wykorzystujące zwykłe SQL do operowania na danych, dzięki czemu tworzone są zaawansowane funkcje obsługi danych. Relacyjne bazy danych oparte są na kilku podstawowych zasadach:
1. Wszystkie wartości są oparte na prostych typach danych (np. int reprezentujący liczbę całkowitą, czy char reprezentujący tekst)
2. Wszelakie dane są reprezentowane w formie dwuwymiarowych tabel. Każda tabela zawiera minimum 0 wierszy i 1 kolumnę.
3. Jest możliwość porównywania wartości z różnych kolumn, zazwyczaj też z różnych tabel. Można scalać wiersze, gdy pochodzące z nich wartości są zgodne.
4. Wszelakie operacje wykonywane są w oparciu o algebrę relacji, bez względu na położenie wiersza w tabeli. Wiersze w relacyjnej bazie danych przechowywane są w porządku zupełnie dowolnym – nie musi on odzwierciedlać ani kolejności ich wprowadzania, ani kolejności ich przechowywania
5. Musi w bazie znajdować się minimum jedna kolumna posiadająca niepowtarzalne wartości w granicach całej tabeli. Kolumny te określane są nazwą "klucza podstawowego" (ang. primary key).
Bazy obiektowe
W bazach obiektowych dane są przechowywane za pomocą struktur obiektowych, będących zdefiniowanych jako klasy. Nie są one zdefiniowane żadnym oficjalnym standardem. 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.
Bazy relacyjno - obiektowe
Bazy relacyjno-obiektowe pozwalają na manipulowanie danymi jako zestawem obiektów, posiadają jednak bazę relacyjną jako wewnętrzny mechanizm przechowywania danych.
Bazy strumieniowe
Strumieniowe bazy danych są to bazy, w których dane są predstawione w postaci strumieni danych. System zarządzania taką bazą nazywany jest DSMS (ang. Data Stream Managament System) czyli strumieniowym systemem zarządzania danymi. Większość tego typu baz w chwili obecnej znajdują się w fazach prototypowych i nie powstały dotychczas rozwiązania komercyjne. W modelu strumieni danych zakłada się, że niektóre lub wszystkie napływające do systemu dane nie są dostępne w dowolnej chwili. Możliwy czas, w jakim można je zarejestrować jest skończony. Dane te pojawiają się w źródle danych i przyjmują postać strumienia danych.
Bazy temporalne
Jest to odmiana bazy relacyjnej, w której każdy rekord posiada stempel czasowy, określający czas, w jakim wartość jest prawdziwa. Posiada także operatory algebry relacyjnej, które pozwalają operować na danych temporalnych (wyciągać historię).
Bazy nierelacyjne
Pod pojęciem bazy nierelacyjnej (NoSQL database) najczęściej rozumie się przechowywanie danych w formie listy par obiektów klucz-wartość, w których nie występują powiązania relacyjne między przechowywanymi obiektami. W bazie NoSQL najczęściej nie ma wymagania aby obiekty były jednorodne pod względem struktury.
Komentarze