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.
Muy buen contenido
ResponderEliminarExcelente informacion
ResponderEliminar