Pourquoi voudrais-je utiliser une base de données non relationnelle?
La dernière mode dans des bases de données semble être centré autour de bases de données non relationnelles. Pourquoi? Il semble sorte de contre-productif. Par exemple, il fait beaucoup plus de sens pour moi d'exprimer mes données d'une manière relationnelle (exemple de code dans Django + SQL pour les tableaux):
class Post(models.Model):
name = models.CharField()
created = models.DateTimeField(auto_now_create = True)
class Comment(models.Model):
text = models.TextField()
post = models.ForeignKey('Post')
created = models.DateTimeField(auto_now_create = True)
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 est que cette information peut être exprimé en donc de nombreuses façons. Bien sûr, l'ensemble de l'objet-relationnel-cartographie problème existe, mais je la considère comme une entité et non comme un problème. Avec SQL, je peux récupérer toutes distinctes les commentaires d'un post qui sont plus vieux qu'hier, rassembler tous ceux qui, ensemble, et de générer des statistiques. Pouvez faire de même pour les bases de données non relationnelles?
Elle aussi semble vraiment d'incidence sur les performances d'utiliser une base de données non relationnelle comme MongoDB, car vous devez vous saisir immédiatement la totalité d'un objet graphique, plutôt que ce que vous minimalement besoin.
Quelqu'un peut m'expliquer quels sont les avantages de l'utilisation d'une base de données non relationnelle?
OriginalL'auteur Naftuli Kay | 2011-10-28
Vous devez vous connecter pour publier un commentaire.
Prendre un coup d'oeil à la Théorème CAP
Et la PACELC interprétation
Bases de données relationnelles ont tendance à faire une série de compromis, et non relationnelles ont tendance à faire une autre série de compromis. Pour massives distribuées ensembles de données non relationnelles parfois plus de sens.
Il ya aussi un sens dans lequel les bases de données non relationnelles peut éliminer un grand nombre de l'ORM de la douleur, mais encore une fois il y a toujours des compromis. Dans certains cas d'utilisation, non-relationnelle de stockage peut être plus rapide, parce que toutes les données d'une hiérarchie particulière peuvent être stockés ensemble de plus près sur le disque. Notez également que les bases de données non relationnelles n'ont encore des capacités d'interrogation.
En fin de compte, il s'agit de faire des compromis pour votre cas d'utilisation.
OriginalL'auteur Nathan
Regarder Nosql : http://en.wikipedia.org/wiki/NoSQL
C'est essentiellement en raison de scalibility et de la performance.
OriginalL'auteur Fatih Donmez