Referenční integrita - Referential integrity

artist_id
) hodnota v tabulce alba, která odkazuje na neexistujícího umělce - jinými slovy existuje cizí klíč hodnota bez odpovídající primární klíč hodnota v odkazované tabulce. Stalo se zde to, že tam byl umělec zvaný „Aerosmith ", s artist_id
z 4
, který byl odstraněn z tabulky umělce. Nicméně album „Jezte bohatých "odkazoval se na tohoto umělce. S vynucenou referenční integritou by to nebylo možné."Referenční integrita je vlastnost dat uvádějící, že všechny její reference jsou platné. V kontextu relační databáze, vyžaduje, aby pokud byla hodnota jednoho atributu (sloupce) a vztah (tabulka) odkazuje na hodnotu jiného atributu (buď ve stejném nebo jiném vztahu), pak musí odkazovaná hodnota existovat.[1]
Pro udržení referenční integrity v relační databázi libovolný sloupec v základně stůl který je prohlášen za cizí klíč může obsahovat pouze nulové hodnoty nebo hodnoty z nadřazené tabulky primární klíč nebo a klíč kandidáta.[2] Jinými slovy, když se použije hodnota cizího klíče, musí odkazovat na platný existující primární klíč v nadřazené tabulce. Například odstranění záznamu, který obsahuje hodnotu, na kterou odkazuje cizí klíč v jiné tabulce, by narušil referenční integritu. Nějaký systémy pro správu relačních databází (RDBMS) může vynutit referenční integritu, obvykle buď odstraněním řádků cizích klíčů, aby se zachovala integrita, nebo vrácením chyby a neprovedením odstranění. Která metoda se použije, lze určit omezením referenční integrity definovaným v a datový slovník.
Přídavné jméno „referenční“ popisuje akci, která a cizí klíč provádí „odkazování“ na propojený sloupec v jiné tabulce. Jednoduše řečeno, „referenční integrita“ zaručuje, že cílový „odkazovaný“ bude nalezen. Nedostatek referenční integrity v databázi může vést relační databáze k vrácení neúplných dat, obvykle bez náznaku chyby.
Formalizace
An závislost na začlenění více než dva (případně identické) predikáty a ze schématu je zapsán , Kde , jsou odlišné atributy (názvy sloupců) a . To znamená, že n-tice hodnot, které se objevují ve sloupcích pro fakta o musí také vypadat jako n-tice hodnot ve sloupcích z nějakého důvodu .
Logické implikace mezi závislostmi zahrnutí mohou být axiomatizovány pravidly odvození[3]:193a může být rozhodl podle a PSPACE algoritmus. Je možné prokázat problém PSPACE - kompletní snížením problému s přijetím u a lineárně ohraničený automat.[3]:196 Logické důsledky mezi závislostmi, které mohou být závislostmi zahrnutí nebo funkční závislosti je nerozhodnutelné snížením z slovní úloha pro monoidy.[3]:199
Deklarativní referenční integrita
Deklarativní referenční integrita (DRI) je jednou z technik v SQL programovací jazyk databáze pro zajištění integrity dat.
Význam v SQL
Tabulka (nazývaná referenční tabulka) může odkazovat na sloupec (nebo skupinu sloupců) v jiné tabulce (odkazovaná tabulka) pomocí cizí klíč. Odkazované sloupce v odkazované tabulce musí být pod jedinečným omezením, například a primární klíč. Možné jsou také vlastní reference (nejsou však plně implementovány v MS SQL Serveru)[4]). Na vkládání nový řádek do referenční tabulky, systém správy relačních databází (RDBMS) kontroluje, zda zadaná hodnota klíče existuje v odkazované tabulce. Pokud ne, není vložka možná. Je také možné určit akce DRI AKTUALIZACE a VYMAZAT, například CASCADE (přeposílá změnu / mazání v odkazované tabulce do odkazovacích tabulek), ŽÁDNÁ AKCE (pokud je odkazován na konkrétní řádek, změna klíče není povolena) nebo SET NULL / SET DEFAULT (změněný / vymazaný klíč v výsledkem referenční tabulky je nastavení referenčních hodnot na NULL nebo na DEFAULT hodnotu, pokud je zadána).
ANSI / ISO / IEC 9075-1: 2003, Informační technologie - Databázové jazyky - SQL - Část 1: Rámec (SQL / Framework) ANSI / ISO / IEC 9075-2: 2003, Informační technologie - Databázové jazyky - SQL - Část 2: Nadace (SQL / Foundation)
Specifický význam produktu
v Microsoft SQL Server pojem DRI platí také pro přidělování oprávnění uživatelům k databázovému objektu. Poskytnutí oprávnění DRI uživateli databáze umožňuje přidat omezení cizího klíče do tabulky.[5]
Viz také
- Dereferencování nulového ukazatele
- Visící ukazatel
- Normální forma domény / klíče
- Integrita entity
- Funkční závislost
- Omezení šíření
- Náhradní klíč
- Pomalu se měnící dimenze
Reference
- ^ Chapple, Mike. „Referenční integrita“. About.com. Citováno 2011-03-20.
Definice: Referenční integrita je databázový koncept, který zajišťuje, že vztahy mezi tabulkami zůstanou konzistentní. 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.
- ^ Coronel a kol. (2013). Database Systems 10. vydání. Cengage Learning, ISBN 978-1-111-96960-8
- ^ A b C Abiteboul, Serge; Hull, Richard B .; Vianu, Victor (1994). "9. Závislost na začlenění". Základy databází. Addison-Wesley. str. 192–199.
- ^ Podpora společnosti Microsoft (11.02.2007). „Chybová zpráva 1785 se objeví, když vytvoříte omezení FOREIGN KEY, které může způsobit více kaskádových cest“. microsoft.com. Citováno 2009-01-24.
- ^ Chigrik, Alexander (13. 8. 2003). „Správa oprávnění uživatelů na serveru SQL Server“. Deník databáze. Citováno 2006-12-17.