- Co je databáze - účel a využití databází na webu
- Typy databází
- SQL (SELECT, INSERT, UPDATE, DELETE)
- Propojení databáze s webovými stránkami
- Použití databáze pro ukládání uživatelských dat (např. formuláře, uživatelské účty)
Co je databáze - účel a využití databází na webu
- Databáze (neboli datová základna, též databanka) je systém souborů s pevnou strukturou záznamů. Tyto soubory jsou mezi sebou navzájem propojeny pomocí klíčů. V širším smyslu jsou součástí databáze i softwarové prostředky, které umožňují manipulaci s uloženými daty a přístup k nim.
- Umožňuje uložení dat, rychlé vyhledávání dat, udržování dat ve strukturované podobě.
-
Využití databáze na webových stránkách:
- Ukládání uživatelských dat - uživatelské účty, hesla, profilové informace a historii aktivit.
- E-commerce a produkty - ukládání informací o produktech, ceny, skladem.
- Správa obsahu (CMS) - informace o článcích, komentáře, uživatelské příspěvky.
- Analýza a reporting - analýza uživatelského chování, sledování výkonu webových stránek, pro generování reportů (Google Analytics).
Typy databází
-
Relační databáze
- Jsou jedním z nejběžnějších typů databází a jsou postaveny na relačním modelu, což znamená, že data jsou organizována do tabulek.
- Každá tabulka se skládá z řádků a sloupců, kde každý řádek představuje jednu entitu (např. uživatele, produkt) a každý sloupec představuje konkrétní atribut této entity (např. jméno, cena, adresa).
- Jsou vhodné pro aplikace, kde je potřeba pevně strukturovaných a propojených dat, jako jsou například bankovní systémy nebo e-shopy.
- Pro práci s těmito daty se používá jazyk SQL (Structured Query Language), který umožňuje provádět operace jako výběr (SELECT), vložení (INSERT), aktualizace (UPDATE) a mazání (DELETE).
- Například: MySQL, PostgreSQL, SQLite, Microsoft SQL Server nebo Oracle.

-
NoSQL databáze
- Narozdíl od relační databáze používá jiné prostředky než tabulková schémata.
- NoSQL databáze jsou flexibilnější a mohou uchovávat data v různých formátech, jako jsou klíč-hodnota páry, dokumenty (např. JSON), nebo grafy.
- Používají se tam kde je potřeba flexibilita a škálovatelnost, například pro big data nebo aplikace, které pracují s nestrukturovanými daty (sociální média, webové aplikace).
-
MongoDB
- Jedna z nejpopulárnějších NoSQL databází, která uchovává data ve formátu dokumentů (obvykle ve formátu JSON). Každý dokument je samostatný záznam a může mít různorodé struktury, což z ní činí velmi flexibilní nástroj pro aplikace, které nevyžadují rigidní schéma

- JSON: Formát pro ukládání strukturovaných dat ve formě textových dokumentů, často používán v kombinaci s NoSQL databázemi. Formát je lehký, snadno čitelný pro člověka a efektivní pro přenos dat mezi servery a webovými aplikacemi.
-
{ "_id": 1, "name": "Marcel Novák", "email": "[email protected]" }
- Jedna z nejpopulárnějších NoSQL databází, která uchovává data ve formátu dokumentů (obvykle ve formátu JSON). Každý dokument je samostatný záznam a může mít různorodé struktury, což z ní činí velmi flexibilní nástroj pro aplikace, které nevyžadují rigidní schéma
SQL (SELECT, INSERT, UPDATE, DELETE)
-
SQL (Structured Query Language) je zkratka pro standardizovaný strukturovaný dotazovací jazyk, který je používán pro práci s daty v relačních databázích.
-
Základní příkazy v SQL:
- SELECT – výběr dat z databáze:
-- Vybere sloupce jmeno a email ze všech řádků v tabulce zakaznici SELECT jmeno, email FROM zakaznici; - INSERT – vložení nového záznamu:
INSERT INTO zakaznici (jmeno, email) VALUES ('Marcel Novak', '[email protected]'); - UPDATE – úprava existujícího záznamu:
UPDATE zakaznici SET email = '[email protected]' WHERE id = 1; -- Aktualizuje email s id=1 - DELETE – smazání záznamu:
DELETE FROM zakaznici WHERE id = 1; -- Smaže zákazníka s id=1
- SELECT – výběr dat z databáze:
Propojení databáze s webovými stránkami
-
Samotná webová stránka obvykle obsahuje pouze zobrazení (HTML, CSS, JavaScript), ale data, jako například seznam produktů, uživatelské účty nebo komentáře, jsou uložena v databázi.
-
Propojení databáze s webovou stránkou umožňuje, aby web nebyl pouze statický, ale byl dynamickým a interaktivním. Frontend odesílá požadavky, backend zajišťuje jejich zpracování a komunikuje s databází, kde se data ukládají nebo načítají. Celý proces je potřeba správně zabezpečit, aby byla chráněna jak funkčnost systému, tak osobní údaje uživatelů.

