Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Kterou SQL databázi použít?

Tento článek je určen těm, kteří se rozhodli naučit se pracovat s databázemi a s tím spojenými dalšími technologiemi a nyní přemýšlí, jak a odkud začít. Vzhledem k velkému počtu komentářů a připomínek byl tento článek přepracován do nynější podoby.

Co je to databáze?

Databáze je určitá uspořádaná množina dat, uložená na paměťovém médiu. V širším smyslu se databází myslí i aplikace (software), umožňující manipulaci s daty. Tento software se nazývá Systém Řízení Báze Dat (SŘBD) v anglickém originále Relational Database Management Systém (RDBMS). V tomto článku budeme používat termín databáze v širším slova smyslu.

Historie databází

Vývoj databází velkou měrou ovlivnila vláda Spojených států amerických (její požadavky na rozsáhlé zpracování dat) a společnost IBM. Právě tato společnost jako první vyvinula hard disk, který je dodnes nejpoužívanějším fyzickým médiem pro uchovávání dat v počítači. Její zaměstnanec Edgar F. Codd v roce 1970 ve svém článku nastínil a definoval vlastnosti relačních databází, které dodnes patří k nejpopulárnějším. IBM společně s Oracle také patřila k prvním společnostem nabízejícím komerční relační SŘBD. V neposlední řadě to byla právě IBM, která vyvinula jazyk SQL, který se stal de facto standardem pro práci s databází.

Ač relační databáze představovaly veliký krok kupředu, vývoj se nezastavil. S nástupem objektově orientovaného programování se v osmdesátých letech minulého století začaly objevovat objektové a objektově orientované systémy řízení báze dat. Dalším typem databází, které se v současné době stále více a více prosazují, jsou takzvané NoSQL databáze. I přes tento pokrok jsou relační databáze stále nejpopulárnější.

SQL

Předtím, než se podíváme na jednotlivé databáze (budeme se zabývat relačními databázemi - vysvětleno dále v textu), řekneme si něco o jazyku SQL, který se pro práci s databázemi používá.

SQL znamená Structured Query Language a jedná se o jazyk pro komunikaci s databází. Vývoj jazyka SQL (původně se nazýval SEQUEL) začal v 70. letech minulého století (společně s rozvojem relačních databází) a během svého vývoje se stal nutnou znalostí kohokoliv, kdo, byť i jen okrajově, s databází pracoval.

Během svého vývoje se postupně standardizoval (standard SQL-86, SQL-92, SQL-99). Standardy tedy existují a podporuje je prakticky každá relační databáze. Ne každá databáze implementuje všechny standardy a naopak téměř každá si přidává vlastní konstrukce, které nejsou součástí standardu.

Jazyk SQL se pro jednotlivé databáze může lehce lišit.

Jakou databázi (tutoriál) si vybrat?

Teď, když jsme si vysvětlili, co je to SQL a proč jej budeme potřebovat, podíváme se blíže na databáze, pro něž jsou zde na itnetwork tutoriály:

Ještě než budeme pokračovat dále, vysvětlíme si pojem relační databáze.

Relační databáze označuje databázi, která je založená na tabulkách. Řádky představují jednotlivé záznamy a sloupce představují jednotlivé vlastnosti záznamu (více je tento pojem rozebrán a vysvětlen v každém z tutoriálů).

Jakou databázi si tedy vybrat? Pokud se pouze chcete seznámit s SQL, je jedno, jaký tutoriál si vyberete. Pokud ale s SQL chcete pracovat, anebo chcete programovat aplikace, které budou databázi využívat, je dobré se rozhodnout pro tutoriál na určitou databázi.

MySQL

S MySQL se setkáme u většiny webových hostingů, které v rámci svých služeb nabízejí i databázi. Fungují na ní různé osobní blogy, firemní stránky, zpravodajské weby, ale i eshopy. S patřičnými knihovnami však není problém ji použít i v aplikaci pro desktop či telefon. Dá se tedy říci, že rozsáhlost projektu, ke kterému ji použijete záleží pouze na vaší fantazii.

Díky přehlednému rozhrání aplikace phpMyAdmin, ve které se s MySQL nejčastěji pracuje, je navíc vhodná i pro začátečníky (lze s ní ovšem pracovat i pomocí příkazového řádku). Databáze navíc umožňuje definovat několik uživatelských účtů, každý s jinými oprávněními. To je vhodné, pokud chceme někomu umožnit si data pouze prohlížet, pouze je vkládat, editovat, a další.

MySQL podporuje i pokročilejší techniky jazyka SQL jako triggery, uložené procedury, rutiny a jiné, což se může hodit zejména při tvorbě pokročilejších projektů. Nevýhodou MySQL je, že aby naše aplikace mohla s databází pracovat, je potřeba připojení k internetu.

MS-SQL

Stejně jako MySQL i MS-SQL se dá použít jak pro webovou aplikaci, tak i pro aplikaci pro desktopy a telefony. Na výběr máme, jak bývá u Microsoft produktů zvykem, několik verzí od těch nejvíce ořezaných, které jsou zdarma, až po ty robustní, které jsou placené.

MS-SQL nabízí možnost pracovat s centralizovanou databází na serveru, nebo s lokálním souborem. Jedná se tak o kombinaci možností, které nám poskytují technologie MySQL a SQLite. Nevýhodou MS-SQL by mohlo být, že pro svůj provoz (tedy provoz serveru, na kterém poběží) vyžaduje .NET framework, který je na některých zařízeních nutné doinstalovat. MS-SQL nabízí spousty bezpečnostních prvků (účty, pravidla, omezení, role), které z ní činí velmi bezpečnou databázi. Pro práci s MS-SQL lze použít Visual Studio, jehož rozhraní je velmi přehledné. Není ale ani problém použít příkazovou řádku.

