Databáze - Návrh relací
Na příkladech si ukážeme, základní principy návrhu tabulek a relací. Chceme realizovat jednoduchou databázi školy. Budeme evidovat informace o studentech, učitelích a třídách. Protože tabulky budou navzájem propojeny relací, je nutné nastavit v každé primární klíč.
Tabulka studenti obsahuje číslo studenta, jméno a příjmení. Podobně tabulka učitelé obsahuje číslo učitele, titul, jméno a příjmení. Tabulka třídy obsahuje kód třídy, číslo učebny a studijní obor.
Nejdříve nastavíme relaci student je zařazen do třídy. Jedná se o relaci typu 1:N, protože student může být zařazen do jediné třídy, ale třída má více studentů.
Do tabulky studenti doplníme propojovací pole (cizí klíč) třída a vytvoříme relaci propojením s primárním klíčem tabulky třídy.
Dále nastavíme relaci pro třídní učitele. Každá třída má jednoho třídního učitele a učitel může být třídní v maximálně jedné třídě (učitel je nebo není třídní). Jedná se tedy o relaci typu 1:1.
Do tabulky třídy doplníme cizí klíč třídní učitel. Protože potřebujeme relaci 1:1, musíme dále ještě pro něj nastavit jedinečnost. Tím zabezpečíme, že se v tabulce třídy nebude žádný učitel opakovat. Až teď můžeme propojit cizí klíč s primárním klíčem tabulky učitelé.
Připomínáme ještě, že cizí klíč je stejného datového typu jako primární klíč, se kterým je propojený.
Poznámka: Problém někdy vzniká při nesprávné volbě cizího klíče. Pokud navrhujeme cizí klíč pro první z výše uvedených relací (1:N), vycházíme z obsahu relace. Třída má mnoho studentů (nelze zapsat více studentů do jednoho pole), student má jednu třídu (jednu třídu zapíšeme jednoduše) - cizí klíč navrhneme v tabulce studenti.