sábado, 21 de enero de 2012

II.- Bases de datos orientadas a Objetos



1)Explique las estructuras de objetos, constructores de tipos,  
   Encapsulamiento de operaciones, métodos y persistencia:

El modelo orientado a objetos se basa en encapsular código y datos en una sola unidad, llamada objeto. 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.

En las BDOO, los valores (o estados) de los objetos complejos se pueden construir a partir de otros objetos mediante ciertos constructores de tipos. Una forma de representar tales objetos es considerar a cada objeto como tripleta (i, c, v), donde i es un identificador de objeto único (el OID), c es un constructor (esto es, una indicación de cómo se construye el valor del objeto) y v es el valor (o estado) del objeto. Los tres constructores básicos son constructores de átomo, constructores de tuplas, constructores de conjuntos.

Encapsulamiento: cada objeto contiene y define procedimientos (métodos) y la interfaz
Mediante la cual se puede acceder a él y otros objetos pueden manipularlo. La mayoría de
Los SGBDOO permite el acceso directo a los atributos incluyendo operaciones definidas
Por el propio SGBDOO las cuales leen y modifican los atributos para evitar que el usuario
Tenga que implementar una cantidad considerable de métodos.




2)Explique las jerarquías de tipo, de clases y herencia:

Dentro de la base de datos orientada a objetos existen las jerarquías de tipo, donde los atributos y todos los métodos de los subtipos son iguales a los de los tipos generalizados (supertipos) y pueden agregar nuevos atributos y métodos. Entonces, se podría decir que en muchos casos se trabaja con clase que son similares. Una de las características comunes de la base de datos orientada a objetos es la herencia. Una clase puede tener varias subclases, las cuales representan ocurrencias de la superclase. Ante esto aparece la jerarquía de clases, al cual tiene un parecido al modelo ER (Entidad- Relación). La herencia favorece en la reutilización del código pues no haría falta volver a escribir los métodos y/o funciones para los objetos. Un tipo de herencia es la herencia múltiple, la cual permite a los subtipos o clases, como antes fue mencionado, heredar variables y métodos de supertipos o superclases. La desventaja que hay en la herencia múltiple es de un posible caso de ambigüedad ya que es posible que una clase herede la misma variable o el mismo método de más de una superclase. Existen maneras de evitar esto; sin embargo Java, para evitar este problema, no permite el uso de herencia múltiple.


3)Buscar SGBDOO (Sistema Gestor de Base de Datos Orientada a Objetos) de algunos ejemplos:



Un SGBDOO debe satisfacer dos criterios: Ser un sistema orientado a objetos, y ser un sistema de gestión de bases de datos. El primer criterio se traduce en ocho características generales [BOO94]: abstracción, encapsulación, modularidad, jerarquía, control de tipos, concurrencia, persistencia y genericidad. El segundo criterio se traduce en cinco características principales: persistencia, concurrencia, recuperación ante fallos del sistema, gestión del almacenamiento secundario y facilidad de consultas.



4)Explique el diseño de bases de datos OO por transformación EER-OO:


Para trasformar un esquema FuzzyEER con grados de pertenencia de un atributo con respecto a una entidad, el analista puede asignar cardinalidades mínimas 0 a todos aquellos atributos cuyo grado de pertenencia sea menor a 1, como se muestra en la Figura 4. Esto es análogo a admitir valores nulos en dichos atributos. Otro criterio puede ser simplemente eliminar del diseño aquellos atributos que posean un grado de pertenencia menor a un umbral definido por el analista (por ejemplo > 0,5). En este caso, la ventaja de tener además del modelo entidad relación el modelo FuzzyEER, es que éste último provee de información adicional, y no se restringea las limitaciones impuestas por las herramientas de implementación. 


5)Explique el uso de los objetos complejos estructurados, los no estructurados y la   
    extensibilidad de tipos:

