Unidad VII

Anuncio
Bases de Datos I Unidad VII
BASES DE DATOS I
UNIDAD VII
BASES DE DATOS ORIENTADAS A OBJETOS
7.1 BASES DE DATOS ORIENTADAS A OBJETOS
La programación orientada a objetos es muy versátil. No se restringe
únicamenteal diseño de programas, sino que es posible aplicar los mismo conceptos al
diseño de bases de datos. El uso de una técnica orientada a objetos trasciende a
laelección de la base de datos.
El uso de esta técnica en el diseño de bases de datos aporta las cualidadesde
esta metodología a nuestro diseño. Eficiencia, coherencia y un menor costea la hora de
actualizar la estructura de las bases de datos son los principalesbeneficios que aporta.
Como valor añadido, el uso de una misma técnica en el diseño, tanto de
losprogramas como de las bases de datos proporciona coherencia a nuestro sistema.
Las bases de datos orientadas a objetos unen dos tecnologías:
La de las bases de datos y la de los lenguajes orientados a objetos. LosLenguajes
OOP aportan gran capacidad en la manipulación de datos, pero noimplementan el
almacenamiento y consulta de grandes volúmenes de datos.
Por el contrario, las bases de datos convencionales aportan un dominio de
lastécnicas de almacenamiento y consulta de grandes volúmenes de datos, aunque
sucapacidad de manipulación es limitada.
Las bases de datos orientadas a objetos pretenden unir la capacidad
demanipulación de datos de los OPP con la capacidad de almacenamiento y
consultade los DBMS.
Instituto Tecnológico de Ciudad.Juárez
98
Bases de Datos I Unidad VII
Las aplicaciones convencionales que agrupan programas y bases de datos,
separan ambos entornos de manera clara.
El desarrollador usa técnicas procedurales para la descomposición deproblemas
y su codificación en funciones. Posteriormente se emplean técnicascomo las de
Entidad – Relación para el diseño de la base de datos.
Su codificación suele realizarse en un lenguaje de alto nivel como C, quelleva
embebido código SQL. El término embebido describe la inclusión de un móduloescrito
bajo otro lenguaje de programación dentro del código fuente. Elcompilador incorpora
durante la fase de enlace el Run-Time correspondiente paraque pueda funcionar el
código embebido.
Como podrá observar, esta técnica presenta defectos evidentes:
Por
una
parte,
se
utilizan
diferentes
técnicas
para
el
desarrollo
de
ambosapartados, por lo que la tarea de diseño no se puede considerara como un
todoúnico
Por otra y en gran medida debida a la primera, los lenguajes que se utilizanpara
la implementación difieren, dificultando las labores de mantenimiento.
Ejemplos
Como habrá podido observar a lo largo de esta monografía, nuestro propósitono
ha siso el de enseñar una metodología ni la enseñanza de un determinadolenguaje de
programación.
El objetivo es por el contrario dar una panorámica de los conceptos de
laprogramación orientada a objetos, de las metodologías y de las técnicas dedesarrollo
de aplicaciones.
Instituto Tecnológico de Ciudad.Juárez
99
Bases de Datos I Unidad VII
En este apartado nos centraremos en lo aspectos más importantes en
eldesarrollo
de
aplicaciones
bajo
OOP:
identificación
de
objetos
y
análisis
deasociaciones.
7.1.1 OBJETOS Y ASOCIACIONES.
La parte más importante de todo diseño es el punto de entrada de ladefinición
de requerimientos. En la observación atenta de los requerimientosse pueden hallar la
mayoría de los objetos pertenecientes a nuestra aplicación.
En este ejemplo nos centraremos en la identificación de objetos a partir delos
requerimientos básicos de la aplicación.
Este análisis es el primero que debe hacerse dentro de OOP y es también
útilpara cualquier otra técnica de programación.
Analicemos la siguiente definición de requerimientos:
El <<sistema de tratamiento de información documental>> es ungestor de
<<documentos>>, de tal manera que puedan clasificar en unoo varios <<índices>>,
recuperar para su modificación, visualizar,para su consulta, reclasificar, archivar y
destruir. El <<sistema>>procesa la petición del <<usuario>>, devolviendo un mensaje
eindicando el éxito o el fracaso de la petición.
De una manera general hemos indicado entre comillas los sustantivos y
encursiva los verbos. De esta forma hemos identificado los objetos principales dela
aplicación y las operaciones asociadas a cada uno de los objetos.
Observe el siguiente diagrama.
Instituto Tecnológico de Ciudad.Juárez
100
Bases de Datos I Unidad VII
Hemos traducido los requerimientos a un conjunto de objetos.
Estos están inconexos entre sí, pero aplicando la <<lógica>>podemos
ver las relaciones que existen entre ellos. Sin salirnos de
lasespecificaciones de la aplicación, vemos que existen las asociaciones
queaparecen en la siguiente figura:
Instituto Tecnológico de Ciudad.Juárez
101
Bases de Datos I Unidad VII
Como podemos observar, algunas asociaciones cíclicas como Indice <>Documento. Estas asociaciones pueden simplificarse. También existen otras
implícitasque examinaremos más adelante, como Usuario->Documento->Indice.
Observemos gráficamente las asociaciones que mantienen los objetos entre síen
la siguiente figura
Como puede verse hay dos asociaciones sospechosas, ya que no son verbos
sinolos sustantivos <<petición>> y <<mensaje>>. Estas dosasociaciones se pueden
<<objetivar>> de tal manera que reúnan lascondiciones de un objeto. Para ello
debemos volver a las especificacionesiniciales.
Cuando se archiva un documento se debe indicar el nombre del documento
asícomo los índices a los que se va a asociar. Las peticiones de recuperacióndeben
incluir un índice y el nombre del archivo. Las consultas a los índicesdeben incluir el
nombre del indice y una condición.
A
partir
de
este
análisis
se
puede
depurar
con
HERENCIA
y
posteriormenterealizar un <<ajuste fino>>
Instituto Tecnológico de Ciudad.Juárez
102
Bases de Datos I Unidad VII
7.1.2 LA RELACION DE HERENCIA.
A continuación vamos a centrarnos en la relación de herencia.
Como ya sabemos ésta puede agrupar objeto son similares característica o bien
especializar
objetos
a
partir
de
una
genérico.
Observemos
nuevamente
los
requerimientos de nuestro sistema:
7.2 Aplicaciones Orientadas a Objetos
Cómo afectan los requerimientos anteriores para la elección de un lenguaje
orientado a objetos como herramienta para el desarrollo de nuestros programas?
Claridad
Al ligar de forma evidente la estructura de la información con losprocedimientos
que la manipulan, los programas ganan en claridad a la hora dedesarrollarlos y
mantenerlos. Esto supone una ventaja frente a los lenguajesprocedurales , aunque
éstos podrían suplir esta deficiencia mediante unacorrecta elección de los nombres de
las variables y funciones, lo que sedenomina una <<oportuna codificación>>.
Instituto Tecnológico de Ciudad.Juárez
103
Bases de Datos I Unidad VII
Complejidad
Cuando la complejidad de un problema es abarcable por una sola persona,
resolverlo con una herramienta u otra no aporta grandes ventajas. Pero cuandoeste
desarrollo la tiene que realizar un equipo grande, debe existir una formapara aislar
partes de problema.
Uno de los problemas más comúnes, y a su vez más simples de solucionar enel
diseño de grandes sistemas, es el nombre que se da a las funciones y quetipo de datos
manipulan éstas.
En la realización de un sistema informático se utiliza un equipo de
variaspersonas. El trabajo se divide en tres áreas funcionales: una parte del equipose
encarga del interface de usuario, otra de la manipulación de datos y, la últimadel
diseño de salidas impresas.
Cada quipo utiliza funciones y datos suministrados por los otros miembros
delequipo y a su vez diseña funciones para su uso interno y para el uso del restode los
grupos. Si no se realiza la división del trabajo de forma adecuada puedeproducirse el
caos. He aquí una pequeña enumeración de los problemas que sepueden encontrar.

