Návrh databázy. Najlepšie postupy

V očakávaní začiatku ďalšieho toku rýchlosťou "databáza" Pripravili sme malý autorský materiál s dôležitými tipmi pre návrh databázy. Dúfame, že tento materiál bude pre vás užitočný.

Návrh databázy. Najlepšie postupy

Databázy sú všade: od najjednoduchších blogov a adresárov až po spoľahlivé informačné systémy a veľké sociálne siete. Či je databáza jednoduchá alebo zložitá, nie je až také dôležité, ako je dôležité správne ju navrhnúť. Keď je databáza navrhnutá bezmyšlienkovite a bez jasného pochopenia účelu, je nielen neefektívna, ale ďalšia práca s databázou bude pre používateľov skutočným trápením, nepreniknuteľným lesom. Tu je niekoľko tipov na návrh databázy, ktoré vám pomôžu vytvoriť užitočný a ľahko použiteľný produkt.

1. Určte, na čo slúži tabuľka a akú má štruktúru

Návrh databázy. Najlepšie postupy

Vývojové metódy ako Scrum alebo RAD (Rapid Application Development) dnes pomáhajú IT tímom rýchlo rozvíjať databázy. Avšak v honbe za časom je veľmi veľké pokušenie ponoriť sa priamo do budovania základne, nejasne si predstaviť, aký je samotný cieľ, aké by mali byť konečné výsledky.
 
Je to, akoby sa tím sústredil na efektívnu a rýchlu prácu, ale toto je fatamorgána. Čím ďalej a rýchlejšie sa ponoríte do hĺbky projektu, tým viac času zaberie identifikovanie a zmena chýb v návrhu databázy.

Takže prvá vec, ktorú musíte rozhodnúť, je definovať účel vašej databázy. Pre aký typ aplikácie je databáza vyvíjaná? Bude používateľ pracovať len so záznamami a musí sa venovať transakciám, alebo ho viac zaujíma dátová analytika? Kde by mala byť základňa rozmiestnená? Bude sledovať správanie zákazníkov alebo jednoducho riadiť vzťahy so zákazníkmi? 

Čím skôr dizajnérsky tím odpovie na tieto otázky, tým hladší bude proces návrhu databázy.

2. Aké údaje si mám zvoliť na uloženie?

Návrh databázy. Najlepšie postupy

Plánovať vopred. Úvahy o tom, čo bude v budúcnosti robiť stránka alebo systém, pre ktorý je databáza navrhnutá. Je dôležité ísť nad rámec jednoduchých požiadaviek technických špecifikácií. Len, prosím, nezačnite premýšľať o všetkých možných typoch údajov, ktoré si používateľ kedy uloží. Namiesto toho sa zamyslite nad tým, či používatelia budú môcť písať príspevky, nahrávať dokumenty alebo fotografie alebo si vymieňať správy. Ak je to tak, musíte im v databáze prideliť priestor.

Pracujte s tímom, oddelením alebo organizáciou, pre ktorú bude v budúcnosti podporovaná dizajnová základňa. Komunikujte s ľuďmi na rôznych úrovniach, od špecialistov zákazníckeho servisu až po vedúcich oddelení. Takto pomocou spätnej väzby získate jasnú predstavu o požiadavkách spoločnosti. 

Potreby používateľov v rámci toho istého oddelenia budú nevyhnutne v rozpore. Ak sa s tým stretnete, nebojte sa spoľahnúť na vlastné skúsenosti a nájsť kompromis, ktorý bude vyhovovať všetkým stranám a splní konečný cieľ databázy. Buďte si istí: v budúcnosti dostanete +100500 v karme a kopec koláčikov.

3. Modelujte údaje opatrne

Návrh databázy. Najlepšie postupy

Pri modelovaní údajov je potrebné venovať pozornosť niekoľkým kľúčovým bodom. Ako sme už povedali, účel databázy určuje, ktoré metódy sa použijú pri modelovaní. Ak navrhujeme databázu na online spracovanie záznamov (OLTP), inými slovami na vytváranie, úpravu a odstraňovanie záznamov, používame transakčné modelovanie. Ak musí byť databáza relačná, potom je najlepšie použiť viacrozmerné modelovanie.

Počas modelovania sa vytvárajú koncepčné (CDM), fyzické (PDM) a logické (LDM) dátové modely. 

Koncepčné modely popisujú entity a typy údajov, ktoré obsahujú, ako aj vzťahy medzi nimi. Rozdeľte svoje údaje na logické časti – značne to uľahčuje život.
Hlavná vec je miernosť, nepreháňajte to.

Ak je entita veľmi ťažko klasifikovateľná jedným slovom alebo frázou, potom je čas použiť podtypy (podradené entity).

