viernes, 20 de enero de 2012

Tarea 3


I.- Conceptos avanzados de modelo de datos

  1. 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).

  1. 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.

  1. Explique el modelado de la generalización, agregación y asociación
    1. 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.
    1. 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:
      1. 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").
      2. 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:
      1. Un Almacén posee Clientes y Cuentas (los rombos van en el objeto que posee las referencias).
      2. Cuando se destruye el Objeto Almacén también son destruidos los objetos Cuenta asociados, en cambio no son afectados los objetos Cliente asociados.
      3. La composición (por Valor) se destaca por un rombo relleno.
      4. 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.
    1. 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.


  1. 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:



  1. 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



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.

  1. 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.
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”.

  1. 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.

  1. 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:
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.

  1. 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.

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