2. 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.
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 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.
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 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.
9. 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
10. 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)
11. 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
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 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
14. 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.
15. 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
16. 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