sql >> Databáze >  >> RDS >> Database

Co jsou databáze?


Úvod

Databáze jsou nezbytnou součástí mnoha moderních aplikací a nástrojů. Jako uživatel můžete každý den pracovat s desítkami nebo stovkami databází, když navštěvujete webové stránky, používáte aplikace v telefonu nebo nakupujete položky v obchodě s potravinami. Jako vývojář jsou databáze základní komponentou používanou k uchování dat po dobu životnosti vaší aplikace. Ale co přesně jsou databáze a proč jsou tak běžné?

V tomto článku si projdeme:

  • co jsou databáze
  • jak je používají lidé a aplikace ke sledování různých druhů dat
  • jaké funkce databáze nabízejí
  • jaké typy záruk poskytují
  • jak jsou ve srovnání s jinými způsoby ukládání dat

Nakonec probereme, jak aplikace spoléhají na databáze při ukládání a získávání dat, aby umožnily komplexní funkce.



Co jsou databáze?

Databáze jsou logické struktury používané k organizaci a ukládání dat pro budoucí zpracování, vyhledávání nebo vyhodnocování. V kontextu počítačů jsou tyto struktury téměř vždy spravovány aplikací zvanou systém správy databáze nebo DBMS . DBMS spravuje vyhrazené soubory na disku počítače a představuje logické rozhraní pro uživatele a aplikace.

Systémy správy databází jsou obvykle navrženy tak, aby organizovaly data podle specifického vzoru. Tyto vzory se nazývají typy databáze nebo databázové modely, jsou logické a strukturální základy, které určují, jak jsou jednotlivá data uložena a spravována. Existuje mnoho různých typů databází, z nichž každý má své výhody a omezení. Relační model , který organizuje data do křížově odkazovaných tabulek, řádků a sloupců, je často považován za výchozí paradigma.

DBMS mohou zpřístupnit databáze, které spravují, prostřednictvím různých prostředků, včetně klientů příkazového řádku, rozhraní API, programovacích knihoven a administrativních rozhraní. Prostřednictvím těchto kanálů lze data přijímat do systému, organizovat je podle potřeby a vracet podle potřeby.



Stálost dat vs pomíjivé úložiště

Databáze ukládají data buď na disk nebo do paměti.

O úložišti na disku se obecně říká, že je trvalé , což znamená, že data jsou spolehlivě uložena na později, i když se databázová aplikace nebo samotný počítač restartují.

Naproti tomu úložiště v paměti je prý pomíjivé nebo volatilní . Pomíjivé úložiště nepřežije ukončení aplikace nebo systému. Výhodou in-memory databází je, že jsou obvykle velmi rychlé.

V praxi bude mnoho prostředí používat kombinaci obou těchto typů systémů, aby získalo výhody každého typu. U systémů, které přijímají nové zápisy na dočasnou vrstvu, toho lze dosáhnout pravidelným ukládáním dočasných dat na disk. Jiné systémy používají k urychlení přístupu ke čtení kopie trvalých dat v paměti pouze pro čtení. Tyto systémy mohou kdykoli znovu načíst data ze záložního úložiště a obnovit svá data.

Typ záložního úložiště Přežijí data restartování? Výhody Příklady
Na disku Ano Životnost dat MySQL
V paměti Ne Provozní rychlost memcached


Interakce s databázemi za účelem správy dat

Databázový systém se sice stará o to, jak ukládat data na disk nebo do paměti, ale zároveň poskytuje rozhraní pro uživatele nebo aplikace. Rozhraní databáze musí být schopna reprezentovat operace, které mohou provádět externí strany, a musí být schopna reprezentovat všechny datové typy, které systém podporuje.

Podle Wikipedie databáze obvykle umožňují následující čtyři typy interakcí:

  • Definice dat :Vytvořte, upravte a odstraňte definice struktury dat. Tyto operace mění vlastnosti, které ovlivňují, jak bude databáze přijímat a ukládat data. To je u některých typů databází důležitější než u jiných.
  • Aktualizovat :Vložení, úprava a odstranění dat v databázi. Tyto operace mění skutečná data, která jsou spravována.
  • Načítání :Poskytnutí přístupu k uloženým datům. Data lze načítat tak, jak jsou, nebo je lze často filtrovat či transformovat, aby se vmasírovala do užitečnějšího formátu. Mnoho databázových systémů rozumí bohatým dotazovacím jazykům, aby toho dosáhly.
  • Administrace :Další úkoly, jako je správa uživatelů, zabezpečení, sledování výkonu atd., které jsou nezbytné, ale přímo nesouvisejí se samotnými daty.

