Вы находитесь на странице: 1из 12

1

Instituto Tecnolgico Superior de Huichapan



Fundamentos de Bases de Datos

Investigacin de la Unidad 7
Bases de Datos Orientadas a Objetos

Nombre del alumno
Ricardo Alberto Garca Zamudio

Nombre del Profesor
I.S.C. Rubn Omar Reyes Lpez


El Saucillo, Huichapan, Hidalgo a
12 de Mayo de 2014
2

Contenido
Introduccin ......................................................................................................................... 1
Visin general ....................................................................................................................... 1
Tipos de datos complejos.................................................................................................... 2
Tipos estructurados y herencia en SQL ............................................................................ 2
Herencia de tipos ............................................................................................................. 3
Herencia de tablas ............................................................................................................... 4
Tipos de arreglo multiconjunto en SQL ........................................................................... 5
Identidad de los objetos y tipos de referencia en SQL ................................................... 6
Implementacin de las caractersticas O-R ...................................................................... 7
Facilidades de bases de datos estndar ........................................................................ 8
Enfoques de construccin de BDOO ............................................................................. 8
Bibliografa .......................................................................................................................... 10











1


Introduccin
En el presente documento se desarrollarn los temas de la unidad 7 de la materia de
fundamentos de bases de datos, la cual trata acerca de las bases de datos orientadas
a objetos, los temas a tratar sern el cmo usar las herencias en MySQL, los datos
complejos, arreglos, referencias, etc.
Se dar a conocer un poco de teora relacionada con cada tema, as como algunos
ejemplos para que los tpicos sean ms entendibles para el lector.
Las bases de datos orientadas a objetos se crearon para tratar de satisfacer las
necesidades de estas nuevas aplicaciones. La orientacin a objetos ofrece exibilidad
para manejar algunos de estos requisitos y no est limitada por los tipos de datos y
los lenguajes de consulta de los 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 especicar tanto la estructura de objetos
complejos, como las operaciones que se pueden aplicar sobre dichos objetos.

Visin general

El modelo de datos orientado a objetos es una adaptacin para los sistemas de bases
de datos del paradigma de la programacin orientada a objetos. Se basa en el
concepto de encapsular los datos en un objeto y el cdigo que opera sobre ellos.
De manera parecida, los objetos estructurados se agrupan en clases. El conjunto de
las clases se estructura en subclases y superclases basadas en una extensin del
concepto E-S del modelo entidad-relacin.
El valor de un elemento de datos de un objeto puede ser un objeto, haciendo posible
representar los continentes de objetos, lo que da lugar a objetos compuestos.
En general, cada objeto est asociado con:
Variables que contiene los datos del objeto, estas se corresponden con los
atributos del modelo E-R.
Mensajes a los que responde, cada uno de ellos puede no tener parmetros,
tener uno o varios.
2

Mtodos, cada uno de los cuales es cdigo que implementa un mensaje, ste
devuelve un valor como respuesta al mensaje.

Tipos de datos complejos

Considrense, un conjunto de direcciones. Mientras una direccin completa puede
ser vista como un elemento de datos atmico de tipo cadena de caracteres, esta forma
de verlo escondera detalles como la calle, la poblacin, la provincia, y el cdigo
postal que podran ser interesantes para las consultas.
Por otra parte, si una direccin se representa dividindola en componentes como
calle, poblacin, provincia y cdigo postal, las consultas escritas seran ms
complicadas, pues tendran que mencionar cada campo.
Una alternativa mejor es permitir tipos de datos estructurados, que admiten un tipo
direccin con subpartes calle, poblacin, provincia y cdigo postal.
Ahora otro ejemplo, considrense los atributos multivalorados del modelo E-R.
Tales atributos son naturales, por ejemplo, para la representacin de nmeros de
telfono, ya que las personas pueden tener ms de un telfono.
La alternativa de normalizacin con la creacin de una nueva relacin es costosa y
artificial para este ejemplo.

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],
3

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 denominan tipos
estructurados en SQL.
La herencia puede hallarse en el nivel de los tipos o en el nivel de las tablas.

Herencia de tipos
Se 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 Estudiante
under Persona
(curso varchar(20),
departamento varchar(20))
create type Profesor
under Persona
(sueldo integer,
departamento varchar(20))
4

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 Ayudante
under Estudiante, Profesor
Ayudante heredara todos los atributos de Estudiante y de Profesor.

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 Persona

Se pueden definir entonces las tablas estudiantes y profesores como subtablas de
persona:

create table estudiantes of Estudiante
under persona
create table profesores of Profesor
under 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
5

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.
Tipos de arreglo multiconjunto en SQL

