I.- Conceptos
avanzados de modelo de datos
- Explique las diferencias entre el modelo ER y el modelo ER extendido (EER)
Como antes fue explicado, el modelo
entidad-relación (ER), es un modelo conceptual de datos el cual representa los
conceptos de un universo específico con sus relaciones y características. Esta
herramienta es muy utilizada directamente o mediante diversos programas.
Posterior a este modelo, se analizó un diferente mecanismo de representación de
un universo o de la realidad; este es el modelo EER (entidad-relación extendido).
Las diferencias que existen entre estos dos modelos son diversas.
El modelo EER presenta diversos métodos de
abstracción para hacer factible la representación de la realidad. Estos métodos
son clasificación, agregación y generalización. En pocas palabras, el EER añade
todo esos conceptos al modelo (entidad-relación) Para representar estos
métodos, el modelo se basa en conceptos como entidad (objeto), atributo y
relación entre los diferentes objetos. A diferencia del modelo ER, este no
presenta estos métodos pues sólo presenta tipos de relaciones como la
recursiva, la cual es la relación sobre la misma entidad, solo que con distinto
rol.
El modelo ER es eficiente para aplicaciones
tradicionales; sin embargo, existen base de datos con requisitos más complejos.
El modelo EER está orientado a objetos y utiliza el concepto de clase (subclase
o superclase).
- Explique el modelado de las clases, superclases, la especialización, y de retícula
¿Qué es una clase?
Una clase es un
conjunto de instrucciones que se utiliza como un modelo para crear objetos de
ese mismo tipo. Normalmente a los objetos provenientes de este
"modelo" se les nombre: una clase del tipo (por ejemplo) estudiante.
¿Qué es una SuperClase?
Una Superclase es
una clase de la cual se heredan todas las demás clases. Es decir, es el padre.
¿Qué es la Especialización?
Es el proceso de
definir un conjunto de subclases a partir de una entidad tipo. Un claro ejemplo
de esto es: que una SuperClase Empleado puede derivar en las subclases:
{Ingeniero, Administrador, Secretaria}.
*Nota: la clase de
la cual se hereda se llama SuperClase y la que hereda se llama SubClase.
¿Qué es una Retícula?
También llamada
Retícula de Especialización, es una cualidad que nos dice que un subtipo puede
ser parte de varias relaciones tales como SuperClase o Subclase. Además, que
una SubClase puede tener más de una SuperClase.
En esta imagen
podemos observar que un Becario puede ser un Estudiante o un Empleado.
- Explique el modelado de la generalización, agregación y asociación
- Herencia (Especialización/Generalización):
Indica que una subclase hereda
los métodos y atributos especificados por una Super Clase, por ende la Subclase
además de poseer sus propios métodos y atributos, poseerá las características y
atributos visibles de la Super Clase (public y protected), ejemplo:
En la figura se especifica que
Auto y Camión heredan de Vehículo, es decir, Auto posee las Características de
Vehículo (Precio, VelMax, etc) además posee algo particular que es Descapotable,
en cambio Camión también hereda las características de Vehiculo (Precio,
VelMax, etc) pero posee como particularidad propia Acoplado, Tara y Carga.
Cabe destacar que fuera de este
entorno, lo único "visible" es el método Caracteristicas aplicable a
instancias de Vehículo, Auto y Camión, pues tiene definición publica, en cambio
atributos como Descapotable no son visibles por ser privados.
- Agregación:
Para modelar objetos complejos, n
bastan los tipos de datos básicos que proveen los lenguajes: enteros, reales y
secuencias de caracteres. Cuando se requiere componer objetos que son
instancias de clases definidas por el desarrollador de la aplicación, tenemos
dos posibilidades:
- Por Valor: Es un tipo de relación estática, en donde el tiempo de vida del objeto incluido esta condicionado por el tiempo de vida del que lo incluye. Este tipo de relación es comunmente llamada Composición (el Objeto base se contruye a partir del objeto incluido, es decir, es "parte/todo").
- Por Referencia: Es un tipo de relación dinámica, en donde el tiempo de vida del objeto incluido es independiente del que lo incluye. Este tipo de relación es comunmente llamada Agregación (el objeto base utiliza al incluido para su funcionamiento).
Un Ejemplo es el siguiente:
En donde se destaca que:
- Un Almacén posee Clientes y Cuentas (los rombos van en el objeto que posee las referencias).
- Cuando se destruye el Objeto Almacén también son destruidos los objetos Cuenta asociados, en cambio no son afectados los objetos Cliente asociados.
- La composición (por Valor) se destaca por un rombo relleno.
- La agregación (por Referencia) se destaca por un rombo transparente.
La flecha en este tipo de
relación indica la navegabilidad del objeto referenciado. Cuando no existe este
tipo de particularidad la flecha se elimina.
- Asociación:
La relación entre clases conocida
como Asociación, permite asociar objetos que colaboran entre si. Cabe destacar
que no es una relación fuerte, es decir, el tiempo de vida de un objeto no
depende del otro.
Ejemplo:
Un cliente puede tener asociadas
muchas Ordenes de Compra, en cambio una orden de compra solo puede tener
asociado un cliente.
- Explique el modelado de datos con especialización y generalización
En algunas especializaciones podemos determinar exactamente que
ocurrencias de entidad se convertirán en cada subclase, todo mediante la
utilización de algún atributo de la superclase.
Si todas las subclases en una especialización tienen una condición de
permanencia en el mismo atributo de la superclase, la especialización será
definida sin lugar a dudas por el atributo y este atributo será llamado en
cuestión: ATRIBUTO DE DEFINICIÓN DE LA ESPECIALIZACIÓN.
Asimismo, entre las ocurrencias que puedan aparecer o no en más de una
subclase podremos diferenciar entre:
- Subclase disjuntas
- Subclase solapadas.
Cuando una ocurrencia de la superclase aparece en más de una subclase
decimos que las subclases son solapadas.
Se representa semánticamente por la letra o proveniente de la palabra
(Overlapping)
Cuando una ocurrencia de la superclase sólo aparece en una única subclase
decimos que las subclases son disjuntas. Se representa semánticamente por la
letra d (Disjoint)
Las subclases pueden representarse por dos tipos de jerarquías:
- Jerarquía total
- Jerarquía parcial
Cuando la ocurrencia de la superclase aparece al menos en una subclase
se dice que la jerarquía es total.
Se representa gráficamente por:
Cuando en la superclase existen ocurrencias que no aparecen en ninguna
de las subclases se dice que la jerarquía es parcial.
Se representa gráficamente por:
Un ejemplo:
- Explique el uso de las categorías y la categorización.
Una categoría es una subclase
que contiene a una colección de datos; es decir un subconjunto de la unión de
diversos tipos de entidades. Una categoría siempre tendrá dos o más superclases
y es similar a una subclase compartida. Para esto, la subclase compartida debe
pertenecer a todas sus superclases y heredar sus atributos. En una
categorización, la subclase o también llamada categoría, debe pertenecer sólo a
una de las superclases pero no necesariamente viceversa (superclase pertenezca
a la categoría). Si esto ocurre (superclase pertenezca a la categoría), se
habla de una categoría total
Jerarquía: una clasificación u ordenación de abstracciones.
Tipos: Es un conjunto de objetos que tienen un mismo comportamiento (comparten una misma funcionalidad) que se puede observar desde afuera.
Genericidad: permite construir clases genéricas para otras clases.
Objetos Complejos: Están construidos mediante algunos más simples ó mediante la aplicación de constructores a ellos. Los Objetos más simples son objetos como: Integer, Carácter, String de Bytes de cualquier longitud, booleanos ó punto flotante y algunos pueden ser de tipo atómico.
Hay varios constructores de objetos complejos como son: Listas y arreglos.
Por ejemplo: El juego mínimo de constructores que el sistema debe tener son una lista y un Arreglo.
Las listas y arreglos son importantes porque, pueden capturar órdenes las cuales ocurren en el mundo real y también se pueden levantar en muchas especificaciones científicas donde las necesidades de la gente son matrices, series de tiempo de información ó datos. El objeto de constructores debe ser ortogonal cualquier constructor debe ser aplicado a cualquier objeto.
Identidad de Objetos: Un modelo significa en un modelo una identidad de objeto. El objeto tiene una existencia la cual es independiente de su valor, esto es dos nociones de equivalencia del objeto. Dos objetos pueden ser idénticos, que tengan el mismo objeto ó pueden ser iguales, que tengan el mismo valor; este tiene dos implicaciones una es la compartición del objeto y la otra es la actualización del objeto.
Compartición de Objetos: Es un modelo basado en la identidad de dos objetos contener ó compartir un componente la representación pictórica de un objeto complejo es una gráfica mientras que están limitadas en un árbol sin identidad de objeto.
II.- Bases de datos
orientadas a Objetos
1.
Explique las
estructuras de objetos, constructores de tipos, Encapsulamiento de operaciones,
métodos y persistencia.
Estructuras de objetos:
Los componentes básicos en una estructura de objetos, son los objetos y
literales. Para esto se define a objeto como la instancia de una entidad del mundo
real que nos interesa.
Este tiene un identificador. El literal es un valor específico y no
cuenta con identificadores.
Estos objetos pueden organizarse en tipos. Cada uno de estos tipos tiene
un dominio, el cual es compartido por todos los objetos y literales.
Un objeto puede requerir datos de entrada y devolver un valor. Las
propiedades que posee son sus atributos y las relaciones.
Constructores:
Los diferentes tipos de objetos tienen un método que se encarga de
construir nuevos objetos a partir de ese. El nombre del método será igual al
nombre del tipo y los parámetros de este (método) serán los atributos del tipo
de objetos. Un constructor de utiliza para inicializar y devolver una instancia
de el mismo tipo de objeto al cual pertenece.
Encapsulamiento de operaciones:
El método de encapsulamiento se especifica en la implementación que
lleva al comportamiento de cierto objeto. Este método se basa en ocultar los
secretos de cierto objeto que no favorecen a sus características principales.
Existen dos versiones del encapsulamiento: la primera es la del lenguaje de
programación y la otra es la adaptación de esta visión para la base de datos.
Una base de datos presenta diversas operaciones y datos; sin embargo partiendo
de este concepto, no es claro si la parte estructural será parte de la
interfaz. En los lenguajes de programación ocurre lo contrario pues la
estructura es parte de la implementación y no de la interfaz. Ante esto de
resume que el encapsulamiento es una forma lógica de independencia de datos pues
se puede modificar la implementación de un tipo sin modificar o cambiar ninguno
de los programas que usan ese mismo tipo.
Métodos:
Una vez creado un tipo de objeto, se realiza la especificación de los
métodos. Estos de pueden ejecutar sobre objetos de un mismo tipo. Si x es
variable que almacena objetos del tipo CLIENTE, entonces N_CLIENTE calcula el
nombre del cliente almacenado en la variable x.
Métodos constructores de tipo: Los diversos tipos de objetos tienen, por
defecto, asociado un método que se encargará de construir nuevos objetos de
este. Justamente este método se refiere a constructores pues el nombre de dicho
método será el mismo que el objeto y sus parámetros serán sus atributos.
Métodos de comparación: Como su mismo nombre lo dice, este método se
usan para que los diversos objetos de cierto tipo puedan compararse. Se lleva a
cabo mediante un criterio de comparación; para este es necesario seleccionar
entre un método MAP o un método ORDER:
- El método ORDER usa los atributos
del objeto para compararlos con otro objeto del mismo tipo. Devuelve un valor
negativo si el primero es mayor que el segundo, positivo si el segundo es
mayor y nulo si los dos son iguales. Se habla de cantidades pues este método,
además de comparar realiza un cálculo.
- El método MAP es usado para tener
conocimiento qué atributo se va a usar para ordenar los objetos del tipo.
Persistencia en objetos:
Existen tres tipos en los que se puede dar la persistencia de algunos
datos.
• Persistencia por clases: Este tipo de persistencia es la menos
conveniente pues, a pesar de ser el más sencillo, consiste en considerar a una
clase entera como persistente. Entonces, todos los objetos pasarían a ser
persistentes de manera predeterminada.
• Persistencia por creación: En este enfoque de persistencia se
introduce una nueva sintaxis para crear los objetos persistentes. Así los
objetos pasarán a ser persistentes en función de la manera en cómo fueron
creados.
• Persistencia por marcas: Este enfoque es una variante de la persistencia
por creación pues se marcan a los objetos como persistentes. La
diferencia es que si un objeto tiene que persistir más allá de la ejecución del
programa, se le marca como explícito; además se espera hasta después de la
creación del objeto.
• Persistencia por alcance: Como fue mencionado anteriormente, uno o
varios objetos se marcan como objetos persistentes de manera explícita. A
partir de esto, todos los demás objetos serán persistentes sólo si son
alcanzables desde el objeto persistente de manera explícita mediante una
secuencia de una o varias referencias.
- Explique las jerarquías de tipos, de clases y herencia.
Jerarquía
La
jerarquía es una propiedad que permite una ordenación de las abstracciones. Las
dos jerarquías más importantes de un sistema complejo son: estructura de clases
y estructura de objetos.
Clases:
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.
HERENCIA
La
herencia se define como el mecanismo mediante el cual se utiliza la definición
de una clase llamada “padre”, para definir una nueva clase llamada “hija” que
puede heredar sus atributos y operaciones.
A las clases “hijo” también se les conoce como subclases, y a las clases “padre” como superclases. La relación de herencia entre clases genera lo que se llama jerarquía de clases.
A las clases “hijo” también se les conoce como subclases, y a las clases “padre” como superclases. La relación de herencia entre clases genera lo que se llama jerarquía de clases.
Hablamos de herencia de tipo cuando la subclase
hereda la interfaz de una superclase; es decir, los atributos y las operaciones. Hablamos de herencia
estructural cuando la subclase hereda la implementación de la superclase; es
decir, las variables de instancia y los métodos.
La herencia de tipo define relaciones es-un entre
clases, donde la clase “hijo” tiene todas las propiedades del “padre”, pero el
“padre” no tiene todas las propiedades del “hijo”.
- Buscar SGBDOO (Sistema Gestor de Base de Datos Orientada a Objetos) de algunos ejemplos.
El SGBDOO es un lenguaje clase
objeto. Propósito SBDOO: remover “impedance mismatch” lenguaje de programación
y SGBD. Los objetos son: objetos del lenguaje de programación. Permiten la
extensión de lenguajes entorno a un desarrollo uniforme.
Son entre 10 y 1000 veces más
veloces que los SGBDR. Eliminan la necesidad de un LMD específico. Eliminan la
necesidad de las combinaciones. La identidad de los objetos elimina la
necesidad de claves. No pueden tener un lenguaje de consulta no procedimental.
El procesamiento de consultas viola el encapsulamiento. Son sólo una rencarnación
de los SGBD en red. No soportan versiones y transacciones de larga duración.
Soportan directamente los datos multimedia. No tienen un fundamento teórico. No
sirven para aplicaciones importantes. No son escalables. No se usan en
aplicaciones de producción. No se pueden consultar.
- Explique el diseño de bases de datos OO por transformación EER-OO
Objetos complejos estructurados, no estructurados
Un sistema de BDOO debe poder dar cabida a diferentes tipos de datos, desde los más sencillos a objetos más complejos, todos ellos de pueden resumir en estos ocho:
Un sistema de BDOO debe poder dar cabida a diferentes tipos de datos, desde los más sencillos a objetos más complejos, todos ellos de pueden resumir en estos ocho:
Tipo abstracto para
construir otros tipos. Permite construir nuevos tipos a partir de
caracteres, float, enteros. Por ejemplo: punteros, números complejos,
cadenas de bits…
§
Array. Son matrices de elementos de datos, como los que
podemos encontrar en innumerables aplicaciones científicas.
§
Secuencia de tipo: Insertar elementos en una matriz en cualquier
posición.
§
Tuplas: Forma natural de representar las propiedades de una entidad.
§
Conjunto: Forma natural de representar los grupos del mundo real.
§
Funciones: Para crear, modificar y borrar otros objetos
§
Uniones: Elementos de datos que pueden tomar diferentes valores de
los diferentes tipos, es decir, matrices heterogéneas.
§
Composición recursiva del resto de tipos, se utiliza para representar
objetos complejos, tales como documentos.
Extensibilidad de tipos
El conjunto de tipos predefinidos que aporta el sistema de base de datos
debe ser extensible mediante algún mecanismo que permita definir tipos nuevos.
No debe haber distinción en cuanto al uso de los tipos definidos por el sistema
y los extendidos.
- Explique el uso de los objetos complejos estructurados, los no estructurados y la extensibilidad de tipos
ER
-> Entidad Relación
EER
-> Entidad Relación Extendido
EER-OO -> Entidad Relación Extendido
Orientado a Objetos
En el modelo de objetos existen cuatro
características fundamentales:
Abstracción: denota las características esenciales de un objeto que lo distinguen de todos los demás tipos objeto, y proporciona así fronteras conceptuales nítidamente definidas respecto a la perspectiva del observador". Una abstracción se centra en la visión externa de un objeto, y, por tanto sirve para separar el comportamiento esencial de un objeto de su implantación.
Abstracción: denota las características esenciales de un objeto que lo distinguen de todos los demás tipos objeto, y proporciona así fronteras conceptuales nítidamente definidas respecto a la perspectiva del observador". Una abstracción se centra en la visión externa de un objeto, y, por tanto sirve para separar el comportamiento esencial de un objeto de su implantación.
Modularidad: Se basa en el concepto de fragmentación de los
programas en componentes individuales para reducir su complejidad en algún
grado, y para crear además una serie de fronteras bien definidas y documentadas
dentro del programa, dónde estas fronteras o interfaces tienen un incalculable
valor cara a la comprensión del programa.
Jerarquía: una clasificación u ordenación de abstracciones.
Tipos: Es un conjunto de objetos que tienen un mismo comportamiento (comparten una misma funcionalidad) que se puede observar desde afuera.
Genericidad: permite construir clases genéricas para otras clases.
Objetos Complejos: Están construidos mediante algunos más simples ó mediante la aplicación de constructores a ellos. Los Objetos más simples son objetos como: Integer, Carácter, String de Bytes de cualquier longitud, booleanos ó punto flotante y algunos pueden ser de tipo atómico.
Hay varios constructores de objetos complejos como son: Listas y arreglos.
Por ejemplo: El juego mínimo de constructores que el sistema debe tener son una lista y un Arreglo.
Las listas y arreglos son importantes porque, pueden capturar órdenes las cuales ocurren en el mundo real y también se pueden levantar en muchas especificaciones científicas donde las necesidades de la gente son matrices, series de tiempo de información ó datos. El objeto de constructores debe ser ortogonal cualquier constructor debe ser aplicado a cualquier objeto.
Identidad de Objetos: Un modelo significa en un modelo una identidad de objeto. El objeto tiene una existencia la cual es independiente de su valor, esto es dos nociones de equivalencia del objeto. Dos objetos pueden ser idénticos, que tengan el mismo objeto ó pueden ser iguales, que tengan el mismo valor; este tiene dos implicaciones una es la compartición del objeto y la otra es la actualización del objeto.
Compartición de Objetos: Es un modelo basado en la identidad de dos objetos contener ó compartir un componente la representación pictórica de un objeto complejo es una gráfica mientras que están limitadas en un árbol sin identidad de objeto.
No hay comentarios:
Publicar un comentario