miércoles, 18 de enero de 2012

II. El modelo de datos Jerárquico

Detalle las estructuras de una base de datos de jerárquico


Las estructuras jerárquicas se clasifican también como:
- Lineales: es un caso particular y simple en el que cada tipo de registro padre sólo puede tener un tipo de
registro hijo, donde se muestra la interrelación entre DEPARTAMENTO y EMPLEADO.
-Arborescente propiamente dicha: un tipo de registro padre puede tener varios tipos de registro
descendientes.

Explique los vínculos virtuales padre - hijo

La relación PADRE/HIJO en la que se apoyan las bases de datos jerárquicas, determina que el camino de acceso a los datos sea ÚNICO; este camino, denominado CAMINO SECUENCIA JERÁRQUICA, comienza siempre en una ocurrencia del segmento raíz y recorre la base de datos de arriba a abajo, de izquierda a derecha y por último de adelante a atrás. 

El esquema es una estructura arborescente compuesta de nodos, que representan las entidades, enlazados por arcos, que representan las asociaciones o interrelaciones entre dichas entidades. 
La estructura del modelo de datos jerárquico es un caso particular de la del modelo en red, con fuertes restricciones adicionales derivadas de que las asociaciones del modelo jerárquico deben formar un árbol ordenado, es decir, un árbol en el que el orden de los nodos es importante.



Explique las restricciones de integridad en el modelo jerárquico


A continuación se mencionan los problemas típicos de las bases de datos jerárquicas y que no existen en las bases de datos relacionales. Todos estos problemas derivan del hecho de que el sistema gestor de base de datos no implementa ningún control sobre los propios datos, sino que queda en manos de las aplicaciones garantizar que se cumplen las condiciones invariantes que se requieran (por ejemplo, evitar la duplicidad de registros). Dado que todas las aplicaciones están sujetas a errores y fallos, esto es imposible en la práctica. Además dichas condiciones suelen romperse ex profeso por motivos operativos (generalmente, ajustes debidos a cambios en el negocio) sin evaluarse sus consecuencias.

Duplicidad de registros

No se garantiza la inexistencia de registros duplicados. Esto también es cierto para los campos "clave". Es decir, no se garantiza que dos registros cualesquiera tengan diferentes valores en un subconjunto concreto de campos.

Integridad referencial

No existe garantía de que un registro hijo esté relacionado con un registro PADRE válido. Por ejemplo, es posible borrar un nodo PADRE sin eliminar antes los nodos HIJO, de manera que éstos últimos están relacionados con un registro inválido o inexistente..

Desnormalización

Este no es tanto un problema del modelo jerárquico como del uso que se hace de él. Sin embargo, a diferencia del modelo relacional, las bases de datos jerárquicas no tienen controles que impidan la desnormalización de una base de datos. Por ejemplo, no existe el concepto de campos clave o campos únicos.
La desnormalización permite ingresar redundancia de una forma controlada, seguir a una serie de pasos conlleva a:
  • Combinar las relaciones
  • Duplicar los atributos no claves
  • Introducción de grupos repetitivos
  • Crear tablas de extracción
Cuando se debe desnormalizar:
  • Se debe desnormalizar para optimizar el esquema relacional
  • Para hacer referencia a la combinación de 2 relaciones que forman una sola relación
Ejemplo:
Proveedor (Nro_proveedor, calle, ciudad, cod_postal, descripción) La relación Proveedor esta desnormalizada, ya que para normalizarla deberíamos crear una tabla con ciudad y código postal.


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

Ya se han señalado los inconvenientes que presenta el modelado del mundo real según esquemas jerárquicos,
y también hemos indicado una técnica de diseño jerárquico que consiste en introducir redundancias.



Se podría evitar la pérdida de simetrías introduciendo mucha mayor redundancia, donde se presenta la transformación de un esquema E/R con dos entidades y una interrelación N:M es
un esquema jerárquico en el que existen dos árboles, de modo que se conservan las simetrías naturales, ya que los algoritmos para dos preguntas simétricas, como son recuperar los alumnos de un profesor y recuperar los profesores de un alumno, serían también simétricos.
Soluciones de este tipo no son en absoluto eficientes.
A partir del modelo E/R, vamos a analizar la forma de transformar algunos tipo, de interrelaciones al modelo jerárquico.
A) Interrelaciones 1:N con cardinalidad mínima 1 en la entidad padre.
En este caso no existe ningún problema y el esquema jerárquico resultante será prácticamente el mismo que en el ME/R
B) Interrelaciones 1:N con cardinalidad mínima 0 en el registro propietario.
El problema es que podrían existir hijos sin padre, por lo que o se crea un padre ficticio para estos casos o se crean dos estructuras arborescentes.
La primera estructura arborescente tendrá como nodo padre el tipo de registro A y como nodo hijo los identificadores del tipo de registro B. De esta forma no se introducen redundancias, estando los atributos de la entidad B en la segunda arborescencia, en la cual sólo existiría un nodo raíz B sin descendientes.

C) Interrelaciones N:M
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.

D) Interrelaciones reflexivas
La jerarquía a) se utilizaría siempre que se desee obtener la explosión.
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.


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

El lenguaje de manipulación de datos para este modelo es el HDML. Las órdenes del lenguaje deben estar incorporados en un leguaje de programación general, este viene a ser
el lenguaje anfitrión.
Es necesario conocer algunos términos:
-Área de trabajo del usuario: Es el espacio en el que se almacenan las variables del programa, las cuales almacenan los registros.
-El registro actual de la base de datos: Es el ultimo registro al que se accedió.
-Cada esquema jerárquico tiene su propio registro actual de jerarquía.
-El sistema sigue la pista del actual tipo de registro para cada tipo de registros.
-Hay tres tipos de indicadores de actualidad: Actual de base de datos, actual de jerarquía para cada esquema jerárquico y actual de tipo de regsitros para cada tipo de registros.



No hay comentarios:

Publicar un comentario