Como un SGBOO permite a los usuarios crear nuevos tipos, y como un tipo incluye tanto estructura como operaciones, podemos considerar que un SGBOO tiene un sistema de tipos extensibles. Podemos crear bibliotecas de nuevos tipos definiendo su estructura y operaciones, incluso con tipos complejos.

Muchos SGBDOO pueden almacenar y obtener objetos no estructurados extensos en forma de cadenas y caracteres o de bits, que se pueden pasar “tal cual” al programa de aplicación para que las interprete.

Extensibilidad de tipos básicos: Las BOO permiten definir, a través de estructuras, tipos de datos para los que se apliquen las mismas optimizaciones que para los tipos de datos básicos. Es decir, que se puedan almacenar directamente en la BD (luego su creación, destrucción y acceso serán más rápidos) y se asignen por valor y no por referencia.

viernes, 20 de enero de 2012

I.- Conceptos avanzados de modelo de datos.

1. Explique las diferencias entre el modelo ER y el modelo ER extendido (EER):

El modelo Entidad-Relacion(ER) es un modelo conceptual de datos que representa los conceptos de un universo específico con sus relaciones y características, la cual, es muy utilizada directamente o mediante diversos programas.Sin embargo el diagrama de ER no cumple su propósito con eficacia debido a que tiene limitaciones semánticas.Por ese motivo se suelen utilizar los diagramas Entidad-Relación extendidos que incorporan algunos elementos más al lenguaje.
La diferencia entre estos modelos es que el modelo EER incluye todo los conceptos del ER e incorpora conceptos de subclase y superclase con los conceptos asociados de Especialización y Generalización. Añadido a estos,se incluye el concepto de Categoría y el más importante mecanismo de Herencia de atributos. 

2)Explique el modelado de las clases, superclases, la especialización, y de retícula:


Modelamiento de Clases
Un diagrama de clases sirve para visualizar las relaciones entre las clases que involucran el sistema, las cuales pueden ser asociativas, de herencia, de uso y de contenimiento.Un diagrama de clases esta compuesto por los siguientes elementos:

Clase: atributos, métodos y visibilidad.
Relaciones: Herencia, Composición, Agregación, Asociación y Uso.


Una superclase es la entidad de la que sigue una subclase. Una subclase representa un subconjunto de una entidad; es decir, un grupo de elementos con algo en común que pertenecen a una misma entidad. La relación que hay entre una superclase y alguna de sus subclases se llama relación “is-a” (es un). Además, toda entidad perteneciente a una subclase será, a la vez, entidad de su superclase. Una entidad puede pertenecer a varias subclases y la relación que estas tienen es de uno a uno.

La especialización es un proceso para dividir una entidad en subclases. La especialización puede definirse mediante varios criterios: Tipo de trabajo y Tipo de contrato. Además de la especialización está el concepto de generalización, el cual es la inversa de la especialización. La especialización es importante pues agrupa en una subclase las entidades que pertenecen a ciertas entidades y definir en ella los atributos. Es necesario saber que la especialización tiene ciertas restricciones; por ejemplo, esta tiene más de una subclase y se representa con la notación del círculo de especialización. Sin embargo, pueden existir especializaciones con una única subclase. Existe también la especialización/generalización de retícula, la cual restringe que varias superclases pueden tener una subclase.



3)Explique el modelado de la generalización, agregación y asociación:


Asociación

Una asociación es una conexión entre clases, una conexión (enlace) semántica entre objetos de las clases implicadas en la asociación. El establecimiento de una asociación define los roles (papeles) o dependencias entre objetos de dos clases y su cardinalidades ( multiplicidad ); es decir, cuantas instancias (ejemplares) de cada clase pueden estar implicadas en una asociación. Una asociación representa que objetos de dos clases tienen un enlace entre ellos, lo que significa por ejemplo, que ellos conocen sobre los otros, están conectados a, para cada x hay una y, etc. La asociación se representa por una línea que une a las dos clases y el nombre de la asociación se escribe en la línea.


