Recentemente ho voluto sperimentare con i database NoSQL, specialmente quelli di un negozio di documenti. Dopo la lettura, continuo a non capire come si possano modellare le informazioni contenute in un database SQL relazionale (cioè con tabelle e record) in termini di documenti.
Ad esempio, un database musicale potrebbe avere una tabella per artisti, album e problemi; un album può avere uno o più artisti e un album può uno o più numeri. Questo è un esempio relativamente semplice.
Da quanto ho capito degli usi dei documenti, ci sarà un documento per ogni album, e all'interno di quel documento, la chiave "artisti" conterrà le informazioni su ciascun artista, e la chiave "questioni" conterrà le informazioni su ogni numero di quell'album.
Questo non porta a un sacco di duplicazione dei dati? Ogni album di un artista dovrà contenere tutte le informazioni sui suoi artisti. D'altra parte, se abbiamo un documento per ogni artista e un album ha cinque artisti e dieci numeri, le informazioni sull'album vengono replicate cinque volte nel documento per ciascun artista e le informazioni sui problemi vengono replicate dieci volte all'interno della chiave per ogni album.
Credo che non sto pensando allo storage correttamente, in quanto sembra un modo molto sciocco per organizzare un database. O NoSQL non è adatto per questo tipo di storage (e dovrei attenermi a SQL), o questo storage può essere implementato in un modo migliore (e sono troppo stupido per vedere come).
Sarebbe più adatto un altro tipo (cioè non la memorizzazione dei documenti) del database NoSQL? Come si può organizzare il mio schema di esempio in un database NoSQL, con una duplicazione dei dati minima? La duplicazione dei dati sarebbe in qualche modo migliore?
Grazie.