Referenční integrita je funkce databáze v systémech správy relačních databází. Zajišťuje, aby vztahy mezi tabulkami v databázi zůstaly přesné, a to pomocí omezení, která uživatelům nebo aplikacím zabrání v zadávání nepřesných dat nebo poukazování na neexistující data.
Primární klíč
Primární klíč databázové tabulky je jedinečný identifikátor přiřazený každému záznamu. Každá tabulka určuje jeden nebo více sloupců určených jako primární klíč. Číslo sociálního zabezpečení může být primárním klíčem pro seznam zaměstnanců v databázi, protože každé číslo sociálního zabezpečení je jedinečné. V závislosti na složitosti podkladových dat se může ukázat jako užitečné použít složené klíče jako primární klíč. Například v tabulce zaměstnanců, ačkoli číslo sociálního zabezpečení funguje k identifikaci osoby, může kombinace SSN plus datum pronájmu izolovat konkrétní záznamy zaměstnanců, pokud se osoba připojila, odešla a poté se znovu připojila ke společnosti.
Cizí klíč
Cizí klíč je identifikátor v tabulce, který odpovídá primárnímu klíči jiné tabulky. Cizí klíč vytváří vztah s jinou tabulkou. Referenční integrita odkazuje na vztah mezi těmito tabulkami. Pokud má jedna tabulka cizí klíč k jiné tabulce, koncept referenční integrity uvádí, že do tabulky, která obsahuje cizí klíč, nemusíte přidat záznam, pokud v propojené tabulce není odpovídající záznam. Zahrnuje také techniky známé jako kaskádová aktualizace a kaskádové odstranění, které zajišťují, že změny provedené v propojené tabulce se projeví v primární tabulce.
Příklad pravidel referenční integrity
Zvažte například situaci, kdy máte dvě tabulky: Zaměstnanci a Manažeři. Tabulka Zaměstnanci má atribut cizího klíče s názvem ManagedBy, který odkazuje na záznam každého vedoucího zaměstnance v tabulce Správci. Referenční integrita vynucuje následující tři pravidla:
- Nelze přidat záznam do tabulky Zaměstnanci, pokud atribut ManagedBy neodkazuje na platný záznam v tabulce Správci. Referenční integrita zabrání vložení nesprávných podrobností do tabulky. Jakákoli operace, která nesplňuje pravidlo referenční integrity, selže.
- Pokud se primární klíč pro záznam v tabulce Správci změní, všechny odpovídající záznamy v tabulce Zaměstnanci se upraví pomocí kaskádové aktualizace.
- Pokud je odstraněn záznam v tabulce Správci, všechny odpovídající záznamy v tabulce Zaměstnanci jsou odstraněny pomocí kaskádového odstranění.
Pravděpodobně nechcete kaskádově mazat zaměstnance, když manažeři odejdou. Většina prací s databázemi ve skutečnosti záznamy neodstraní, ale spíše je deaktivuje. Například tabulky zaměstnanců často mají příznak „aktivní“, který označuje aktuální zaměstnání. Když manažer odejde, jeho „aktivní příznak“ je nastaven na nulu – záznam nebude odstraněn. Poté, když je přiřazen nový manažer, záznamy zaměstnanců se aktualizují tak, aby odrážely novou hodnotu cizího klíče nového manažera.
Výhody omezení referenční integrity
Použití systému správy relačních databází s referenční integritou nabízí několik výhod:
- Zabraňuje zadávání duplicitních dat
- Zabrání jedné tabulce směřovat na neexistující pole v jiné tabulce
- Zaručuje soulad mezi „partnerskými“ tabulkami
- Zabraňuje odstranění záznamu, který obsahuje hodnotu, na kterou cizí klíč odkazuje v jiné tabulce
- Zabraňuje přidání záznamu do tabulky, která obsahuje cizí klíč, pokud v propojené tabulce není primární klíč