Baza danych
Baza danych (ang. database) – uporządkowany zbiór danych przechowywanych i udostępnianych w sposób umożliwiający ich łatwe wyszukiwanie, modyfikację oraz analizę. Baza danych jest podstawowym elementem systemów informatycznych, służącym do gromadzenia, przechowywania i zarządzania informacjami w sposób trwały i bezpieczny.
Historia
Początki baz danych sięgają lat 1960., kiedy to powstały pierwsze systemy zarządzania plikami. Przełomowym momentem był rozwój modelu relacyjnego zaproponowany przez E. F. Codd’a w artykule „A Relational Model of Data for Large Shared Data Banks” (1970). W kolejnych dekadach powstały systemy SQL-based, a od lat 2000. pojawiły się także rozwiązania NoSQL, przeznaczone do obsługi danych niestrukturalnych i bardzo dużej skali.
Klasyfikacja baz danych
Bazy danych można podzielić według kilku kryteriów:
- Model danych
- Relacyjny – najpopularniejszy model, oparty na tabelach, rekordach i kluczach.
- Obiektowy – integruje zapis danych z programowaniem obiektowym.
- Hierarchiczny – struktura drzewiasta, wykorzystywana m.in. w systemach mainframe.
- Sieciowy – pozwala na definiowanie złożonych relacji wielokrotnych.
- NoSQL – rodzina modeli nie-relacyjnych, obejmująca m.in. bazy dokumentowe, klucz‑wartość, kolumnowe i grafowe.
- Rozmieszczenie
- Centralizowane – serwer bazodanowy zarządza wszystkimi danymi.
- Rozproszone – dane są przechowywane w wielu węzłach (np. Hadoop, Cassandra).
- Chmurowe – usługi typu SaaS, np. Amazon RDS, Google Cloud SQL.
- Licencjonowanie
- Komercyjne – np. Oracle Database, Microsoft SQL Server.
- Open‑source – np. MySQL, PostgreSQL, MongoDB.
Architektura systemu zarzÄ…dzania bazÄ… danych
System zarządzania bazą danych (SZBD) składa się z kilku warstw:
- Warstwa fizyczna – odpowiedzialna za przechowywanie danych na dyskach, organizację plików i zarządzanie pamięcią.
- Warstwa logiczna – definiuje strukturę danych (schemat, tabele, indeksy) oraz reguły integralności.
- Warstwa API – interfejsy programistyczne (np. ODBC, JDBC) umożliwiające dostęp do bazy z aplikacji.
- Warstwa językowa – języki zapytań, najczęściej SQL, ale także XQuery, SPARQL czy języki specyficzne dla NoSQL.
Podstawowe pojęcia
- Schemat (schemat)
- Opis struktury bazy, określający tabele, ich pola oraz zależności.
- Rekord (rekord)
- Pojedynczy wiersz w tabeli, zawierający zestaw powiązanych ze sobą wartości.
- Klucz główny (klucz główny)
- Unikalny identyfikator rekordu w tabeli.
- Indeks (indeks)
- Struktura przyspieszająca wyszukiwanie danych, podobna do spisu treści w książce.
- Transakcja (transakcja)
- Jednostka pracy, którą należy wykonać w całości albo nie wykonać wcale, zapewniająca spójność danych (zasada ACID).
- Normalizacja (normalizacja)
- Proces podziału danych na tabele w celu eliminacji redundancji i zapewnienia integralności.
Języki zapytań
Najbardziej rozpowszechnionym językiem jest SQL (Structured Query Language), który umożliwia operacje DDL (definicja struktury), DML (manipulacja danymi) i DCL (kontrola dostępu). W bazach NoSQL stosuje się natomiast:
- MongoDB – zapytania w formacie JSON.
- Cassandra – język CQL (Cassandra Query Language).
- Neo4j – język Cypher do zapytań grafowych.
Zastosowania
Bazy danych sÄ… wykorzystywane w praktycznie wszystkich dziedzinach informatyki i gospodarki:
- Systemy bankowe i finansowe – przechowywanie transakcji, kont, historii operacji.
- Systemy e‑commerce – katalogi produktów, zamówienia, informacje o klientach.
- Opieka zdrowotna – elektroniczne rekordy medyczne (EMR).
- Nauka i badania – przechowywanie dużych zestawów danych (np. Big Data).
- Systemy zarządzania zasobami (ERP), systemy zarządzania treścią (CMS) i wiele innych.
Przyszłość baz danych
Współczesne trendy obejmują:
- Integrację z sztuczną inteligencją – automatyczne optymalizacje zapytań i indeksów.
- Rozproszone i edge computing – przetwarzanie danych bliżej miejsca ich generacji.
- Technologie blockchain jako alternatywne modele przechowywania danych.
- Rozwój GraphQL oraz innych języków zapytań zapewniających większą elastyczność w dostępie do danych.
Powiązane pojęcia
System zarządzania bazą danych – oprogramowanie umożliwiające tworzenie, utrzymywanie i ochronę baz danych.
Model relacyjny – najpowszechniejszy model danych oparty na tabelach.
NoSQL – rodzina baz danych nie‑relacyjnych.
SQL – język zapytań używany w relacyjnych bazach danych.
Transakcja – jednostka operacji zapewniająca spójność danych.
Literatura
- Codd, E. F. „A Relational Model of Data for Large Shared Data Banks”. Communications of the ACM, 1970.
- Silberschatz, A., Korth, H. F., Sudarshan, S. – Systemy baz danych, 6. wyd., Pearson, 2022.
- Harrington, J. L. – Relational Database Design and Implementation, 4. wyd., Morgan Kaufmann, 2016.
- Stonebraker, M., Çetintemel, U. – “The 10 Rules of Cloud Data Management”, IEEE Data Eng. Bull., 2005.