Obsah

Relační databáze

Pojmy

Technologie

Všechny tyto databáze jsou postavené na jazyku SQL (Structured Query Language), který byl vyvinut firmou IBM. Liší se akorát v implementaci ukládání dat a přidaných vlastních prvcích.

Vazba

Vztah mezi daty v jednotlivých entitách (= tabulkách).

1:1

Pro každý záznam v tabulce první existuje pouze jeden záznam v tabulce druhé.

Příklad: Mám tabulku občané a tabulku rodná čísla. Každý občan má pouze jedno rodné číslo a každé rodné číslo má pouze jednoho svého občana.

1:n

Každý záznam v první tabulce může být spojeno s více záznamy v tabulce druhé.

Příklad: Mám tabulku psů a tabulku majitelů. Každý pes má svého pouze jednoho majitele, ale jeden majitel může mít vícero psů.

n:m

Více záznamů v první tabulce může být spojeno s více záznamy v tabulce druhé. Tato problematika se řeší tzv. vazebnou tabulkou, která obsahuje všechny relace mezi záznamy.

Příklad: Slovník. Mám tabulku obsahující všechna česká slova, mám druhou tabulku obsahující všechna slovenská slova a mám vazebnou tabulku, která obsahuje všechny možné překlady pro jednotlivá slova.

Klíče

Primární klíč

Atribut (=sloupec), který jednoznačně identifikuje každý záznam tabulky, tím pádem by měl být pro každý záznam tabulky unikátní a neměl by mít nulovou hodnotu.

Příklad: Primárním klíčem každého občana by mohlo být rodné číslo, protože ho má každý unikátní.

Cizí klíč

Atribut který slouží pro vyjádření vztahu mezi entitami. Můžeme to vidět na příkladu níže. Cizí klíč nemusí být unikátní (u vazeb 1:n a n:m by to ani nebylo možné).

Normální formy

= normy, které by bylo dobré dodržovat při návrhu tabulky

1 NF

„Každý atribut by měl obsahovat pouze atomické hodnoty.“

To znamená, že informace obsažené v atributu by už neměly být rozložitelné na menší jednotky.

Příklad: Neměl bych mít atribut JmenoAPrijmeni, ale měl bych používat dva atributy jeden atribut pro Jmeno a druhý pro Prijmeni, protože nikdy nevím, kdy budu potřebovat jen jméno nebo pouze příjmení.

2 NF

„Každý atribut, který není primárním klíčem, by měl být na primárním klíči závislý.“

To znamená, že pokud se mi informace v jednom atributu u více záznamů opakují (–> nejsou závislé na primárním kliči), měl bych si pro ně vytvořit speciální tabulku, která bude obsahovat tyto hodnoty, a v původní tabulce akorát dát cizí klíč odkazující na tuto tabulku.

Příklad: Mám tabulku obsahující moje zboží, které prodávám. V tabulce mám jako atribut jméno dodavatele a jeho číslo, pokud mám více zboží od stejného dodavatele dochází k opakování těchto hodnot. Proto vytvořím novou tabulku obsahující dodavatele a do původní tabulky dám cizí klíč odkazující na tabulku dodavatelů.

3 NF

„Všechny neklíčové atributy by na sobě měly být navzájem nezávislé.“

To znamená, že neklíčové atributy, které by na sobě byly závislé bychom měli odsunout do jiné tabulky.

Příklad: Mám tabulku obsahující zaměstnance a jejich pozice a jejich platy. Zaměstnanci na stejných pozicích by měli mít stejné platy (pokud to nejsou ženy), to znamená, že neklíčové atributy plat a pozice jsou na sobě závislé. Vyřeším to tak, že si vytvořím jinou tabulku obsahující pozice a k nim přidělené platy.

Základní databázové příkazy