Comment décidez-vous du type de base de données à utiliser?

31

Je n'aime vraiment pas le nom "NoSQL", car il n'est pas très descriptif. Il me dit ce que les bases de données ne sont pas là où je suis plus intéressé par ce que les bases de données sont . Je pense vraiment que cette catégorie comprend vraiment plusieurs catégories de bases de données. J'essaie juste d'avoir une idée générale du travail pour lequel chaque base de données particulière est le meilleur outil.

Quelques hypothèses que j'aimerais faire (et je vous demanderais de faire):

  1. Supposons que vous avez la capacité d'embaucher un nombre illimité d'ingénieurs brillants qui sont également expérimentés avec toutes les technologies de base de données qui ont jamais existé.
  2. Supposons que vous disposez de l'infrastructure technique pour prendre en charge une base de données donnée (y compris les serveurs et administrateurs système disponibles qui peuvent prendre en charge ladite base de données).
  3. Supposons que chaque base de données dispose du meilleur support possible gratuitement.
  4. Supposons que vous avez 100% d'adhésion de la direction.
  5. Supposons que vous ayez une somme d'argent infinie à consacrer au problème.

Maintenant, je me rends compte que les hypothèses ci-dessus éliminent beaucoup de considérations valides qui sont impliquées dans le choix d'une base de données, mais mon objectif est de déterminer quelle base de données est la meilleure pour le travail à un niveau purement technique. Donc, étant donné les hypothèses ci-dessus, la question est: pour quels travaux chaque base de données (y compris SQL et NoSQL) est-elle le meilleur outil et pourquoi?

Jason Baker
la source
Avez-vous des chances de choisir deux exemples de ces bases de données et quelle serait leur catégorie?
JeffO

Réponses:

6

Les bases de données relationnelles (SQL) sont idéales pour les données dont le modèle sous-jacent reste stable. De nombreuses implémentations existent depuis un certain temps (Oracle, DB2, SqlServer) et sont stables et sécurisées. De plus, il est très facile de trouver des personnes expérimentées pour les administrer - et les administrateurs de base de données sont indispensables! Les programmeurs ne devraient pas avoir à gérer les autorisations, la configuration et le réglage. Ils devraient pouvoir se concentrer sur la programmation et laisser les administrateurs s'inquiéter de maintenir la base de données en place. Les bases de données relationnelles sont également relativement faciles à interroger, et il existe de nombreux outils pour vous aider à en trouver des données.

Michael K
la source
5

SQL

Objet relationnel. Serveurs stables avec un contrôle fin sur les autorisations.

NoSQL

Stockage flexible. Haute évolutivité et capacités de partage.

Josh K
la source
1

Il y a de très bonnes informations à ce sujet dans cet article: Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase vs Membase vs Neo4j comparaison :

Alors que les bases de données SQL sont des outils incroyablement utiles, leur monopole d'environ 15 ans touche à sa fin. Et c'était juste le temps: je ne peux même pas compter les choses qui ont été forcées dans les bases de données relationnelles, mais jamais vraiment adaptées.
Mais les différences entre les bases de données NoSQL sont beaucoup plus importantes que jamais entre une base de données SQL et une autre. Cela signifie qu'il incombe davantage aux architectes logiciels de choisir celui qui convient le mieux à un projet dès le début.
Dans cette optique, voici une comparaison de Cassandra, Mongodb, CouchDB, Redis, Riak, Membase, Neo4j et HBase [...]

Jason Baker
la source
-3

Je suppose que ce n'est pas une bonne question, par exemple, quel type de véhicules est bon? Bugatti, BWM, automobile, mini-machine, train, locomotive, avion?
Cela dépend de ta situation,

pour un petit travail sans données énormes, sqlight peut être bon.
pour une entreprise qui utilise le produit Microsoft, MSSQL est bon.
pour le développement web, MySql est très facile à utiliser.
pour les banques, Oracle ou couchbase (si gérer le problème de trancation).
pour un petit travail avec beaucoup de données, MongoDB est bon.
pour une entreprise avec d'énormes données et une seule table type, Cassandra.
pour une entreprise avec d'énormes données, Couchbase.
pour l'écosystème hadoop, HBase.
pour graphique, image, en mémoire, ...

Hossein Vatani
la source
5
Je suis curieux de savoir pourquoi vous recommanderiez MySQL pour une boutique Microsoft sur Sql Server?
Becuzz
je corrige cela, je voulais dire Mssql.
Hossein Vatani