PORQUE SURGE LA NECESIDAD DE LAS BDOO? 
DE igual forma que los sistemas de bases de datos fueron aplicados a rangos más 
amplios de aplicaciones, incluyendo, por ejemplo, diseño asistido por computadora, 
las limitaciones impuestas por el modelo relacional han surgido como obstáculos. 
Las aplicaciones de bases de datos tradicionales consisten en tareas de 
procesamiento de datos, tales como la banca y la gestión de nóminas. Dichas 
aplicaciones presentan conceptualmente tipos de datos simples. Los 
elementos de datos básicos son registros bastante pequeños y cuyos campos son 
atómicos, es decir, no contienen estructuras adicionales y en los que se cumple 
la primera forma normal.
CARACTERÍSTICAS DE BDOO 
Las bases de datos orientadas a objetos fueron creadas para trabajar con 
lenguajes 
de programación como Java, C#, C++ y Visual basic. 
Cuando se crea una BDOO se tienen en cuenta las siguientes 
características.- 
*Mandatarias.- Son obligatorias 
*Opcionales.- Estas no son obligatorias y están para que el sistema sea 
mejor. 
*Abiertas.- Aquí el diseñador de la BD puede poner su parte y se relacionan 
con la 
programación
La diferencia entre base de datos relacional y la orientada a objetos es que en la 
relacional los datos se almacenan en tablas, mientras que en la orientada a objetos 
se almacenan en objetos. Al igual que la programación orientada a objetos, se 
trabaja con términos semejantes como por ejemplo.- 
Objetos.- Cada entidad del mundo real se modela como un objeto. 
Encapsulamiento.- Cada objeto contiene y define procedimientos y la interfaz 
mediante la cual se puede acceder a el y a otros objetos. 
Herencia.- Propiedad a través de la cual los objetos heredan comportamiento dentro de una 
jerarquía de clases. 
Polimorfismo.- Propiedad de una operación mediante la cual puede ser aplicada a distintos tipos de 
objeto.
PERSISTENCIA DE OBJETOS.- 
Los lenguajes de programación orientados a objetos ya poseen un concepto de los 
mismos, un sistema de tipos para definir sus tipos y constructoras para crearlos. Sin 
embargo, estos objetos son transitorios, desaparecen en cuanto se termina el 
programa, igual que ocurre con las variables de los programas en Pascal o en C. Si 
se desea transformar uno de estos lenguajes en un lenguaje para la programación 
de bases de datos, el primer paso consiste en proporcionar una manera de hacer 
persistentes a los objetos. Se han propuesto varios enfoques.
*Persistencia por clases.- Todos los objetos de las clases no persistentes 
son 
transitorios. 
*Persistencia por creación.- En este enfoque se introduce una sintaxis 
nueva para crear los objetos persistentes mediante la extensión de la 
sintaxis para la 
creación de los objetos transitorios. Por tanto, los objetos son persistentes 
o 
transitorios en función de la manera de crearlos. Este enfoque se sigue en 
varios 
sistemas de bases de datos orientados a objetos. 
*Persistencia por alcance. Uno o varios objetos se declaran objetos 
persistentes 
(objetos raíz) de manera explícita. Todos los demás objetos serán 
persistentes si (y 
sólo si) son alcanzables desde el objeto raíz mediante una secuencia de 
una o más 
referencias.
IDENTIDAD DE OBJETOS 
Un sistema de BDOO provee una identidad única a cada objeto independiente 
almacenado en la base de datos. Esta identidad única suele implementarse con un 
identificador de objeto único, generado por el sistema, u OID. El valor de un OID no 
es visible para el usuario externo, sino que el sistema lo utiliza a nivel interno para 
identificar cada objeto de manera única y para crear y manejar las referencias entre 
objetos.
Algunos modelos de datos OO requieren que todo se represente como un objeto, ya 
sea un valor simple o un objeto complejo; así, todo valor básico, como un entero, 
una cadena o un valor booleano, tiene un OID. Con ello dos valores básicos pueden 
tener diferentes OID, lo cual es muy útil en algunos casos. 
*Los objetos tienen identidades únicas, independientes de los valores de sus 
atributos. 
*La estructura orientad a objetos automáticamente impone las restricciones 
relacionales, generalmente más aplicables: dominio, llave integridad de entidad e 
integridad referencial.
TIPOS ESTRUCTURADOS Y HERENCIA SQL 
Los tipos estructurados permiten representar directamente los atributos 
compuestos de los diagramas E-R. Por ejemplo, se puede definir el siguiente tipo 
estructurado para representar el atributo compuesto nombre con los atributos 
componentes nombre_pila y apellidos: 
create type Nombre as 
(nombre_pila varchar(20), 
apellidos varchar(20)) 
final
En SQL estos tipos se denominan tipos definidos por el usuario. Las 
especificaciones final indica que no se puede crear subtipos de nombre, mientras 
que la especificación not final de dirección indica que se pueden crear subtipos de 
dirección. Ahora se pueden usar estos tipos para crear atributos compuestos en las 
relaciones, con sólo declarar que un atributo es de uno de estos tipos. Por ejemplo, 
se puede crear una tabla cliente de la siguiente manera. 
create table cliente ( 
nombre Nombre, 
direccion Direccion, 
fecha_nacimiento date)
Se puede tener acceso a los componentes de los atributos compuestos usando la 
notación “punto”; por ejemplo, nombre.nombre_pila devuelve el componente 
nombre de pila del atributo nombre. El acceso al atributo nombre devolvería un valor 
del tipo estructurado Nombre. 
select nombre.apellido, direccion.ciudad 
from cliente
HERENCIA DE TABLAS 
Las subtablas de SQL se corresponden con el concepto de especialización 
generalización de E-R Por ejemplo, supóngase que se define la tabla personas de la 
siguiente manera: 
create table personas of Persona
SQL permite hallar tuplas que se encuentran en personas pero no en sus subtablas 
usando en las consultas “only personas” en lugar de personas. La palabra clave only 
también puede usarse en las sentencias delete y update. Sin la palabra clave only, 
la instrucción delete aplicada a una supertabla, como personas, también borra las 
tuplas que se insertaron originalmente en las subtablas (como estudiantes); por 
ejemplo, la instrucción 
delete from personas where P
Supóngase que se desea registrar información sobre libros, incluido un 
conjunto de palabras clave para cada libro. Supóngase también que se deseara 
almacenar el nombre de los autores de un libro en forma de array; 
a diferencia de los elementos de los multiconjuntos, los elementos de los 
arrays están ordenados, de modo que se puede distinguir el primer autor del 
segundo autor, etc. El ejemplo siguiente ilustra la manera en que se puede 
definir en SQL estos atributos como arrays y como multiconjuntos.
create type Editor as 
(nombre varchar(20), 
sucursal varchar(20)) 
create type Libro as 
(titulo varchar(20), 
array_autores varchar(20) array[10], 
fecha_publicacion date, 
editor Editor, 
conjunto_palabras_clave varchar(20) multiset) 
create table libros of Libro
TIPOS DE ARREGLO MULTICONJUNTO EN SQL. 
Un multiconjunto es una colección de elementos del mismo tipo, sin orden y 
permitiendo la existencia de elementos repetidos. El tipo de elemento puede ser 
cualquier otro tipo de SQL. 
INTEGER MULTISET indica el tipo de un valor del multiconjunto cuyo tipo de 
elemento 
es INTEGER. 
El tipo de elemento también podría ser otro tipo de colección, que permitiera 
colecciones anidadas. Un multiconjunto es una colección ilimitada, sin cordialidad 
máxima definida. 
El tipo MULTISET tiene operaciones para convertir un multiconjunto en un array o en 
otro 
multiconjunto cuyos elementos sean de un tipo compatible, para eliminar duplicados 
del 
multiconjunto, para devolver el número de elementos de un multiconjunto dado, y para 
volver el elemento de un multiconjunto que sólo tiene un elemento
FUENTES.- 
http://es.slideshare.net/AndresMachado1/bases-de-datos-orientadas-a-objetos14795100 
LIBRO FUNDAMENTOS DE BASES DE DATOS CUARTA EDICION. – 
Abraham 
Silberschatz, Henry F. Korth Y S. Sudarshan.

