Od pomysłu do uporządkowanego systemu danych
Baza danych to coś więcej niż zwykły plik z informacjami.
To uporządkowany system, w którym dane są zapisane w taki sposób, by można było je szybko znaleźć, połączyć i przetwarzać.
Żeby jednak taka baza działała, musi mieć odpowiednią strukturę, czyli logiczną budowę.
Z czego składa się baza danych
Wyobraź sobie, że baza danych to wielka szafa z szufladami.
Każda szuflada to inny zestaw informacji (np. uczniowie, nauczyciele, oceny), a każda kartka w środku to pojedynczy rekord danych.
W języku baz danych wygląda to tak:
| Pojęcie | Co oznacza | Przykład |
|---|---|---|
| Tabela | Zbiór danych o jednym rodzaju rzeczy | Tabela Uczniowie zawiera dane o uczniach |
| Rekord (wiersz) | Pojedynczy wpis w tabeli | Jeden uczeń: Jan Kowalski, klasa 4A |
| Pole (kolumna) | Jedna właściwość danych | Imię, nazwisko, klasa, e-mail |
| Klucz główny (PRIMARY KEY) | Unikalny identyfikator rekordu | id_ucznia = 101 |
| Klucz obcy (FOREIGN KEY) | Odniesienie do innej tabeli | id_klasy w tabeli Uczniowie wskazuje na Klasy |
| Indeks (INDEX) | Przyspiesza wyszukiwanie danych | Indeks na kolumnie nazwisko |
| Widok (VIEW) | Wirtualna tabela z wybranych danych | Lista uczniów z ocenami |
| Relacja | Powiązanie między tabelami | Uczniowie → Oceny |
Jak to wygląda w praktyce
Przykład: baza danych szkoły.
Mamy trzy tabele:
Uczniowie– dane osobowe uczniów,Klasy– lista klas i wychowawców,Oceny– wyniki uczniów.
CREATE TABLE Klasy (
id_klasy INT PRIMARY KEY AUTO_INCREMENT,
nazwa VARCHAR(10),
wychowawca VARCHAR(50)
);
CREATE TABLE Uczniowie (
id_ucznia INT PRIMARY KEY AUTO_INCREMENT,
imie VARCHAR(50),
nazwisko VARCHAR(50),
id_klasy INT,
FOREIGN KEY (id_klasy) REFERENCES Klasy(id_klasy)
);
CREATE TABLE Oceny (
id_oceny INT PRIMARY KEY AUTO_INCREMENT,
id_ucznia INT,
przedmiot VARCHAR(50),
ocena DECIMAL(3,1),
FOREIGN KEY (id_ucznia) REFERENCES Uczniowie(id_ucznia)
);
Schemat połączeń:
Klasy ───< Uczniowie ───< Oceny
- Jedna klasa ma wielu uczniów.
- Każdy uczeń może mieć wiele ocen.
- Dzięki kluczom
FOREIGN KEYbaza rozumie, które dane są ze sobą powiązane.
Logiczna i fizyczna budowa bazy
Baza danych ma dwa poziomy:
1. Struktura logiczna
To to, co projektujesz w SQL – tabele, kolumny, relacje.
Mówimy: „to jest logika bazy” – opis jak dane mają się ze sobą łączyć.
2. Struktura fizyczna
To to, co widzi komputer – pliki z danymi zapisane na dysku.
Każdy system (MySQL, PostgreSQL, Oracle) przechowuje je inaczej, ale użytkownik nie musi się tym martwić – wszystkim zarządza DBMS.
Jak powstaje baza danych
Proces tworzenia bazy można opisać w kilku krokach:
- Analiza danych – jakie informacje chcemy przechowywać (np. uczniowie, klasy, przedmioty).
- Projekt tabel – jakie kolumny będą potrzebne i jak się łączą.
- Określenie kluczy – które kolumny są unikalne, a które łączą się z innymi tabelami.
- Tworzenie w SQL – napisanie poleceń
CREATE TABLE. - Wstawienie danych –
INSERT INTO ... VALUES (...). - Testowanie – sprawdzanie relacji i spójności danych.
Przykład bazy danych w praktyce
Załóżmy, że w bibliotece chcesz przechowywać informacje o książkach i wypożyczeniach.
CREATE TABLE Ksiazki (
id_ksiazki INT PRIMARY KEY AUTO_INCREMENT,
tytul VARCHAR(100),
autor VARCHAR(50),
rok_wydania INT
);
CREATE TABLE Czytelnicy (
id_czytelnika INT PRIMARY KEY AUTO_INCREMENT,
imie VARCHAR(50),
nazwisko VARCHAR(50)
);
CREATE TABLE Wypozyczenia (
id_wypozyczenia INT PRIMARY KEY AUTO_INCREMENT,
id_czytelnika INT,
id_ksiazki INT,
data_wypozyczenia DATE,
data_zwrotu DATE,
FOREIGN KEY (id_czytelnika) REFERENCES Czytelnicy(id_czytelnika),
FOREIGN KEY (id_ksiazki) REFERENCES Ksiazki(id_ksiazki)
);
Dzięki tej strukturze możesz łatwo zadać pytanie SQL:
SELECT Czytelnicy.imie, Czytelnicy.nazwisko, Ksiazki.tytul
FROM Wypozyczenia
JOIN Czytelnicy ON Wypozyczenia.id_czytelnika = Czytelnicy.id_czytelnika
JOIN Ksiazki ON Wypozyczenia.id_ksiazki = Ksiazki.id_ksiazki;
i natychmiast dowiedzieć się, kto wypożyczył którą książkę.
Dlaczego dobra budowa bazy jest ważna
Źle zaprojektowana baza = problemy w przyszłości:
- powtórzenia danych,
- trudne aktualizacje,
- błędy logiczne (np. uczeń bez klasy, ocena bez ucznia),
- wolne działanie przy dużych zbiorach danych.
Dobra struktura to:
✅ mniej błędów,
✅ szybkie wyszukiwanie,
✅ prostsze raporty,
✅ łatwiejsze utrzymanie.
Podsumowanie
Budowa bazy danych to fundament każdego systemu informatycznego.
Składa się z tabel, pól, rekordów, kluczy i relacji, które tworzą logiczną strukturę danych.
Dzięki dobrze zaprojektowanej budowie baza staje się:
- uporządkowana,
- wydajna,
- bezpieczna,
- i gotowa do pracy z językiem SQL.
🧩 Zadania do przećwiczenia
- Narysuj prosty schemat bazy szkolnej z tabelami:
Uczniowie,Klasy,Oceny. - Określ, które pola są kluczami głównymi i kluczami obcymi.
- Napisz w SQL polecenia
CREATE TABLEdla każdej tabeli. - Dodaj po 2 rekordy do każdej tabeli (
INSERT INTO ... VALUES ...). - Napisz zapytanie, które połączy dane z dwóch tabel, np. „pokaż uczniów i ich klasy”.

