Me he encontrado con muchos sistemas de gestión de bases de datos relacionales (RDBMS). Pero recientemente utilicé hibernate, lo que me hizo preguntarme por qué las bases de datos orientadas a objetos no son más populares.
Si los lenguajes orientados a objetos como Java o C # son tan populares, ¿por qué los sistemas de administración de bases de datos orientados a objetos (OODBMS) tampoco son más populares?
object-oriented
database
rdbms
Rachel
fuente
fuente
Respuestas:
Hay múltiples razones
fuente
Cuando aparecieron las bases de datos, OOP todavía no era la forma de programar. Las bases de datos relacionales, por otro lado, ganaron mucha tracción. Y el SQL introducido en los años 80 por IBM rápidamente se convirtió en la lengua franca de todas las bases de datos.
Cuando OOP se hizo popular hubo algunos intentos, pero hay algunos problemas. Primero, el verdadero OODBMS es realmente difícil de implementar. En el caso de una base de datos relacional, una tabla y los índices relacionados son estructuras bastante simples (por ejemplo, árboles B). Otra razón es que hay mucha teoría detrás del modelo relacional, se deriva directamente de la teoría matemática de conjuntos. Existen formas conocidas de diseñar correctamente una base de datos relacional (piense en la normalización, etc.). Y por último, pero no menos importante, la gente ya se acostumbró mucho a SQL.
Las soluciones modernas de NoSQL en la mayoría de los casos no son realmente un paso hacia OODBMS. Muchos de ellos todavía son relacionales, solo despojados
JOINs
. De hecho, pocos de ellos son almacenes de objetos, pero no son realmente OODBMS, ya que no son conscientes de las relaciones entre los objetos.Otra razón por la cual no existe un impulso tan fuerte para OODBMS es que existe la solución "OODBMS de los pobres": ORM. Esto ha ganado una gran popularidad, ya que están respaldados por motores de base de datos conocidos, estables y probados, pero proporcionan la asignación a los objetos. Por supuesto, estos no son verdaderos OODB.
fuente
OODBMS son buenos para almacenar datos complejos. Sin embargo, la mayoría de las veces, incluso cuando se usan lenguajes OO, los datos necesarios son relativamente simples. Por lo tanto, los RDBMS tradicionales son más adecuados.
fuente