2009-06-14 11 views
6

Quali sono i punti di forza e di debolezza di un database triplestore, ad esempio Mulgara? In quali situazioni le sue prestazioni sarebbero significativamente diverse da quelle di un database relazionale tradizionale?Quali sono i punti di forza e di debolezza di un database di triplestore?

Sto pensando in particolare alle situazioni in cui si dispone di dati nel modulo namespace:predicate=value. Triplestores sembra mantenere i dati nella sua forma "naturale", ma mi piacerebbe sapere se ci sono vantaggi specifici oltre a questo.

risposta

2

Suppongo che tu stai chiedendo circa la persistenza di triple (e possibilmente i grafici via quad) in cui l'archiviazione è o un negozio di "nativo" tripla (ad esempio, TDB) o un database relazionale con una sovrapposizione tripla negozio (come SDB).

Se un elaborato sulle vostre esigenze, sono sicuro che i membri di overflow dello stack in grado di offrire una risposta più diretta, ma appena fuori dalla parte superiore della mia testa:

  • nativi negozi triple tipicamente avere prestazioni migliori quando la la dimensione del set di dati diventa molto grande. Vedi some numbers from the W3C.
  • I negozi triple nativi possono offrire ragionamento/inferenza in negozio (come il toolkit semantico di Oracle, sebbene non supporti pienamente SPARQL).
  • Le triple in un RDBMS possono essere "facilmente" integrate negli strumenti di reporting tradizionali (come Jasper Reports) poiché è possibile interrogarle con SQL.
5

Sono il creatore di Redland che include i negozi tripli nativi in ​​C plus Ho usato alcuni dei sistemi Java come Jena e Sesame.

È difficile dire di più senza sapere qual è il tuo problema, ma in generale i negozi tripli nativi funzionano meglio se il tuo spazio problema/modello di query è più "graphy", piuttosto che "objecty". Obiettivo significa che tendi sempre a manipolare - impostare/ottenere lo stesso modello di dati ogni volta - in tal caso si potrebbe anche usare ORM o altri mappping relazionali agli oggetti e uno schema fisso. Se il tuo problema e lo schema sono più dinamici - 'Graphy' - puoi trarre beneficio dall'approccio del triplo store in cui è più semplice saltare tra i dati rispetto a quanto avviene in genere in un mondo RDBMS (ovvero i join).

Naturalmente c'è anche l'approccio al documento come CouchDB, ma è difficile sapere dalle informazioni che hai fornito.