Quando i database sono apparsi per la prima volta, OOP non era ancora il modo di programmare. I database relazionali, d'altra parte, hanno guadagnato molta trazione. E l'SQL introdotto negli anni 80 da IBM divenne rapidamente lingua franca di tutti i database.
Quando OOP è diventato popolare ci sono stati alcuni tentativi, ma ci sono alcuni problemi. Primo, il vero OODBMS è davvero difficile da implementare. Nel caso di un database relazionale, una tabella e gli indici correlati sono strutture abbastanza semplici (ad esempio alberi B).
Un'altra ragione è che c'è molta teoria dietro il modello relazionale, derivata direttamente dalla teoria degli insiemi matematici. Esistono metodi noti per progettare correttamente un database relazionale (si pensi alla normalizzazione, ecc.). E, ultimo ma non meno importante, le persone si sono già abituate a SQL molto.
Le soluzioni NoSQL moderne nella maggior parte dei casi non rappresentano un vero passo avanti verso OODBMS. Molti di loro sono ancora relazionali, solo spogliati di JOINs
. Pochi di loro sono in realtà negozi di oggetti ma non sono veramente OODBMS, in quanto non sono a conoscenza delle relazioni tra gli oggetti.
Ancora un altro motivo per cui non c'è una spinta così strong per OODBMS è che ci sia la soluzione "OODBMS dei poveri" - ORM. Questo ha guadagnato enorme popolarità, poiché sono supportati da motori DB ben noti, stabili e testati, eppure forniscono la mappatura degli oggetti. Naturalmente, questi non sono veri OODB.