Návrh databáze. Nejlepší postupy

V očekávání začátku dalšího toku rychlostí "Databáze" Připravili jsme malý autorský materiál s důležitými tipy pro návrh databáze. Doufáme, že tento materiál bude pro vás užitečný.

Návrh databáze. Nejlepší postupy

Databáze jsou všude: od nejjednodušších blogů a adresářů až po spolehlivé informační systémy a velké sociální sítě. Není tak důležité, zda je databáze jednoduchá nebo složitá, jako je důležité ji správně navrhnout. Když je databáze navržena bezmyšlenkovitě a bez jasného pochopení účelu, je nejen neefektivní, ale další práce s databází bude pro uživatele skutečným trápením, neprostupným lesem. Zde je několik tipů pro návrh databáze, které vám pomohou vytvořit užitečný a snadno použitelný produkt.

1. Určete, k čemu tabulka slouží a jakou má strukturu

Návrh databáze. Nejlepší postupy

Vývojové metody jako Scrum nebo RAD (Rapid Application Development) dnes pomáhají IT týmům rychle vyvíjet databáze. V honbě za časem je však velmi velké pokušení ponořit se rovnou do budování základny a mlhavě si představovat, jaký je samotný cíl, jaké by měly být konečné výsledky.
 
Je to, jako by se tým soustředil na efektivní a rychlou práci, ale tohle je přelud. Čím hlouběji a rychleji se ponoříte do hloubky projektu, tím více času zabere identifikace a změna chyb v návrhu databáze.

Takže první věc, kterou se musíte rozhodnout, je definovat účel vaší databáze. Pro jaký typ aplikace je databáze vyvíjena? Bude uživatel pracovat pouze se záznamy a bude se muset věnovat transakcím, nebo ho více zajímá datová analytika? Kde by měla být základna rozmístěna? Bude sledovat chování zákazníků nebo jednoduše řídit vztahy se zákazníky? 

Čím dříve návrhářský tým na tyto otázky odpoví, tím hladší bude proces návrhu databáze.

2. Jaká data mám zvolit pro uložení?

Návrh databáze. Nejlepší postupy

Plánovat dopředu. Úvahy o tom, co bude v budoucnu dělat stránka nebo systém, pro který je databáze navržena. Je důležité jít nad rámec jednoduchých požadavků technických specifikací. Jen prosím nezačínejte přemýšlet o všech možných typech dat, které si uživatel kdy uloží. Místo toho přemýšlejte o tom, zda uživatelé budou moci psát příspěvky, nahrávat dokumenty nebo fotografie nebo si vyměňovat zprávy. Pokud je tomu tak, musíte pro ně vyčlenit místo v databázi.

Spolupracujte s týmem, oddělením nebo organizací, pro kterou bude v budoucnu podporována návrhová základna. Komunikujte s lidmi na různých úrovních, od specialistů zákaznických služeb po vedoucí oddělení. Takto pomocí zpětné vazby získáte jasnou představu o požadavcích společnosti. 

Potřeby uživatelů v rámci dokonce stejného oddělení budou nevyhnutelně v rozporu. Pokud se s tím setkáte, nebojte se spolehnout na vlastní zkušenosti a najít kompromis, který bude vyhovovat všem stranám a splní konečný cíl databáze. Buďte si jisti: v budoucnu dostanete +100500 v karmě a horu sušenek.

3. Modelujte data opatrně

Návrh databáze. Nejlepší postupy

Při modelování dat je třeba věnovat pozornost několika klíčovým bodům. Jak jsme si řekli dříve, účel databáze určuje, které metody se při modelování použijí. Pokud navrhujeme databázi pro online zpracování záznamů (OLTP), jinými slovy pro vytváření, editaci a mazání záznamů, využíváme transakční modelování. Pokud musí být databáze relační, pak je nejlepší použít vícerozměrné modelování.

Během modelování jsou vytvářeny koncepční (CDM), fyzické (PDM) a logické (LDM) datové modely. 

Konceptuální modely popisují entity a typy dat, které obsahují, a také vztahy mezi nimi. Rozdělte svá data na logické části – život je tak mnohem jednodušší.
Hlavní je střídmost, nepřehánět to.

Pokud je entita velmi obtížně klasifikovatelná jedním slovem nebo frází, pak je čas použít podtypy (podřízené entity).

