- Base de datos objeto-relacional
-
Las Base de Datos Objeto Relacional son extensión de las base de datos relacional tradicional, a la cual se le proporcionan características de la programación orientada a objetos. Los ejemplos mostrados están en base al estándar SQL99.
Contenido
Relaciones Anidadas
Nacen como una extensión del modelo relacional, en el que los dominios de dicha base de datos ya no son sólo atómicos, por lo que no se cumple la 1FN, debido a que las tuplas también pueden ser una relación, que llevará a la creación de una relación de relaciones. De este modo, se genera la posibilidad de guardar objetos más complejos en una sola tabla con referencias a otras relaciones, con lo que se acerca más al paradigma de programación orientada a objetos.
Tipos Complejos
Tipos: Dentro de lo que llamamos tipos de datos complejos podemos definir los siguientes:
Colecciones: También conocidos como conjuntos, este tipo de datos clasifican los arrays y los conjuntos en que los elementos pueden aparecer varias veces.
Tipos estructurados: Los tipos estructurados permiten representación directa de los atributos compuestos en los diagramas entidad-relación.
Objetos de gran tamaño: Desde ya hace varios años que se necesita almacenar datos con atributos muy grandes (Varios Mbytes), como libros, canciones, etc. E incluso aún más grandes; como mapas de alta resolución, video, etc. que puede llegar fácilmente a los Gbytes.
Herencia
La herencia puede hallarse en el nivel de los tipos o en el nivel de las tablas. En primer lugar se considerará la herencia de los tipos y después en el nivel de las tablas:
Herencia de tipos: Los tipos derivados heredan los atributos de superclase; los métodos también se heredan por sus subtipos, al igual que los atributos. Sin embargo, un subtipo puede redefinir el efecto de un método declarándolo de nuevo, y esto será lo que se conoce como sobre escritura (overriding) del método.
Ejemplo: create type Persona (nombre varchar(20), dirección varchar(20)) , Con esto se necesita definir varios tipos de personas: create type Estudiante under Persona (curso varchar(20), departamento varchar(20)) create type Profesor under Persona (sueldo integer, departamento varchar(20)) ;
Herencia de tablas: Cada tabla almacena la clave primaria, que se puede heredar de una tabla padre; y los atributos definidos localmente. Los atributos heredados, aparte de la clave primaria, no será necesario guardarlos, podrán obtenerse mediante una reunión con la super tabla basada en la clave primaria. Por lo que cada tabla almacena todos los atributos heredados y definidos localmente. [2] Cuando se inserta una tupla, se almacena sólo en la subtabla en la que se inserta y su presencia se infiere en cada supertabla. El acceso a todos los atributos de una tupla es más rápido, dado que no se requiere una reunión:
Ejemplo: create table estudiantes of Estudiante under persona;
Funciones: Dentro de la base de datos se pueden definir métodos y procedimientos, como Java, C++, etc. Algunos sistemas de base de datos ofrecen sus propios lenguajes, como es el caso de POSTGRESQL, que integra el lenguaje PL/PQSL.
Ejemplo: CREATER FUNCTION contar_hijos(RUT varchar(12)) return integer Begin declare cuenta integer; Select count(hijo) into cuenta from hijos where usuario.RUT = RUT Return cuenta; End Esta función se ocupa del siguiente modo:
Select nombres from usuario where contar_hijos (Rut) > 0;
También se permite el polimorfismo, que quiere decir que pueden existir métodos con el mismo nombre, pero con distinta cantidad de argumentos.
Véase también
Referencias
- Introducción a los sistemas de Bases de Datos Relacionales - Séptima Edición - C.J. Date
- Sistemas de Bases de Datos - Conceptos Fundamentales - ELMASRI-NAVATHE
- Fundamentos de Bases de datos - Abraham Silberschatz - McGRAW-HILL
Enlaces externos
- Wikimedia Commons alberga contenido multimedia sobre Base de datos objeto-relacional. Commons
- ODMS.org
Categoría:- Bases de datos
Wikimedia foundation. 2010.