Zdieľaná databáza (shared database)

Aktualizované Sep 23, 2026

Zdieľaná databáza je dátové úložisko, ku ktorému pristupuje napriamo viacero modulov, služieb alebo aplikácií. Tie môžu závisieť od rovnakých tabuliek, schém či uloženej logiky. Pri modernizácii legacy systémov môže tento prístup zakrývať vlastníctvo dát a prepájať jednotlivé releasy, preto audit pred oddelením kódu či zmenou schémy mapuje každého čitateľa a zapisovateľa.

Do zdieľanej databázy pristupuje napriamo viac než jeden modul, služba alebo aplikácia. Títo konzumenti môžu čítať tie isté tabuľky, aktualizovať rovnaké záznamy alebo sa spoliehať na uložené procedúry a triggery. Toto usporiadanie môže byť zámerné, no robí z databázovej schémy súčasť efektívneho rozhrania každého jedného konzumenta.

Ako zdieľanie vytvára previazanosť

Priamy prístup umožňuje konzumentovi závisieť od detailov, o ktorých vlastník dát nemusí ani tušiť, že sú verejné. Premenovaný stĺpec, zmenené obmedzenie (constraint) či upravená hodnota stavu môžu ovplyvniť inú aplikáciu bez toho, aby medzi ich repozitármi existovala akákoľvek závislosť na úrovni kódu.

Zdieľaný prvokSkrytá závislosťDôkazy pri audite
Tabuľky a pohľadyKonzumenti závisia od podoby schémyLogy dopytov (query logs) a hľadanie v zdrojoch
Uložená logikaPravidlá bežia mimo aplikačného kóduProcedúry, funkcie a triggery
Prihlasovacie údajePrístup je širší než samotné vlastníctvoOprávnenia (grants), roly a nastavenia pripojenia
Dávkové exportyPredpoklady o načasovaní a formáte na strane príjemcuÚlohy (jobs), súbory a plány

Závislosť existuje aj vtedy, keď konzument vykonáva výhradne operácie čítania. Reporty, cachovanie a integračné úlohy môžu aj tak výrazne obmedziť to, kedy sa môže schéma alebo pravidlo uchovávania dát zmeniť.

Čo všetko audit mapuje

Vyhľadávanie v repozitároch síce odhalí dopyty a mapovania objektov, no môže vynechať externé reporty, manuálne skripty či aplikácie spravované inde. Analýza databázy počas behu dokáže odhaliť aktívnych používateľov a príkazy. Rozhovory s tímami a konfigurácia nasadenia dopĺňajú kontext o vlastníctve, ktorý technické stopy neobsahujú.

Evidencia zaznamenáva:

  • Čitatelia a zapisovatelia (readers and writers). Každý známy konzument a operácie, ktoré vykonáva.
  • Autoritatívne polia (authoritative fields). Ktorý komponent určuje platnú hodnotu pre každý dôležitý záznam.
  • Uložené správanie (stored behaviour). Pravidlá implementované v triggeroch, procedúrach, predvolených hodnotách a obmedzeniach.
  • Predpoklady o načasovaní (timing assumptions). Úlohy alebo exporty, ktoré závisia od poradia aktualizácií a dostupnosti.
  • Hranice prístupu (access boundaries). Prihlasovacie údaje a oprávnenia, ktoré jednotliví konzumenti používajú.

Táto mapa sa stáva súčasťou grafu závislostí (dependency graph) pre legacy systém.

Oddelenie vlastníctva od úložiska

Modulárny monolit si môže ponechať jednu fyzickú databázu a zároveň priradiť vlastníctvo tabuliek alebo schém jednotlivým modulom. Ostatné moduly potom namiesto priameho zápisu dát využívajú určené rozhranie. Týmto sa obnovuje logická hranica ešte pred akýmikoľvek zmenami v infraštruktúre.

Vyčlenenie služby zavádza hranicu nasadenia, no nevyžaduje okamžitý presun databázy v každom prípade. Migrácia môže najskôr smerovať zápisy cez budúceho vlastníka, potom presmerovať čítania a až neskôr presunúť samotné úložisko. Každá fáza potrebuje jasne určenú autoritu, aby dva komponenty nerobili konfliktné zmeny.

Plánovanie bezpečného prechodu

Migračný plán začína pri konzumentoch, ktorí už využívajú stabilné rozhranie. Priame dopyty sa nahrádzajú na základe rizika a biznisovej dôležitosti. Kompatibilné pohľady (compatibility views) alebo prekladový kód môžu prechod podporiť, ak sú jasne zaznamenané podmienky ich neskoršieho vyradenia.

Audit legacy kódu (legacy codebase audit) spája zdieľanú databázu s monolitom, jeho ohraničenými kontextmi a funkciami vybranými na zmenu. Tieto fakty určujú poradie migrácie. Cieľom nie je rozdeliť úložisko samo pre seba. Cieľom je spraviť vlastníctvo dát a dopad zmien natoľko explicitným, aby sa dal každý ďalší krok refaktoringu bezpečne overiť.