Está en la página 1de 12

TEMA 37.

MODELO DE DATOS JERARQUICO Y EN


RED.ESTRUCTURAS.OPERACIONES

1.-Modelo en red
1.1.-Introduccion al modelo
1.2.Diagrama de estructura de datos
1.3.-Modelo en red CODASYL DBTG
i)Lenguaje de manipulacin de datos

2.Modelo jerarquico
1.1.-Introduccion al modelo
1.2.-Diagrama de estructura de rbol
a)Interrelaciones con tipos de correspondencias muchos a muchos
b)Interrelaciones uno a muchos
c)Interrelaciones con tipo de correspondencia uno a uno
1.3.-Lenguaje de manupulacion de datos.
1.-MODELO EN RED

1.1.-Introduccion al modelo

El modelo en red es uno de los tres modelos de datos mas utilizados en los sitemas
comerciales de bases de datos.

Historicamente las estructuras y el lenguaje del modelo fueron definidos por el comit
CODASYL, por lo que en mucha de la bibliografia se le denomina modelo
CODASYL.Posteriormente el ANSI realizo algunas modificaciones y recomendaciones
sobre el lenguaje

El lenguaje de un sistemas en red no es un lenguaje autonomo en si , sino que se


compone de una serie de funciones que habra que utilizar de manera inmersa dentro de
un lenguaje anfitrion. Para este proposito se utilizara PASCAL aunque en funcion del
producto comercial en cuestion es posible que en cada caso particular el lenguaje
anfirion sea C,COBOL,..

El nombre de las funciones propias de un sistema en red varia en funcion del producto
comercial, aunque la funcion en si es la misma.Por ello se nombraran estas funciones de
una manera general y sin particularizar en un producto en concreto

Antes de describir el lenguaje en si se definiran sus estructuras basicas

Un enlace es un tipo de asociacion entre dos tipos de registros.

1.2.Diagrama de estructura de datos

Un diagrama de estructura de datos es la representacion grafica de una base de datos de


red.

Consta de dos componentes basicos


Rectangualos que representan los tipo registro
Linas que representan los tipos de enlaces

Su proposito es el mismo que los diagramas entidad relacion, esto es , especificar la


estructura logica global de la base de datos en red.

Interrelaciones binarias

Distinguimos los siguientes tipos de correspondencia.


1. Interrelacion con tipos de correspondencia muchos a muchos.
2. Interrelacion uno a muchos.
3. Interrelacion uno a uno.

1.-Interrelaciones con tipos de correspondecia muchos a muchos


A partir de un tipo de un diagrama entidad-relacion, con tipo de correspondencia
muchos a muchos podemos deducir su diagrama de estructura de datos correspondiente.

2.-Interrelacion uno a muchos.

Se representa con una flecha apuntando hacia el tipo de registro que asocia varias
ocurrencias con una del otro tipo.

(Figura)

3.-Interrelaciones con tipo de correspondecia uno a uno

Se representa mediante una linea sencilla

(figura)

1.3.-Modelo en red CODASYL DBTG

El modelo de red del DBTG adopta la arquitectura en tres niveles ANSI/SPARC


estableciendo la siguiente equivalencia.
El nivel conceptual es denominado esquema.Su desarrollo es tarea del
administrador
El nivel externo es denominado subesquema.Su desarrollo esta rela del
desarrollador del programa,para ellos necesita informacion del esquema.
El nivel interno corresponde a la implementacion que efectua el modelo

Los niveles conceptual e interno son practicamente equivalentes.


Otros elementos basicos del modelo son:

1.Registros , tipos de registros y datos

En un sistema en red. Un Registro es un conjunto de valores e datos relacionados .Estos


registros se clasifican en Tipos de Registros , donde cada uno de ellos describe la
estructura de un grupo de registros que guardan la misma informacion

Ejemplo:

ESTUDIANTE
DNI NOMBRE APELLIDO DIRECCION

Una instancia de ese tipo de registros seria la siguiente.a

8825483 Antonio Garcia Castellano

Mientras en que las bases de datos relacionales los registros se engloban dentro de una
estructura de tabla relacional, en los sistemas en red se presenta un nuevo tipo de
estructuras denominada conjunto .Los conjuntos permiten enlazar unos registros con
otros.

