The Codest
  • O nás
  • Služby
    • Vývoj softwaru
      • Vývoj frontendů
      • Vývoj backendu
    • Staff Augmentation
      • Vývojáři frontendů
      • Vývojáři backendu
      • Datoví inženýři
      • Cloudoví inženýři
      • Inženýři QA
      • Další
    • To Advisory
      • Audit a poradenství
  • Odvětví
    • Fintech a bankovnictví
    • E-commerce
    • Adtech
    • Healthtech
    • Výroba
    • Logistika
    • Automobilový průmysl
    • IOT
  • Hodnota za
    • CEO
    • CTO
    • Manažer dodávek
  • Náš tým
  • Case Studies
  • Vědět jak
    • Blog
    • Setkání
    • Webové semináře
    • Zdroje
Kariéra Spojte se s námi
  • O nás
  • Služby
    • Vývoj softwaru
      • Vývoj frontendů
      • Vývoj backendu
    • Staff Augmentation
      • Vývojáři frontendů
      • Vývojáři backendu
      • Datoví inženýři
      • Cloudoví inženýři
      • Inženýři QA
      • Další
    • To Advisory
      • Audit a poradenství
  • Hodnota za
    • CEO
    • CTO
    • Manažer dodávek
  • Náš tým
  • Case Studies
  • Vědět jak
    • Blog
    • Setkání
    • Webové semináře
    • Zdroje
Kariéra Spojte se s námi
Šipka zpět ZPĚT
2020-12-15
Vývoj softwaru

Jakou DB zvolit pro konkrétní typ dat ve vašem softwarovém projektu

Agata Werszler

Vytvoření nového projektu zahrnuje výběr správné databáze pro uložení dat. Mnoho vývojářů, které znám, si od začátku vybírá relační databázi. Je to však nejlepší rozhodnutí? Samozřejmě záleží na mnoha faktorech. V tomto článku bych vás rád seznámil s dalšími typy databází, abych vám usnadnil výběr a pomohl vám být připraveni na vaše budoucí snažení.

Typ databáze není jediným tématem, které je třeba zvážit. Existuje mnoho dalších otázek, které je třeba promyslet, např. kolik aktivních uživatelů může aplikace mít? Potřebujete všude silnou konzistenci? Bude v některých případech stačit případná konzistence? Je tolik otázek bez jednoznačných odpovědí, protože "čím více se do toho pouštíte, tím je to složitější". Proto prosím berte na vědomí, že tento článek je zaměřen pouze na typy databází.

Vezměte si šálek kávy a vychutnejte si toto čtení.

Obecná klasifikace databází

Na začátku je dobré vědět, že existují dva hlavní typy databází: relační (SQL) a nerelační (NoSQL).

  • Databáze SQL jsou strukturovány relačně, což znamená, že data ukládáte do tabulek a udržujete mezi nimi vztahy.
  • Databáze NoSQL (nejen SQL) nejsou na rozdíl od relačních databází dobře strukturované, a proto umožňují větší přizpůsobivost a flexibilitu.

Kromě dvou výše uvedených typů existuje ještě jeden, a to databáze v paměti. Nelze ji klasifikovat ani jako relační, ani jako nerelační, protože se týká místa, kde jsou data fyzicky uložena. Každá databáze může být uložena na disku nebo v paměti.

Typy databází

1. Vztahové

Podle mého názoru se jedná o nejoblíbenější typ databáze. Dobře pracuje se strukturálními daty, kde chcete zachovat vztahy mezi záznamy. Struktura databáze je popsána ve schématu.

Hlavními výhodami jsou transakce (pomáhají zajistit integritu dat a dodržovat pravidla ACID) a schopnost zpracovávat velké množství složitých dotazů.

Kdy si ji vybrat?

Hodí se například pro uchovávání dat, která se strukturálně příliš často nemění a která potřebujete uchovávat trvale:

  • CRM (Customer Relationship Management),
  • Správa objednávek,
  • ERP (Podnik Plánování zdrojů),
  • datové sklady nebo správa zásob,
  • účetnictví nebo finance.

Příklady:

Amazon Aurora, Microsoft Azure Databáze SQL, PostgreSQL, MySQL.

Relační databáze jsou pro mnoho nových aplikací nedostatečné a je třeba mít více než jednu databázi. V další části článku se zaměřím na nerelační databáze.

2. Klíč-hodnota

Každou hodnotu dat ukládá pomocí jedinečného klíče. To znamená, že k datům se přistupuje pomocí jediného klíče, stejně jako je tomu u hashovací mapy. Na rozdíl od relačních databází nevynucuje schéma ani vztahy mezi záznamy. Většina těchto databází běžně nepodporuje aktualizační operace. Chcete-li data změnit, musíte přepsat celou existující množinu.

Kdy si ji vybrat?

