Databáze pohánějí téměř každou digitální platformu na planetě:Od webových stránek, přes blogy, sociální média až po streamovací služby. Většina koncových uživatelů zná databáze jako MySQL jako nástroj pro ukládání dat. To je docela přesný, i když základní popis toho, co je databáze. Jsou však mnohem víc než to.
Různé typy databází
Obecný termín databáze často zaměňuje dvě samostatné a odlišné složky:databázi a systém správy databáze (DBMS). Databáze ukládá data a DBMS je nástroj nebo sada nástrojů, které používáte ke správě dat. Zde se zabývám DBMS, protože obsahuje nástroje, které správcům databází umožňují komunikovat s databází, aby ji mohli plně spravovat a řídit.
Systémy správy databází jsou rozděleny do tří vrstev:
- Klient :Odesílá požadavky prostřednictvím příkazového řádku nebo obrazovky GUI pomocí platných SQL dotazů.
- Server :Zodpovídá za všechny logické funkce serveru.
- Úložiště :Zvládá ukládání dat.
V těchto vrstvách jsou nástroje, jako je manipulátor vláken, dotazovací jazyk, analyzátor, optimalizátor, mezipaměť dotazů, vyrovnávací paměť, mezipaměť metadat tabulek a mezipaměť klíčů. Tyto části se spojí, aby vytvořily výkonný systém, který mohou správci, uživatelé a software používat k ukládání a získávání dat.
Jedním z klíčových aspektů DBMS je dotazovací jazyk. Toto je speciální jazyk používaný k interakci s databází. Je to velmi specifický jazyk a musí být používán v souladu se specifikacemi stanovenými DBMS. Některé DBMS mají své vlastní, proprietární, dotazovací jazyky, ale nejoblíbenější jsou:
- SQL - Structured Query Language je jedním z nejpoužívanějších dotazovacích jazyků na trhu a používají ho MS SQL a MySQL.
- XQuery - Používá formát souboru XML k extrahování a manipulaci s daty.
- OQL – Object Query Language je výchozí jazyk pro objektově orientované databáze, které se často používají v případech použití velkých dat.
- SQL/XML - Kombinace SQL a XQuery a podpora příkazů SQL na datech XML.
- GraphQL – Open source jazyk schopný pracovat s API a také runtime, které lze použít pro dotazy na existující data.
- LINQ – Language Integrated Query extrahuje a zpracovává data z různých zdrojů, jako jsou dokumenty XML a relační databáze.
Relační a nerelační databáze
DBMS používá dva primární typy databází:relační a nerelační. Rozdíl mezi těmito dvěma je důležitý, protože pomáhají definovat nejlepší případ použití pro databázi.
Relační databáze je databáze, která ukládá informace v tabulkách obsahujících související data. Název relační databáze je ten, že lze vytvářet vztahy mezi dvěma nebo více tabulkami. Vztahy korelují řádky patřící do dvou různých tabulek do třetí tabulky. Relační databáze se nejlépe používají, když se data, která obsahují, často nemění a když je přesnost dat klíčová.
Nerelační databáze (také nazývané databáze NoSQL) ukládají své informace v netabulkové formě. Místo toho nerelační databáze ukládají data v datových modelech, z nichž čtyři nejběžnější typy jsou:
- Zaměřené na dokumenty - data jsou uložena jako dokumenty JSON.
- Pár klíč–hodnota - data jsou uložena v párech klíčů.
- Graf - data jsou uložena ve struktuře node-edge-node.
- Široký sloupec - data jsou uložena v tabulkovém formátu s flexibilními sloupci, které se mohou lišit řádek od řádku.
Protože tímto způsobem ukládají data, jsou nerelační databáze mnohem flexibilnější. Mohou ukládat širokou škálu různých typů dat. Díky tomu jsou ideální, když je nutné ukládat obrovské množství komplexních dat, například při práci s aplikacemi pro velká data.
Co hledat v databázi
První otázka, kterou je třeba si položit, je:„Mám použít relační nebo nerelační databázi? Relační databáze se nejlépe používá pro instance, které vyžadují ACID (Atomicity, Consistency, Isolation, Durability) soulad, přesnost dat, normalizace a jednoduchost, ale nevyžadují škálovatelnost, flexibilitu a vysoký výkon. Dobrým příkladem použití relační databáze je dynamická webová stránka řízená databází, jako je WordPress.
Na druhou stranu, nerelační databáze se nejlépe používá, když je rozhodující flexibilita, rychlost a škálovatelnost dat. Dobrým příkladem použití nerelační databáze je cloudová aplikace, která závisí na masivním škálování.
Osm populárních databází
Tento seznam osmi nejoblíbenějších databází je rozdělen na 4 relační a 4 nerelační databáze.
Relační databáze
Níže jsou uvedeny nejpopulárnější relační databáze na současném trhu.
Oracle
Databáze Oracle byla původně vyvinuta v roce 1977, což z ní činí nejstarší databázi na seznamu. Od ledna 2022 drží Oracle první místo jako nejrozšířenější systém pro správu relačních databází na světě (s hodnocením Statista 1266,89).
Oracle Database je k dispozici v pěti edicích:
- Podnik - zahrnuje všechny funkce DBMS a také možnost Oracle Real Application Clusters pro vysokou dostupnost.
- Osobní - zahrnuje všechny funkce, kromě možnosti Oracle Real Application Clusters.
- Standardní - zahrnuje základní funkce.
- Expresní - odlehčená a bezplatná omezená verze pro Windows i Linux.
- Oracle Lite – pro případy použití mobilních zařízení.
Primárním důvodem, proč si Oracle Database drží nejvyšší podíl na trhu, je to, že jde o jednu z nejvíce škálovatelných relačních databází. Dosahuje toho rozdělením své architektury na logickou a fyzickou. Tím se umístění dat stane irelevantním a transparentním, což umožňuje modulárnější strukturu, kterou lze upravit, aniž by to ovlivnilo samotnou databázi. Vytvořením databáze Oracle tímto způsobem je možné sdílet zdroje a dosáhnout mnohem flexibilnější datové sítě.
Některé z výjimečných funkcí Oracle Database zahrnují:
- Real Application Clustering (RAC) a přenositelnost, která umožňuje škálování bez ztráty výkonu a konzistence dat.
- Efektivní ukládání do mezipaměti.
- Vysoce výkonné dělení, které umožňuje rozdělit větší stoly na mnoho částí.
- Hotové, studené a přírůstkové zálohy pomocí nástroje Recovery Manager.
- Nástroje pro řízení přístupu k datům a jejich využití.
Mezi výhody Oracle Database patří:
- Používá dotazovací jazyk SQL.
- Vysoký výkon.
- Přenosné (může běžet na téměř 20 síťových protokolech a mnoha hardwarových platformách).
- Instance Caging umožňuje provozovat správu více databází z jednoho serveru.
- Četné edice, které nejlépe vyhovují vašemu podnikání a/nebo případu použití.
- Clustering pro škálovatelnost, vyvažování zátěže, redundanci a výkon.
- Obnova po selhání pomocí nástroje RMAN (Recovery Manager).
- Podpora PL/SQL.
Mezi nevýhody Oracle Database patří:
- Proprietární - Oracle není open source.
- Složitost - Je to jedna z nejkomplexnějších relačních databází na trhu.
- Cena - Oracle Database může být až 10krát dražší než MS SQL.
Zjistěte, jak používat Oracle Database Express Edition s Linode.
MySQL
MySQL je jednou z nejpopulárnějších open-source relačních databází na trhu. Podle DB-Engines je MySQL na 2. místě za Oracle Database v jejich nejpoužívanějších databázích na trhu.
MySQL, vydané v květnu 1995, je vyspělé a spolehlivé. Je to jedna z nejspolehlivějších dostupných možností. MySQL, napsané v C a C++, běží na Linuxu, Solaris, macOS, Windows a FreeBSD a je licencováno pod GPLv2.
MySQL je relační databáze a neškáluje se do rozsahu nerelační databáze, ale podporuje multi-threading, což umožňuje její škálování tak, že dokáže zpracovat až 50 milionů řádků s výchozím souborem. limit velikosti 4 GB s teoretickým limitem 8 TB.
Některé z výjimečných funkcí MySQL zahrnují:
Zabezpečení – Používá pevnou vrstvu zabezpečení dat k ochraně citlivých dat a všechna hesla jsou šifrována.Roll-Back – Umožňuje vrácení transakcí.Účinná paměť - Má velmi nízký únik paměti.Produktivní – Používá spouštěče, uložené procedury a pohledy pro vyšší produktivitu.Rozdělení - Podporuje rozdělení na oddíly pro zlepšení výkonu velmi velkých databází.GUI - MySQL Workbench GUI spravuje databázi.
Mezi výhody používání MySQL patří:
- Zdarma - Toto je bezplatná databáze s otevřeným zdrojovým kódem, kterou lze nainstalovat na tolik instancí serveru, kolik potřebujete.
- Známost - MySQL používá dotazovací jazyk SQL, takže administrátoři db obeznámení s tímto jazykem jsou s tímto DBMS rychle připraveni. MySQL se také řídí typickou architekturou klient/struktura.
- Rychlost - Jedná se o jednu z nejrychlejších relačních databází díky jedinečnému modulu úložiště.
- Integrace - MySQL se těší integraci do tisíců aplikací třetích stran, jako jsou blogovací systémy, CRM, HRM, ERP a mnoho dalších typů aplikací.
Přečtěte si, jak nainstalovat instanci MySQL na server Linode.
Microsoft SQL Server
Microsoft SQL Server je DBMS vyvinutý společností Microsoft. Tato databáze je proprietární řešení, ale lze ji nainstalovat na Linux i Windows. MS SQL Server byl poprvé vydán 24. dubna 1989 a nyní je nabízen v pěti různých edicích:
- Standardní - Základní funkce vyžadované pro většinu aplikací.
- Web - Nízkonákladová možnost, která se liší od standardní edice, pokud jde o maximální povolenou paměť pro fond vyrovnávacích pamětí a maximální výpočetní kapacitu.
- Podnik – Podporuje širokou škálu funkcí datového skladu a zahrnuje pokročilé funkce, jako je komprese dat, vylepšené zabezpečení a podpora větší velikosti dat.
- Vývojář - Navrženo pro vývojáře a zahrnuje schopnost vytvářet uložené procedury, funkce a pohledy.
- Expresní – Omezeno na jednotlivce nebo malé organizace a nezahrnuje žádné pokročilé funkce.
MS SQL Server pracuje s dotazovacím jazykem SQL a používá SQL Server Operating System (SQLOS), který spravuje paměť a I/O zdroje, úlohy a zpracování dat.
Mezi výhody Microsoft SQL Server patří:
- Nativní podpora pro Visual Studio – Podpora programování dat je zabudována do sady Visual Studio, takže správci databáze mohou vytvářet, zobrazovat a upravovat databázová schémata.
- Služba fulltextového vyhledávání - Umožňuje vyhledávání slovních dotazů.
- Podpora více verzí - Umožňuje instalaci více verzí MS SQL Server na jeden počítač.
- Snadná instalace - Lze nainstalovat jediným kliknutím.
- Obnova a obnova dat - Vestavěné nástroje pro obnovu dat.
- Podpora - MS SQL Server má obrovskou komunitu uživatelů se spoustou pomoci a podpory dostupné z různých zdrojů.
Nevýhod MS SQL je málo, ale měl by je zvážit každý, kdo uvažuje o přijetí této databázové platformy. Mezi tyto nevýhody patří:
- Nákladné a matoucí ceny.
- Špatné uživatelské rozhraní.
- Uděluje pouze částečnou kontrolu nad databázemi.
PostgreSQL
PostgreSQL (také nazývaný Postgres) je další bezplatný a open-source systém pro správu databází, který původně sloužil jako nástupce databáze Ingres. PostgreSQL se nazývá „nejpokročilejší relační databáze s otevřeným zdrojovým kódem na světě“ a v současnosti má 14,70% podíl na trhu relačních databází.
PostgreSQL, vydaný v roce 1996, se těší velmi aktivnímu vývojovému cyklu a velké komunitě podpory. To, co odlišuje PostgreSQL od ostatních relačních databází s otevřeným zdrojovým kódem, je to, že je to objektově relační systém správy databází, což znamená, že je podobný relační databázi, ale používá objektově orientovaný databázový model.
PostgreSQL je založen na katalogu, takže umožňuje uživatelům definovat datové typy, typy indexů a funkční jazyky, takže je rozšiřitelnější než jiné relační databáze.
Některé z výjimečných funkcí PostgreSQL zahrnují:
- Soulad s ACID.
- Vysoce souběžné.
- Zahrnuje podporu NoSQL
- Podpora schémat a dotazovacího jazyka pro objekty, třídy, dědičnost a přetěžování funkcí.
- Common Table Expression (dočasné výsledky dotazu, který se používá v kontextu většího dotazu).
- Deklarativní rozdělení (které snižuje množství práce potřebné k rozdělení dat).
- Fulltextové vyhledávání.
- Podpora geografického informačního systému/prostorového referenčního systému (pro zachycování, ukládání, kontrolu a zobrazování dat souvisejících s polohami na zemském povrchu).
- Podpora JSON.
- Logická replikace (což je metoda replikace datových objektů na základě primárního klíče).
Výhody PostgreSQL jsou:
- Ideální pro komplexní operace s velkým objemem dat.
- Vysoce přizpůsobitelné pomocí pluginů a použití vlastních funkcí napsaných v C, C++ a Java.
- Řízení souběžnosti ve více verzích (pokročilá technika pro zlepšení výkonu databáze v prostředí s více uživateli).
- Zámky čtení nejsou nutné, takže nabízí větší škálovatelnost než jiné relační databáze.
- Více platforem (dostupné pro BSD, Linux, macOS, Solaris a Windows).
Pokud jde o nevýhody, PostgreSQL trpí několika, jako například:
- Složitější než MySQL.
- Pomalejší než MySQL.
- Žádný snadný způsob migrace dat z jiných RDBMS.
- Špatná komprese dat.
- Složité horizontální škálování.
- Špatná podpora shlukování.
- Žádná integrovaná podpora pro strojové učení.
Další informace naleznete v našem průvodci, jak nainstalovat PostgreSQL na server Ubuntu 20.04.
Nerelační databáze
Následující části pokrývají nejpopulárnější nerelační databáze na současném trhu.
Redis
Redis je úložiště datových struktur v paměti, které se používá jako distribuovaná databáze NoSQL s hodnotou klíče a hodnoty. Redis je zkratka pro Remote Dictionary Server a používá pokročilé úložiště párů klíč–hodnota, které zahrnuje volitelnou trvanlivost. Redis je často označován jako server datové struktury, protože klíče mohou obsahovat řetězce, hash, seznamy, sady a seřazené sady.
Redis je nestálá databáze v paměti, což z ní dělá dobrou volbu pro systémy s velkým množstvím horkých dat. Redis ukládá data do mezipaměti, díky čemuž je čtení/zápis rychlejší a data jsou vždy vysoce dostupná.
Mezi funkce, díky kterým je Redis výjimečný, patří:
- Minimální složitost ve srovnání s jinými databázemi NoSQL.
- Lehký a nevyžaduje žádné externí závislosti.
- Funguje ve všech prostředích POSIX.
- Podpora synchronní, neblokující replikace master/slave pro vysokou dostupnost.
- Mapovaný systém mezipaměti založený na párech klíč–hodnota, který je srovnatelný se systémem memcached.
- Žádná přísná pravidla pro definování schémat nebo tabulek.
- Podpora více datových modelů nebo typů.
- Podpora sdílení.
- Lze použít ve spojení s jinými databázemi ke snížení zatížení a zvýšení výkonu.
Mezi výhody používání Redis patří:
- Umožňuje ukládání párů klíč–hodnota o velikosti až 512 MB.
- Používá svůj vlastní hashovací mechanismus.
- Díky replikaci dat odolává mezipaměť Redis selhání a stále poskytuje nepřetržitou službu.
- Podporují to všechny oblíbené programovací jazyky.
- Podporuje vkládání velkého množství dat do mezipaměti.
- Vzhledem k malým rozměrům jej lze nainstalovat na hardware Raspberry Pi a ARM.
Nevýhody používání Redis zahrnují následující:
- Všechna vaše data se musí vejít do paměti a nemůžete spravovat více dat, než kolik máte paměti.
- Neexistuje žádný dotazovací jazyk ani podpora pro relační algebru.
- Nabízí pouze dvě možnosti stálosti (snímky a soubory pouze pro připojení).
- Základní funkce zabezpečení.
- Běží pouze na jednom jádru CPU v režimu s jedním vláknem, takže škálovatelnost vyžaduje několik instancí Redis.
Další informace naleznete v našem průvodci, jak nainstalovat a nakonfigurovat Redis na serveru Ubuntu 20.04.
MongoDB
MongoDB je open-source, dokumentově orientovaná databáze NoSQL, zaměřená na ukládání velkých objemů dat. MongoDB je považováno za bez schématu, takže nevynucuje konkrétní strukturu na dokumentech obsažených v kolekci. Tato databáze NoSQL byla původně vydána v roce 2009 a používá dokumenty podobné JSON s volitelnými schématy a lze ji nainstalovat lokálně nebo plně spravovat v cloudu. MongoDB je považován za velmi dobrého kandidáta pro velká data a mohou jej používat organizace všech velikostí.
Mezi funkce, díky kterým MongoDB vyniká, patří:
- Podporuje vyhledávání polí, rozsahů a regulárních výrazů.
- Dosahuje vysoké dostupnosti pomocí sad replik.
- Podporuje sdílení.
- Lze použít jako systém souborů (tzv. GridFS).
- Podporuje zřetězení, funkci map-reduce a jednoúčelové metody agregace.
- V dotazech je podporován JavaScript.
- Podporuje kolekce s pevnou velikostí, nazývané omezené kolekce.
- Pro zlepšení výkonu vyhledávání lze vytvářet indexy.
- Umožňuje provádět operace se seskupenými daty buď pro jeden výsledek, nebo pro vypočítaný výsledek.
Mezi výhody databáze MongoDB patří:
- Podporuje expresivní dotazovací jazyk.
- Není nutné trávit čas navrhováním schématu databáze, protože je bez schématu.
- Flexibilní a výkonné.
- Podporuje geoprostorovou efektivitu.
- Podporuje více přechodů ACID dokumentů.
- Nevyžaduje vkládání SQL.
- Lze rychle integrovat s Hadoop.
- Open source a bezplatné použití.
Mezi nevýhody databáze MongoDB patří:
- Vyžaduje velké množství paměti, zejména při škálování.
- Limit úložiště dat 16 MB.
- Limit 100 úrovní vnořování dat.
- Nepodporuje transakce.
- Spojování dokumentů je složité.
- Může být pomalé, pokud se indexy nepoužívají správně.
- Protože vztahy nejsou dobře definovány, mohou vést k duplicitním datům.
Další informace naleznete v naší příručce o případech použití MongoDB.
Apache Cassandra
Apache Cassandra je open-source distribuovaný systém pro správu databází NoSQL. Je navržen tak, aby zpracovával velmi velké objemy dat napříč komoditními servery. Cassandra byla původně vyvinuta v rámci Facebooku, aby poháněla funkci indexového vyhledávání platformy. V červenci 2008 Facebook otevřel Cassandru prostřednictvím Google Code a v březnu 2009 se oficiálně stal projektem Apache Incubator.
Mezi funkce, díky kterým Cassandra vyniká, patří:
- Všechny distribuované uzly mají stejnou roli, takže neexistuje jediný bod selhání.
- Podporuje replikaci i replikaci více datových center.
- Propustnost čtení/zápisu se lineárně zvyšuje s přidáváním strojů, aby bylo dosaženo vysoké škálovatelnosti.
- Data se automaticky replikují do více distribuovaných uzlů.
- Dostupnost a tolerance oddílů je důležitější než konzistence, a proto je klasifikujeme jako AP systém (v rámci teorému CAP).
- Podporuje integraci Hadoop s podporou MapReduce.
- Zahrnuje svůj vlastní dotazovací jazyk Cassandra Query Language.
Mezi výhody Apache Cassandra patří:
- Elastická škálovatelnost umožňuje škálovat Cassandru nahoru a dolů podle potřeby bez prostojů.
- Řídí se architekturou peer-to-peer, takže selhání je ve srovnání s konfiguracemi master-slave vzácné.
- Čtyři klíčové metody analýzy dat, včetně integrace založené na Solr, dávkové analýzy (s integrací Hadoop), externí analýzy (s pomocí Hadoop a Cloudera/Hortonworks).
- Analytika téměř v reálném čase.
- Podpora více datových center a hybridního cloudu.
- Data mohou být uložena jako strukturovaná, polostrukturovaná nebo nestrukturovaná data.
Nevýhody Apache Cassandra zahrnují:
- Omezená podpora ACID.
- Latence může být problém kvůli velkému množství I/O.
- Data jsou modelována podle dotazů, nikoli podle struktury, což může mít za následek mnohonásobně uložené duplicitní informace.
- Žádná podpora pro připojení nebo poddotaz.
- I když je zápis rychlý, čtení může být pomalé.
- Omezená oficiální dokumentace.
Prohlédněte si naše průvodce na Apache Cassandra, kde se dozvíte více.
CouchDB
CouchDB je naše finální open-source, dokumentově orientovaná NoSQL databáze. Tento konkrétní nástroj ukládá data do dokumentů JSON a používá JavaScript jako svůj dotazovací jazyk pomocí MapReduce. CouchDB zahrnuje web přístupem k dokumentům přes HTTP. Po zpřístupnění lze tyto dokumenty vyhledávat, kombinovat a transformovat pomocí JavaScriptu. Tato databáze NoSQL se dokonale hodí pro webové i mobilní aplikace, a to díky transformacím dokumentů za běhu a upozorněním na změny v reálném čase.
Mezi funkce, díky kterým CouchDB vyniká, patří:
- Replikace databáze napříč více instancemi serveru.
- Rychlé indexování a načítání.
- Rozhraní podobné REST.
- Více knihoven usnadňuje používání vámi zvoleného jazyka.
- GUI založené na prohlížeči spravuje data, oprávnění a konfigurace.
- Podpora replikace.
- Splňuje všechny vlastnosti vlastností ACID.
- Podpora ověřování a relace.
- Zabezpečení na úrovni databáze.
- Vestavěná podpora pro Map/reduce (model pro zpracování a generování velkých souborů dat pomocí paralelního distribuovaného algoritmu).
Mezi výhody používání CouchDB patří:
- Možnost uložit stejný dokument ve více instancích databáze.
- Serializované objekty mohou být uloženy jako nestrukturovaná data v dokumentech JSON.
- Redundantní úložiště dat. Může se replikovat a synchronizovat s prohlížeči prostřednictvím PouchDB.
- Podpora sdílení a shlukování.
- Replikace typu Master-to-Master umožňuje nepřetržité zálohování.
Mezi nevýhody CouchDB patří:
- Pomalejší než některé databáze NoSQL.
- Vyžaduje hodně režie.
- Svévolné dotazy jsou drahé.
- Dočasná zobrazení rozsáhlých souborů dat jsou pomalá.
- Žádná podpora pro transakce.
- Replikace velké databáze je nespolehlivá.
Další informace najdete v našem průvodci Použitím CouchDB 2.0 na Ubuntu 20.04.
Závěr
Bez ohledu na projekt, na kterém pracujete, existuje databáze, která dokonale vyhovuje vašim potřebám. Ať už vyvíjíte malý dynamický web, který závisí na vysoké úrovni konzistence dat, kde byste použili relační databázi, nebo aplikaci, která se bude škálovat do obrovských rozměrů, kde byste použili nerelační databázi, máte možnosti. S Linode můžete pracovat s kteroukoli z těchto databází, abyste mohli efektivně ukládat svá data a komunikovat s vašimi aplikacemi. Je však důležité přesně vědět, co vaše aplikace potřebuje z databáze, než si vyberete kterou z nich. Udělejte špatnou volbu a předělání může být nákladné.