Baza danych

Kasia Bielawska
>
Kasia Bielawska

Co to jest baza danych?

Baza danych to uporządkowany zbiór informacji zapisanych w taki sposób, aby można było je sprawnie dodawać, wyszukiwać, zmieniać i usuwać. Bazy danych są wykorzystywane przez strony internetowe, sklepy, aplikacje mobilne, systemy CRM, bankowość, platformy społecznościowe oraz wiele innych usług cyfrowych.

Gdy logujesz się do serwisu, publikujesz wpis na blogu, zmieniasz dane w swoim koncie albo składasz zamówienie w sklepie internetowym, aplikacja bardzo często odczytuje lub zapisuje informacje właśnie w bazie danych.

Jak działa baza danych?

Do pracy z bazą potrzebne jest oprogramowanie, które potrafi zapisywać dane, odczytywać je oraz kontrolować dostęp do nich. Takie rozwiązanie określa się jako system zarządzania bazą danych, czyli DBMS (Database Management System).

Aplikacja wysyła do systemu bazodanowego odpowiednie polecenie. Może na przykład poprosić o pobranie danych produktu, zapisanie nowego zamówienia, zmianę adresu e-mail klienta albo usunięcie konkretnego rekordu.

Popularne systemy zarządzania relacyjnymi bazami danych to MySQL, MariaDB i PostgreSQL.

Baza danych a DBMS – jaka jest różnica?

Pojęcia są ze sobą ściśle związane, ale nie oznaczają dokładnie tego samego. Baza danych jest uporządkowanym zbiorem informacji, natomiast DBMS jest oprogramowaniem, które pozwala tym zbiorem zarządzać.

Można porównać to do biblioteki. Książki odpowiadają danym, natomiast system katalogowy pozwala je dodawać, wyszukiwać i porządkować. W podobny sposób DBMS pośredniczy między aplikacją a zapisanymi informacjami.

SQL, MySQL i phpMyAdmin – czym się różnią?

Te pojęcia często pojawiają się obok siebie, ale pełnią inne funkcje.

  • SQL jest językiem używanym do wykonywania operacji na relacyjnych bazach danych.
  • MySQL jest systemem zarządzania relacyjną bazą danych.
  • phpMyAdmin jest narzędziem z graficznym interfejsem, które ułatwia zarządzanie serwerami MySQL i MariaDB za pomocą przeglądarki.

Za pomocą SQL można między innymi pobierać, dodawać, aktualizować i usuwać dane. phpMyAdmin pozwala wykonywać wiele takich operacji bez pracy wyłącznie w terminalu, ale sam nie jest bazą danych.

Jakie są rodzaje baz danych?

Dane można organizować na różne sposoby. Wybór konkretnego modelu zależy od rodzaju aplikacji, charakteru informacji oraz operacji, które będą wykonywane najczęściej.

Relacyjne bazy danych

W relacyjnej bazie danych informacje są uporządkowane przede wszystkim w tabelach. Każda tabela zawiera wiersze i kolumny, a poszczególne tabele mogą być ze sobą powiązane.

Sklep internetowy może mieć osobną tabelę produktów, klientów i zamówień. Zamówienie może przechowywać identyfikator klienta, dzięki któremu system potrafi połączyć je z odpowiednią osobą bez zapisywania wszystkich jej danych w każdym rekordzie.

Do najpopularniejszych systemów tego typu należą MySQL, MariaDB i PostgreSQL.

Bazy NoSQL

NoSQL to określenie szerokiej grupy baz, które nie wykorzystują klasycznego modelu relacyjnego jako podstawowego sposobu organizacji informacji.

W zależności od rozwiązania dane mogą być przechowywane jako:

  • dokumenty,
  • pary klucz–wartość,
  • grafy,
  • struktury kolumnowe.

Przykładem dokumentowej bazy NoSQL jest MongoDB. Z kolei Redis przechowuje dane przede wszystkim w pamięci i może być wykorzystywany między innymi jako szybki magazyn danych lub mechanizm wspierający cache aplikacji.

Nie oznacza to, że NoSQL jest lepszy od relacyjnej bazy danych. Każdy model odpowiada na inne potrzeby, dlatego wybór zależy od struktury danych oraz sposobu działania aplikacji.

Do czego służy baza danych na stronie internetowej?

Prosta statyczna strona może działać bez bazy danych. W systemach CMS, sklepach i bardziej rozbudowanych aplikacjach baza jest jednak zwykle jednym z podstawowych elementów całego środowiska.

Może przechowywać między innymi:

  • treści artykułów i podstron,
  • konta użytkowników,
  • ustawienia serwisu,
  • produkty i ich parametry,
  • zamówienia i ich statusy,
  • komentarze i opinie,
  • informacje wykorzystywane przez wtyczki i moduły,
  • dane potrzebne do obsługi sesji lub koszyków.

Baza działa po stronie serwera i współpracuje z plikami aplikacji. Odpowiedni hosting zapewnia środowisko, w którym aplikacja i jej baza mogą wykonywać potrzebne operacje.

Jak działa baza danych w WordPressie?