Las funciones desarrolladas por cada uno de los grupos no encajan con las
necesidades de los demás.

Otros grupos han elegido nombres de variables y funciones similares a los
elegidos por nuestro grupo. Estas funciones y variables son prácticamente
iguales a las desarrolladas por nosotros, pero varían ligeramente en el
tratamiento de la información, por lo que no podemos sustituir nuestras
funciones. Ambas deben coexistir aumentando la complejidad del programa de
manera innecesaria.

El resto de los grupos sólo cubren determinados aspectos de la información a
tratar, pero no proporcionan toda la información necesaria para que el programa
Instituto Tecnológico de Ciudad.Juárez
104
Bases de Datos I Unidad VII
funcione. El resto de información debe suministrarse suplantando parte de la
funcionalidad destinada a otros grupos.

Algunas de las modificaciones que realizamos sobre variables locales o globales
producen resultados imprevistos en el resto de los módulos.
Tamaño
Las
aplicaciones
orientadas
a
objetos
son
ideales
para
la
realización
deprogramas de gran tamaño. Las facilidades de encapsulación y asociación delas
funciones a los datos que manipulan, simplifican el proceso de desarrollo.De hecho las
bases de datos orientadas a objetos suponen un gran adelanto, yaque aúnan la
flexibilidad en la manipulación de los OOP con la capacidad deconsulta de un DBMS
(Data Base Management System).
Relación entre Datos
Por
el
mismo
motivo
se
verán
beneficiados
aquellos
programas
que
impliquenuna relación compleja entre los datos. Este tipo de complejidad permite
lautilización de todas las ventajas de los lenguajes de programación orientadosa
objetos. Propiedades como la herencia (donde los objetos pueden heredar estructura y
operaciones de objetos predecesores), la encapsulación, etc.Muestran en este tipo de
programas todas sus ventajas.
Rapidez
En
este
aspecto,
los
lenguajes
orientados
a
objetos
muestran
una
claradesventaja frente a otros lenguajes que se acercan más a las especificacionesde la
máquina. Si la rapidez es crítica, puede elegir un lenguaje deprogramación como C,
que aporta toda la funcionalidad de los lenguajesorientados a objetos con la rapidez y
la compatibilidad de C.
Instituto Tecnológico de Ciudad.Juárez
105
Bases de Datos I Unidad VII
Gestión de recursos
Las aplicaciones orientadas a objetos demandan normalmente más recursos
delsistema que las aplicaciones procedurales. La creación dinámica de objetos,que
ocupa un lugar en la memoria del ordenador, puede acarrear graves problemas.Una de
las soluciones, que incluye alguno delos lenguajes OOP, es liberar amenudo el espacio
que los objetos dejan de utilizar. Este procedimiento deoptimización como garbage
collection (recolección de basura, implementado enjava), minimiza los efecto de la
creación dinámica de objetos.
Interface de usuario.
El interface de usuario es uno de los aspectos más importantes en
laprogramación actual. La aparición de sistemas de explotación que soportan
uninterface
gráfico
de
usuario
como
Windows,
X-Windows
o
Presentation
Managerhace que la mayoría de los usuarios prefieran que sus programas corran
bajoeste tipo de interface. Este es uno de los puntos fuertes para la elección deun
lenguaje OOP. La mayoría de los interfaces gráficos actuales han sido diseñadoso
rediseñados en base a la OOP. Existen en el mercado librerías de clases que soportan
todos los dispositivos de control de ventanas como menús, combo box,listas, barras de
herramientas, etc.
Lenguajes orientados a objetos
Los lenguajes OOP implementan de manera distinta los conceptos de
programaciónorientada a objetos. No existe el lenguaje perfecto capaz de satisfacer
todaslas necesidades y que se adapte a todos los estilos.
A Continuación unos consejos que nos facilitarán la elección del lenguajede
programación adecuado:

