Přeskočit navigaci

Co jsou databáze?

Definice, typy a příklady databází

Co jsou databáze?

V nejzákladnější definici je databáze jakákoli kolekce vzájemně propojených informací. Když si napíšete seznam potravin na kus papíru, vytváříte malou analogovou databázi. Co je ale databáze v informatice? V tomto kontextu se databáze definuje jako soubor informací, které jsou uložené jako data v počítačovém systému, například skladové zásoby v místním obchodě s potravinami.

K čemu se databáze využívají?

Databáze slouží k ukládání a organizaci dat, aby se s nimi dalo lépe pracovat a aby byly přístupné. Jak se sbírka dat rozrůstá a nabývá na složitosti, je stále obtížnější udržet tato data uspořádaná, dostupná a bezpečná. K tomu se využívají systémy pro správu databází (DBMS), které zahrnují vrstvu nástrojů pro správu.

Co jsou data?

Termínem data se označují veškeré informace, které jsou zaznamenané a uložené o jedné osobě, místě, věci nebo objektu (tzv. entitě), a také atributy této entity.

Pokud například zaznamenáváte a ukládáte informace o místních restauracích, je každá restaurace jednou entitou a její název, adresa a provozní doba jsou atributy této entity. Všechny informace, které shromažďujete a ukládáte o svých oblíbených restauracích, jsou data.

Typy databází

Databáze se obecně dělí na relační a nerelační. Relační databáze jsou vysoce strukturované a rozumí programovacímu jazyku označovanému jako jazyk SQL (Structured Query Language). Nerelační databáze jsou velmi rozmanité a podporují různé datové struktury. Protože mnoho nerelačních databází nepoužívá jazyk SQL, často se označují jako databáze NoSQL.

Typy datových struktur

Tabulkové struktury jsou relační databázové struktury, které organizují data do řádků a sloupců – řádky obsahují entity, zatímco sloupce obsahují atributy entit. Široké tabulky nebo široká sloupcová úložiště používají zhuštěné sloupce s prázdnými atributy pro výrazné zvýšení celkového počtu sloupců, které můžete v tabulce mít. Protože některá místa jsou prázdná, jsou široké tabulky příkladem nerelační databázové struktury.

Lineární struktury uspořádávají prvky do posloupnosti.

Pole

Propojený seznam

Binární strom

Stromové struktury uspořádávají prvky do hierarchické databáze uzlů ve vztazích nadřazenosti a podřízenosti, které vycházejí z jednoho kořenového uzlu.

Grafová databáze

Grafové struktury organizují prvky do nehierarchické sítě uzlů se složitými vzájemnými vztahy.

Zatřiďovací tabulka

Struktury založené na hodnotách hash mapují klíče na hodnoty pomocí funkcí hash, které přidružují související data pomocí indexů do zatřiďovacích tabulek.

Dokumentově orientované databáze

Dokumentově orientované databáze organizují množství informací o entitě do jediného objektu (dokumentu), který je oddělen od ostatních objektů. Objekty nemusí být mapovány ve vzájemném vztahu a lze je upravovat, aniž by to mělo vliv na ostatní objekty.

Relační databáze

V relační databázi, která je nejběžnějším typem, jsou data uspořádaná do tabulek, které obsahují informace o jednotlivých entitách a prostřednictvím řádků a sloupců reprezentují předem definované kategorie. Tato strukturovaná data jsou efektivní a flexibilní pro přístup.

Mezi příklady relačních databází patří SQL Server, Azure SQL, MySQL, PostgreSQL a MariaDB.

Nerelační databáze

Nerelační databáze ukládají nestrukturovaná nebo částečně strukturovaná data. Nepoužívají tabulky se sloupci a řádky jako relační databáze. Místo toho používají model úložiště, který je optimalizovaný pro konkrétní požadavky typu ukládaných dat. Nerelační databáze umožňují rychlý přístup k větším sadám distribuovaných dat, jejich aktualizaci a analýzu.

Mezi příklady nerelačních databází patří MongoDB, Azure Cosmos DB, DocumentDB, Cassandra, Couchbase, HBase, Redis a Neo4j.

Některé nerelační databáze se označují jako databáze NoSQL. NoSQL označuje datová úložiště, která pro dotazy vůbec nepoužívají SQL nebo nepoužívají jenom SQL. Databáze NoSQL místo toho k dotazování používají jiné programovací jazyky a konstruktory. Mnoho databází NoSQL sice podporuje dotazy kompatibilní s SQL, ale způsob, jakým tyto dotazy provádějí, se obvykle liší od způsobu, jakým by stejný dotaz SQL provedla tradiční relační databáze.