2.-Conjuntos, tipos de conjuntos e instancias

Un tipo de conjunto es una descripcion de 1:N relaciones entre dos tipos de


registros.Este tipo de estructuras se representa por un diagrama de Bachman.Este
diagrama se compone de :

Un nombre para el tipo de conjunto.


Un tipo de registro propietario
Un tipo de registro miembro.

Ejemplo:Relacion entre las asignaturas en las que esta matriculado un alumno.

ESTUDIANTE
DNI NOMBRE APELLIDO DIRECCION

ESTUDIA

ASIGNATURA
REG-ASIG NOMBRE CARRERA CURSO
Los tipos de conjunto,al igual que los tipos de registros presentan instancias de
conjuntos. (tambien llamadas Ocurrencia de Conjuntos)

Una Ocurrencia de Conjunto esta compuesto de

Una instancia de registro propietario


Un numero cualquiera de ocurrencias de registros miembro
Una estructura de datos generalmente del tipo de lista doblemente enlazada.

Este tipo de estructura de datos suele implementarse mediante listas enlazadas o


doblemente enlazadas.

Tipo de registro:Es una coleccion de elementos de datos quese relacionan


logicamente
Tipo de conjunto:Expresa una interrelacion 1:1 o 1:N entre dos tipos de
resgistro
Tipo de registro miembro o hijo:aquel tipo de registro de un conjunto en el que a
las ocurrencias de los registros les corresponde siempre una unica ocurrencia de
otro tipo de registro.

El modelo CODASYL es similar al modelo general de red pero con la salvedad


que los enlaces mucho a mucho no estan permitidos

Lenguaje de definicion de datos

El DDL del modelo CODASYL no se ha llevado de una manera estardar a las


diferentes implementaciones comerciales, por ello se mencionan los conceptos
principales y no la sintaxis de una implementacion concreta

- Una Base de Datos tendra un esquema .Para declararlo utilizamos la sintaxis

SCHEMA IS <nombreEsqueam>

-Cada tipo de registro se nombra con la sintaxis

RECORD NAME IS <nombreTipoRegistro>

-Los tipos de datos se nombran con la sintaxis


<nombreCampo> TYPE IS <tipoCampo> <extension>

-Cada tipo de conjunto se nombra con la sitaxis

SET NAME IS <nobreConjunto>

-Se indica que tipo de registro es el propietario con la sintaxis

OWNER IS <nombreRegistro>SYSTEM

-El modo en que se desea que esten ordenados los registros miembros de un conjunto se
especifica con la clausula ORDER que puede adoptar ,entre otras, las siguientes
variantes.

ORDER IS FIRST :Cada nueva inserccion de un miembro se coloca


inmediatamente despues del propietario (LIFO)
ORDER IS LAST :Cada nueva inserccion de un miembro se coloca al final
(FIFO)
ORDER IS BY SYSTEM DEFAULT:Donde el sistema lo coloque por defecto.
ORDER IS SORTED BY DEFINED KEYS:El orden por los campos definidos
como clave

-En la parte del registro miembro se ha de usar la sintaxis:

KEY (ASCENDING | DESCENDING) IS <listaCampos>

-Para indicar restricciones de clave sobre campos o sus combinaciones se utiliza la


sintaxis.

DUPLICATE ARE NOT ALLOWED

-Se pueden declarar otras restricciones adicionales a las de la clave mediante la sintaxis

CHECK IS <predicado> | < procedimiento>

- Un registro puede insertarse de forma explicita (manualmente) o implicitamente


(automaticamente).Esta distincion se especifica con la orden INSERTION que puede
formar parte de una de las opciones de inserccion.

INSERTION IS MANUAL:El registro se ha de insertar manualmente con la


orden CONNECT
INSERTION IS AUTOMATIC.:El registro se inserta automaticamnte en una
ocurrencia apropiada cuando se de de alta con la orde STORE.Para determinar
cual es la ocurrencia utilizamos la clausula SET SELECTION.

Con SET SELECTION son habituales las siguientes clausulas.