Pojďme si je probrat trochu podrobněji níže.


Definice dat řídí tvar a strukturu dat v systému

Vytvoření a kontrola struktury, kterou budou mít vaše data v databázi, je důležitou součástí správy databáze. To vám může pomoci řídit tvar nebo strukturu vašich dat předtím, než je vložíte do systému. Umožňuje vám také nastavit omezení, abyste se ujistili, že vaše data dodržují určité parametry.

V databázích, které pracují s vysoce pravidelnými daty, jako jsou relační databáze, jsou tyto definice často známé jako schéma databáze. . Databázové schéma je přesný nástin toho, jak musí být data formátována, aby byla přijata konkrétní databází. To zahrnuje specifická pole, která musí být přítomna v jednotlivých záznamech, stejně jako požadavky na hodnoty, jako je datový typ, délka pole, minimální nebo maximální hodnoty atd. Schéma databáze je jedním z nejdůležitějších nástrojů, které musí vlastník databáze ovlivnit. ovládat data, která budou uložena v systému.

Systémy správy databází, které oceňují flexibilitu před pravidelností, se často označují jako databáze bez schématu . I když se zdá, že to znamená, že data uložená v těchto databázích nemají žádnou strukturu, obvykle tomu tak není. Místo toho je struktura databáze určena samotnými daty a znalostmi aplikace a vztahem k datům. Databáze obvykle stále dodržuje určitou strukturu, ale systém správy databáze se méně podílí na vynucování omezení. Toto je volba designu, která má výhody a nevýhody v závislosti na situaci.



Aktualizace dat za účelem zpracování, úpravy a odstranění dat ze systému

Aktualizace dat zahrnují všechny operace, které:

  • Zadá nová data do systému
  • Upraví existující položky
  • Odstraní záznamy z databáze

Tyto schopnosti jsou nezbytné pro jakoukoli databázi a v mnoha případech tvoří většinu akcí, které databázový systém zpracovává. Tyto typy činností – operace, které způsobují změny v datech v systému – se souhrnně označují jako zápis operace.

Akce zápisu jsou důležité pro jakýkoli zdroj dat, který se bude časem měnit. Dokonce i odstranění dat, destruktivní akce, je považováno za operaci zápisu, protože upravuje data v systému.

Protože operace zápisu mohou měnit data, jsou tyto akce potenciálně nebezpečné. Většina administrátorů databází konfiguruje své systémy tak, aby omezovaly operace zápisu na určité aplikační procesy, aby se minimalizovala možnost náhodného nebo škodlivého poškození dat. Například analýzy dat, které využívají existující data k zodpovězení otázek o výkonu webu nebo chování návštěvníků, vyžadují pouze oprávnění ke čtení. Na druhou stranu část aplikace, která zaznamenává objednávky uživatele, musí mít možnost zapisovat nová data do databáze.



Načítání dat za účelem extrahování informací nebo zodpovězení konkrétních otázek

Ukládání dat není příliš užitečné, pokud nemáte způsob, jak je získat, když je potřebujete. Protože vracení dat neovlivňuje žádné informace aktuálně uložené v databázi, tyto akce se nazývají čtení operace. Operace čtení jsou primárním způsobem shromažďování dat již uložených v databázi.

Systémy pro správu databází mají téměř vždy přímočarý způsob přístupu k datům pomocí jedinečného identifikátoru, často nazývaného primární klíč . To umožňuje přístup k libovolnému záznamu poskytnutím klíče.

Mnoho systémů má také sofistikované metody dotazování databáze, aby vrátily datové sady, které odpovídají konkrétním kritériím, nebo částečné informace o položkách. Tento typ flexibility dotazování pomáhá systému správy databází fungovat jako datový procesor kromě jeho základních možností ukládání dat. Vytvořením konkrétních dotazů mohou uživatelé vyzvat databázový systém, aby vrátil pouze informace, které požadují. Tato funkce se často používá ve spojení s operacemi zápisu k vyhledání a úpravě konkrétního záznamu podle jeho vlastností.



