Exposicion BDUnidad 7 (1)

30
Unidad 7 Base de Datos Orientadas a Objetos

description

Base de Datos U7

Transcript of Exposicion BDUnidad 7 (1)

Presentacin de PowerPoint

Unidad 7Base de Datos Orientadas a ObjetosLas bases de datos orientadas a objetos (BDOO) son aquellas cuyo modelo de datos est orientado a objetos y almacenan y recuperan objetos en los que se almacena estado y comportamiento. Su origen se debe a que en los modelos clsicos de datos existen problemas para representar cierta informacin, puesto que aunque permiten representar gran cantidad de datos, las operaciones que se pueden realizar con ellos son bastante simples. 7.1 Visin GeneralLos modelos de bases de datos tradicionales (relacional, red y jerrquico) han sido capacesde satisfacer con xito las necesidades, en cuanto a bases de datos, de las aplicaciones degestin tradicionales. Sin embargo, presentan algunas deficiencias cuando se trata de aplicaciones ms complejas o sofisticadas.La estructura de los objetoses ms compleja, las transacciones son de larga duracin, se necesitan nuevos tipos de datos para almacenar imgenes y textos, y hace falta definir operaciones no estndar.

La orientacin a objetos ofrece flexibilidad para manejar algunosde estos requisitos y no est limitada por los tipos de datos y los lenguajes de consulta delos sistemas de bases de datos tradicionales.

Una caracterstica clave de las bases de datos orientadas a objetos es la potencia que proporcionan al diseador al permitirle especificar tanto la estructura de objetos complejos, como las operaciones que se pueden aplicar sobredichos objetos.

7.2 Tipos de datos complejosColeccionesLos conjuntos son ejemplares de los tipos coleccin. Otros ejemplares son los arrays y los multiconjuntos (es decir, colecciones sin orden donde un elemento puede aparecer varias veces). Las siguientes deniciones de atributos ilustran la declaracin de un array:array-autores varchar(20) array [10] array-autores es un array de hasta 10 nombres de autor.Se puede acceder a los elementos del array especicando el ndice del array, por ejemplo, array-autores[1].

Objetos de gran tamao (LOB)

Muchas aplicaciones actuales de bases de datos necesitan almacenar atributos grandes (del orden de varios Kbytes), tales como la fotografa de una persona, o muy grandes (del orden de varios Mbytes o incluso Gbytes), tales como imgenes mdicas de alta resolucin o clips de vdeo.Las letras lob en estos tipos de datos son acrnimos de Large OBject (objeto grande).

Tipos estructurados

Los tipos estructurados permiten la representacin directa de atributos compuestos de los diagramas E-R.

Un tipo estructurado puede tener mtodos denidos sobre l.

Constructores

Se deben denir funciones constructoras para crear valores de tipos estructurados. En SQL y en muchos otros lenguajes se utiliza una funcin con el mismo nombre que un tipo estructurado como funcin constructora.

De manera predeterminada, cada tipo estructurado tiene un constructor sin argumentos, que establece los atributos a sus valores predenidos.

7.3 Tipos estructurados y herencia en SQL

Los tipos estructurados permiten la representacin directa de atributos compuestos de los diagramas E-R.

Los tipos estructurados se pueden declarar y usar en SQL como en el siguiente ejemplo:

create type Editorial as(nombre varchar(20),sucursal varchar(20))create type Libro as(ttulo varchar(20),array-autores varchar(20) array [10],fecha-pub date,editorial Editorial,lista-palabras-clave setof(varchar(20)))create table libros of type Libro

La primera instruccin define el tipo Editorial, que tiene dos componentes: un nombre y una sucursal. La segunda instruccin define el tipo Libro, que contiene ttulo, array-autores, que es un array de autores, una fecha de publicacin, una editorial (de tipo Editorial) y un conjunto de palabras clave. (La declaracin de lista-palabrasclave como un conjunto usa la sintaxis extendida y no est soportada en la norma SQL) Los tipos ilustrados se denomina tipos estructurados en SQL.

