DB
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
Tabela relacyjna
Spójność, brak anomalii, mniejsza redundancja
Większy zbiór danych
Większy zbiór danych
Przez tabelę pośrednią z dwoma FK
Nie tworzymy takiej relacji
Nie tworzymy takiej relacji
Checklista Po module umiesz:
Materiały: INF.03 — Etapy projektowania baz danych · Opracowanie: Tomasz Puchała © 2025