Agregación
Una agregación es una relación que representa a los objetos compuestos. Un objeto es compuesto si se compone a su vez de otros objetos. La agregación de objetos permite describir modelos del mundo real que se componen de otros modelos, que a su vez se componen de otros modelos.
Este es un concepto que se utiliza para expresar tipos de relaciones entre objetos parte-de (part-of) o tiene-un(has-a). El objeto componente, también a veces denominado continente o contenedor, es un objeto agregado que se compone de múltiples objetos.


Generalización

El proceso de especialización expuesto en el punto anterior nos permite lo siguiente:
Definir un conjunto se subclases a partir de una entidad.
Asociar atributos específicos a cada subclase.
Establecer relaciones específicas entre cada subclase con otras entidades o subclases.



4)Explique el modelado de datos con generalización y especificación


Uno de los motivos por los cuales las clases se relacionan entre ellas es el hecho de poseer propiedades comunes. Las clases con propiedades comunes se organizan en superclases. Una superclase representa una generalización de las subclases. De igual modo, una sublase de una clase dada representa una especialización de la clase superior. La clase derivada es-un tipo de clase de la clase base o superclase.
Una superclase representa una generalización de las subclases. Una subclase de la clase representa una especialización de la clase ascendente.


ESPECIALIZACIÓN GENERALIZACIONEn el modelado orientado a objetos es útil introducir clases a un cierto nivel que puede no existir en la realidad, pero que son construcciones conceptuales útiles. Estas clases abstractas tienen como propiedad fundamental que no se pueden crear instancias de ellas. Por ejemplo nunca crearemos instancias de vehículo sin motor, pero sí de bicicleta y patinete.




5.)Categorías y categorización:




Algunas relaciones pueden tener una superclase única. Incluso la subclase compartida puede ser una subclase de tres relaciones superclase/subclase distintas, donde cada una de las relaciones tienen una superclase única. En algunos casos, sin embargo, se necesita representar una relación superclase/ clase simple con mas de una superclase, donde las superclases son diferentes entidades. En este caso llamamos a la subclase categoría.


Una categoría tiene dos o más superclases que pueden representar distintas entidades, mientras que las otras relaciones superclase /subclase tienen una sola superclase. Una ocurrencia de la categoría es miembro de exactamente una de las superclases.


II.- El modelo de datos Jerárquico

Una base de datos jerárquica es un tipo de sistema de gestión de bases de datos que almacenan la información en una estructura jerárquica y enlaza los registros en forma de estructura de árbol (similar a un árbol visto al revés), en donde un nodo padre de información puede tener varios nodos hijo es decir se organizan en una relación padre e hijo. Esta base de datos jerárquica se lleva a cabo en base a punteros.

1) Detalle las estructuras de una base de datos de jerárquico:

Los segmentos, en función de su situación en el árbol y de sus características, pueden denominarse como:


a) SEGMENTO PADRE: Es aquél que tiene descendientes, todos ellos localizados en el mismo nivel.






b) SEGMENTO HIJO: Es aquél que depende de un segmento de nivel superior. Todos los hijos de un mismo padre están en el mismo nivel del árbol.






c) SEGMENTO RAÍZ: El segmento raíz de una base de datos jerárquica es Αel padre que no tiene padre. La raíz siempre es única y ocupa el nivel superior del árbol.






La estructura del modelo de datos jerárquico es un caso particular del modelo en red, con fuertes restricciones adicionales derivadas de que las asociaciones del modelo jerárquico deben formar un árbol en el que el orden de los nodos es importante.


2)Explique los vínculos virtuales padre - hijo:

Los vínculos virtuales padre-hijo son muy estrictos en esta estructura pues se basa en relaciones de 1 a muchos es decir cada registro padre puede tener varios registros hijos, pero un registro hijo solo puede tener un registro padre. Esto nos indica que solo se puede consultar la base de datos desde los hijos hasta los padres, si se quiere hacer del sentido contrario se tendría que hacer una búsqueda secuencial pero habría una gran perdida de tiempo. Este vínculo mejora el rendimiento ya que cada nodo hijo contiene la dirección de su nodo padre.

