viernes, 20 de enero de 2012

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




No hay comentarios:

Publicar un comentario