Los conjuntos son ejemplares de los tipos coleccin. Otros ejemplares son los arrays
y los multiconjuntos, los cuales consisten en colecciones sin orden donde un
elemento puede aparecer varias veces. Las siguientes definiciones de atributos
ilustran la declaracin de un array:
array-autores varchar(20) array [10]
Como se muestra, array-autores es un array de hasta 10 nombres de autor. Se puede
acceder a los elementos del array especificando el ndice del array, por ejemplo,
array-autores[1].
Los arrays son el nico tipo coleccin soportado en SQL la sintaxis usada es como
en la declaracin precedente. Muchas aplicaciones actuales de bases de datos
necesitan almacenar atributos grandes, en varios kilobytes o incluso megabytes,
tales como la fotografa de una persona, o muy grandes, como pueden ser varios
gigabytes o incluso terabytes, tales como imgenes mdicas de alta resolucin o clips
de vdeo.
SQL proporciona por tanto nuevos tipos de datos para objetos de gran tamao para
datos de caracteres llamados clob y binarios a los cuales se les llama blob. Las letras
lob en estos tipos de datos son acrnimos de Large OBject u objeto grande. Por
ejemplo, se pueden declarar los siguientes atributos:
crtica-libro clob(10KB)imagen blob(10MB)
crtica-libro clob(10KB)
imagen blob(10MB)
pelcula blob(2GB)
Los objetos grandes se usan normalmente en aplicaciones externas, y tiene poco
sentido extraerlos completamente en SQL. En su lugar, una aplicacin conseguira
un localizador de un objeto grande y lo usara para manipularlo desde el lenguaje
anfitrin.
Por ejemplo, JDBC permite al programador extraer un objeto grande en pequeos
trozos, en lugar de todo a la vez, de forma muy parecida a la extraccin de datos de
un archivo del sistema operativo.
6


Identidad de los objetos y tipos de referencia en SQL

La identidad de los objetos es un concepto de identidad ms potente que el que suele
hallarse en los lenguajes de programacin o en los modelos de datos que no se basan
en la programacin orientada a objetos.
Ejemplos de identidad:
Valor. 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 sta.

Nombre. Se utiliza como identidad un nombre proporcionado por el usuario.
Esta forma de identidad suele utilizarse para los registros en los sistemas de
archivos. Cada archivo recibe un nombre que lo identifica de manera nica,
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 Departamento
La 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.
7

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 generated
Donde 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.
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)

Implementacin de las caractersticas O-R

8

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.
El 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.
Crear objetos
Crear clases para organizar objetos
Llamar mtodos para acceder objetos especficos
Estructuras jerrquicas de herencia para organizar clases y sub-clases

Facilidades de bases de datos estndar
Facilidades de consultas no procedimentales para recuperar objetos.
Procesamiento y optimizacin de consultas automticas.
Cambios de esquemas dinmicos.
Manejo de transacciones automticas.
Control de concurrencia.
Seguridad e integridad.
Enfoques de construccin de BDOO
1- Primer enfoque
9

Utilizar cdigo actual
No hay que implementar de cero
Se construyen los sistemas a partir de componentes ya probados

2- Segundo enfoque
Extensin de la tecnologa de las BD relacionales.

3- Tercer enfoque
Nueva arquitectura optimizada
Los lenguajes de programacin orientada a objetos requieren que toda la interaccin
con los objetos se realiza mediante el envo de mensajes.
Complejidad de modificacin:
Adicin de una clase.
Eliminacin de una clase.
Identidad de Objetos:
Se debe asignar a cada objeto un OID.
Debe ser inmutable.
Se debe usar una sola vez.
No debe depender de la direccin fsica de almacenamiento.
No debe de depender de ningn atributo.
Constructores Bsicos:
Constructores de tomos.
Constructores de tuplas.
Constructores de Conjuntos.
Compatibilidad con Lenguajes de Programacin:
Extender otros lenguajes de manejo de datos como SQL para que manejen
tipos de datos complejos y la programacin orientada a objetos.
Extender lenguajes de programacin Orientada a Objetos para que trabajen
con bases de datos.
Manejo de Objetos Complejos:
Ofrecer a la aplicacin una porcin del objeto antes de obtener el objeto
completo.
Usar tcnicas de almacenamiento intermedio y cache para obtener
anticipadamente porciones del objeto.
Ventajas en BDOO:
10

Esta su flexibilidad y soporte para el manejo de tipos de datos complejos.
Manipula datos complejos en forma rpida y gilmente.
Desventajas de la BDOO:
La inmadurez del mercado de BDOO constituye una posible fuente de
problemas por lo que debe analizarse con detalle la presencia en el mercado
del proveedor para adoptar una lnea de produccin sustantiva.
Es la falta de estndar en la industria orientado a objetos.

Bibliografa

[1] L. M. Elisa Bertino, Sistemas de bases de datos orientadas a objetos: Conceptos
y arquitecturas., Addison-Wesley.
[2] C. E. Thomas M. Connolly, Sistemas de bases de datos: Un enfoque prctico
para diseo, implementacin y gestin, Pearson Addison- Wesley.
[3] K. S. Silberschatz, Fundamentos de Bases de datos, McGraw Hill.

Вам также может понравиться