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.