Ak entita vedie svoj vlastný život, má atribúty, ktoré popisujú jej správanie a vzhľad, ako aj vzťahy s inými objektmi, potom môžete pokojne použiť nielen podtyp, ale aj nadtyp (nadradenú entitu). 

Ak toto pravidlo zanedbáte, ostatní vývojári budú vo vašom modeli zmätení a nebudú úplne rozumieť údajom a pravidlám ich zberu.

Koncepčné modely sú implementované pomocou logických. Tieto modely sú ako cestovná mapa pre fyzický návrh databázy. V logickom modeli sa identifikujú entity obchodných údajov, určujú sa typy údajov a určuje sa stav kľúča pravidla, ktorý riadi vzťahy medzi údajmi.

Potom sa porovná logický dátový model s vopred vybranou platformou DBMS (systém správy databáz) a získa sa fyzický model. Popisuje, ako sú údaje fyzicky uložené.

4. Používajte správne typy údajov

Návrh databázy. Najlepšie postupy

Použitie nesprávneho typu údajov môže viesť k menej presným údajom, ťažkostiam pri spájaní tabuliek, ťažkostiam so synchronizáciou atribútov a nafúknutým veľkostiam súborov.
Aby sa zabezpečila integrita informácií, atribút musí obsahovať iba typy údajov, ktoré sú preň prijateľné. Ak je do databázy zadaný vek, uistite sa, že stĺpec obsahuje celé čísla s maximálne 3 číslicami.

Vytvorte minimum prázdnych stĺpcov s hodnotou NULL. Ak vytvoríte všetky stĺpce ako NULL, je to veľká chyba. Ak potrebujete prázdny stĺpec na vykonanie konkrétnej obchodnej funkcie, keď údaje nie sú známe alebo ešte nedávajú zmysel, pokojne si ho vytvorte. Nemôžeme predsa vyplniť kolónky „Dátum úmrtia“ alebo „Dátum prepustenia“, nie sme prediktori ukazujúci prstom do neba :-).

Väčšina modelovacieho softvéru (ER/Studio, MySQL Workbench, SQL DBM, gliffy.com) dáta vám umožňujú vytvárať prototypy dátových oblastí. To zaisťuje nielen správny typ údajov, aplikačnú logiku a dobrý výkon, ale aj to, že je požadovaná hodnota.

5. Choďte prirodzene

Návrh databázy. Najlepšie postupy

Pri rozhodovaní, ktorý stĺpec v tabuľke použiť ako kľúč, vždy zvážte, ktoré polia môže používateľ upravovať. Nikdy si ich nevyberajte ako kľúč - zlý nápad. Môže sa stať čokoľvek, ale musíte zabezpečiť, aby to bolo jedinečné.

Najlepšie je použiť prírodný alebo obchodný kľúč. Má sémantický význam, takže sa vyhnete duplicite v databáze. 

Pokiaľ obchodný kľúč nie je jedinečný (meno, priezvisko, pozícia) a neopakuje sa v rôznych riadkoch tabuľky alebo sa musí zmeniť, potom by mal byť vygenerovaný umelý kľúč určený ako primárny kľúč.

6. Normalizujte s mierou

Návrh databázy. Najlepšie postupy

Ak chcete efektívne organizovať údaje v databáze, musíte dodržiavať súbor pokynov a normalizovať databázu. Existuje päť normálnych foriem, ktoré treba nasledovať.
Pomocou normalizácie sa vyhnete redundancii a zabezpečíte integritu údajov používaných vo vašej aplikácii alebo lokalite.

Ako vždy, všetko s mierou, aj normalizácia. Ak je v databáze príliš veľa tabuliek s rovnakými jedinečnými kľúčmi, potom ste sa nechali uniesť a databázu príliš znormalizovali. Prílišná normalizácia negatívne ovplyvňuje výkon databázy.

7. Testujte skoro, testujte často

Návrh databázy. Najlepšie postupy

Testovací plán a správne testovanie by malo byť súčasťou návrhu databázy.

Najlepším spôsobom, ako otestovať svoju databázu, je nepretržitá integrácia. Simulujte scenár „deň v živote databázy“ a skontrolujte, či sú spracované všetky okrajové prípady a aké interakcie používateľov sú pravdepodobné. Čím skôr nájdete chyby, tým viac ušetríte čas aj peniaze.

Toto je len sedem tipov, ktoré môžete použiť na vytvorenie skvelej databázy produktivity a efektivity. Ak ich budete dodržiavať, v budúcnosti sa vyhnete väčšine bolestí hlavy. Tieto tipy sú len špičkou ľadovca v databázovom modelovaní. Life hackov je obrovské množstvo. Ktoré z nich používate?

Zdroj: hab.com

Pridať komentár