Začínáme s MySQL 4. – návrh databáze

V minulém díle jsem vám krátce představil základní uživatelské rozhraní. Dnes vám tedy ve stručnosti povím, jak vytvoříte v MySQL svou první databázi.
V minulém díle jsem vám krátce představil základní uživatelské rozhraní. Dnes vám tedy ve stručnosti povím, jak vytvoříte v MySQL svou první databázi.

Jistě mi dáte za pravdu, že při tvorbě databáze je nejdůležitější její návrh. Se špatným návrhem totiž padá celá databáze. Kdybych měl demonstrovat to, co jsem právě řekl, tak uvedu jednoduchý příklad z reálného života. Stavitel, který staví dům, nemůže opomenout správnou stavbu základů, protože takto postavený dům by zákonitě časem spadl. A přesně stejná pravidla platí i u databází.

Mnoho vývojářů dělá základní chyby již na začátku – opomíjí jakýkoliv předběžný návrh. Prostě začnou bezmyšlenkovitě tvořit databázi (tabulky, indexy ... apod.), aniž by si předem vše důkladně rozmysleli. Takto se dají tvořit jednoduché databáze, u nichž se nepředpokládá vysoké zatížení, ale pokud má být tato databáze pilířem aplikace, pak bude muset autor – dříve nebo později – řešit vážné problémy.

Před vlastní tvorbou databáze tedy doporučuji vzít si tužku, kus papíru a začít si kreslit návrh nanečisto. Asi nejdříve byste si jako autor měl ujasnit, jaké objekty (tak to nazývám já) budou do procesu vstupovat. Příklad: V internetovém obchodě těmito objekty jsou např. kupující, objednávky, zboží ... apod. Je tedy nanejvýš jasné, že každý z těchto objektů by měl být v databázi v samostatné tabulce. Těžko bychom totiž mohli mít údaje o nakupujících a zboží v jedné tabulce – to by bylo prakticky nerealizovatelné a nároky na systém by byly přemrštěné. Při návrhu tedy berte ohled zejména na předpokládané požadavky (zejména dotazy). Důležité totiž bude, aby ve vámi navržené databázi šly rychle realizovat vyhledávací a aktualizační dotazy. Po provedení náčrtků budete mít na papíře jednotlivé objekty, které budou reprezentovány jednotlivými tabulkami, ve kterých budou uvedeny jednotlivé položky. U kupujících to bude například jméno, příjmení, adresa ... apod. Každá tato položka dostane svůj datový typ, který jednoznačně určí, jaký druh dat se v dané položce bude ukládat.

(Doporučení: V každé tabulce uvádějte tzv. ID - automatické číslo, které má každý záznam jiné. Toto ID jednoznačně odlišuje každý záznam, což je dobré zejména při vyhledávacích dotazech. Blíže vám o něm povím v praktickém návrhu tabulky.)

Relace

Nyní tedy máte navrženo několik tabulek, ale chybí vám mezi nimi relace. Relace je něco, co vytváří vztah mezi jednotlivými objekty, v tomto případě tabulkami. Je tedy nutné vyhledat jednotlivé vztahy mezi objekty (tabulkami) a následně určit, o jaký druh relace se jedná.

Relace jsou trojího druhu:

Relace 1:1

Relace 1:1 je nejsnazší typ relace. Tato relace vzniká mezi dvěma tabulkami, kde jedna hodnota primárního klíče v hlavní tabulce odpovídá hodnotě pole v druhé tabulce. Jako příklad uvedu tabulku objednávky, v níž každý záznam má jistě vazbu na tabulku s vyúčtováním (název si dosaďte dle libosti). Tato vazba je zaručeně 1:1, tj. každá objednávka odpovídá jednomu vyúčtování. Nemůže totiž nastat případ, kdy zákazník platí za zboží například 2x (reálně se tak zajisté může stát, ale to byste si nejspíš nenechali líbit, že?).

Relace 1:N

Dalším druhem je relace 1:N. Tato relace opětovně vzniká mezi dvěma tabulkami, kde jedna hodnota primárního klíče v hlavní tabulce odpovídá několika hodnotám pole v druhé tabulce. Jako příklad uvedu vztah mezi tabulkou se seznamem kupujících a tabulkou objednávky. Každý kupující totiž může učinit několik objednávek, ale naopak každá objednávka náleží jednomu kupujícímu.

