He tino uaua nga punaha korero hou. Ehara i te mea iti rawa, ko to raatau uaua na te uaua o nga raraunga i tukatukahia i roto. Ko te uaua o nga raraunga kei te maha o nga momo tauira raraunga e whakamahia ana. Na, hei tauira, ka "nui" te raraunga, ko tetahi o nga ahuatanga raruraru ehara i te mea ko tona rōrahi anake ("rōrahi"), engari ko tona momo ("momo").
Mena kaore ano kia kitea e koe he koha i roto i te whakaaro, panuihia.

Tuhinga
Te tohenga polyglot
Ko nga korero o runga ake nei ka puta mai i etahi wa ahakoa i roto i te anga o te punaha kotahi me whakamahi etahi momo DBMS hei penapena raraunga me te whakaoti rapanga maha o te tukatuka, kei te tautoko ia o raatau ake tauira raraunga. Ma te ringa marama o M. Fowler, he maha nga pukapuka rongonui me tetahi o Agile Manifesto, ka kiia tenei ahuatanga rokiroki maha-rereke (“te manawanui polyglot”).
Kei a Fowler ano te tauira e whai ake nei mo te whakahaere i te rokiroki raraunga i roto i te tono tino whai kiko me te utaina nui i roto i te mara o te hokohoko-e.