Správa databázového systému, aby vše fungovalo hladce

Poslední kategorií akcí, které databáze často podporují, jsou administrativní funkce. Jedná se o širokou obecnou skupinu akcí, která pomáhá podporovat databázové prostředí, aniž by přímo ovlivňovala samotná data. Některé položky, které by mohly spadat do této skupiny, zahrnují:

  • Správa uživatelů, oprávnění, ověřování a autorizace
  • Nastavení a údržba záloh
  • Konfigurace záložního média pro úložiště
  • Správa replikace a další aspekty škálování
  • Poskytování možností obnovení online a offline

Tato sada akcí je v souladu se základními administrativními starostmi, které jsou společné pro všechny moderní aplikace.

Administrativní operace nemusí být pro základní funkce správy dat ústřední, ale tyto možnosti často odlišují podobné systémy správy databází. Schopnost snadno zálohovat a obnovovat data, implementovat správu uživatelů, která se zapojuje do stávajících systémů, nebo škálovat databázi tak, aby vyhovovala poptávce, to vše jsou základní funkce pro provoz v produkci. Databáze, které těmto oblastem nevěnují pozornost, se často snaží získat přijetí v prostředích reálného světa.




Jaké povinnosti mají databáze?

Vzhledem k výše uvedenému popisu, jak můžeme zobecnit primární povinnosti, které mají databáze? Odpověď závisí hodně na typu používané databáze a požadavcích vašich aplikací. I tak existuje společný soubor povinností, které se všechny databáze snaží zajistit.


Zajištění integrity dat prostřednictvím věrného záznamu a rekonstituce

Integrita dat je základním požadavkem databázového systému bez ohledu na jeho účel nebo konstrukci. Data načtená do databáze by měla být schopna spolehlivě získat bez neočekávaných úprav, manipulace nebo vymazání. To vyžaduje spolehlivé metody načítání a získávání dat, stejně jako serializaci a deserializaci dat podle potřeby pro jejich uložení na fyzické médium.

Databáze často spoléhají na funkce, které ověřují data při jejich zapisování nebo načítání, jako je kontrolní součet, nebo k ochraně proti problémům způsobeným neočekávaným vypnutím, například pomocí technik, jako jsou protokoly pro zápis napřed. Integrita dat se stává tím náročnější, čím distribuovanější je úložiště dat, protože každá část systému musí odrážet aktuální požadovaný stav každé datové položky. Toho je často dosaženo pomocí robustnějších požadavků a odpovědí od více členů, kdykoli se v systému změní data.



Nabízení výkonu, který splňuje požadavky prostředí nasazení

Databáze musí fungovat adekvátně, aby byly užitečné. Výkonové charakteristiky, které potřebujete, silně závisí na konkrétních požadavcích vašich aplikací. Každé prostředí má jedinečnou rovnováhu požadavků na čtení a zápis a budete se muset rozhodnout, co znamená přijatelný výkon pro obě tyto kategorie.

Databáze jsou obecně lepší v provádění určitých typů operací než jiné. Charakteristiky provozního výkonu jsou často odrazem typu použité databáze, datového schématu nebo struktury a samotné operace. V některých případech funkce jako indexování , který vytváří alternativní úložiště běžně přístupných dat s optimalizovaným výkonem, může zajistit rychlejší vyhledávání těchto položek. Jindy se může stát, že databáze prostě nevyhovuje požadovaným vzorům přístupu. To je něco, co je třeba vzít v úvahu při rozhodování o tom, jaký typ databáze potřebujete.



Nastavení procesů umožňujících bezpečný souběžný přístup

I když to není striktní požadavek, prakticky řečeno, databáze musí umožňovat souběžný přístup. To znamená, že s databází musí být schopno pracovat více stran současně. Záznamy by měly být čitelné pro libovolný počet uživatelů současně a měly by být možné do nich zapisovat, pokud nejsou aktuálně uzamčeny jiným uživatelem.

