Pytania na egzamin magisterski - Informatyka Gospodarcza - pytanie 18
Bazy danych
Integralność referencyjna
Jest to reguła, która określa stany, w jakich może znajdować się wartość klucza obcego. Dopuszczalne są tylko dwa takie stany: wartość klucza obcego przybiera wartość klucza głównego lub wartość null. Drugi przypadek oznacza, ze związek pomiędzy niektórymi z obiektów reprezentowanych w dwóch powiązanych kluczami relacjach jest nieznany lub takiego związku nie ma. Jest to jednak rzadki przypadek i zazwyczaj konieczne jest raczej zapewnienie, ze taki stan klucza obcego nie wystąpi. Podobnie jak w przypadku integralności encji możliwe jest określenie na etapie definiowania schematu bazy danych, ze dany klucz obcy nie może przybierać wartości null. Zachowanie integralności referencyjnej wymaga szczególnej uwagi podczas usuwania i aktualizacji krotek. Dla każdego związku pomiędzy relacjami w bazie danych (np Oracle)konieczne jest zdefiniowanie sposobu postępowania w takim przypadku. Jeśli z bazy danych wydawnictwa usuwany jest autor lub zmianie ulega wartość klucza głównego relacji przechowującej informacje o autorach, co dzieje sie z napisanymi przez niego książkami? Istnieją trzy możliwości, wybór najwłaściwszej w danym przypadku należy rozważyć projektując bazę danych (model relacyjny nie narzuca żadnej z tych metod postępowania):
Zmiany ograniczone (ang. restricted) Nie jest możliwe usuniecie krotki zawierającej wartość klucza głównego ani zmiana tej wartości jeżeli odwołuje sie do niej jakikolwiek klucz obcy. W podanym przykładzie w celu usunięcia z bazy danych autora należy najpierw usunąć z niej jego książki.