3)Explique las restricciones de integridad en el modelo jerárquico:

En este modelo encontramos distintas restricciones de integridad que no solo son determinadas por los usuarios, sino que son inherentemente definidas por el simple hecho que la base de datos sea relacional:
Uno de ellos es que no se garantiza que no haya registros duplicados, por lo que es probable ver los mismos valores en dos campos distintos. El otro es referente a la integridad referencial, que señala que nada garantiza que un hijo este relacionado con un padre valido, por ejemplo si borramos a un registro padre, los hijos quedarían ahí teniendo como padre NULL.

4)Explique el uso de la transformación ER- jerárquico para el diseño de bases de datos jerárquicas:

Caso1: Relaciones 1:Muchos, con cardinalidad mínima 1 en el padre:
En este caso no hay ningún problema, el esquema jerárquico es igual al esquema en E/R.


Caso2: Relaciones 1:Muchos con cardinalidad mínima 0 en el padre:
Se crean 2 estructuras, la primera estructura tendrá como nodo padre el tipo de registro A y como nodo hijo los identificadores del tipo de registro B. De esta manera no hay redundancias, estando los atributos de la entidad B en la segunda, en la cual sólo existiría un nodo raíz B sin descendientes


Caso3: Relaciones Muchos: Muchos:
La solución es muy parecida, creándose también dos arborescencias. La solución es independiente de las cardinalidades mínimas. Se podría suprimir, en la primera arborescencia
O en la segunda, el registro hijo, pero no se conservaría la simetría.


Caso4: Relaciones Reflexivas:
Antes que nada, lo ideal es que estas no existan, por lo que se debe esta en la 3FN.


La aplicación de estas normas de diseño evita la introducción de redundancias, así como la pérdida de simetría, pero complica enormemente el esquema jerárquico resultante que estará constituido por más de un árbol, lo que no resulta fácilmente comprensible a los usuarios.

5) Muestre 2 ejemplos de diagrama de esquema jerárquico para una base de datos y el leguaje de manipulación de datos para el modelo jerárquico:


Ejemplos del diagrama de esquema jerárquico:




Lenguaje de manipulación

Una instrucción de un lenguaje de manipulación constará:
- Un operador que indica el tipo de operación a realizar.
- Los datos sobre los que se lleva a cabo la operación.
- Una condición, que servirá para seleccionar el conjunto de datos sobre el que se desea trabajar, y que es una
expresión de tipo lógico, es decir, constantes y variables unidas por operadores de comparación y del álgebra de
Boole. 

 Data Definition Language

Declaración de un esquema jerárquico: 
SCHEMA NAME = <nombre del esquema> 
<declaraciones de árboles> 
Declaración de un árbol: 
TREE <nombre> <lista de declaraciones de tipos de registros> 
Declaración de tipo de registro: 
RECORD <nombre> <información> 

Ejemplos :

TREE Planes_de_Estudio 
RECORD Centro ROOT 
1 codigo char(3) 
1 nombre char(30) 
RECORD Estudio PARENT=Centro 
1 codigo char(2) 
1 nombre char(50) 
1 duracion integer 
RECORD Asignatura PARENT=Estudio 
1 clave char(3) 
1 nombre char(30) 
1 creditos intege




I.- El modelo de base de datos de red



Una base de datos de red es una base de datos conformada por una colección o set de registros, los cuales están conectados entre sí por medio de enlaces en una red. 

Éste modelo a diferencia del jerárquico presenta una fundamental modificación del concepto del nodo, en cual se permite que un mismo nodo tenga varios padres (posibilidad que no era aceptada en el modelo jerárquico). Lo mencionado anteriormente mejoró la eficiencia del problema de redundancia de datos pero aumentó la dificultad de administrar la información de una base de datos ya que en red es más complicada por lo que este modelo es utilizado mayormente por programadores más que por usuarios finales. 