La herencia puede hallarse en el nivel de los tipos o en el nivel de las tablas.

Herencia de tiposSe dispone de la siguiente definicin de tipos para las personas:create type Persona(nombre varchar(20),direccin varchar(20))

Dado que los estudiantes y los profesores tambin son personas, se puede utilizar la herencia para definir los tipos estudiante y profesor en SQL:

create type Estudianteunder Persona(curso varchar(20),departamento varchar(20))create type Profesorunder Persona(sueldo integer,departamento varchar(20))

Tanto Estudiante como Profesor heredan los atributos de Persona, es decir, nombre y direccin. Estudiante y Profesor se denominan subtipos de Persona y sta, a su vez, es un supertipo de Estudiante y de Profesor.

Los mtodos de un tipo estructurado se heredan por sus subtipos, al igual que los atributos. Sin embargo, un subtipo puede redefinir el efecto de un mtodo declarando de nuevo el mtodo, usando overriding method en lugar de method en la declaracin del mtodo.

Supngase ahora que se desea guardar la informacin sobre los ayudantes, que son simultneamente estudiantes y profesores, quizs incluso en departamentos diferentes. Esto se puede hacer usando la herencia mltiple.

Por ejemplo, si el sistema de tipos permite la herencia mltiple, se puede definir un tipo para los ayudantes de la manera siguiente:

create type Ayudanteunder Estudiante, ProfesorAyudante heredara todos los atributos de Estudiante y de Profesor.

7.4 Herencia de tablas

Las subtablas en SQL se corresponden con la nocin del modelo E-R de la especializacin y la generalizacin. Por ejemplo, supngase que se define la tabla personas de la manera siguiente:create table persona of PersonaSe pueden definir entonces las tablas estudiantes y profesores como subtablas de persona:

create table estudiantes of Estudianteunder personacreate table profesores of Profesorunder persona

Los tipos de las subtablas deben ser subtipos del tipo de la tabla padre. Por tanto, cada atributo presente en persona debe estar tambin presente en las subtablas. Si una consulta usa la tabla persona, encontrar no slo las tuplas insertadas directamente en la tabla, sino tambin las tuplas insertadas en sus subtablas estudiantes y profesores. Sin embargo, slo se puede acceder a los atributos que estn presentes en persona.7.5 Tipos de Arreglo Multiconjunto en SQLSQL soporta dos tipos de conjuntos: arrays y multiconjuntos. Multiconjuntos es un conjunto no ordenado, en el que cada elemento puede aparecer varias veces. A diferencia de los elementos de los multiconjuntos, los elementos de los arrays estn ordenados.

Supngase que se desea registrar informacin sobre libros, incluido un conjunto de palabras clave para cada libro. Supngase tambin 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 estn 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 el 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_palabra_clave varchar(20)multiset)create table libros of Libro

Recurdese que un multiconjunto es un conjunto no ordenado, en el que cada elemento puede aparecer varias veces. Los multiconjuntos son como los conjuntos, salvo que los conjuntos, salvo que los conjuntos permiten que cada elemento aparezca, como mucho, una vez.En general, los atributos multivalorados de los esquemas E-R se pueden asignar en SQL a atributos valorados como multiconjuntos; si el orden es importante , se pueden usar los arrays de SQL en lugar de los multiconjuntos.

