DB
Rozbudowa struktury bazy: nowe tabele, pola, relacje
Projektowanie rozszerzeń — zachowanie spójności INF.03.4
Teoria Rozbudowa bazy — integracja i spójność
- Rozbudowa modelu bazy może polegać na: dodaniu nowych tabel, pól, relacji (np. dla obsługi nowych funkcji aplikacji)
- Każda zmiana musi zachować integralność: klucze, powiązania, unikalność danych
- Nowa relacja oznacza konieczność uzupełnienia powiązań FK, czasem migracji historycznych danych
- Zmiany planuj diagramem — zwizualizuj, jak nowe tabele/pola wpłyną na całość
- Zawsze testuj rozbudowaną bazę pod kątem spójności logiki (FK, PK, constraints) i działania kwerend/raportów
Ćwiczenie 1 Dodanie tabeli do istniejącej bazy
Przykład: Mamy istniejące tabele uczniowie, klasy. Dodaj tabelę „zajecia” powiązaną z klasą (FK).
CREATE TABLE zajecia ( id INT PRIMARY KEY AUTO_INCREMENT, nazwa VARCHAR(60), klasa_id INT, FOREIGN KEY (klasa_id) REFERENCES klasy(id) ); -- Sprawdź zgodność: nie dodasz zajęć bez klasy!
Ćwiczenie 2 Rozbudowa: nowe pole w tabeli + constraint
Zadanie: Dodaj do uczniów pole „email”, wymuś unikalność.
ALTER TABLE uczniowie ADD COLUMN email VARCHAR(120) UNIQUE; -- Test: nie dodasz dwóch uczniów z tym samym emailem.
Ćwiczenie 3 Rozszerzenie: nowa relacja wiele-do-wielu
Przykład: Dodaj tabelę powiązań uczeń–zajęcia (każdy uczeń może uczęszczać na wiele zajęć, każde zajęcia – wielu uczniów).
CREATE TABLE uczniowie_zajecia ( uczen_id INT, zajecie_id INT, PRIMARY KEY (uczen_id, zajecie_id), FOREIGN KEY (uczen_id) REFERENCES uczniowie(id), FOREIGN KEY (zajecie_id) REFERENCES zajecia(id) );
Ćwiczenie 4 Testowanie integralności po rozbudowie
Zadanie: Po dodaniu nowej tabeli/relacji:
- Spróbuj dodać „porzucone” dane (bez powiązania FK) — powinna pojawić się blokada
- Przetestuj działanie kwerend/raportów na nowych polach/tabelach
INSERT INTO zajecia (nazwa, klasa_id) VALUES ('Matematyka', NULL);
-- Błąd: klasa_id nie istnieje, integralność zachowana
SELECT uczniowie.email FROM uczniowie WHERE email IS NOT NULL;
-- Tylko poprawnie dodane adresy, bez duplikatów
Quiz Sprawdź wiedzę o rozbudowie!
- Jak dodać nową tabelę z relacją do bazy?
- Jak wymusić unikalność pola w SQL?
- Co daje tabela pośrednia w relacji wiele-do-wielu?
- Jak sprawdzić integralność po rozbudowie struktury?
- Stworzyć nową tabelę z polem FK i dodać constraint
- UNIQUE przy deklaracji — np. email VARCHAR(120) UNIQUE
- Zapewnia właściwe powiązanie wielu rekordów po obu stronach (uczniowie–zajęcia)
- Testy: próba dodania błędnych danych, kwerendy na nowych polach/tabelach
Checklista Sprawdź umiejętności
- Bezpiecznie rozbudowuję modele: tabele, pola, relacje
- Dbam o integralność logiczną i constraints
- Testuję wyniki po zmianach struktury
- Projektuję zgodnie z wytycznymi INF.03.4
Materiały: INF.03 — Rozbudowa i integralność bazy · Autor: Tomasz Puchała © 2025