Los conceptos básicos en el modelo en red son: 

*El tipo de registro, que representa un nodo.
*Elemento, que es un campo de datos.
*Agregado de datos, que define un conjunto de datos con nombre. 




1)Detalle las estructuras de una base de datos de red: 



*Red: Un miembro con varios propietarios, pero en SET diferentes. De esta forma se podrán representar relaciones N:M sin que por ello se produzca redundancia en los datos. 



*Propietario con miembros de distinto tipo (SET multimiembro). 



*Jerarquía a un nivel: Un propietario y varios miembros, estas se pueden instrumentar de dos formas: un solo SET multimiembro, o tantos SET como registros miembros haya. 



*Jerarquía con múltiples niveles: Donde los tipos de registro de los niveles intermedios son miembros del SET del nivel superior u propietarios en el nivel inferior 



*Diferentes interrelaciones entre dos tipos de registro: Esta estructura permite deshacer las interrelaciones reflexivas. 



*Registros aislados: Pueden existir tipos de registros que no sean propietarios ni miembros de ningún SET. 



*Miembro opcional: Existe la posibilidad de que un tipo de registro declarado como miembro de un SET tenga ocurrencias que no pertenezcan a ninguna ocurrencia de SET, que no tengan propietarios, habrá hijos sin padre. 



2) Explique las restricciones en el modelo de base de datos de red: 

El modelo al tener la forma de una red no existe restricciones inherentes, por esta misma razón, es más difícil llevar a la práctica un modelo de este tipo. En consecuencia tuvieron que crearse estándares de modelos de red como el modelo Jerárquico o CODASYL con restricciones fuertes, 



3) Explique el uso de la transformación ER-Red para el diseño de bases de datos de red: 



En primer lugar, las siglas ER significan (modelo entidad-relación) y reciben dicho nombre ya que los elementos principales son las irrelaciones y entidades que puedan haber. 

Los diagramas de estructura de datos son esquemas que representan el diseño de las bases de datos en red. Estos diagramas constan de dos componentes fundamentales: las cajas, que corresponden a tipos de registros, y las líneas, que corresponden a punteros. Los diagramas de estructuras de datos cumplen la misma finalidad que los diagramas E-R, es decir, especifican la estructura lógica global de la base de datos. Los diagramas E-R pueden transformarse en los diagramas de la estructura de datos correspondientes. 









LAS ENTIDADES- se representan en un pequeño recuadro 

LOS ATRIBUTOS- se representan mediante sus propios nombres pero en minúsculas; todos deben ser univaluados. 

LA CLAVE PRIMARIA- debe estar subrayada para poder diferenciarla de las demás 

4) Explique la programación de una base de datos de red adicione un ejemplo: 

Para una base de datos en red se basa en 2 lenguajes: 1)DDL (Lenguaje de Definición de Datos) 2) DML (Lenguaje de Modelo de Datos) Para leer agregar borrar etc 



Ejemplo de DDL: 

CREATE TABLE <table name> ( 

<Atribute name 1> <data type 1>, 

... <Attribute name n> <data type n>); 



Ejemplo de DML: 

INSERT INTO <table name> 

VALUES (<value 1>, ... <value n>); 



5) Muestre 2 ejemplos de diagrama de esquema de red para una base de datos: 

A continuación se muestra dos ejemplos donde se han diseñado simples base de de datos y donde se ven las diferentes jerarquías entre los segmentos padre e hijo. 


















jueves, 19 de enero de 2012

V.- Presente un ejemplo que aplique los pasos de la normalización desde la 1FN hasta la 4FN.


Analizando la tabla Deporte:

1FN: Si cumple se encuentra atomizado.

2FN: Si cumple hay una DFC (dependencia funcional completa) con la clave primaria.

3FN: Si cumple no hay DT(dependencia transitiva) y los atributos que no son clave primaria no depende uno del otro.

