2010-07-31 7 views

Répondre

29

Les mémoires de famille de colonnes telles que Bigtable et Cassandra ont des capacités d'interrogation très limitées. L'application est responsable de la maintenance des index afin d'interroger un modèle de données plus complexe.

Les bases de données de documents vous permettent d'interroger le contenu, pas seulement la clé. Il gérera également les index pour vous, réduisant la complexité de votre application.

Domain-driven design évangélise l'utilisation d'agrégats et d'objets de valeur. As Ayende points out, les agrégats (complexes) sont des candidats très naturels à stocker en tant que document unique, au lieu de les normaliser sur plusieurs tables ou familles de colonnes. Cela réduira la complexité de votre couche de persistance. Il y a également moins de chances que les données associées soient dispersées sur plusieurs nœuds, car toutes les données sont contenues dans un seul document.

Si votre application a besoin de stocker des objets polymorphes, les bases de données de documents sont également un bon candidat. Bien sûr, cela pourrait également être stocké dans Cassandra, mais vous n'aurez pas autant de possibilités d'interrogation. Au moins pas hors de la boîte. Pensez à une base de documents comme une voiture de sport de luxe. Il n'a pas besoin d'un pilote professionnel (lire: application complexe) pour vous rendre de A à B, il dispose de fonctionnalités telles que la climatisation et des sièges confortables et il va roder la piste à haute évolutivité dans un temps acceptable. Toutefois, si vous voulez définir un enregistrement de tour sur la piste à haute évolutivité, vous aurez besoin d'un pilote professionnel et d'une voiture hautement optimisée (par exemple Cassandra), qui manque de fonctionnalités telles que la climatisation.

+1

Hey, quelle belle description! La seule chose que j'ajouterais, c'est que CouchDB vise à être la Honda Accord des bases de données, pas la Ferrari. Cependant, je pense que ce sont des métaphores différentes, seulement liées par coïncidence. – JasonSmith

9

Une autre caractéristique de CouchDB est que vous pouvez créer ces agrégations, et non comme des documents stockés manuellement, mais que des vues (qui proviennent des données stockées et mises à jour automatiquement.)

C'est comme vitres électriques, chauffage sièges, ou la stéréo coup de pied.

+0

Bumping méchant par nature bien sûr – JasonSmith

Questions connexes