j'aimerais avoir des retours sur l'utilisation de base nosql tel que mongodb
bien
pas bien
bonne et mauvaise exp.
merci d'avance pour votre participation
bonne soirée ,
ch
On pourrait se poser la même question concernant les bases de données objet. Je ne connais pas suffisamment les SGBD(x) pour dire lequel utiliser dans quelle situation. Je ne connaissais pas NoSQL, personnellement. Concernant l'utilisations des transations, ce n'est pas la seule fonctionnalités des SGBDR, ni le seul critère de l'ACID, loin de là. La transaction assure, en gros, entièrement l'atomicité et l'isolation, mais n'est qu'un composant de la cohérence. Concernant la durabilité, il s'agit pour moi d'un critère commun à tout système de gestion de données, contrairement aux variables, sessions, etc.Atomicity (atomicité), Consistency (cohérence), Isolation, Durability (durabilité).
Les axes principaux du NoSQL: haute disponibilité et partitionnement des données, au détriment de la consistance.
Effectivement pas conseillé pour les bases tres sensibles qui se doivent d'avoir que des données valides , mais restons au niveau de la majeur partie des appli web ...
Je serais curieux de voir combien de sites web plus ou moins gros ( hors transaction bancaire ) utilisent les transactions pour leurs requêtes ....
C'est justement cette limite que j'ai du mal à cerner .. quand peut-on utiliser du Nosql ou des DDB standard relationnel , et quand est-il déconseillé d'utiliser des bases nosql ou des moteurs ne supportant pas les transactions ....
Je trouve ce point assez flou ..
Rien que ça, ça me fait froid dans le dos.bases de données fondées sur des documents ou les bases de données sans schéma
Moins "froid dans le dos", puisque la modification du schéma de la SGBDR n'est pas censé s'effectuer souvent si dès le départ la modélisation a été bien faite. De plus, certains SGBDR, comme celui de Microsoft, si je ne me trompe pas, ne le permet tout simplement pas.Saviez-vous que Cassandra nécessite un redémarrage lorsque vous modifiez la définition d'une colonne dans une table ?
Pour moi, le NoSQL est intéressant lorsque l'on quitte la notion d'ACID, et que l'on veut une base permettant de stocker de gros volumes de données volatile (j'entends par la des données dont la présence n'est pas nécessaire à la cohérence du reste du schéma.
Pour vous donner un exemple, il y a peu, je travaillais sur un site d'enchère pour lequel il me faut stocker l'intégralité des propositions des enchérisseurs.
Ma problématique était que dans un schéma relationnel standard respectant les formes normales, tout calcul sur un enchère aurait nécessité de tenir compte de l'intégralité des données de ma table de propositions, qui contient des milliers, voir des dizaines de milliers d'enregistrement pour chaque enchère.
Donc, partant de ce postulat (gros volume de données, table en mutation constante, nécessité de casser certaines formes normales pour optimiser le fonctionnement), j'en suis arrivé à la conclusion que ma table de proposition était toute vouée à s'appuyer sur un système NoSQL.
Au final, j'ai un schéma relationnel standard contenant la principale partie de mes données, celles qui sont structurantes pour mon application, et j'utilise MongoDB pour stocker ma table volatile. Et j'utilise cette table volatile pour mettre à jour mon schéma principal avec des résultats de calcul.
Du coup, et pour reprendre ce qui a été dis plus haut : SGBD vs NoSQL est du type PHP vs C++, à savoir qu'ils ne sont pas concurrent, que l'un n'est pas meilleur que l'autre, juste que ce sont des outils distincts qui ont des utilités différentes, et que, comme d'habitude, il faut commencer à se demander ce que l'on veut faire avant de choisir l'outil qui convient