Relace M:N

Posledním typem relace je M:N. Tato relace vzniká mezi dvěma tabulkami, kde každý záznam (jedno které z těchto tabulek) může odpovídat několika záznamům z druhé tabulky. Jako příklad lze uvést vztah mezi objednávkami a produkty. Každá objednávka totiž může obsahovat několik produktů, nebo můžeme prohlásit, že produkt může být obsažen v několika objednávkách.

Toto by myslím na základní vysvětlení pojmu relace mělo stačit. Pokud o tomto tématu chcete získat bližší informace, zakupte si patřičnou knihu, která se mu věnuje.

Tvorba databáze v MySQL

Nyní se podíváme na vytvoření databáze z praktické stránky. Máte v zásadě dvě možnosti, jak toho dosáhnout. Ta první je pomocí MySQL monitoru. Spusťte tedy MySQL monitor:

mysql -u root -p

Následovně vytvořte novou databázi pomocí příkazu create:

create database pokus

(Poznámka: Při zadávání příkazu si nemusíte lámat hlavu s tím, zda zadáváte příkaz velkými či malými písmeny – je to zkrátka jedno.)

Pomocí tohoto příkazu vytvoříte databázi pokus, která bude pro začátek prázdná. K této nově vytvořené databázi má po vytvoření přístup pouze správce MySQL. Pokud tuto databázi budete chtít odstranit, využijte příkazu drop:

drop database pokus

(Upozornění: Tímto příkazem odstraníte databázi včetně všech tabulek, které obsahuje, a to nenávratně! Dobře si tedy vše rozmyslete, než příkaz použijete.)

Jak jsem již řekl dříve, v MySQL existuje ještě jeden způsob vytvoření databáze. Lze tak učinit pomocí nástroje mysqladmin. Vytvoření (resp. zrušení) databáze zde provedeme těmito způsoby:

mysqladmin -u root -p create pokus
mysqladmin -u root -p drop pokus

Tento způsob má výhodu zejména při odstraňování databáze, protože se vás systém naposledy zeptá, zda jste si jisti, že chcete databázi odstranit. Ani zde ale nefunguje pomyslné tlačítko zpět, a proto po odeslání příkazu bude celá databáze nenávratně odstraněna.

Po přečtení tohoto, více méně teoretického dílu byste měli mít základní představu o návrhu a praktické tvorbě databáze v MySQL. Abyste mohli tuto databázi zaplnit daty, potřebujete znát jednotlivé datové typy; o těch vám povím příště.

Diskuze (12) Další článek: Microsoft daroval 10 milionů dolarů

Témata článku: Software, Programování, Předběžný návrh, Špatný návrh, Předběžný název, Tito, Drop, Toto, Náčrtek, Jednotlivé položky, Celá databáze, Jednotlivý díl, Hlavní pole, Databáze, Root, Špatný klíč, Druhý typ, Mys, Návrh, Hlavní pilíř, MySQL


Určitě si přečtěte

AMD uvádí grafické karty Radeon RX 6800, 6800 XT a 6900 XT. Útočí přímo na modely od Nvidie

AMD uvádí grafické karty Radeon RX 6800, 6800 XT a 6900 XT. Útočí přímo na modely od Nvidie

** AMD představilo tři nové grafické karty ** Všechny s architekturou RDNA2, kterou používají i PS5 a Xbox Series ** Karty útočí přímo na GeForce RTX 3000

Karel Javůrek | 78

Karel Javůrek
Radeon RX 6000Grafické kartyAMD
Vodafonu se zhroutila kabelovka. Síť bývalého UPC má výpadky
Lukáš Václavík
VodafoneUPC
Šmírování kamerami Googlu: Koukněte, co šíleného se objevilo na Street View

Šmírování kamerami Googlu: Koukněte, co šíleného se objevilo na Street View

Google stále fotí celý svět do své služby Street View. A novodobou zábavou je hledat v mapách Googlu vtipné záběry. Podívejte se na výběr nejlepších!

redakce | 4

redakce
Mapy GoogleStreet View

Aktuální číslo časopisu Computer

Jak prodloužit výdrž notebooku

Velké testy: gamepady a inkoustové tiskárny

Důkladný test Sony Playstation 5