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.

FormaPodmínka
1. NFKaždý atribut obsahuje nedělitelné hodnoty (atomické).
2. NFJe v 1. NF + všechny neklíčové atributy závisí na celém primárním klíči.
3. NFJe 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íPopisPříklad
EntitníKaždá entita musí být jednoznačně identifikovatelnáPRIMARY KEY (ID)
ReferenčníSprávnost vazeb mezi tabulkamiFOREIGN KEY (Objednávky.id_zákazníka → Zákazník.id)
DoménovéOmezují hodnoty v atributuCHECK (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ů

JOINCo dělá
INNER JOINVrátí pouze odpovídající záznamy
LEFT JOINVše z levé tabulky + odpovídající z pravé
RIGHT JOINVše z pravé tabulky + odpovídající z levé
FULL JOINVš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.