Je užitečná pro data, která chcete rychle číst/zapisovat (ale neaktualizovat příliš často):

  • nabízení v reálném čase, podávání reklam,
  • ukládání dat do mezipaměti,
  • správa relací,
  • nákupní vozíky,
  • preference zákazníků nebo správa profilů.

Příklady:

Memcached, Amazon DynamoDB, Azure Cosmos DB, Redis.

3. Dokument

Ukládá sbírky dokumentů. Každý dokument obsahuje pole s daty, která mohou být jednoduchými hodnotami nebo složitými prvky, jako jsou seznamy nebo podřízené kolekce. Je důležité vědět, že každý dokument může mít jinou strukturu, i když reprezentuje stejnou věc (každý dokument je jedinečný a v průběhu času se vyvíjí). Například první dokument o zákazníkovi obsahuje méně informací než druhý:

{
 "FirstName": "John",
 "LastName": "Fake",
 "Motocykly:" [
  {
    "Model": "BMW",
    "Year": 2020
  }
 ]
}
{
 "FirstName": "Alex",
 "LastName": "Nolastname",
 "Age": 15,
 "Address": "Alex", "Alex", "Alex", "Alex", "Alex", "Alex": {
    "Country": "Polsko",
    "Město": "Somewhere"
  },
 "Motocykly:" [
  {
    "Model": "BMW",
    "Year": "BMW": 2020
  }
 ]
}

Kdy si ji vybrat?

Je užitečný pro data, která vyžadují flexibilní schéma pro rychlé zpracování:

  • produkt katalogy,
  • CMS (systém správy obsahu),
  • uživatelské profily a personalizace.

Příklady:

Amazon DocumentDB, Azure Cosmos DB, MongoDB, Redis.

4. Graf

Používá strukturu grafu a skládá se ze dvou prvků: uzlů a hran. Uzly jsou obdobou řádků tabulek nebo dokumentů JSON. Hrany jsou vztahy mezi uzly - jsou stejně důležité jako uzly. Oba mohou mít vlastnosti. Hrany navíc mohou mít definovaný směr vztahu.

Kdy si ji vybrat?

Je užitečná, pokud jsou vaše data podobná grafu, tj. vztahy mezi datovými položkami jsou dynamické a mění se v čase. Kromě toho je dobrou volbou v případech, kdy se jedná o obchodní nebo technické tým potřebují porozumět vztahům v rámci svých dat. Mezi nejvýznamnější příklady patří:

  • organizační schémata,
  • odhalování podvodů,
  • sociální grafy/sítě,
  • doporučené motory,
  • znalostní grafy.

Příklady:

Amazon Neptune, Neo4j, ArangoDB, Titan.

5. Časové řady

Ukládá data uspořádaná podle času. Obvykle shromažďuje obrovské množství dat v reálném čase. Nejčastěji se používá k ukládání dat, i když aktualizace je velmi vzácná. Obvykle se jako primární klíč a/nebo třídění dat používá časové razítko. Některé databáze umožňují zahrnout definiční značky jako dodatečné informace, například původ nebo typ dat.

Kdy si ji vybrat?

Je užitečné ukládat malé množství dat připojených postupně v chronologickém pořadí, například v:

  • DevOps,
  • monitorování aplikací,
  • monitorování a telemetrie událostí,
  • IoT aplikací (například sběr dat ze senzorů zařízení).

Příklady:

Azure Time Series Insights, Amazon Timestream, InfluxDB.

6. Účetní kniha

Poskytuje neměnný, transparentní a kryptograficky ověřitelný protokol transakcí vlastněný centrální autoritou. - Přehled QLDB společnosti Amazon

Vysvětleme si krátce všechna klíčová slova ve výše uvedené citaci:

  • immutable - znamená, že záznam vytvořený v této databázi nelze smazat, upravit ani přepsat,
  • transparentní - sleduje a uchovává sekvenční záznam každé změny v datech,
  • kryptograficky ověřitelná - data vytvořená v této databázi se ověřují pomocí kryptografických technik hashování, podobně jako u blockchainů (pomocí hashovací funkce SHA-256).

Kdy si ji vybrat?

Je užitečné ukládat přesnou historii, např. zaznamenávat postupné zadávání každé změny dat, jako např.:

  • finance (historie debetních nebo kreditních transakcí),
  • výroba (sledujte, odkud byly díly pořízeny),
  • pojištění,
  • personalistika a mzdy,
  • maloobchodní prodej,
  • dodavatelské řetězce.

Příklady:

Amazon QLDB

Závěry

Na otázku položenou v nadpisu tohoto článku neexistuje jednoduchá odpověď. Jediný způsob, jak vybrat správnou databázi, je dozvědět se více o svých datech. Odpovězte si na otázku: "Jaký druh dat vaše aplikace generuje?" a budete schopni se správně rozhodnout.