Souběžný přístup obvykle znamená, že databáze musí implementovat některé další základní funkce, jako jsou uživatelské účty, systém oprávnění a mechanismy ověřování a autorizace. Musí také vyvinout strategie, které zabrání tomu, aby se více uživatelů pokoušelo manipulovat se stejnými daty současně. Zamykání záznamů a transakce se často používají k řešení těchto problémů.



Načítání dat jednotlivě nebo souhrnně

Jednou ze základních povinností databáze je schopnost získat data na požádání. Požadavky se mohou týkat jednotlivých částí dat spojených s jedním záznamem nebo mohou zahrnovat načítání dat nalezených v mnoha různých záznamech. Oba tyto případy musí být možné ve většině systémů.

Ve většině databází určitou úroveň zpracování dat zajišťuje samotná databáze během vyhledávání. Ty mohou zahrnovat následující typy operací:

  • Vyhledávání podle kritérií
  • Filtrování a dodržování omezení
  • Extrahování konkrétních polí
  • Průměrování, řazení atd.

Tyto možnosti vám pomohou formulovat data, která chcete, a formát, který by byl nejužitečnější.




Alternativy k databázím

Než budeme pokračovat, měli bychom se krátce podívat na to, jaké máte možnosti, pokud nepoužíváte databázi.

Většinu metod, které ukládají data, lze klasifikovat jako databáze nějakého druhu. Mezi několik výjimek patří následující.


Místní paměť nebo dočasné souborové systémy

Někdy aplikace produkují data, která nejsou užitečná nebo která jsou relevantní pouze po dobu životnosti aplikace. V těchto případech si možná budete přát ponechat tato data v paměti nebo je přesunout do dočasného souborového systému, protože je nebudete potřebovat po ukončení aplikace. V případech, kdy data nejsou nikdy užitečná, můžete chtít výstup úplně zakázat nebo jej zalogovat do /dev/null .



Serializace dat aplikace přímo do místního souborového systému

Dalším případem, kdy databáze nemusí být vyžadována, je situace, kdy lze malé množství dat serializovat a deserializovat přímo. To je praktické pouze pro malá množství dat s předvídatelným vzorem využití, který nezahrnuje mnoho, pokud vůbec nějaké, souběžnost. To se neškáluje dobře, ale může být užitečné v určitých případech, jako je výstup informací z místního protokolu.



Ukládání objektů podobných souborům přímo na disk nebo do úložiště objektů

Někdy mohou být data z aplikací zapsána přímo na disk nebo do alternativního úložiště namísto ukládání do databáze. Pokud jsou například data již uspořádána do formátu orientovaného na soubory, jako je obrázek nebo zvukový soubor, a nevyžadují další metadata, může být nejjednodušší uložit je přímo na disk nebo do vyhrazeného úložiště objektů.




K čemu slouží databáze?

Téměř všechny aplikace a webové stránky, které nejsou zcela statické, spoléhají na databázi někde ve svém prostředí. Primární účel databáze často určuje typ použité databáze, uložená data a použité vzory přístupu. Často je nasazeno více databázových systémů, které zpracovávají různé typy dat s různými požadavky. Některé databáze jsou dostatečně flexibilní, aby mohly plnit více rolí v závislosti na povaze různých datových sad.

Podívejme se na příklad pro diskusi o kontaktních bodech, které může mít typická webová aplikace s databázemi. Budeme předstírat, že aplikace obsahuje základní výlohu a prodává položky, které sleduje v inventáři.


Ukládání a zpracování dat webu

Jedním z primárních použití databází je ukládání a zpracování dat souvisejících s webem. Tyto položky ovlivňují, jak jsou informace na webu uspořádány, a v mnoha případech tvoří většinu „obsahu“ webu.

Ve výše uvedené příkladové aplikaci by databáze naplnila většinu obsahu webu včetně informací o produktu, podrobností o inventáři a informací o profilu uživatele. To znamená, že databáze nebo nějaká zprostředkující mezipaměť by byla konzultována pokaždé, když je třeba zobrazit seznam produktů, stránku s podrobnostmi o produktu nebo uživatelský profil.

