Návrh databáze. Nejlepší postupy

V předvečer zahájení dalšího běhu kurzu „Databáze“ jsme připravili malý autorský materiál s důležitými radami pro návrh databáze. Doufáme, že vám tento materiál bude užitečný.

Návrh databáze. Nejlepší postupy

Databáze jsou všude: od nejjednodušších blogů a adresářů 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 to, jak ji správně navrhnout. Když je databáze navržena bezmyšlenkovitě a bez jasného porozumění cíli, není to jen neefektivní, ale další práce s databází bude skutečným mučením, neproniknutelným lesem pro uživatele. Zde je několik rad pro návrh databáze, které pomohou vytvořit užitečný a snadno použitelný produkt.

1. Určete, k čemu slouží tabulka a jaká je její struktura

Návrh databáze. Nejlepší postupy

Dnes metodiky vývoje, jako je Scrum nebo RAD (rychlý vývoj aplikací), pomáhají IT týmům rychle vyvíjet databáze. Nicméně, v honbě za časem je velmi lákavé okamžitě se ponořit do budování databáze, s nejasným porozuměním, v čem spočívá skutečný cíl, jaké by měly být konečné výsledky.
 
Jakoby tým usiloval o efektivní a rychlou práci, ale to je iluze. Čím déle a rychleji se ponoříte do projektu, tím více času bude potřeba na identifikaci a změnu chyb v návrhu databáze.

Proto je prvním krokem určit cíl vaší databáze. Pro jaký typ aplikace je databáze navržena? Bude uživatel pouze pracovat s záznamy a je třeba se zaměřit na transakce, nebo ho více zajímají analýzy dat? Kde by měla být databáze nasazena? Bude sledovat chování zákazníků, nebo jen spravovat vztahy mezi nimi? 

Čím dříve designérský tým odpoví na tyto otázky, tím hladší a plynulejší bude proces návrhu databáze.

2. Jaká data vybrat pro uchovávání?

Návrh databáze. Nejlepší postupy

Plánujte dopředu. Přemýšlejte o tom, co bude v budoucnu váš web nebo systém, pro který je database navrhována. Je důležité vyjít za rámec jednoduchých požadavků technické specifikace. Prosím, nezačínejte okamžitě uvažovat o všech možných typech dat, která kdy uživatelé uloží. Lepší je zamyslet se nad tím, zda uživatelé budou moci psát příspěvky, nahrávat dokumenty nebo fotografie, nebo si vyměňovat zprávy. Pokud ano, musíte v databázi vyhradit místo pro ně.

Pracujte s týmem, oddělením nebo organizací, pro kterou bude v budoucnu podporována navrhovaná databáze. Komunikujte s lidmi různých úrovní, od specialistů na zákaznický servis po vedoucí oddělení. Tak díky zpětné vazbě získáte jasnou představu o požadavcích společnosti. 

Nejvyhnutelněji budou potřeby uživatelů v rámci jednoho oddělení konfliktní. Když se s tímto setkáte, nebojte se opřít o vlastní zkušenosti a najít kompromis, který uspokojí všechny strany a splní konečný cíl databáze. Buďte si jisti: v budoucnu vám to přinese +100500 karmy a hromadu sušenek.

3. Modelujte data opatrně

Návrh databáze. Nejlepší postupy

Existuje několik klíčových bodů, na které je dobré se zaměřit při modelování dat. Jak jsme již zmínili, od účelu databáze závisí, jaké metody použít při modelování. Pokud navrhujeme databázi pro operativní zpracování záznamů (OLTP), tedy pro jejich vytváření, úpravy a mazání, použijeme modelování transakcí. Pokud by však databáze měla být relační, je nejlepší použít vícerozměrné modelování.

Během modelování se vytvářejí konceptuální (CDM), fyzické (PDM) a logické (LDM) modely dat. 

Konceptuální modely popisují entity a typy dat, které zahrnují, a také vztahy mezi nimi. Dělejte si jasno ve svých datech - tak se s nimi mnohem lépe pracuje.
Hlavní věc je míra, nepřežeňte to.

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

Pokud entita vede vlastní život, má atributy, které popisují její chování a vzhled, a také vztahy s jinými objekty, lze bez obav použít nejen podtyp, ale i supertyp (rodičovská entita). 

