Uživatelské nástroje

Nástroje pro tento web


it:data:sql

Databázové systémy (SQL vs NoSQL)

Databázový systém je software, který umožňuje organizované ukládání, vyhledávání a správu velkého množství dat. V moderním vývoji se rozhodujeme mezi dvěma hlavními světy: tradičním relačním (SQL) a flexibilním nerelačním (NoSQL).

1. SQL: Relační databáze (RDBMS)

Relační databáze jsou postaveny na principech definovaných Edgarem F. Coddem v 70. letech. Data jsou organizována do pevných tabulek, které jsou navzájem propojeny pomocí vztahů (relací).

Klíčové vlastnosti SQL:

  • Strukturované schéma: Předem definovaná struktura (schema), která určuje, jaká data a v jakém formátu mohou být uložena.
  • Dotazovací jazyk SQL: Standardizovaný jazyk (Structured Query Language) pro manipulaci s daty.
  • ACID integrita: Záruka, že databázové transakce jsou bezpečné (Atomicity, Consistency, Isolation, Durability). To je klíčové pro bankovní a finanční systémy.

Populární systémy:

  • PostgreSQL: Nejpokročilejší open-source databáze s bohatými funkcemi.
  • MySQL / MariaDB: Standard pro webové aplikace (součást balíku LAMP).
  • Microsoft SQL Server / Oracle DB: Robustní komerční řešení pro korporátní sféru.

2. NoSQL: Nerelační databáze

NoSQL (Not Only SQL) systémy vznikly jako odpověď na potřeby moderního webu: obrovské objemy dat, potřeba horizontálního škálování a proměnlivá struktura dat.

Čtyři základní typy NoSQL:

1. **Dokumentové:** Data se ukládají v dokumentech (obvykle JSON/BSON). Ideální pro CMS a katalogy. (Např. **MongoDB**, **CouchDB**)
2. **Klíč-hodnota (Key-Value):** Nejjednodušší model pro rychlé ukládání. Skvělé pro cache. (Např. **Redis**, **Memcached**)
3. **Sloupcové (Wide-column):** Optimalizované pro dotazy nad obrovskými datasety. (Např. **Cassandra**, **HBase**)
4. **Grafové:** Zaměřené na vztahy mezi objekty (sociální sítě, doporučovací systémy). (Např. **Neo4j**)

3. Srovnání: Kdy zvolit kterou?

Parametr SQL Databáze NoSQL Databáze
Schéma Pevné (Rigidní) Flexibilní (Dynamické)
Škálování Vertikální (silnější HW) Horizontální (více levných serverů)
Vztahy Komplexní JOINy Často redundance (denormalizace)
Konzistence Silná (ACID) Často Eventuální konzistence (BASE)

Kdy zvolit SQL?

  • Pokud jsou data strukturovaná a vztahy mezi nimi jsou jasné.
  • Pokud je kritická datová integrita (finance, zdravotnictví).
  • Pokud potřebujete komplexní analytické dotazy.

Kdy zvolit NoSQL?

  • Pokud se struktura dat často mění nebo není předem známá.
  • Pokud vyvíjíte aplikaci v reálném čase s miliony uživatelů.
  • Pokud pracujete s Big Data a potřebujete distribuované úložiště.

4. Moderní trend: NewSQL a Polyglot Persistence

Dnešní svět už není černobílý:

  • NewSQL: Moderní SQL databáze, které si zachovávají ACID, ale umí se škálovat jako NoSQL (např. CockroachDB, Google Spanner).
  • Polyglot Persistence: Strategie, kdy jedna aplikace používá více typů databází pro různé účely (např. SQL pro uživatele a Redis pro rychlou cache).

Související články:

Tagy: data database sql nosql mongodb mysql postgresql acid bigdata

it/data/sql.txt · Poslední úprava: autor: admin