Databáze by byla také zapojena při zobrazování aktuálních a minulých objednávek, výpočtu nákladů na dopravu a uplatňování slev kontrolou slevových kódů nebo výpočtu odměn častých zákazníků. Náš vzorový web by používal databázový systém ke správnému vytváření objednávek kombinací informací o produktech, zásob a informací o uživatelích. Složené informace zaznamenané v objednávce by se znovu uložily do databáze, aby bylo možné sledovat zpracování objednávky, umožnit vrácení, zrušení nebo úpravu objednávek nebo lepší zákaznickou podporu.



Analýza informací za účelem lepšího rozhodování

Akce v poslední kategorii se týkaly základní funkčnosti webu. I když jsou velmi důležité pro zpracování datových požadavků aplikační vrstvy, nepředstavují celý obrázek.

Jakmile vaše webová aplikace začne registrovat uživatele a zpracovávat objednávky, pravděpodobně budete chtít odpovídat na podrobné otázky o tom, jak se různé produkty prodávají, kdo jsou vaši nejziskovější uživatelé a jaké faktory ovlivňují váš prodej. Toto jsou analytické otázky, které lze spustit kdykoli a získat tak aktuální informace o trendech a výkonu vaší organizace.

Tyto typy operací se často nazývají business intelligence nebo analytika . Společně pomáhají organizacím pochopit, co se stalo v minulosti, a provádět informované změny. Databázové systémy ukládají většinu dat používaných během těchto procesů a musí poskytovat vhodné nástroje nebo možnosti dotazování, aby mohly odpovídat na otázky o nich.

V naší vzorové aplikaci lze databází vyhledávat za účelem zodpovězení otázek o produktových trendech, registračních číslech uživatelů, o tom, kterým státům dodáváme nejvíce zboží, nebo o tom, kdo jsou naši nejvěrnější uživatelé. Tyto relativně základní dotazy lze použít k sestavení složitějších otázek k lepšímu pochopení a kontrole faktorů, které ovlivňují výkonnost produktu.



Správa konfigurace softwaru

Některé typy databází se používají jako úložiště pro konfigurační hodnoty pro jiný software v síti. Ty slouží jako centrální zdroj pravdy pro konfigurační hodnoty v síti. Při spouštění nových služeb jsou nakonfigurovány tak, aby kontrolovaly hodnoty pro konkrétní klíče na síťové adrese konfigurační databáze. To vám umožní uložit všechny informace potřebné k bootstrap služeb na jednom místě.

Po bootstrappingu lze aplikace nakonfigurovat tak, aby sledovaly změny klíčů souvisejících s jejich konfigurací. Pokud je zjištěna změna, aplikace se může překonfigurovat tak, aby používala novou konfiguraci. Tento proces je někdy organizován procesem správy, který zavádí nové hodnoty v průběhu času tím, že staré služby stahuje dolů, jak přicházejí nové služby, a mění aktivní konfiguraci v průběhu času, aby byla zachována dostupnost.

Naše aplikace by mohla používat tento typ databáze k ukládání trvalých konfiguračních dat pro celé naše aplikační prostředí. Naše aplikační servery, webové servery, nástroje pro vyrovnávání zatížení, fronty zasílání zpráv a další lze nakonfigurovat tak, aby odkazovaly na konfigurační databázi a získaly svá produkční nastavení. Vývojáři aplikace pak mohli upravit chování prostředí vyladěním konfiguračních hodnot na centrálním místě.



Shromažďování protokolů, událostí a dalšího výstupu

Spuštěné aplikace, které aktivně obsluhují požadavky, mohou generovat velké množství výstupu. To zahrnuje soubory protokolu, události a další výstup. Ty lze zapsat na disk nebo do jiného nespravovaného umístění, ale to omezuje jejich užitečnost. Shromažďování tohoto typu dat v databázi usnadňuje práci, rozpoznání vzorců a analýzu událostí, když se stane něco neočekávaného nebo když potřebujete zjistit více o historické výkonnosti.

Naše vzorová aplikace může shromažďovat protokoly z každého z našich systémů v jedné databázi pro snadnější analýzu. To nám může pomoci najít korelace mezi událostmi, pokud se snažíme analyzovat zdroj problémů nebo porozumět zdraví našeho prostředí jako celku.

Odděleně můžeme shromažďovat metriky vytvořené naší infrastrukturou a kódem v databázi časových řad , databáze speciálně navržená pro sledování hodnot v průběhu času. Tato databáze by mohla být použita k napájení nástrojů pro monitorování a vizualizaci v reálném čase, které by vývojovým a provozním týmům aplikace poskytovaly informace o výkonu, chybovosti atd.




