DB
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:
- Otwórz diagram relacji (Relationships)
- Wypisz zależności: które tabele są połączone przez FK?
- Znajdź pola używane jako klucz główny i klucz obcy
- 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.
- W Project/SQL: ALTER TABLE uczniowie ADD pesel CHAR(11) UNIQUE;
- Sprawdź, czy formularze obsługują nowe pole
- 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).
- ALTER TABLE uczniowie MODIFY nazwisko VARCHAR(70);
- 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ę!
- Dlaczego należy analizować strukturę bazy przed zmianą?
- Jak sprawdzić powiązania między tabelami?
- Co może się stać, gdy zmienisz długość pola tekstowego?
- 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