Casi di utilizzo NoSQL [chiuso]

8

Sto sviluppando un'applicazione per il mio simposio di ricerca studentesca universitaria sull'idea di persistenza poliglotta. Ho letto il libro di Martin Fowlers e fatto qualche altra ricerca online sui veriti diversi tipi di db NoSQL. Sono curioso di sapere quali sono i diversi casi d'uso per i diversi database NoSQL?

Attualmente ho ciò che Fowler ha sottolineato (altre ricerche sono state condotte principalmente su API).

chiave / valore:

  • dati di sessione
  • profilo utente
  • carrello
  • fondamentalmente tutto ciò che ha una singola chiave univoca che può essere facilmente generata e replicata

del documento:

  • registrazione degli eventi
  • CMS / blog
  • e-commerce (dopo che la transazione è stata completata)
  • analisi web

Famiglia di colonne:

  • registrazione degli eventi
  • CMS / blog
  • contatori
  • utilizzo in scadenza

Grafico:

  • dati collegati
  • servizi basati sulla posizione
  • motore di consigli

Quindi quali altri casi d'uso ci sono? Più precisamente quali sono i casi d'uso per ogni tipo di db NoSQL che sono migliori di un modello relazionale?

    
posta harageth 06.02.2013 - 04:14
fonte

3 risposte

7

Un elenco molto grande di Casi di utilizzo NoSQL

Questa lista è utile di tanto in tanto, e sottolinea anche quando una determinata soluzione NoSQL è specializzata per quel caso d'uso specifico. Il thread HackerNews originale (collegato nella parte inferiore di quella pagina) è utile anche per i commenti estesi.

    
risposta data 06.02.2013 - 06:29
fonte
2

Penso che tu abbia coperto quasi tutto. Posso offrirti un altro sul database Graph Ho visto persone o ricercatori utilizzare il database grafico per l'analisi semantica o l'archiviazione dell'ontologia per l'elaborazione del linguaggio naturale.

E siccome ho usato molto Graph db, penso che Graph db offra molto più di quanto il modello relazionale possa offrire. Ad esempio, se ho un'applicazione web e io connetto tutti i miei amici da Facebook e Twitter in base alla posizione o agli interessi. Posso farlo in una query. Tuttavia, è possibile farlo anche in SQL se lo si desidera, ma SQL può essere lungo A4 o superiore a quello se si desidera eseguirlo correttamente.

    
risposta data 06.02.2013 - 09:26
fonte
0

Perché non andare su questo più assiomaticamente? Ad esempio, perché è "CMS / blogging" più adatto per documentare i database (o qualsiasi altra cosa)? Quali sono le proprietà comuni di queste applicazioni che ti fanno pensare che siano più adatte all'una o all'altra tecnologia?

Considerare i punti di forza di ciascuna tecnologia DBMS e, in effetti, la teoria su cui si basa ciascuna. Che modello di dati implementano? (Ognuno di fatto ha un modello di dati?) Quali sono le proprietà di ciascun modello di dati e in che modo le proprietà dell'applicazione si associano a quelle del modello di dati? Se sviluppi una mappa del genere, avrai un modo per caratterizzare qualsiasi applicazione, anche se non ne hai mai sentito parlare o uno che non è stato ancora inventato.

Codd ha definito un modello di dati comprendente tre caratteristiche di interblocco: struttura, operazioni e vincoli. Il modello relazionale ha tutti e tre i colori. Se osservi da vicino le alternative, scoprirai che mancano almeno una e in genere due di queste. Qualsiasi tecnologia non basata sul modello relazionale è ipso facto meno funzionale. Per questo motivo è sicuro dire che l'applicazione ogni può essere supportata dal modello relazionale (se non da prodotti relazionali esistenti). Il modello relazionale è ancora più sviluppato, più potente, e tuttavia più semplice di qualsiasi altro ancora ideato. Sarà difficile migliorare perché si basa sulla logica dei predicati e sulla teoria degli insiemi.

Forse puoi identificare applicazioni per le quali, ad esempio, operazioni ben definite non contano. Ma vuoi essere molto sicuro di capire prima perché sono importanti in generale, prima di poter dire con certezza perché non sono necessari (o anche solo utili) per una particolare applicazione.

Prima o poi qualcuno ti dirà che "la relazione non scala" e che la tecnologia X è veloce. Quando lo fanno, ricordate che hanno implicitamente rinunciato a funzionalità che la tecnologia X non ha rispetto al modello relazionale, caratteristiche che potrebbero essere importanti. Inoltre, un modello di dati non è veloce o lento, solo un'implementazione lo è. Ogni volta che ci sono più programmatori che macchine, è più economico acquistare hardware più veloce che assumere più programmatori.

    
risposta data 06.02.2013 - 09:36
fonte

Leggi altre domande sui tag