Tvorba návrhu relačnej databázy
Tvorba návrhu relačnej databázy
Súčasti logického a fyzického návrhu databázy
Stĺpce a dátové typy
Každý stĺpec v relačnej tabuľke reprezentuje určitý atribút z konceptuálneho návrhu (modelu). Stĺpec je v relačnej databáze najmenšou pomenovanou jednotkou dát, na ktorú sa môžeme odkazovať. Každému stĺpcu musíme priradiť jedinečný názov v rámci tabuľky a dátový typ. Dátový typ je pri tom určitá kategória konkrétneho stĺpca. Definícia dátového typu má niekoľko zaujímavých výhod:
- Obmedzuje množinu povolených dát v stĺpci len na také znaky, ktoré majú pre dátový typ zmysel (napríklad len číslo alebo platný dátum)
- Cieľovému užívateľovi databázy predkladá určitú množinu správania: pokiaľ napríklad odčítame číslo od iného čísla, dostaneme vo výsledku opäť číslo, no ale ak odčítame dátum od iného dátumu, dostaneme taktiež číslo, ktoré ale tento krát vyjadruje počet dní uplynutých medzi obidvomi dňami.
- Pomáha relačnému databázovému systém k efektívnemu ukladaniu dát stĺpca. Čísla sa napríklad často dajú ukladať v internom, kapacitne úspornom číselnom formáte a nie len v neefektívnom formáte reťazcov znakov
Na nasledujúcom obrázku 2.6 je ukážka definície tabuľky Objednávky v MS Access. Dátový typ každého zo stĺpcov je uvedený v druhom stĺpci zľava. Dátové typy vo väčšine prípadov hovoria sami o sebe, ale pokiaľ i napriek tomu nebude jasné čo-to o príslušnom dátovom type, bližšie informácie poskytuje Pomocník v MS Access.
Obrázok 2.6: Definícia tabuľky Objednávky v MS Access
Je opäť veľkým nešťastím, že vývoj štandardných dátových typov za rozvojom relačných databázových systémov značne zaostáva. Väčšina výrobcov si teda všetko dlhé roky robila “po svojom”, kým sa dokázala dohovoriť s ostatnými výrobcami na vytvorení štandardov. Dnes sú už relačné dátové typy definované v príslušných normách ANSI a väčšinou zo štandardných typov (ale nie všetky) pričom ich podporuje každý z významných výrobcov. Na druhej strane má ale každý z výrobcov taktiež určité neštandardné rozšírenie, ktoré sa z veľkej časti týkajú dátových typov vzniknutých ešte pred ustanovením štandardov. Dalo by sa žartom povedať, že na databázových štandardoch je najlepšie to, že každý výrobca má svoj vlastný. Ak hovoríme o štandardoch pre relačné databázy, potom medzi najrozšírenejšími produktmi najmenej zodpovedá štandardom asi Microsoft Access.
Vzhľadom k mnohým rôznym úrovniam súladu so štandardmi a vzhľadom k spomínaným „rozšíreniam“ u jednotlivých výrobcov musí taktiež každý databázový administrátor veľmi podrobne poznať, aké dátové typy sú v konkrétnom databázovom systéme k dispozícii a aké môže tým pádom pri návrhu databázy používať. Veľký pozor si samozrejme musí dávať pri akomkoľvek prevode logického návrhu z databázového prostredia jedného výrobcu k inému.
V tabuľke 2.1 je ukážka niektorých takmer ekvivalentných (no nie však presne identických) dátových typov ako sú definované v relačných databázových systémoch od rôznych výrobcov. Dátový typ VARCHAR v databáze Oracle môže mať napríklad dĺžku až 4000 znakov, zatiaľ čo ekvivalentný typ MEMO v MS Accesse môže obsahovať až 64000 znakov dát.
Poznámka: V Microsoft Access sú názvy dátových typov “počeštené” - zobrazujú sa ale len do príslušných dialógov, a nie do príkazov jazyka SQL.
Tabuľka 2.1: Ekvivalentné dátové typy v najvýznamnejších relačných databázach