modelo de red modelo de red - Carreras de Sistemas - UARG

Anuncio
MODELO DE RED
!
Alvarado, Belen
Atencio, Josefina
Farfán, Ricardo
Farfán, Silvia
1
Model o de red
&
MODELO DE RED
• Conceptos Básicos
• Diagrama Estructura Datos
• Modelo CODASYL DBTG
• Facilidad de recuperación de datos en DBTG
• Facilidad de actualización en DBTG
• Facilidad de procesamiento de conjunto en DBTG
• Asignación de redes a archivos
• Sistemas de Red
Model o de red
2
1
Concepto Básicos
ƒ Datos representados por una colección de registros.
9 Similar a una entidad en el modelo E-R
9 Cada Registro es una colección de Campos
type cuenta= record
numero:integer;
saldo:integer;
end
!
type cliente= record
nombre:=string;
calle:string;
ciudad:string;
end
ƒ Los datos se relacionan por medio de un enlace
9 Similar a una forma restringida (binaria) de relación en el sentido
del modelo E-R
3
Model o de red
Diagrama de estructura de datos
&
ƒ Esquema que representa el diseño de una Base
de Datos de Red.
ƒ Este diagrama consta de dos componentes
básicos.
9
9
CAJAS, que corresponde a tipos de Registros.
LINEAS, que corresponde a enlaces.
ƒ Especifica la estructura lógica global de la Base
de Datos.
Model o de red
4
2
Diagrama de estructura de datos
!
ƒ Diagrama E-R y su correspondiente diagrama de
estructura de datos.
5
Model o de red
Diagrama de estructura de datos
&
ƒ Un enlace no puede contener valores de datos.
ƒ representar una diagrama en E-R de un atributo con un
nuevo tipo de registro y enlace de muchos a uno.
Model o de red
6
3
Relaciones generales
ƒ Para transformar el diagrama E-R en un diagrama de
estructura de datos de red necesitamos hacer lo
siguiente.
9 Sustituir los conjuntos de entidades cuenta, cliente y sucursal por
los tipos de registro cuenta, y cliente y sucursal, respectivamente.
9 Crear un nuevo tipo de registro Renlace, (este nuevo tipo de
registro a veces se denomina tipo de registro ficticio).
9 Crear los siguientes enlaces del tipo muchos a uno:
•
•
CliRenl del tipo de registro Renlace al tipo de registro cliente.
CtaRenl del tipo de registro Renlace al tipo de registro cuenta.
SucRenl del tipo de registro Renlace al tipo de registro sucursal.
!
•
7
&
Model o de red
Model o de red
8
4
Modelo CODASYL DBTG
Solo pueden emplearse enlaces muchos a uno.
Para relaciones muchos a muchos se debe definir un
tipo de registro para representar la relacion y usar dos
enlaces.
si el enlace es de muchos a muchos, el algoritmo de
transformación debe redefinirse
ƒ
Sustituir entidades por registros.
Crear un nuevo tipo de registro ficticio, que puede no tener campos o
tener solo uno, que contenga un identif icador único definido
exteriormente.
Crear los dos siguientes enlaces muchos a uno que v an de:
9
9
9
•
•
!
ƒ
ƒ
Registro ficticio al primer registro (cliente).
Registro ficticio al segundo registro (cuenta).
9
Model o de red
Conjunto DBTG
&
ƒ La estructura de datos que consta de dos tipos de registro
enlazados entre si dentro del modelo DBTG, se denomina conjunto
DBTG.
ƒ En todo conjunto DBTG de este tipo, el tipo de registro A se
denomina dueño del conjunto y el tipo de conjunto B se denomina
miembro del conjunto.
ƒ Cada conjunto DBTG puede tener cualquier número de ocurrencias
del conjunto.
ƒ Puesto que no se permiten enlaces del tipo muchos a muchos, cada
ocurrencia del conjunto tiene exclucivamente un dueño y cero o
más registros miembro.
ƒ Ningún registro miembro puede participar en más de una
ocurrencia del conjunto en ningún momento.
ƒ Un registro miembro puede participar simultáneamente en varias
ocurrencias de diferentes conjuntos.
Model o de red
10
5
!
Conjunto DBTG
11
Model o de red
&
Tres ocurrencias de un conjunto
Model o de red
12
6
Grupos repetidos
ƒ Proporciona un mecanismo que permite a un campo
tener un conjunto de valores en vez de un solo valor.
ƒ Tambien es otra forma de representar el concepto
de entidades débiles en el modelo de E-R.
ƒ Ejemplo: cliente dividido en dos conjuntos.
ƒ
Cliente, con el atributo descriptivo nombre.
Dirección, con los atributos descriptivos calle y ciudad.
!
ƒ
13
&
Model o de red
Model o de red
14
7
Facilidad de recuperación de datos
en DBTG
ƒ El lenguaje de manipulación de datos de la propuesta
DBTG consiste en un número de ordenes que se
incorporan en un lenguaje principal (en este caso el
pascal).
ƒ Unidad de ejecución:
Todo programa que se ejecuta en un sistema, consta de una secuencia
de sentencias; algunas son sentencias de pascal y otras de son
sentencias de órdenes DBTG .
!
9
ƒ Area de trabajo de programa:
9
Es un área de almacenamiento de registros intermedios (buffer) que
contiene las variables siguientes;
15
Model o de red
Facilidad de recuperación de datos
en DBTG.
&
ƒ Plantillas de registro:
9
Registro para cada tipo de registro.
ƒ Punteros de actualidad:
9
9
9
Actual de tipo de registro.
Actual de tipo de conjunto.
Actual de unidad de ejecucón.
ƒ Indicadores de estado:
9
9
9
9
DB-status; 0 si la operación mas reciente se realizó con éxito.
DB-set-name.
DB-record-name.
DB-data-name.
Model o de red
16
8
!
Area de trabajo de programa
17
Model o de red
Las órdenes find y get
&
ƒ Find:
9
Localiza a un registro en la base de datos y da valores a los
punteros de actualidad.
ƒ Get:
9
Copia el registro al que apunta el actual de unidad de ejecución
de la base de datos a la plantilla adecuada en el área de trabajo
de programa.
Model o de red
18
9
Acceso a registros individuales
ƒ Find any <tipo de registro> using <campo de
registro>
9
Localiza un registro del tipo <tipo de registro> cuyo valor de
campo <campo de registro >es el mismo que el del valor de
<campo de registro> en la plantilla del <tipo de registro> en el
area de trabajo del programa.
ƒ Find duplicate <tipo de registro> using <campo
de registro>
Localiza al siguiente registro que tiene el valor del <campo de
registro>. Los punteros de actualidad mencionados
anteriormente también se ven afectados.
!
9
19
Model o de red
Acceso de registros dentro de un
conjunto
&
ƒ Otras ordenes find localizan registros en un conjunto
DBTG particular.
ƒ Find first <tipo de registro> within <tipo de conjunto>
9
Localiza el primer registro de la base de datos del tipo <tipo de
registro> que pertenezca al <tipo de conjunto> actual.
ƒ Para localizar los demas miembros de un conjunto,
adoptamos el siguiente formato:
ƒ Find next <tipo de registro> within <tipo de conjunto>
9
Esta orden encuentra el siguiente elemento del conjunto <tipo
de conjunto>.
ƒ Find owner within <tipo de conjunto>
9
Localiza el dueño del conjunto DBTG determinado.
Model o de red
20
10
Predicados
ƒ Para comparar el valor de un campo con un
rango de valores especificado debemos
hacer:
9
9
Pasar (get) los registros apropiados a la memoria.
Examinar cada uno por separado.
Determinar si es uno de los que busca la sentencia find.
!
9
21
Model o de red
Ejemplo
&
Suma:=0;
Cliente.nombre:=“lowman”;
Find any cliente using nombre;
Find first cuenta within clicta;
While db-status =0 do
Begin
get cuenta;
Suma :=suma +cuenta.saldo;
Find next cuenta within clicta
End;
Print (suma);
Model o de red
22
11
Facilidad de actualización en
DBTG
ƒ Mecanismo para la actualización de la información en la
base de datos.
9
9
Insertamos los v alores apropidos en la planilla del <tipo de registro>
correspondiente.
Añadimos este nuev o registro a la base de datos ejecutando:
Store <tipo de registro>
!
Cliente.nombre:=’’Juan’’;
Cliente.calle:=”Roca”;
Cliente.ciudad := ‘’Rio gallegos’’ ;
Store cliente ;
ƒ Esta técnica permite crear y añadir solamente un registro
cada vez.
Model o de red
23
Modificación de un registro
existente
&
ƒ Para modificar un registro existente del
tipo <tipo de registro> debemos:
9
9
9
9
Encontrar ese registro en la base de datos.
Pasarlo a la memoria principal.
Cambiar los campos deseados en la plantillas de
<tipo de registro>.
Reflejamos los cambios en el registro al que apunta
el puntero de actualidad de <tipo de registro>
• Modify <tipo de registro>
Model o de red
24
12
Eliminación de un registro
ƒ Para eliminar un registro ya existente del <tipo de registro>.
9 El puntero de actualidad de ese tipo debe apuntar al registro que
se va a eliminar.
9 Eliminamos ese registro ejecutando:
erase <tipo de registro>
ƒ Es posible eliminar toda una ocurrencia de conjunto encontrando al
dueño del conjunto.
Digamos un registro de tipo <tipo de registro> y ejecutando:
!
ƒ
erase all <tipo de registro>
9
9
9
Esto borrará al dueño del conjunto y a todos sus miembros.
Si un miembro del conjunto es dueño de otro conjunto, también
se eliminarán.
o de red
25
La operación erase all esModel
recursiva.
Ejemplo erase
&
Fin:=false;
Cliente.nombre:=”Juan”;
Find any cliente using nombre ;
Find for update first cuenta within CliCta;
While DB-status=0 and not fin do
Begin
Get cuenta;
If cuenta.número= 402 then
Begin
Erase cuenta;
Fin:=true;
End
Else find for update next cuenta within CliCta;
End
Model o de red
26
13
Ejemplo modify
!
Cliente.nombre:=’’Juan ’’;
Find for update any cliente using nombre;
Get cliente;
Cliente.ciudad:=’’Rio Gallegos’’;
Modify. Cliente;
27
Model o de red
Facilidad de procesamiento de
conjunto en DBTG
&
ƒ Mecanismo para insertar en o eliminar registros de una
ocurrencia de conjunto.
ƒ Para insertar un nuevo registro del tipo <tipo de
registro> en una ocurrencia determinada de <tipo de
conjunto>:
9
9
9
Insertar el registro en la base de datos.
Mover el puntero de actualidad, apunten al registro y ocurrencia
de conjunto apropiado.
Insertar el nuevo registro en el conjunto ejecutando
connect <tipo de registro> to <tipo de conjunto>
ƒ El registro puede eliminarse del conjunto ejecutando:
desconnect <tipo de registro> from <tipo de conjunto>
Model o de red
28
14
Ejemplo de connect y disconnect
Cuenta.número:=267;
Cuenta.saldo:=0;
Store cuenta;
Cliente.nombre:=”Juan”;
Find any cliente using nombre;
Connect cuenta to CliCta;
!
Cuenta.número:=177;
Find for update any cuenta using número;
Get cuenta;
Find dueño within CliCta;
Disconnect cuenta from CliCta;
29
Model o de red
Facilidad de procesaminento de
conjunto en DBTG
&
ƒ Para pasar un registro de tipo <tipo de registro> de una
ocurrencia de un conjunto a otra ocurrencia del conjunto
de tipo <tipo de conjunto> debemos hacer:
9
9
Encontrar el registro apropiado y el dueño de las
ocurrencias de conjunto a las que se trasladará ese
registro.
Mo ver el registro ejecutando:
reconnect <tipo de registro> to <tipo de conjunto>
Model o de red
30
15
Ejemplo de reconnect
!
Clienta.nombre:=”Juan”;
Find any cliente using nombre;
Find first cuenta within CliCta;
While DB-status=0 do
Begin
Find dueño within SucCta;
Get sucursal;
If sucursal.nombre :=”Hillside” then
Begin
Sucursal.nombre:=”Valleyview”;
Find any sucursal using nombre;
Reconnect cuenta to SucCta;
End
Find next cuenta eithin CliCta;
end
31
Model o de red
Facilidad de procesamiento de
conjuntos en DBTG
&
ƒ Un registro miembro recién creado, del tipo <tipo de registro> de un
tipo de conjunto <tipo de conjunto> puede añadise a una ocurrencia
de conjunto explicitamente(manualmente) o
implicitamente(automáticamente) mediante el siguiente comando:
Insertion is <modo de inserción>
ƒ Donde <modo de inserción> puede ser:
9
9
Manual, connect <tipo de registro> tp <tipo de
conjunto>
Automática,store <tipo de registro>
Model o de red
32
16
Facilidad de procesamiento de
conjuntos en DBTG
ƒ Existen varias restricciones respecto a cómo y cuándo
un registro miembro puede eliminarse de una ocurrencia
de conjunto en la que se haya insertado anteriormente.
retention is <modo de retención>
ƒ Donde <modo de retención> puede tomar una de las
ƒ tres formas:
9
9
Fija.
Obligatoria.
Opcional.
!
9
33
Model o de red
Asignación de redes a archivos
&
ƒ Los enlaces se implementan añadiendo campos
de punteros a los registros que se asocian por
medio de enlaces.
ƒ Cada registro debe tener un campo de puntero
por cada enlace con el que esté asociado.
ƒ Ejemplo: utilizando el diagrama de estructura y
su base de datos
Model o de red
34
17
!
35
Model o de red
Asignación de redes a archivos
&
ƒ La siguiente figura muestra la instancia del ejemplo con los
campos del puntero para representar los enlaces.
ƒ Cada linea de la figura anterior se sustituye por dos
punteros.
Model o de red
36
18
Asignación de redes a archivos
ƒ Como el enlace CliCta es muchos a muchos, cada
registro puede estar asociado a un número arbitrario de
registro.
ƒ El registro real que se utiliza en la implementación física
es un registro de longitud variable.
!
ƒ En el modelo DBTG los enlaces entre uno a uno, o uno
a muchos. En vez de utilizar muchos punteros en el
registro cliente podemos utilizar una estructura de anillo
para representar la ocurrencia total del conjunto DBTG
CteCta.
37
&
Model o de red
Model o de red
38
19
!
39
Model o de red
Asignación de redes a archivo
&
ƒ La colocación física de los registros es
importante para lograr una implementación
eficiente de una base de dato de red.
ƒ La cláusula placement provocará que el sistema
almacene los miembros de cada ocurrencia de
conjunto físicamente cerca unos de otros en el
disco.
Placement clustered via CliCta
Model o de red
40
20
!
41
Model o de red
Asignación de redes a archivos
&
ƒ Si deseamos almacenar más de un tipo de registro en
un archivo, podemos especificar que los registros
dueño y miembro se almacenan físicamente cerca
unos de otros en el disco. Hacemos esto añadiendo
la cláusula near owner a la cláusula placement.
Placement clustered via <nombre del conjunto> near ow ner
Model o de red
42
21
!
43
Model o de red
Sistemas de red
&
ƒ El modelos de red es la base de la mayor parte de los
sistemas antiguos de base de datos y de algunos
sistemas recientes.
ƒ Dos sistemas de red populares:
9
•
•
9
•
•
Total:
funciona en una gran variedad de maquinas.
Basado en el modelo DBTG.
Idms:
Desarrollado por Culliname Database System.
Incluye caracteristica adicionales para facilitar la labor del
programador.
Model o de red
44
22
Descargar