Entendemos Base de Datos Objeto Relacional (BDOR), una base de datos que ha evolucionado desde el modelo relacional a otro extendido que incorpora conceptos del paradigma orientado a objetos. Por tanto, un Sistema de Gestión Objeto-Relacional (SGBDOR) contiene ambas tecnologías: relacional y de objetos.
En una Base de Datos Objeto Relacional el diseñador puede crear sus propios tipos de datos y crear métodos para esos tipos de datos.
Por ejemplo, podríamos definir un tipo de la siguiente manera:
CREATE TYPE persona_t AS OBJECT (
nif VARCHAR2(9),
nombre VARCHAR2(30),
direccion VARCHAR2(40),
telefono VARCHAR2(15),
fecha_nac DATE);
Por poner un ejemplo, si consideramos la base de datos Oracle, debido a los requerimientos de las nuevas aplicaciones, el sistema de gestión de bases de datos relacional desde versión 8i fue extendido con conceptos del modelo de bases de datos orientadas a objetos. De esta manera, aunque las estructuras de datos que se utilizan para almacenar la información siguen siendo tablas, los diseñadores pueden utilizar muchos de los mecanismos de orientación a objetos para definir y acceder a los datos. Se reconoce el concepto de objetos, de tal manera que un objeto tiene un tipo, se almacena en cierta fila de cierta tabla y tiene un identificador único (OID). Estos identificadores se pueden utilizar para referenciar a otros objetos y así representar relaciones de asociación y de agregación.
La ventaja de este tipo de base de datos es que los usuarios pueden pasar sus aplicaciones actuales sobre bases de datos relaciones este nuevo modelo sin tener que reescribirlas. Más tarde, se pueden ir adaptando las aplicaciones y bases de datos para que utilicen las funciones orientadas a objetos.
Con las Bases de Datos Objeto-Relacional se amplía el modelo relacional destacando las siguientes aportaciones:
- Se aumentan la variedad en los tipos de datos,
- se pueden crear nuevos tipos de datos que permitan construir aplicaciones complejas con una gran riqueza de dominios. Se soportan tipos complejos como: registros, conjuntos, referencias, listas, pilas, colas y vectores.
- Hay extensiones en el control de la Semántica de datos Objeto-Relacionales:
- Se pueden crear procedimientos almacenados y funciones que tengan un código en algún lenguaje de programación, como por ejemplo: SQL, Java, C, etc.
- Se pueden compartir varias librerías de clases ya existentes, esto es lo que conocemos como reusabilidad.
Como productos comerciales de bases de Datos Objeto-Relacional podemos destacar:
- DB2 Universal Database de IBM (International Business Machines).
- Universal Server de Informix (ahora de IBM),
- INGRES II, de Computer Associates.
- ORACLE de Oracle Corporation,
- SyBASE
Como productos de código abierto, destacamos PostGreSQL.
Es un programa almacenado físicamente en una base de datos. Su implementación varía de un gestor de bases de datos a otro.
Un procedimiento almacenado (stored procedure en inglés) es un programa que se almacena físicamente en una base de datos.