Junior
Jak klucz obcy wpływa na integralność danych w bazie?
sobes.tech AI
Odpowiedź od AI
Klucz obcy (foreign key) zapewnia integralność referencyjną danych, gwarantując, że wartości w kolumnie jednej tabeli (tabela podrzędna) odpowiadają wartościom w kolumnie innej tabeli (tabela nadrzędna).
Wpływ na integralność danych:
- Zabrania dodawania rekordów w tabeli podrzędnej z nieistniejącą wartością w odpowiedniej kolumnie tabeli nadrzędnej. Próba wstawienia wiersza odwołującego się do nieistniejącego rekordu nadrzędnego spowoduje błąd.
- Ogranicza usuwanie rekordów z tabeli nadrzędnej, na które odwołują się rekordy w tabeli podrzędnej. Zachowanie przy próbie usunięcia zależy od ustawionej akcji (
ON DELETE):RESTRICT(domyślnie): Zabrania usunięcia.CASCADE: Usuwa powiązane rekordy w tabeli podrzędnej.SET NULL: Ustawia wartość NULL w odpowiedniej kolumnie tabeli podrzędnej (jeśli kolumna na to pozwala).NO ACTION: Podobnie jakRESTRICTprzy standardowej kontroli, ale może się różnić podczas wykonywania.
- Ogranicza aktualizację rekordów w tabeli nadrzędnej. Zachowanie przy próbie aktualizacji zależy również od ustawionej akcji (
ON UPDATE):RESTRICT(domyślnie): Zabrania aktualizacji.CASCADE: Aktualizuje odpowiednią wartość w powiązanych rekordach tabeli podrzędnej.SET NULL: Ustawia wartość NULL w odpowiedniej kolumnie tabeli podrzędnej (jeśli kolumna na to pozwala).NO ACTION: Podobnie jakRESTRICTw standardowej kontroli, ale może się różnić podczas wykonywania.
Klucz obcy pomaga zapobiec pojawianiu się "sierocych" rekordów i gwarantuje, że relacje między tabelami pozostają poprawne.