Co je databáze a jak funguje v praxi?

Autor: Zveřejněno

Stručně: Databáze je uspořádaný soubor informací, ve kterém lze vyhledávat a který lze doplňovat a aktualizovat. Využívají ji například e-shopy, banky a rezervační systémy k ukládání údajů o zákaznících, produktech nebo transakcích. O správu databáze se obvykle stará specializovaný software, který také hlídá přístupová oprávnění a správnost operací.

Databáze a program pro její správu

Databázi lze přirovnat k dobře uspořádané kartotéce. Každá informace má určené místo a podobu, takže při hledání potřebného záznamu není nutné procházet celý soubor. Na rozdíl od papírové kartotéky umožňuje databáze také rychle propojovat informace, například zobrazit všechny objednávky vybraného zákazníka.

Samotná databáze není totéž co systém řízení báze dat, tedy program pro ukládání, čtení a kontrolu dat. Příklady těchto systémů jsou PostgreSQL, MySQL a SQLite. V běžné řeči se slovem „databáze“ často označuje jak soubor informací, tak software, který jej spravuje. Z technického hlediska však jde o dvě různé součásti.

Uživatel e-shopu nebo aplikace obvykle nepracuje přímo s databází. Vyplní formulář nebo stiskne tlačítko a aplikace předá příslušný příkaz systému řízení báze dat.

Jak jsou data uspořádána a jak se vyhledávají

V relační databázi se informace ukládají do tabulek, které lze vzájemně propojit. Řádek, označovaný také jako záznam, popisuje jeden objekt, například produkt. Sloupce určují jeho vlastnosti, jako je název, cena nebo počet dostupných kusů.

Zjednodušená tabulka produktů může vypadat takto:

Identifikátor produktuNázevCenaDostupné kusy
101Bílý hrnek29 zł18
102Tmavě modrý hrnek32 zł7

Primární klíč je pole nebo sada polí, která jednoznačně identifikuje záznam. V tomto příkladu je jím identifikátor produktu. I když mají dva produkty stejný název, jejich identifikátory je umožňují rozlišit.

Samostatná tabulka může obsahovat objednávky a další tabulka jejich položky s identifikátory produktů a objednaným množstvím. Takové propojení omezuje zbytečné opakování informací. Neznamená to však zákaz kopírování dat: u položky objednávky se obvykle ukládá cena platná v okamžiku nákupu, protože pozdější změna ceníku by neměla měnit historii prodeje.

Pro práci s relačními databázemi se často používá SQL, tedy jazyk příkazů pro čtení a úpravu dat. Dotaz může například získat produkty, kterých zbývá méně než deset kusů. Vyhledávání mohou urychlit indexy — doplňkové struktury, které fungují podobně jako rejstřík v knize. Zabírají však místo a zvyšují náročnost aktualizace dat, proto se nevytvářejí bez omezení.

Co se v databázi děje při nákupu

Představte si obchod, ve kterém zbývá poslední kus produktu. Dva lidé se jej pokusí koupit téměř současně. Samotné zobrazení čísla „1“ na webu nestačí: systém musí rozhodnout, která operace může úspěšně proběhnout.

Pomáhá s tím transakce, tedy skupina operací zpracovávaných jako jeden celek. Vytvoření objednávky a snížení skladové zásoby lze provést tak, aby se buď potvrdily obě změny, nebo se nezapsala ani jedna. Správně navržené zpracování transakcí a souběžného přístupu umožňuje předejít prodeji téhož posledního kusu dvěma lidem.

Databáze však automaticky nezajišťuje správné fungování celého obchodu. Programátor musí správně stanovit pravidla, například zákaz záporné skladové zásoby. Platba v externím systému vyžaduje samostatné zpracování chyb a potvrzení — nestává se součástí místní transakce jen proto, že se týká stejného nákupu.

Čím se databáze liší od tabulkového procesoru

Tabulkový procesor se dobře hodí pro ručně vytvářené přehledy, výpočty a analýzy. Pokud jeden člověk vede malý seznam kancelářského vybavení, může být tabulka jednodušším řešením než samostatná aplikace s databází.

Databáze je zvlášť užitečná, když:

Rozhodující není jen počet řádků. I malý rezervační systém může potřebovat databázi, protože musí zabránit přidělení jednoho termínu více lidem. Naopak i rozsáhlý jednorázový přehled lze stále pohodlně analyzovat v tabulkovém procesoru.

Jak vybrat typ databáze a pečovat o data

Ne všechny databáze používají propojené tabulky. Databáze NoSQL je souhrnné označení různých řešení, například dokumentových databází, které ukládají informace jako dokumenty s určitou strukturou, a databází typu klíč–hodnota, které přiřazují hodnotu k jedinečnému klíči. Nejsou ze své podstaty rychlejší ani lepší než relační databáze — výběr závisí na způsobu ukládání a čtení informací.

Pro běžnou aplikaci, která spravuje zákazníky, objednávky a vyúčtování, je relační databáze často rozumným výchozím řešením. Pokud nasazujete hotový systém pro správu obsahu nebo e-shop, nejprve zkontrolujte požadavky jeho výrobce. Použitý software obvykle určuje, které databázové systémy a jejich verze podporuje.

Bez ohledu na technologii jsou potřeba omezená přístupová oprávnění, aktualizace a zálohy. Záloha umožňuje obnovit data po poruše nebo omylu, její použitelnost je však nutné ověřovat zkušební obnovou. Samotná informace, že se záloha „vytváří každý den“, nepotvrzuje, že z ní lze obnovit funkční databázi.

Před výběrem nástroje si sepište, jaké informace chcete ukládat, kdo je bude měnit a kterým chybám má systém zabránit. Tento krátký popis vám pomůže posoudit, zda stačí tabulkový procesor či hotová aplikace, nebo zda potřebujete vlastní řešení s databází.

Přečtěte si také

Zjistěte, jak PHP-FPM zpracovává požadavky PHP, čím se liší od webového serveru a jak nastavit procesy podle provozu a zdrojů hostingu.
Poznejte BIND, otevřený software pro server DNS: jak spravuje domény, jaké role plní a kdy se vyplatí provozovat vlastní server.
Zjistěte, k čemu slouží polský registr a číslo REGON, jak se liší od NIP a KRS a jak v oficiálním registru ověřit údaje o firmě.