J'ai rencontré de nombreux systèmes de gestion de bases de données relationnelles (SGBDR). Mais récemment, j'ai utilisé hibernate, ce qui m'a fait commencer à me demander pourquoi les bases de données orientées objet ne sont pas plus populaires.
Si les langages orientés objet comme Java ou C # sont si populaires, alors pourquoi les systèmes de gestion de base de données orientée objet (OODBMS) ne sont-ils pas plus populaires aussi?
object-oriented
database
rdbms
Rachel
la source
la source
Réponses:
Il y a plusieurs raisons.
la source
Lorsque les bases de données sont apparues pour la première fois, la POO n'était pas encore le moyen de programmer. Les bases de données relationnelles, en revanche, ont gagné beaucoup de traction. Et SQL introduit dans les années 80 par IBM est rapidement devenu la lingua franca de toutes les bases de données.
Lorsque la POO est devenue populaire, il y a eu quelques tentatives, mais il y a quelques problèmes. Tout d'abord, le vrai OODBMS est vraiment difficile à implémenter. Dans le cas d'une base de données relationnelle, une table et les index associés sont des structures assez simples (par exemple, les arbres B). Une autre raison est qu'il y a beaucoup de théorie derrière le modèle relationnel, il est directement dérivé de la théorie des ensembles mathématiques. Il existe des moyens connus pour concevoir correctement une base de données relationnelle (pensez à la normalisation, etc.). Enfin et surtout, les gens se sont déjà beaucoup habitués à SQL.
Dans la plupart des cas, les solutions NoSQL modernes ne sont pas vraiment un pas vers OODBMS. Beaucoup d'entre eux sont encore relationnels, seulement dépouillés
JOINs
. Peu d'entre eux sont en fait des magasins d'objets mais ne sont pas vraiment des OODBMS, car ils ne sont pas conscients des relations entre les objets.Encore une autre raison pour laquelle il n'y a pas une telle poussée forte pour OODBMS est qu'il existe une solution "OODBMS du pauvre" - ORMs. Cela a gagné en popularité, car ils sont soutenus par des moteurs de base de données bien connus, stables et testés, mais ils fournissent le mappage aux objets. Bien sûr, ce ne sont pas de vrais OODB.
la source
OODBMS est bon pour stocker des données complexes. Cependant, la plupart du temps, même lorsque vous utilisez des langages OO, les données nécessaires sont relativement simples. Les SGBDR traditionnels sont donc plus adaptés.
la source