it:data:sql
Obsah
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