SQL ofrece gran variedad de operadores para multiconjuntos, incluido la funcin set, que calcula versin libre duplicada del multiconjunto, la operacin agregada intersection, cuyo resultado es la interseccin de todos los multiconjuntos de un grupo, y el predicado submultiset, comprueba si el multiconjunto esta contenido en otro multiconjunto.7.6 Identidad de los objetos y tipos de referencia en SQLEjemplos de identidadValor. Se utiliza un valor de datos como identidad. Esta forma de identidad se utiliza en los sistemas relacionales. Por ejemplo, el valor de la clave primaria de una tupla identifica a la tupla.Nombre. Se utiliza como identidad un nombre proporcionado por el usuario. Esta forma de identidad suele utilizarse para los archivos en los sistemas de archivos. Cada archivo recibe un nombre que lo identifica de manera unvoca, independientemente de su contenido.Incorporada. Se incluye el concepto de identidad en el modelo de datos o en el lenguaje de programacin y no hace falta que el usuario proporcione ningn identificador. Esta forma de identidad se utiliza en los sistemas orientados a objetos. Cada objeto recibe del sistema de manera automtica un identificador en el momento en que se crea.

Los lenguajes orientados a objetos proporcionan la posibilidad de hacer referencia a los objetos. El atributo de un tipo puede ser una referencia a un objeto de un tipo especificado. Por ejemplo, en SQL se puede definir un tipo Departamento, con campos nombre y director, que es una referencia al tipo Persona, y una tabla departamentos de tipo Departamento, como sigue:

create type Departamento( nombre varchar(20), director ref(Persona) scope persona) create table departamentos of DepartamentoLa referencia en este ejemplo est restringida a tuplas de la tabla persona. La restriccin de scope de una referencia a las tuplas de una tabla es obligatoria en SQL y hace que las referencias se comporten como claves externas

La tabla referenciada debe tener un atributo que almacene el identificador de la tupla. Este atributo, denominado atributo autorreferencial, se declara aadiendo la clusula ref is a la instruccin create table.create table persona of Persona ref is ido system generatedDonde ido es un nombre de atributo, no una palabra clave. La subconsulta anterior podra usar select p.ido en lugar de select ref(p).

Una alternativa a los identificadores generados por el sistema es permitir a los usuarios generar identificadores. El tipo del atributo autorreferencial se debe especificar como parte de la definicin de tipos de la tabla referenciada, y la definicin de tabla debe especificar que la referencia la genera el usuario (user generated).create type Persona (nombre varchar(20), direccin varchar(20)) ref using varchar(20) create table persona of Persona ref is ido user generated

Al insertar una tupla en persona se debe proporcionar un valor para el identificador:

insert into persona values (01284567, Juan, Plaza Mayor, 1)Ninguna otra tupla de persona o sus supertablas pueden tener el mismo identificador. Se puede entonces usar el valor del identificador al insertar una tupla en departamentos, sin necesitar una consulta separada para obtener el identificador. insert into departamentos values (Informtica, 01284567)

La orientacin a objetos constituye una nueva forma de pensar acerca de problemas empleando modelos que se han organizado tomando como base conceptos del mundo real.

Los modelos orientados a objetos son tiles para comprender problemas, comunicarse con expertos en esa aplicacin, modelar empresas, preparar documentacin y disear programas y bases de datos.

7.7 Implementacin de las caractersticas OREl beneficio principal no es un tiempo de desarrollo ms reducido, el desarrollo orientado a objetos puede requerir ms tiempo que el desarrollo convencional porque se pretende que promueva la reutilizacin futura y la reduccin de los posteriores errores y el futuro mantenimiento.Las bases de datos orientadas a objetos unen dos tecnologas:La de las bases de datos y la de los lenguajes orientados a objetos. Los LPOO aportan gran capacidad en la manipulacin de datos, pero no implementan el almacenamiento y consulta de grandes volmenes de datos.

Por el contrario, las bases de datos convencionales aportan un dominio de las tcnicas de almacenamiento y consulta de grandes volmenes de datos, aunque su capacidad de manipulacin es limitada.Las bases de datos orientadas a objetos pretenden unir la capacidad de manipulacin de datos de los LPOO con la capacidad de almacenamiento y consulta de los SGBD.a)Crear objetosb) Crear clases para organizar objetosc)Llamar mtodos para acceder objetos especficosd) Estructuras jerrquicas de herencia para organizar clases y sub-clases