Jeden typ nerelační databáze – objektová databáze – využívá objektově orientované programování. Objekty mají zakódovaný stav (faktická data), který je uložený v poli nebo proměnné, a chování, které se zobrazuje prostřednictvím metody nebo funkce. Objekty lze navždy uchovávat v trvalém úložišti a číst a mapovat přímo bez rozhraní API nebo nástrojů, což přináší rychlejší přístup k datům a vyšší výkon. Objektové databáze ale nejsou tak oblíbené jako jiné typy databází a jejich podpora může být náročná.

Databáze IMDB a mezipaměti

Všechna data v databázi IMDB jsou uložená v paměti RAM počítače. Při dotazování nebo aktualizaci tohoto typu databáze přistupujete přímo do hlavní paměti. Není zapojený žádný disk. Data se načítají rychle, protože přístup do hlavní paměti (která je blízko procesoru na základní desce) je mnohem rychlejší než přístup na disk.

Databáze IMDB se běžně používají k ukládání kopií často přístupných informací, jako jsou údaje o cenách nebo zásobách. To se označuje jako ukládání do mezipaměti. Při ukládání dat do mezipaměti ukládáte jejich kopii do dočasného umístění, aby se při příštím požadavku načetla rychleji. Další informace o ukládání do mezipaměti

Příklady databází

Databáze nám mohou připadat jako neviditelná kouzla, ale většina z nás s nimi přichází do styku každý den. Tady jsou některé běžné příklady relačních databází, databází NoSQL a databází IMDB:

Finanční transakce

Banky využívají databáze k evidenci klientských transakcí, kterými může být cokoli od dotazu na zůstatek na účtu až po převody mezi účty. Tyto transakce musí probíhat téměř okamžitě a data z obrovského množství transakcí musí být vždycky aktuální. Pro tyto účely banky využívají online systémy zpracování transakcí, které jsou postavené na relačních databázích, zvládají velký počet zákazníků a časté změny dat z transakcí a zajišťují rychlou odezvu.

Katalogy elektronického obchodování

Pokud máte webové stránky pro elektronické obchodování, váš katalog obsahuje jednotlivé produkty, z nichž každý má své vlastní atributy. Dokumentově orientovaná databáze, která je příkladem nerelační databáze, využívá jednotlivé dokumenty k popisu všech atributů jednoho produktu. Atributy v tomto dokumentu můžete měnit, aniž by to mělo vliv na ostatní produkty. Databáze IMDB se obvykle používají k ukládání často přístupných dat elektronického obchodování, jako jsou zásoby a ceny, do mezipaměti, aby se urychlilo načítání dat a snížilo zatížení databáze.

Sociální sítě

Když se zapojíte do sociální sítě, vaše informace se přidají do nerelační databáze všech, kteří tuto síť používají. Když se propojíte s dalšími lidmi v této síti, stanete se součástí sociálního grafu. Proto si můžete zobrazit filtrovaný seznam svých přátel nebo profesních kontaktů a objevit nové lidi, které tito přátelé a kontakty znají.

Přizpůsobené výsledky

Nerelační databáze jsou hnacím motorem přizpůsobení online, které je dnes tak rozšířené, že jste si ho možná ani nevšimli. Pokud si rezervujete let prostřednictvím webu pro plánování cest, zobrazí se vám také možnosti rezervace hotelů a pronájmu aut. Databáze tohoto webu obsahuje množství nestrukturovaných informací (údaje o letu, cestovní preference, předchozí rezervace aut nebo hotelů), které se používají k tomu, aby vám poskytly přizpůsobené návrhy a šetřily vám tak čas, peníze nebo námahu. Podobně se databáze IMDB během používání aplikace využívají jako úložiště relací k efektivnímu uchovávání dočasných uživatelských dat, jako jsou preference vyhledávání nebo nákupní košík.

Obchodní analýza

Pokud organizace chtějí čerpat poznatky z vlastních dat, pomáhají jim se správou analýz relační databáze. Například technologický helpdesk může sledovat problémy zákazníků z různých úhlů, jako je typ problému, doba jeho vyřešení nebo spokojenost zákazníků. V relační databázi s tabulkovou strukturou jsou údaje o problémech zákazníků vždycky jenom dvoudimenzionální, ale s online systémem analytického zpracování může helpdesk nahlížet do několika tabulek najednou, což umožňuje multidimenzionální analýzy a zpracování velkého objemu dat vysokou rychlostí.

