Un modelo de base de datos jerárquico es un modelo de datos en el que los datos se organizan en una estructura similar a un árbol . Los datos se almacenan como registros que están conectados entre sí a través de enlaces . Un registro es una colección de campos, y cada campo contiene solo un valor. El tipo de un registro define qué campos contiene el registro.
El modelo de base de datos jerárquica establece que cada registro secundario tiene solo un registro primario, mientras que cada registro primario puede tener uno o más registros secundarios. Para recuperar datos de una base de datos jerárquica, es necesario recorrer todo el árbol comenzando desde el nodo raíz. Este modelo se reconoce como el primer modelo de base de datos creado por IBM en la década de 1960. [ cita requerida ]
La estructura jerárquica fue desarrollada por IBM en la década de 1960 y utilizada en los primeros DBMS de mainframe . Las relaciones entre registros forman un modelo en forma de árbol. Esta estructura es simple pero inflexible porque la relación está confinada a una relación de uno a muchos. El Sistema de Gestión de la Información (IMS) de IBM y RDM Mobile son ejemplos de un sistema de base de datos jerárquico con múltiples jerarquías sobre los mismos datos.
El modelo de datos jerárquico perdió fuerza a medida que el modelo relacional de Codd se convirtió en el estándar de facto utilizado por prácticamente todos los sistemas de gestión de bases de datos convencionales. Una implementación de base de datos relacional de un modelo jerárquico se discutió por primera vez en forma publicada en 1992 [1] (ver también modelo de conjunto anidado ). Los esquemas de organización de datos jerárquicos resurgieron con la llegada de XML a fines de la década de 1990 [2] (ver también base de datos XML ). La estructura jerárquica se utiliza principalmente hoy en día para almacenar información geográfica y sistemas de archivos. [ cita requerida ]
En la actualidad, las bases de datos jerárquicas siguen siendo ampliamente utilizadas, especialmente en aplicaciones que requieren un rendimiento y una disponibilidad muy elevados, como la banca, la atención sanitaria y las telecomunicaciones. Una de las bases de datos jerárquicas comerciales más utilizadas es IMS. [3] Otro ejemplo del uso de bases de datos jerárquicas es el Registro de Windows en los sistemas operativos Microsoft Windows . [4]
Una organización podría almacenar información de los empleados en una tabla que contenga atributos o columnas como el número de empleado, el nombre, el apellido y el número de departamento. La organización proporciona a cada empleado hardware informático según sea necesario, pero el equipo informático solo puede ser utilizado por el empleado al que está asignado. La organización podría almacenar la información del hardware informático en una tabla separada que incluya el número de serie de cada pieza, el tipo y el empleado que la utiliza. Las tablas podrían tener este aspecto:
En este modelo, la employee
tabla de datos representa la parte "principal" de la jerarquía, mientras que la computer
tabla representa la parte "secundaria" de la jerarquía. A diferencia de las estructuras de árbol que suelen encontrarse en los algoritmos de software informático, en este modelo los secundarios apuntan a los principales. Como se muestra, cada empleado puede poseer varios equipos informáticos, pero cada equipo informático individual puede tener solo un propietario empleado.
Considere la siguiente estructura:
En este caso, el "hijo" es del mismo tipo que el "padre". La jerarquía que indica que EmpNo 10 es el jefe de 20, y 30 y 40 reportan cada uno a 20 está representada por la columna "ReportsTo". En términos de bases de datos relacionales, la columna ReportsTo es una clave externa que hace referencia a la columna EmpNo. Si el tipo de datos "hijo" fuera diferente, estaría en una tabla diferente, pero seguiría habiendo una clave externa que hace referencia a la columna EmpNo de la tabla de empleados.
Este modelo simple se conoce comúnmente como el modelo de lista de adyacencia y fue introducido por el Dr. Edgar F. Codd después de que surgieran críticas iniciales de que el modelo relacional no podía modelar datos jerárquicos. [ cita requerida ] Sin embargo, el modelo es solo un caso especial de una lista de adyacencia general para un gráfico.