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