Systémy pro správu databází

Správci databází používají systémy pro správu databází (DBMS) k řízení dat, zejména pokud pracují s velkým objemem dat. Velkým objemem dat se rozumí velké objemy strukturovaných i nestrukturovaných dat, která systém často přijímá v reálném čase nebo téměř v reálném čase. Systém DBMS také pomáhá spravovat data, která se používají ve více aplikacích, nebo data, která se nacházejí na více místech.

Různé systémy správy nabízejí různé úrovně uspořádání, škálovatelnosti a použití. Kromě typu dat, která chcete organizovat, a způsobu, jakým k nim chcete přistupovat, závisí použitý systém DBMS také na tom, kde se nacházejí vaše data, jaký typ architektury používá vaše databáze a jak plánujete škálovat.

Jsou vaše data v místním prostředí, v cloudu nebo v obou těchto prostředích?

V místních databázích jsou data umístěná na soukromém hardwaru v místním prostředí (často je také označované jako soukromý cloud). Pro zvětšení datové kapacity musí správci databází buď zajistit, aby servery v místním prostředí měly k dispozici dostatek místa, nebo rozšířit infrastrukturu o nový hardware a místo tak vytvořit.

V cloudových databázích jsou strukturovaná nebo nestrukturovaná data umístěná na soukromé, veřejné nebo hybridní platformě cloud computingu (tj. platformě, která kombinuje soukromé a veřejné cloudové úložiště). Protože cloudové databáze jsou navržené pro virtualizované prostředí, jsou vysoce škálovatelné a dostupné. Pomáhají také snížit náklady, protože nemusíte kupovat tolik hardwaru a platíte jenom za úložiště, které používáte.

Má vaše databáze centralizovanou, distribuovanou nebo federovanou architekturu?

V centralizované databázi jsou veškerá data uložená v jednom systému na jednom místě. Tento jediný systém je přístupovým bodem pro všechny uživatele.

Distribuované databáze mohou zahrnovat relační i nerelační typy databází. V distribuovaných databázích jsou data uložená na více fyzických místech, buď na několika místních počítačích, nebo rozptýleně v síti vzájemně propojených počítačů.

Ve federované databázi je několik různých databází, které běží na nezávislých serverech a jsou sjednocené do jednoho velkého objektu. Blockchain je typ federované databáze, která se používá k bezpečné správě účetních knih a dalších transakčních záznamů.

Budete při růstu objemu dat využívat vertikální navýšení kapacity nebo škálování na více instancí?

Vertikální navýšení (nebo snížení) kapacity označované také jako vertikální škálování, je proces přidávání prostředků, jako je paměť nebo výkonnější procesory, ke stávajícímu serveru.

Škálování na více instancí (nebo na méně instancí), které se také označuje jako horizontální škálování, doplňuje do fondu prostředků další počítače.

Škálování horizontální namísto vertikálního prodlužuje životní cyklus stávajícího hardwaru, umožňuje upgrade bez vazby na dodavatele, snižuje náklady a zajišťuje dlouhodobý potenciál flexibility.

Databáze Azure

Zjednodušte provoz dat pomocí plně spravovaných databází, které automatizují škálovatelnost, dostupnost a zabezpečení. Využijte možnosti volby mezi relačními databázemi a databázemi NoSQL a IMDB, které zahrnují proprietární a opensourcové stroje.

Seznámení s rodinou databází Azure SQL

Sjednoťte své portfolio SQL bez ztráty kompatibility. Migrujte, modernizujte a nasazujte aplikace podle svých představ, od hraničních zařízení až po cloud, a to s využitím známé technologie SQL Serveru.

Škálování bez obav s využitím Azure Database for PostgreSQL

Azure Database pro PostgreSQL pomáhá rychle a spolehlivě škálovat úlohy díky vysoké dostupnosti, optimalizaci výkonu s podporou umělé inteligence a pokročilému zabezpečení.

Další informace o Azure PostgreSQL

Vytváření vysoce výkonných aplikací pomocí služby Azure Cosmos DB

Azure Cosmos DB je plně spravovaná databáze NoSQL s otevřenými rozhraními API a garantovanou rychlostí v jakémkoli měřítku.

Další informace o Azure Cosmos DB

Efektivní zvládání vysokého provozu s využitím Azure Cache for Redis

Azure Cache for Redis vám pomůže zvládnout tisíce současných uživatelů s téměř nulovou dobou zpracování, a to přidáním vrstvy rychlého ukládání do mezipaměti do architektury vaší aplikace.

Další informace o službě Azure Cache for Redis