Si los programas se van a sentar en una cualidad concreta de los OOP como
herencia, elija el que mejor soporte le dé.

Los lenguajes interpretados sirven para realizar un desarrollo rápido o para
aquellos programas que necesiten una actualización constante. Si el programa
Instituto Tecnológico de Ciudad.Juárez
106
Bases de Datos I Unidad VII
necesita rapidez o es crítico respecto al tamaño, considere el uso de lenguajes
que incorporen compilador.

No <<reinvente la rueda>>. Si el lenguaje le proporciona una librería de clases
no intente reescribrlas de nuevo, use las que le ofrece el sistema. Es más tome
como factor de elección las librerías de clases que el compilador incorpora o que
estén disponibles en el mercado.

Si necesita mejorar la calidad del programa previniendo errores, utilice un
lenguaje que le permita definir las variables con sus tipos asociados.

Si la memoria del sistema es limitada, utilice lenguajes que permitan la creación
y destrucción automática de clases dependiendo de su utilización.
----------------------------------------------------------------------------------------------------------
7.3 El Modelo Orientado a Objetos
Las aplicaciones de las bases de datos en áreas como el diseño asistido por
computadora, la ingeniería de software y el procesamiento de documentos no se
ajustan al conjunto de suposiciones que se hacen para aplicaciones del estilo de
procesamiento de datos. El modelo de datos orientado a objetos se ha propuesto para
tratar algunos de estos nuevos tipos de aplicaciones.
El modelo de bases de datos orientado a objetos es una adaptación a los sistemas
de bases de datos. Se basa en el concepto de encapsulamiento de datos y código que
opera sobre estos en un objeto. Los objetos estructurados se agrupan en clases. El
conjunto de clases esta estructurado en sub y superclases basado en una extensión
del concepto ISA del modelo Entidad - Relación. Puesto que el valor de un dato en un
objeto también es un objeto, es posible representar el contenido del objeto dando como
resultado un objeto compuesto.
El propósito de los sistemas de bases de datos es la gestión de grandes cantidades
de información. Las primeras bases de datos surgieron del desarrollo de los sistemas
de gestión de archivos. Estos sistemas primero evolucionaron en bases de datos de red
o en bases de datos jerárquicas y, más tarde, en bases de datos relacionales.
Instituto Tecnológico de Ciudad.Juárez
107
Bases de Datos I Unidad VII
Estructura de objetos
El modelo orientado a objetos se basa en encapsular código y datos en una única
unidad, llamada objeto. El interfaz entre un objeto y el resto del sistema se define
mediante un conjunto de mensajes.
Un objeto tiene asociado:

