Logická úroveň - Relační databázový model
Logická úroveň - Relační databázový model
Požadavky na absolvování
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.
- Data v relační databázi musí být reprezentována explicitně na logické úrovni pomocí relačních tabulek.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Aplikační logika nesmí vyžadovat modifikaci v případě, kdy jsou data distribuována na různých počítačích.
- 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.