Dataczwartek, 13 sierpnia 2026 Czas18:43:03
← Bazy danych i SQL

Lekcja 12. System zarządzania bazą danych (DBMS)

Podstawowy

Po co się tego uczymy?

Piszesz polecenia SQL, ale to nie SQL sam z siebie przechowuje dane na dysku, pilnuje uprawnień i obsługuje wielu użytkowników naraz. Robi to program nazywany DBMS — warto wiedzieć, co dokładnie się dzieje "pod maską".

Teoria

DBMS (ang. Database Management System) — system zarządzania bazą danych — to program, który stoi między Twoim poleceniem SQL a fizycznymi plikami z danymi na dysku. Można go porównać do bibliotekarza: sam nie jesteś w stanie bezpiecznie i szybko znaleźć jednej książki w bibliotece z milionem pozycji, ale bibliotekarz (DBMS) wie dokładnie, gdzie czego szukać.

Główne zadania DBMS:
- Przechowywanie danych — zapisuje dane w uporządkowanych strukturach na dysku.
- Dostęp do danych — obsługuje INSERT, SELECT, UPDATE, DELETE.
- Bezpieczeństwo — kontroluje, kto może co zrobić (patrz lekcja o uprawnieniach).
- Integralność — pilnuje więzów integralności (klucze, ograniczenia).
- Wielodostępność — wielu użytkowników korzysta z bazy jednocześnie, bez psucia sobie nawzajem danych.
- Kopie zapasowe — pozwala odtworzyć dane po awarii.
- Optymalizacja — przyspiesza zapytania (np. przez indeksy).

Najpopularniejsze SZBD, z którymi możesz się spotkać: MySQL i MariaDB (darmowe, bardzo popularne w projektach webowych, używane m.in. w XAMPP), PostgreSQL (darmowe, zaawansowane), Microsoft SQL Server (komercyjny, popularny w firmach korzystających z technologii .NET), SQLite (lekka baza w jednym pliku, świetna do aplikacji mobilnych i małych projektów — używana np. w aplikacjach .NET MAUI).

Przykład z życia

Kiedy uczysz się SQL-a w XAMPP i klikasz w phpMyAdmin, to phpMyAdmin jest tylko "nakładką" graficzną — prawdziwą pracę (przechowywanie i przetwarzanie danych) wykonuje w tle serwer MySQL, czyli DBMS.

Kod (SQL)

-- Sprawdzenie, jakiego DBMS i w jakiej wersji używasz (MySQL/MariaDB):

SELECT VERSION();

-- Lista wszystkich baz danych dostępnych w danym DBMS:

SHOW DATABASES;

-- Lista tabel w aktualnie wybranej bazie:

SHOW TABLES;

Komentarz i wyjaśnienie kodu

Te trzy polecenia to nie standardowy SQL używany do pracy z danymi (jak SELECT czy INSERT), tylko polecenia administracyjne konkretnego DBMS (tu: MySQL/MariaDB) — służą do rozpoznania samego środowiska, w którym pracujesz, zanim zaczniesz cokolwiek tworzyć.

Ćwiczenie samodzielne

Uruchom SELECT VERSION(), SHOW DATABASES i SHOW TABLES w swoim środowisku (np. phpMyAdmin w XAMPP) i zapisz, jakiego DBMS-a i w jakiej wersji używasz.

