Baza danych
? zbior danych zapisanych zgodnie z okre?lonymi regułami. W w??szym znaczeniu obejmuje
dane
cyfrowe gromadzone zgodnie z zasadami przyj?tymi dla danego
programu komputerowego
specjalizowanego w gromadzeniu i przetwarzaniu tych danych. Program taki (cz?sto: pakiet programow) nazywany jest ?
systemem zarz?dzania baz? danych
” (
ang.
database management system
, DBMS).
W ustawie z 27 lipca 2001 r. o ochronie baz danych to poj?cie zostało zdefiniowane jako zbior danych lub jakichkolwiek innych materiałow i elementow zgromadzonych według okre?lonej systematyki lub metody, indywidualnie dost?pnych w jakikolwiek sposob, w tym ?rodkami elektronicznymi, wymagaj?cy istotnego, co do jako?ci lub ilo?ci, nakładu inwestycyjnego w celu sporz?dzenia, weryfikacji lub prezentacji jego zawarto?ci
[1]
.
Programy do obsługi bazy danych operuj? głownie na danych tekstowych i liczbowych, lecz wi?kszo?? wspołczesnych systemow umo?liwia przechowywanie danych cyfrowych ro?nego typu: dane o nieokre?lonej strukturze,
grafika
,
muzyka
, obiekty itp.
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”
[2]
, 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 został 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, ktore wtedy zaczynały by? dost?pne. Jak dot?d, przetwarzanie danych było oparte na
kartach dziurkowanych
i
ta?mach magnetycznych
. Oznaczało to szeregowy dost?p do danych, co poci?gało za sob? u?ycie innych algorytmow ni? dla dost?pu swobodnego.
Powstały wtedy dwa kluczowe
modele danych
: sieciowy, opracowany przez
CODASYL
na bazie idei Bachmana i (by? mo?e niezale?nie) hierarchiczny, u?yty w systemie opracowanym przez North American Rockwell i po?niej adaptowany przez
IBM
jako kamie? milowy dla
IMS
. W tym czasie, oprocz CODASYL IDMS i IMS, powstały tak?e inne bazy danych. Dwie warte wzmianki to:
PICK
i
MUMPS
, ktore były opracowane wcze?niej jako systemy operacyjne z wbudowanymi bazami danych, a potem j?zykami programowania i 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 mechanizmow fizycznego dost?pu. Jednak przez dłu?szy czas model relacyjny pozostawał tylko w sferze rozwa?a? akademickich. Podczas gdy produkty CODASYL (IDMS) i IBM (IMS) były uwa?ane za praktyczne rozwi?zania wymagaj?ce tylko dost?pnych wowczas technologii, to model relacyjny musiał poczeka? na odpowiedni poziom rozwoju oprogramowania i sprz?tu. Jednym z pierwszych implementacji modelu relacyjnego były:
Ingres
Michaela Stonebrakera z Berkeley i
System R
z IBM. Oba były prototypami badawczymi, ogłoszonymi w roku 1976. Pierwsze komercyjne rozwi?zania,
Oracle
i
DB2
nie były dost?pne a? do roku około 1980. Natomiast pierwszym udanym produktem tego typu dla mikrokomputerow był
dBASE
dla systemow operacyjnych
CP/M
i
PC-DOS
/
MS-DOS
.
W latach osiemdziesi?tych XX wieku aktywno?? badaczy skupiała si? na
rozproszonych bazach danych
i 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 oprocz specjalnych zastosowa? w genetyce, biologii molekularnej i 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, ktorym mogły podoła? relacyjne bazy danych. Przykładem były:
przestrzenne bazy danych
(ang.
spatial databases
), dane in?ynieryjne i dane multimedialne. Cz??? z tych idei została zaadaptowana przez producentow relacyjnych baz danych. Lata 90. były te? okresem rozprzestrzeniania si? baz danych
Open Source
, takich jak
PostgreSQL
i
MySQL
.
Pierwsze lata XXI wieku s? okresem du?ego zainteresowania
bazami danych XML
. W tym czasie, podobnie jak to było w przypadku obiektowych baz danych, powstało sporo nowych firm-producentow 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 i dane, pozwalaj?c na trzymanie wszystkich zasobow informacyjnych organizacji w jednym miejscu, oboj?tnie czy te dane s? wysoce ustrukturalizowane czy nie.
Sposob organizacji danych w bazach danych jest ro?ny. Wiele typow baz danych organizuje dane w formie tabel zawieraj?cych rekordy podzielone na pola, w ktorych s? przechowywane informacje poszczegolnych kategorii. Na przykład w ksi??ce adresowej ka?dy rekord to zbior
informacji
na temat jednej osoby. Składa si? on z kilku pol 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 umo?liwiaj? szybkie sortowanie rekordow według poszczegolnych kategorii lub wyszukiwanie informacji w obr?bie tylko wybranych pol.
Bazy danych mo?na podzieli? według struktur organizacji danych, ktorych u?ywaj?:
- Bazy proste:
- kartotekowe
- hierarchiczne
- Bazy zło?one:
- relacyjne
- obiektowe
- relacyjno-obiektowe
- strumieniowe
- temporalne
- serii czasowych
- nierelacyjne (NoSQL)
Z wymienionych struktur, w praktyce zdecydowanie najcz??ciej u?ywane s? bazy relacyjne.
W bazach kartotekowych ka?da tablica danych jest samodzielnym dokumentem i nie mo?e wspołpracowa? z innymi tablicami. Z baz tego typu korzystaj? liczne programy typu: ksi??ka telefoniczna, ksi??ka kucharska, spisy ksi??ek, kaset i inne. Wspoln? cech? tych baz jest ich zastosowanie w jednym wybranym celu.
Model historyczny, pozwalał tylko na zwi?zki binarne; wiele do jeden.
Hierarchiczne bazy danych
[
edytuj
|
edytuj kod
]
Przykładem hierarchicznej bazy danych jest opracowana przez
IBM
baza
IMS
(ang.
Information Management System
).
Osobny artykuł:
Model relacyjny
.
W bazach relacyjnych wiele tabel danych mo?e wspołpracowa? ze sob? (s? mi?dzy sob? powi?zane). Bazy relacyjne posiadaj? wewn?trzne j?zyki programowania, wykorzystuj?ce zwykle
SQL
do operowania na danych, za pomoc? ktorych tworzone s? zaawansowane funkcje obsługi danych. Relacyjne bazy danych (jak rownie? 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 lub wi?cej wierszy (w tym?e ?argonie ? ?
krotki
”) i jedn? lub wi?cej kolumn (?atrybutow”). Na ka?dy wiersz składaj? si? jednakowo uło?one kolumny wypełnione warto?ciami, ktore z kolei w ka?dym wierszu mog? by? inne.
- Po wprowadzeniu danych do bazy, mo?liwe jest porownywanie warto?ci z ro?nych kolumn, zazwyczaj rownie? z ro?nych tabel, i scalanie wierszy, gdy pochodz?ce z nich warto?ci s? zgodne. Umo?liwia to wi?zanie danych i 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 mo?na wi?c zapyta? o wiersze, gdzie (x=3) bez wiersza pierwszego, trzeciego i pi?tego. 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.
- Z braku mo?liwo?ci identyfikacji wiersza przez jego pozycj? pojawia si? potrzeba obecno?ci jednej lub wi?cej kolumn niepowtarzalnych w granicach całej tabeli, pozwalaj?cych odnale?? konkretny wiersz. Kolumny te okre?la si? jako ?klucz podstawowy” (ang.
primary key
) tabeli.
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. Wspoł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 pozwalaj? na manipulowanie danymi jako zestawem obiektow, posiadaj? jednak baz? relacyjn? jako wewn?trzny mechanizm przechowywania danych.
Baza danych serii czasowych
[
edytuj
|
edytuj kod
]
Osobny artykuł:
NoSQL
.
Pod poj?ciem bazy nierelacyjnej (NoSQL database) najcz??ciej rozumie si? przechowywanie danych w formie listy par obiektow klucz-warto??, w ktorych 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. Niekiedy poj?cie to u?ywane jest szerzej, do okre?lenia wszelkich struktur danych (niekoniecznie o postaci klucz-warto??) w ktorych nie wyst?puj? tabele i relacje.
Jest odmian? bazy relacyjnej, w ktorej ka?dy rekord posiada stempel czasowy, okre?laj?cy czas w jakim warto?? jest prawdziwa. Posiada tak?e operatory algebry relacyjnej, ktore pozwalaj? operowa? na danych temporalnych (wyci?ga? histori?).
- Bazy danych
(materiały dydaktyczne
MIMUW
na studia informatyczne I stopnia)
- Zaawansowane systemy baz danych
(materiały dydaktyczne MIMUW na studia informatyczne II stopnia)
- Artur
A.
Margielewski
Artur
A.
,
Zbigniew
Z.
Odrow??-Sypniewsk
Zbigniew
Z.
,
Dok?d zmierzaj? systemy bazodanowe?
, ?Biuletyn PTI” (2), Polskie Towarzystwo Informatyczne, 2021, s. 18?21
[dost?p 2021-09-21]
(
pol.
)
, Pobie?ny zarys historii baz danych od tabulatora (1800) do ok. 2016; o NoSQL.