4FN: Si cumple no existe una DMV(Dependencia multivalor).

Por lo tanto, la tabla Deporte se encuentra en Cuarta Forma Normal(4FN).

IV.- Explique detalladamente que resuelve la cuarta forma normal (4FN) presente 4 ejemplos. También muestre mediante ejemplos las fallas que presenta la 4FN.



La cuarta forma normal (4NF) se cumple si y solo si está en Tercera forma normal o en BCFN (Cualquiera de ambas) y no posee dependencias multivaluadas no triviales. La definición de la 4NF confía en la noción de una dependencia. Una tabla con una dependencia multivaluada es una donde la existencia de dos o más relaciones independientes muchos a muchos causa redundancia; y es esta redundancia la que es suprimida por la cuarta forma normal. 

BCNF: Una relación está en forma normal Boyce Codd (BCFN) si y solo si todo determinante es una clave candidata. 

Por otro lado, las fallas que presenta la 4FN son: 

* El principal problema con la violación de la cuarta forma normal (4FN) es que existe incertidumbre en cuanto a las políticas de mantenimiento 

Ejemplo mediante falla que presenta la 4FN:

Considere el siguiente ejemplo:



Cada fila indica que una tienda dado puede entregar una variedad dada de chocolates a un área dada. Note que debido a que la tabla tiene una clave única y ningún atributo no-clave, no viola ninguna forma normal hasta el BCNF. Pero debido a que las variedades de chocolate que una tienda ofrece son independientes de las áreas a las cuales la tienda envía, hay redundancia en la tabla: por ejemplo, nos dicen tres veces que A1 Chocolate ofrece la Corteza rellena, y si A1 Chocolate comienza a producir chocolates de Corteza de vainilla-chocolate entonces necesitaremos agregar múltiples registros, uno para cada una de las Áreas de envío de A1 Chocolate. En términos formales, esto se describe como que Variedad de chocolate está teniendo una dependencia multivalor en la tienda.

Para satisfacer la 4NF, debemos poner los hechos sobre las variedades de chocolates ofrecidas en una tabla diferente de los hechos sobre áreas de envío:






















En contraste, si las variedades de chocolate ofrecidas por una tienda a veces variaran de un área de envío a otra, la tabla original de las tres columnas satisfaría la 4NF. 



Ejemplos: 

1.                                                    
                      
2.                                                   
3.
4.



III.- Explique detalladamente que resuelve la tercera forma normal (3FN) presente 4 ejemplos. También muestre mediante ejemplos las fallas que presenta la 3FN.



La tercera forma normal (3FN) es cuando se cumple la 2FN y además ningún atributo que no es clave primaria está en Dependencia Funcional (DF) con algún otro atributo que no es clave primaria.


La tercera forma normal (3FN) resuelve:

. La Dependencia Transitiva (DT).

Ejemplos: En estos ejemplos se muestra la aplicación de la 1FN, 2FN y sobretodo de la 3FN.

1.  Alumnos: (DNI, Nombre, Apellido1, Cod_Provincia)

     Provincia: (Cod_Provincia, Provincia)







2.  Personal: (cod_p , nombre,cod_fac)

      Facultad: (cod_fac , nomb_facultad)


3.


4. La tabla Ganadores del torneo se dividió en dos, ya que se podía observar la dependencia 
    transitiva entre dos atributos no claves, pero al dividirlo ya se disipo la DT.



Fallas de la tercera forma normal:

La principal falla o defecto de la tercera forma normal es cuando se presenta la dependencia de multivalor que es la existencia de dos o más relaciones independientes muchos a muchos causa redundancia en la información, y como también cuando se presenta que algún determinante no es clave candidata. 

Ejemplos de las fallas de la 3FN:

Ejemplo 1:






Esta relación tiene dos claves sobrepuestas (Nivel, Cargo) y (Nivel, Nombre), pero como también el determinante de Cargo es Nombre pero este atributo Nombre no es una clave candidata.