Programacion orientada a objetos y bases de datos relacionales

Base de datos de objetos
La respuesta corta es que hay una diferencia fundamental entre almacenar datos y manipular datos. El código debe escribirse para manipular datos, y las bases de datos deben diseñarse para almacenar los datos que manipula el código. Las bases de datos orientadas a objetos mezclan estos dos conceptos de tal manera que las anomalías en los datos se convierten en algo inevitable para muchos proyectos, lo que a su vez las hace inadecuadas para ser el principal almacén de datos.
La programación orientada a objetos es una solución a una cuestión de eficacia y conceptualización. Un sistema orientado a objetos bien diseñado, que siga en la mayor medida posible los principios de diseño SOLID, utilizará la programación orientada a objetos para crear clases que constituyan una taxonomía digital de rasgos y comportamientos.
Por ejemplo, tanto una puerta como una ventana crean agujeros en una pared. Sin embargo, una puerta está pensada para ser atravesada y una ventana no. Una puerta y una ventana pueden heredar de una clase que las une a una pared, pero pueden ser distintas en su comportamiento.
Lo que absolutamente no quieres hacer, es almacenar el tamaño, posición o número de puertas y ventanas directamente en el binario de tu programa. Esa es la principal diferencia entre datos y código: tu código debe estar escrito de forma que manipule los datos, pero los datos deben existir separados del código que los manipula.
Asignación objeto-relacional
Cuando volví a retomarlo, la red se convirtió en lo más importante y el mundo se había estandarizado más o menos con MySQL/Postgres/etc y PHP/Python/Ruby/Java y ORM como puente hacia los datos. Sin embargo, cuanto más aprendía, más me parecía una chapuza.
SQL es rico, potente y maduro. La programación orientada a objetos también. Los ORM parecen abstracciones débiles. Listas ordenadas, ricas estructuras anidadas, etc. Nunca ha tenido sentido que no tengamos almacenes de datos que reflejen cómo podemos representar los datos de esta manera. Parece que ORM es un compromiso muy débil para tratar de conectar dos puntos de vista muy diferentes sobre cómo estructurar los datos. También parece simplificar SQL hasta el punto de que gran parte de su potencia y flexibilidad no se utiliza.
Ejemplos de programación orientada a objetos
Este artículo necesita citas adicionales para su verificación. Por favor, ayude a mejorar este artículo añadiendo citas de fuentes fiables. El material sin fuentes puede ser cuestionado y eliminado.Find sources: "Base de datos objeto-relacional" - noticias - periódicos - libros - scholar - JSTOR (octubre de 2008) (Aprende cómo y cuándo eliminar este mensaje de plantilla)
Una base de datos objeto-relacional (ORD), o sistema de gestión de bases de datos objeto-relacional (ORDBMS), es un sistema de gestión de bases de datos (DBMS) similar a una base de datos relacional, pero con un modelo de base de datos orientado a objetos: los objetos, las clases y la herencia se soportan directamente en los esquemas de base de datos y en el lenguaje de consulta. Además, al igual que los sistemas relacionales puros, admite la ampliación del modelo de datos con tipos de datos y métodos personalizados.
Se puede decir que una base de datos objeto-relacional es un término medio entre las bases de datos relacionales y las bases de datos orientadas a objetos. En las bases de datos objeto-relacionales, el enfoque es esencialmente el de las bases de datos relacionales: los datos residen en la base de datos y se manipulan colectivamente con consultas en un lenguaje de consulta; en el otro extremo están los OODBMS en los que la base de datos es esencialmente un almacén de objetos persistente para software escrito en un lenguaje de programación orientado a objetos, con una API de programación para almacenar y recuperar objetos, y poco o ningún soporte específico para consultas.
Conceptos de programación orientada a objetos
Una base de datos orientada a objetos (OODBMS) o un sistema de gestión de bases de datos de objetos (ODBMS) es una base de datos que se basa en la programación orientada a objetos (POO). Los datos se representan y almacenan en forma de objetos. Los OODBMS también se denominan bases de datos de objetos o sistemas de gestión de bases de datos orientados a objetos.
Una base de datos es un almacén de datos. Un sistema de software que se utiliza para gestionar bases de datos se denomina sistema de gestión de bases de datos (SGBD). Existen muchos tipos de sistemas de gestión de bases de datos, como los jerárquicos, los de red, los relacionales, los orientados a objetos, los gráficos y los documentales. Más información aquí, Tipos de sistemas de gestión de bases de datos.
La idea de las bases de datos de objetos se originó en 1985 y hoy en día se ha convertido en algo común en varios lenguajes de programación orientada a objetos, como C++, Java, C#, Smalltalk y LISP. Ejemplos comunes son Smalltalk se utiliza en GemStone, LISP se utiliza en Gbase, y COP se utiliza en Vbase.
Las bases de datos de objetos se utilizan habitualmente en aplicaciones que requieren un alto rendimiento, cálculos y resultados más rápidos. Algunas de las aplicaciones más comunes que utilizan bases de datos de objetos son los sistemas en tiempo real, arquitectura e ingeniería para modelado 3D, telecomunicaciones y productos científicos, ciencia molecular y astronomía.