Pregunta

Hay una gran cantidad de información que hay sobre el objeto-relacionales mapeados y la mejor forma de evitar el desajuste de impedancia, todos los cuales parecen ser discutible puntos si se utiliza un objeto de la base de datos.Mi pregunta es ¿por qué no se utiliza más frecuentemente?Es debido a razones de rendimiento o porque el objeto de las bases de datos causa de sus datos a ser propiedad de su aplicación o es debido a otra cosa?

¿Fue útil?

Solución

  • La familiaridad. Los administradores de bases de datos saber relacional de conceptos;objeto, no tanto.
  • Rendimiento. Bases de datos relacionales han sido probados a escala mucho mejor.
  • La madurez. SQL es un potente, largo desarrollado el lenguaje.
  • Soporte del proveedor. Usted puede elegir entre muchos más de la primera parte (SQL server) y de terceros (interfaces administrativas, asignaciones y otros tipos de integración) de las herramientas que en el caso de OODBMSs.

Naturalmente, el modelo orientado a objetos es más familiar para el desarrollador, y, como usted señala, sería uno de repuesto de ORM.Pero hasta ahora, el modelo relacional ha demostrado ser el más opción viable.

Véase también la reciente pregunta, Orientado a objetos vs Bases de datos Relacionales.

Otros consejos

He estado usando db4o que es un OODB y resuelve la mayoría de los contras se enumeran:

  • La familiaridad de los Programadores de conocer su idioma, a continuación, SQL (ver las consultas Nativas)
  • Rendimiento - esto es muy subjetivo, pero usted puede tener una mirada en PolePosition
  • Soporte del proveedor y la madurez puede cambiar con el tiempo
  • No pueden ser utilizados por los programas que no utilizan el mismo marco - Hay OODB normas y puede utilizar diferentes marcos de
  • El control de versiones es probablemente un poco de puta - control de Versiones es en realidad más fácil!

Los pros que me interesan:

  • Las consultas nativas - Db4o le permite escribir consultas en la estática de lenguaje escrito para que usted no tenga que preocuparse de cometer errores al escribir una cadena y la búsqueda de falta de datos en tiempo de ejecución,
  • Facilidad de uso - Definir buissiness lógica en el dominio de la capa, la capa de persistencia (cartografía) y, finalmente, la base de datos de SQL es sin duda la violación de SECO.Con OODB a definir su dominio, que es donde pertenece.

Estoy de acuerdo - OODB tienen un largo camino por recorrer, pero se va.Y hay dominio de los problemas que están mejor resueltos por OODB,

Una objeción a objetos de bases de datos es que se crea una estrecha conexión entre los datos y su código.Para determinadas aplicaciones, esto puede estar bien, pero no para otros.Una cosa buena que una base de datos relacional que te da es la posibilidad de poner muchos puntos de vista sobre sus datos.

Ted Neward explica esto y mucho más sobre OODBMSs mucho mejor que este.

No tiene nada que ver con el rendimiento.Es decir, básicamente, todas las aplicaciones funcionan mejor con un OODB.Pero que también pondría un montón de DBA de trabajo/tener que aprender una nueva tecnología.Incluso más que la gente estaría fuera de trabajo corrección de errores en los datos.Es poco probable que hacer OODBs popular con las compañías establecidas.Gavin parece ser totalmente desorientado, un mejor vínculo sería Kirk

Contras:

  • No pueden ser utilizados por los programas que no utilizar el mismo marco para acceder a los datos de la tienda, haciendo es más difícil para el uso de toda la empresa.

  • Menos recursos disponibles en línea para no basado en SQL de la base de datos

  • No hay compatibilidad entre la base de datos tipos (no se puede cambiar a un diferentes db proveedor sin necesidad de cambiar todo el el código)

  • El control de versiones es probablemente un poco de un la perra.Me imagino la adición de un nuevo propiedad de un objeto no es bastante fácil como añadir una nueva columna a una tabla.

Sören

Por todas las razones que son validos, pero veo el problema con OODBMS es el modelo de datos lógico.El modelo de objetos (o más bien el modelo de red de los años 70) no es tan simple como el relacional, y por lo tanto inferior.

jodonnel, yo no ver cómo el uso de objetos de bases de datos de las parejas del código de la aplicación a los datos.Usted todavía puede abstracto de la aplicación de la OODB a través del uso de un modelo de Repositorio y reemplazarlo con un ORM copia de base de datos SQL si el diseño de las cosas adecuadamente.

Para una OO aplicación, una base de datos OO va a proporcionar un ajuste más natural para la persistencia de objetos.

Lo cierto es que se ata los datos para el modelo de dominio, pero entonces ese es el quid!

¿No sería bueno tener una sola forma de mirar tanto a los datos, reglas de negocio y los procesos con una visión centrada en el dominio de?

Así, un gran pro es que un OODB coincida con la forma más moderna, a nivel de la empresa orientado a objetos con aplicaciones de software que están diseñados, no hay ningún esfuerzo extra para el diseño de una capa de datos utilizando diferentes (relacional) de diseño.Más barato de construir y de mantener, y en muchos casos generales de mayor rendimiento.

Los contras, en general la falta de madurez y la adopción creo...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top