Databázový procesor
Název školy | Vyšší odborná škola obalové techniky a Střední škola, Štětí, příspěvková organizace | ||
Adresa školky | Kostelní 134, 411 08 Štětí | ||
IČ | 46773509 | ||
Název operačního programu | OP Vzdělávání pro konkurenceschopnost | ||
Registrační číslo | CZ.1.07/1.5.00/34.1006 | ||
Označení vzdělávacího materiálu | |||
Název tématické oblasti (sady) | Programové vybavení | ||
Název materiálu | Tabulky | ||
Anotace | |||
Autor | Jazyk | ||
Očekávaný výstup | |||
Klíčová slova | |||
Druh výukového zdroje | Věková skupina žáků | ||
Typ interakce | Ročník | ||
Speciální vzdělávací potřeby | žádné | ||
Zhotoveno, (datum/období) | Celková velikost |
Obsah
Zběžný úvod do primárních klíčů
Definice říká, že primární klíč jednoznačně identifikuje každý záznam (tedy řádek) v tabulce. Už ale není blíže specifikováno, co to ten primární klíč tedy je.
Z pohledu tabulky to může být zvláštní sloupec, ve kterém se budou například jednotlivé řádky číslovat. Pokaždé, když se přidá nový řádek, tak se ve sloupci s primárním klíčem navýší hodnota o 1.
Pokud zvolíme dostatečně objemný datový typ, číslování nám vydrží dlouho. Tinyint se rozhodně nehodí na pozici primárního klíče.
Primárním klíčem může být ovšem i alfanumerický datový typ, tedy třeba i text. Zde ovšem není možné uplatnit automatické navyšování hodnoty, protože není definován způsob jak. Jedinečnost klíče pak musí zajistit ten, kdo do tabulky vkládá data. Pokud by byl vložen záznam se s primárním klíčem, který již byl použit, tak vložení záznamu selže.
Primární klíč může být navíc definován jako kombinace přes několik sloupců.
ID?
Jednotlivé záznamy je třeba umožnit identifikovat z různých důvodů. Jak byste si ukázali na záznam, který chcete smazat? Bez primárního klíče byste museli v dotazu použít jeden nebo spíše více atributů, které by tento záznam jednoznačně identifikovali, aby náhodou nedošlo ke smazání dalších záznamů se stejnými hodnotami (pokud to ovšem není záměr). Např. v tabulce kontakty, kdyby nebyl primární klíč, možná bychom mohli jednoznačně kontakt identifikovat podle příjmení. Jaká je šance, že mezi kontakty budou dvě osoby stejného příjmení? Dobře, můžeme použít kombinaci jména a příjmení? Pravděpodobnost je sice menší, ale stále není nepatrná, resp. nulová.