Budowa Bazy Danych

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ęcieCo oznaczaPrzykład
TabelaZbiór danych o jednym rodzaju rzeczyTabela Uczniowie zawiera dane o uczniach
Rekord (wiersz)Pojedynczy wpis w tabeliJeden uczeń: Jan Kowalski, klasa 4A
Pole (kolumna)Jedna właściwość danychImię, nazwisko, klasa, e-mail
Klucz główny (PRIMARY KEY)Unikalny identyfikator rekorduid_ucznia = 101
Klucz obcy (FOREIGN KEY)Odniesienie do innej tabeliid_klasy w tabeli Uczniowie wskazuje na Klasy
Indeks (INDEX)Przyspiesza wyszukiwanie danychIndeks na kolumnie nazwisko
Widok (VIEW)Wirtualna tabela z wybranych danychLista uczniów z ocenami
RelacjaPowiązanie między tabelamiUczniowieOceny

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 KEY baza 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:

  1. Analiza danych – jakie informacje chcemy przechowywać (np. uczniowie, klasy, przedmioty).
  2. Projekt tabel – jakie kolumny będą potrzebne i jak się łączą.
  3. Określenie kluczy – które kolumny są unikalne, a które łączą się z innymi tabelami.
  4. Tworzenie w SQL – napisanie poleceń CREATE TABLE.
  5. Wstawienie danychINSERT INTO ... VALUES (...).
  6. 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

  1. Narysuj prosty schemat bazy szkolnej z tabelami: Uczniowie, Klasy, Oceny.
  2. Określ, które pola są kluczami głównymi i kluczami obcymi.
  3. Napisz w SQL polecenia CREATE TABLE dla każdej tabeli.
  4. Dodaj po 2 rekordy do każdej tabeli (INSERT INTO ... VALUES ...).
  5. Napisz zapytanie, które połączy dane z dwóch tabel, np. „pokaż uczniów i ich klasy”.