Základní klávesy, které usnadňují správu databází

Databázové klíče jsou nejjednodušší způsob, jak vytvořit efektivní relační databázi

Jak už možná víte, databáze slouží k uspořádání informací pomocí tabulek. (Pokud nemáte základní znalost databázových konceptů, přečtěte si Co je to databáze? ) Každá tabulka se skládá z několika řádků, z nichž každá odpovídá jednomu záznamu databáze. Takže, jak databáze uchovávají všechny tyto záznamy rovně? Je to pomocí klíče.

Primární klíče

První klíč, o kterém budeme diskutovat, je primární klíč . Každá databázová tabulka by měla mít jeden nebo více sloupců označených jako primární klíč . Hodnota, kterou tento klíč obsahuje, by měla být jedinečná pro každý záznam v databázi.

Předpokládejme například, že máme tabulku nazvanou Zaměstnanci, která obsahuje osobní informace pro každého zaměstnance v naší firmě. Musíme vybrat vhodný primární klíč, který by jednoznačně identifikoval každého zaměstnance. Vaše první myšlenka může být použití jména zaměstnance. To by nefungovalo velmi dobře, protože je myslitelné, že byste najali dva zaměstnance se stejným jménem. Lepší volbou může být použití jedinečného identifikačního čísla zaměstnance, které přiřadíte každému zaměstnanci, když je najat. Některé organizace se rozhodly používat čísla sociálního zabezpečení (nebo podobné vládní identifikátory) pro tento úkol, protože každý zaměstnanec má již jeden a jsou zaručeny, že jsou jedinečné. Použití čísel sociálního zabezpečení za tímto účelem je však velmi kontroverzní z důvodu obav o soukromí. (Pokud pracujete pro vládní organizaci, použití čísla sociálního pojištění může být dokonce i nezákonné podle zákona o ochraně osobních údajů z roku 1974.) Z tohoto důvodu se většina organizací přesunula do používání jedinečných identifikátorů (ID zaměstnance, ID studentů atd. .), které tyto obavy o soukromí nesdílejí.

Jakmile se rozhodnete pro primární klíč a nastavíte databázi, systém řízení databáze vynucuje jedinečnost tohoto klíče.

Pokud se pokusíte vložit záznam do tabulky s primárním klíčem, který duplikuje existující záznam, vložka selže.

Většina databází je také schopna generovat vlastní primární klíče. Například Microsoft Access může být nakonfigurován tak, aby používal typ dat AutoNumber přiřadit jedinečné ID ke každému záznamu v tabulce. I když je to efektivní, je to špatná konstrukční praxe, protože v každé tabulce v tabulce zůstává bezvýznamná hodnota. Proč nepoužít tento prostor k ukládání něčeho užitečného?

Zahraniční klíče

Jiným typem je cizí klíč , který slouží k vytváření vztahů mezi tabulkami. Přírodní vztahy existují mezi tabulkami ve většině databázových struktur. Při návratu do databáze Zaměstnanci si představte, že chceme do databáze přidat tabulku s informacemi o oddělení. Tato nová tabulka by se mohla jmenovat Oddělení a obsahovala velké množství informací o oddělení jako celku. Také bychom chtěli zahrnout informace o zaměstnancích v oddělení, ale bylo by nadbytečné mít stejné informace ve dvou tabulkách (Zaměstnanci a oddělení). Místo toho můžeme vytvořit vztah mezi oběma tabulkami.

Předpokládejme, že tabulka oddělení používá sloupec Název oddělení jako primární klíč. Pro vytvoření vztahu mezi oběma tabulkami přidáme nový sloupec do tabulky Zaměstnanci s názvem Oddělení. Poté vyplníme název oddělení, do kterého patří každý zaměstnanec. Systém správy databáze také informujeme, že sloupec oddělení v tabulce Zaměstnanci je cizí klíč, který odkazuje na tabulku oddělení.

Databáze pak vynucuje referenční integritu tím, že zajistí, aby všechny hodnoty ve sloupci Oddíly tabulky Zaměstnanci obsahovaly odpovídající položky v tabulce Oddělení.

Nezapomeňte, že cizí klíč neobsahuje omezení jedinečnosti . Můžeme (a s největší pravděpodobností) mít více než jednoho zaměstnance, který patří do jednoho oddělení. Podobně neexistuje požadavek, aby záznam v tabulce oddělení měl odpovídající záznam v tabulce Zaměstnanci. Je možné, že budeme mít oddělení bez zaměstnanců.

Další informace o tomto tématu naleznete v části Vytváření cizích klíčů .