Úvod
S neustále se měnící a vyvíjející se povahou databázového prostředí může být obtížné držet krok se všemi dostupnými řešeními. Open-source databáze jsou stále populárnější, přičemž přibližně 89 % vývojářů používá alespoň jednu.
V tomto tutoriálu si projdeme 8 nejoblíbenějších databází s otevřeným zdrojovým kódem a nabídneme rady, jak si vybrat tu správnou pro potřeby svého projektu.

8 databází s otevřeným zdrojem
Níže uvedené sekce uvádí osm systémů správy databází s otevřeným zdrojovým kódem. Každá část vysvětluje, čím jsou tyto systémy jedinečné, a nabízí výhody a nevýhody jejich používání.
MySQL

MySQL, vyvinutý společností Oracle, je již 25 let jedním z předních řešení správy databází s otevřeným zdrojovým kódem. Může se pochlubit vysokým výkonem při práci s velkými databázemi, je snadno škálovatelný a funguje na většině operačních systémů.
I když má MySQL stále jednu z největších uživatelských základen s působivou úrovní podpory a dokumentace, popularita MySQL pomalu klesá kvůli nárůstu dalších životaschopných alternativ na tomto seznamu.
Výhody používání MySQL:
- Poskytuje spolehlivý a bezpečný produkt s aktivní podporou.
- Vysoká škálovatelnost se zaměřením na web, cloudová úložiště a velká data.
Nevýhody používání MySQL:
- Chybí funkce některých dalších, pokročilejších položek v tomto seznamu.
- I když se jedná o open-source, Oracle přidává stále více uzavřených funkcí.
PostgreSQL

PostgreSQL (běžně označovaný jako „Postgres“) má historii téměř stejně dlouhou jako MySQL. Tyto dva systémy sdílejí mnoho podobných funkcí, což způsobilo, že řada uživatelů přešla z MySQL na PostgreSQL.
PostgreSQL je široce přizpůsobitelný, vysoce bezpečný a může se pochlubit rozsáhlou dokumentací. S tím, jak stále více uživatelů přechází na PostgreSQL, se mnohé z jeho nedostatků rychle napravují.
Výhody používání PostgreSQL:
- Vysoce efektivní, zejména u velkých databází.
- Flexibilní a vysoce přizpůsobitelné.
- Velká komunita a snadno dostupná podpora.
Nevýhody používání PostgreSQL:
- Může být pomalé při práci s menšími databázemi ve srovnání s jinými nástroji vytvořenými pro konkrétní účel.
- Povaha PostgreSQL s otevřeným zdrojovým kódem znamená, že dokumentace může být občas nevýrazná a neexistuje žádná záruka ani ochrana odpovědnosti.
MongoDB

MongoDB je správce databází NoSQL speciálně vytvořený pro velké databáze. Umožňuje vám ukládat data do více cloudů a zatímco výkonný dotazovací jazyk umožňuje bleskově rychlé řazení a filtrování.
MongoDB má také flexibilní schéma, které vám umožní snadno uspokojit specializované nebo nepředvídatelné případy použití. Podporuje také jedinečné funkce, jako je geografické vyhledávání.
Výhody používání MongoDB:
- Snadno škálovatelný a vysoký výkon při práci s velkými databázemi.
- Vysoká flexibilita při vytváření a vyhledávání v databázi.
Nevýhody používání MongoDB:
- Nedostatek schématu může ztížit práci s MongoDB pro vývojáře, kteří nejsou zvyklí na databáze NoSQL.
MariaDB

Poté, co Oracle získal MySQL, začala MariaDB jako zcela bezplatná a open source verze. MariaDB sdílí mnoho funkcí, ale s řadou vylepšení a pokročilejších funkcí.
Funguje také rychleji než MySQL a podporuje více možností úložiště. To vám umožní vybrat si úložiště, které nejlépe vyhovuje potřebám vaší databáze.
Výhody používání MariaDB:
- Vylepšený výkon a funkce ve srovnání s MySQL.
- Podporuje širokou škálu prostředí a úložišť.
Nevýhody používání MariaDB:
- Nefunguje s OS X.
- Neúplná dokumentace a žádná bezplatná zákaznická podpora.
Neo4j