SQLite

Jak již název napovídá, SQLite je odlehčená databáze. Pro své fungování nepotřebuje připojení k internetu, neboť pracuje lokálně se souborem, který představuje naší databázi. Díky tomuto se uplatní ve všech aplikacích, u kterých nepočítáme s přístupem k internetu. Často se s ní setkáme například u Android aplikací, kde chceme uchovávat nějaká uživatelská data.

Tento offline přístup je ovšem nevhodný pro systémy, kde je třeba centralizace. SQLite není tedy nejvhodnější pro projekty typu redakčních systémů, bazarů a dalších, kde se na tvorbě obsahu databáze podílejí zároveň všichni uživatelé. Pro práci s SQLite lze využít prostředí DB Browser for SQLite, které je snad nejjednodušší ze všech zmiňovaných. SQLite je tak vhodná více než jiná databáze pro naprosté začátečníky. Pracovat s touto databází lze však i pomocí příkazové řádky. Odlehčenost a jednoduchost systému s sebou ale nese i nepodporu některých pokročilejších technik jako jsou uložené procedury a rutiny.

PostgreSQL

PostgreSQL, podobně jako MySQL funguje na serveru. Není tak vhodná pokud bude vaše aplikace bez připojení k internetu. Stejně jako MySQL lze na PostgreSQL postavit webovou, desktopovou i mobilní aplikaci. PostgreSQL je jakožto open source zcela zdarma. Pro správu databází a tabulek v PostgreSQL lze použít jak příkazovou řádku, tak i grafické rozhrání v podobě například pgAdmin.

Oproti MySQL podporuje PostgreSQL i rozšířené datové typy. Jako hodnotu tak můžete uložit třeba pole, což v MySQL nelze. PostgreSQL je objektově orientovaná, což znamená, že podporuje například objekty, dědění a třídy. Nevýhodou může být, že většina dotazů na internetu ohledně serverových databází se týká spíše MySQL než PostgreSQL. Dále pak, že detailnější dokumentace je dostupná pouze v angličtině (a v omezené míře v čínštině, francouzštině, japonštině a ruštině).

Oracle

Stejně jako předchozí (vyjma SQLite) i Oracle běží na serveru, ke kterému se klienti připojují. Na Oracle je možné postavit i webovou aplikaci, ovšem častěji se setkáme spíše s využitím u desktopových a mobilních aplikací.

Z vlastní zkušenosti mohu říci, že Oracle není úplně vhodný pro začátečníky. V přehledném vývojovém prostředí SQL developer se zanedlouho zorientuje i začátečník, ovšem oproti všem zmiňovaným technologiím, je kvůli počtu svých možností Oracle asi nejsložitější na pochopení.

Díky své popularitě lze na internetu najít řešení v podstatě jakéhokoliv problému, který nás při práci s Oracle databází potká. Později, když se Oracle databáze naučíme, je samozřejmě funkční vybavenost velkým plus. V případě použití komerční verze produktu je nevýhodou vysoká cena licence a již zmiňované složitější prostředí pro začátečníky vlivem obrovského kvanta možností, které Oracle nabízí.

Srovnání technologií

V následující tabulce se pokusíme výše popsané shrnout:

  Dostupnost Použití Obtížnost pro začátečníky Cena Nevýhody
Oracle Linux, Windows vše (weby méně často) Vysoká Zdarma - 40.000 USD Cena placené licence a obtížnost pro začátečníky
MySQL Linux, Windows, macOS vše (nejčastěji weby) Střední Zdarma Pro použití nutnost přístupu k internetu (serveru) pro aplikaci
MS-SQL Linux, Windows, macOS (přes Docker) vše (dobré pro aplikace v .NET a C#) Střední Zdarma - 14.000 USD Nutnost instalace NET frameworku, omezená kompabilita
PostgreSQL Linux, Windows, macOS vše Střední Zdarma Omezené informace na internetu, plná dokumentace není v češtině
SQLite Linux, Windows, macOS Lokální databáze (nejčastěji mobilní aplikace) Nízká Zdarma Odlehčené od pokročilejších funkcí SQL, nevhodné pro projekty, které sdílejí obsah databáze

Popularita jednotlivých databází

Ač popularita databáze není nejdůležitější faktor pro její výběr, může přesto toto kritérium hrát určitou roli (např. více nabídek práce pro specialistu na danou databázi či pro firmu jednodušší sehnání odborníka). Zároveň se jedná o poměrně zajímavou statistiku. Aktuální vývoj popularity můžete ověřit na db-engines.com nebo na statisticsandda­ta.org:

Databáze, které jsme si v tomto článku porovnávali, se dle těchto zdrojů k 4. 6. 2022 umístily takto:

  1. Oracle
  2. MySQL
  3. MS-SQL
  4. PostgreSQL
  5. SQLite

V následujícím kvízu, Online test znalostí SQL a databází, si vyzkoušíme nabyté zkušenosti z kurzu.


 

Všechny články v sekci
SQL - Největší {C_A} e-learning
Přeskočit článek
(nedoporučujeme)
Online test znalostí SQL a databází
Článek pro vás napsal vita
Avatar
Uživatelské hodnocení:
11 hlasů
vita
Aktivity