
Un modelo de base de datos jerárquico es un modelo de datos en el que los datos se organizan en una estructura de árbol . Los datos se almacenan como registros, que son colecciones de uno o más campos . Cada campo contiene un único valor, y la colección de campos en un registro define su tipo . Un tipo de campo es el enlace , que conecta un registro dado con registros asociados. Mediante enlaces, los registros se conectan con otros registros, y así sucesivamente, formando un árbol. Un ejemplo es un registro de "cliente" que tiene enlaces a los "pedidos" de ese cliente, que a su vez se conectan con los "artículos".
El modelo de base de datos jerárquico exige que cada registro hijo tenga un único padre, mientras que cada registro padre puede tener cero o más registros hijos. El modelo de red amplía el jerárquico al permitir múltiples padres e hijos. Para recuperar datos de estas bases de datos, es necesario recorrer todo el árbol desde el nodo raíz. Ambos modelos eran adecuados para datos que normalmente se almacenaban en unidades de cinta , las cuales requerían mover la cinta de un extremo a otro para recuperar los datos.
Cuando surgió el modelo de base de datos relacional , una de las críticas a los modelos de bases de datos jerárquicas fue su estrecha dependencia de la implementación específica de cada aplicación. Esta limitación, junto con la facilidad de uso del modelo relacional, contribuyó a la popularidad de las bases de datos relacionales, a pesar de su rendimiento inicialmente inferior en comparación con los modelos de red y jerárquicos existentes. [ 1 ]
Historia
La estructura jerárquica fue desarrollada por IBM en la década de 1960 y utilizada en los primeros sistemas de gestión de bases de datos (DBMS) para mainframes . Las relaciones entre los registros forman un modelo arbóreo. Esta estructura es simple pero inflexible, ya que la relación se limita 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 sistemas de bases de datos jerárquicas con múltiples jerarquías sobre los mismos datos.
El modelo de datos jerárquico perdió popularidad 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. La implementación de un modelo jerárquico en una base de datos relacional se publicó por primera vez en 1992 [ 2 ] (véase también modelo de conjunto anidado ). Los esquemas de organización de datos jerárquicos resurgieron con la llegada de XML a finales de la década de 1990 [ 3 ] (véase también base de datos XML ). La estructura jerárquica se utiliza hoy principalmente para almacenar información geográfica y sistemas de archivos.
Actualmente, las bases de datos jerárquicas siguen siendo muy utilizadas, especialmente en aplicaciones que requieren un alto rendimiento y disponibilidad, como la banca, la atención médica y las telecomunicaciones. Una de las bases de datos jerárquicas comerciales más utilizadas es IMS. [ 4 ] Otro ejemplo del uso de bases de datos jerárquicas es el Registro de Windows en los sistemas operativos Microsoft Windows . [ 5 ]
Ejemplos de datos jerárquicos representados como tablas relacionales
Una organización podría almacenar la información de los empleados en una tabla que contenga atributos/columnas como el número de empleado, el nombre, el apellido y el número de departamento. La organización proporciona a cada empleado el hardware informático que necesite, pero este 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 aparte que incluya el número de serie de cada componente, el tipo y el empleado que lo utiliza. Las tablas podrían tener este aspecto:
En este modelo, la employeetabla de datos representa la parte "padre" de la jerarquía, mientras que la computertabla representa la parte "hijo". A diferencia de las estructuras de árbol que se suelen encontrar en los algoritmos de software, en este modelo los hijos apuntan a los padres. Como se muestra, cada empleado puede poseer varios equipos informáticos, pero cada equipo puede tener un único propietario.
Considere la siguiente estructura:
En este caso, el "hijo" es del mismo tipo que el "padre". La jerarquía que establece que el empleado n.° 10 es jefe del n.° 20, y que los empleados 30 y 40 reportan cada uno al n.° 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 del "hijo" fuera diferente, estaría en una tabla distinta, pero seguiría existiendo una clave externa que hace referencia a la columna "EmpNo" de la tabla de empleados.
Este sencillo modelo se conoce comúnmente como modelo de lista de adyacencia y fue introducido por el Dr. Edgar F. Codd tras las críticas iniciales que señalaban que el modelo relacional no podía modelar datos jerárquicos. Sin embargo, el modelo es solo un caso particular de una lista de adyacencia general para un grafo.
Véase también
Referencias
- ↑ Silberschatz, Abraham; Korth, Henry F.; Sudarshan, S. Conceptos de sistemas de bases de datos . 4.ª ed., McGraw-Hill, 2004, págs. 11, 21.
- ↑ Michael J. Kamfonas/Jerarquías recursivas: ¡El tabú relacional! Archivado el 8 de noviembre de 2008 en Wayback Machine --The Relation Journal, octubre/noviembre de 1992
- ↑ "Desarrollo de aplicaciones web" . IBM .
- ↑ Sistema de gestión de información de IBM
- ↑ "Estructura del Registro - Aplicaciones Win32" .
Enlaces externos
- Enlaces de Troels a datos jerárquicos en sistemas de gestión de bases de datos relacionales (RDBMS)
- Gestión de datos jerárquicos en MySQL (Esta página proviene de archive.org, ya que ha sido eliminada de MySQL.com).
- Datos jerárquicos en MySQL: padres e hijos en una sola consulta
- Crear un diagrama jerárquico a partir de una base de datos jerárquica.
- Modelos de bases de datos