Strona główna › Pytania INF.03 › Pytanie 740
INF.03 · pytanie #740
Co oznacza pojęcie integralności referencyjnej?
- AKażdej wartości klucza obcego odpowiada dokładnie jedna wartość klucza podstawowego.
- BKażda encja musi mieć zdefiniowany klucz podstawowy o wartości unikatowej i różnej od NULL.
- CBaza jest odporna na błędy i awarie wynikające z zawodności sprzętu i oprogramowania.
- DWartość atrybutu należy do jego dziedziny.
Poprawna odpowiedź: A. Każdej wartości klucza obcego odpowiada dokładnie jedna wartość klucza podstawowego.
Kliknij odpowiedź, którą uważasz za poprawną.
Wyjaśnienie
Integralność referencyjna to jedna z kluczowych zasad projektowania relacyjnych baz danych. Chodzi w niej o to, żeby wszystkie powiązania między tabelami były spójne i „nie urywały się w powietrzu”. Dlatego poprawne jest stwierdzenie, że każdej wartości klucza obcego musi odpowiadać dokładnie jedna istniejąca wartość klucza podstawowego w tabeli nadrzędnej. Klucz obcy (FOREIGN KEY) wskazuje na klucz główny (PRIMARY KEY) albo unikalny w innej tabeli i DBMS pilnuje, żeby te powiązania były zawsze poprawne. W praktyce oznacza to np. że w tabeli Zamówienia nie można wpisać id_klienta, którego nie ma w tabeli Klienci. System zarządzania bazą danych (MySQL, PostgreSQL, SQL Server, Oracle itd.) przy próbie wstawienia takiego rekordu po prostu zgłosi błąd naruszenia integralności referencyjnej. To samo dotyczy usuwania – jeśli chcesz usunąć klienta, do którego są przypisane zamówienia, to albo system na to nie pozwoli, albo (jeśli tak zaprojektujesz) automatycznie usunie lub zaktualizuje powiązane rekordy zgodnie z regułami ON DELETE / ON UPDATE (CASCADE, RESTRICT, SET NULL itp.). Moim zdaniem integralność referencyjna to absolutna podstawa przy poważnych projektach – bez tego szybko robi się bałagan: „osierocone” rekordy, błędne raporty, problemy z analityką. Dobre praktyki mówią jasno: zawsze definiuj klucze obce między tabelami powiązanymi relacjami 1‑wiele lub wiele‑wiele (przez tabelę pośredniczącą), nie polegaj tylko na logice aplikacji. Dzięki temu baza sama wymusza poprawność danych niezależnie od tego, czy łączy się z nią PHP, JavaScript (np. przez API), czy cokolwiek innego. To bardzo podnosi jakość i bezpieczeństwo danych w całym systemie.
🤖 Wyjaśnienie generowane przez AI – weryfikuj w oficjalnych źródłach.