====== RDBMS (Relational Database Management System) ====== **RDBMS** je softwarový balík, který implementuje relační model dat (navržený E. F. Coddem v roce 1970). Na rozdíl od jednoduchých souborových úložišť zajišťuje RDBMS integritu dat, bezpečnost a umožňuje komplexní dotazování pomocí jazyka [[sql|SQL]]. Většina moderních databází, se kterými se setkáváme (MySQL, PostgreSQL, Oracle), jsou právě systémy typu RDBMS. ---- ====== Klíčové principy RDBMS ====== RDBMS stojí na několika základních pilířích, které z něj dělají robustní nástroj pro uchovávání informací: ===== 1. Tabulková struktura ===== Data jsou uložena v **tabulkách** (relacích). Každá tabulka má: * **Sloupce (Atributy):** Definují typ dat (např. jméno, datum narození). * **Řádky (Záznamy/Tuply):** Obsahují konkrétní data jednotlivých entit. ===== 2. Klíče a relace ===== Vztahy mezi daty jsou definovány pomocí klíčů: * **Primární klíč (Primary Key):** Unikátní identifikátor každého řádku v tabulce. * **Cizí klíč (Foreign Key):** Odkaz na primární klíč v jiné tabulce, který vytváří propojení (relaci) mezi daty. ===== 3. Pravidla ACID ===== RDBMS garantuje, že každá operace (transakce) proběhne bezpečně díky principům **ACID**: * **A (Atomicity):** Transakce proběhne celá, nebo vůbec. * **C (Consistency):** Data jsou před i po transakci v platném stavu dle pravidel. * **I (Isolation):** Souběžně běžící transakce se vzájemně neovlivňují. * **D (Durability):** Jakmile je transakce potvrzena, data jsou trvale uložena (i při výpadku proudu). ---- ====== Rozdíl mezi Databází a RDBMS ====== Tyto pojmy se často zaměňují, ale technicky mají jiný význam: | Pojem | Význam | Příklad | | --- | --- | --- | | **Databáze** | Samotná uspořádaná kolekce dat (soubor na disku). | Seznam vašich objednávek. | | **RDBMS** | Software, který s těmi daty manipuluje. | [[mysql|MySQL]], Microsoft SQL Server. | ---- ====== Výhody používání RDBMS ====== * **Zamezení redundanci:** Díky normalizaci dat se stejná informace neukládá na více místech zbytečně. * **Vysoká bezpečnost:** Možnost nastavit detailní práva (kdo může číst, kdo měnit konkrétní tabulky). * **Souběžný přístup:** Více uživatelů může pracovat s daty najednou, aniž by si je navzájem poškodili. * **Deklarativní dotazování:** Díky [[sql|SQL]] nemusíte řešit, jak se data čtou z disku, stačí říct, co chcete. ---- ====== Populární systémy RDBMS ====== * **Komerční:** Oracle Database, Microsoft SQL Server, IBM DB2. * **Open-source:** [[mysql|MySQL]], PostgreSQL, MariaDB. * **Vestavěné (Embedded):** SQLite (používá se v mobilních telefonech a prohlížečích). ---- //Související pojmy: SQL, MySQL, Databáze, ACID, CRUD, CAP teorém, Indexování, SQLite.//