Pokud entita vede svůj vlastní život, má atributy, které popisují její chování a vzhled, stejně jako vztahy s jinými objekty, pak můžete bezpečně používat nejen podtyp, ale i nadtyp (nadřazenou entitu). 

Pokud toto pravidlo zanedbáte, ostatní vývojáři budou ve vašem modelu zmatení a nebudou plně rozumět datům a pravidlům, jak je sbírat.

Konceptuální modely jsou implementovány pomocí logických. Tyto modely jsou jako cestovní mapa pro návrh fyzické databáze. V logickém modelu jsou identifikovány entity obchodních dat, jsou určeny datové typy a je určen stav klíče pravidla, který řídí vztahy mezi daty.

Poté je Logický datový model porovnán s předem vybranou platformou DBMS (databázový management systém) a je získán fyzický model. Popisuje, jak jsou data fyzicky uložena.

4. Používejte správné datové typy

Návrh databáze. Nejlepší postupy

Použití nesprávného datového typu může mít za následek méně přesná data, potíže se spojováním tabulek, potíže se synchronizací atributů a nafouklé velikosti souborů.
Aby byla zajištěna integrita informací, musí atribut obsahovat pouze datové typy, které jsou pro něj přijatelné. Pokud je do databáze zadán věk, ujistěte se, že sloupec obsahuje celá čísla o maximální délce 3 číslic.

Vytvořte minimum prázdných sloupců s hodnotou NULL. Pokud vytvoříte všechny sloupce jako NULL, je to velká chyba. Pokud potřebujete prázdný sloupec k provedení konkrétní obchodní funkce, když data neznáme nebo ještě nedávají smysl, klidně si jej vytvořte. Kolonky „Datum úmrtí“ nebo „Datum propuštění“ přeci nemůžeme vyplnit předem, nejsme prediktory ukazující prstem do nebe :-).

Většina modelovacího softwaru (ER/Studio, MySQL Workbench, SQL DBM, gliffy.com) data umožňují vytvářet prototypy datových oblastí. To zajišťuje nejen správný datový typ, aplikační logiku a dobrý výkon, ale také to, že je vyžadována hodnota.

5. Jděte přirozeně

Návrh databáze. Nejlepší postupy

Při rozhodování, který sloupec v tabulce použít jako klíč, vždy zvažte, která pole může uživatel upravovat. Nikdy je nevybírejte jako klíč – špatný nápad. Stát se může cokoliv, ale musíte zajistit, aby to bylo jedinečné.

Nejlepší je použít přirozený nebo obchodní klíč. Má sémantický význam, takže se vyhnete duplicitě v databázi. 

Pokud není obchodní klíč jedinečný (jméno, příjmení, pozice) a neopakuje se v různých řádcích tabulky nebo se musí změnit, pak by měl být vygenerovaný umělý klíč označen jako primární klíč.

6. Normalizujte s mírou

Návrh databáze. Nejlepší postupy

Chcete-li efektivně uspořádat data v databázi, musíte dodržovat sadu pokynů a normalizovat databázi. Je třeba následovat pět normálních forem.
Díky normalizaci se vyhnete redundanci a zajistíte integritu dat používaných ve vaší aplikaci nebo webu.

Všeho má být jako vždy s mírou, i normalizace. Pokud je v databázi příliš mnoho tabulek se stejnými jedinečnými klíči, pak jste se nechali unést a databázi přenormalizovali. Přílišná normalizace negativně ovlivňuje výkon databáze.

7. Testujte brzy, testujte často

Návrh databáze. Nejlepší postupy

Testovací plán a správné testování by měly být součástí návrhu databáze.

Nejlepším způsobem, jak otestovat databázi, je průběžná integrace. Simulujte scénář „den v životě databáze“ a zkontrolujte, zda jsou zpracovány všechny okrajové případy a jaké jsou pravděpodobné interakce uživatelů. Čím dříve najdete chyby, tím více ušetříte čas i peníze.

Toto je jen sedm tipů, které můžete použít k vytvoření skvělé databáze produktivity a efektivity. Pokud je budete dodržovat, vyhnete se v budoucnu většině bolestí hlavy. Tyto tipy jsou jen špičkou ledovce v databázovém modelování. Life hacků je obrovské množství. Které používáte?

Zdroj: www.habr.com

Přidat komentář