Jak různé role pracují s databázemi?

Databáze jsou zásadní pro práci mnoha různých rolí v rámci organizací. V menších týmech může být jeden nebo několik jednotlivců odpovědných za plnění povinností v různých rolích. Ve větších společnostech jsou tyto odpovědnosti často rozděleny do samostatných rolí, které vykonávají specializovaní jednotlivci nebo týmy.


Datoví architekti

Datoví architekti jsou zodpovědní za celkovou makrostrukturu databázových systémů, rozhraní, která vystavují aplikacím a vývojovým týmům, a základní technologie a infrastrukturu potřebnou ke splnění datových potřeb organizace.

Lidé v této roli obecně rozhodují o vhodném databázovém modelu a implementaci, která bude použita pro různé aplikace. Jsou zodpovědní za implementaci databázových rozhodnutí zkoumáním možností, rozhodováním o technologii, její integrací se stávajícími systémy a vývojem komplexní datové strategie pro organizaci. Zabývají se datovými systémy holisticky a podílejí se na rozhodování a implementaci datových modelů pro různé projekty.



DBA (správci databáze)

Správci databází neboli DBA jsou jednotlivci, kteří jsou zodpovědní za udržování hladkého chodu datových systémů. Jsou zodpovědní za plánování nových datových systémů, instalaci a konfiguraci softwaru, nastavení databázových systémů pro jiné strany a řízení výkonu. Často jsou také zodpovědní za zabezpečení databáze, sledování problémů v ní a provádění úprav systému pro optimalizaci vzorů používání.

Správci databází jsou odborníky jak na jednotlivé databázové systémy, tak i na to, jak je dobře integrovat se základním operačním systémem a hardwarem, aby se maximalizoval výkon. Rozsáhle spolupracují s týmy, které využívají databáze ke správě kapacity a výkonu a pomáhají týmům řešit problémy s databázovým systémem.



Vývojáři aplikací

Vývojáři aplikací interagují s databázemi mnoha různými způsoby. Vyvíjejí mnoho aplikací, které komunikují s databází. To je velmi důležité, protože jde téměř vždy o jediné aplikace, které řídí, jak jednotliví uživatelé nebo zákazníci interagují s daty spravovanými databázovým systémem. Výkon, správnost a spolehlivost jsou pro vývojáře aplikací neuvěřitelně důležité.

Vývojáři spravují datové struktury spojené s jejich aplikacemi, aby uchovali svá data na disk. Musí vytvořit nebo použít mechanismy, které dokážou namapovat jejich programová data do databázového systému, aby komponenty mohly spolupracovat v harmonii. Jak se aplikace mění, musí udržovat data a datové struktury v databázovém systému synchronizované. O tom, jak vývojáři pracují s databázemi, si povíme více později v článku.



SRE (inženýři spolehlivosti webu) a provozní profesionálové

SRE (inženýři spolehlivosti webu) a provozní profesionálové spolupracují s databázovými systémy z hlediska infrastruktury a konfigurace aplikací. Mohou být zodpovědní za poskytování dodatečné kapacity, stálé databázové systémy, zajišťování, aby konfigurace databáze odpovídala organizačním pokynům, sledování doby provozuschopnosti a správu záloh.

Tito jednotlivci mají v mnoha ohledech překrývající se odpovědnosti s DBA, ale nezaměřují se pouze na databáze. Provozní pracovníci zajišťují, že systémy, na které spoléhá zbytek organizace, včetně databázových systémů, fungují spolehlivě a mají minimální prostoje.



Obchodní zpravodajství a datoví analytici

Oddělení business intelligence a datoví analytici se zajímají především o data, která jsou již shromážděna a dostupná v rámci databázového systému. Pracují na vývoji poznatků založených na trendech a vzorech v datech, aby mohli předvídat budoucí výkon, radit organizaci ohledně potenciálních změn a odpovídat na otázky týkající se dat pro jiná oddělení, jako je marketing a prodej.

