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:

  1. 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).
  2. 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.