-
Z čeho se propojení skládá?
-
Frontend
- Frontend je část webu, kterou vidí uživatel. Většinou je vytvořen pomocí HTML, CSS a JavaScriptu. Frontend odesílá požadavky na server a zobrazuje výsledky.
-
Backend
- Backend je část běžící na serveru. Zpracovává logiku aplikace, přijímá požadavky z webu, komunikuje s databází a vrací odpovědi zpět. Mezi běžné jazyky backendu patří PHP, Node.js, Python (Django, Flask), Java (Spring) nebo C# (.NET).
-
Databáze
- K ukládání dat.
-
-
Jak probíhá komunikace?
- Uživatel odešle požadavek (např. registrace).
- Server požadavek přijme a zpracuje.
- Server odešle dotaz do databáze (např. vložení nového uživatele).
- Databáze vrátí odpověď (potvrzení nebo chybu).
- Server odpověď zpracuje a odešle ji zpět na web.
- Web zobrazí výsledek uživateli.
Použití databáze pro ukládání uživatelských dat (např. formuláře, uživatelské účty)
- Když uživatel pracuje s webovou stránkou, například odesílá formulář, registruje se nebo si prohlíží seznam článků, stránka odesílá požadavek na server. Tento server má přístup k databázi, provede potřebnou operaci (například uloží data nebo načte informace) a výsledek vrátí zpět na webovou stránku.
- Příkladem je registrační formulář. Když uživatel zadá své jméno, e-mail a heslo a odešle formulář, server uloží tyto informace do tabulky v databázi, například do tabulky users. Každý uživatel tam má svůj vlastní záznam (řádek), který obsahuje všechny potřebné údaje.
- Při ukládání citlivých údajů, jako je například heslo, není bezpečné ukládat je přímo. Místo toho se heslo zahashuje pomocí speciálních algoritmů (např. bcrypt), aby nebylo možné jej zpětně snadno zjistit.
-
Jednoduchý příklad registračního formuláře:
<?php // Pokud byl formulář odeslán if ($_SERVER["REQUEST_METHOD"] === "POST") { // Připojení k databázi $servername = "localhost"; $username = "root"; $password = ""; $database = "my_database"; $conn = new mysqli($servername, $username, $password, $database); // Kontrola připojení if ($conn->connect_error) { die("Připojení selhalo: " . $conn->connect_error); } // Získání a ošetření dat z formuláře $name = $conn->real_escape_string($_POST['name']); $email = $conn->real_escape_string($_POST['email']); // Vložení dat do databáze $sql = "INSERT INTO users (name, email) VALUES ('$name', '$email')"; if ($conn->query($sql) === TRUE) { echo "Data byla úspěšně uložena!"; } else { echo "Chyba: " . $conn->error; } $conn->close(); } ?> <!-- HTML formulář --> <form method="POST"> <label for="name">Jméno:</label> <input type="text" id="name" name="name" required><br> <label for="email">E-mail:</label> <input type="email" id="email" name="email" required><br> <button type="submit">Odeslat</button> </form>