SET SELECTION IS STRUCTURAL:el conjunto se selecciona mediante la
declaracion de los coampos cuyos valores deben coincidir ,uno registro
miembro y otro del propietatio.
- Este ultimo campo debe contar con la restriccion DUPLICATES ARE NOT
ALLOWED.
SET SELECTION US BY APPLICATION:La aplicacion se asegura que la
ocurrencia actual del conjunto se la adecuada para la inserccion.

Cuando se borra un registro porpietario de un conjunto se puede producir el borrado de


los registros miembro asociados.El comportamiento en este caso se determina con la
clausula
i)Lenguaje de manipulacin de datos

Los operadores de manipulacin del modelo DBTG procesan los registros


de uno en uno.El lenguaje de manipulacin del DBTG necesita de un
lenguaje anfitrin,el mas usual es COBOL.

Las ordenes del lenguaje de manupulacion se pueden clasificar en:


Ordenes de navegacion:FIND
Ordenes de recuperacion:GET
Ordenes de actualizacin de registros :ERASE,MODIFY,STORE
Ordenes de actualizacin de

Cada programa de ejecucin tiene una rea de trabajo de usuario (UWU).Es


un rea donde se encuentran varias memorias intermedias que contiene las
siguientes variables.
Plantillas de registros:una plantilla es una definicin del registro
,similar a los Records de Pascal o las struct de C.
o Existe una plantilla por cada tipo de registro.
Punteros actuales:punteros a los registros de la BD accedidos mas
recientemente
o Ultimo registro accedido:un puntero por cada tipo de registro
conteniendo la direccin del ultimo registro accedido.
o Ultimo registro accedido dentro de un conjunto:un puntero pro
cada tipo de conjunto conteniendo la direccin del ultimo
registro accedido
o Ultimo registro accedido pro el programa:un puntero por
programa conteniedo la direccin del ultimo registro accedido.
Indicadores de estado:son variables mediantes las que el sistema
ouede comunicar al programa el estado actual del SGBD y los
resultados de la ultima operacin

Veremos las diferentes ordedes

A) Ordenes de navegacin y recuperacin

Son las ordenes :FIND,GET,MODIFY


i) FIND: Permite localizr un registro o instancia de un conjunto.Su
ejecucion actualiza los punteros e indicadores
ii) GET:Recupera los datos localizados copinadolos sobre el rea de
plantillas de la UWA.
iii) .MODIFY.Puede acompaar a la ordel FIND
FIND tiene dos formatos

FIND ANY <Tipo de Registro >[USING <lista de campos>]


FIND DUPLICATE <tipo de registros< [USING lista de campos>]

B)Ordenes de actualizacin de registros

Para aadir un registro, primero se han de insertar los valores en la plantilla


del tipo de registro .Tras ello se usara la orden

STORE <tipo de registro>

Para usar las ordenes de borrado (ERASE) y modificacin (MODIFY) de


registros es precico aadir la particula FOR UPDATE a la orden FIND

Para modificar un registro existente primero ser preciso pasarlo a


plantatilla y luego al camo que se desea modificar y porultimo se ordenara
la actualizacin.

C)Ordenes de actualizacin de conjuntos

La orcen CONNECT permite asociar un egistro a un conjunto , la sintaxis


es .

CONNECT <tipo de registro> TO <tipo de conjunto>

El proceso complentp de inserccion de un registro asociado a un conjunto


conlleva los siguientes pasos.

Crear el registro nuevo con la orden STORE


Buscar el padre adecuado para el nuevo registro
Conectar el registro hijo al padre hallado.

DISCONNECT efecuta la operacin inversa a CONNECT .la sintaxis es

DISCONNECT <tipo de registro> FROM <tipo de conjunto>


Antes de desconcetar es preciso que los punteros actuales de <tipo de
registro> y <tipo de conjunto> apunten hacia el registro y el conjunto
implicados.Para ellos es preciso usar alguna sentendia de tipo FIND
2. MODELO JERARQUICO

1.1.-Introduccion al modelo

Los conceptos bsicos de este modelo son similares a los del modelo de red

Descripcion de la base de datos:hace las funciones del nivel conceptual y nivel


