ZÁPISKY
1. DBS (Databázový systém), klient–server
Databázový systém (DBS) = software a nástroje pro ukládání, správu a práci s daty.
Části DBS:
-
Databáze – uložená data.
-
SŘBD (DBMS / RDBMS) – software ovládající data (např. MySQL, PostgreSQL, MSSQL).
-
Klientská aplikace – program, který s databází pracuje (aplikace, web, skript).
Princip klient–server:
-
Klient (aplikace) posílá dotaz v SQL.
-
Server (SŘBD) dotaz zpracuje a vrátí výsledek.
Typy SŘBD, které známe:
-
Relational DB: MySQL, PostgreSQL, MSSQL, Oracle
-
Ne-relational (NoSQL): MongoDB, Redis, Cassandra
2. Zadání – tvorba návrhu DB
Slovní zadání → popis požadavků (např. evidence knih v knihovně).
Logické schéma (ER diagram)
-
Entita = objekt reality (např. Kniha, Autor)
-
Atributy = vlastnosti entity (např. Název, Rok vydání)
-
Vazby = vztahy mezi entitami (1:N, N:M)
-
Používají se značky (obdélník = entita, elipsa = atribut, kosočtverec = vazba)
Relační schéma (výstup do tabulek):
-
Přesné názvy tabulek a atributů
-
Určení datových typů
-
Integritní omezení (PRIMARY KEY, FOREIGN KEY, NOT NULL, UNIQUE…)
3. Normalizace (1. NF, 2. NF, 3. NF)
Cílem je odstranit redundanci (duplicitní data) a vytvořit logicky správné tabulky.
| Forma | Podmínka |
|---|---|
| 1. NF | Každý atribut obsahuje nedělitelné hodnoty (atomické). |
| 2. NF | Je v 1. NF + všechny neklíčové atributy závisí na celém primárním klíči. |
| 3. NF | Je ve 2. NF + neklíčové atributy nesmí být závislé na jiném neklíčovém atributu. |
Příklad:
Ne: V jedné tabulce objednávky a zákazníkova adresa.
Ano: Zákazník → samostatná tabulka, objednávka odkazuje na zákazníka přes cizí klíč.
4. Integritní omezení
Zajišťují správnost dat.
| Typ omezení | Popis | Příklad |
|---|---|---|
| Entitní | Každá entita musí být jednoznačně identifikovatelná | PRIMARY KEY (ID) |
| Referenční | Správnost vazeb mezi tabulkami | FOREIGN KEY (Objednávky.id_zákazníka → Zákazník.id) |
| Doménové | Omezují hodnoty v atributu | CHECK (věk > 18), NOT NULL |
5. SQL – DDL a DML syntaxi
-
DDL (Data Definition Language) – definice struktury databáze
CREATE,ALTER,DROP -
DML (Data Manipulation Language) – práce s daty
SELECT,INSERT,UPDATE,DELETE
SELECT – základní struktura:
SELECT sloupce
FROM tabulka
WHERE podmínka
GROUP BY sloupce
HAVING podmínka_na_agregačních_funkcích
ORDER BY sloupec ASC/DESC;
6. Příklady: Joiny, agregační funkce
Typy JOINů
| JOIN | Co dělá |
|---|---|
| INNER JOIN | Vrátí pouze odpovídající záznamy |
| LEFT JOIN | Vše z levé tabulky + odpovídající z pravé |
| RIGHT JOIN | Vše z pravé tabulky + odpovídající z levé |
| FULL JOIN | Všechny záznamy z obou tabulek (pokud SŘBD podporuje) |
Agregační funkce
COUNT(),SUM(),AVG(),MIN(),MAX()
GROUP BY + HAVING:
SELECT id_zakaznika, COUNT(*) AS pocet_objednavek
FROM Objednavky
GROUP BY id_zakaznika
HAVING COUNT(*) > 3;
Shrnutí
-
Databázový systém pracuje v režimu klient–server, kde klient posílá SQL dotazy a server je vykonává.
-
Nejprve se vytváří logický návrh (ER diagram), následně relační schéma tabulek.
-
Normalizace zajišťuje odstranění duplicit a logicky správné tabulky (1. NF, 2. NF, 3. NF).
-
Integritní omezení chrání správnost dat (PK, FK, CHECK, NOT NULL).
-
SQL se dělí na DDL (struktura) a DML (práce s daty).
-
JOINy propojují tabulky, agregační funkce pracují s výpočty nad více řádky.