Databázový sirotek
Technology
12 hours ago
8
4
2
Author
Albert FloresDatabá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ž 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 bez provedení následné kontroly databázové integrity v rodičovské tabulce např. +more 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.