Úvod
S tolika dostupnými možnostmi může být náročné vybrat databázové řešení, které dokonale vyhovuje vašim potřebám. Pokud jde o typy databází, jednou z oblíbených možností je relační databáze.
V tomto článku se budeme zabývat strukturou relačních databází, jejich fungováním a výhodami a nevýhodami jejich používání. Na příkladech si také ukážeme, jak relační databáze organizují data.
Definice relační databáze
Relační databáze je typ databáze, která se zaměřuje na vztah mezi uloženými datovými prvky. Umožňuje uživatelům vytvářet propojení mezi různými soubory dat v databázi a používat tato propojení ke správě a odkazování souvisejících dat.
Mnoho relačních databází používá SQL (Structured Query Language) pro provádění dotazů a údržbu dat.
Relační vs nerelační databáze
Relační databáze se zaměřují na vztahy mezi daty. Databáze vztahů proto potřebuje ukládat data vysoce strukturovaným způsobem. To umožňuje rychlejší indexování a odezvu na dotazy a činí data bezpečnější a konzistentnější.
Na druhou stranu databáze NoSQL nemusí tolik spoléhat na strukturu, což jim umožňuje ukládat velké množství dat, zůstat flexibilní a snadno škálovat úložiště a výkon.
Jak jsou organizována data v systému relačních databází?
Relační databázové systémy používají model, který organizuje data do tabulek z řádků (nazývané také záznamy nebo n-tice ) a sloupce (nazývané také atributy nebo pole ). Obecně platí, že sloupce představují kategorie dat, zatímco řádky představují jednotlivé instance.
Použijme jako příklad digitální obchod. Naše databáze může mít tabulku obsahující informace o zákaznících se sloupci představujícími jména nebo adresy zákazníků, přičemž každý řádek obsahuje údaje pro jednoho jednotlivého zákazníka.
Tyto tabulky lze propojit nebo propojit pomocí kláves . Každý řádek v tabulce je identifikován pomocí jedinečného klíče, který se nazývá primární klíč. Tento primární klíč lze přidat do jiné tabulky a stát se cizím klíčem Vztah primární/cizí klíč tvoří základ fungování relačních databází.
Vraťme se k našemu příkladu, pokud máme tabulku představující objednávky produktů, jeden ze sloupců může obsahovat informace o zákaznících. Zde můžeme importovat primární klíč, který odkazuje na řádek s informacemi pro konkrétního zákazníka.
Tímto způsobem můžeme odkazovat na data nebo duplikovat data z tabulky zákaznických informací. Znamená to také, že tyto dvě tabulky spolu nyní souvisí.
Příklady relačních databází
Nyní, když jsme probrali, jak fungují, zde jsou některé z nejpopulárnějších příkladů relačních databází:
MySQL
MySQL byl vyvinut jako open-source systém pro správu relačních databází, dokud jej nezískala Sun Microsystems (nyní Oracle Corporation). Je stále k dispozici pod licencí open source s přidáním různých proprietárních licencí.
MySQL obsahuje vestavěnou podporu replikace s ACID, klastrování sdíleného typu a podporuje více úložišť. Použití některých modulů úložiště však může způsobit, že SQL nebude fungovat správně.
MySQL vyniká rychlým vstupem dat a škálovatelností při zachování vysoké dostupnosti a výkonu. Díky tomu je extrémně užitečný pro vývoj webu a aplikací.
PostgreSQL
PostgreSQL je bezplatný správce relačních databází dostupný pod open-source licencí. Sdílí některé funkce s MySQL, s pozoruhodným přidáním MVCC (multi-version concurrency control), díky čemuž je kompatibilní s ACID.
PostgreSQL si zachovává vysokou úroveň výkonu a flexibility i při práci s velkými databázemi. Je to správná volba pro uživatele, kteří potřebují vysokou rychlost čtení/zápisu a rozsáhlou analýzu dat.
Mezi některé významné uživatele PostgreSQL patří Reddit, Skype a Instagram.
MariaDB
MariaDB začala jako komunitou řízená vidlice MySQL poté, co ji koupil Oracle. Je stále open-source, dostupný pod GNU General Public License.
MariaDB staví na základně MySQL přidáním podpory pro ještě více úložišť a opravou omezení úložišť. To mu umožňuje pracovat ještě rychleji než MySQL a provozovat SQL i NoSQL v jediné databázi.
Mezi významné uživatele MariaDB patří Google, Mozilla a Wikimedia Foundation.
SQLite
Na rozdíl od jiných položek v tomto seznamu není SQLite správcem databází klient-server, ale spíše integrovaným do koncové aplikace. Díky tomu je lehký a schopný pracovat s širokou řadou systémů a platforem.
Způsobuje to také určitá omezení, protože SQLite poskytuje spouštěče pouze částečně, má omezenou ALTER TABLE
a nelze zapisovat do zobrazení. Omezuje také maximální velikost databáze na 32 000 sloupců a 140 TB.
SQLite se proto nejlépe používá jako databázová komponenta pro jiné aplikace. Významná použití zahrnují oblíbené prohlížeče, jako je Google Chrome, Mozilla Firefox, Opera a Safari.
Co je systém správy relačních databází?
Systém správy databáze (DBMS) je softwarové řešení, které uživatelům pomáhá prohlížet, dotazovat a spravovat databáze.
Systémy správy relačních databází (RDBMS) jsou pokročilejší podmnožinou DBMS, zpracovávající relační databáze.
DBMS vs RDBMS
Zde jsou některé rozdíly mezi obecnějšími řešeními DBMS a RDBMS:
DBMS | RDBMS |
Ukládá menší množství dat jako soubory bez vztahů. | Ukládá velké množství dat jako tabulky, které spolu souvisí. |
Má přístup pouze k jednomu datovému prvku současně. | Může přistupovat k více datovým prvkům současně. |
Práce s velkým množstvím dat zpomaluje načítání. | Relační přístup umožňuje, aby načítání dat zůstalo rychlé i u velkých databází. |
Žádná normalizace databáze. | Umožňuje normalizaci databáze. |
Nepodporuje distribuované databáze. | Podporuje distribuované databáze. |
Podporuje jednoho uživatele. | Podporuje více uživatelů. |
Nižší úroveň zabezpečení. | Několik úrovní zabezpečení. |
Nízké požadavky na software a hardware. | Vysoké požadavky na software a hardware. |
Výhody a nevýhody relační databáze
Jako každý jiný databázový model má používání relačních databází své výhody a nevýhody:
Výhody
Vzhledem k tomu, že relační databáze používají tabulky řádků a sloupců, zobrazují data jednodušeji než některé jiné typy databází, což usnadňuje jejich použití.
Tato tabulková struktura posouvá zaměření na práci s daty, což umožňuje rychlejší výkon a použití komplexních dotazů na vysoké úrovni.
A konečně, relační databáze usnadňují škálování dat pouhým přidáním řádků, sloupců nebo celých tabulek beze změny celkové struktury databáze.
Nevýhody
Existují limity toho, jak dobře se mohou relační databáze škálovat. Pokud jde o samotnou velikost, některé databáze mají pevná omezení délky sloupců. Pokud je vaše databáze postavena na jediném dedikovaném serveru, škálování vyžaduje nákup většího prostoru na serveru, což je z dlouhodobého hlediska drahé.
Také neustálé přidávání nových prvků do databáze ji může učinit tak složitou, že je obtížné vytvořit vztahy mezi novými částmi dat. Komplikované datové vztahy také zpomalují dotazování a negativně ovlivňují výkon.