Un modelo de datos jerárquico es un modelo de datos que utiliza una representación de base de datos en forma de una estructura de árbol ( jerárquica ) que consta de objetos ( datos ) de diferentes niveles.
Hay enlaces entre objetos, cada objeto puede incluir varios objetos de un nivel inferior. Dichos objetos están en relación con un ancestro (un objeto más cercano a la raíz) con un hijo (un objeto de un nivel inferior), mientras que es posible que el objeto ancestro tenga varios hijos, mientras que el objeto hijo debe tener solo un ancestro. Los objetos que tienen un ancestro común se denominan gemelos (en programación, en relación con la estructura de datos, un árbol se denomina hermanos).
Las bases de datos jerárquicas se encuentran entre las más antiguas y fueron los primeros sistemas de administración de bases de datos de mainframe . Desarrollado en las décadas de 1950 y 1960, por ejemplo, por el Sistema de gestión de la información (IMS) de IBM [1] .
Por ejemplo, si una base de datos jerárquica contiene información sobre los clientes y sus pedidos, habría un objeto de cliente (principal) y un objeto de pedido (secundario). El objeto de cliente tendrá punteros de cada cliente a la ubicación física de los pedidos del cliente en el objeto de pedido .
En este modelo , consultar la jerarquía es simple (por ejemplo, qué pedidos pertenecen a este cliente). Sin embargo, una consulta dirigida hacia arriba en la jerarquía es más compleja (por ejemplo, qué cliente realizó este pedido). Además, es difícil representar datos no jerárquicos cuando se utiliza este modelo.
Una base de datos jerárquica es un sistema de archivos que consta de un directorio raíz que tiene una jerarquía de subdirectorios y archivos.
Las principales unidades de información en el modelo jerárquico de datos son el segmento y el campo. Un campo de datos se define como la unidad de datos indivisible más pequeña disponible para un usuario. Para un segmento, se definen un tipo de segmento y una instancia de segmento. Una instancia de segmento se forma a partir de valores de campo de datos específicos. Un tipo de segmento es una colección con nombre de sus tipos de campos de datos.
Al igual que la red, el modelo de datos jerárquico se basa en la forma gráfica de construcción de datos y, a nivel conceptual, es solo un caso especial del modelo de datos de red. En un modelo de datos jerárquico, la parte superior del gráfico corresponde a un tipo de segmento o simplemente a un segmento, y a los arcos, los tipos de relaciones padre-hijo. En estructuras jerárquicas, un segmento descendiente debe tener exactamente un padre.
El modelo jerárquico es un gráfico no dirigido conectado de una estructura de árbol que combina segmentos. Una base de datos jerárquica consta de un conjunto ordenado de árboles.
En el marco del modelo jerárquico se distinguen herramientas de lenguaje de descripción de datos (DDL) y herramientas de manipulación de datos (DML). Cada base de datos física se describe mediante un conjunto de operadores que determinan tanto su estructura lógica como la estructura de almacenamiento de la base de datos. En este caso, el método de acceso determina la forma en que se relacionan los registros físicos.
Se definen los siguientes métodos de acceso:
Además de especificar el nombre de la base de datos y el método de acceso, las descripciones deben contener definiciones de los tipos de segmentos que componen la base de datos, de acuerdo con la jerarquía, a partir del segmento raíz. Cada base de datos física contiene solo un fragmento raíz, pero un sistema puede tener varias bases de datos físicas.
Los operadores de manipulación de datos incluyen operadores de búsqueda de datos, operadores de búsqueda de datos con posibilidad de modificación y operadores de modificación de datos. El conjunto de operaciones de manipulación de datos en una base de datos jerárquica es pequeño, pero suficiente.
Ejemplos de operadores típicos de búsqueda de datos con posibilidad de modificación:
Ejemplos de operadores de modificación típicos para datos organizados jerárquicamente que se ejecutan tras la ejecución de uno de los operadores del segundo grupo (búsqueda de datos con posibilidad de modificación):
En un modelo jerárquico, la integridad referencial se mantiene automáticamente entre ascendientes y descendientes. Regla básica: ningún niño puede existir sin su padre.
Ejemplos de bases de datos con un modelo jerárquico son [2] :
Convertir un modelo conceptual en una estructura de datos jerárquica es similar en muchos aspectos a convertirlo en un modelo de red , pero también tiene algunas diferencias debido al hecho de que un modelo jerárquico requiere organizar todos los datos en forma de árbol.
La transformación de una relación de uno a muchos entre un ancestro y un descendiente es casi automática si el descendiente tiene un solo ancestro, y esto sucede de la siguiente manera. Cada objeto con sus atributos que participa en tal relación se convierte en un segmento lógico. Se establece una relación de uno a muchos entre dos segmentos lógicos. El segmento del lado "muchos" se convierte en un hijo, y el segmento del lado "uno" se convierte en un ancestro.
La situación se vuelve mucho más complicada si el descendiente no tiene uno, sino dos o más ascendientes en conexión. Dado que tal situación es imposible para un modelo jerárquico, la estructura de datos reflejada necesita transformaciones, que se reducen a reemplazar un árbol, por ejemplo, con dos (si hay dos ancestros). Como resultado de tal transformación, aparece la redundancia en la base de datos, ya que la única salida posible a esta situación es la duplicación de datos.
Base de datos | |
---|---|
Conceptos | |
Objetos |
|
Llaves | |
sql |
|
Componentes |