Zadania do pracy własnej

  1. Zadanie 1. DBMS w praktyce na XAMPP

    Uwaga przed importem: plik z bazą jest spakowany jako .gz. phpMyAdmin w XAMPP przyjmuje takie pliki bez rozpakowywania. Jeżeli po pobraniu nazwa wygląda np. sklep_muzyczny.sql_.gz i import nie przejdzie, zmień nazwę pliku na sklep_muzyczny.sql.gz, a potem wybierz go w zakładce Importuj.

    Baza do pracy: Sklep muzyczny 2P (.sql.gz). Zaimportuj spakowany plik SQL w XAMPP/phpMyAdmin, a następnie wykonaj zapytania.

    1. Zaimportuj plik SQL przez phpMyAdmin.
    2. Sprawdź, czy powstały wszystkie tabele.
    3. Wykonaj eksport całej bazy do pliku SQL.
    4. Wykonaj eksport tylko jednej tabeli.
    5. Usuń bazę testową po wykonaniu kopii.
    6. Przywróć bazę z wyeksportowanego pliku.
    7. Porównaj liczbę rekordów przed i po imporcie.
    8. Zmień nazwę pliku kopii według schematu data_nazwa_bazy.sql.
    9. Wskaż różnicę między eksportem struktury a eksportem struktury z danymi.
    10. Opisz, co zrobić, gdy import kończy się błędem kodowania znaków.
  2. Zadanie 2. Sprawdzenie struktury bazy apteki

    Uwaga przed importem: plik z bazą jest spakowany jako .gz. phpMyAdmin w XAMPP przyjmuje takie pliki bez rozpakowywania. Jeżeli po pobraniu nazwa wygląda np. sklep_muzyczny.sql_.gz i import nie przejdzie, zmień nazwę pliku na sklep_muzyczny.sql.gz, a potem wybierz go w zakładce Importuj.

    Baza do pracy: Apteka Zdrowie (.sql.gz). Zaimportuj spakowany plik SQL w XAMPP/phpMyAdmin, a następnie wykonaj zapytania.

    1. Znajdź w bazie przykład tabeli.
    2. Znajdź przykład rekordu.
    3. Znajdź przykład kolumny tekstowej.
    4. Znajdź przykład klucza głównego.
    5. Znajdź przykład klucza obcego.
    6. Znajdź przykład relacji 1:N.
    7. Znajdź przykład relacji N:M.
    8. Znajdź zapytanie używające WHERE.
    9. Znajdź zapytanie używające GROUP BY.
    10. Znajdź zapytanie używające JOIN.
  3. Zadanie 3. Porównanie baz w phpMyAdmin

    Uwaga przed importem: plik z bazą jest spakowany jako .gz. phpMyAdmin w XAMPP przyjmuje takie pliki bez rozpakowywania. Jeżeli po pobraniu nazwa wygląda np. sklep_muzyczny.sql_.gz i import nie przejdzie, zmień nazwę pliku na sklep_muzyczny.sql.gz, a potem wybierz go w zakładce Importuj.

    Baza do pracy: Siłownia FitZone (.sql.gz). Zaimportuj spakowany plik SQL w XAMPP/phpMyAdmin, a następnie wykonaj zapytania.

    1. Znajdź w bazie przykład tabeli.
    2. Znajdź przykład rekordu.
    3. Znajdź przykład kolumny tekstowej.
    4. Znajdź przykład klucza głównego.
    5. Znajdź przykład klucza obcego.
    6. Znajdź przykład relacji 1:N.
    7. Znajdź przykład relacji N:M.
    8. Znajdź zapytanie używające WHERE.
    9. Znajdź zapytanie używające GROUP BY.
    10. Znajdź zapytanie używające JOIN.

Typowe błędy

Częsty błąd pojęciowy to mylenie SQL (języka zapytań) z DBMS (programem, który ten język wykonuje) — SQL jest w dużej mierze wspólny, ale każdy DBMS ma swoje niuanse i rozszerzenia. Drugi błąd: wybór SZBD "bo tak" bez zastanowienia nad kontekstem (np. próba postawienia pełnego serwera MySQL tam, gdzie wystarczyłby lekki plik SQLite).

Nawiązanie do egzaminu zawodowego

DBMS to osobny efekt kształcenia INF.03.4.3 ("korzysta z systemów zarządzania bazami danych") — na egzaminie może pojawić się pytanie o rozpoznanie funkcji SZBD albo dobór odpowiedniego systemu do zastosowania.