Pokud toto pravidlo ignorujete, ostatní vývojáři se v vašem modelu ztratí a nebudou úplně rozumět datům a pravidlům, jak je sbírat.

Konceptuální modely se realizují pomocí logických. Tyto modely fungují jako mapa pro návrh fyzické databáze. V logickém modelu se vymezují entity podnikových dat, určují typy dat, status klíčových pravidel, která regulují vztahy mezi daty.

Pak se logický model dat přiřadí k předem vybrané platformě DBMS (systém správy databází) a vzniká fyzický model. Ten popisuje způsob fyzického ukládání dat.

4. Používejte vhodné typy dat

Návrh databáze. Nejlepší postupy

Použití nesprávného typu dat může vést k méně přesným datům, obtížím při spojování tabulek, synchronizaci atributů a zvětšování velikostí souborů.
Aby byla zaručena integrita informací, atribut by měl obsahovat pouze pro něj přijatelných typy dat. Pokud se do databáze ukládá věk, ujistěte se, že ve sloupci jsou uložena celá čísla s maximálně 3 číslicemi.

Vytvářejte co nejméně prázdných sloupců s hodnotou NULL. Pokud vytváříte všechny sloupce jako NULL, je to závažná chyba. Pokud však potřebujete prázdný sloupec pro provádění konkrétní obchodní funkce, když data nejsou známa nebo ještě nemají smysl, můžete ho bez obav vytvořit. Nemůžeme přece předem vyplnit sloupce „Datum úmrtí“ nebo „Datum propuštění“, nejsme přece věštci, abychom mohli ukazovat prstem do nebe :-).

Většina softwaru pro modelování (ER/Studio, MySQL Workbench, SQL DBM, gliffy.com) dat umožňuje vytvářet prototypy oblastí dat. To zaručuje nejen správný typ dat, logiku aplikace a dobrou výkonnost, ale také povinné určení hodnoty.

5. Preferujte přirozené

Návrh databáze. Nejlepší postupy

Když se rozhodujete, který sloupec v tabulce vybrat jako klíč, vždy se zaměřte na to, která pole může uživatel upravovat. Nikdy je nevybírejte jako klíč — je to špatný nápad. Může se stát cokoliv a vy musíte zaručit jedinečnost.

Nejlepší je použít přirozený nebo obchodní klíč (natural key). Má to smysl a tím se vyhnete duplicím v databázi. 

Pokud obchodní klíč není unikátní (jméno, příjmení, pozice) a opakuje se v různých řádcích tabulky, nebo se musí měnit, je vhodné jako primární klíč použít generovaný umělý klíč (artificial key).

6. Normalizujte s mírou

Návrh databáze. Nejlepší postupy

Aby bylo možné efektivně uspořádat data v databázi, je nutné dodržovat soubor doporučení a normalizovat databázi. Existuje pět normálních forem, kterými je třeba se řídit.
Díky normalizaci se vyhnete nadbytečnosti a zajistíte integritu dat používaných v aplikaci nebo na webu.

Jak to bývá, všeho s mírou, i normalizace. Pokud je v databázi příliš mnoho tabulek se stejnými jedinečnými klíči, znamená to, že jste to přehnali a nadměrně normalizovali databázi. Nadměrná normalizace má negativní vliv na výkon databáze.

7. Testujte brzy, testujte často

Návrh databáze. Nejlepší postupy

Testovací plán a odpovídající testování by měly být součástí návrhu databáze.

Nejlepší je testovat databázi prostřednictvím Continuous Integration (nepřetržité integrace). Modelujte scénář „Jeden den ze života databáze“ a kontrolujte, zda jsou všechny okrajové případy zpracovány, jaké pravděpodobné uživatelské interakce nastanou. Čím dříve najdete chyby, tím více času a peněz ušetříte.

To je jen sedm rad, kterými můžete navrhnout skvělou databázi z hlediska výkonu a efektivity. Pokud je budete dodržovat, vyhnete se většině bolestí hlavy v budoucnu. Tyto rady jsou jen špičkou ledovce v modelování databáze. Existuje spousta tipů. Které používáte vy?

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster