In che modo un database XML è diverso da (non è la specializzazione di) un database grafico?

4

XML è l'albero etichettato, un caso speciale di grafici. Quindi, perché esistono database XML separati e perché XML non è archiviato nei database dei grafici? A prima vista sembra così facile: si dovrebbero mappare le operazioni di analisi e archiviazione XML per eseguire operazioni di inserimento / aggiornamento del database e si dovrebbero tradurre le query XQuery nelle query di Gremlin. Potrebbe esserci un piccolo strato in grado di convertire ogni database grafico in un database XML. Sembra così facile e ovvio. Ma, per quanto ho cercato sul Web, non esiste un tale livello. Tutti i database XML non sono solo livelli in cima al database grafico, sono progetti autonomi.

Questa domanda sulle differenze tra database XML e graph è ancora più reale quando si osserva che ci sono solo pochi (non convincenti) database XML open source la cui scalabilità può essere un problema (e c'è un database XML commerciale molto affidabile - Clusterpoint, Immagino che BaseX sia il più serio database XML open source) ma ci sono diversi database di grafi molto scalabili e seri (per es. JanusGraph). Quindi, forse la creazione del livello citato su un database grafico open source scalabile è il percorso praticabile per creare un database XML open source scalabile?

Generalmente, i database di grafi e XML utilizzano algoritmi completamente diversi nella loro implementazione? Cosa li rende diversi e perché non si può considerare / implementare un database XML come una semplice specializzazione del database grafico?

Sto chiedendo solo concetti generali e nomi di algoritmi, non sono richieste specifiche.

    
posta TomR 10.10.2017 - 19:32
fonte

1 risposta

6

I termini database XML e database grafico descrivono i casi d'uso di ciascun tipo di database. Il database XML ha lo scopo di archiviare e cercare documenti XML . I database grafici rappresentano un modello grafico di nodi e bordi . Mentre un documento XML è un albero, gli utenti di XML considerano XML come un documento e non come un insieme di nodi e spigoli. Il database XML è più simile a un database orientato ai documenti

XML databases are a subclass of document-oriented databases that are optimized to work with XML documents. Graph databases are similar, but add another layer, the relationship, which allows them to link documents for rapid traversal. -Document-oriented database

Un'altra differenza fondamentale è che in un database XML non è importante condividere i nodi. Per esempio se ho due documenti XML che assomigliano a questo:

<!-- doc 1 -->
<document id="1" foo="bar"/>

<!-- doc 2 -->
<document id="2">
  <element foo="bar" />
</doc>

Il database XML non mi permetterebbe di collegare i due documenti attraverso la loro relazione del valore dell'attributo bar di tipo foo , mentre in un database grafico potrei modellarlo in quel modo

IlnodoBarècondivisoepossiamointerrogaretuttiinodiconnessiaBar.InundatabaseXML,questoèintenzionalmenteimpossibile.

MentreundatabaseXMLpotrebbeesserememorizzatointernamenteallostessomododiundatabasegrafico,probabilmentenonsarebbeunabuonaideaperchéladifferenzaneimodellidiaccesso.InundatabaseXMLgliutentiaggiornerannointeridocumentiincuilastrutturapotrebbecambiareradicalmenteecercherannodocumentichesoddisfanodeterminativaloriindeterminatinodi.Conundatabasegraficogliutentiaggiornerannolerelazioni,cambiandoinodieattraverserannolerelazioni.

Lamaggiorpartedeidatabasepuòessereutilizzatapermodellarealtritipididatabase.Adesempio,undatabaserelazionalepuòessereutilizzatoperrappresentareungrafico(vedere sql-g ). Un database grafico potrebbe rappresentare un documento XML. La differenza fondamentale tra i tipi di database è il loro focus e i modelli di accesso previsti per i quali hanno progettato il database.

    
risposta data 11.10.2017 - 00:49
fonte

Leggi altre domande sui tag