Neo4j se odlišuje od ostatních položek v tomto seznamu, protože podporuje vytváření databází grafů. K tomuto účelu poskytuje komplexní sadu nástrojů, které vám umožňují vizuálně prozkoumat databázi, převádět tabulková data na grafy a provádět grafovou analýzu.

Výhody používání Neo4j:
- Nabízí všestrannou podporu databází a vysoký výkon.
- Umí snadno převádět různé typy databází na databáze grafů.
Nevýhody používání Neo4j:
- Výkon začíná klesat ve větším měřítku.
- Nedostatek indexů rozsahu může způsobit, že data třídění budou zatěžovat systémové prostředky.
Cassandra

Cassandra, postavená na základech Java, se specializuje na práci s velkými databázemi s velkým zatížením při zápisu bez rizika prostojů. Mnoho velkých společností jej přijalo, jako je Twitter, Netflix a Reddit.
Na rozdíl od mnoha jiných správců databází Cassandra abstrahuje data ve sloupcích, nikoli v řádcích. To mu umožňuje ukládat související data v těsné fyzické blízkosti na disku pro zvýšení výkonu a minimalizaci doby vyhledávání.
Výhody používání Cassandry:
- Lineární škálovatelnost spojená s extrémním výkonem umožňuje rozsáhlé databáze.
- Vysoká tolerance oddílů zabraňuje ztrátě integrity, i když dojde ke ztrátě několika clusterů.
Nevýhody používání Cassandry:
- Vysoký výkon a dostupnost jsou za cenu konzistence.
- Datový model založený na sloupcích ztěžuje agregaci.
SQLite

SQLite má jedinečnou vlastnost, že vše, co potřebuje k práci, obsahuje v jediném .sqlite soubor. To znamená, že vše, co musíte udělat, je uložit soubor ve vašem systému a můžete začít, aniž byste museli používat jakýkoli serverový software.
SQLite se staví jako odlehčená alternativa k MySQL. To znamená, že SQLite pracuje rychleji při zachování veškeré kompatibility a funkcí MySQL při omezení maximální velikosti databáze.
Výhody používání SQLite:
- Jeho integrovaná povaha je ideální pro použití s aplikacemi.
- Podporuje JSON a má plnou podporu pro transakce.
Nevýhody použití SQLite:
- Tabulky jsou omezeny na 32 000 sloupců. Maximální velikost databáze je omezena na 140 TB.
- Občasné bezpečnostní problémy s novými kritickými chybami zabezpečení, které se často objevují.
DB šváb

CockroachDB byl navržen tak, aby řešil problémy, které škálování vytváří pro tradiční databáze SQL. Jeho cílem je zjednodušit shlukování a sdílení, aby bylo snadné škálovat databázi při zachování vysoké dostupnosti.
CockroachDB také přichází se svou cloudovou službou (CockroachCloud), která usnadňuje implementaci.
Výhody používání CockroachDB:
- Distribuované a vysoce škálovatelné.
Nevýhody používání CockroachDB:
- Je obtížné integrovat s PostgreSQL, což vám brání používat některé z funkcí PostgreSQL.
Jak si vybrat?
Výběr možnosti, která vám nejlépe vyhovuje, závisí na konkrétních funkcích, které váš projekt vyžaduje.
Například, pokud používáte WordPress, jste uvízli v MySQL. Jiné projekty mohou také podporovat pouze jeden engine pro správu databází, takže výběr za vás.
Pokud máte možnost si vybrat, kterou open-source databázi budete používat, zde jsou některé případy, kdy se každá z výše uvedených může ukázat jako užitečná:
- MySQL: Široká škála aplikací, zejména při vytváření velkoobjemových webových stránek a baleného softwaru.
- PostgreSQL: Hybridní datové modely s částečným vybavením NoSQL nebo průmyslová odvětví založená na produktech, která vyžadují škálování.
- MongoDB: Projekty velkých dat, jako je elektronický obchod a sociální sítě a prototypování.
- MariaDB: Pro ty, kteří chtějí funkce MySQL bez funkcí uzavřeného zdroje.
- Neo4j: Když potřebujete relační databázi založenou na grafech.
- Cassandra: Pro práci s velkým množstvím dat, zejména pro protokolování a analýzy.
- SQLite: Testování v malém měřítku a vývoj aplikací.
- ŠvábDB: Když potřebujete databázi SQL, kterou můžete škálovat s minimálními problémy