domingo, 18 de septiembre de 2011

Modelo de Base de Datos Jerarquico

El modelo de base de datos jerarquico, basa su diagrama en la relacion PADRE/HIJO.
Para este tipo de base de datos se utilizan las siguientes estructuras:
 1.  Segmento Padre: Aquel que posee hijos(Todos sus hijos estan en el mismo nivel).
 2.  Segmento Hijo: Aquel que depende de otro segmento (Padre).
 3. Segmento Raiz: Es el segmento que ocupa el nivel superior del arbol (No tiene padres).
La base de datos jerarquica posee ciertas restricciones:
- Al tener poca flexibilidad (ya que tiene un modelo de N:1), nos induce a caer en redundancias, lo que ocurriria si usaramos un modelo de N:M.
La tranformacion de una entidad relación a el modelo de base de datos jerarquicos se realiza segun la figura siguiente:



Vínculos virtuales:
Esta relación jerárquica no es estrictamente obligatoria, de manera que pueden establecerse relaciones entre nodos hermanos. 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. En elmodelo jerárquico sólo se pueden modelar relaciones 1:N, aunque esto se podía arreglar mediante el uso de los llamados "vínculos virtuales" que posibilitan las relaciones N:M.

Este tipo de modelo de base de datos posee un lenguaje de definición de datos y de manipulación de datos. El siguiente es un ejemplo de lenguaje de manipulacion de datos.

2 Data Manipulation Language. 
2.1 Consultas
Se realizan con la orden GET. Se realizan dos tareas: 
1) Localiza un registro en la BD y hace que el puntero de dirección indique a él. 
2) Copia dicho registro a la plantilla del área de trabajo 
Clases de Consultas: 
- GET FIRST <tipo_registro> [WHERE <condición>] 
Localiza el primer registro del tipo indicado. si hay cláusula where, se localiza el primero que 
cumple la condición. También se usa como GET UNIQUE. 
- GET NEXT <tipo_registro> [WHERE <condición>] 
Localiza el siguiente registro del tipo indicado. Si hay cláusula where, se localiza el siguiente que 
cumple la condición. 
GET NEXT WITHIN PARENT <tipo_registro> [WHERE <condición>] 
Localiza el siguiente registro del tipo indicado, dentro de un subárbol cuya raíz es el último 
registro localizado con GET FIRST o GET NEXT. Si hay cláusula where, se localiza el siguiente 
que cumple la condición. 
Consultas con retención del registro: 
   El usuario que hace la consulta retiene el registro hasta que lo libera. El registro está bloqueado 
y no pueden acceder a él los demás usuarios. Las órdenes con retención son equivalentes a las 
anteriores: 
   GET HOLD { FIRST │NEXT │NEXT WITH} 
2.2. Actualizaciones.
Las operaciones se realizan a nivel de registro. Los registros se almacenan desde las plantillas del 
área de trabajo. 
- INSERT <tipo_registro> [WHERE <condición>]  
El registro se inserta en la primera posición de la base de datos donde se pueden colocar registros 
de ese tipo. Si hay cláusula where el sistema busca un registro que satisfaga la condición, y el 
registro recién creado se inserta como su hermano más a la izquierda. 
- REPLACE 
Sustituye el contenido de un registro con el de la plantilla del área de trabajo. Dicho registro debe 
haber sido recuperado previamente con un GET HOLD ... para que el puntero de dirección 
señale hacia él. 
- DELETE 
Elimina un registro. Dicho registro debe haber sido recuperado previamente con un GET HOLD 
... para que el puntero de dirección señale hacia él.

No hay comentarios:

Publicar un comentario