Vyskúšajte si to!
Databázy a webové aplikácie môžu priniesť veľké obchodné výhody. Návrh databázy je nevyhnutný na dosiahnutie vašich cieľov, či už chcete spravovať informácie o zamestnancoch, poskytovať týždenné zostavy na základe údajov alebo sledovať objednávky zákazníkov. Ak investujete čas do pochopenia návrhu databázy, môžete vytvoriť databázy, ktoré budú fungovať správne na prvý raz a prispôsobia sa meniacim sa potrebám.
Dôležité
Webové aplikácie Accessu sa líšia od počítačových databáz. Tento článok sa nezaoberá dizajnom webových aplikácií.
Koncepty a výrazy
Pozrime sa na začiatok niektorých základných pojmov a pojmov. Ak chcete navrhnúť užitočnú databázu, vytvorte tabuľky zamerané na jednu tému. V tabuľkách zaznamenávajte všetky údaje potrebné pre daný predmet do polí, ktoré obsahujú najmenšiu možnú jednotku údajov.
| Relačné databázy | Databáza, v ktorej sú údaje rozdelené do tabuliek, ktoré sú niečo ako tabuľkové hárky. Každá tabuľka má len jeden predmet, napríklad zákazníci (jedna tabuľka) alebo produkty (iná tabuľka). |
|---|---|
| Záznamy a polia | Ukladací priestor pre diskrétne údaje v tabuľke. V riadkoch (alebo záznamoch) sú uložené všetky jedinečné údajové body, napríklad názov zákazníka. Stĺpce (alebo polia) izolujú zaznamenávané informácie o jednotlivých údajových bodoch do najmenšej možnej jednotky – krstné meno môže byť jeden stĺpec a priezvisko môže byť iný. |
| Hlavný kľúč | Hodnota, ktorá zabezpečí, že každý záznam je jedinečný. Môžu to byť napríklad dvaja zákazníci s rovnakým menom, Elizabeth Andersen. Ale jeden zo záznamov Elizabeth Andersenovej má číslo 12 ako primárny kľúč a druhý má primárny kľúč 58. |
| Vzťahy medzi nadradenými a podriadenými údajmi | Bežné vzťahy medzi tabuľkami. Jeden zákazník môže mať napríklad viacero objednávok. Nadradené tabuľky majú primárne kľúče. Podriadené tabuľky majú cudzie kľúče, čiže hodnoty z primárneho kľúča, ktoré zobrazujú, ako sú záznamy podriadenej tabuľky prepojené s nadradenou tabuľkou. Tieto kľúče sú prepojené vzťahom. |
Čo je dobrý návrh databázy?
Na dobrý návrh databázy sú základné dva princípy:
- Chráňte sa pred vytváraním duplicitných informácií (nazývaných aj nadbytočné údaje). Plytvá miestom a zvyšuje pravdepodobnosť chýb.
- Skontrolujte, či sú údaje správne a úplné. Neúplné alebo chybné informácie sa šíria do dotazov a zostáv a môžu v konečnom dôsledku viesť k nesprávnych rozhodnutiam.
Ak vám chcete pomôcť s týmito problémami:
- Rozdeľte informácie v databáze do tematických tabuliek s úzkym zameraním. Zabráňte vytváraniu duplicitných informácií vo viacerých tabuľkách. (Napríklad mená zákazníkov by mali byť len v jednej tabuľke.)
- Spájajte tabuľky pomocou kľúčov namiesto duplikovania údajov.
- Zahrnúť procesy, ktoré podporujú a zabezpečujú presnosť a integritu databázových informácií.
- Pri navrhovaní databázy nezabúdajte na potreby spracovania údajov a vytvárania zostáv.
Ak chcete zlepšiť dlhodobú užitočnosť databáz, postupujte podľa týchto piatich krokov návrhu:
Krok 1: Určenie účelu databázy
Skôr než začnete, pripravte si cieľ pre svoju databázu.
Ďalšie podrobnosti
Ak chcete zachovať zameranie návrhu, zhrňte účel databázy a často sa do súhrnu vracajte. Ak napríklad chcete malú databázu pre podnik pracujúci v domácnosti, môžete napísať niečo jednoduché, napríklad: "Databáza zákazníkov uchováva zoznam informácií o zákazníkoch na účely tvorby korešpondencie a zostáv." V prípade podnikovej databázy možno budete potrebovať viacero odsekov s popisom, kedy a ako budú ľudia vykonávajúci rôzne roly používať databázu a jej údaje. Vytvorte konkrétne a podrobné poslanie, na ktoré sa budete odvolávať počas celého procesu návrhu.
Krok 2: Vyhľadanie a usporiadanie požadovaných informácií
Zhromaždite všetky informácie, ktoré chcete zaznamenať, ako sú napríklad názvy produktov a čísla objednávok.
Ďalšie podrobnosti
Začnite s existujúcimi informáciami a metódami sledovania. Je možné, že napríklad v súčasnosti evidujete nákupné objednávky v účtovnej knihe alebo informácie o zákazníkoch uchovávate v papierových formulároch. Tieto zdroje použite na vytvorenie zoznamu informácií, ktoré práve zaznamenávate (napríklad všetky polia vo formulároch). Tam, kde v súčasnosti nezaznamenávate dôležité informácie, zvážte, aké samostatné informácie potrebujete. Každý jednotlivý typ údajov sa stane poľom v databáze.
Nemusí vám robiť starosti s tým, aby bol váš prvý zoznam dokonalý. Môžete ho časom doladiť. Vezmite však do úvahy všetkých ľudí, ktorí používajú tieto informácie, a požiadajte ich o nápady.
Teraz premyslite, čo chcete z databázy vyžadovať a aké typy zostáv alebo korešpondencie chcete vytvárať. Potom sa uistite, že zaznamenávate informácie potrebné na splnenie týchto cieľov. Ak napríklad chcete vytvoriť zostavu, ktorá zobrazuje predaj podľa oblasti, potrebujete zaznamenať údaje o predaji na regionálnej úrovni. Pokúste sa načrtnúť zostavu so skutočnými informáciami tak, ako by ste ju chceli vidieť. Potom uveďte údaje potrebné na vytvorenie zostavy. To isté urobte s korešpondenciou alebo inými výstupmi, ktoré chcete použiť z databázy.
Príklad
Predpokladajme, že poskytnete zákazníkom možnosť prihlásiť sa na odber pravidelných e-mailových aktualizácií (alebo tento odber zrušiť) a chcete vytlačiť zoznam tých, ktorí sa rozhodli prihlásiť. V tabuľke Zákazníci budete potrebovať stĺpec Odoslať e-mail s povolenými hodnotami Áno a Nie.
Pre tých, ktorí chcú prijímať e-maily, potrebujete e-mailovú adresu, ktorá tiež vyžaduje pole. Ak chcete zahrnúť správny oslovenie (napríklad pán, pani alebo pani), zahrňte pole oslovenia. Ak chcete zákazníkov v e-mailoch oslovovať menom, pridajte pole Meno.
Tip
Nezabudnite každú informáciu rozdeliť na čo najmenšiu užitočnú časť, napríklad krstné meno a priezvisko pre tabuľku zákazníkov. Vo všeobecnosti platí, že ak chcete zoraďovať, hľadať, vykonávať výpočty alebo vytvárať zostavy na základe určitej informačnej položky (napríklad priezviska zákazníka), je potrebné túto položku umiestniť do vlastného poľa.
Krok 3: Rozdelenie informácií do tabuliek
Informačné položky rozdeľte do hlavných celkov alebo predmetov, ako sú napríklad produkty, zákazníci a objednávky. Každý predmet sa stane tabuľkou.
Ďalšie podrobnosti
Po vytvorení zoznamu požadovaných informácií určite hlavné celky (alebo predmety), ktoré potrebujete na usporiadanie údajov. Zabráňte duplikovaniu údajov v rámci entít. Predbežný zoznam pre databázu predaja produktov môže vyzerať napríklad takto:
Hlavnými entitami sú: zákazníci, dodávatelia, produkty a objednávky. Začnite teda s týmito štyrmi tabuľkami: jedna pre údaje o zákazníkoch, jedna pre údaje o dodávateľoch a tak ďalej. Možno to nie je váš konečný návrh, ale je to vhodný východiskový bod.
Poznámka
Najlepšie databázy obsahujú viacero tabuliek. Vyhnite sa pokušeniu umiestniť všetky informácie do jednej tabuľky. To má za následok duplicitné informácie, väčšiu veľkosť databázy a väčší počet chýb. Navrhnite zaznamenať každú skutočnosť len raz. Ak zistíte, že sa opakujú informácie, ako je napríklad adresa dodávateľa, reštrukturalizujte štruktúru databázy tak, aby sa tieto informácie umiestnili do samostatnej tabuľky.
Ak chcete porozumieť tomu, prečo je viac tabuliek lepších než menej, pozrite si tabuľku zobrazenú tu:
Každý riadok obsahuje informácie o produkte a jeho dodávateľovi. Keďže môžete mať veľa produktov od toho istého dodávateľa, informácie o mene a adrese dodávateľa sa musia veľakrát opakovať. To zbytočne zaberá miesto na disku. Informácie o dodávateľovi zaznamenajte iba raz do samostatnej tabuľky Dodávatelia a potom prepojte túto tabuľku s tabuľkou Produkty.
Druhý problém s týmto návrhom je zrejmý, keď potrebujete upraviť informácie o dodávateľovi. Predpokladajme, že potrebujete zmeniť adresu dodávateľa. Keďže sa objavuje na mnohých miestach, môže sa stať, že omylom adresu zmeníte na jednom mieste, no zabudnete ju zmeniť na iných miestach. Zaznamenaním adresy dodávateľa len na jednom mieste sa tento problém vyrieši.
Nakoniec predpokladajme, že spoločnosť Coho Winery dodáva iba jeden produkt a vy chcete produkt odstrániť, ale zachovať meno dodávateľa a informácie o adrese. Ako by ste pri takomto návrhu odstránili záznam o produkte bez toho, aby ste súčasne stratili aj informácie o dodávateľovi? Nedá sa to. Keďže každý záznam obsahuje okrem údajov o dodávateľovi aj údaje o produkte, nie je možné odstrániť jedno bez odstránenia druhého. Ak chcete tieto údaje oddeliť, rozdeľte túto tabuľku na dve: prvú tabuľku pre informácie o produkte a druhú informácie pre dodávateľa. Keď potom odstránite záznam o produkte, odstránia sa iba údaje o produkte, nie údaje o dodávateľovi.
Krok 4: Premena informačných položiek na stĺpce
Rozhodnite sa, ktoré informácie chcete uložiť do jednotlivých tabuliek. Tieto samostatné časti údajov sa stanú poľami v tabuľke. Napríklad tabuľka Zamestnanci môže obsahovať polia ako Priezvisko, Meno a Dátum nástupu.
Ďalšie podrobnosti
Po výbere predmetu databázovej tabuľky by stĺpce v tejto tabuľke mali obsahovať iba údaje o danom predmete. Napríklad tabuľka produktov by mala obsahovať len údaje o produktoch – nie o ich dodávateľoch.
Ak sa chcete rozhodnúť, ktoré informácie sa majú v tabuľke sledovať, použite zoznam, ktorý ste predtým vytvorili. Tabuľka Zákazníci môže napríklad obsahovať: Meno, Priezvisko, Adresa, Odoslať e-mail, Oslovenie a E-mailová adresa. Každý záznam (zákazník) v tabuľke obsahuje rovnakú množinu stĺpcov, takže pre každého zákazníka môžete uložiť presne rovnaké informácie.
Vytvorte prvý zoznam, potom ho skontrolujte a spresnite. Nezabudnite rozdeliť informácie na čo najmenšie polia. Ak počiatočný zoznam obsahuje napríklad pole Adresa, rozdeľte ho na polia Ulica, Mesto, Štát a PSČ – alebo v prípade globálnych zákazníkov na ešte väčší počet polí. Takto môžete napríklad rozosielať korešpondenciu v správnom formáte alebo vytvárať zostavy o objednávkach podľa štátu.
Po optimalizovaní stĺpcov s údajmi v jednotlivých tabuľkách ste pripravení vybrať primárny kľúč pre každú tabuľku.
Krok 5: Určenie primárnych kľúčov
Vyberte primárny kľúč každej tabuľky. Primárny kľúč, ako napríklad ID produktu alebo ID objednávky, jednoznačne identifikuje každý záznam. Ak nemáte zrejmý a jedinečný identifikátor, vytvorte ho pomocou Accessu.
Ďalšie podrobnosti
Potrebujete spôsob jedinečnej identifikácie každého riadka v každej tabuľke. Pamätáte si na predchádzajúci príklad, kde dvaja zákazníci majú rovnaké meno? Keďže majú rovnaké meno, musíte ich identifikovať samostatne.
Každá tabuľka by preto mala obsahovať stĺpec (alebo množinu stĺpcov), ktorý jedinečne identifikuje každý riadok. Nazýva sa to primárny kľúč a často je ním jedinečné číslo, ako napríklad identifikačné číslo zamestnanca alebo sériové číslo. Access používa primárne kľúče na rýchle priradenie údajov z viacerých tabuliek a spojenie týchto údajov.
Primárny kľúč niekedy pozostáva z dvoch alebo viacerých polí. Tabuľka Podrobnosti objednávok, v ktorej sú uložené riadkové položky objednávok, môže napríklad používať ako primárny kľúč dva stĺpce: ID objednávky a ID produktu. Ak primárny kľúč pozostáva z viacerých stĺpcov, nazýva sa aj zložený kľúč.
Ak už máte jedinečný identifikátor pre informácie v tabuľke, ako sú napríklad čísla produktov, ktoré jednoznačne identifikujú každý produkt v katalógu, použite ho, ale len v prípade, že hodnoty spĺňajú tieto pravidlá pre primárne kľúče:
- Identifikátor bude vždy pre každý záznam iný. Duplicitné hodnoty nie sú v primárnom kľúči povolené.
- Pre danú položku je vždy uvedená hodnota. Každý záznam v tabuľke musí mať hlavný kľúč. Ak na vytvorenie kľúča používate viacero stĺpcov (napríklad rodiny súčastí a číslo súčasti), musia byť vždy prítomné obe hodnoty.
- Primárny kľúč je hodnota, ktorá sa nemení. Keďže na kľúče odkazujú iné tabuľky, akákoľvek zmena primárneho kľúča v jednej tabuľke znamená jeho zmenu všade, kde sa naň odkazuje. Časté zmeny zvyšujú riziko chýb.
Ak nemáte zjavný identifikátor, ako primárny kľúč použite ľubovoľné, jedinečné číslo. Môžete napríklad priradiť každej objednávke jedinečné číslo objednávky, ktoré bude slúžiť výlučne na identifikáciu objednávky.
Tip
Ak chcete ako primárny kľúč vytvoriť jedinečné číslo, pridajte stĺpec s použitím typu údajov AutoNumber. Typ údajov AutoNumber automaticky priradí každému záznamu jedinečnú číselnú hodnotu. Tento typ identifikátora neobsahuje žiadne faktické informácie popisujúce riadok, ktorý predstavuje. Je ideálny na použitie ako hlavný kľúč, pretože čísla sa nemenia – na rozdiel od primárneho kľúča, ktorý obsahuje údaje o riadku, ako je napríklad telefónne číslo alebo meno zákazníka.