Temario
Base de datos basada en objetos
Tipos de datos complejos Tipos estructurados y herencia en SQL Herencia de tablas
orientados a objetos
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
fundamentos relacionales, es especial, el acceso declarativo a los datos, mientras extienden la potencia de modelado.
datos complejos
Con datos atmicos las consultas son complicadas
y costosas.
Tipos de datos estructurados admiten u tipo con
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
Compiladores
[Gmez, santos]
(McGraw-Hill, NuevaYork)
Redes
[Santos, Escudero]
(Oxford, Londres)
{Internet, Web}
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
not final
Mtodos
Se pueden definir mtodos en los tipos estructurados.
cliente:
select nombre.apellidos, edadAFecha (current_date) from cliente
Herencia de tipos
Suponga que se tiene la siguiente definicin de tipo para las
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
Herencia Mltiple
SQL:1999 y SQL:2003 no soporta herencia mltiple
Si se soporta entonces la herencia se definira de la
siguiente manera:
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.
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
(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 ])
select titulo from libros where base de datos in (unnest(conjunto_palabra_clave)) Podemos tener acceso a elementos individuales de un arreglo utilizando ndices.
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 )
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
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
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
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.
Tipos de datos complejos, integracin con los lenguajes de programacin, elevado rendimiento.
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.
para permitir que los objetos se guarden y almacenen a si mismos. falla la reutilizacin y cohesin.
Todos los objetos persistentes en el sistema
independientes, cuyo papel sea hacerse cargo del almacenamiento y recuperacin de las otras clases.
viceversa
Aceleran el trabajo
herencia, polimorfismo.
Tambin suelen proporcionar servicios para