Analizowanie i modyfikacja struktury bazy danych

Ocena ryzyka zmian, spójność, migracja i wydajność — INF.03

Teoria Jak analizować i modyfikować bazę bezpiecznie?

  • Przed zmianą struktury: sprawdź relacje między tabelami, zależności, klucze obce (diagram, Relationships)
  • Zanalizuj, jak zmiana typu pola, dodanie/usuń kolumnę wpłynie na istniejące dane, kwerendy i formularze
  • Modyfikacja PKEY lub FK wymaga oceny ryzyka: czy nie stracimy powiązań?
  • Wpływ na wydajność: np. długi VARCHAR spowalnia zapytania, popraw indeksację przy nowych kolumnach
  • Sporządź kopię przed migracją lub pracuj na kopii testowej
  • Po każdej zmianie przeprowadź testy działania bazy, kwerend i raportów

Świadoma analiza to bezpieczeństwo danych i stabilność aplikacji.

Ćwiczenie 1 Analiza struktury bazy przed zmianą

Krok po kroku:
  1. Otwórz diagram relacji (Relationships)
  2. Wypisz zależności: które tabele są połączone przez FK?
  3. Znajdź pola używane jako klucz główny i klucz obcy
  4. Sprawdź jak zmiana (np. usunięcie kolumny) wpłynie na inne tabele, kwerendy, raporty
Tabela: uczniowie    <-- klasa_id -- FK do klasy
Tabela: klasy        <-- id_klasy  -- PK
Tabela: oceny        <-- uczen_id  -- FK do uczniowie
Zmiana długości nazwiska w uczniowie → sprawdź czy nie przepływa dalej do raportów/indeksów

Ćwiczenie 2 Symulacja modyfikacji — dodanie pola do tabeli

Zadanie: Dodaj do tabeli „uczniowie” pole „PESEL”. Przeanalizuj skutki.
  1. W Project/SQL: ALTER TABLE uczniowie ADD pesel CHAR(11) UNIQUE;
  2. Sprawdź, czy formularze obsługują nowe pole
  3. Czy trzeba poprawić kwerendy raportowe używające uczniów?
Wpływ:
- Formularze: należy dodać pole PESEL do widoku lub ustawić jako niewidoczne
- Kwerendy: SELECT *, więc PESEL automatycznie się pojawi
- Integralność: unikalność PESEL chroni przed zdublowaniem rekordów
- Backup: aby móc wycofać zmianę w razie problemów

Ćwiczenie 3 Modyfikacja typu kolumny i jej konsekwencje

Przykład: Zmień rozmiar pola „nazwisko” w uczniowie z VARCHAR(40) na VARCHAR(70).
  1. ALTER TABLE uczniowie MODIFY nazwisko VARCHAR(70);
  2. Sprawdź czy dłuższe wartości nie wpływają na wydruki, eksporty, indeksy
Plusy:
  - Dłuższe nazwiska mieszczą się bez błędów przy dodawaniu
Minusy:
  - Dłuższe teksty mogą rozjeżdżać układ wydruku/raportu
  - Indeksacja może być mniej efektywna przy bardzo długich polach tekstowych

Ćwiczenie 4 Testowanie integralności po modyfikacji

Zadanie: Po zmianie struktury spróbuj:
  • Wstawić rekord bez wymaganej relacji FK — baza powinna zgłosić błąd
  • Zaimportować/wyeksportować dane z nowym polem — sprawdź poprawność
INSERT INTO uczniowie (imie, nazwisko, klasa_id) VALUES ('Test', 'Nowy', 99);
/* Jeśli klasa_id ≠ istnieje w klasy, otrzymamy błąd FK */

Eksport do CSV z polem PESEL — nowa kolumna pojawia się w pliku wynikowym

Quiz Sprawdź wiedzę!

  1. Dlaczego należy analizować strukturę bazy przed zmianą?
  2. Jak sprawdzić powiązania między tabelami?
  3. Co może się stać, gdy zmienisz długość pola tekstowego?
  4. Jak sprawdzić integralność po modyfikacji?
  • Aby uniknąć utraty danych i błędów w relacjach/kwerendach
  • Analizując diagram relacji (Relationships), zależności FK/PK
  • Może wpłynąć na układ wydruków, eksport, szybkość wyszukiwania
  • Testując operacje na nowych polach, relacjach, kwerendach

Checklista Sprawdź umiejętności

  • Analizuję strukturę bazy i relacje między tabelami
  • Planuję modyfikacje ze świadomością wpływu na spójność/wydajność
  • Przeprowadzam testy poprawności po zmianach
  • Zabezpieczam dane przed utratą przy migracji/zmianach
Materiały: INF.03 — Modyfikacja i analiza bazy · Autor: Tomasz Puchała © 2025