4. Pravidla relačních databázových systémů

Dr. E. F. Codd definoval na přelomu šedesátých a sedmdesátých let minulého století následujících dvanáct pravidel pro relační databázové systémy.

  1. Data v relační databázi musí být reprezentována explicitně na logické úrovni pomocí relačních tabulek.
  2. Data uložená v relační databázi musí být přístupná pomocí kombinace názvu tabulky, názvu sloupce a hodnoty primárního klíče.
  3. Musí existovat identifikátor chybějící hodnoty nebo neznámé hodnoty odlišný od čísla nula a prázdného řetězce. Tento identifikátor označujeme pojmem NULL.
  4. Databáze musí umožňovat autorizovaným uživatelům přístup k datům i jejich metadatům pomocí stejného databázového jazyka.
  5. Databázový jazyk musí být jednoduchý a uživatelsky přívětivý, přičemž musí umožňovat definici dat, entitních omezení, manipulaci s daty, definici transakcí a přístupových práv.
  6. Relační databázový systém musí umožňovat definování pohledů a musí pro tyto pohledy povolit či zakázat vkládání, mazání nebo aktualizaci záznamů v základních tabulkách, nad kterými jsou tyto pohledy definovány.
  7. Relační databázový systém musí umožňovat množinové operace s celými tabulkami, a to nejen při vyhledávání, ale také při vkládání, aktualizaci a mazání dat.
  8. Aplikační logika nesmí vyžadovat modifikaci v případě změny interního uložení nebo způsobu přístupu k datům. Tento trend definuje fyzickou datovou nezávislost.
  9. Aplikační logika nesmí vyžadovat modifikaci v případě změn základních tabulek nezpůsobujících ztrátu informace (zrušení nebo přidání sloupce do tabulky). Tento bod definuje logickou datovou nezávislost.
  10. Aplikační logika nesmí vyžadovat modifikaci v případě změn integritních omezení definovaných pomocí databázového jazyka a uložených v systémovém katalogu.
  11. Aplikační logika nesmí vyžadovat modifikaci v případě, kdy jsou data distribuována na různých počítačích.
  12. Pokud disponuje databázový systém nízkoúrovňovým programovacím jazykem, nesmí být tomuto jazyku umožněno rušit nebo měnit omezení definovaná databázovým jazykem.