un conjunto de variables que contienen los datos del objeto. El valor de cada
variable es un objeto.

Un conjunto de mensajes a los que el objeto responde.

Un método, que es un trozo de código para implementar cada mensaje. Un
método devuelve un valor como respuesta al mensaje.
El término mensaje en un contexto orientado a objetos, no implica el uso de un
mensaje físico en una red de computadoras, si no que se refiere al paso de solicitudes
entre objetos sin tener en cuenta detalles específicos de implementación.
La capacidad de modificar la definición de un objeto sin afectar al resto del
sistema está considerada como una de las mayores ventajas del modelo de
programación orientado a objetos.
Jerarquía de clases
En una base de datos existen objetos que responden a los mismos mensajes,
utilizan los mismos métodos y tienen variables del mismo nombre y tipo. Sería inútil
definir cada uno de estos objetos por separado por lo tanto se agrupan los objetos
similares para que formen una clase, a cada uno de estos objetos se le llama instancia
de su clase. Todos los objetos de su clase comparten una definición común, aunque
difieran en los valores asignados a las variables.
Así que básicamente las bases de datos orientados a objetos tienen la finalidad de
agrupar aquellos elementos que sean semejantes en las entidades para formar un
clase, dejando por separado aquellas que no lo son en otra clase.
Instituto Tecnológico de Ciudad.Juárez
108
Bases de Datos I Unidad VII
Por ejemplo: Retomemos la relación alumno-cursa-materia agregándole la entidad
maestro; donde los atributos considerados para cada uno son alumno: Nombre,
Dirección, Teléfono, Especialidad, Semestre, Grupo; Maestro: Nombre, Dirección,
Teléfono, Número económico, Plaza, RFC; Materia: Nombre, Créditos, Clave.
Los atributos de nombre, dirección y teléfono se repiten en la entidad alumno y
maestro, así que podemos agrupar estos elementos para formar la clase Persona con
dichos campos. Quedando por separado en alumno: Especialidad, semestre, Grupo. Y
en maestro: Número económico, Plaza y RFC; la materia no entra en la agrupación
(Clase persona) ya que la clase específica los datos de solo personas, así que queda
como clase materia.
Herencia
Las clases en un sistema orientado a objetos se representan en forma jerárquica
como en el diagrama anterior, así que las propiedades o características del elemento
persona las contendrán (heredaran) los elementos alumno y maestro. Decimos que
tanto la entidad Alumno y maestro son subclases de la clase persona este concepto es
similar al utilizado en la de especialización (la relación ISA) del modelo E-R.
Se pueden crear muchas agrupaciones (clases) para simplificar un modelo así que
una jerarquía (en forma gráfica) puede quedar muy extensa, en estos casos tenemos
que tener bien delimitados los elementos que intervienen en una clase y aquellos
objetos que las heredan.
Consultas orientadas a objetos
Los lenguajes de programación orientados a objetos requieren que toda la
interacción con objetos se realiza mediante el envío de mensajes.
Consideremos el ejemplo de alumno-cursa-materia deseamos realizar la consulta
de los alumnos que cursan la materia de Base de Datos 1, para realizar esta consulta
se tendría que enviar un mensaje a cada instancia alumno
Instituto Tecnológico de Ciudad.Juárez
109
Bases de Datos I Unidad VII
Así un lenguaje de consultas para un sistema de bases de datos orientado a
objetos debe incluir tanto el modelo de pasar el mensaje de objeto a objeto como el
modelo de pasar el mensaje de conjunto en conjunto.
Complejidad de Modificación
En base de datos orientados a objetos pueden existir los siguientes cambios:

Adición de una nueva clase: Para realizar este proceso, la nueva clase debe
colocarse en la jerarquía de clase o subclase cuidando las variables o métodos
de herencia correspondientes.

Eliminación de una clase: Se requiere la realización de varias operaciones, se
debe de cuidar los elementos que se han heredado de esa clase a otras y
reestructurar la jerarquía.
En sí la estructuración de modelos orientados a objetos simplifica una estructura
evitando elementos o variables repetidas en diversas entidades, sin embargo el precio
de esto es dedicarle un minucioso cuidado a las relaciones entre las clases cuando en
modelo es complejo, la dificultad del manejo de objetos radica en la complejidad de las
modificaciones y eliminaciones de clases, ya que de tener variables que heredan otros
objetos se tiene que realizar una reestructuración que involucra una serie de pasos
complejos.
Instituto Tecnológico de Ciudad.Juárez
110
Documentos relacionados
Descargar