Sei sulla pagina 1di 25

CAPITULO 1 BASE DE DATOS BASADA EN OBJETOS

Ing. Hernn Nina Hanco

Temario
Base de datos basada en objetos
Tipos de datos complejos Tipos estructurados y herencia en SQL Herencia de tablas

Tipos array y multiconjunto en SQL


Identidad de los objetos y tipos de referencia en SQL Implementacin de caractersticas O-R Lenguajes de programacin persistentes Sistemas orientados a objetos y sistemas relacionales

orientados a objetos

Base de datos basada en objetos


Solucionan el problema de trabajar con

tipos de datos complejos en las bases de datos relacionales.

Modelo de datos relacional orientado a objetos


Extiende el modelo de datos relacional

ofreciendo un sistema de tipos ms rico que incluye tipos de datos complejos y orientados a objetos.
Permite que los atributos de las filas tengan

datos complejos. Incluyendo valores no atmicos.


Las extensiones intentan conservar los

fundamentos relacionales, es especial, el acceso declarativo a los datos, mientras extienden la potencia de modelado.

Tipos de datos complejos


Existe una creciente demanda de aplicaciones con

datos complejos
Con datos atmicos las consultas son complicadas

y costosas.
Tipos de datos estructurados admiten u tipo con

subpartes o valores con dominios no atmicos.


Con Sistemas de tipos de datos complejos se

pueden representar directamente conceptos del modelo E-R, como los atributos compuestos, los atributos multivalorados, la generalizacin y especializacin.
En aplicaciones complejas los tipos complejos

permiten construir modelos mas intuitivos.

Representacin de una relacin con tipos de datos complejos


Relacion Libro en 4FN Autores(ttulo, autor, posicin) Palabras_clave(ttulo, palabra_clave) Libros(ttulo, nombre_editor, sucursal_editor) Conjunto_palabras clave {anlisis sintctico, anlisis}

Relacin Libro con tipos complejos Ttulo Array_autores

Editor (nombre, sucursal)

Compiladores

[Gmez, santos]

(McGraw-Hill, NuevaYork)

Redes

[Santos, Escudero]

(Oxford, Londres)

{Internet, Web}

Tipos complejos array

Tipos complejos estructurados

Tipos complejos como conjuntos

Tipos estructurados y herencia en SQL


SQL:1999 aadi un sistema de tipos

extenso(tipos estructurados y herencia de tipos) a SQL.


No estn completamente

implementados en los actuales SGBD


Algunas caractersticas estn

presentes en los SGBD comerciales.

Tipos estructurados y herencia

Los Tipos estructurados pueden ser declarados y usados en SQL


create type Nombre as (nombres varchar(20), apellidos varchar(20)) final create type Direccion as (calle varchar(20), ciudad varchar(20), codigopostal varchar(20)) not final

Nota: final y not final indica si se pueden crear mas subtipos.

Los tipos estructurados pueden ser usados para crear tablas con atributos compuestos. create table Cliente ( nombre Nombre, direccion Direccion, fecha_nac date)

Se puede tener acceso a los componentes de los atributos usando la notacin punto; por ejemplo: nombre.nombres

Tipos estructurados (continua..)


Tambin se pueden crear una tabla cuyas

filas sean de un tipo definido por el usuario.


create type TipoCliente as (
nombre Nombre,
direccion Direccion, fecha_nac date)

not final

create table Cliente of TipoCliente

Mtodos
Se pueden definir mtodos en los tipos estructurados.

method edadAFecha (aFecha date) returns interval year


El cuerpo del mtodo se crea por separado.

create instance method edadAFecha (aFecha date)


returns interval year for TipoCliente begin return aFecha - self.fecha_nac; end Se puede invocar el metodo para averiguar la edad de cada

cliente:
select nombre.apellidos, edadAFecha (current_date) from cliente

Herencia de tipos
Suponga que se tiene la siguiente definicin de tipo para las

personas: create type Persona (nombre varchar(20), direccion varchar(20))


Utilizando herencia se pueden definir los tipos estudiante y profesor.

create type Estudiante under Persona (grado varchar(20), departmento varchar(20)) create type Profesor under Persona (salario integer, departmento varchar(20))
Cada subtipo puede redefinir el efecto de los mtodos volviendo a

declararlos, usando overriding method

Herencia Mltiple
SQL:1999 y SQL:2003 no soporta herencia mltiple
Si se soporta entonces la herencia se definira de la

siguiente manera:

create type Teaching Assistant under Student, Teacher

Herencia de tablas
Las subtablas de SQL se corresponden con el

concepto de especializacin/generalizacin de E-R. create table personas of Persona create table estudiantes of Estudiante under personas create table profesores of Profesor under personas
Los tipos de las subtablas deben ser subtipos de la

tabla madre. Por tanto, todos los atributos presentes en persona tambin estn presentes en las subtablas.

Tipos array y multiconjunto en SQL


Ejemplo de tipos array y multiconjunto en SQL:

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_palabra_clave varchar(20) multiset )
create table libros of Libro