Bases de datos orientado a objetos

  • 2.
    PORQUE SURGE LANECESIDAD DE LAS BDOO? DE igual forma que los sistemas de bases de datos fueron aplicados a rangos más amplios de aplicaciones, incluyendo, por ejemplo, diseño asistido por computadora, las limitaciones impuestas por el modelo relacional han surgido como obstáculos. Las aplicaciones de bases de datos tradicionales consisten en tareas de procesamiento de datos, tales como la banca y la gestión de nóminas. Dichas aplicaciones presentan conceptualmente tipos de datos simples. Los elementos de datos básicos son registros bastante pequeños y cuyos campos son atómicos, es decir, no contienen estructuras adicionales y en los que se cumple la primera forma normal.
  • 3.
    CARACTERÍSTICAS DE BDOO Las bases de datos orientadas a objetos fueron creadas para trabajar con lenguajes de programación como Java, C#, C++ y Visual basic. Cuando se crea una BDOO se tienen en cuenta las siguientes características.- *Mandatarias.- Son obligatorias *Opcionales.- Estas no son obligatorias y están para que el sistema sea mejor. *Abiertas.- Aquí el diseñador de la BD puede poner su parte y se relacionan con la programación
  • 4.
    La diferencia entrebase de datos relacional y la orientada a objetos es que en la relacional los datos se almacenan en tablas, mientras que en la orientada a objetos se almacenan en objetos. Al igual que la programación orientada a objetos, se trabaja con términos semejantes como por ejemplo.- Objetos.- Cada entidad del mundo real se modela como un objeto. Encapsulamiento.- Cada objeto contiene y define procedimientos y la interfaz mediante la cual se puede acceder a el y a otros objetos. Herencia.- Propiedad a través de la cual los objetos heredan comportamiento dentro de una jerarquía de clases. Polimorfismo.- Propiedad de una operación mediante la cual puede ser aplicada a distintos tipos de objeto.
  • 5.
    PERSISTENCIA DE OBJETOS.- Los lenguajes de programación orientados a objetos ya poseen un concepto de los mismos, un sistema de tipos para definir sus tipos y constructoras para crearlos. Sin embargo, estos objetos son transitorios, desaparecen en cuanto se termina el programa, igual que ocurre con las variables de los programas en Pascal o en C. Si se desea transformar uno de estos lenguajes en un lenguaje para la programación de bases de datos, el primer paso consiste en proporcionar una manera de hacer persistentes a los objetos. Se han propuesto varios enfoques.
  • 6.
    *Persistencia por clases.-Todos los objetos de las clases no persistentes son transitorios. *Persistencia por creación.- En este enfoque se introduce una sintaxis nueva para crear los objetos persistentes mediante la extensión de la sintaxis para la creación de los objetos transitorios. Por tanto, los objetos son persistentes o transitorios en función de la manera de crearlos. Este enfoque se sigue en varios sistemas de bases de datos orientados a objetos. *Persistencia por alcance. Uno o varios objetos se declaran objetos persistentes (objetos raíz) de manera explícita. Todos los demás objetos serán persistentes si (y sólo si) son alcanzables desde el objeto raíz mediante una secuencia de una o más referencias.
  • 7.
    IDENTIDAD DE OBJETOS Un sistema de BDOO provee una identidad única a cada objeto independiente almacenado en la base de datos. Esta identidad única suele implementarse con un identificador de objeto único, generado por el sistema, u OID. El valor de un OID no es visible para el usuario externo, sino que el sistema lo utiliza a nivel interno para identificar cada objeto de manera única y para crear y manejar las referencias entre objetos.
  • 8.
    Algunos modelos dedatos OO requieren que todo se represente como un objeto, ya sea un valor simple o un objeto complejo; así, todo valor básico, como un entero, una cadena o un valor booleano, tiene un OID. Con ello dos valores básicos pueden tener diferentes OID, lo cual es muy útil en algunos casos. *Los objetos tienen identidades únicas, independientes de los valores de sus atributos. *La estructura orientad a objetos automáticamente impone las restricciones relacionales, generalmente más aplicables: dominio, llave integridad de entidad e integridad referencial.
  • 9.
    TIPOS ESTRUCTURADOS YHERENCIA SQL Los tipos estructurados permiten representar directamente los atributos compuestos de los diagramas E-R. Por ejemplo, se puede definir el siguiente tipo estructurado para representar el atributo compuesto nombre con los atributos componentes nombre_pila y apellidos: create type Nombre as (nombre_pila varchar(20), apellidos varchar(20)) final
  • 10.
    En SQL estostipos se denominan tipos definidos por el usuario. Las especificaciones final indica que no se puede crear subtipos de nombre, mientras que la especificación not final de dirección indica que se pueden crear subtipos de dirección. Ahora se pueden usar estos tipos para crear atributos compuestos en las relaciones, con sólo declarar que un atributo es de uno de estos tipos. Por ejemplo, se puede crear una tabla cliente de la siguiente manera. create table cliente ( nombre Nombre, direccion Direccion, fecha_nacimiento date)
  • 11.
    Se puede teneracceso a los componentes de los atributos compuestos usando la notación “punto”; por ejemplo, nombre.nombre_pila devuelve el componente nombre de pila del atributo nombre. El acceso al atributo nombre devolvería un valor del tipo estructurado Nombre. select nombre.apellido, direccion.ciudad from cliente
  • 12.
    HERENCIA DE TABLAS Las subtablas de SQL se corresponden con el concepto de especialización generalización de E-R Por ejemplo, supóngase que se define la tabla personas de la siguiente manera: create table personas of Persona
  • 13.
    SQL permite hallartuplas que se encuentran en personas pero no en sus subtablas usando en las consultas “only personas” en lugar de personas. La palabra clave only también puede usarse en las sentencias delete y update. Sin la palabra clave only, la instrucción delete aplicada a una supertabla, como personas, también borra las tuplas que se insertaron originalmente en las subtablas (como estudiantes); por ejemplo, la instrucción delete from personas where P
  • 14.
    Supóngase que sedesea registrar información sobre libros, incluido un conjunto de palabras clave para cada libro. Supóngase también que se deseara almacenar el nombre de los autores de un libro en forma de array; a diferencia de los elementos de los multiconjuntos, los elementos de los arrays están ordenados, de modo que se puede distinguir el primer autor del segundo autor, etc. El ejemplo siguiente ilustra la manera en que se puede definir en SQL estos atributos como arrays y como multiconjuntos.
  • 15.
    create type Editoras (nombre varchar(20), sucursal varchar(20)) create type Libro as (titulo varchar(20), array_autores varchar(20) array[10], fecha_publicacion date, editor Editor, conjunto_palabras_clave varchar(20) multiset) create table libros of Libro
  • 16.
    TIPOS DE ARREGLOMULTICONJUNTO EN SQL. Un multiconjunto es una colección de elementos del mismo tipo, sin orden y permitiendo la existencia de elementos repetidos. El tipo de elemento puede ser cualquier otro tipo de SQL. INTEGER MULTISET indica el tipo de un valor del multiconjunto cuyo tipo de elemento es INTEGER. El tipo de elemento también podría ser otro tipo de colección, que permitiera colecciones anidadas. Un multiconjunto es una colección ilimitada, sin cordialidad máxima definida. El tipo MULTISET tiene operaciones para convertir un multiconjunto en un array o en otro multiconjunto cuyos elementos sean de un tipo compatible, para eliminar duplicados del multiconjunto, para devolver el número de elementos de un multiconjunto dado, y para volver el elemento de un multiconjunto que sólo tiene un elemento
  • 17.
    FUENTES.- http://es.slideshare.net/AndresMachado1/bases-de-datos-orientadas-a-objetos14795100 LIBROFUNDAMENTOS DE BASES DE DATOS CUARTA EDICION. – Abraham Silberschatz, Henry F. Korth Y S. Sudarshan.