Zasady projektowania relacyjnych baz danych

Etapy projektowania, model E/R, transformacja, normalizacja, ćwiczenia · INF.03

Moduł Jak powstaje dobra baza danych?

Ta lekcja nauczy Cię — krok po kroku — zaprojektować relacyjną bazę od analizy wymagań po testowanie i optymalizację. Zawiera case'y, kod, checklisty i quiz do samodzielnej pracy.

  • Zrozumiesz 5 fundamentalnych etapów projektowania baz danych
  • Sporządzisz zaawansowany diagram E/R oraz poprawny model relacyjny
  • Wdrożysz zasady normalizacji i optymalizacji
  • Zastosujesz praktyki testowania i wdrożenia

Etap 1 Analiza wymagań i celów

  • Zdefiniuj kto będzie używać bazy, do czego i jakie są krytyczne potrzeby biznesowe
  • Wypisz obiekty rzeczywiste (encje), które mają znaleźć się w modelu
  • Rozpocznij zbieranie atrybutów i pierwszych relacji
Ćwiczenie 1 — Zidentyfikuj encje i atrybuty na podstawie opisu firmy
Przykład dla sklepu: Klient (imię, nazwisko, e-mail), Zamówienie (data, kwota), Produkt (nazwa, cena)

Etap 2 Modelowanie konceptualne — diagram E/R

  • Tworzenie graficznego diagramu: encje, atrybuty, relacje, liczebności, klucze
  • Wybierz notację: Chen, Crow's Foot, UML
  • Określ typy relacji 1:1, 1:n, n:n i od razu ich liczebność
Ćwiczenie 2 — Narysuj model E/R dla scenariusza szkolnego
Encje: Uczeń, Klasa, Przedmiot, Nauczyciel. Relacje: Uczeń–Klasa (1:n), Klasa–Wychowawca (1:1), Uczeń–Przedmiot (n:n)

Etap 3 Transformacja modelu na relacyjny

  • Każda encja —> osobna tabela. Relacje 1:n: klucz obcy po stronie "n"; n:n —> tabela pośrednia.
  • Definicja kluczy podstawowych (PK) i obcych (FK)
  • Opis atrybutów, wybór typów danych, ustal constraints and UNIQUE
Ćwiczenie 3 — Zapisz kawałek schematu SQL
CREATE TABLE Klasy (
  id INT PRIMARY KEY,
  nazwa VARCHAR(30)
);
CREATE TABLE Uczniowie(
  id INT PRIMARY KEY,
  imie VARCHAR(30),
  klasa_id INT,
  FOREIGN KEY (klasa_id) REFERENCES Klasy(id)
);

Etap 4 Normalizacja i optymalizacja

  • Stosuj zasady 1NF, 2NF, 3NF w zakresie tabel, wykrywaj i eliminuj anomalia, kolumny nadmiarowe, zależności przechodnie
  • Popraw typy danych pod kątem wydajności
  • Projektuj pod kątem indeksowania, constraintów, NOT NULL
Ćwiczenie 4 — Przekształcanie do 3NF
Tabela (produkt, klient, adres, zamówienie) dzielona na: Produkty, Klienci, Zamówienia zgodnie z 3NF

Etap 5 Implementacja i testowanie

  • Stwórz bazy i tabele w wybranym SZBD, importuj dane testowe
  • Przetestuj relacje, integrity, unikalność — sprawdź na przykładach
  • Wdrożeniowe testy zapytań, kwerend, backupów, constraintów
Ćwiczenie 5 — Stwórz i przetestuj relację FK na przykładzie
INSERT INTO Klasy(id, nazwa) VALUES(5, '3A');
INSERT INTO Uczniowie(imie, klasa_id) VALUES('Jacek', 5);

Quiz Test wiedzy — etapy projektowania

Modelowanie E/R
Tabela relacyjna
Spójność, brak anomalii, mniejsza redundancja
Większy zbiór danych
Przez tabelę pośrednią z dwoma FK
Nie tworzymy takiej relacji

Checklista Po module umiesz:

Materiały: INF.03 — Etapy projektowania baz danych · Opracowanie: Tomasz Puchała © 2025