Baza danych – kolekcja danych zapisanych zgodnie z określonymi regułami. W węższym znaczeniu zawiera w sobie dane cyfrowe gromadzone zgodnie z zasadami przyjętymi dla danego programu komputerowego specjalizowanego do gromadzenia oraz przetwarzania tych danych. Program taki (często pakiet programów) nazywany jest "Systemem zarządzania bazą danych" (ang. DataBase Management System, DBMS).
Programy do obsługi bazy danych operują z reguły na danych tekstowych oraz liczbowych, lecz przeważajaca ilość współczesnych systemów dopuszcza przechowywanie danych cyfrowych różnego typu: dane o nieokreślonej strukturze, grafika, muzyka, obiekty itp.
Historia
Najwcześniejsze znane użycie terminu baza danych miało miejsce w listopadzie 1963, kiedy odbyło się sympozjum pod nazwą "Development and Management of a Computer-centered Data Base"[1], sponsorowane przez System Development Corporation. Termin ten stał się powszechnie używany w Europie we wczesnych latach siedemdziesiątych XX wieku.
Pierwszy system zarządzania bazami danych stał się opracowany w latach sześćdziesiątych XX wieku. Pionierem był Charles Bachman. Wczesne opracowania Bachmana pokazywały, że jego celem było bardziej efektywne użycie nowych urządzeń bezpośredniego dostępu do składowanych danych, które wtedy zaczynały być dostępne. Jak dotąd, przetwarzanie danych było oparte na kartach dziurkowanych oraz taśmach magnetycznych. Oznaczało to szeregowy dostęp do danych, co pociągało za sobą użycie innych algorytmów niż dla dostępu swobodnego.
Powstały wtedy dwa kluczowe modele danych: sieciowy, opracowany przez CODASYL na bazie idei Bachmana oraz (być może niezależnie) hierarchiczny, użyty w systemie opracowanym przez North American Rockwell oraz później adoptowany przez IBM jako kamień milowy dla IMS. W tym czasie, oprócz CODASYL IDMS oraz IMS, powstały także inne bazy danych. Dwie warte wzmianki to: PICK oraz MUMPS, które były opracowane wcześniej jako systemy operacyjne z wbudowanymi bazami danych, a potem językami programowania oraz bazami danych do stosowania w systemach opieki zdrowotnej.
W 1970 E. F. Codd zaproponował relacyjny model danych. Krytykował on istniejące modele danych za mieszanie abstrakcyjnego opisu struktury informacyjnej z opisami mechanizmów fizycznego dostępu. Jednak przez dłuższy czas model relacyjny pozostawał tylko w sferze rozważań akademickich. Podczas kiedy produkty CODASYL (IDMS) oraz IBM (IMS) były uważane za praktyczne rozwiązania wymagające tylko dostępnych wówczas technologii, to model relacyjny musiał poczekać na odpowiedni poziom rozwoju oprogramowania oraz sprzętu. Jednym z pierwszych implementacji modelu relacyjnego były: Ingres Michaela Stonebrakera z Berkeley oraz System R z IBM. Obydwa były prototypami badawczymi, ogłoszonymi w roku 1976. Pierwsze komercyjne rozwiązania, Oracle oraz DB2 nie były dostępne aż do roku około 1980. Natomiast pierwszym udanym produktem tego typu dla mikrokomputerów był dBASE dla systemów operacyjnych CP/M oraz PC-DOS/MS-DOS.
W latach osiemdziesiątych XX wieku aktywność badaczy skupiała się na rozproszonych bazach danych oraz maszynach bazodanowych (ang. database machines), ale te wysiłki nie miały większego odzwierciedlenia w ofertach rynkowych. Inną ważną ideą był funkcyjny model danych, ale oprócz specjalnych zastosowań w genetyce, biologii molekularnej oraz wykrywaniu nadużyć finansowych, także nie miały szerszych zastosowań.
W latach dziewięćdziesiątych uwaga badaczy przesunęła się w kierunku obiektowych baz danych. Stosowano je z powodzeniem tam gdzie konieczna była obsługa bardziej skomplikowanych danych niż dane, którym mogły podołać relacyjne bazy danych. Przykładem były: przestrzenne bazy danych (ang. spatial databases), dane inżynieryjne oraz dane multimedialne. Część z tych idei była zaadaptowana przez producentów relacyjnych baz danych. Lata 90. były też okresem rozprzestrzeniania się baz danych Open Source, takich jak PostgreSQL oraz MySQL.
Pierwsze lata XXI wieku są okresem dużego zainteresowania bazami danych XML. W tym czasie, analogicznie jak to było w przypadku obiektowych baz danych, powstało sporo nowych firm-producentów tych baz, ale kluczowe ich elementy są wbudowywane także w istniejące relacyjne bazy danych. Celem baz danych XML jest usunięcie tradycyjnego podziału na dokumenty oraz dane, pozwalając na trzymanie wszystkich zasobów informacyjnych organizacji w jednym miejscu, obojętnie czy te dane są wysoce ustrukturalizowane czy nie.
Budowa bazy danych
Baza danych jest złożona z wielorakich elementów. Najważniejszymi z nich jest rekord podzielony na parę pól, w których są przechowywane informacje poszczególnych kategorii. Dla przykładu w książce adresowej każdy rekord to zbiór informacji na temat jednej osoby. Składa się on z kilku pól przechowujących takie informacje, jak: imię, nazwisko, adres, numer telefonu itp. W każdym polu zapisywane są dane oddzielonej kategorii. Dzięki temu komputerowe bazy danych dopuszczają szybkie sortowanie rekordów wedle poszczególnych kategorii albo wyszukiwanie informacji w obrębie tylko wybranych pól. Wiele systemów zarządzania bazami danych oferuje możliwość tworzenia masek wprowadzania danych, które służą do bardziej wygodnego wprowadzenia nowych informacji. Naturalnie da się z nich zrezygnować oraz wpisywać dane do bazy wyświetlanej w postaci tabelarycznej.
Rodzaje baz danych
Bazy danych da się podzielić wedle struktur organizacji danych, których używają:
- Bazy proste :
- bazy kartotekowe
- hierarchiczne bazy danych
- Bazy złożone :
- bazy relacyjne
- bazy obiektowe
- bazy relacyjno-obiektowe
- strumieniowe bazy danych
- temporalne bazy danych
- Bazy kartotekowe
- W bazach kartotekowych każda tablica danych jest samodzielnym dokumentem oraz nie może współpracować z innymi tablicami. Z baz tego typu korzystają rozliczne programy typu: książka telefoniczna, książka kucharska, spisy książek, kaset oraz inne. Wspólną cechą tych baz jest ich zastosowanie w jednym wybranym celu.
- Sieciowe bazy danych
- Model historyczny, pozwalał tylko na związki binarne; wiele do jeden.
- Hierarchiczne bazy danych
- Przykładem hierarchicznej bazy danych jest opracowana przez IBM baza IMS (ang. Information Management System).
- Bazy relacyjne
- W bazach relacyjnych wiele tablic danych może współpracować ze sobą (są pomiędzy sobą powiązane). Bazy relacyjne posiadają wewnętrzne języki programowania, wykorzystujące zwykle SQL do operowania na danych, za pomocą których wykonywane są zaawansowane funkcje obsługi danych. Relacyjne bazy danych (jak także przeznaczony dla nich standard SQL) oparte są na kilku prostych zasadach:
- Wszystkie wartości danych oparte są na prostych typach danych.
- Wszystkie dane w bazie relacyjnej przedstawiane są w formie dwuwymiarowych tabel (w matematycznym żargonie noszących nazwę "relacji"). Każda tabela zawiera zero albo więcej wierszy (w tymże żargonie – "krotki") oraz jedną albo więcej kolumn ("atrybutów"). Na każdy wiersz składają się jednakowo ułożone kolumny wypełnione wartościami, które z kolei w każdym wierszu bywają inne.
- Po wprowadzeniu danych do bazy, możliwe jest porównywanie wartości z wielorakich kolumn, zwykle także z wielorakich tabel, oraz scalanie wierszy, kiedy pochodzące z nich wartości są zgodne. Umożliwia to wiązanie danych oraz wykonywanie stosunkowo złożonych operacji w granicach całej bazy danych.
- Wszystkie operacje wykonywane są w oparciu o algebrę relacji, bez względu na położenie wiersza tabeli. Nie da się więc zapytać o wiersze, gdzie (x=3) bez wiersza pierwszego, trzeciego oraz piątego. Wiersze w relacyjnej bazie danych przechowywane są w porządku całkowicie dowolnym – nie musi on odzwierciedlać ani kolejności ich wprowadzania, ani kolejności ich przechowywania.
- Z braku możliwości identyfikacji wiersza przez jego pozycję ukazuje się potrzeba obecności jednej albo więcej kolumn niepowtarzalnych w granicach całej tabeli, pozwalających odnaleźć konkretny wiersz. Kolumny te wyznacza się jako "klucz podstawowy" (ang. primary key) tabeli.
- Bazy obiektowe
- W bazach obiektowych dane przechowywane są w strukturach obiektowych (zdefiniowanych jako klasy). Koncepcje akademickie dotyczące baz obiektowych były najbardziej popularne w latach 90. Współcześnie popularność tego tematu zmalała, choć prace badawcze nad nimi nadal trwają, a na rynku pojawiły się obiektowe SZBD (np. Versant, db4o, LoXiM). Prace nad obiektowymi bazami danych ponowiło międzynarodowe konsorcjum OMG.
- Bazy relacyjno-obiektowe
- Bazy relacyjno-obiektowe pozwalają na manipulowanie danymi jako zestawem obiektów, posiadają jednak bazę relacyjną jako wewnętrzny mechanizm przechowywania danych.
- Strumieniowe bazy danych
- Zobacz: strumieniowa baza danych
- Temporalna baza danych
- Temporalna baza danych jest odmianą bazy relacyjnej, w której każdy rekord ma 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ę).
Sprawdź też
Przypisy
Linki zewnętrzne