Ko tenei tauira, ko te tikanga, he ahua whakanui ake, engari ka kitea etahi whakaaro mo te whiriwhiri i tetahi, tetahi atu DBMS mo te kaupapa e rite ana, hei tauira, .
E marama ana ehara i te mea ngawari te noho hei pononga i roto i taua kararehe.
- Ko te nui o te waehere e mahi ana i te rokiroki raraunga ka piki ake ki te maha o nga DBMS e whakamahia ana; he pai te nui o nga raraunga tukutahi waehere ki te kore e rite ki te tapawha o tenei tau.
- I te maha o te maha o nga DBMS i whakamahia, ka piki ake nga utu mo te whakarato i nga ahuatanga hinonga (te whakahiatotanga, te pai o te he, te waatea nui) o ia DBMS i whakamahia.
- Kaore e taea te whakarite i nga ahuatanga hinonga o te punaha rokiroki katoa - ina koa te whakawhitiwhitinga.
Mai i te tirohanga a te kaiwhakahaere kararehe, he penei te ahua o nga mea katoa:
- He pikinga maha o te utu mo nga raihana me te tautoko hangarau mai i te kaihanga DBMS.
- Te nui o nga kaimahi me te whakanui ake i nga wa kati.
- Ko nga mate putea me nga whiunga tika na te koretake o nga raraunga.
He nui te pikinga o te utu katoa o te mana pupuri (TCO) o te punaha. He huarahi kei waho i te ahuatanga o "nga whiringa rokiroki maha"?
Tauira-maha
I te tau 2011 ka whakamahia te kupu "putea maha. Ko te mohio ki nga raruraru o te huarahi me te rapu otinga he maha nga tau, a, i te tau 2015, na roto i nga mangai o nga kaitätari o Gartner, i hangaia te whakautu:
- Mai i ""
Ko te heke mai o nga DBMS, o raatau hoahoanga me o raatau whakamahi he tauira-maha.
- Mai i ""
Ka tukuna e nga DBMS whakahaere nga tauira maha-te hononga me te hononga-kore-hei waahanga o te papaahi kotahi.
Ko te ahua i tenei wa i tika nga kaitätari o Gartner ki ta raatau matapae. Ki te haere koe ki te wharangi me DBMS i runga i nga DB-Engines, ka kite koe i teraоKo te nuinga o ana kaihautu e tuu motuhake ana hei DBMS tauira maha. Ka kitea ano i runga i te wharangi me tetahi whakatauranga motuhake.
Ko te ripanga i raro nei e whakaatu ana i te DBMS - nga kaihautu i ia o nga whakatauranga motuhake, e kii ana he maha nga tauira. Mo ia DBMS, ka tohuhia te tauira tautoko taketake (kotahi anake) me nga tauira e tautokohia ana i tenei wa. Kua whakarārangihia hoki ko nga DBMS e whakatau ana i a ratou ano hei "tauira maha o mua" a, e ai ki nga kaihanga, kaore he tauira tuku iho tuatahi.
| DBMS | tauira tuatahi | Nga tauira taapiri |
|---|---|---|
| Oracle | Whanaungatanga | Kauwhata, tuhinga |
| MS SQL | Whanaungatanga | Kauwhata, tuhinga |
| PostgreSQL | Whanaungatanga | Kauwhata*, tuhinga |
| MarkLogic | Tuhinga | Kauwhata, hononga |
| MongoDB | Tuhinga | Uara-matua, kauwhata* |
| RapuWhakaahua | Tīwae-whānui | Tuhinga, kauwhata |
| Redis | Uara-matua | Tuhinga, kauwhata* |
| ArangoDB | - | Kauwhata, tuhinga |
| OrientDB | - | Kauwhata, tuhinga, hononga |
| Azure CosmosDB | - | Kauwhata, tuhinga, hononga |
Nga korero kei runga tepu
Ko nga whetūriki kei te ripanga ka tohu i nga korero me rahuitia:
- Kaore te PostgreSQL DBMS e tautoko i te tauira raraunga kauwhata, engari kei te tautoko tenei hua , penei i AgensGraph.
- E pa ana ki a MongoDB, he pai ake te korero mo te noho o nga kaitoro kauwhata i roto i te reo patai (, ) engari mo te tautoko i te tauira kauwhata, ahakoa, ko te tikanga, ko ta raatau whakaurunga i hiahia etahi arotautanga i te taumata rokiroki tinana ki te tautoko i te tauira kauwhata.
- Mo te taha ki a Redis, ko ta matou tikanga ko te toronga .
I muri mai, mo ia karaehe, ka whakaatu me pehea te whakatinanatanga o te tautoko mo etahi tauira i roto i te DBMS mai i tenei akomanga. Ka whakaarohia e matou nga tauira hononga, tuhinga me te kauwhata hei mea tino nui me te whakamahi i nga tauira o nga DBMS motuhake hei whakaatu me pehea te whakatinanatanga o nga "mea ngaro".
DBMS maha-tauira i runga i te tauira hononga
Ko nga DBMS rangatira i tenei wa he hononga; Kare e taea te whakaaro pono te matapae a Gartner mena karekau nga RDBMS i whakaatu neke ki te huarahi o te whakatauira maha. Na ka whakaatu ratou. Inaianei ko te whakaaro ko te DBMS maha-tauira he rite ki te maripi Swiss, kaore e taea te mahi pai, ka taea te tuku tika ki a Larry Ellison.
Ko te kaituhi, he pai ake ki te whakatinana i nga tauira-maha i roto i te Microsoft SQL Server, i runga i te tauira o te tautoko a te RDBMS mo nga tuhinga me nga tauira kauwhata ka whakaahuahia.
Tauira tuhinga i roto i te MS SQL Server
E rua nga tuhinga pai mo Habré mo te whakatinanatanga a MS SQL Server i te tautoko mo te tauira tuhinga; Ka whakawhāiti ahau ki te korero poto me te korero:
Ko te huarahi ki te tautoko i te tauira tuhinga i roto i te MS SQL Server he tino angamaheni mo nga DBMS hononga: Ko nga tuhinga JSON e whakaarohia ana kia rongoa ki nga mara kuputuhi noa. Ko te tautoko mo te tauira tuhinga ko te whakarato i nga kaiwhakahaere motuhake ki te tarai i tenei JSON:
- ki te tango i nga uara huanga tauine,
- ki te tango i nga tuhinga iti.
Ko te tohenga tuarua o nga kaiwhakahaere e rua he korero i roto i te JSONPath-like syntax.
Ma te poto, ka taea e tatou te kii ko nga tuhinga kei te rongoa penei ehara i te "hinonga akomanga tuatahi" i roto i te DBMS hononga, kaore i rite ki nga tuples. Inaa, i roto i te MS SQL Server i tenei wa kaore he tohu i runga i nga mara o nga tuhinga JSON, he uaua ki te whakauru ki nga ripanga ma te whakamahi i nga uara o enei mara me te kowhiri i nga tuhinga ma te whakamahi i enei uara. Heoi, ka taea te hanga i tetahi pou tatau mo taua mara me te taurangi ki runga.
I tua atu, ka whakaratohia e MS SQL Server te kaha ki te hanga i tetahi tuhinga JSON mai i nga ihirangi o nga ripanga ma te whakamahi i te kaiwhakahaere. - he pea, i roto i tetahi tikanga, te ritenga atu ki te o mua, rokiroki tikanga. E marama ana ahakoa pehea te tere o te RDBMS, e whakahē ana tenei huarahi ki te whakaaro o nga tuhinga DBMS, e penapena ana i nga whakautu kua rite ki nga patai rongonui, ka taea anake te whakaoti rapanga o te ngawari o te whanaketanga, engari kaore i te tere.
Ka mutu, ka taea e MS SQL Server te whakaoti i te raru rereke o te hanga tuhinga: ka taea e koe te tihorea a JSON ki nga ripanga ma te whakamahi . Mena kaore i te tino papatahi te tuhinga, me whakamahi koe CROSS APPLY.
Tauira kauwhata i roto i te MS SQL Server
Ko te tautoko mo te tauira kauwhata (LPG) ka tino whakatinanahia ki te Microsoft SQL Server : E whakaarohia ana kia whakamahia he ripanga motuhake hei penapena i nga pona me te penapena tapa kauwhata. Ka hangaia enei ripanga ma te whakamahi i nga korero CREATE TABLE AS NODE и CREATE TABLE AS EDGE Tuhinga.
Ko nga ripanga o te momo tuatahi he rite ki nga ripanga noa mo te penapena rekoata, ko te rereketanga o waho anake ko te ripanga kei roto he mara punaha. $node_id — te tautohu ahurei o te node kauwhata i roto i te papaa raraunga.
Waihoki, ko nga ripanga o te momo tuarua he mara punaha $from_id и $to_id, ko nga urunga kei roto i enei ripanga ka tino whakamarama i nga hononga i waenga i nga pona. Ka whakamahia he ripanga motuhake hei penapena hononga o ia momo.
Kia whakaatu tatou i tenei ki tetahi tauira. Tukuna kia whai tahora nga raraunga kauwhata penei i te ahua o te ahua. Na ki te hanga i te hanganga e rite ana ki te paataka raraunga me whakahaere e koe nga patai DDL e whai ake nei:
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);Ko te tino motuhake o enei ripanga ko nga patai ki a raatau ka taea te whakamahi i nga tauira kauwhata me te syntax rite ki a Cypher (heoi, "*"etahi atu kaore ano kia tautokona). I runga i nga inenga mahi, ka taea hoki te whakaaro he rereke te ahua o te penapena raraunga ki enei ripanga mai i te ahua o te penapena raraunga i roto i nga ripanga auau me te arotau mo te whakahaere i nga uiui kauwhata.
SELECT Cafe.name
FROM Person, likes, Cafe
WHERE MATCH (Person-(friendOf)-(likes)->Cafe)
AND Person.name = 'John';I tua atu, he tino uaua ki te kore e whakamahi i enei tauira kauwhata i te wa e mahi ana me enei ripanga, na te mea i roto i nga uiui SQL noa ki te whakaoti rapanga rite, me whakapau kaha ki te tiki tohu tohu "kauwhata" o te punaha ($node_id, $from_id, $to_id; Mo taua take ano, ko nga patai mo te whakauru raraunga kaore i te whakaatuhia ki konei na te mea he tino uaua).
Hei whakarāpopoto i te whakaahuatanga o nga whakatinanatanga o te tuhinga me nga tauira kauwhata i roto i te MS SQL Server, ka kite ahau ko enei whakatinanatanga o tetahi tauira ki runga ake o tetahi kaore i te angitu, i te tuatahi mai i te tirohanga o te hoahoa reo. He mea tika ki te whakawhānui i tetahi reo ki tetahi atu, ko nga reo kaore i te tino "orthogonal", he rereke nga ture hototahi.
DBMS maha-tauira i runga i te tauira tuhinga
I roto i tenei waahanga, e hiahia ana ahau ki te whakaatu i te whakatinanatanga o nga tauira maha i roto i nga tuhinga DBMS ma te whakamahi i te tauira o te mea kaore i tino rongonui, ko MongoDB (i te mea i kii, he kaiwhakahaere kauwhata here anake. $lookup и $graphLookup, kaore i te mahi i runga i nga kohinga maru), engari ma te whakamahi i te tauira o te DBMS pakeke ake me te "hinonga" .
Na, kia mau ki te kohinga he huinga tuhinga XML o te momo e whai ake nei (ka taea hoki e MarkLogic te penapena tuhinga JSON):
<Person INN="631803299804">
<name>John</name>
<surname>Smith</surname>
</Person>Tauira hononga i MarkLogic
Ka taea te hanga i te tirohanga hononga o te kohinga tuhinga ma te whakamahi (nga ihirangi o nga huānga value i roto i te tauira i raro nei ka taea he XPath noa):
<template >
<context>/Person</context>
<rows>
<row>
<view-name>Person</view-name>
<columns>
<column>
<name>SSN</name>
<value>@SSN</value>
<type>string</type>
</column>
<column>
<name>name</name>
<value>name</value>
</column>
<column>
<name>surname</name>
<value>surname</value>
</column>
</columns>
</row>
<rows>
</template>Ka taea e koe te whakatika i te tirohanga i hangaia me te patai SQL (hei tauira, ma ODBC):
SELECT name, surname FROM Person WHERE name="John"Heoi, ko te tirohanga hononga i hangaia e te tauira whakaatu he panui-anake. I te wa e tukatuka ana i tetahi tono, ka ngana a MarkLogic ki te whakamahi . I mua, he iti noa nga tirohanga whanaungatanga a MarkLogic ka taea te tuhi, engari inaianei kua kiia kua kore e whakamahia.
Tauira kauwhata i MarkLogic
Ma te tautoko mo te tauira kauwhata (RDF), he rite tonu nga mea katoa. Ano ano me te awhina Ka taea e koe te hanga i tetahi whakaaturanga RDF o te kohinga tuhinga mai i te tauira i runga ake nei:
<template >
<context>/Person</context>
<vars>
<var>
<name>PREFIX</name>
<val>"http://example.org/example#"</val>
</var>
</vars>
<triples>
<triple>
<subject><value>sem:iri( $PREFIX || @SSN )</value></subject>
<predicate><value>sem:iri( $PREFIX || surname )</value></predicate>
<object><value>xs:string( surname )</value></object>
</triple>
<triple>
<subject><value>sem:iri( $PREFIX || @SSN )</value></subject>
<predicate><value>sem:iri( $PREFIX || name )</value></predicate>
<object><value>xs:string( name )</value></object>
</triple>
</triples>
</template>Ka taea e koe te whakatika i te kauwhata RDF ka puta me te patai SPARQL:
PREFIX : <http://example.org/example#>
SELECT ?name ?surname {
:631803299804 :name ?name ; :surname ?surname .
}Kaore i rite ki te hononga, ka tautoko a MarkLogic i te tauira kauwhata ma etahi atu huarahi e rua:
- Ka taea e te DBMS te rokiroki motuhake o nga raraunga RDF (ka kiia ko nga taarua kei roto he rereke ki nga korero i runga ake nei ).
- Ko te RDF i roto i te raupapatanga motuhake ka taea te whakauru noa ki roto i nga tuhinga XML, JSON ranei (a ka kiia ko nga taarua toru. ). He rereke pea tenei ki nga miihini
idrefme etahi atu.
He whakaaro pai mo te mahi "tino" i roto i a MarkLogic i homai e , i roto i tenei tikanga, he taumata-iti, ahakoa ko tana kaupapa he rereke - ki te ngana ki te tango mai i te tauira raraunga i whakamahia, ki te whakarite kia rite te mahi me nga raraunga i roto i nga tauira rereke, tauhokohoko, aha atu.
DBMS maha-tauira "kare he tauira matua"
He DBMS ano kei runga i te maakete e tuu ana i a raatau ano he tauira maha i te tuatahi, kaore he tauira matua tuku iho. Kei roto i enei , (mai i te 2018 te kamupene whanaketanga no SAP) me (Ratonga hei waahanga o te papaaho kapua Microsoft Azure).
Inaa, he tauira "matua" kei ArangoDB me OrientDB. I roto i nga take e rua, ko o raatau ake tauira raraunga, he whakawhanui o te tuhinga kotahi. Ko te nuinga o nga whakawhänui ki te whakahaere i te kaha ki te mahi i nga paatai o te kauwhata me te ahua hononga.
Ko enei tauira anake e waatea ana mo te whakamahi i roto i te DBMS kua tohua; ko o raatau ake reo patai i hangaia hei mahi ki a raatau. Ko te tikanga, he pai nga tauira me nga DBMS, engari na te kore hototahi ki nga tauira paerewa me nga reo ka kore e taea te whakamahi i enei DBMS i roto i nga punaha tuku iho—ki te whakakapi i nga DBMS kua whakamahia ki reira.
He tuhinga whakamiharo mo ArangoDB me OrientDB i runga i a Habré: .
ArangoDB
E kii ana a ArangoDB i te tautoko mo te tauira raraunga kauwhata.
Ko nga pona o te kauwhata i ArangoDB he tuhinga noa, a ko nga tapa he tuhinga momo motuhake, me nga mara punaha auau, he (_key, _id, _rev) mara pūnaha _from и _to. Ko nga tuhinga kei roto i nga DBMS tuhinga ka honoa ki nga kohinga. Ko nga kohinga tuhinga e tohu ana i nga taha ka kiia ko nga kohinga taha i ArangoDB. Ma te ara, ko nga tuhinga kohinga taha he tuhinga ano, no reira ka taea ano e nga taha o ArangoDB te mahi hei node.
Raw raraunga
Kia whai kohinga tatou persons, he penei te ahua o ana tuhinga:
[
{
"_id" : "people/alice" ,
"_key" : "alice" ,
"name" : "Алиса"
},
{
"_id" : "people/bob" ,
"_key" : "bob" ,
"name" : "Боб"
}
]Me waiho ano he kohinga cafes:
[
{
"_id" : "cafes/jd" ,
"_key" : "jd" ,
"name" : "Джон Донн"
},
{
"_id" : "cafes/jj" ,
"_key" : "jj" ,
"name" : "Жан-Жак"
}
]Katahi te kohinga likes penei pea te ahua:
[
{
"_id" : "likes/1" ,
"_key" : "1" ,
"_from" : "persons/alice" ,
"_to" : "cafes/jd",
"since" : 2010
},
{
"_id" : "likes/2" ,
"_key" : "2" ,
"_from" : "persons/alice" ,
"_to" : "cafes/jj",
"since" : 2011
} ,
{
"_id" : "likes/3" ,
"_key" : "3" ,
"_from" : "persons/bob" ,
"_to" : "cafes/jd",
"since" : 2012
}
]Nga patai me nga hua
He patai ahua kauwhata i roto i te reo AQL e whakamahia ana i ArangoDB, e whakahoki mai ana i nga korero mo te tangata e pai ana ki te kawhe, penei:
FOR p IN persons
FOR c IN OUTBOUND p likes
RETURN { person : p.name , likes : c.name }I roto i te momo hononga, kei te "whakarorohiko" tatou i nga hononga, kaua ki te rongoa, ka taea te tuhi ano tenei patai penei (ma te kore o te kohinga. likes ka taea ki te kore):
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 }Ko te hua mo nga keehi e rua ka rite:
[
{ "person" : "Алиса" , likes : "Жан-Жак" } ,
{ "person" : "Алиса" , likes : "Джон Донн" } ,
{ "person" : "Боб" , likes : "Джон Донн" }
]He maha atu nga patai me nga hua
Mena te ahua o te whakatakotoranga hua i runga ake nei he ahua ake mo te DBMS hononga atu i te tuhinga DBMS, ka taea e koe te whakamatau i tenei patai (ka taea ranei e koe te whakamahi ):
FOR p IN persons
RETURN {
person : p.name,
likes : (
FOR c IN OUTBOUND p likes
RETURN c.name
)
}Ko te hua ka penei te ahua:
[
{ "person" : "Алиса" , likes : ["Жан-Жак" , "Джон Донн"] } ,
{ "person" : "Боб" , likes : ["Джон Донн"] }
]OrientDB
Ko te putake mo te whakatinana tauira kauwhata ki runga ake o te tauira tuhinga i OrientDB ko nga mara tuhinga, hei taapiri atu ki te nui ake iti iho ranei o nga uara scalar paerewa, he uara ano nga momo penei LINK, LINKLIST, LINKSET, LINKMAP и LINKBAG. Ko nga uara o enei momo he hononga, he kohinga hononga ranei ki tuhinga.
Ko te kaitautuhi tuhinga kua tautapahia e te punaha he "ahua tinana", e tohu ana i te tuunga o te rekoata i roto i te paataka raraunga, me te ahua penei: @rid : #3:16. No reira, he tino tohu nga uara o nga taonga tohutoro (penei i te tauira kauwhata) kaua ki nga tikanga whiriwhiri (penei i te tauira hononga).
Pērā i te ArangoDB, ko ngā tapa o OrientDB e tohuhia ana hei tuhinga motuhake (ahakoa mena karekau he ahuatanga o tetahi taha, ka taea te hanga. , a kaore e rite ki tetahi tuhinga motuhake).
Raw raraunga
I roto i te whakatakotoranga tata ki OrientDB pātengi raraunga, ko nga raraunga mai i te tauira o mua mo ArangoDB ka penei te ahua:
[
{
"@type": "document",
"@rid": "#11:0",
"@class": "Person",
"name": "Алиса",
"out_likes": [
"#30:1",
"#30:2"
],
"@fieldTypes": "out_likes=LINKBAG"
},
{
"@type": "document",
"@rid": "#12:0",
"@class": "Person",
"name": "Боб",
"out_likes": [
"#30:3"
],
"@fieldTypes": "out_likes=LINKBAG"
},
{
"@type": "document",
"@rid": "#21:0",
"@class": "Cafe",
"name": "Жан-Жак",
"in_likes": [
"#30:2",
"#30:3"
],
"@fieldTypes": "in_likes=LINKBAG"
},
{
"@type": "document",
"@rid": "#22:0",
"@class": "Cafe",
"name": "Джон Донн",
"in_likes": [
"#30:1"
],
"@fieldTypes": "in_likes=LINKBAG"
},
{
"@type": "document",
"@rid": "#30:1",
"@class": "likes",
"in": "#22:0",
"out": "#11:0",
"since": 1262286000000,
"@fieldTypes": "in=LINK,out=LINK,since=date"
},
{
"@type": "document",
"@rid": "#30:2",
"@class": "likes",
"in": "#21:0",
"out": "#11:0",
"since": 1293822000000,
"@fieldTypes": "in=LINK,out=LINK,since=date"
},
{
"@type": "document",
"@rid": "#30:3",
"@class": "likes",
"in": "#21:0",
"out": "#12:0",
"since": 1325354400000,
"@fieldTypes": "in=LINK,out=LINK,since=date"
}
]Kei te kite tatou, kei te penapena korero nga poutoko mo nga tapa taumai me te puta. I Ma te API Tuhinga ka aro turuki i te tapatahi tohutoro ake, a ma te Kauwhata API e mahi tenei mahi. Engari kia kite tatou he aha te ahua o te uru ki te OrientDB i roto i nga reo patai "parakore" kaore i whakauruhia ki nga reo hotaka.
Nga patai me nga hua
He rite te patai ki te patai mai i te tauira mo ArangoDB i OrientDB te ahua penei:
SELECT name AS person_name, OUT('likes').name AS cafe_name
FROM Person
UNWIND cafe_nameKa whiwhi te hua i roto i te ahua e whai ake nei:
[
{ "person_name": "Алиса", "cafe_name": "Джон Донн" },
{ "person_name": "Алиса", "cafe_name": "Жан-Жак" },
{ "person_name": "Боб", "cafe_name": "Жан-Жак" }
]Mena he ahua "hononga" rawa te ahua o te whakatakotoranga hua, me tango e koe te raina me :
[
{ "person_name": "Алиса", "cafe_name": [ "Джон Донн", "Жан-Жак" ] },
{ "person_name": "Боб", "cafe_name": [ "Жан-Жак" ' }
]Ko te reo patai a OrientDB ka taea te korero ko SQL me nga whakaurunga-rite ki a Gremlin. I te putanga 2.2, i puta mai he puka tono rite ki a Cypher, :
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_nameKo te whakatakotoranga hua ka rite ki te tono o mua. Whakaarohia nga mea hei tango kia pai ake ai te "whakawhanaunga", penei i te patai tuatahi.
Azure CosmosDB
Ki te iti ake, ko nga korero i runga ake nei mo ArangoDB me OrientDB e pa ana ki a Azure CosmosDB. Ka whakaratohia e CosmosDB nga API whakauru raraunga e whai ake nei: SQL, MongoDB, Gremlin me Cassandra.
Ka whakamahia te SQL API me te MongoDB API ki te uru ki nga raraunga i roto i te tauira tuhinga. Gremlin API me Cassandra API - mo te uru ki nga raraunga i roto i te kauwhata me nga whakatakotoranga pou, ia. Ko nga raraunga o nga tauira katoa ka tiakina ki te whakatakotoranga tauira o roto o CosmosDB: (“atom-record-sequence”), e tata ana hoki ki te tuhinga kotahi.

Engari ko te tauira raraunga i whiriwhiria e te kaiwhakamahi me te API i whakamahia kua whakaritea i te wa o te hanga i tetahi kaute i roto i te ratonga. Kaore e taea te uru atu ki nga raraunga kua utaina ki tetahi tauira ki te whakatakotoranga o tetahi atu tauira, penei i te whakaahuatanga penei:

Na, ko te maha-tauira i roto i te Azure CosmosDB i tenei ra ko te kaha ki te whakamahi i nga papaa raraunga maha e tautoko ana i nga tauira rereke mai i tetahi kaihanga, kaore e whakaoti i nga raru katoa o te rokiroki rereke-maha.
DBMS maha-tauira i runga i te tauira kauwhata?
Ko te mea nui karekau he DBMS maha-tauira i runga i te maakete e hangai ana i runga i te tauira kauwhata (haunga te tautoko tauira-maha mo nga tauira kauwhata e rua i te wa kotahi: RDF me te LPG; tirohia tenei i roto ). Ko nga tino uaua ka puta mai i te whakatinanatanga o te tauira tuhinga ki runga ake o te tauira kauwhata, kaua ki te hononga hononga.
Ko te patai me pehea te whakatinana i tetahi tauira hononga ki runga ake o te tauira kauwhata i whakaarohia ahakoa i te wa o te hanganga o muri. Pehea hei tauira :
Karekau he mea i roto i te huarahi kauwhata hei aukati i te hanga paparanga (hei tauira, ma te taupūtanga tika) ki runga i te putunga raraunga kauwhata e taea ai te tirohanga hononga me te (1) whakaora i nga tuple mai i nga takirua uara matua me te (2) whakarōpūtanga o tuples ma te momo hononga.
Ina whakatinanahia he tauira tuhinga ki runga ake o te tauira kauwhata, me maumahara koe, hei tauira, ko enei e whai ake nei:
- Ko nga huānga o te huinga JSON e kiia ana he raupapa, engari ko nga mea e puta mai ana i te pito o te tapa o te kauwhata ehara i te mea;
- Ko nga raraunga kei roto i te tauira tuhinga ka whakakorehia te tikanga, kaore koe e hiahia ki te penapena i nga kape maha o te tuhinga kua whakauruhia, me te nuinga o nga tuhinga kaore he tohu tohu;
- I tetahi atu taha, ko te whakaaro o nga tuhinga DBMS ko nga tuhinga he "whakatōpū" kua rite, kaore e tika kia hanga hou i ia wa. Me whakarato i te tauira kauwhata te kaha ki te tiki tere i tetahi kauwhata iti e rite ana ki te tuhinga kua oti.
He panui iti
Ko te kaituhi o te tuhinga e pa ana ki te whanaketanga o te NitrosBase DBMS, ko te tauira o roto he kauwhata, me nga tauira o waho - hononga me te tuhinga - ko ona tohu. He rite nga tauira katoa: tata katoa nga raraunga e waatea ana i roto i tetahi o enei ma te whakamahi i te reo patai e tika ana ki a ia. Ano, i tetahi tirohanga, ka taea te whakarereke i nga raraunga. Ka kitea nga huringa i roto i te tauira o roto, a, na reira, ki etahi atu tirohanga.
Ko te tumanako ka whakaahuahia e au he aha te ahua o te whakataurite tauira ki NitrosBase i roto i tetahi o nga tuhinga e whai ake nei.
mutunga
Ko taku tumanako kua marama ake, kua iti ake ranei ki te kaipanui nga whakahuahua whanui o te mea e kiia nei ko te whakatauira maha. He tino rereke nga DBMS maha-tauira, he rereke te ahua o te "tautoko maha-tauira". Kia mohio ai koe ki te mea e kiia nei he "tauira-maha" i ia keehi motuhake, he pai ki te whakautu i nga patai e whai ake nei:
- Kei te korero tatou mo te tautoko i nga tauira tawhito, etahi momo tauira "hybrid" ranei?
- Ko nga tauira "he rite", ko tetahi ranei te kaupapa o etahi atu?
- Ko nga tauira "kahore" ki a raatau ano? Ka taea e nga raraunga kua tuhia ki tetahi tauira te panui ki tetahi atu, ka tuhirua ranei?
Ki taku whakaaro ko te patai mo te whaitakenga o te DBMS tauira maha ka taea te whakautu pai, engari ko te patai whakamere ko tehea momo ka nui ake te tono a nga ra e heke mai nei. Te ahua nei ko nga DBMS maha-tauira e tautoko ana i nga tauira tuku iho, ko te nuinga o te whanaungatanga, ka nui ake te hiahia; Ko te rongonui o nga DBMS maha-tauira, e tuku ana i nga tauira hou e whakakotahi ana i nga painga o nga momo tikanga tuku iho, he mea mo te wa kei te heke mai.
Ko nga kaiwhakamahi kua rehita anake ka uru ki te rangahau. tēnā.
Kei te whakamahi koe i te DBMS tauira maha?
Kaore matou e whakamahi, ka penapenahia e matou nga mea katoa i roto i te DBMS kotahi me te tauira kotahi
Ka whakamahi matou i nga kaha-tauira maha o nga DBMS tuku iho
Ka mahia e matou te tohenga polyglot
Ka whakamahi matou i te DBMS tauira-maha hou (Arango, Orient, CosmosDB)
19 nga kaiwhakamahi i pooti. 4 nga kaiwhakamahi i aukati.
Source: will.com
