una base de datos acadmica (de la figura 1 que se muestra debajo), la cual contiene informacin acerca del sistema educacional interno de una compaa industrial grande. La compaa en cuestin mantiene un departamento educacional, cuya funcin es impartir varios cursos de adiestramiento para los empleados de la compaa; cada curso se ofrece en diferentes lugares dentro de la organizacin, y la base de datos contiene detalles tanto de los ofrecimientos ya impartidos, como de los programados para impartirse en el futuro.
Figura 1. Estructura de la base de datos acadmica. La base de datos contiene la siguiente informacin: Para cada curso: nmero de curso, ttulo de curso, detalles de todos los cursos que sean requisitos inmediatos y detalles de todos los ofrecimientos. Para cada curso que sea requisito de un curso dado: nmero de curso de ese requisito. Para cada ofrecimiento de un curso dado: nmero de ofrecimiento, fecha, lugar, detalles de todos los profesores y detalles de todos los estudiantes. Para cada profesor de un ofrecimiento dado: nmero de empleado y nombre. Para cada estudiante de un ofrecimiento dado: nmero de empleado, nombre y calificacin. El tipo de rbol para la base de datos acadmica tiene Curso como su tipo de registro de raz y posee dos tipos de subrbol, cuyas races son los tipos de Req y Ofrecimiento, respectivamente (y advirtase que este conjunto de dos tipos de subrbol est ordenado; es decir, el tipo de subrbol Req precede al tipo de subrbol Ofrecimiento, como se muestra en la figura 1). El tipo de subrbol con raz en Req es slo raz; en cambio, el tipo de subrbol con raz en Ofrecimientotiene a su vez dos tipos de subrbol de nivel ms bajo, los dos de slo raz, cuyas races son los tipos de registro Profesory Estudiante, respectivamente. As pues, la base de datos contiene cinco tipos de registro: Curso, Req, Ofrecimiento,Profesor y Estudiante. Curso como tipo de registro raz, y los dems como tipos de registros dependientes. Curso es el tipo de registro padre de los tipos de registro Req y Ofrecimiento, y stos son tipos de registro hijos de tipo de registroCurso. De manera similar, Ofrecimiento es el tipo de registro padre de Profesor y Estudiante, y stos son tipos de registro hijos de Ofrecimiento. La conexin entre un tipo hijo dado y su tipo padre correspondiente, se llama tipo liga. Cierta informacin que en una base de datos relacional se representara con claves ajenas, en una base de datos jerrquica se presenta mediante ligas padre-hijo. En la base de datos acadmica, por ejemplo, la conexin entre los ofrecimientos y los cursos est representada no por un campo NumCurso en el registro Ofrecimiento, sino por la ligaCurso-Ofrecimiento. Una vez tratada la cuestin de los tipos, a continuacin se revisan las ocurrencias.
La terminologa raz/padre/hijo, que se seal anteriormente en los tipos, se refleja tambin en las ocurrencias. De esta manera, cada ocurrencia de rbol consiste en una sola ocurrencia de registro raz, junto con un conjunto ordenado de cero o ms ocurrencias de cada uno de los tipos de subrbol que dependen en forma inmediata del tipo de registro raz. Cada una de esas ocurrencias de subrbol a su vez consiste tambin de una sola ocurrencia de registro -la raz de la ocurrencia de subrbol- junto con un conjunto ordenado de cero o ms ocurrencias de cada uno de los tipos de subrbol que dependen en forma inmediata de este tipo de registro raz, y as sucesivamente. Dicho de otro modo, para cualquier ocurrencia de cualquier tipo de registro padre, existen n ocurrencias de cada uno de sus tipos de registro hijos (donde nes mayor o igual a cero). En la siguiente figura (2) se muestra un slo rbol de la base de datos acadmica de la figura 1 en trminos ms precisos, desde luego, una sola ocurrencia de rbol.
Figura 2. Muestra de un rbol de la base de datos acadmica. La explicacin del rbol de la figura 2 es la siguiente; por definicin, ese rbol contiene una sola ocurrencia de Curso (la raz del rbol). Ese Curso tiene dos requisitos subordinados y tres ofrecimientos subordinados (en trminos ms precisos, esa ocurrencia de Curso tiene un conjunto ordenado de dos ocurrencias de Req subordinadas y un conjunto ordenado de tres ocurrencias de Ofrecimiento subordinadas). Se dice que Curso es una ocurrencia padre, con dos hijosReq y tres hijos Ofrecimiento, es decir, ocurrencias hijas. De manera similar, el primer ofrecimiento tambin es un padre con un hijo Profesor y varios hijos Estudiante (slo se muestran tres). Los otros dos ofrecimientos no tienen hijosProfesor ni Estudiante en este momento, adems, cada (ocurrencia) padre se considera como el padre en tantas ligas (es decir, ocurrencia de liga) como hijos tenga ese padre, es decir, el registro Curso. Por ejemplo, es el padre en dos ocurrencias de la liga Curso Req, y el padre en tres ocurrencias de la liga Curso- Ofrecimiento. Por otro lado, cada (ocurrencia) hija es el hijo en una y slo una (ocurrencia de) liga.
Adems de lo expuesto anteriormente, hay un vocablo que se aplica a las ocurrencias y no a los tipos: el trmino gemelo. Se dice que todas las ocurrencias de un tipo hijo dado que comparten la misma ocurrencia padre son gemelas. As, por ejemplo, los tres ofrecimientos de la figura 2 son gemelos (aunque haya tres). Es preciso mencionar que los requisitos en esa figura no son gemelos de esos ofrecimientos, porque aunque tienen el mismo padre, son de un tipo diferente. A lo largo del subtema se ha hecho mencin frecuentemente del concepto de ordenamiento, de hecho la nocin de ordenamiento es fundamental en la estructura de datos jerrquica. Considerando algn tipo de subrbol T, cuyo registro raz es R y cuyos tipos de subrbol son S1, S2, Sn (en ese orden). Sea t una ocurrencia de T, cuya raz es r (una ocurrencia de R) y cuyos subrboles son s1, s2, sn (ocurrencias de S1, S2, Sn, respectivamente). Definimos entonces de manera recursiva la secuencia jerrquica de t como la secuencia que se obtiene tomando primero el registro r, seguido de todos los registros de s1 en secuencia jerrquica, despus de todos los registros de s2 en secuencia jerrquica, seguidos de todos los registros de sn en secuencia jerrquica: Curso M23 Req M16 Req M19 Ofrecimiento 1 Profesor 421633 Estudiante 102141 Estudiante 183009 Estudiante 761620 Ofrecimiento 2 Ofrecimiento 3 Esto se da en orden de arriba hacia abajo y de izquierda a derecha, llamado tambin ordenamiento de profundidad. Cada uno de los rboles en la base de datos se puede considerar como un subrbol de algn registro raz del sistema hipottico, en consecuencia toda la base de datos se puede considerar como un slo rbol. Por tanto, la nocin de secuencia jerrquica antes definida se aplica a toda la base de datos as como a cada subrbol individual, es decir, el concepto de secuencia jerrquica define un ordenamiento total para el registro de la base de datos, y debe considerarse a las bases de datos almacenadas (lgicamente) de acuerdo con ese ordenamiento.
Manipulacin de los datos en el modelo jerrquico Un lenguaje para manipulacin de datos con estructura jerrquica se compone de un conjunto de operadores para procesar datos representados en forma de rboles. Como ejemplos de tales operadores podemos mencionar los siguientes: Un operador para localizar un rbol especfico en la base de datos; por ejemplo, un operador para localizar el rbol del curso M23 (ver figura 2). Un operador para pasar uno de estos rboles al siguiente; por ejemplo, un operador para pasar del rbol correspondiente al curso M23 al rbol siguiente en la secuencia jerrquica de base de datos. Operadores para pasar de un registro a otro dentro de estos rboles, desplazndose hacia arriba o hacia abajo por los diversos trayectos jerrquicos; por ejemplo, un operador para pasar de registro Curso correspondiente al cursoM23 al primer registro de Ofrecimiento de ese curso. Otros ejemplos de operadores son: Operadores para pasar de un registro a otro de acuerdo con la secuencia jerrquica de la base de datos; por ejemplo, un operador para pasar de un registro Profesor de un Ofrecimiento determinado a un registro deEstudiante correspondiente a ese Ofrecimiento o a otro Ofrecimiento Subsecuente. Un operador para insertar un registro nuevo en una posicin especificada dentro de uno de esos rboles; por ejemplo, un operador para inserta un nuevo Ofrecimiento en el rbol del curso M23. Un operador para eliminar un registro especificado; por ejemplo, un operador para eliminar un cierto Ofrecimientodel rbol del curso M23. Como se ha visto en los ejemplos de la figura 1y 2, tales operadores trabajan por lo regular a nivel de registros. Es verdad que ciertos sistemas manejan tambin operadores a nivel de conjuntos, pero tales operadores quedan fuera del alcance modelo jerrquico en la acepcin usual del trmino.