interno
Bloque de especificacin de programa (BEP):equivale al subesquema (vista de
usuario).Dentro de un programa existirn uno o mas subconjutnos BEP a los
que denominaremos bloque de comunicacin de programa (BCP)
Tipo de segmento (de registro) :equivale al conceto de tipo de registro del
modelo en red.
Tipo de interrelacion padre-hijo( IPH):equivale al concepto de tipo conjunto.En
un tipo IPH habr un tipo de segmento padre y otro hijo.La diferencia con el
modelo en red ser que un tipo de segmento solo podr ser hijo de un tipo de
IPH.Los padres se colocan en la parte superior del diagrama

1.2.-Diagrama de estructura de rbol

En el nivel superior existe un nico segmento raz vincualdo mediante una IPH con cero
o mas tipos de registro del nivel siguiente.A partir de aqu y hacia abajo cada IPH cada
IPH entre un padre y uno o varios hijos

Se utilizan otros trminos como tipo de segmento hoja para los nodos sin hijos
,ancestros de un tipo T para los tipos situados en el camino desde la raz hasta el tipo T,

Cada Diagrama de Estructura de Arbol esta formado por dos componentes bsicos.

Rectangulos:corresponden a tipos de registros , se les asgina un nombre.


Lineas:correspondn a enlaces ,no tienen nombre

La forma general de un diagrama de estructura de rbol es : (figura)


El esquema de una base de datos jerarquica se denomia bosque y estar formado pro
uno o mas diagramas de estructura de rbol:

Un bosque de DEA tiene el mismo propsito que un diagrama de entidad-


relacion:especificar la estructura global de la base de datos.

a)Interrelaciones con tipos de correspondencias muchos a muchos

El principal inconveniente del modelo jerarquico es la falta de flexiilidad.Este modelo


no permite representar sin incluir gran cantidad de redundancia ,relaciones con tipo de
correspondecia N:M

b)Interrelaciones uno a muchos

Los correspondientes esquemas E/R y diagramas de estructuras de arbol.En la


implmentacion de este tipo de interrelelacion un posible problema seria la cardinalidad
minima 0 en el lado del padre,es decir la posilidad de que apareceira un tipo de
segmento sin padre.Para solucionarlo se creara un dioble arbol como el de la figura.

c)Interrelaciones con tipo de correspondencia uno a uno

Se pueden considera como un caso e las 1:N

1.3.-Lenguaje de manupulacion de datos DL/I

Se procesan los registros de uno en uno ,como en el modelo DBTG.Las ordenes bsicas
son:
Ordenes de recuperacin:GET
Ordenes de actualizacin e registros:INSERT,REPLACE,DELETE.
La sintaxis usual para DL/I es

Orden <tipo de segmento> [WHERE <condicin>]


Cada programa en ejecucin tiene ,tambin aqu, un rea de trabajo del programa.ES un
rea donde se encuentran varias memorias intermedias que contienen las siguientes
variables.
Plantilla de segmento:Una plantilla de segmento es una definicin del
segmento/registro (similar a los Records de pascal o las struct de C)
Punteros actuales:punteros a los segmentos de la BD accedidos mas
recientemente
Indicadores de estado:son variales mediante las que el sistema puede comunicar
el programa el estado actual del SGBD y los resultados de la ultima operacin

Las ordenes principales son:

Recuperacion de registros
La recuperacin de datos se realiza mediante la orden get.Las acciones que se
realizan en una operacin get son las siguientes.
a. Localizar un registro en la base de datos y hacer que el puntero de
actualidad apunte hacia el.
b. Copiar ese registro de la base de datos a plantilla apropiada en el rea de
trabajo
Inserccion de registros
La inserccion de nuevos registros se realiza mediante la orden insert.Para insertar un
registro primero se han de colocar los valores adecuados en la plantilla del registro
correspondiente en el rea del trabajo.
Modificacion de registros
Para modificar un registro se utiliza la orde replace.Primero se ha de traer la
plantailla correspondiente del rea de trabajo y cambiar los coampos deseados en
esa plantilla.
Eliminacion de registros.
Para eliminar un registro primero se debe consegur que el puntero de actualidad
apunte a ese registro.Hecho esto es posile eliminar el registro ejecutnado delete.

También podría gustarte