Potrebbe essere un buon candidato per un database grafico? [chiuso]

2

Abbiamo bisogno di creare un'applicazione che deve diff relazioni tra entità.

Ad esempio, diciamo che stiamo creando un'applicazione per modellare le istanze di una malattia tra gli animali domestici e che periodicamente raccogliamo dati da più fonti XML.

Abbiamo un modello che rappresenta animali domestici e uno per rappresentare malattie. Siamo interessati ad esaminare il cambiamento dei "join" dagli animali alla malattia ogni volta che raccogliamo i dati XML.

Non è sufficiente diffare semplicemente l'XML, dato che stiamo usando più fonti e dobbiamo avere il nostro modello intermedio.

Non so se c'è un modo per farlo, ma suppongo che potremmo diffare la tabella di join di pets_diseases se dovessimo costruirlo su un RDBMS?

Inoltre non conosco molto sui database di grafici, quindi gradirei suggerimenti. Se questo è il modo giusto per andare Neo4J sembra un candidato credibile.

    
posta ttrmw 02.08.2016 - 16:11
fonte

1 risposta

1

Penso che dipenda da quanto sofisticato vuoi ottenere con i campioni raccolti. Potresti iniziare a raccogliere campioni a un certo intervallo ea dividerli, ma con il passare del tempo, sospetto che diventerai più sofisticato rendendoti conto che i tuoi campioni raccolti dalle diverse fonti sono più scaglionati.

Mentre procederai potresti finalmente vedere che c'è un vantaggio nella raccolta di una data / ora per ogni singola riga dei dati perché anche all'interno di una raccolta di dati da una fonte, i frammenti di informazioni hanno variazioni di tempo.

Sto suggerendo di spingere le informazioni sul tempo il più lontano possibile nel sistema, includendo sia il "front end" nel processo di raccolta con il modello XML (le singole righe sono datate) sia il modello di database intermedio (stesso ). Ciò consentirà a tutti i dati raccolti di coesistere nel database e offrirà l'opportunità di eseguire query più ricche.

pet-table: id, pet-name, start-date, end-date
pet-condition: pet-id, condition-id, info-capture-date, status
condition-table: id, description

Data la data-acquisizione-data della condizione dell'animale domestico, è possibile memorizzare più punti di tempo di dati per la stessa condizione (e / o più condizioni per la stessa ora).

Dai un'occhiata al seguente articolo per alcuni spunti di riflessione: Database di serie temporali .

Il formato che sto suggerendo è anch'esso compatibile con il database di log, o amichevole con l'event store, perché è essenzialmente immutabile (scrivi una sola volta / solo append). Tuttavia, non memorizza direttamente solo lo stato corrente, quindi se lo desideri puoi scrivere una query per esso. (E se questo è davvero ciò di cui hai bisogno, puoi metterlo in cache nel database).

Anche se la maggior parte dei database gestirà i dati di tipo log, se la raccolta di dati è automatizzata e un flusso piuttosto pesante, ci sono database specializzati progettati per gestire la raccolta in stile log, come MongoDB.

Analizzerei un database di diagrammi se disponi di relazioni molte, varie e dinamiche (nel senso dello schema). Altrimenti, probabilmente proverei a accontentarmi di un database relazionale.

    
risposta data 02.08.2016 - 18:02
fonte

Leggi altre domande sui tag