Zeptejte se kohokoliv, kdo měl v ruce starý informační systém, co bylo na celém tom projektu nakonec nejcennější. Neřekne vám tlačítka ani obrazovky. Řekne vám data. Kód se dá přepsat, design překreslit, server vyměnit za hodinu. Ale seznam vašich zákazníků, objednávek a faktur, který se plnil pět let, ten už podruhé nevznikne. Tahle lekce je o tom, jak datům rozumět natolik, abyste o ten majetek nepřišli.
Co je databáze a proč na ní všechno ostatní stojí
Databáze je organizované úložiště dat. Žádná magie, jen velmi spolehlivý a velmi rychlý šanon, který umí najít správný papír mezi miliony jiných za zlomek sekundy a nikdy ho neztratí.
Když si představíte svůj software, většinu toho, co vidíte, tvoří jen různé pohledy na tatáž data. Profil zákazníka, jeho objednávky, faktura, statistika v reportu, to všechno čte ze stejné databáze. Aplikace, tlačítka, formuláře, to je instalatérská práce kolem. Voda, která tím potrubím teče, jsou vaše data.
Proto se vyplatí přemýšlet o datech dřív než o vzhledu. Když máte čistě uložená data, postavíte nad nimi prakticky cokoliv. Když máte data v nepořádku, sebehezčí obrazovka to nezachrání.
SQL versus NoSQL bez dogmat
Databáze se zhruba dělí na dva tábory a kolem té volby se vede víc náboženských válek než kolem čehokoliv jiného. Pojďme to odbýt bez patosu.
- Relační (SQL). Data v tabulkách, jako v Excelu, jen mnohem přísnější. Tabulka zákazníků, tabulka objednávek a mezi nimi jasně dané vazby. Databáze sama hlídá, že objednávka nemůže existovat bez zákazníka. Pro drtivou většinu firemních aplikací je tohle správná a bezpečná volba: PostgreSQL nebo MySQL vás nezklamou.
- NoSQL. Volnější svět dokumentů, kde každý záznam může vypadat jinak. Hodí se na specifické případy, kdy data nemají pevný tvar nebo jich tečou opravdu obrovská množství, třeba logy, signály ze senzorů, vyhledávací indexy.
Řekneme to natvrdo: NoSQL si lidé často vyberou, protože to zní moderně, a pak draze zjistí, že jim chybí věci, které relační databáze dělá zadarmo, hlavně hlídání souvislostí mezi daty. Když si nejste jistí, začněte u relační databáze. Je to nudná, prověřená a správná odpověď v devíti případech z deseti.
Nikdy nevybírejte databázi podle toho, co je zrovna v módě nebo co „teď všichni používají“. Vybírejte podle tvaru svých dat. Modely vyhasínají, vaše data zůstávají roky.
Dobrý datový model je základ celé stavby
Datový model je jednoduše seznam věcí, které si váš software pamatuje, a vztahů mezi nimi. Ve světě dat se těm věcem říká entity.
Vezměte si e-shop. Máte zákazníky, objednávky, produkty. Jeden zákazník má více objednávek. Jedna objednávka obsahuje více produktů. Jeden produkt se objeví v mnoha objednávkách. Když si tyhle vztahy vyjasníte na začátku, na papíru u kávy, ušetříte si později spoustu bolesti.
A teď to důležité: model se rozhoduje dřív než vzhled aplikace. Obrazovky se totiž jen dívají na data. Když změníte barvu tlačítka, je to práce na pět minut. Když na půli cesty zjistíte, že jedna faktura má patřit více firmám zároveň, a vy jste to nenavrhli, přepisuje se polovina systému i s daty, která už v něm jsou.
Proto dobrý dodavatel chce nejdřív pochopit váš byznys, ne kreslit obrazovky. Špatně položený základ se v betonu nepředělává levně.
Data jsou váš největší majetek, chovejte se k nim tak
Pokud si z téhle lekce máte odnést jednu jedinou věc, je to tahle: ke svým datům se musíte umět dostat kdykoliv a celá. Než cokoliv podepíšete, projděte si tohle:
- Vlastnictví. V dobré smlouvě je černé na bílém, že data jsou vaše, ne dodavatelova. Zní to samozřejmě. Samozřejmé to není.
- Export. Musíte mít možnost stáhnout si všechna data ve formátu, který otevře i někdo jiný (CSV, JSON, klidně databázový dump). „Exportovat“ znamená kompletně, ne jen pět sloupců, které vám zrovna ukážou na obrazovce.
- Zálohy. Pravidelné, automatické a hlavně vyzkoušené. Záloha, ze které jste nikdy nic neobnovili, není záloha, ale dojemná víra.
- Kde data fyzicky leží. Server v EU, nebo někde za oceánem? U osobních údajů to není kosmetika, řeší to GDPR.
- GDPR. Sbíráte-li údaje o lidech, musíte vědět, jaké, proč a jak dlouho. A umět je na vyžádání smazat. To není jen na právníka, začíná to už u datového modelu.
Časté chyby, které vás budou bolet
Většina pohrom kolem dat nejsou hackeři z filmů. Jsou to obyčejné věci, které firmy roky odkládají, dokud nebouchnou.
- Kritická data jen v cizím Excelu. Celý ceník, sklad nebo evidence zakázek v jednom souboru v notebooku jednoho kolegy. Stačí ukradený telefon, nemoc nebo výpověď a firmě upadne ruka.
- Žádné zálohy. Disk jednou selže, je to jen otázka kdy. Bez zálohy je ten den, kdy selže, posledním dnem vašich dat.
- Dodavatel, který vám data drží jako rukojmí. Web nebo systém běží, ale data ven nedostanete, leda za výpalné, nebo vůbec. Je to ta nejtišší podoba závislosti na dodavateli; jak se jí bránit už při výběru, rozebíráme v lekci o technologiích a týmu.
- Sbírání dat, na která nemáte právo ani důvod. Každý nepotřebný osobní údaj je riziko, ne aktivum. Co nemáte, to vám neuteče a nemusíte to hlídat. Sbírejte jen to, co opravdu k něčemu používáte.
Data přežijí kód, design i vašeho dodavatele. Postavte je proto na první místo: pochopte, co si software pamatuje, mějte to zálohované a vždy si to umějte odnést s sebou. Zbytek se dá opravit. Ztracená data ne.