5

La dernière folie dans les bases de données semble être centrée sur les bases de données non relationnelles. Pourquoi? Cela semble plutôt contre-productif. Par exemple, il est de me sens beaucoup plus à exprimer mes données d'une manière relationnelle (par exemple le code de Django + SQL pour les tables):Pourquoi devrais-je utiliser une base de données non relationnelle?

SQL:

create table post (id int primary key auto_increment, 
     name varchar, 
     created datetime); 

create table comment(id int primary key auto_increment, 
     text text, 
     post_id int, 
     created datetime, 
     foreign key post_id references post(id)); 

La puissance de SQL que cette information peut être exprimée en donc de nombreuses façons. Bien sûr, tout le problème de la relation objet-relationnel existe, mais je le considère comme une caractéristique et non comme un problème. Avec SQL, je peux récupérer tous les commentaires distincts d'un post qui sont plus anciens qu'hier, rassembler tous ces commentaires et générer des statistiques. Peut-on faire de même pour les bases de données non relationnelles?

Il semblerait également avoir un impact réel sur les performances pour utiliser une base de données non relationnelle comme MongoDB car vous récupéreriez immédiatement un graphe d'objet entier, plutôt que ce dont vous aviez le moins besoin. Est-ce que quelqu'un peut m'expliquer quels sont les avantages d'utiliser une base de données non relationnelle?

+0

http://stackoverflow.com/questions/441441/why-should-i-use-document-based-database-instead-of-relational-database – hplbsh

Répondre

5

Jetez un oeil à la CAP Theorem

Et les PACELC interpretation

bases de données relationnelles ont tendance à faire un ensemble de compromis, et ont tendance non-relationnelle pour faire un ensemble différent de compromis. Pour les ensembles de données distribués massifs, le non-relationnel a parfois plus de sens.

Il existe également un sens selon lequel les bases de données non relationnelles peuvent éliminer une grande partie de la douleur ORM, mais là encore, il y a toujours des compromis. Dans certains cas d'utilisation, le stockage non relationnel peut être plus rapide, car toutes les données d'une hiérarchie particulière peuvent être stockées plus proches sur le disque. Notez également que les bases de données non relationnelles ont toujours des fonctionnalités de requête. En fin de compte, il s'agit de faire les compromis appropriés pour votre cas d'utilisation particulier.

Questions connexes