Kromě toho byste měli dobře znát obchodní požadavky a doménu aplikace. Musíte vědět, jak budete data používat, jaké dotazy budete do databáze posílat, kolikrát budete data uchovávat, číst, aktualizovat nebo mazat. Na všech těchto věcech záleží, ale ne všichni vývojáři věnují těmto oblastem dostatečnou pozornost.

Přemýšlejte prosím o svých datech v aplikaci, kterou vyvíjíte, abyste mohli zlepšit/vytvořit lepší software. Celkově doufám, že svá data poznáte natolik dobře, že je uložíte na místo, kde budou spokojená.

Přečtěte si více:

Několik triků pro zrychlení aplikace JavaScript

Způsoby, jak zvýšit výkon systému Rails

Fakta a mýty o spolupráci s externím partnerem pro vývoj softwaru

Související články

Ilustrace zdravotnické aplikace pro chytré telefony s ikonou srdce a rostoucím zdravotním grafem, označená logem The Codest, která představuje digitální zdraví a řešení HealthTech.
Vývoj softwaru

Softwarové vybavení pro zdravotnictví: a případy použití

Nástroje, na které se dnes zdravotnické organizace spoléhají, se v ničem nepodobají papírovým kartám z doby před desítkami let. zdravotnický software dnes podporuje zdravotnické systémy, péči o pacienty a moderní poskytování zdravotní péče v klinických a...

NEJKRÁSNĚJŠÍ
Abstraktní ilustrace klesajícího sloupcového grafu se stoupající šipkou a zlatou mincí symbolizující efektivitu nákladů nebo úspory. V levém horním rohu se zobrazuje logo The Codest se sloganem "In Code We Trust" na světle šedém pozadí.
Vývoj softwaru

Jak rozšířit tým vývojářů bez ztráty kvality produktu

Zvětšujete svůj vývojový tým? Zjistěte, jak růst, aniž byste museli obětovat kvalitu produktu. Tento průvodce se zabývá příznaky, že je čas na škálování, strukturou týmu, najímáním zaměstnanců, vedením a nástroji - a také tím, jak může The Codest...

NEJKRÁSNĚJŠÍ
Vývoj softwaru

Vytváření webových aplikací odolných vůči budoucnosti: postřehy týmu odborníků The Codest

Zjistěte, jak společnost The Codest vyniká při vytváření škálovatelných, interaktivních webových aplikací pomocí nejmodernějších technologií, které poskytují bezproblémové uživatelské prostředí na všech platformách. Zjistěte, jak naše odborné znalosti podporují digitální transformaci a obchodní...

NEJKRÁSNĚJŠÍ
Vývoj softwaru

10 nejlepších lotyšských společností zabývajících se vývojem softwaru

V našem nejnovějším článku se dozvíte o nejlepších lotyšských společnostech zabývajících se vývojem softwaru a jejich inovativních řešeních. Zjistěte, jak mohou tito technologičtí lídři pomoci pozvednout vaše podnikání.

thecodest
Podniková a škálovací řešení

Základy vývoje softwaru v jazyce Java: A Guide to Outsourcing Successfully

Prozkoumejte tuto základní příručku o úspěšném vývoji softwaru outsourcing Java, abyste zvýšili efektivitu, získali přístup k odborným znalostem a dosáhli úspěchu projektu s The Codest.

thecodest

Přihlaste se k odběru naší znalostní databáze a získejte aktuální informace o odborných znalostech z oblasti IT.

    O nás

    The Codest - Mezinárodní společnost zabývající se vývojem softwaru s technologickými centry v Polsku.

    Spojené království - ústředí

    • Kancelář 303B, 182-184 High Street North E6 2JA
      Londýn, Anglie

    Polsko - Místní technologická centra

    • Kancelářský park Fabryczna, Aleja
      Pokoju 18, 31-564 Krakov
    • Brain Embassy, Konstruktorska
      11, 02-673 Varšava, Polsko

      The Codest

    • Home
    • O nás
    • Služby
    • Case Studies
    • Vědět jak
    • Kariéra
    • Slovník

      Služby

    • To Advisory
    • Vývoj softwaru
    • Vývoj backendu
    • Vývoj frontendů
    • Staff Augmentation
    • Vývojáři backendu
    • Cloudoví inženýři
    • Datoví inženýři
    • Další
    • Inženýři QA

      Zdroje

    • Fakta a mýty o spolupráci s externím partnerem pro vývoj softwaru
    • Z USA do Evropy: Proč se americké startupy rozhodly přesídlit do Evropy?
    • Srovnání technických vývojových center v zahraničí: Tech Offshore Evropa (Polsko), ASEAN (Filipíny), Eurasie (Turecko)
    • Jaké jsou hlavní výzvy CTO a CIO?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Copyright © 2026 by The Codest. Všechna práva vyhrazena.

    cs_CZCzech
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese es_ESSpanish nl_NLDutch etEstonian elGreek pt_PTPortuguese cs_CZCzech