KWALIFIKACJA INF3 - STYCZEŃ 2022

PYTANIE NR 28.
Którą integralność opisuje cytowana definicja?
Ilustracja przedstawia fragment tekstu, który jest definicją związaną z bazami danych, a konkretnie z pojęciem klucza obcego.
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Integralność referencyjna dotyczy spójności powiązań między tabelami: wartość klucza obcego w tabeli podrzędnej musi wskazywać istniejący rekord (klucz główny/unikalny) w tabeli nadrzędnej lub być dopuszczalnie pusta. Zapobiega to powstawaniu "osieroconych" odwołań w danych.

Pełne wyjaśnienie:

Integralność referencyjna jest jedną z podstawowych reguł spójności w relacyjnych bazach danych. Opisuje wymaganie, aby każda wartość klucza obcego w tabeli podrzędnej odnosiła się do istniejącego wiersza w tabeli nadrzędnej (zwykle przez klucz główny lub inny klucz unikalny). Dzięki temu relacje typu "zamówienie należy do klienta" albo "wpis należy do użytkownika" nie mogą wskazywać obiektu, którego nie ma w bazie.

Odpowiedź "Referencyjną." pasuje do definicji wtedy, gdy w cytacie pojawia się sens: nie wolno wprowadzić wartości odwołującej się do nieistniejącego rekordu albo odwołanie musi wskazywać istniejący identyfikator. W praktyce jest to realizowane przez ograniczenie FOREIGN KEY oraz odpowiednie akcje aktualizacji/usuwania (np. ograniczenie, kaskada, ustawienie wartości pustej), zależnie od przyjętych reguł projektu.

Pozostałe odpowiedzi nie opisują tego mechanizmu:

  • "Encji." w typowej terminologii wiąże się z integralnością encji: każdy rekord musi być jednoznacznie identyfikowalny (np. klucz główny nie może być pusty), a nie z odwoływaniem się do innych tabel.
  • "Semantyczną." dotyczy poprawności znaczeniowej/biznesowej danych (np. data zakończenia nie może być wcześniejsza niż data rozpoczęcia). To inny poziom reguł niż odwołania kluczami obcymi.
  • "Statyczną." nie jest standardową, podstawową nazwą typu integralności w klasycznym modelu relacyjnym; nie opisuje wprost warunku istnienia rekordu nadrzędnego dla klucza obcego.

Na egzaminie warto kojarzyć słowa-klucze: klucz obcy, odwołanie, istniejący rekord, relacja między tabelami → to najczęściej wskazuje właśnie na integralność referencyjną.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Integralność referencyjna to reguła spójności, która wymaga, aby klucz obcy w tabeli podrzędnej wskazywał istniejący rekord w tabeli nadrzędnej (zwykle klucz główny/unikalny) albo miał wartość dopuszczalną przez projekt (np. pustą). Chroni to przed "osieroconymi" odwołaniami.
Szukaj sformułowań typu: "odwołanie musi wskazywać istniejący rekord", "wartość w jednej tabeli musi odpowiadać wartości w drugiej", "klucz obcy musi istnieć w tabeli nadrzędnej". Gdy mowa o relacji między tabelami i istnieniu rekordu nadrzędnego, to typowy sygnał integralności referencyjnej.
Klucz obcy wymusza, by identyfikator wpisany w tabeli podrzędnej odpowiadał realnemu obiektowi w tabeli nadrzędnej. Dzięki temu aplikacja nie może zapisać np. zamówienia dla nieistniejącego klienta. To ogranicza błędy logiczne i ułatwia bezpieczne łączenie danych w zapytaniach.
Integralność encji dotyczy identyfikowalności rekordu w tej samej tabeli (np. klucz główny nie jest pusty i jednoznacznie wskazuje wiersz). Integralność referencyjna dotyczy powiązań między tabelami: klucz obcy w tabeli podrzędnej musi odnosić się do istniejącego rekordu w tabeli nadrzędnej.
Jeśli włączone są więzy (constraints), DBMS zwykle odrzuci operację INSERT/UPDATE, która wstawia klucz obcy bez odpowiadającego rekordu nadrzędnego. Przy DELETE/UPDATE rekordu nadrzędnego zachowanie zależy od reguł (np. blokada, kaskada, ustawienie wartości na pustą), które ustala projekt bazy.
ON DELETE CASCADE stosuje się, gdy rekordy podrzędne mają sens tylko razem z nadrzędnym (np. pozycje koszyka). Jest ryzykowne, bo usunięcie jednego rekordu może automatycznie usunąć wiele powiązanych danych. Na egzaminie pamiętaj: to mechanizm powiązany z integralnością referencyjną.
Tak, jeśli projekt na to pozwala. W wielu DBMS klucz obcy może mieć wartość NULL, co zwykle oznacza "brak powiązania" (np. opcjonalna relacja). Ważne jest jednak, że każda niepusta wartość klucza obcego nadal musi wskazywać istniejący rekord nadrzędny.
Typowe błędy to: mylenie klucza głównego z obcym, brak kolumny unikalnej po stronie nadrzędnej, różne typy danych w powiązanych kolumnach, próba wstawienia rekordów podrzędnych przed nadrzędnymi oraz nieprzemyślane ustawienie reguł usuwania/aktualizacji (np. kaskady).
Warto łączyć: relacje tabel, klucz obcy, klucz główny, spójność danych, zapobieganie "osieroconym" rekordom, ograniczenia FOREIGN KEY oraz zachowanie przy DELETE/UPDATE. To często pojawia się w kontekście projektowania bazy dla aplikacji internetowej i administracji strukturą danych.
Integralność semantyczna dotyczy sensu biznesowego w obrębie danych (np. zakresy wartości, zależności między datami, reguły typu "wiek >= 0"). Integralność referencyjna dotyczy tego, czy identyfikator w jednej tabeli ma odpowiadający mu rekord w drugiej tabeli. Klucz obcy to najprostsza wskazówka.
info

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

Eksperci podkreślają: "Zapobiega to powstawaniu "osieroconych" odwołań w danych."

Źródła:

  • Ramez Elmasri, Shamkant B. Navathe, "Fundamentals of Database Systems", rozdział o więzach integralności i modelu relacyjnym (integrity constraints), Pearson (wydanie zależne od programu nauczania)
  • Abraham Silberschatz, Henry F. Korth, S. Sudarshan, "Database System Concepts", rozdział dotyczący modelu relacyjnego oraz ograniczeń (key constraints, referential integrity), McGraw-Hill (wydanie zależne od programu nauczania)
  • PostgreSQL Documentation: "CREATE TABLE" / "FOREIGN KEY" / "Referential Integrity", https://www.postgresql.org/docs/current/ddl-constraints.html (dostęp 2026-03-02)

Materiały:

  • Dokumentacja DBMS (np. rozdział o FOREIGN KEY i integrity constraints)
  • Podręcznik do baz danych: rozdział o modelu relacyjnym i ograniczeniach integralności
  • Ćwiczenia SQL: tworzenie tabel z PRIMARY KEY i FOREIGN KEY

Aktualizacja pytania: 03.04.2026



Aktualizacja pytania: 03.04.2026
📡 Brak połączenia internetowego