lunes, 14 de septiembre de 2020

Modelo jerárquico

 

Modelo jerárquico

Como su nombre indica, almacena la información en una estructura jerárquica que 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, y así sucesivamente.

Esta relación jerárquica no es estrictamente obligatoria, de manera que pueden establecerse relaciones entre nodos hermanos, y en este caso, la estructura en forma de árbol se convierte en una estructura en forma de grafo dirigido (esta variante se denomina Bases de datos de red).

A diferencia del modelo relacional, el modelo jerárquico no diferencia una vista lógica de una vista física de la base de datos. De manera que las relaciones entre datos se establecen siempre a nivel físico, es decir, mediante referencia a direcciones físicas del medio de almacenamiento (sectores y pistas).

Los datos se almacenan en la forma de registros, el equivalente a las tuplas del modelo relacional. Cada registro consta de un conjunto de campos, el equivalente a los atributos del modelo relacional. Un conjunto de registros con los mismos campos se denomina fichero (record type, en inglés), el equivalente a las relaciones del modelo relacional.

El modelo jerárquico facilita relaciones padre-hijo, es decir, relaciones 1: N (de uno a varios) del modelo relacional. Pero a diferencia de este último, las relaciones son unidireccionales. En justicia, dichas relaciones son hijo-padre, pero no padre-hijo. Por ejemplo, el registro de un empleado (nodo hijo) puede relacionarse con el registro de su departamento (nodo padre), pero no al contrario. Esto implica que solamente se puede consultar la base de datos desde los nodos hoja hacia el nodo raíz. La consulta en el sentido contrario requiere una búsqueda secuencial por todos los registros de la base de datos (por ejemplo, para consultar todos los empleados de un departamento). En las bases de datos jerárquicas si existen índices que faciliten esta tarea.

Ventajas

  • Un árbol con todo su entrerramado, en el que la conexión es fija y solo puede ser cambiada modificando una porción de código, suministra, sin embargo, la ventaja de la navegación se realiza de una forma muy rápida.
  • Es fácil de ver la estructura de la base de datos.
  • Su implementación es sencilla y rápida de implementar.
  • Se puede predefinir relaciones, lo que simplifica las variaciones a futuro.

Desventajas

  • Puede dar lugar a la consistencia de los datos cuando se llevan a cabo actualizaciones.
  • Resulta inevitable el desaprovechamiento de espacio. 

Solución: una solución es introducir el concepto de registro virtual. Este tipo de puntero no contiene ningún valor de dato, sino un puntero lógico a un registro físico concreto. Cuando hay que replicar un registro en varios árboles de una base de datos, se guarda una sola copia de ese registro en uno de los árboles y se sustituyen en los demás registros por registros virtuales que contiene un puntero a ese registro físico.

  • La extracción de la información de una unidad que se encuentra varios niveles abajo requiere navegar por un camino a través de las unidades y sus relaciones hasta llegar a ella.
  • Presenta la desventaja de que es necesario un conocimiento en profundidad de las unidades de información y de sus relaciones entre sí. Adicionalmente combinar la información de unidades que residen en ramas muy separadas de la estructura arbórea es una tarea que consume tiempo y esfuerzo.
  • Las operaciones de insertar y borrar son complejas.
  • Las relaciones Nodo a Nodo pueden ser implementadas de una forma no muy eficiente, pues para hacerlo se genera redundancia.

2 comentarios:

¿Qué es un diagrama de Gantt?

  ¿Qué es un diagrama de Gantt? Un diagrama de Gantt es una herramienta útil para planificar proyectos. Al proporcionar una  vista general...