WordPress korzysta z MySQL lub MariaDB. W bazie przechowuje między innymi wpisy, strony, komentarze, użytkowników, ustawienia witryny, metadane i informacje używane przez wtyczki.

Nie oznacza to jednak, że cała strona WordPress znajduje się w bazie. Motywy, wtyczki, kod aplikacji i przesłane pliki, takie jak zdjęcia, znajdują się w systemie plików serwera.

Dlatego migracja WordPressa wymaga zwykle przeniesienia zarówno plików, jak i bazy. W przypadku tego CMS-u znaczenie ma również środowisko zapewniane przez hosting WordPress, ponieważ szybkość przetwarzania PHP i zapytań do bazy wpływa na generowanie dynamicznych podstron.

Jak baza danych działa w sklepie internetowym?

W sklepie internetowym baza jest intensywnie wykorzystywana. System odczytuje i zapisuje informacje o produktach, wariantach, cenach, klientach, koszykach, zamówieniach czy stanach magazynowych.

W przypadku sklepu na WordPressie ilość operacji może rosnąć wraz z liczbą produktów i ruchem, dlatego przy większych projektach znaczenie ma odpowiednio dobrany hosting WooCommerce.

Podobnie działa zaplecze innych platform sprzedażowych. Sklep korzystający z hostingu PrestaShop wykonuje operacje bazodanowe między innymi podczas filtrowania produktów, wyświetlania koszyka czy składania zamówienia.

Jak wygląda relacyjna baza danych w praktyce?

Wyobraź sobie prosty sklep internetowy. Zamiast zapisywać wszystkie informacje w jednym miejscu, dane można rozdzielić na kilka powiązanych tabel.

  • Products – identyfikator produktu, nazwa, cena i opis,
  • Customers – identyfikator klienta, imię i adres e-mail,
  • Orders – identyfikator zamówienia, klient, data, status i wartość zamówienia,
  • Order_items – produkty przypisane do konkretnego zamówienia.

Każdy klient może otrzymać własny unikalny identyfikator. Tabela zamówień przechowuje ten identyfikator i w ten sposób wskazuje, do którego klienta należy dane zamówienie.

Czym są klucz podstawowy i klucz obcy?

Klucz podstawowy pozwala jednoznacznie zidentyfikować konkretny rekord. Może nim być na przykład identyfikator klienta lub produktu.

Klucz obcy służy do powiązania rekordu z informacją zapisaną w innej tabeli. Dzięki temu można tworzyć relacje bez niepotrzebnego powielania tych samych danych.

Co wpływa na wydajność bazy danych?

Baza danych może mieć duży wpływ na szybkość działania aplikacji. Jeżeli każde otwarcie podstrony wymaga wykonania wielu ciężkich zapytań, użytkownik może dłużej czekać na wygenerowanie odpowiedzi.

Znaczenie mają przede wszystkim:

  • budowa zapytań – nieoptymalne zapytania mogą przetwarzać znacznie więcej danych, niż jest potrzebne,
  • indeksy – pomagają szybciej odnajdywać potrzebne rekordy,
  • struktura tabel i danych – nieprawidłowo zaprojektowana baza może utrudniać późniejsze operacje,
  • liczba jednoczesnych zapytań – duży ruch może oznaczać wiele równoległych odczytów i zapisów,
  • zasoby serwera – znaczenie mają m.in. procesor, pamięć operacyjna i szybkość pamięci masowej,
  • cache – może ograniczyć liczbę powtarzanych operacji wykonywanych bezpośrednio na głównej bazie.

Nie każda wolna strona ma jednak problem właśnie z bazą. Opóźnienie może powodować również kod aplikacji, PHP, zewnętrzna integracja, brak pamięci podręcznej albo niewystarczające zasoby serwera.

FAQ – bazy danych

Baza danych to uporządkowany zbiór informacji przygotowany w taki sposób, aby można było je sprawnie dodawać, wyszukiwać, zmieniać i usuwać. Jest wykorzystywana między innymi przez strony internetowe, sklepy i aplikacje.

Nie. Tabele są charakterystyczne przede wszystkim dla relacyjnych baz danych. Rozwiązania NoSQL mogą przechowywać informacje między innymi jako dokumenty, pary klucz–wartość lub grafy.

Nie. SQL jest językiem wykorzystywanym do komunikacji z relacyjnymi bazami danych, natomiast MySQL jest systemem zarządzania relacyjną bazą danych.

Nie. phpMyAdmin jest narzędziem z graficznym interfejsem służącym do zarządzania serwerami MySQL i MariaDB. Pozwala między innymi przeglądać tabele, wykonywać zapytania oraz importować i eksportować dane.

WordPress korzysta z MySQL lub MariaDB. W bazie przechowuje między innymi treści, komentarze, użytkowników, ustawienia i informacje wykorzystywane przez wtyczki.

Tak. Baza może zawierać kluczowe informacje potrzebne do działania strony lub aplikacji. Regularny backup pozwala odzyskać dane po awarii, błędzie, problemie podczas aktualizacji lub przypadkowym usunięciu informacji.