Encontrei muitos sistemas de gerenciamento de banco de dados relacional (RDBMS). Mas recentemente usei o hibernate, o que me fez começar a pensar por que os bancos de dados orientados a objetos não são mais populares.
Se linguagens orientadas a objetos como Java ou C # são tão populares, por que os sistemas de gerenciamento de banco de dados orientados a objetos (OODBMS) também não são mais populares?
object-oriented
database
rdbms
Rachel
fonte
fonte
Respostas:
Existem várias razões.
fonte
Quando os bancos de dados apareceram pela primeira vez, o OOP ainda não era o caminho para programar. Os bancos de dados relacionais, por outro lado, ganharam muita força. E o SQL introduzido nos anos 80 pela IBM rapidamente se tornou a língua franca de todos os bancos de dados.
Quando o OOP se tornou popular, houve algumas tentativas, mas existem alguns problemas. Primeiro, o OODBMS verdadeiro é realmente difícil de implementar. No caso de um banco de dados relacional, uma tabela e índices relacionados são estruturas bastante simples (por exemplo, árvores B). Outra razão é que há muita teoria por trás do modelo relacional, ela é diretamente derivada da teoria matemática dos conjuntos. Existem maneiras conhecidas de projetar corretamente um banco de dados relacional (pense em normalização etc). E por último, mas não menos importante, as pessoas já se acostumaram muito ao SQL.
As soluções NoSQL modernas na maioria dos casos não são realmente um passo em direção ao OODBMS. Muitos deles ainda são relacionais, apenas despojados
JOINs
. Na verdade, poucos deles são armazenamentos de objetos, mas não são verdadeiramente OODBMS, pois não têm conhecimento das relações entre os objetos.Ainda outra razão pela qual não há um impulso tão forte para o OODBMS é que existe a solução "OODBMS do homem pobre" - ORMs. Isso ganhou enorme popularidade, pois eles são apoiados por mecanismos de banco de dados bem conhecidos, estáveis e testados, mas fornecem o mapeamento para objetos. Obviamente, esses não são verdadeiros OODBs.
fonte
Os OODBMS são bons em armazenar dados complexos. No entanto, na maioria das vezes, mesmo ao usar linguagens OO, os dados necessários são relativamente simples. Portanto, o RDBMS tradicional é mais adequado.
fonte