KWALIFIKACJA INF3 - WRZESIEŃ 2014

PYTANIE NR 11.
Wskaż prawidłową kolejność tworzenia bazy danych
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Prawidłowa sekwencja w ujęciu praktyczno‑egzaminacyjnym to:
najpierw określa się cel i wymagania, potem projektuje tabele, następnie definiuje powiązania (relacje/klucze obce), a na końcu dopracowuje strukturę przez normalizację, aby ograniczyć redundancję i anomalia danych.

Pełne wyjaśnienie:

Projektowanie bazy danych zaczyna się od określenia celu (jakie informacje mają być przechowywane i do czego będą używane). Bez tego nie da się sensownie dobrać encji/obiektów świata rzeczywistego ani atrybutów.

Kolejny krok to zaprojektowanie tabel (w praktyce: wstępny schemat relacyjny), czyli decyzja, jakie zbiory danych będą osobnymi tabelami, jakie pola znajdą się w każdej z nich oraz jaki będzie klucz główny. Na tym etapie powstaje "szkielet" struktury danych.

Następnie ustala się relacje między tabelami, co w relacyjnych bazach danych oznacza m.in. dobranie kluczy obcych oraz typu powiązań (1:1, 1:N, N:M realizowane tabelą pośrednią). To etap krytyczny dla integralności danych i poprawnego działania zapytań oraz aplikacji internetowej korzystającej z bazy.

Na końcu wykonuje się normalizację jako uporządkowanie i dopracowanie projektu: eliminowanie redundancji i typowych anomalii (wstawiania, usuwania, aktualizacji) przez odpowiedni podział danych na tabele oraz poprawę zależności funkcyjnych. W wielu ujęciach teoretycznych normalizacja jest częścią projektu logicznego i bywa opisywana wcześniej niż "fizyczne" tworzenie tabel w SQL, ale w praktyce szkolnej spotyka się podejście iteracyjne: najpierw szkic tabel i relacji, potem normalizacja jako etap rafinacji.

Pozostałe propozycje są błędne, bo umieszczają normalizację przed zdefiniowaniem sensownego układu tabel lub relacji, albo sugerują tworzenie relacji przed ustaleniem tabel, co jest nielogiczne (relacja musi łączyć konkretne tabele/klucze). Częsty błąd uczniów polega na traktowaniu normalizacji jak całkowicie niezależnego, "magicznego" kroku, zamiast procesu, który wynika z projektu i zależności między danymi.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Normalizacja to porządkowanie schematu bazy (podział danych na tabele i zależności) tak, aby ograniczyć redundancję i anomalia aktualizacji. Dzięki temu te same informacje nie są powielane w wielu miejscach, a zmiany danych (np. adres klienta) nie powodują niespójności w rekordach.
Najczęściej wyróżnia się: analizę wymagań (cel), projekt tabel (schemat), ustalenie relacji i kluczy (integralność), a następnie dopracowanie projektu przez normalizację i ewentualną optymalizację. W praktyce etapy mogą się powtarzać iteracyjnie w kilku cyklach.
Relacje w relacyjnej bazie danych opierają się na kluczach (np. obcych), które wskazują konkretne kolumny w konkretnych tabelach. Jeśli nie zdefiniujesz tabel i kluczy, nie masz "punktów zaczepienia" dla relacji, więc nie da się poprawnie określić powiązań i integralności.
Projekt logiczny opisuje strukturę danych niezależnie od DBMS (jakie tabele, atrybuty i zależności). Implementacja to zapis tych decyzji w SQL (np. polecenia tworzące tabele i ograniczenia). Na egzaminie warto pamiętać, że normalizacja dotyczy głównie projektu, a nie samej składni SQL.
W podejściu klasycznym normalizacja jest elementem projektowania logicznego, zanim "fizycznie" utworzysz struktury w DBMS. W podejściu iteracyjnym często robi się szkic tabel i relacji, a potem normalizuje jako dopracowanie. Kluczowe jest rozumienie celu: redukcja redundancji i anomalii.
Częsty błąd to ustawienie normalizacji jako pierwszego kroku (bez schematu nie ma czego normalizować) albo tworzenie relacji przed tabelami. Inny błąd to mylenie normalizacji z optymalizacją wydajności (np. indeksami) – to odrębne zagadnienia, zwykle późniejsze.
Chodzi o spisanie wymagań: jakie dane są potrzebne, jakie operacje będą wykonywane (wyszukiwanie, dodawanie, raporty), kto jest użytkownikiem oraz jakie są reguły biznesowe. To podstawa do wyboru tabel, kluczy i relacji, a w aplikacji WWW – do zaprojektowania formularzy i API.
Typowe anomalia to: aktualizacji (ta sama informacja w wielu wierszach trzeba zmieniać wielokrotnie), wstawiania (nie da się dodać faktu bez innych danych) i usuwania (usunięcie rekordu kasuje też inną potrzebną informację). Normalizacja zmniejsza ryzyko takich problemów.
Tak, czasem celowo wprowadza się denormalizację dla wydajności odczytu (mniej złączeń), ale to decyzja świadoma i zależna od obciążeń systemu. Na poziomie egzaminu zwykle oczekuje się rozumienia normalizacji jako podstawowego sposobu projektowania poprawnego schematu.
Ćwicz na przykładach: opisz wymagania, narysuj prosty model (encje i relacje), zamień go na tabele z kluczami, a potem sprawdź redundancję i zależności (1NF–3NF). Dodatkowo przećwicz SQL: CREATE TABLE i klucze obce, bo to łączy teorię z praktyką.
info

To pytanie poprawnie rozwiązuje 43% zdających egzamin. trudne

Źródła:

  • Ramez Elmasri, Shamkant B. Navathe, "Fundamentals of Database Systems", rozdziały o projektowaniu baz danych i normalizacji (źródło książkowe – wskazanie metodyki klasycznej).
  • C. J. Date, "An Introduction to Database Systems", rozdziały dotyczące modelu relacyjnego i normalizacji (źródło książkowe – ujęcie teoretyczne normalizacji).
  • PostgreSQL Documentation: "CREATE TABLE" oraz "FOREIGN KEY" (odniesienie do praktycznej implementacji tabel i relacji w SQL): https://www.postgresql.org/docs/current/sql-createtable.html ; https://www.postgresql.org/docs/current/ddl-constraints.html (dostęp: 2026-03-01).

Materiały:

  • Podręczniki akademickie z projektowania baz danych (rozdziały o modelu ER i normalizacji)
  • Oficjalna dokumentacja SQL wybranego DBMS (CREATE TABLE, FOREIGN KEY, CONSTRAINT)
  • Ćwiczenia projektowe: modelowanie ERD i przekształcanie do schematu relacyjnego

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego