Co to jest baza danych?
Autor: Redakcja Domeny.ForSale Opublikowano
W skrócie: Baza danych to uporządkowany zbiór informacji, który można przeszukiwać, uzupełniać i aktualizować. Korzystają z niej m.in. sklepy internetowe, banki i systemy rezerwacji, aby przechowywać dane o klientach, produktach czy transakcjach. Za obsługę bazy zwykle odpowiada specjalne oprogramowanie, które pilnuje również uprawnień dostępu i poprawności operacji.
Baza danych a program do jej obsługi
Bazę danych można porównać do dobrze zorganizowanej kartoteki. Każda informacja ma określone miejsce i postać, dzięki czemu nie trzeba przeglądać całego zbioru, aby znaleźć potrzebny wpis. W odróżnieniu od papierowej kartoteki baza pozwala też szybko łączyć informacje, np. wyświetlić wszystkie zamówienia wybranego klienta.
Sama baza nie jest tym samym co system zarządzania bazą danych, czyli program służący do zapisywania, odczytywania i kontrolowania danych. Przykładami takich systemów są PostgreSQL, MySQL i SQLite. W codziennym języku nazwą „baza danych” często określa się zarówno zbiór informacji, jak i obsługujące go oprogramowanie, ale technicznie to dwa różne elementy.
Użytkownik sklepu czy aplikacji zazwyczaj nie pracuje bezpośrednio z bazą. Wypełnia formularz lub naciska przycisk, a aplikacja przekazuje odpowiednie polecenie do systemu zarządzania bazą.
Jak dane są zorganizowane i wyszukiwane
W relacyjnej bazie danych informacje przechowuje się w tabelach, które można ze sobą powiązać. Wiersz, nazywany też rekordem, opisuje pojedynczy obiekt, np. produkt. Kolumny określają jego cechy, takie jak nazwa, cena czy liczba dostępnych sztuk.
Uproszczona tabela produktów może wyglądać tak:
| Identyfikator produktu | Nazwa | Cena | Dostępne sztuki |
|---|---|---|---|
| 101 | Kubek biały | 29 zł | 18 |
| 102 | Kubek granatowy | 32 zł | 7 |
Klucz główny to pole lub zestaw pól, który jednoznacznie identyfikuje rekord. W tym przykładzie jest nim identyfikator produktu. Nawet jeśli dwa produkty mają tę samą nazwę, ich identyfikatory pozwalają je rozróżnić.
Osobna tabela może zawierać zamówienia, a kolejna — pozycje tych zamówień z identyfikatorami produktów i zamówionymi ilościami. Takie powiązania ograniczają zbędne powielanie informacji. Nie oznacza to jednak zakazu kopiowania danych: w pozycji zamówienia zwykle zapisuje się cenę z chwili zakupu, ponieważ późniejsza zmiana cennika nie powinna zmieniać historii sprzedaży.
Do pracy z relacyjnymi bazami często używa się SQL, czyli języka poleceń do odczytywania i modyfikowania danych. Zapytanie może na przykład pobrać produkty, których zostało mniej niż dziesięć sztuk. Wyszukiwanie mogą przyspieszać indeksy — dodatkowe struktury działające podobnie do indeksu haseł w książce. Zajmują jednak miejsce i zwiększają koszt aktualizacji danych, więc nie tworzy się ich bez ograniczeń.
Co dzieje się w bazie podczas zakupu
Wyobraź sobie sklep, w którym została ostatnia sztuka produktu. Dwie osoby próbują kupić ją niemal jednocześnie. Samo wyświetlenie liczby „1” na stronie nie wystarczy: system musi rozstrzygnąć, która operacja może zakończyć się sukcesem.
Pomaga w tym transakcja, czyli grupa operacji traktowanych jako jedna całość. Utworzenie zamówienia i zmniejszenie stanu magazynowego można wykonać tak, aby obie zmiany zostały zatwierdzone albo żadna nie została zapisana. Odpowiednio zaprojektowana obsługa transakcji i równoczesnego dostępu pozwala uniknąć sprzedaży tej samej ostatniej sztuki dwóm osobom.
Baza nie zapewnia jednak poprawności całego sklepu automatycznie. Programista musi właściwie określić reguły, np. zakaz ujemnego stanu magazynowego. Płatność w zewnętrznym systemie wymaga dodatkowej obsługi błędów i potwierdzeń — nie staje się częścią lokalnej transakcji tylko dlatego, że dotyczy tego samego zakupu.
Czym baza danych różni się od arkusza kalkulacyjnego
Arkusz kalkulacyjny dobrze sprawdza się przy ręcznych zestawieniach, obliczeniach i analizach. Jeśli jedna osoba prowadzi niewielką listę wyposażenia biura, arkusz może być prostszym rozwiązaniem niż osobna aplikacja z bazą.
Baza danych staje się szczególnie przydatna, gdy:
- wiele osób lub programów jednocześnie zmienia informacje;
- dane mają liczne powiązania, np. klienci, umowy i płatności;
- trzeba konsekwentnie egzekwować reguły, np. unikalność numeru zamówienia;
- aplikacja ma automatycznie i regularnie odczytywać oraz zapisywać dane.
Granica nie zależy wyłącznie od liczby wierszy. Nawet mały system rezerwacji może potrzebować bazy, ponieważ musi zapobiegać przydzieleniu jednego terminu kilku osobom. Z kolei duże jednorazowe zestawienie może nadal wygodnie analizować się w arkuszu.
Jak wybrać rodzaj bazy i zadbać o dane
Nie wszystkie bazy używają powiązanych tabel. Bazy NoSQL to zbiorcza nazwa różnych rozwiązań, m.in. baz dokumentowych, które przechowują informacje jako dokumenty o określonej strukturze, oraz baz klucz–wartość, które przypisują wartość do unikalnego klucza. Nie są one z definicji szybsze ani lepsze od baz relacyjnych — wybór zależy od sposobu zapisywania i odczytywania informacji.
Dla typowej aplikacji obsługującej klientów, zamówienia i rozliczenia relacyjna baza jest często rozsądnym punktem wyjścia. Jeśli uruchamiasz gotowy system zarządzania treścią lub sklep, najpierw sprawdź wymagania jego producenta. To oprogramowanie zwykle określa obsługiwane systemy bazodanowe i ich wersje.
Niezależnie od technologii potrzebne są ograniczone uprawnienia dostępu, aktualizacje oraz kopie zapasowe. Kopia zapasowa umożliwia odzyskanie danych po awarii lub pomyłce, ale jej przydatność należy sprawdzać przez próbne odtworzenie. Sama informacja, że kopia „wykonuje się codziennie”, nie potwierdza, że da się z niej odzyskać działającą bazę.
Przed wyborem narzędzia wypisz, jakie informacje chcesz przechowywać, kto będzie je zmieniał i które błędy system ma blokować. Taki krótki opis pozwoli ocenić, czy wystarczy arkusz, gotowa aplikacja, czy potrzebne jest własne rozwiązanie z bazą danych.
Zobacz też: Co to jest 2FA?
