Co je databáze? Průvodce pro lidi, kteří tvoří aplikace
Databáze je uspořádaná zásobárna informací, do které aplikace ukládá a odkud čte: své uživatele, objednávky, rezervace, zprávy. Na rozdíl od informací uložených jen v záložce prohlížeče zůstávají data v databázi i po obnovení nebo restartu a každý, kdo aplikaci používá, vidí tytéž záznamy. Většina databází organizuje data do tabulek, podobně jako listy v tabulkovém procesoru, ale s přísnými pravidly, která drží data v konzistenci.
Proč na tom záleží, když stavíte s AI
Nejčastějším překvapením u lidí, kteří staví s AI, je aplikace, která vypadá hotově, ale zapomene všechno. Přidáte zákazníka, obnovíte stránku a je pryč. To obvykle znamená, že aplikace držela data v paměti prohlížeče, ne v databázi.
Databáze je také místem, kde žije mnoho vašich nejdůležitějších rozhodnutí, ať si to uvědomujete, nebo ne:
- Co zaznamenáváte. Pokud neukládáte stav rezervace, nemůžete ukázat, které rezervace byly zrušeny.
- Jak věci souvisí. Zda jeden zákazník může mít mnoho rezervací, nebo jedna rezervace mnoho služeb, utváří celou aplikaci.
- Kdo smí co vidět. Většina chyb v soukromí se týká toho, které záznamy uživatel smí číst.
Databázi nemusíte navrhovat sami. Ale znalost základů vám umožní popsat data jasně a včas odhalit problémy.
Každodenní přirovnání
Představte si dobře vedenou kartotéku v malé kanceláři.
Každá zásuvka obsahuje jeden druh věcí: jednu pro klienty, jednu pro schůzky, jednu pro faktury. Uvnitř každé zásuvky má každá složka stejný formát se stejně vyplněnými poli. Každá složka má jedinečné referenční číslo a když faktura patří klientovi, složka faktury uvádí číslo klienta, místo aby kopírovala celý jeho spis.
To je relační databáze. Zásuvky jsou tabulky, složky jsou řádky, pole jsou sloupce, referenční čísla jsou primární klíče a poznámky odkazující na jinou složku jsou cizí klíče. Dobrý kancelářský manažer také vynucuje pravidla, žádná schůzka bez data, žádní dva klienti se stejným číslem, stejně jako to dělá databáze.
Příklad: rezervační aplikace pro kadeřnictví
Řekněme, že požádáte AI o postavení rezervačního webu pro kadeřnictví. Rozumná databáze by měla čtyři tabulky.
services
| id | name | duration_minutes | price |
|---|---|---|---|
| 1 | Střih | 45 | 40.00 |
| 2 | Barvení | 90 | 95.00 |
staff
| id | name | |
|---|---|---|
| 1 | Sára | sara@example.com |
| 2 | Omar | omar@example.com |
customers
| id | name | phone | |
|---|---|---|---|
| 101 | Lena Parková | lena@example.com | 555-0100 |
bookings
| id | customer_id | service_id | staff_id | starts_at | status |
|---|---|---|---|---|---|
| 5001 | 101 | 1 | 2 | 2026-10-03 14:00 | confirmed |
Podívejte se na tabulku bookings. Nekopíruje jméno a telefon Leny do každé rezervace, ukládá customer_id = 101. Když Lena změní telefonní číslo, změní se na jednom místě a každá rezervace ukáže nové. To je základní myšlenka relační databáze: každý fakt uložit jednou a odkazovat na něj.
Stejná struktura odpoví na užitečné otázky:
- „Které termíny jsou volné u Omara v pátek?“ Podívejte se na Omarovy rezervace toho dne.
- „Kolik vydělala barvení za tento měsíc?“ Spojte rezervace se službami a sečtěte ceny.
- „Kteří zákazníci nebyli 90 dní v salonu?“ Porovnejte zákazníky s jejich poslední rezervací.
Běžné pojmy vysvětleny
| Pojem | Co znamená |
|---|---|
| Tabulka | Kolekce jednoho druhu záznamů, například zákazníků nebo rezervací. |
| Řádek (záznam) | Jedna položka v tabulce, jeden zákazník, jedna rezervace. |
| Sloupec (pole) | Jeden údaj, který má každý řádek, například e-mail nebo cena. |
| Primární klíč | Jedinečné ID každého řádku, obvykle číslo nebo náhodný řetězec. |
| Cizí klíč | Sloupec, který ukazuje na řádek v jiné tabulce, například customer_id v rezervacích. |
| Schéma | Celkový návrh: které tabulky existují, jejich sloupce a jak jsou propojeny. |
| Dotaz | Požadavek na čtení nebo změnu dat, například „všechny rezervace na zítřek“. |
| SQL | Structured Query Language, standardní jazyk pro dotazování relačních databází. |
| Migrace | Uložená, opakovatelná změna schématu, například přidání sloupce. |
| Index | Vyhledávací struktura, která zrychluje hledání podle sloupce, jako rejstřík v knize. |
| CRUD | Create, Read, Update, Delete: čtyři základní operace, které aplikace s daty provádějí. |
| Záloha | Kopie dat, kterou lze obnovit, když se něco pokazí. |
Druhy databází
| Druh | Jak ukládá data | Příklady | Vhodné pro |
|---|---|---|---|
| Relační (SQL) | Tabulky s pevnými sloupci a vazbami mezi nimi | Postgres, MySQL, SQLite | Většinu obchodních aplikací: rezervace, obchody, CRM, SaaS |
| Dokumentová (NoSQL) | Pružné dokumenty podobné JSON | MongoDB, Firestore | Data, jejichž tvar se od záznamu k záznamu hodně liší |
| Klíč-hodnota | Hodnota uložená pod klíčem | Redis | Cachování, krátkodobá data jako relace |
Pro téměř všechno, co zakladatel nebo malá firma staví jako první, je relační databáze bezpečnou volbou.
Kde databáze sídlí ve vaší aplikaci
Návštěvníci s databází nikdy nemluví přímo. Stránka v jejich prohlížeči (tzv. frontend) žádá o data váš server (backend), obvykle přes API. Server zkontroluje, kdo se ptá a zda smí, pak se dotáže databáze a pošle zpět jen to, co ten člověk smí vidět.
Tento prostřední krok je důležitý. Kdyby prohlížeč mohl dotazovat databázi přímo s plnými právy, kdokoli by mohl otevřít vývojářské nástroje a přečíst všechno.
Časté chyby a mylné představy
- Držení dat jen v prohlížeči. Úložiště prohlížeče (například localStorage) žije na jednom zařízení a v jednom prohlížeči. Je v pořádku pro zapamatovaný filtr, ne pro objednávky.
- Nacpání všeho do jedné tabulky. Jediná tabulka „rezervace“, kde je jméno zákazníka, telefon a cena služby zkopírována do každého řádku, se rychle rozejde.
- Ukládání hesel jako čistého textu. Hesla se mají hashovat, nikdy nesmí být uložena čitelně. Viz co je autentizace.
- Žádná pravidla pro data. Bez povinných polí a pravidel jedinečnosti dostanete rezervace bez data a duplicitní zákazníky.
- Zapomenuté mazání. Rozhodněte, zda smazání zákazníka smaže i jeho rezervace, je ponechá, nebo se zablokuje.
- Používání produkčních dat k experimentům. Riskantní změny nejdřív zkoušejte na bezpečném místě a držte zálohy.
- Tabulka jako databáze navždy. Tabulky jsou skvělé na začátek, ale zvládají špatně mnoho současných uživatelů a oprávnění. Viz jak z tabulky udělat aplikaci.
Co žádat po svém nástroji pro tvorbu s AI
- „Ulož to do databáze, ne do prohlížeče. Řekni mi, které tabulky vytvoříš.“
- „Ukaž mi schéma jako jednoduchou tabulku: každou tabulku, její sloupce a jak jsou propojené.“
- „Zákazník může mít mnoho rezervací; každá rezervace má přesně jednu službu a jednoho zaměstnance.“
- „U zákazníků nastav e-mail jako povinný a jedinečný.“
- „Zabraň tomu, aby se dvě rezervace stejného zaměstnance překrývaly.“
- „Všechny rezervace smí číst jen přihlášený majitel; zákazníci vidí jen své vlastní. Vynucuj to na serveru.“
- „Když smažu službu, nemazej minulé rezervace, jen ji označ jako neaktivní.“
Databáze na Mythexu
Když vaše aplikace potřebuje ukládat data, Mythex přidá do projektu vyhrazenou Postgres databázi. Můžete o ni požádat v chatu („ukládej registrace do čekací listiny do databáze“) nebo použít příkaz /database. Připojovací údaje se aplikaci předají automaticky a agent vytvoří tabulky. Databáze po pěti minutách nečinnosti usne a probudí se při dalším požadavku. U publikované aplikace se účtuje doba, kdy byla vzhůru, z téhož kreditního zůstatku jako stavění. Je dostupná v plánech Free a Pro. Podrobnosti popisuje dokumentace k databázi a šablony aplikací obsahují výchozí body řízené daty.
Otázky
Co je databáze jednoduše řečeno?
Databáze je uspořádaná zásobárna informací, do které aplikace ukládá a odkud čte, například uživatele, objednávky nebo rezervace. Na rozdíl od dat uložených jen v záložce prohlížeče zůstanou v databázi i po obnovení stránky, restartu nebo když se aplikace otevře z jiného zařízení.
Je tabulka ve Excelu databáze?
Tabulka může uchovávat stejný druh dat, ale není pro aplikace stavěná. Skutečná databáze vynucuje pravidla, co který sloupec obsahuje, spolehlivě propojuje tabulky, zvládne zápis od mnoha lidí najednou a řídí, kdo co smí číst.
Jaký je rozdíl mezi SQL a NoSQL databázemi?
SQL (relační) databáze, jako Postgres a MySQL, ukládají data do tabulek s pevně danými sloupci a vztahy mezi nimi. NoSQL databáze, jako MongoDB, ukládají pružnější dokumenty. Většina obchodních aplikací, jako rezervace, CRM nebo obchody, se relačnímu modelu dobře hodí.
Potřebuje moje aplikace databázi?
Pokud si musí pamatovat cokoli, co lidé zadají, jako registrace, objednávky, zprávy nebo nastavení, a ukázat to později nebo jiné osobě, pak ano. Čistě informační web bez formulářů, které něco ukládají, obvykle databázi nepotřebuje.