Creacin y acceso a los valores de los conjuntos


Construccin de Array

array [Silberschatz,`Korth,`Sudarshan] Multiconjuntos multisetset [computer, database, SQL]


Para crear una fila de tipo definido para la relacin libro:

(Compiladires, array[`Smith,`Jones], Editores (`McGraw-Hill,`New York), multiset [`anlisis sintactico,`analisis ]) Para insertar la fila anterior en la relacin Libro: insert into Libro values (Compiladires, array[`Smith,`Jones], Editores (`McGraw-Hill,`New York), multiset [`anlisis sintactico,`analisis ])

Consulta de los atributos valorados como conjuntos


Buscar todos los libros que tienen la palabra clave base de datos,

select titulo from libros where base de datos in (unnest(conjunto_palabra_clave)) Podemos tener acceso a elementos individuales de un arreglo utilizando ndices.

Ejemplo: si queremos conocer un libro en particular que tiene tres autores:

select array-autores[1], array-autores[2], array-autores[3] from libros where titulo = `fundamentos de bases de datos Supongamos que se desea una relacion que contenga la pareja de la forma titulo, nombre_autor para cada libro y para cada uno de sus autores. select B.titulo, A.autor from libros as B, unnest (B.array-autores) as A (autor )

Identidad de los objetos y tipos de referencia en SQL


Define el tipo Departamento con el campo nombre y

el campo director, que es una referencia al tipo Persona.


create type Departamento ( nombre varchar (20), director ref (Persona) scope personas)
Nosotros podemos crear la tabla departamentos

como sigue: create table departamentos of Departamento

Identificadores generados por el usuario La tabla a la que se hace referencia debe tener un atributo que guarde el identificador de cada fila.
create type Persona (nombre varchar(20) direccion varchar(20)) ref using varchar(20) create table personas of Persona ref is persona_id user generated

Implementacin de las caractersticas O-R


Similar a las caractersticas E-R de

mapeo o transformacin a esquemas relaciones.


Implementacin de subtablas
Cada

tabla almacena la clave primaria y sus atributos que se definen en la subtabla. o, tabla almacena todos los atributos tanto definidos en la supertabla y subtabla.

Cada

Lenguajes de programacin persistentes


Son lenguajes de programacin extendidos con

estructuras para el tratamiento de datos persistentes.


Los programadores pueden manipular datos persistentes

de manera directa.

No necesitan escribir cdigo para la bsqueda en la menora o volver a guardarlo el disco. Por clases declaracin explicita de persistencia. Por creacin sintaxis especial para crear objetos persistentes Por marcas marcar los objetos como persistentes despus de haberlo creado.

Objetos persistente:

Por alcance

Lenguajes de programacin persistentes (continua)


Las extensiones de persistencia de C++ y Java

integran la persistencia de forma elegante y ortogonalmente a sus elementos de programacin previos, por lo que resulta fcil de usar.
La norma ODMG define las clases y otros

constructores para la creacin y acceso a los objetos persistentes desde C++, mientras que la norma JDO(Java Database Object) ofrece una funcionalidad equivalente para java.

Comparacin de O-O y Bases de datos O-R


Sistemas relacionales

Tipos de datos sencillos, lenguajes de consulta potentes, proteccin elevada.

Bases de datos orientadas a objetos

basadas en lenguajes de programacin persistentes:

Tipos de datos complejos, integracin con los lenguajes de programacin, elevado rendimiento.

Sistemas relaciones orientado a objetos

Tipos de datos complejos, lenguajes de consulta potentes, proteccin elevada.

Ejercicios
Una compaa de alquiler de coches tiene una base

de datos con todos los vehculos de su flota actual. Para todos los vehculos incluye, el nmero de matricula, el fabricante, el modelo, la fecha de adquisicin y el color. Se incluyen datos especiales para algunos tipos de vehculos:

Camiones: capacidad de carga. Coches deportivos: potencia, edad mnima del arrendamiento.

Furgonetas: numero de plazas


Vehculos todo terreno: altura de los bajos, eje motor.

Construya una definicin del esquema de esta base

de datos de acuerdo con SQL:1999

Opciones para una arquitectura estratificada


Podemos aadir operaciones a cada clase

para permitir que los objetos se guarden y almacenen a si mismos. falla la reutilizacin y cohesin.
Todos los objetos persistentes en el sistema

podran heredar mtodos de almacenamiento de una superclase abstracta ObjetoPersistente.


Podemos introducir en el sistema, clases

independientes, cuyo papel sea hacerse cargo del almacenamiento y recuperacin de las otras clases.

ORM (Object Relational Mapping)


Realizan el mapeo de objetos a tablas y

viceversa
Aceleran el trabajo

El programador se concentra en el Modelo de Objetos, y deja el mapping a la herramienta

Se encargan de gestionar asociaciones,

herencia, polimorfismo.
Tambin suelen proporcionar servicios para

facilitar el manejo de conexiones y transacciones


Hibernate, toplink oracle, JPA, LinQ

Potrebbero piacerti anche