Datoví analytici mohou obecně pracovat výhradně s přístupem pouze pro čtení k datovým systémům. Dotazy, které spouštějí, mají často výrazně odlišné výkonnostní charakteristiky než ty, které používají primární aplikace. Z tohoto důvodu často pracují s replikami databáze nebo kopiemi, takže mohou provádět dlouhotrvající a na výkon náročné souhrnné dotazy, které by jinak mohly ovlivnit využití zdrojů primárního databázového systému.




Jak mohu jako vývojář pracovat s databázemi?

Jak tedy vlastně při práci s databázemi jako vývojář aplikací postupovat? Na základní úrovni, pokud vaše aplikace musí spravovat a udržovat stav, bude práce s databází důležitou součástí vašeho kódu.


Překlad dat mezi aplikací a databází

Pro komunikaci s databází budete muset vytvořit nebo použít existující rozhraní. K databázi se můžete připojit přímo pomocí běžných síťových funkcí, využívat jednoduché knihovny nebo programovací knihovny vyšší úrovně (např. tvůrce dotazů nebo ORM).

ORM , neboli objektově-relační mapovače, jsou mapovací vrstvy, které překládají tabulky nalezené v relační databázi do tříd používaných v objektově orientovaných programových jazycích a naopak. I když je tento překlad často užitečný, nikdy není dokonalý. Nesoulad objekt-relační impedance je termín používaný k popisu tření způsobeného rozdílem v tom, jak relační databáze a objektově orientované programy strukturují data.

Přestože relační databáze a objektově orientované programování popisují dvě konkrétní možnosti návrhu, problém překladu mezi aplikační a databázovou vrstvou je obecný problém, který existuje bez ohledu na typ databáze nebo programovací paradigma. Vrstva abstrakce databáze je obecnější termín pro software se zodpovědností za překlad mezi těmito dvěma kontexty.



Udržování synchronizace strukturálních změn s databází

Jeden důležitý fakt, který zjistíte při vývoji aplikací, je ten, že protože databáze existuje mimo vaši kódovou základnu, vyžaduje zvláštní pozornost, aby se vyrovnala se změnami ve vaší datové struktuře. Tento problém převládá u některých návrhů databází než u jiných.

Nejběžnějším přístupem k synchronizaci datových struktur vaší aplikace s databází je proces zvaný migrace databáze nebo migrace schématu (obě známé hovorově jednoduše jako migrace). Migrace zahrnuje aktualizaci struktury databáze tak, aby odrážela změny, jak se vyvíjí datový model vaší aplikace. Ty mají obvykle podobu řady souborů, jeden pro každý vývoj, které obsahují příkazy potřebné k transformaci databáze do nového formátu.



Ochrana přístupu k vašim datům a dezinfekce vstupu

Jednou z důležitých povinností při práci s databázemi jako vývojář je zajistit, aby vaše aplikace neumožňovaly neoprávněný přístup k datům. Zabezpečení dat je širokým, vícevrstvým problémem mnoha zúčastněných stran. V konečném důsledku bude vaší povinností dbát na některá bezpečnostní hlediska.

Vaše aplikace bude vyžadovat privilegovaný přístup k vaší databázi, aby mohla provádět rutinní úkoly. For safety, the database's authorization framework can help restrict the type of operations your application can perform. However, you need to ensure that your application restricts those operations appropriately. For example, if your application manages user profile data, you have to prevent a user from manipulating that access to view or edit other users' information.

One specific challenge is sanitizing user input. Sanitizing input means taking special precautions when operating on any data provided by a user. There is a long history of malicious actors using normal user input mechanisms to trick applications into revealing sensitive data. Crafting your applications to protect against these scenarios is an important skill.




Conclusion

Databases are an indispensable component in modern application development. Storing and controlling the stateful information related to your application and its environment is an important responsibility that requires reliability, performance, and flexibility.

Fortunately, there are many different database options designed to fulfil the requirements of different types of applications. In our next article, we'll take an in-depth look at the different types of databases available and how they can be used to match different types of application requirements.




  1. Připojení aplikací ODBC k MySQL

  2. Jaký je nejlepší způsob, jak velké první písmeno každého slova v řetězci použít na SQL Server

  3. Jak povolit pomalé protokoly dotazů v AWS RDS MySQL

  4. Připojení k databázi PostgreSQL pomocí tunelování SSH v Pythonu