baza danych
 
Encyklopedia
baza danych,
inform. zbiór wzajemnie powiązanych danych, przechowywanych w pamięci komputerów i wykorzystywanych przez programy użytkowe instytucji lub organizacji wraz z oprogramowaniem umożliwiającym definiowanie, wykorzystywanie i modyfikowanie tych danych;
zwykle baza danych zawiera całość informacji wykorzystywanych w pewnym obszarze działania, np. baza danych systemu zarządzania przedsiębiorstwem zawiera wszystkie informacje związane z finansami i księgowością, zaopatrzeniem, kadrami i płacami; czasami bazą danych nazywa się każdy zorganizowany zbiór danych. Obsługa bazy danych stanowi jedno z najczęstszych zastosowań systemów komputerowych.
Informacje zapisane w bazie danych modelują przedmioty, pojęcia lub zjawiska występujące w otaczającym świecie. Przy definiowaniu bazy danych wyróżnia się 3 poziomy modelowania: zewnętrzny (sposób postrzegania danych przez konkretnego użytkownika bazy danych), pojęciowy (sposób organizacji danych, wspólny dla wszystkich użytkowników) i wewnętrzny (sposób zapamiętania danych w pamięci zewnętrznej).
Model pojęciowy i zewnętrzny składają się z tzw. encji (ang. entity) i związków. Encje odpowiadają produktom lub pojęciom istniejącym w modelowanej rzeczywistości; typ encji określa rodzaj modelowanego produktu lub pojęcia, a zarazem zestaw jego atrybutów. Związki odpowiadają powiązaniom występującym w modelowanej rzeczywistości. Zbiór typów encji i związków między nimi tworzy tzw. schemat bazy danych. Najprostszym i najstarszym sposobem fizycznej realizacji bazy danych jest zapisywanie ich w postaci plików na taśmie magnetycznej lub na dysku. Każdy plik odpowiada zwykle jednemu typowi encji; każdy rekord odpowiada jednej encji. Schemat takiej bazy nie jest nigdzie zapisany, a sposób dostępu do zapisanych informacji i sposób definiowania powiązań między rekordami musi być zdefiniowany w każdym programie korzystającym z bazy danych. Producenci komputerów i systemów operacyjnych dostarczają biblioteki, zawierające podprogramy ułatwiające indeksowanie i sortowanie rekordów, a także rozmieszczanie rekordów w pliku. Istnieją programy i języki programowania ułatwiające tworzenie takich baz danych i oprogramowania dla nich. W zastosowaniach profesjonalnych zwykle korzysta się z systemów zarządzania bazami danych (DBMS — ang. Data Base Management System) dostarczającymi narzędzia ułatwiające zarządzanie bazami danych. Systemy zarządzania bazami danych korzystają zwykle z jednego z 4 modeli organizacji bazy danych: hierarchicznego, sieciowego, relacyjnego lub obiektowego, przy czym we współcześnie tworzonych bazach danych korzysta się tylko z 2 ostatnich.
Model hierarchiczny pozwala zapisywać jedynie związki tworzące drzewo. Zaletą modelu hierarchicznego jest możliwość prostej organizacji fizycznej: rekordy odpowiadające encjom z różnych poziomów hierarchii mogą być zapisane w jednym pliku, przy czym rekordy podrzędne zapisuje się bezpośrednio za rekordami nadrzędnymi. Przetwarzanie informacji zapisanej w takiej bazie jest szybkie, jeśli rekordy są uporządkowane według kluczy (posortowane), a przetwarzanie odbywa się grupowo, zgodnie z kolejnością uporządkowania.
Modele: sieciowy i relacyjny nie mają ograniczeń charakterystycznych dla modelu hierarchicznego. W modelu sieciowym związki (zwane kolekcjami) są definiowane jawnie jako elementy schematu bazy danych. Definicja kolekcji określa, które typy rekordów do niej należą. Twórca bazy danych może nałożyć dodatkowe ograniczenia, których przestrzeganie jest zapewniane automatycznie przez system zarządzania bazą danych, niezależnie od programów korzystających z bazy danych. Na poziomie fizycznym encje są zapisywane jako rekordy; do rekordu są dołączane adresy fizyczne innych rekordów należących do tej samej kolekcji. Zasady modelu sieciowego zostały zdefiniowane w 1964; język definiowania takich baz i dostępu do nich jest rozszerzeniem języka Cobol.
Obecnie najpopularniejsze są modele relacyjne baz danych, w których każdy typ encji jest modelowany jako relacja, zapisana w postaci tabel, a każda encja jest zapisana jako wiersz tabeli, zwany także krotką; atrybutom encji odpowiadają kolumny tabeli. Tabele takie można traktować jako relacje w sensie matematycznym i stosować do nich pojęcia z matematycznej teorii relacji. Powiązania między relacjami są tworzone przez zapisanie w krotkach jednej tabeli kluczy krotek z innej tabeli. Relacyjne bazy danych mogą być w różny sposób realizowane na poziomie fizycznym. W najprostszym przypadku każda tabela jest zapisywana w pliku. Aby umożliwić efektywny dostęp, jest niezbędne zdefiniowanie odpowiednich indeksów. Do tworzenia relacyjnych baz danych, zapisu ograniczeń i programowania dostępu do nich został opracowany język SQL. Język ten opisuje cel, który należy osiągnąć, a nie konkretne czynności, które należy w tym celu wykonać. System zarządzania relacyjną bazą danych po otrzymaniu polecenia w języku SQL wykonuje je w sposób najlepszy dla danego schematu bazy danych. Podstawy modelu relacyjnego zaproponował E.F.Codd (1970). Obecnie najpopolarniejszymi relacyjnymi bazami danych są: DB2, Informix, Oracle, Progress, SQLServer i Sybase.
Obiektowe bazy danych stanowią rozwinięcie relacyjnych baz danych; kolumny tabel mogą zawierać obiekty niestandardowe, zdefiniowane przez twórcę bazy danych; dla każdego obiektu określa się zbiór działań, które można na nim wykonać. Z tych możliwości korzysta się przede wszystkim przy tworzeniu baz danych zawierających teksty dokumentów lub dane multimedialne, np. zdjęcia, nagrania muzyczne, gry i filmy. System zarządzania bazą danych może pozwalać na przeszukiwanie danych obiektowych, np. na odnajdywanie wszystkich dokumentów zawierających kombinację pewnych słów w różnych formach gramatycznych i porządkowanie ich w kolejności wynikającej z liczby wystąpień tych słów. Obecnie (początek XXI w.) trwają prace badawcze nad stworzeniem efektywnych modeli obiektowych baz danych, języków dostępu do nich i metod wyszukiwania informacji multimedialnych.
Od systemów baz danych wymaga się zapewnienia m.in. spójności (integralności) danych, kontroli dostępu do danych, możliwości odtworzenia bazy danych w przypadku awarii. W celu zapewnienia spójności danych stosuje się łączenie działań w tzw. transakcje, czyli ciągi modyfikacji rekordów w bazie danych, które muszą być wykonane w całości. Kontrola dostępu do bazy danych polega na zdefiniowaniu przez twórcę lub właściciela bazy danych listy użytkowników, którzy mają dostęp do poszczególnych rekordów i ich pól; dla tych użytkowników określa się również rodzaj dozwolonych operacji (np. tylko odczyt, odczyt i modyfikacja). Aby umożliwić odtwarzanie bazy danych w przypadku jej trwałego uszkodzenia (np. wskutek awarii dysku), systemy zarządzania bazami danych zawierają programy służące do tworzenia kopii archiwalnych. Jeśli nie jest możliwe zatrzymanie pracy systemu w czasie tworzenia kopii, program kopiujący musi śledzić wszystkie zmiany danych, które nastąpiły w tym czasie, i zapisywać je jako część kopii, aby zapewnić utrzymanie spójności danych.
Przeglądaj encyklopedię