Vai vairÄku modeļu DBVS ir mÅ«sdienu informÄcijas sistÄmu pamats?
MÅ«sdienu informÄcijas sistÄmas ir diezgan sarežģītas. Ne mazÄk svarÄ«gi ir tas, ka to sarežģītÄ«ba ir saistÄ«ta ar tajos apstrÄdÄto datu sarežģītÄ«bu. Datu sarežģītÄ«ba bieži ir saistÄ«ta ar izmantoto datu modeļu dažÄdÄ«bu. TÄ, piemÄram, kad dati kļūst ālieliā, viens no problemÄtiskajiem raksturlielumiem ir ne tikai to apjoms (āvolumeā), bet arÄ« daudzveidÄ«ba (āvarietyā).
Ja argumentÄcijÄ vÄl neatrodat trÅ«kumu, lasiet tÄlÄk.
IepriekÅ”minÄtais noved pie tÄ, ka dažkÄrt pat vienas sistÄmas ietvaros datu glabÄÅ”anai un dažÄdu to apstrÄdes problÄmu risinÄÅ”anai ir nepiecieÅ”ams izmantot vairÄkas dažÄdas DBVS, no kurÄm katra atbalsta savu datu modeli. Ar M. Faulera vieglo roku, autors vairÄkas slavenas grÄmatas un viena no lÄ«dzautori Agile Manifesto, Å”o situÄciju sauc vairÄku variantu krÄtuve (āpoliglota neatlaidÄ«baā).
Fauleram ir arÄ« Å”Äds piemÄrs datu glabÄÅ”anas organizÄÅ”anai pilnvÄrtÄ«gÄ un lielas slodzes lietojumprogrammÄ e-komercijas jomÄ.
Å is piemÄrs, protams, ir nedaudz pÄrspÄ«lÄts, taÄu daži apsvÄrumi par labu vienas vai otras DBVS izvÄlei atbilstoÅ”ajam mÄrÄ·im ir atrodami, piemÄram, Å”eit.
Skaidrs, ka bÅ«t par kalpu Å”ÄdÄ zoodÄrzÄ nav viegli.
Koda apjoms, kas veic datu uzglabÄÅ”anu, pieaug proporcionÄli izmantoto DBVS skaitam; kodu sinhronizÄÅ”anas datu apjoms ir labs, ja nav proporcionÄls Ŕī skaitļa kvadrÄtam.
KÄ reizinot izmantoto DBVS skaitu, palielinÄs katras izmantotÄs DBVS uzÅÄmuma raksturlielumu (mÄrogojamÄ«ba, kļūdu tolerance, augsta pieejamÄ«ba) nodroÅ”inÄÅ”anas izmaksas.
Nav iespÄjams nodroÅ”inÄt visas krÄtuves apakÅ”sistÄmas uzÅÄmuma Ä«paŔības - Ä«paÅ”i transakciju.
No zoodÄrza direktora viedokļa viss izskatÄs Å”Ädi:
DaudzkÄrtÄjs licenÄu izmaksu pieaugums un DBVS ražotÄja tehniskais atbalsts.
PÄrmÄrÄ«gs darbinieku skaits un pagarinÄti termiÅi.
TieÅ”ie finansiÄlie zaudÄjumi vai sodi datu neatbilstÄ«bas dÄļ.
SistÄmas kopÄjÄs Ä«paÅ”umtiesÄ«bu izmaksas (TCO) ir ievÄrojami palielinÄjuÅ”Äs. Vai ir kÄda izeja no āvairÄku uzglabÄÅ”anas iespÄjuā situÄcijas?
Daudzmodelis
Termins ādaudzfaktoru krÄtuveā tika lietots 2011. gadÄ. Pieejas problÄmu apzinÄÅ”anÄs un risinÄjuma meklÄÅ”ana ilga vairÄkus gadus, un lÄ«dz 2015. gadam ar Gartner analÄ«tiÄ·u mutÄm tika formulÄta atbilde:
VadoÅ”Äs operatÄ«vÄs DBVS piedÄvÄs vairÄkus modeļus ā relÄciju un nerelÄciju ā kÄ daļu no vienas platformas.
Å Ä·iet, ka Å”oreiz Gartner analÄ«tiÄ·iem bija taisnÄ«ba ar savÄm prognozÄm. Ja dodaties uz lapu ar galvenais vÄrtÄjums DBVS uz DB-Engines, jÅ«s to varat redzÄtŠ¾LielÄkÄ daļa tÄs vadÄ«tÄju sevi pozicionÄ kÄ vairÄku modeļu DBVS. To paÅ”u var redzÄt lapÄ ar jebkuru privÄtu vÄrtÄjumu.
ZemÄk esoÅ”ajÄ tabulÄ ir parÄdÄ«ta DBVS ā katra privÄtÄ reitinga lÄ«deri, kas pretendÄ uz vairÄku modeļu modeli. Katrai DBVS ir norÄdÄ«ts sÄkotnÄjais atbalstÄ«tais modelis (kas kÄdreiz bija vienÄ«gais) un kopÄ ar to paÅ”laik atbalstÄ«tie modeļi. UzskaitÄ«tas arÄ« DBVS, kas sevi pozicionÄ kÄ āsÄkotnÄji vairÄku modeļuā un, pÄc veidotÄju domÄm, tÄm nav sÄkotnÄji mantota modeļa.
DBVS
SÄkotnÄjais modelis
Papildu modeļi
OrÄkuls
RelÄciju
Grafiks, dokuments
MS SQL
RelÄciju
Grafiks, dokuments
PostgreSQL
RelÄciju
Grafiks*, dokuments
MarkLogic
DokumentÄlÄ filma
Grafiks, relÄciju
MongoDB
DokumentÄlÄ filma
AtslÄgas vÄrtÄ«ba, diagramma*
DataStax
Plata kolonna
DokumentÄlÄ filma, grafiks
Redis
AtslÄgas vÄrtÄ«ba
dokumentÄlÄ filma, grafiks*
ArangoDB
SÄkot no
Grafiks, dokuments
OrientDB
SÄkot no
Grafiks, dokuments, relÄciju
Azure CosmosDB
SÄkot no
Grafiks, dokuments, relÄciju
Piezīmes uz galda
Ar zvaigznÄ«tÄm tabulÄ tiek atzÄ«mÄti apgalvojumi, kuriem nepiecieÅ”amas atrunas:
PostgreSQL DBVS neatbalsta diagrammas datu modeli, taÄu Å”is produkts to atbalsta pamatojoties uz to, piemÄram, AgensGraph.
SaistÄ«bÄ ar MongoDB ir pareizÄk runÄt par grafiku operatoru klÄtbÅ«tni vaicÄjuma valodÄ ($lookup, $graphLookup) nekÄ par grafika modeļa atbalstÄ«Å”anu, lai gan, protams, to ievieÅ”ana prasÄ«ja dažas optimizÄcijas fiziskÄs krÄtuves lÄ«menÄ« grafika modeļa atbalsta virzienÄ.
SaistÄ«bÄ ar Redis mÄs domÄjam paplaÅ”inÄjumu RedisGraph.
TÄlÄk, katrai no klasÄm, mÄs parÄdÄ«sim, kÄ atbalsts vairÄkiem modeļiem tiek Ä«stenots DBVS no Ŕīs klases. MÄs uzskatÄ«sim relÄciju, dokumentu un grafiku modeļus par vissvarÄ«gÄkajiem un izmantosim konkrÄtu DBVS piemÄrus, lai parÄdÄ«tu, kÄ tiek Ä«stenoti ātrÅ«kstoÅ”ieā.
VairÄku modeļu DBVS, kuru pamatÄ ir relÄciju modelis
PaÅ”laik vadoÅ”Äs DBVS ir relÄcijas; Gartnera prognozi nevarÄtu uzskatÄ«t par patiesÄm, ja RDBVS neuzrÄdÄ«tu kustÄ«bu vairÄku modelÄÅ”anas virzienÄ. Un viÅi demonstrÄ. Tagad domu, ka vairÄku modeļu DBVS ir kÄ Å veices nazis, kas neko labu nevar izdarÄ«t, var novirzÄ«t tieÅ”i uz Leriju Elisonu.
Autors tomÄr dod priekÅ”roku vairÄku modelÄÅ”anas ievieÅ”anai Microsoft SQL Server, uz kura piemÄra tiks aprakstÄ«ts RDBMS atbalsts dokumentu un grafiku modeļiem.
Veids, kÄ atbalstÄ«t dokumentu modeli MS SQL Server, ir diezgan tipisks relÄciju DBVS: JSON dokumentus tiek piedÄvÄts glabÄt parastos teksta laukos. Dokumenta modeļa atbalsts ir nodroÅ”inÄt Ä«paÅ”us operatorus Ŕī JSON parsÄÅ”anai:
JSON_VALUE lai iegÅ«tu skalÄro atribÅ«tu vÄrtÄ«bas,
Otrais abu operatoru arguments ir izteiksme JSONPath lÄ«dzÄ«gÄ sintaksÄ.
Abstrakti, mÄs varam teikt, ka Å”Ädi glabÄtie dokumenti atŔķirÄ«bÄ no relÄciju DBVS nav āpirmÄs klases entÄ«tijasā. KonkrÄti, MS SQL Server paÅ”laik nav indeksu JSON dokumentu laukos, kas apgrÅ«tina tabulu savienoÅ”anu, izmantojot Å”o lauku vÄrtÄ«bas, un pat atlasÄ«t dokumentus, izmantojot Ŕīs vÄrtÄ«bas. TomÄr Å”Ädam laukam ir iespÄjams izveidot aprÄÄ·inÄtu kolonnu un indeksu uz tÄ.
TurklÄt MS SQL Server nodroÅ”ina iespÄju Ärti izveidot JSON dokumentu no tabulu satura, izmantojot operatoru FOR JSON PATH - iespÄja noteiktÄ nozÄ«mÄ, kas ir pretÄja iepriekÅ”Äjai, parastajai uzglabÄÅ”anai. Ir skaidrs, ka neatkarÄ«gi no tÄ, cik Ätra ir RDBVS, Ŕī pieeja ir pretrunÄ ar dokumentu DBVS ideoloÄ£iju, kas bÅ«tÄ«bÄ glabÄ gatavas atbildes uz populÄriem vaicÄjumiem, un var atrisinÄt tikai izstrÄdes viegluma, bet ne Ätruma problÄmas.
Visbeidzot, MS SQL Server ļauj atrisinÄt pretÄju dokumentu veidoÅ”anas problÄmu: varat sadalÄ«t JSON tabulÄs, izmantojot OPENJSON. Ja dokuments nav pilnÄ«bÄ plakans, jums bÅ«s jÄizmanto CROSS APPLY.
Grafika modelis MS SQL Server
Grafika (LPG) modeļa atbalsts ir pilnÄ«bÄ ieviests arÄ« Microsoft SQL Server paredzams: Tiek ierosinÄts izmantot Ä«paÅ”as tabulas mezglu un grafu malu saglabÄÅ”anai. Å Ädas tabulas tiek veidotas, izmantojot izteiksmes CREATE TABLE AS NODE Šø CREATE TABLE AS EDGE attiecÄ«gi.
PirmÄ tipa tabulas ir lÄ«dzÄ«gas parastajÄm tabulÄm ierakstu glabÄÅ”anai, un vienÄ«gÄ ÄrÄjÄ atŔķirÄ«ba ir tÄ, ka tabulÄ ir sistÄmas lauks $node_id ā datu bÄzÄ esoÅ”Ä grafika mezgla unikÄlais identifikators.
LÄ«dzÄ«gi otrÄ tipa tabulÄm ir sistÄmas lauki $from_id Šø $to_id, ieraksti Å”ÄdÄs tabulÄs skaidri definÄ savienojumus starp mezgliem. Katra veida attiecÄ«bu glabÄÅ”anai tiek izmantota atseviŔķa tabula.
IlustrÄsim to ar piemÄru. Ä»aujiet diagrammas datiem izveidot tÄdu izkÄrtojumu, kÄds parÄdÄ«ts attÄlÄ. PÄc tam, lai izveidotu atbilstoÅ”o struktÅ«ru datu bÄzÄ, ir jÄizpilda Å”Ädi DDL vaicÄjumi:
CREATE TABLE Person (
ID INTEGER NOT NULL,
name VARCHAR(100)
) AS NODE;
CREATE TABLE Cafe (
ID INTEGER NOT NULL,
name VARCHAR(100),
) AS NODE;
CREATE TABLE likes (
rating INTEGER
) AS EDGE;
CREATE TABLE friendOf
AS EDGE;
ALTER TABLE likes
ADD CONSTRAINT EC_LIKES CONNECTION (Person TO Cafe);
Å Ädu tabulu galvenÄ specifika ir tÄda, ka pret tÄm vÄrstos vaicÄjumos ir iespÄjams izmantot grafu modeļus ar Å”ifrÄÅ”anai lÄ«dzÄ«gu sintaksi (tomÄr ā*"u.c. vÄl netiek atbalstÄ«ti). Pamatojoties uz veiktspÄjas mÄrÄ«jumiem, var arÄ« pieÅemt, ka veids, kÄdÄ dati tiek glabÄti Å”ajÄs tabulÄs, atŔķiras no datu glabÄÅ”anas veida parastajÄs tabulÄs un ir optimizÄti Å”Ädu grafiku vaicÄjumu izpildei.
SELECT Cafe.name
FROM Person, likes, Cafe
WHERE MATCH (Person-(friendOf)-(likes)->Cafe)
AND Person.name = 'John';
TurklÄt, strÄdÄjot ar Å”ÄdÄm tabulÄm, ir diezgan grÅ«ti neizmantot Å”os grafiku modeļus, jo parastos SQL vaicÄjumos, lai atrisinÄtu lÄ«dzÄ«gas problÄmas, bÅ«s jÄpieliek papildu pÅ«les, lai iegÅ«tu sistÄmas āgrafaā mezglu identifikatorus ($node_id, $from_id, $to_id; TÄ paÅ”a iemesla dÄļ datu ievietoÅ”anas vaicÄjumi Å”eit netiek parÄdÄ«ti, jo tie ir nevajadzÄ«gi apgrÅ«tinoÅ”i).
Apkopojot MS SQL Server dokumentu un grafu modeļu realizÄcijas aprakstu, jÄatzÄ«mÄ, ka Å”Ädas viena modeļa ievieÅ”anas virs otra neŔķiet veiksmÄ«gas, pirmkÄrt no valodas dizaina viedokļa. Ir nepiecieÅ”ams paplaÅ”inÄt vienu valodu ar citu, valodas nav pilnÄ«bÄ āortogonÄlasā, saderÄ«bas noteikumi var bÅ«t diezgan dÄ«vaini.
VairÄku modeļu DBVS, pamatojoties uz dokumenta modeli
Å ajÄ sadaÄ¼Ä es vÄlos ilustrÄt vairÄku modeļu ievieÅ”anu dokumentu DBVS, izmantojot ne vispopulÄrÄkÄs no tÄm MongoDB piemÄru (kÄ tika teikts, tajÄ ir tikai nosacÄ«juma grafiku operatori $lookup Šø $graphLookup, nestrÄdÄjot ar sadalÄ«tÄm kolekcijÄm), bet izmantojot nobrieduÅ”Äkas un āuzÅÄmumaā DBVS piemÄru. MarkLogic.
TÄtad, ļaujiet kolekcijÄ ietvert Å”Äda veida XML dokumentu kopu (MarkLogic ļauj saglabÄt arÄ« JSON dokumentus):
Dokumentu kolekcijas relÄciju skatu var izveidot, izmantojot displeja veidne (elementu saturs value tÄlÄk esoÅ”ajÄ piemÄrÄ var bÅ«t patvaļīgs XPath):
Izveidoto skatu var adresÄt ar SQL vaicÄjumu (piemÄram, izmantojot ODBC):
SELECT name, surname FROM Person WHERE name="John"
DiemžÄl displeja veidnes izveidotais relÄciju skats ir tikai lasÄms. ApstrÄdÄjot pieprasÄ«jumu, MarkLogic mÄÄ£inÄs izmantot dokumentu indeksi. IepriekÅ” MarkLogic bija pilnÄ«bÄ ierobežoti relÄciju uzskati pamatojoties uz indeksu un rakstÄmi, bet tagad tie tiek uzskatÄ«ti par novecojuÅ”iem.
Grafika modelis programmÄ MarkLogic
Ar grafiku (RDF) modeļa atbalstu viss ir aptuveni vienÄds. Atkal ar palÄ«dzÄ«bu displeja veidne jÅ«s varat izveidot dokumentu kolekcijas RDF attÄlojumu, izmantojot iepriekÅ” minÄto piemÄru:
AtŔķirÄ«bÄ no relÄciju modeļa, MarkLogic atbalsta diagrammas modeli divos citos veidos:
DBVS var bÅ«t pilnvÄrtÄ«ga atseviŔķa RDF datu krÄtuve (trÄ«nÄ«Å”i tajÄ tiks saukti pÄrvalda atŔķirÄ«bÄ no iepriekÅ” aprakstÄ«tajiem ekstrahÄts).
RDF Ä«paÅ”Ä serializÄcijÄ var vienkÄrÅ”i ievietot XML vai JSON dokumentos (un tripleti tiks saukti nepÄrvaldÄ«ts). TÄ, iespÄjams, ir alternatÄ«va mehÄnismiem idref uc
Labu priekÅ”statu par to, kÄ lietas āpatiesÄ«bÄā darbojas MarkLogic, sniedz OptiskÄ API, Å”ajÄ ziÅÄ tas ir zema lÄ«meÅa, lai gan tÄ mÄrÄ·is ir drÄ«zÄk pretÄjs - mÄÄ£inÄt abstrahÄties no izmantotÄ datu modeļa, nodroÅ”inÄt konsekventu darbu ar datiem dažÄdos modeļos, transakciju u.c.
VairÄku modeļu DBVS ābez galvenÄ modeļaā
TirgÅ« ir arÄ« DBVS, kas sevi pozicionÄ kÄ sÄkotnÄji vairÄku modeļu, bez mantota galvenÄ modeļa. Tie ietver ArangoDB, OrientDB (kopÅ” 2018. gada izstrÄdes uzÅÄmums pieder SAP) un CosmosDB (pakalpojums kÄ daļa no Microsoft Azure mÄkoÅa platformas).
Faktiski ArangoDB un OrientDB ir āpamataā modeļi. Abos gadÄ«jumos tie ir savi datu modeļi, kas ir dokumenta vispÄrinÄjumi. VispÄrinÄjumi galvenokÄrt ir paredzÄti, lai atvieglotu spÄju veikt grafiku un relÄciju vaicÄjumus.
Å ie modeļi ir vienÄ«gie, kas ir pieejami lietoÅ”anai norÄdÄ«tajÄ DBVS; viÅu paÅ”u vaicÄjumu valodas ir paredzÄtas darbam ar tiem. Protams, Å”Ädi modeļi un DBVS ir daudzsoloÅ”i, taÄu saderÄ«bas trÅ«kums ar standarta modeļiem un valodÄm padara neiespÄjamu Å”o DBVS izmantot mantotÄs sistÄmÄs, lai aizstÄtu tur jau izmantotÄs DBVS.
ArangoDB apgalvo, ka atbalsta grafiku datu modeli.
Grafika mezgli ArangoDB ir parastie dokumenti, bet malas ir Ä«paÅ”a veida dokumenti, kuriem kopÄ ar parastajiem sistÄmas laukiem ir (_key, _id, _rev) sistÄmas lauki _from Šø _to. Dokumenti dokumentu DBVS tradicionÄli tiek apvienoti kolekcijÄs. Dokumentu kolekcijas, kas attÄlo malas, ArangoDB sauc par malu kolekcijÄm. Starp citu, malu kolekcijas dokumenti arÄ« ir dokumenti, tÄpÄc malas ArangoDB var darboties arÄ« kÄ mezgli.
NeapstrÄdÄti dati
Ä»aujiet mums izveidot kolekciju persons, kura dokumenti izskatÄs Å”Ädi:
Grafika stila vaicÄjums ArangoDB izmantotajÄ AQL valodÄ, kas cilvÄkiem lasÄmÄ veidÄ atgriež informÄciju par to, kam kura kafejnÄ«ca patÄ«k, izskatÄs Å”Ädi:
FOR p IN persons
FOR c IN OUTBOUND p likes
RETURN { person : p.name , likes : c.name }
RelÄciju stilÄ, kad mÄs āaprÄÄ·inamā attiecÄ«bas, nevis tÄs saglabÄjam, Å”o vaicÄjumu var pÄrrakstÄ«t Å”Ädi (starp citu, bez kolekcijas likes varÄtu iztikt bez):
FOR p IN persons
FOR l IN likes
FILTER p._key == l._from
FOR c IN cafes
FILTER l._to == c._key
RETURN { person : p.name , likes : c.name }
Ja iepriekÅ” minÄtais rezultÄtu formÄts Ŕķiet raksturÄ«gÄks relÄciju DBVS, nevis dokumentu DBVS, varat izmÄÄ£inÄt Å”o vaicÄjumu (vai varat izmantot COLLECT):
FOR p IN persons
RETURN {
person : p.name,
likes : (
FOR c IN OUTBOUND p likes
RETURN c.name
)
}
Pamats grafika modeļa ievieÅ”anai virs dokumenta modeļa OrientDB ir iespÄja dokumentu laukos papildus vairÄk vai mazÄk standarta skalÄrajÄm vÄrtÄ«bÄm ir arÄ« tÄdu veidu vÄrtÄ«bas kÄ, piemÄram LINK, LINKLIST, LINKSET, LINKMAP Šø LINKBAG. Å o veidu vÄrtÄ«bas ir saites vai saiÅ”u kolekcijas uz sistÄmas identifikatori dokumentus.
SistÄmas pieŔķirtajam dokumenta identifikatoram ir āfiziska nozÄ«meā, kas norÄda ieraksta pozÄ«ciju datu bÄzÄ, un tas izskatÄs apmÄram Å”Ädi: @rid : #3:16. TÄdÄjÄdi atsauces Ä«paŔību vÄrtÄ«bas patieÅ”Äm ir norÄdes (kÄ grafika modelÄ«), nevis atlases nosacÄ«jumi (kÄ relÄciju modelÄ«).
TÄpat kÄ ArangoDB, arÄ« OrientDB malas tiek attÄlotas kÄ atseviŔķi dokumenti (lai gan, ja malai nav savu rekvizÄ«tu, to var izveidot viegls, un tas neatbildÄ«s atseviŔķam dokumentam).
NeapstrÄdÄti dati
FormÄtÄ, kas tuvs izgÄztuves formÄts OrientDB datubÄze, dati no iepriekÅ”ÄjÄ ArangoDB piemÄra izskatÄ«tos apmÄram Å”Ädi:
KÄ redzam, virsotnes glabÄ informÄciju arÄ« par ienÄkoÅ”ajÄm un izejoÅ”ajÄm malÄm. Plkst izmantojot Dokumentu API paÅ”ai ir jÄuzrauga atsauces integritÄte, un Graph API uzÅemas Å”o darbu. Bet paskatÄ«simies, kÄ izskatÄs piekļuve OrientDB ātÄ«rajÄsā vaicÄjumu valodÄs, kas nav integrÄtas programmÄÅ”anas valodÄs.
VaicÄjumi un rezultÄti
VaicÄjums, kas pÄc mÄrÄ·a ir lÄ«dzÄ«gs vaicÄjumam no ArangoDB piemÄra OrientDB, izskatÄs Å”Ädi:
SELECT name AS person_name, OUT('likes').name AS cafe_name
FROM Person
UNWIND cafe_name
OrientDB vaicÄjumu valodu var raksturot kÄ SQL ar Gremlin lÄ«dzÄ«giem ieliktÅiem. VersijÄ 2.2 parÄdÄ«jÄs Å”ifram lÄ«dzÄ«ga pieprasÄ«juma veidlapa, MATCH :
MATCH {CLASS: Person, AS: person}-likes->{CLASS: Cafe, AS: cafe}
RETURN person.name AS person_name, LIST(cafe.name) AS cafe_name
GROUP BY person_name
RezultÄta formÄts bÅ«s tÄds pats kÄ iepriekÅ”ÄjÄ pieprasÄ«jumÄ. PadomÄjiet par to, kas ir jÄnoÅem, lai padarÄ«tu to ārelÄcijuā, tÄpat kÄ pirmajÄ vaicÄjumÄ.
Azure CosmosDB
MazÄkÄ mÄrÄ iepriekÅ” teiktais par ArangoDB un OrientDB attiecas uz Azure CosmosDB. CosmosDB nodroÅ”ina Å”Ädas datu piekļuves API: SQL, MongoDB, Gremlin un Cassandra.
SQL API un MongoDB API tiek izmantotas, lai piekļūtu datiem dokumenta modelÄ«. Gremlin API un Cassandra API ā lai piekļūtu datiem attiecÄ«gi grafiku un kolonnu formÄtos. Dati visos modeļos tiek saglabÄti CosmosDB iekÅ”ÄjÄ modeļa formÄtÄ: ARS (āatom-ieraksts-secÄ«baā), kas arÄ« ir tuvu dokumentam.
TaÄu lietotÄja izvÄlÄtais datu modelis un izmantotÄ API ir fiksÄts konta izveides brÄ«dÄ« pakalpojumÄ. Nav iespÄjams piekļūt datiem, kas ielÄdÄti vienÄ modelÄ« cita modeļa formÄtÄ, kÄ to ilustrÄ Å”Ädi:
TÄdÄjÄdi vairÄku modeļu Azure CosmosDB mÅ«sdienÄs ir tikai iespÄja izmantot vairÄkas datu bÄzes, kas atbalsta dažÄdus viena ražotÄja modeļus, kas neatrisina visas vairÄku variantu krÄtuves problÄmas.
VairÄku modeļu DBVS, kuru pamatÄ ir diagrammas modelis?
IevÄrÄ«bas cienÄ«gs ir fakts, ka tirgÅ« vÄl nav nevienas vairÄku modeļu DBVS, kuru pamatÄ ir grafu modelis (izÅemot vairÄku modeļu atbalstu vienlaicÄ«gi diviem grafiku modeļiem: RDF un LPG; skatiet to sadaÄ¼Ä iepriekÅ”ÄjÄ publikÄcija). VislielÄkÄs grÅ«tÄ«bas rada dokumenta modeļa ievieÅ”ana uz grafa modeļa, nevis relÄciju modeļa.
JautÄjums par to, kÄ ieviest relÄciju modeli virs grafa modeļa, tika apsvÄrts pat tÄ veidoÅ”anas laikÄ. KÄ teica, piemÄram, Deivids Makgoverns:
Grafika pieejai nav nekas raksturÄ«gs, kas neļautu izveidot slÄni (piem., izmantojot atbilstoÅ”u indeksÄciju) grafiku datu bÄzÄ, kas nodroÅ”ina relÄciju skatu ar (1) korežu atkopÅ”anu no parastajiem atslÄgu vÄrtÄ«bu pÄriem un (2) grupÄÅ”anu korteži pÄc attiecÄ«bu veida.
IevieÅ”ot dokumenta modeli virs diagrammas modeļa, jums jÄpatur prÄtÄ, piemÄram, tÄlÄk norÄdÄ«tais.
JSON masÄ«va elementi tiek uzskatÄ«ti par sakÄrtotiem, bet tie, kas izplÅ«st no diagrammas malas virsotnes, netiek uzskatÄ«ti;
Dati dokumenta modelÄ« parasti ir denormalizÄti; jÅ«s joprojÄm nevÄlaties saglabÄt vairÄkas viena un tÄ paÅ”a iegultÄ dokumenta kopijas, un apakÅ”dokumentiem parasti nav identifikatoru;
No otras puses, dokumentu DBVS ideoloÄ£ija ir tÄda, ka dokumenti ir gatavi āagregÄtiā, kas nav katru reizi jÄveido no jauna. Grafa modelim ir jÄnodroÅ”ina iespÄja Ätri iegÅ«t gatavajam dokumentam atbilstoÅ”u apakÅ”grafu.
Kaut kÄda reklÄma
Raksta autors ir saistÄ«ts ar NitrosBase DBVS izstrÄdi, kuras iekÅ”Äjais modelis ir grafs, bet ÄrÄjie modeļi - relÄciju un dokumentu - ir tÄ reprezentÄcijas. Visi modeļi ir vienÄdi: gandrÄ«z visi dati ir pieejami jebkurÄ no tiem, izmantojot tai dabisku vaicÄjumu valodu. TurklÄt jebkurÄ skatÄ datus var mainÄ«t. IzmaiÅas tiks atspoguļotas iekÅ”ÄjÄ modelÄ« un attiecÄ«gi arÄ« citos skatÄ«jumos.
Cerams, ka kÄdÄ no Å”iem rakstiem es aprakstÄ«Å”u, kÄ izskatÄs modeļu saskaÅoÅ”ana programmÄ NitrosBase.
SecinÄjums
Ceru, ka lasÄ«tÄjam ir kļuvuÅ”as vairÄk vai mazÄk skaidras vispÄrÄ«gÄs aprises tam, ko sauc par multimodelÄÅ”anu. VairÄku modeļu DBVS ir diezgan atŔķirÄ«gas, un āvairÄku modeļu atbalstsā var izskatÄ«ties savÄdÄk. Lai saprastu, ko katrÄ konkrÄtajÄ gadÄ«jumÄ sauc par "vairÄku modeli", ir lietderÄ«gi atbildÄt uz Å”Ädiem jautÄjumiem:
Vai mÄs runÄjam par tradicionÄlo modeļu atbalstÄ«Å”anu vai kÄdu āhibrÄ«doā modeli?
Vai modeļi ir āvienlÄ«dzÄ«giā, vai arÄ« viens no tiem ir citu priekÅ”mets?
Vai modeļi ir vienaldzÄ«gi viens pret otru? Vai vienÄ modelÄ« ierakstÄ«tos datus var nolasÄ«t citÄ vai pat pÄrrakstÄ«t?
DomÄju, ka uz jautÄjumu par vairÄku modeļu DBVS aktualitÄti jau Å”obrÄ«d var atbildÄt pozitÄ«vi, taÄu interesants ir jautÄjums, kÄdi to veidi tuvÄkajÄ laikÄ bÅ«s pieprasÄ«tÄki. Å Ä·iet, ka vairÄku modeļu DBVS, kas atbalsta tradicionÄlos modeļus, galvenokÄrt relÄciju, bÅ«s pieprasÄ«tÄks; VairÄku modeļu DBVS popularitÄte, piedÄvÄjot jaunus modeļus, kas apvieno dažÄdu tradicionÄlo priekÅ”rocÄ«bas, ir tÄlÄkas nÄkotnes jautÄjums.
AptaujÄ var piedalÄ«ties tikai reÄ£istrÄti lietotÄji. Ielogoties, lÅ«dzu.
Vai izmantojat vairÄku modeļu DBVS?
MÄs to neizmantojam, mÄs visu glabÄjam vienÄ DBVS un vienÄ modelÄ«