Databázový sirotek
Databázový sirotek je nežádoucí stav narušené databázové integrity, kdy v nějaké tabulce existují záznamy, které odkazují „nikam“. Jedná se o situaci, kdy příslušný záznam v tzv. rodičovské tabulce neexistuje.
Tato chyba referenční integrity může nastat ze dvou základních příčin:
- Záznam v rodičovské tabulce byl vymazán operací
DELETE
, aniž by došlo k výmazu nebo přesměrování odkazů z ostatních tabulek v databázi, které na něj odkazovaly (například z dceřiné tabulky). - Záznam v dceřiné tabulce byl nově vložen operací
INSERT
, aniž by byla provedena následná kontrola databázové integrity v rodičovské tabulce např. pomocí databázového triggeru nebo explicitního constraint omezení apod.
Poznámka
Logickým protikladem je pak situace, kdy záznam existuje v rodičovské tabulce, ale neexistují k němu žádné záznamy, které by na něj odkazovaly z tabulek dceřiných, nicméně tato situace nemusí vždy nutně znamenat chybu, respektive narušení databázové integrity.