headerphoto

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.

relace1.png, 6,3kB

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é.

relace2.png, 6,3kB

Připomínáme ještě, že cizí klíč je stejného datového typu jako primární klíč, na který odkazuje.

Relace M:N nebudeme v databázích používat. Je vhodné ji v návrhu převést na relace 1:N.

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.

Design downloaded from Free Templates - your source for free web templates