modulo base de datos avanzada

Upload: angelmornov

Post on 20-Jul-2015

523 views

Category:

Documents


0 download

TRANSCRIPT

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

MODULO BASE DE DATOS AVANZADA

ROGELIO VASQUEZ BERNAL

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD FACULTAD DE CIENCIAS BSICAS E INGENIERA PROGRAMA INGENIERIA DE SISTEMAS BOGOT D.C., 2005

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

CONTENIDO TemasIntroduccin UNIDAD 1 BASES DE DATOS RELACIONALES CAPTULO 1. Conceptos bsicos de bases de datos 1. Modelo entidad relacin 1.2. Importancia del modelo entidad relacin 1.3. Elementos del Modelo entidad relacin 1.4 identificador nico 2. lgebra relacional 2.1. Seleccin 2.2. Proyeccin 1 1 1 2 3 10 14 15 15

Pg.8

2.3. Producto.2.4. Unin. 2.5. Interseccin 2.6. Diferencia 2.7. Join o Reunin. 2.8. Divisin 3. Normalizacin de datos 3.1 Modelo entidad relacin 3.2 Normalizacin 3.3 Desnormalizacin de datos CAPTULO 2. Transacciones

1516 16 17 17 19 19 19 20 23 24

2.1. Propiedades de la transaccin2.2. Concurrencia 2.3 Seguridad y recuperacin de datos CAPTULO 3. Consultas 3.1 Recuperacin 3.2 Clculo relacional 31 3.3 Optimizacin de consultas 32

2425 26 29 29

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

UNIDAD 2 BASES DE DATOS DISTRIBUIDAS Introduccin y fundamentos de Base de Datos Distribuidas. CAPTULO 1. Diseo de bases de datos distribuidas 1.1 El problema de diseo 1.2 Objetivos del Diseo de la Distribucin de los Datos 1.3 Enfoques al problema de diseo de bases de datos distribuidas 1.4 Fragmentacin 1.5 Diseo de la Replica CAPITULO 2. Consultas Distribuidas 2.1. Objetivo del procesamiento de las consultas 2.2. Niveles de procesador de consultas 2.3. Localizacin de datos 2.4 Procesamiento de interseccin simple 2.5. Descomposicin de una consulta y localizacin de datos distribuidos 2.6. Plan de optimizacin de consultas distribuidas CAPITULO 3. Transacciones Distribuidas 3.1 Definicin de una transaccin 3.2 Condiciones de terminacin de una transaccin 3.3 Caracterizacin de transacciones 3.4 Caracterizacin de transacciones 3.5. Propiedades de las transacciones 3.6. Tipos de Transacciones 3.7. Estructura de transacciones 3.8. Aspectos relacionados al procesamiento de transacciones 3.9. Incorporacin del manejador de transacciones a la arquitectura de un SMBD 3.10 Recuperacin En Sistemas Distribuidos 3.11. Control De Concurrencia 3.11.1 Teora de la seriabilidad 3.11.2 Seriabilidad en SMBD distribuidos 3.11.3. Taxonoma de los mecanismos de control de concurrencia 3.11.4 Algoritmos basados en candados 3.11.5 Algoritmos basados en estampas de tiempo 3.11.6 Control de concurrencia optimista

34 34 34 39 39 40 40 42 49 51 51 51 52 53 56 58 58 58 59 60 61 61 62 63 64 65 67 70 70 73 73 74 77 79

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

CAPITULO 4. Catalogo 4.1. Conceptos bsicos 4.2. Centralizado 4.3. Completamente replicado 4.4. Dividido 4.5. Combinacin de centralizado y dividido UNIDAD 3 OTROS MODELOS DE BASES DE DATOS CAPTULO 1. Bases de datos orientadas a objetos 1.1 Introduccin 1.2 Conceptos bsicos 1.3 Arquitectura de administrador de sistemas de BDOO. 1.4 Ssistema administradores de bases de datos orientadas a objetos (SABD-OO) 1.5 El sistema Postgres 1.6 Lenguaje de modelado unificado (UML) 1.6.1 Introduccin 1.6.2 UML, Mtodo o Lenguaje de Modelado? 1.6.3 Una perspectiva de uml 1.6.4 Diagramas de Secuencia 1.6.5. Diagramas de Colaboracin 1.6.6. Modelando el comportamiento de las Clases con Diagramas de Estado 1.6.7. Diagramas de Actividad 1.6.8 Modelando Componentes de Software 1.6.9 Modelando la Distribucin y la Implementacin 1.6.10 Diseo de Bases de Datos Relacionales -- Una extensin informal de UML 1.7 Consultas orientadas a objetos CAPTULO 2. Bodega de datos 2.1 Introduccin 2.2 Construccin y manejo de una bodega de datos 2.3 Manejo de los metadatos 2.4 Acceso y anlisis de datos 2.5 Manejo de sistemas 3. Construccin de la bodega de datos 3.1 Ambiente actual

82 82 82 82 82 82 86 86 86 86 87 89 91 92 92 92 94 95 99 100 101 102 103 104 105 107 109 109 110 111 111 111 112 112

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

3.2 Ambiente de Negocios. 3.3 Ambiente tcnico 3.4 Expectativas de los usuarios 4. Estrategias recomendadas para diseo de datos 4.1 Prototipo 4.2 Piloto 4.3 Prueba del concepto tecnolgico 4.4 Arquitectura de la Bodega de Datos 4.5 Factores de riesgo 5. Minera de Datos 5.1. Introduccin 5.2. Los Fundamentos del Data Mining 5.3. El Alcance de Data Minino 5.4. Fases de un Proyecto de Minera de Datos 5.5. Cmo Trabaja el Data Mining? 5.6. Una arquitectura para Data Minino 5.7. Tcnicas ms comnmente usadas en Data Mining:

112 112 112 112 112 113 113 113 115 116 116 116 117 119 119 120 121

GLOSARIO DE TRMINOS DE DATA MINING 123 FUENTES DOCUMENTALES ANEXO:Resultados de ejemplos referenciados en la seccin 2 lgebra Relacional

LISTA DE FIGURAS

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

FIGURAS Figura1. Representacin de entidad 12 Figura 2. Representacin de una relacin 12 Figura 3. Relacin recursiva 14 Figura 4. Nombre relaciones 14 Figura 5. Ejemplo nombre relaciones 15 Figura 6. Incorporando atributos 16 Figura 7. Atributos candidatos 16 Figura 8. Atributos candidatos 17 Figura 9. Un atributo repetido indica una entidad perdida. 18 Figura 10. Aadir la entidad perdida Figura 11. Muestra de identificadores nicos Figura 12. Refinamiento de Entidades Figura 13. Reconocimiento de patrones Figura 14 - Esquema de Relaciones de Ejemplo Figura 15 Primera forma normal Figura 16. Segunda y tercera forma normal Figura 17 - Pasos en el procesamiento de una consulta SQL

Pg.

18 20 21 22 23 29 31 33

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

Figura 18. Motivacin de los sistemas de bases de datos distribuidos. Figura 19. Un sistema centralizado sobre una red Figura 20. Un medio ambiente distribuido para bases de datos

44 45 46

Figura 21. El enfoque top-down para el diseo de bases de datos distribuidas 50 Figura 22. El problema de fragmentacin de relaciones. Figura 23. El grado de fragmentacin Figura 24. Un modelo de transaccin. Figura 25. Un modelo del administrador de transacciones. Figura 26. Ejecucin centralizada de transacciones. Figura 26b. Ejecucin distribuida de transacciones. Figura 27. Clasificacin de los algoritmos de control de concurrencia Figura 28. Grfica del uso de los candados de dos fases. Figura 29. Comportamiento de los candados de dos fases estrictos Figura 30. Comunicacin en un administrador centralizado de candados de dos fases estrictos. Figura 31. Comunicacin en candados de dos fases distribuidos Figura 32. Fases de la ejecucin de una transaccin a) pesimista, b) optimista. Figura 33. Casos diferentes de las pruebas de validacin para control de concurrencia optimista. Figura 34: Organizando el sistema mediante el uso de paquetes Figura 35: Modelado de Casos de Uso. 107 51 53 68 76 77 77 84 86 86

87 88

90

91 106

Figura 36: Relacin caso de uso Extiende (extends) frente a relacin de caso Usa (uses). Figura 37: Diagrama de Secuencia para un escenario 109 110

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

Figura 38: Diagrama de Colaboracin para un grupo de Objetos Figura 39: Modelando Comportamiento Dinmico de un objeto 'Vuelo' con un diagrama de estado Figura 40: Diagrama de Actividad Figura 41: Modelando componentes con el Diagrama de Componentes Figura 42: Modelando la Distribucin del Sistema con el Diagrama de Implementacin Figura 43: Extensin de UML -- Diseo de Bases de Datos Relacionales con el Diagrama de Relacin de Entidad (ER Diagram) Figura 44: Relaciones clave entre entidades en un Diagrama de Relacin de Entidad Figura 45: Fases de un Proyecto de Minera de Datos

111

112 113 114 115 116

117 129

LISTA DE TABLAS

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

Pg. Tabla 1 - Operadores del lgebra relacional Tabla 2. Comparacin de las estrategias de replicacin de fragmentos. INTRODUCCIN Un sistema de base de datos es bsicamente un sistema computarizado para llevar registros1. El modulo base de datos avanzada tiene como propsito fundamental profundizar algunos temas tratados en base de datos bsica y presentar un esquema nuevo para un nivel ms avanzado. Los temas aqu tratados requieren de un buen conocimiento de bases de datos y un gran deseo por profundizar cada uno de ellos en la bibliografa y cibergrafa recomendada. Los estudiantes deben trabajar el modulo acompaado de la gua de actividades y del protocolo acadmico para lograr as el propsito del curso acadmico.

23 54

1

C.J. DATE

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

UNIDAD 1 BASES DE DATOS RELACIONALESCaptulo 1. Conceptos bsicos de bases de datos 2. Modelo entidad relacin Es una tcnica para definir las necesidades de informacin de una organizacin. El modelo entidad relacin en su forma ms simple implica identificar asuntos importantes dentro de la organizacin (entidades) , propiedades de esos asuntos (atributos) y como se relacional entre si (relacin). Esto tiene valor solamente dentro del contexto de lo que se realiza en la empresa y en la forma de actuar de estas funciones de gestin sobre el modelo de informacin. 1.1. Objetivos del modelo entidad relacin Proporcionar un modelo preciso de las necesidades de informacin de la organizacin. Proporcionar un modelo independiente de cualquier almacenamiento de datos y mtodo de acceso, que permita tomar decisiones de las tcnicas de implementacin y coexistencia con sistemas antiguos. 1.2. Importancia del modelo entidad relacin Ofrece un medio efectivo y preciso de especificar y controlar la definicin de las necesidades de informacin. A continuacin se indican diez temas clave que se necesitan tener en cuenta cuando se utiliza el modelo: Dato: un recurso clave Hoy en da un dato, como recurso, se acepta por ser importante para la evolucin satisfactoria de la organizacin como lo son los recursos financieros, humanos y fsicos.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

Compromiso con la direccin La direccin debe confirmar los requisitos de informacin. No importa lo inteligente que usted resulte al modelizar, tendr un xito limitado sin el compromiso de la direccin. Convenciones En todo momento se deben aplicar convenciones rigurosas, estndares y directrices, incluyendo los conceptos de normalizacin de datos.

Definicin mnima Se debera definir o modelizar cualquier informacin o concepto de datos slo de una forma, y a continuacin configurar asociaciones para los objetos relacionados. Como por ejemplo, se debera definir una vez una cosa denominada Pedido de compra y a continuacin relacionarlo con el departamento, los productos, las funciones de autorizacin y as sucesivamente, como se requiera. Independencia de los datos Se deben definir los requisitos de informacin de forma que sean independientes de cualquier almacenamiento final o mtodo de acceso y que nos permita tener una visin creativa y objetiva de la empresa y del diseo subsiguiente. Patrones genricos Deberan buscarse patrones genricos de datos para permitir a los usuarios utilizarlos en su gestin, adems de tener la oportunidad de perfeccionar la forma de procesar sus datos y de sugerir estructuras ms rentables y flexibles para los diseadores de bases de datos. Actitud y calidad Los modelizadores deben comenzar aplicar las convenciones automticas y velozmente, pero sin sacrificar el rigor. Tambin debe aprovechar cualquier oportunidad con los usuarios para mejorar la precisin de los modelos. Comunicacin Debe haber comunicacin con los usuarios finales, en trminos que ellos puedan entender auque debe seguir siendo tcnicamente riguroso. Estas tcnicas de modelizacin se han utilizado durante muchos aos para ayudar a altos ejecutivos, directores y a otros a comprender su gestin. Es esencial utilizar un lenguaje claro, sin abreviaturas, para lograr su comprensin. Con un usuario final no deberamos utilizar la palabra entidad. Relevancia Los requisitos de informacin solamente pueden tener valor si aportan las necesidades funcionales de la organizacin, dentro del marco de trabajo de los objetivos y propsitos de la empresa.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

Un medio, no un fin Aunque el modelo entidad relacin es muy potente, ofrecer una idea increble de la compaa y actuar como un marco de trabajo para el diseo de los datos, solo es una tcnica intermedia, aunque desde luego importante. 1.3. Elementos del Modelo entidad relacin El modelo entidad relacin para ser funcional requiere de la definicin de unos elementos, los cuales se precisan a continuacin: 1.3.1 Entidad Se define como entidad a cualquier objeto real o abstracto, que existe en un contexto determinado o puede llegar a existir y del cual deseamos guardar informacin. Representacin de entidad: Una entidad se representa en forma de diagrama con un recuadro y en su interior un nombre. El nombre se muestra en singular y con letras maysculas (figura 1).

NOMBRE ENTIDAD

Figura1. Representacin de entidad Reglas para definir una entidad: Cualquier objeto slo puede ser representado por una entidad. Es decir las entidades son mutuamente exclusivas en todos los casos. Cada entidad debe ser identificada en forma nica. Es decir, cada instancia (aparicin) de una entidad debe encontrarse separada e identificable claramente de todas las dems instancias de ese tipo de entidad. 1.3.2. Relacin Se entiende por relacin a la asociacin, vinculacin o correspondencia entre entidades. Por ejemplo entre la entidad PROFESOR y la entidad CURSO podemos establecer la relacin IMPARTE porque el profesor imparte cursos. Una relacin es binaria en el sentido de que es siempre una asociacin entre exactamente dos entidades, o entre una entidad y ella misma. Cada relacin tiene dos extremos, para cada uno de los cuales tiene un: Nombre Grado / cardinalidad (cuantos)

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

Opcionalidad (opcional u obligatorio). Estas propiedades se utilizan para describir la asociacin desde un extremo; se deben definir ambos extremos. Representacin de una relacin: Una relacin se representa mediante una lnea que une dos recuadros de entidades, o recursivamente (recurrentemente) une un recuadro de entidad consigo mismo. La relacin ms comn es la que tiene un grado de muchos a uno: en el extremo muchos es obligatoria y opcional en el extremo uno, como se muestra en la figura 2.

uno Muchos opcional obligatorio

Figura 2. Representacin de una relacin

Para un grado de muchos, la lnea de relacin une un recuadro de tres puntos, conocido como ramificacin. Para un grado de uno, la lnea se une solamente en un punto. En donde la terminacin de la relacin es obligatoria, se dibuja una lnea continua para esa mitad de la relacin. En donde la terminacin de la relacin es opcional, se dibuja una lnea discontinua o de guiones. Es til pensar acerca de una relacin de uno a muchos como una relacin padre a hijo, con la existencia del hijo encontrndose en una forma dependiente de su padre. 1.3.2.1 Relacin recursiva Es una relacin que se llama as misma, a continuacin se muestra una relacin recursiva con propiedades idnticas.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

Figura 3. Relacin recursiva Nombre de las relaciones: El nombre de cada extremo de una relacin se sita cerca al extremo apropiado en minsculas como se muestra a continuacin.

ENTIDAD - A

nombre- extremo-1 nombre-extremo-2 Figura 4. Nombre relaciones

ENTIDAD -B

Cuando la terminacin de la relacin es obligatoria, la frase debe ser se utiliza para preceder al nombre final de la relacin; para los nombres finales opcionales de la relacin se utiliza la frase puede ser Por lo tanto el diagrama de la figura 5 se leera as: Cada ENTIDAD-A debe ser el nombre-extremo-1 una y solo una ENTIDAD-B, y de derecha a izquierda: Cada ENTIDAD-B puede ser el nombre-extremo-2 y una o ms ENTIDADes-A. Veamos el siguiente ejemplo:

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

TIQUETE

para mostrado en Figura 5. Ejemplo nombre relaciones

PASAJERO

Explicacin: Cada TIQUETE debe ser para uno y slo un PASAJERO y derecha a izquierda, cada PASAJERO se puede observar en uno o ms TIQUETES. El plural del nombre de la entidad se utiliza cuando el grado es muchos. Un grado de muchos se lee como uno o ms, y un grado de uno como uno y solamente uno. Cuando se dibujan diagramas de entidad relacin, se puede encontrar un grado mayor de precisin si la ramificacin (los finales de muchos) se puede situar en la terminacin izquierda y superior de la lnea de relacin. 1.3.3. Atributos Las entidades se componen de atributos que son cada una de las propiedades o caractersticas que tienen las entidades. Cada ejemplar de una misma entidad posee los mismos atributos, tanto en nombre como en nmero, diferencindose cada uno de los ejemplares por los valores que toman dichos atributos. Ejemplo si consideramos la entidad PROFESOR y definimos los atributos Nombre, Telfono, Salario; podramos obtener lo siguiente: Juan Prez Rodrguez, 4253250, 800.000 Martha Lpez Jimnez, 8553260, 600.000 1.3.3.1 Representacin de los atributos Para representar un atributo hay que escribir su nombre en singular y en minscula, y de forma opcional con un ejemplo de su valor.

ENTIDAD - A Atributo 1 Atributo - 2

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

Figura 6. Incorporando atributos

En el ejemplo siguiente, los atributos candidatos son esenciales para ayudar a distinguir entre dos entidades.

AVION

de clasificacin de Figura 7. Atributos candidatos

PASAJERO cdigo descripcin

En este informe, la lnea area puede que haya adquirido slo cuatro o cinco tipos de aviones diferentes, pero puede tener cien o ms aviones reales. El nmero de registro de atributo tendra un nico valor para cada instancia de la entidad AVION. 1.3.4. Caractersticas del atributo Las siguientes normas simples ayudan a crear un modelo preciso, completo y flexible. 1.3.4.1. Un atributo describe una entidad

El atributo debe describir la entidad en contra de lo que se muestra. Esto puede ser obvio, pero es el error ms comn que se encuentra en los atributos. Por ejemplo. El "nmero de asiento" es un atributo de un cupn, billete, tarjeta de embarque, avin o asiento de un avin? Obviamente es un atributo de ASIENTO, pero en la vida real el nmero a menudo se ve duplicado muchas veces; por ejemplo, en una tarjeta de embarque, que se muestra como una entidad en la Figura 8. Por qu? En el mundo real, un nmero de asiento es una forma muy conveniente de representar una relacin. Por el contrario, cuando se encuentran estas situaciones hay que dibujar la lnea de relacin (si es necesario , crear la entidad a la que se refiere), como se muestra a continuacin.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

Para que sirva de gua la mayora de las entidades slo se describirn manejando entre dos y ocho atributos. Si se tienen ms, probablemente existirn muchas relaciones y/o entidades perdidas.

TIQUETE DE EMBARQUE fecha

ASIENTO emitido para nmero utilizado mediante en

compuesto de

AVION

Figura 8. Asignar un atributo a la entidad correcta

1.3.4.2 Leer nombres de atributos No hay que utilizar el nombre de la entidad como parte del nombre del atributo. Sera redundante, ya que el atributo slo describe la entidad. En el ejemplo anterior, el el nmero asiento realmente ayud a identificar una entidad perdida llamada ASIENTO que se podra describir con el atributo nmero y quizs con otros atributos como tipo. Para leer atributos que se nombren de esta manera, se pueden utilizar de una de las dos formas: Nombre entidad nombre atributo o Nombre atributo de nombre entidad. Por ejemplo, asiento nmero o nmero de asiento. 1.3.4.2. Eliminar atributos repetidos (primera forma normal)

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

Una entidad que slo tenga un valor para un atributo en cualquier momento. Si son esenciales muchos valores, se debe crear una entidad nueva para mantenerlos en la relacin muchos a uno unidos con la entidad original.

AVION nmero de registro nombre asiento 1 asiento 2 ... asiento 96

Figura 9. Un atributo repetido indica una entidad perdida.

Siguiendo la norma anterior se obtiene:

ASIENTO nmero

en compuesto de Figura 10. Aadir la entidad perdida

AVION nmero de registro nombre

Esta es una norma o regla que se llama normalmente Primera forma normal 1.3.4.3. Nombre en singular

El nombre de un atributo debe ir en singular. Los nombres plurales generalmente reflejan el problema de los atributos repetidos que se ha mostrado anteriormente.

Es una entidad? Un atributo se convierte en una entidad cuando tiene importancia por s misma, con sus propias relaciones y atributos.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

1.3.4.4.

identificador nico

Cada entidad debe ser identificable nicamente por una combinacin de atributo y/o relacin. De esta forma se podra buscar siempre cualquier atributo candidato que ayude a identificar una entidad. 1.3.4.5. El valor del atributo debe ser dependiente de todo el identificador nico. (segunda forma normal)

Hay que quitar los atributos por los que los valores son dependientes slo de parte del identificador nico. Esto se conoce como Segunda forma normal . Dichos atributos normalmente suponen una entidad perdida, pero relacionada.

1.3.4.6.

Los atributos deben ser dependientes directamente del identificador nico (tercera forma normal)

Hay que quitar los atributos que no sean dependientes directamente del identificador nico de la entidad. Esto se conoce como Tercera forma normal. En el subtema tres se profundizara el concepto de normalizacin. 1.4. Identificador nico

1.4.1. Definicin Cada entidad debe ser nicamente identificable de forma que cada instancia de la entidad est separada y sea claramente identificable de todas las otras instancias de ese tipo de entidad. El identificador nico puede ser un atributo, una combinacin de relaciones o una combinacin de atributos y relaciones. Una entidad puede tener ms de un medio alternativo de identificacin nica. El mtodo primario se puede mostrar en el diagrama entidad-relacin antecediendo a un atributo que forme el identificador con una marca # , y colocando una barra cruzada en el caso de una (s) lnea (s) de relacin. Figura 11

TIQUETE DE EMBARQUE # * fecha emitida # * hora emitida emitida para utilizado mediante

emitida para usado mediante

ASIENTO# * nmero

en compuesto de

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

de planificado como RUTA DELA LINEA AEREA

AVION

# * nmero de vuelo Figura 11. Muestra de identificadores nicos As, pues, para identificar nicamente una tarjeta de embarque se necesita: La relacin con el asiento, y por tanto el nmero de asiento. La relacin con el vuelo, y por tanto la fecha y hora de la salida, La fecha y hora emitidas en el caso raro en que las tarjetas de embarque se hayan reemitido; para volver a sentar a una familia junta despus de que alguien no haya aparecido en el vuelo Como el identificador nico del vuelo tambin incluye la relacin con la ruta de la lnea area, se necesita el nmero de vuelo.

ASIENTO nmero

en compuesto de Figura 12. Refinamiento de Entidades

AVION nmero de registro nombre

1.4.2. Norma de Diseo Las normas simples del diseo que siguen a continuacin se han definido para que el diagrama sea fcil de leer, aplicable para personas que necesiten trabajar con ellas y para maximizar la calidad y la precisin. 1.4.2.1. Diagrama de Subconjunto

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

Cuando se trata un rea funcional en particular con un usuario o un diseo con los diseadores, es bueno crear un diagrama de subconjunto y expresar las ideas de nuevo ms eficazmente como un vehculo de comunicacin con ese propsito. Durante el proceso se van a encontrar omisiones y errores, que se pueden corregir rpidamente la perspectiva diferente es una potente herramienta analtica. 1.4.2.2. Esmerado y pulcro Hay que organizar el diagrama de forma que los recuadros de las entidades estn alineados y que las lneas de las relaciones sean rectas en sentido horizontal o vertical. Hay que dibujar el menor nmero de lneas cruzadas posible. Hay que evitar Construir un diagrama que tenga demasiadas lneas paralelas que estn muy juntas. Hay que utilizar el mayor espacio en blanco que se pueda para evitar el sentimiento de congestin y utilice de vez en cuando la lnea en diagonal para ayudar a la esttica del diagrama. 1.4.2.3. Reconocimiento de patrones La mayora de las personas tienen la capacidad incorporada de reconocer formas y patrones en un instante y por tanto pueden recordar fcilmente el tema. Los

modelizadores pueden beneficiarse de esto haciendo que cada diagrama sea claramente diferente en forma. 1.4.2.4. Texto Hay que asegurarse de que el texto no sea ambiguo. Hay que evitar las abreviaturas y las jergas. Hay que utilizar las convenciones de lectura descritas anteriormente y leer todo el diagrama para asegurarse de que es completo y preciso. Un buen diagrama entidad relacin debera ser semnticamente completo. Para mejorar la comprensin y la precisin al leerlo, hay que aadir adjetivos y ejemplos cuando sea necesario.

PRODUCTO

clasificado por

GRUPO DE PRODUCTOS

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

clasificado para

Figura 13. Reconocimiento de patrones Hay que centrar, alinear a la izquierda o a la derecha el texto consecuentemente, de forma que se extraigan resultados de buena calidad. 1.4.4.5. Grado de relacin

Hay que situar la terminacin de muchas (ramificaciones) de las relaciones a la izquierda o en la parte superior de la lnea de relacin. Se ha probado que esta tcnica ha incrementado la precisin del modelo formando la consideracin de las relaciones, desde las entidades que aparecen con ms frecuencia a las menos frecuentes.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

2. lgebra relacional Es necesario que el lector se familiarice con el termino relacin, entendida en dos aspectos, en primer lugar cuando mencionamos esta palabra en el modelo entidad relacin se hace referencia a la asociacin entre dos o ms entidades, y, al hablar de relacin en el lgebra relacional se esta haciendo referencia a tablas, puesto que las tablas son esencialmente relaciones. El lgebra relacional es un lenguaje de consulta procedural. Consta de un conjunto de operaciones que toman como entrada una o dos relaciones y producen como resultado una nueva relacin, por lo tanto, es posible anidar y combinar operadores. Hay ocho operadores en el lgebra relacional que construyen relaciones y manipulan datos, estos son: 1. Seleccin 4. Unin 7. Join 2. Proyeccin 5. Interseccin 8. Divisin Tabla 1 - Operadores del lgebra relacional Las operaciones de proyeccin, producto, unin, diferencia, y seleccin son llamadas primitivas, puesto que las otras tres se pueden definir en trminos de estas. Se hace necesario en este punto incluir un modelo de datos de ejemplo en el cual trabajar para generar ejemplos de comandos y operadores. Para este efecto se incluye un modelo bsico de administracin de Radio taxis. El Grfico que se presenta a continuacin representa el Modelo conceptual (Modelo Lgico) o Diagrama de Entidad-Relacin, (este adopta una metodologa similar a la anterior): 3. Producto 6. Diferencia

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

Figura 14 - Esquema de Relaciones de Ejemplo Los Esquemas de relaciones que se pueden construir a partir de este modelo son los siguientes:Dueo = {rut, nombre, telfono, direccin, vigencia} Chofer = {rut, nombre, telfono, direccin, fecha_licencia_desde, fecha_licencia_hasta, vigencia} Vale = {correlativo, hora_desde, hora_hasta, metraje_total, tarifa_total} Mvil = {patente, rut_dueo, rut_chofer, marca, modelo, ao} Viaje = {correlativo_vale, patente_movil, Hora_Desde, hora_hasta, origen, destino, tarifa, metraje}

2.1. Seleccin. El operador de seleccin opta por tuplas que satisfagan cierto predicado, se utiliza la letra griega sigma minscula () para sealar la seleccin. El predicado aparece como subndice de . La Relacin que constituye el argumento se da entre parntesis despus de la . Ejemplos :

2.2. Proyeccin. La operacin de proyeccin permite quitar ciertos atributos de la relacin, esta operacin es unaria, copiando su relacin base dada como argumento y quitando ciertas columnas, La proyeccin se seala con la letra griega pi mayscula (). Como subndice de se coloca una lista de todos los atributos que se desea

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

aparezcan en el resultado. La relacin argumento se escribe despus de entre parntesis. Ejemplos :

2.3. Producto.En lgebra relacional el producto de dos relaciones A y B es: A Veces B o A X B Produce el conjunto de todas las Tuplas t tales que t es el encadenamiento de una tupla a perteneciente a A y de una b que pertenece a B. se utiliza el smbolo X para representar el producto. Ejemplos: Dueo x Mvil

2.4. Unin. En lgebra relacional la unin de dos relaciones compatibles [1]A y B es: A UNION B o A U B Produce el conjunto de todas las tuplas que pertenecen ya sea a A o a B o a Ambas. Al igual que en teora de conjuntos el smbolo U representa aqu la unin de dos relaciones.

Ejemplo : rut, vigencia

(Dueo)

U rut, vigencia

(Chofer)

Devuelve todos los Dueos y los Chferes.

2.5. Interseccin. En lgebra relacional la interseccin de dos relaciones compatibles A y B

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

A INTERSECCION B o A B Produce el conjunto de todas las tuplas pertenecientes a A y B. Al igual que en teora de conjuntos el smbolo representa aqu la interseccin entre dos relaciones. Ejemplo: rut, vigencia(Dueo)

rut, vigencia

(Chofer)

Devuelve todos los dueos que tambin son chferes

2.6. Diferencia En lgebra relacional la diferencia entre dos relaciones compatibles A y B A MENOS B o A B Produce el conjunto de todas las tuplas t que pertenecen a A y no pertenecen a B. Ejemplo: rut, vigencia(Dueo)

- rut, vigencia

(Chofer)

Devuelve todos los dueos que NO son chferes

2.7. Join o Reunin. En lgebra relacional el JOIN entre el atributo X de la relacin A con el atributo Y de la relacin B produce el conjunto de todas las tuplas t tal que t es el encadenamiento de una tupla a perteneciente a A y una tupla b perteneciente a B que cumplen con el predicado A.X comp B.Y es verdadero (siendo comp un operador relacional y los atributos A.X y B.Y pertenecientes al mismo dominio). Si el operador relacional comp es = entonces el conjunto resultante es un EQUIJOIN. Si se quita uno de stos (usando una proyeccin) entonces el resultado es un JOIN-NATURAL. Ejemplo :

2.8. Divisin

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

En lgebra relacional el operador de divisin divide la relacin A con grado m + n por la relacin B entregando como resultado una relacin con grado m. El atributo m + i de A y el atributo i de B deben estar definidos dentro del mismo dominio. As el resultado de A DIVIDIDO POR B o A / B produce la relacin C con un slo atributo X, tal que cada valor de x de C.X aparece como un valor de A.X, y el par de valores (x, y) aparece en A para todos los valores y que aparecen en B. Ejemplo:

Selecciona todos los autos a cuyos chferes les caduca la licencia el 01/01/1999 Nota del autor: los resultados de cada uno de los ejemplos citados en este tema estn al final del modulo como un anexo. Relaciones Compatibles: En el lgebra relacional la compatibilidad se aplica a las operaciones de Unin, Interseccin y Diferencia. Cada operacin requiere dos relaciones que deben ser compatibles, esto significa que deben ser del mismo grado, n, y el i-simo atributo de cada una (i= 1, 2...n) se debe basar en el mismo dominio.[1]

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

3. Normalizacin de datosLa normalizacin de datos es un procedimiento que asegura que un modelo de datos se ajusta a algunos estndares tiles. Para los datos y los modelos entidadrelacin, estos estndares se han definido para minimizar la duplicacin de datos, proporcionar la flexibilidad necesaria para soportar requisitos funcionales y para permitir que el modelo se estructure sobre una amplia variedad de diseos alternativos de base de datos. 3.1 Modelo entidad relacin El modelo entidad-relacin tiende a producir entidades que estn normalizadas de forma natural. Esto debido a que se sigue un proceso simple, como el siguiente: Percibir las cosas de significacin sobre lo que se necesita saber y mantener la informacin. Estas entidades deben ser mutuamente exclusivas, y se representan en un diagrama por medio de un recuadro con el nombre de la entidad en singular y en maysculas. Aadir las relaciones de gestin, las cuales se han nombrado como asociaciones significativas entre entidades. Estas relaciones se muestran como una lnea entre dos recuadros; cada terminacin tiene un grado (un tringulo o ramificacin que significa muchos; si no hay tringulo significa uno) y la opcionalidad (una lnea de puntos significa opcional, una lnea continua significa obligatorio). En cada entidad se listan los tipos de informacin que se podran mantener o conocer. Estos atributos se muestran dentro de la entidad como nombres en minsculas. Finalmente, se determina la forma en que cada aparicin de una entidad puede ser identificada de forma nica. Esto se har mediante alguna combinacin de atributos y/o relaciones. Cuando un atributo es parte del identificador nico se muestra con una marca #. Cuando una relacin es parte del identificador nico se muestra mediante una barra cruzada cruzando la lnea de relacin. El seguimiento del proceso anterior dar rigurosa y automticamente un modelo normalizado, pero depende de la buena comprensin del analista acerca de lo que es realmente un atributo, una relacin y una entidad.

3.2 Normalizacin

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

Para comprobar que un modelo entidad-relacin tiene todas sus entidades unvocamente identificadas, se ha normalizado completamente y por tanto se ajusta a la tercera forma normal; se pueden aplicar las siguientes comprobaciones simples: Asegurar que todas las entidades son identificables de forma nica Por una combinacin de atributos y / o relaciones 3.2.1 Primera forma normal: [1NF] Eliminar los atributos repetidos o grupos de atributos. Si existe ms de un valor a la vez para un atributo o para ms de uno con el mismo nombre, se define una entidad nueva, la cual se describe mediante ese atributo. El identificador nico de esta nueva entidad consta de uno de los atributos que se fueron con ella y la relacin (de muchos a uno) se lleva a la entidad original.VUELO # fecha # hora # nmero de vuelo nombre lnea rea nombre aeropuerto tipo de avin capacidad de asientos nombre tripulante 1 funcin tripulante 1 nombre tripulante 2 funcin tripulante 2 nombre tripulante 3 f i i l 3

1NF

Eliminar atributos repetidosMIEMBRO DE TRIPULACIN para * nombre * funcin tripulado por VUELO # fecha # hora # nmero de vuelo nombre de aerolnea nombre aeropuerto tipo de avin capacidad de asientos

Eliminar atributos dependientes en slo una parte del identificador nico Figura 15 Primera forma normal 3.2.2 Segunda forma normal: [2NF] Eliminar atributos dependientes slo en parte del identificador nico.

2NF

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

Si una entidad tiene un identificador nico compuesto de ms de un atributo y/o relacin, y si otro atributo depende slo de parte de este identificador compuesto, entonces el atributo, y la parte del identificador del que depende, debern formar la base de una nueva entidad. La entidad nueva se identifica por la parte emigrada del identificador nico de la entidad original, y tiene una relacin de uno a muchos unido a la entidad original. 3.2.3 Tercera forma normal: [3NF] Eliminar los atributos dependientes de atributos que no son parte del identificador nico. Si un atributo de una entidad es dependiente de otro atributo, que no es parte del identificador nico, entonces estos atributos deberan formar la base de la nueva entidad, que tenga una relacin de uno a muchos con la entidad original. El identificador nico de la entidad nueva es el atributo del que depende el otro atributo. A continuacin se presenta la representacin de esta forma:

MIEMBRO DE TRIPULACIN nombre funcin

para tripulado por

VUELO # fecha # hora deplanificado como RUTA DE LINEAS AEREAS #nmero de vuelo nombre aerolnea nombre aeropuerto tipo de avin capacidad de asientos

Eliminar atributos dependientes

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

s

servido por operado sobre operada por encargada de

Figura 16. Segunda y tercera forma normal

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

En general, una relacin R est en la tercera forma normal (3NF) si y slo si en cualquier momento cada tupla (lnea relacional) de R se compone de un valor clave primario que identifica alguna identidad, junto con un grupo de cero o ms valores independientes mutuamente que describen esa entidad de alguna manera.2 Adems, una relacin R est en la cuarta forma normal (4NF) si y nicamente si donde quiera que haya una dependencia multivalores (MVD) en R, digamos A B, todos los atributos de R son tambin funcionalmente dependientes de A. En otras palabras, las nicas dependencias (funcionales o multivalores) en R son de la forma K X. De modo equivalente: R est en 4NF si todos los MVDs (dependencias multivalores) son de verdad dependencias funcionales (FD). Tambin, una relacin R est en quinta forma normal (5NF), tambin denominada forma normal de unin de proteccin (PJ/PN), si y nicamente si cada dependencia de unin en R es una consecuencia de las claves candidatas de R. 3.3 Desnormalizacin de datos La desnormalizacin de datos es el procedimiento inverso, llevado a cabo puramente por razones de mejorar la realizacin de sistemas de produccin, particularmente cuando estn computarizados. La desnormalizacin slo se debe realizar sobre el diseo. No poner en peligro nunca el modelo de gestin. La desnormalizacin en formas manuales de procedimientos es necesariamente muy comn, como queda evidenciado por el hecho de que la mayor parte de los formularios en papel mantienen grandes datos de referencias. Todos conocemos los problemas que se pueden originar cuando ese dato se cambia y se tiene que volver a emitir el grupo entero de formularios.

2

Date, C.J. An Introduction to Database System, 4ed. 1986. Adisson-Wesley Publishing Co.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

Captulo 2. Transacciones Una transaccin es una unidad de la ejecucin de un programa que accede y posiblemente actualiza varios elementos de datos. Se delimita dependiendo del lenguaje por las sentencias inicio transaccin y fin transaccin y se compone de todas las instrucciones que se encuentran entre estos dos delimitadores. 2.1. Propiedades de la transaccin Para asegurar la consistencia de los datos se necesita que el sistema de base de datos tengan las propiedades llamadas ACID: (Atomicity, Consistency, Isolation, Durability - Atomicidad, Consistencia, Aislamiento, Durabilidad [Silberschatz97]). A continuacin explicamos cada una de estas propiedades: Atomicidad: Asegura que o bien todos los efectos de la transaccin se reflejan en la base de datos, o bien ninguno de ellos; un fallo no puede dejar a la base de datos en un estado en el cual una transaccin se haya ejecutado parcialmente. Consistencia: Asegura que si la base de datos es consistente inicialmente, la ejecucin de la transaccin deja la base de datos en un estado consistente. Aislamiento: Asegura que en la ejecucin concurrente de transacciones, estas estn aisladas unas de otras, de tal manera que cada una tiene la impresin de que ninguna otra transaccin se ejecuta concurrentemente con ella. Durabilidad: Asegura que una vez que la transaccin se ha comprometido, las actualizaciones hechas por la transaccin no se pierden, incluso si hay un fallo en el sistema. Una transaccin que termina con xito se dice que est comprometida (commited), una transaccin que haya sido comprometida llevar a la base de datos a un nuevo estado consistente que debe permanecer incluso si hay un fallo en el sistema. En cualquier momento una transaccin slo puede estar en uno de los siguientes estados: Activa (Active): el estado inicial; la transaccin permanece en este estado durante su ejecucin. Parcialmente comprometida (Uncommited): Despus de ejecutarse la ltima transaccin. Fallida (Failed): tras descubrir que no se puede continuar la ejecucin normal.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

Abortada (Rolled Back): despus de haber retrocedido la transaccin y restablecido la base de datos a su estado anterior al comienzo de la transaccin. Comprometida (Commited): tras completarse con xito. Cuando varias transacciones se ejecutan concurrentemente, existe la posibilidad de que se pierda la consistencia de datos. Se hace necesario por lo tanto un sistema que controle la interaccin entre las transacciones concurrentes. Puesto que una transaccin por definicin conserva la consistencia, una ejecucin lineal de transacciones la garantiza tambin. Un sistema que asegure esta propiedad se dice que asegura la secuencialidad. 2.2. Concurrencia Existen varios esquemas de control de concurrencia que aseguran la secuencialidad, todos estos esquemas o bien retrasan una operacin o bien abortan la transaccin que ha realizado la operacin. Los ms conocidos son los protocolos de bloqueo, el esquema de ordenacin por marcas temporales, las tcnicas de validacin, el esquema de granularidad mltiple y los esquemas multiversin. Un protocolo de bloqueo es un conjunto de reglas que indican el momento en que una transaccin puede bloquear o desbloquear un objeto de la base de datos. El protocolo de bloqueo de dos fases permite que una transaccin bloquee un objeto slo despus de que haya desbloqueado otro objeto distinto, este mtodo asegura la secuencialidad. El esquema de ordenacin por marcas temporales asegura la secuencialidad seleccionando previamente un orden en todo par de transacciones. Existen 2 formas de implementar este esquema, uno es por medio de valores timestamp (dependientes del reloj del sistema) y por medio de un contador lgico que se incrementa cada vez que asigna una nueva marca temporal. Este protocolo asegura la secuencialidad en cuanto a conflictos y la ausencia de interbloqueos, si una de las transacciones viola la norma la transaccin se retrasa y se le asigna una nueva marca temporal. Por ejemplo, una operacin leer se puede retrasar porque todava no se ha escrito el valor apropiado o incluso rechazar si ha sobrescrito el valor que supuestamente se iba a leer. Un esquema de validacin es un mtodo de control de concurrencia adecuado para transacciones de slo lectura y en las cuales la tasa de conflictos es baja. Se basa en dividir una transaccin en 3 etapas (lectura, validacin y escritura) y trabajar con el esquema de marcas temporales sobre la etapa de validacin. De esta manera se quita una sobrecarga en la etapa de lectura, en la cual no se necesita un esquema de control de concurrencia dado que toda lectura lleva a la base de datos al mismo estado de consistencia. Una manera distinta manejar la concurrencia es por medio de la granularidad, este

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

concepto permite agrupar varios elementos de datos y definirlos como un todo para efectos de sincronizacin. Se define como una jerarqua de distintos niveles, donde el nivel superior puede representar toda la base de datos, se esquematiza como estructura de rbol donde los nodos hijos de un nodo interno representan las dependencias de datos asociadas. Se utilizan los tipos de bloqueos Compartidos y Exclusivos ms un nuevo tipo de bloqueo llamado el bloqueo intencional, el cual indica que existen nodos descendientes que tienen bloqueos compartidos o exclusivos. El esquema multiversin se basa en la creacin de nuevas versiones de los elementos de datos cada vez que una transaccin vaya a escribir dicho elemento. Cuando se va a realizar una escritura el sistema elige una de las versiones para que se lea. El esquema de control de versiones garantiza que la versin que se va a leer se elige de forma que asegure la secuencialidad por medio de marcas temporales. En este esquema una operacin de lectura tiene xito siempre, sin embargo, una operacin de escritura puede provocar el retroceso de una transaccin. Un sistema est en estado de interbloqueo si existe un conjunto de transacciones tal que toda transaccin del conjunto est esperando a otra transaccin del conjunto. En tal situacin, ninguna de las transacciones puede progresar. Existen 2 mtodos para tratar los interbloqueos y ambos provocan un retroceso de las transacciones, la diferencia radica en que uno es preventivo y otro curativo. El protocolo de prevencin de interbloqueos asegura que el sistema nunca llegar a un estado de interbloqueos mientras que el mtodo de deteccin y de interbloqueos permite que el sistema llegue a un estado de interbloqueos para luego tratar de recuperarse. La prevencin se usa normalmente cuando la probabilidad de que el sistema llegue a un estado de interbloqueo es relativamente alta, de lo contrario lo ms conveniente es usar la deteccin y recuperacin. 2.3. Seguridad y recuperacin de datos Los fallos que ocurren en un computador pueden darse por diferentes motivos (fallos de disco, cortes de energa o fallos en el software). En cada uno de estos casos puede perderse informacin concerniente a la base de datos. Existen varios tipos de fallas, a considerar: Fallo en la transaccin, que a su vez se dividen en errores lgicos y errores del sistema. Un error lgico ocurre cuando una transaccin no puede continuar con su ejecucin normal a causa de una condicin interna como lo es un desbordamiento o un exceso de recursos. Un error del sistema ocurre cuando el sistema se encuentra en un estado no deseado como en el caso de los interbloqueos.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

Cada del sistema, provocado ya sea por el hardware, el sistema operativo o por el software de base de datos. Comnmente causa la prdida del contenido de la memoria primaria y aborta el procesamiento de una transaccin.

Fallo de disco, para el cual slo sirve la recuperacin por medio de copias existentes en medios de almacenamiento secundario como cintas magnticas. La forma ms aceptada de lograr un tipo de almacenamiento lo ms estable posible es replicando la informacin en varios medios de almacenamiento no voltil, con modos de fallos independientes. Los sistemas RAID (disposicin redundante de discos independientes) garantizan que el fallo de un slo disco no conduzca a la perdida de datos. Sin embargo los sistemas RAID, no pueden proteger al sistema de una prdida de datos en el caso de una catstrofe geogrfica, para tales efectos muchos sistemas de almacenamiento guardan copias de seguridad en cintas en otros lugares, no obstante, como las cintas no pueden ser trasladadas continuamente, los ltimos cambios realizados luego del traslado de cintas no se pueden volver a recuperar en el caso de tales desastres. Los sistemas ms seguros guardan copias de cada bloque de almacenamiento en otra disposicin geogrfica, datos que se transmiten por medios de redes de computadores al sistema de respaldo remoto... El estado de un sistema de base de datos puede no volver a ser consistente en caso de que ocurran fallos, para preservar la consistencia es necesario que cada transaccin sea atmica. Garantizar la propiedad de atomicidad es responsabilidad del esquema de recuperacin. Existen bsicamente 2 esquemas que garantizan la atomicidad. Basados en el registro histrico[4]. Todas las modificaciones se graban en el registro histrico, el cual debe estar guardado en almacenamiento estable. En el esquema de modificacin diferida, durante la ejecucin de una transaccin, se difieren todas las operaciones de escritura hasta que la transaccin se compromete parcialmente, momento en el cual se utiliza la informacin del registro histrico asociado con la transaccin para ejecutar las escrituras diferidas. Con la tcnica de modificacin inmediata todas las modificaciones se aplican directamente en la base de datos. Si ocurre una cada se utiliza la informacin del registro histrico para llevar a la base de datos a un estado estable previo. Paginacin en la sombra. Durante la vida de una transaccin se mantienen 2 tablas de pginas: la tabla actual de pginas y la tabla de pginas sombra. Ambas tablas son idnticas al principio de la transaccin, sin embargo, la tabla actual de pginas puede ir cambiando luego de cada operacin escribir. Todas las operaciones de lectura y escritura utilizan la tabla de pginas actual, cuando una

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

transaccin se compromete parcialmente se desecha la tabla de pginas sombra y la tabla actual se convierte en la nueva tabla de pginas. Si la transaccin fracasa, simplemente se desecha la tabla actual de pginas.

El procesamiento de transacciones se basa en un modelo de almacenamiento en el cual la memoria principal contiene una memoria intermedia para el registro histrico, una memoria intermedia para la base de datos y una memoria intermedia para el sistema. Una implementacin eficiente de un esquema de recuperacin de datos requiere que sea mnimo el nmero de escrituras de la base de datos y que sea realizado en almacenamiento estable. Los registros del registro histrico pueden guardarse inicialmente en la memoria intermedia del registro histrico pero deben ser llevados a almacenamiento estable bajo dos situaciones: Deben escribirse en almacenamiento estable todos los registros del registro histrico que referencien a la transaccin Ti antes de grabar el registro que indique que la transaccin Ti ha sido comprometida Deben escribirse en almacenamiento estable todos los registros del registro histrico pertenecientes a los datos de un bloque antes de que ese bloque de datos se escriba desde la memoria intermedia a la base de datos.

[4]

Comnmente llamado log de transacciones

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

Captulo 3. Consultas El Procesamiento de consultas hace referencia a la serie de actividades a seguir para llevar a cabo la recuperacin de datos desde una base de datos. Estas actividades incluyen la traduccin de consultas en lenguajes de consultas de alto nivel (Ej: SQL) a expresiones que se puedan implementar en un nivel fsico, as como tambin los algoritmos de evaluacin y optimizacin de consultas. 3.1 Recuperacin Una de las ventajas principales del modelo relacional presentado por Codd en 1970 es la que tiene relacin con la independencia de los datos que se entiende aqu como la separacin entre el modelo (lgico) y la implementacin (fsica). Esta separacin nos permite desarrollar una poderosa semntica lgica independiente de una implementacin fsica particular. Uno de los desafos de la independencia de datos es que la codificacin de una consulta para la base de datos se componga de 2 fases: 1. La descripcin lgica de la consulta (que se supone que debe hacer). 2. La definicin del plan de ejecucin fsico (el que muestra como implementar la consulta). Antes de empezar el procesamiento de la consulta el sistema debe traducir la consulta a un medio de representacin interno con el cual le sea fcil operar. As, por ejemplo para SQL la representacin ms til es la del lgebra relacional extendida (rbol relacional). Este proceso cumple la misma funcin que el analizador lxico y sintctico de un compilador, es decir, revisa la sintaxis de la consulta y chequea que todos lo identificadores sean nombres de objetos de la base de datos, en el caso de las vistas reemplaza el nombre de la vista por la expresin relacional que la representa. El plan de ejecucin es un rbol relacional armado a partir de la consulta y que slo puede ser entendido por el motor de ejecucin de consultas. La transformacin de la consulta a un plan puede ser hecha efectivamente a mano y en algunos casos de consultas simples que se ejecutan miles de veces esta podra ser la mejor estrategia, sin embargo, una de las ventajas que nos ofrece el modelo relacional es la capacidad de usar la informacin del catalogo de la base de datos, que como se ver ms adelante, podr responder una gran cantidad de preguntas distintas.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

Por otro lado, aunque una consulta simple pueda ser ejecutada miles de veces, no existe un camino mecnico que garantice que el plan de ejecucin elegido satisfaga la consulta que se quiere implementar, puesto que: 1. Un Plan calculado a mano (o un plan precalculado) ser invalidado por cambios lgicos dentro del esquema o por cambios fsicos en el camino de acceso a la informacin o en el almacenamiento fsico. 2. Si los parmetros de la consulta (o los datos) cambian, la relacin optima que asocia a un plan con una consulta por sobre otros puede cambiar. La siguiente figura nos muestra los pasos en el procesamiento de una consulta.

Figura 17 - Pasos en el procesamiento de una consulta SQL

Despus de enviar la consulta, la base de datos debe producir su correspondiente plan de ejecucin. El primer paso en este proceso es traducir la consulta desde SQL a un rbol lgico en lgebra relacional, proceso comnmente llamado parser. El Prximo paso es traducir el rbol de la consulta en el plan de ejecucin. Generalmente existe un gran nmero de planes que implementan al rbol de la consulta; el proceso de encontrar el mejor de estos planes se le denomina optimizacin de consultas. 3.2. Clculo relacional

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

La manipulacin del modelo relacional esta basada en el lgebra relacional; sin embargo, de igual forma podemos indicar que tambin esta basada en el clculo relacional. lgebra y clculo son alternativos entre s, la diferencia entre ellos es la siguiente: mientras que el lgebra proporciona un conjunto de operadores explcitos (juntar, unir, proyectar, etc), que pueden usarse para indicar al sistema cmo construir cierta relacin dada, al clculo simplemente proporciona una notacin para establecer la definicin de esa relacin deseada en trminos de dichas relaciones dadas3. El clculo relacional de tuplas describe la informacin deseada sin dar un procedimiento especfico para obtenerla. Las consultas en el clculo relacional de tuplas se expresan como: { t | P(t)}, Es decir, son el conjunto de tuplas t tales que se cumple el predicado P para cada t. Siguiendo la misma notacin, se utiliza t[A] para el valor de la tupla t en el atributo A.

Si slo se desea obtener un atributo de la tupla, se utiliza el constructor Existe de la lgica matemtica. As, si lo que se desea es el Nombre de los dueos de taxis que estn vigentes:

"Conjunto de todas las tuplas t tales que existe una tupla s en la relacin Dueo para la que los valores de t y de s son iguales en el atributo Nombre y el valor de s para el atributo vigencia = S ". La variable de tupla t se define slo en el atributo Nombre, puesto que ste es el nico atributo para el que se especifica una condicin para t. As, el resultado es una relacin sobre (Nombre). Si lo que se desea es obtener las tarifas de todos los viajes que ha efectuado todos los mviles de marca chevrolet, la consulta requiere de dos clusulas Existe conectadas por el operador de conjuncin lgica y.

3

C.J Date, Introduccin a los Sistemas de Bases de Datos, Prentice Hall

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

Que se lee como el conjunto de todas las tuplas (tarifa) correspondientes a los viajes que han hecho todos los mviles de marca chevrolet. Considrese ahora la consulta obtener todos los RUT de los dueos de mviles, cuyos mviles no hayan efectuado nunca un viaje:

que ocupa la clusula Existe para exigir que el dueo posea un mvil y la clusula no existe para eliminar a aquellos mviles que tengan viajes realizados. La consulta que se presenta a continuacin utiliza la implicacin, la frmula P implica Q significa que si P es verdad entonces Q debe ser verdad, se introduce el constructor para todo. Se desea Selecciona todos los autos a cuyos chferes les caduca la licencia el 01/01/1999.

Sin embargo como la intencin del modulo no es la de suplir al texto, se recomienda consultar el tema completo en la bibliografa recomendada. 3.3 Optimizacin de consultas Las consultas de base de datos relacionales son o bien declarativas o algebraicas. Los lenguajes algebraicos permiten la transformacin algebraica de la consulta, luego, basndose en la especificacin algebraica de la consulta es relativamente fcil para el optimizador generar diversos planes equivalentes para la consulta y elegir el menos costoso. Dado este nivel de generalidad, el optimizador puede ser visto como el generador de cdigo de un compilador para el lenguaje SQL, que produce el cdigo que ser interpretado por el motor de ejecucin de consultas, excepto que el optimizador marca nfasis en la capacidad de producir el cdigo ms eficiente, haciendo uso para tales efectos del catlogo de la base de datos, de donde obtiene informacin estadstica de las relaciones referenciadas por la consulta, algo que los lenguajes de programacin tradicionales no hacen.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

Un aspecto de la optimizacin de consultas se sita en el nivel del lgebra relacional. Dado un conjunto de reglas se trata de encontrar una expresin que sea equivalente a la expresin dada pero que sea ms eficiente en la ejecucin. Con el fin de seleccionar la mejor estrategia para la recuperacin de datos el optimizador estima un costo que estar relacionado a cada plan de ejecucin. Este costo est determinado por frmulas predefinidas en base a informacin que se posee de la tabla y que se ha rescatado previamente del catlogo de la base de datos, en realidad el optimizador no siempre escoge el plan ms ptimo, ya que encontrar la estrategia ptima puede consumir mucho tiempo, por lo tanto se dice que el optimizador slo escoge una estrategia razonablemente eficiente. La manera con la que el optimizador utiliza esa informacin, las distintas tcnicas y algoritmos que aplica y las transformaciones algebraicas que se realizan son las que diferencian a los optimizadores de bases de datos. Un optimizador basado en el costo genera una serie de planes de evaluacin para una consulta y luego elige el que tiene un menor costo asociado, las medidas de costo comnmente tienen que ver con la E/S y el tiempo de CPU utilizado en ejecutar la consulta, sin embargo, es cuestin de cada SGBD el elegir las medidas de costo que mejor representen el criterio de minimizacin en la utilizacin de recursos.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

UNIDAD 2 BASES DE DATOS DISTRIBUIDASIntroduccin y fundamentos de Base de Datos Distribuidas. La cantidad de innovaciones tecnolgicas que ha habido en los ltimos aos ha promovido un cambio en la forma de observar a los sistemas de informacin y, en general, a las aplicaciones computacionales. Existen avances tecnolgicos que se realizan continuamente en circuitos, dispositivos de almacenamiento, programas y metodologas. Sin embargo, los cambios tecnolgicos van de la mano con la demanda de los usuarios y programas para la explotacin exhaustiva de tales dispositivos mejorados. Por tanto, existe un continuo desarrollo de nuevos productos los cuales incorporan ideas nuevas desarrolladas por compaas e instituciones acadmicas. An cuando es posible que un usuario comn no perciba los desarrollos relevantes de nuevos productos, para las aplicaciones existe una demanda permanente por mayor funcionalidad, mayor nmero de servicios, ms flexibilidad y mejor rendimiento. As, al disear un nuevo sistema de informacin o al prolongar la vida de uno ya existente, se debe buscar siempre formas para enlazar las soluciones ofrecidas por la tecnologa disponible a las necesidades de las aplicaciones de los usuarios. Un rea en la cual las soluciones estn integrando tecnologa con nuevas arquitecturas o formas de hacer las cosas es, sin lugar a dudas, el rea de los sistemas distribuidos de informacin. Ellos se refieren al manejo de datos almacenados en facilidades de cmputo localizadas en muchos sitios ligados a travs de una red de comunicaciones. Un caso especfico de estos sistemas distribuidos es lo que se conoce como bases de datos distribuidas, tpico a estudiar en estas notas. Conceptualizacin de Bases de Datos Distribuidas. Los sistemas de bases de datos distribuidas son un caso particular de los sistemas de cmputo distribuido en los cuales un conjunto de elementos de procesamiento autnomos (no necesariamente homogneos) se interconectan por una red de comunicaciones y cooperan entre ellos para realizar sus tareas asignadas. Histricamente, el cmputo distribuido se ha estudiado desde muchos puntos de vista. As, es comn encontrar en la literatura un gran nmero de trminos que se han usado para identificarlo. Entre los trminos ms comunes que se utilizan para referirse al cmputo distribuido podemos encontrar: funciones distribuidas, procesamiento distribuido de datos, multiprocesadores, multicomputadoras, procesamiento satelital, procesamiento tipo "backend", computadoras dedicadas y

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

de propsito especfico, sistemas de tiempo compartido, sistemas funcionalmente modulares. Existen muchos componentes a distribuir para realizar una tarea. En computacin distribuida los elementos que se pueden distribuir son: Control. Las actividades relacionadas con el manejo o administracin del sistema. Datos. La informacin que maneja el sistema. Funciones. Las actividades que cada elemento del sistema realiza. Procesamiento lgico. Las tareas especficas involucradas en una actividad de procesamiento de informacin.

Figura 18. Motivacin de los sistemas de bases de datos distribuidos. Una base de datos distribuida (BDD) es un conjunto de mltiples bases de datos lgicamente relacionadas las cuales se encuentran distribuidas entre diferentes sitios interconectados por una red de comunicaciones (ver Figura18). Un sistema de bases de datos distribuida (SBDD) es un sistema en el cual mltiples sitios de bases de datos estn ligados por un sistema de comunicaciones, de tal forma que, un usuario en cualquier sitio puede accesar los datos en cualquier parte de la red exactamente como si los datos estuvieran almacenados en su sitio propio. Un sistema de manejo de bases de datos distribuidas (SMBDD) es aquel que se encarga del manejo de la BDD y proporciona un mecanismo de acceso que hace que la distribucin sea transparente a los usuarios. El trmino transparente significa que la aplicacin trabajara, desde un punto de vista lgico, como si un solo SMBD ejecutado en una sola mquina, administrara esos datos. Un sistema de base de datos distribuida (SBDD) es entonces el resultado de la integracin de una base de datos distribuida con un sistema para su manejo.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

Dada la definicin anterior, es claro que algunos sistemas no se pueden considerar como SBDD. Por ejemplo, un sistema de tiempo compartido no incluye necesariamente un sistema de manejo de bases de datos y, en caso de que lo haga, ste es controlado y administrado por una sola computadora. Un sistema de multiprocesamiento puede administrar una base de datos pero lo hace usualmente a travs de un solo sistema de manejo de base de datos; los procesadores se utilizan para distribuir la carga de trabajo del sistema completo o incluso del propio SMBD pero actuando sobre una sola base de datos. Finalmente, una base de datos la cual reside en un solo sitio de una red de computadoras y que es accesada por todos los nodos de la red no es una base de datos distribuida (Figura 19). Este caso se trata de una base de datos cuyo control y administracin esta centralizada en un solo nodo pero se permite el acceso a ella a travs de la red de computadoras.

CALI MEDELLIN GUAJIRA

RED DE COMUNICACIN

CARTAGENA

BOGOTA

Figura 19. Un sistema centralizado sobre una red. El medio ambiente tpico de un SMBDD consiste de un conjunto de sitios o nodos los cuales tienen un sistema de procesamiento de datos completo que incluye una base de datos local, un sistema de manejo de bases de datos y facilidades de comunicaciones. Si los diferentes sitios pueden estar geogrficamente dispersos, entonces, ellos estn interconectados por una red de tipo WAN. Por otro lado, si los sitios estn localizados en diferentes edificios o departamentos de una misma organizacin pero geogrficamente en la misma ubicacin, entonces, estn conectados por una red local (LAN) (Figura 20).

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

CALI MEDELLIN GUAJIRA

RED DE COMUNICACIN

CARTAGENA

BOGOTA

Figura 20. Un medio ambiente distribuido para bases de datos. Tipos de bases de datos distribuidas. En trminos generales, podemos decir que existen dos tipos de sistemas de bases de datos distribuidas, homogneas y sistemas de bases de datos distribuidas heterogneas. La homogeneidad o heterogeneidad, puede darse a diferentes niveles, Hardware, Software o sistema operativo. Para este curso, se asume que cuando se indica la homogeneidad del sistema, se hace referencia a que en todos los sitios del sistema, existe el mismo sistema de administracin de base de datos y generalmente incluye el mismo modelo de datos. Un sistema de bases de datos distribuido, incluye diferentes sistemas manejadores de bases de datos, probablemente con modelos de datos diferentes que hay que compatibilizar y con retos a nivel de comunicacin entre los sistemas de bases de datos que conforman el sistema, para dar la visin al usuario de integracin y de un nico sistema de bases de datos.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

CAPTULO 1. Diseo de bases de datos distribuidas En el presente captulo se mostrar los aspectos importantes referentes al diseo de una base de datos distribuida. Se revisar el problema de fragmentacin de los datos as como la transparencia que un sistema de datos distribuidos debe guardar respecto a la vista del usuario. Se presentarn los algoritmos para fragmentacin horizontal, fragmentacin horizontal derivada y fragmentacin vertical. En la parte final de este captulo se discute el problema de asignamiento de fragmentos. 1.1 El problema de diseo El problema de diseo de bases de datos distribuidos se refiere, en general, a tomar decisiones acerca de la ubicacin de datos y programas a travs de los diferentes sitios de una red de computadoras. Este problema debera estar relacionado al diseo de la misma red de computadoras. Sin embargo, en estas notas nicamente el diseo de la base de datos se toma en cuenta. La decisin de donde colocar a las aplicaciones tiene que ver tanto con el software del SMBDD (sistema manejador de base de datos distribuidas) como con las aplicaciones que se van a ejecutar sobre la base de datos. El diseo de las bases de datos centralizadas contempla los puntos siguientes: 1. Diseo del "esquema conceptual" el cual describe la base de datos integrada (esto es, todos los datos que son utilizados por las aplicaciones que tienen acceso a las bases de datos). 2. Diseo "fsico de la base de datos", esto es, mapear el esquema conceptual a las reas de almacenamiento y determinar los mtodos de acceso a las bases de datos. En el caso de las bases de datos distribuidas se tienen que considerar los problemas siguientes:1. Diseo del esquema conceptual, donde se busca describir el modelo de datos de todo el sistema

1. Diseo de la fragmentacin, este proceso se determina mediante la divisin de lastablas en fragmentos horizontales, verticales o mixtos, dependiendo de las necesidades de informacin detectadas en la etapa de anlisis del sistema.

3. Diseo de la asignacin de los fragmentos, esto determina la forma en que losfragmentos se mapean en los sitios o nodos del sistema. 4. Diseo de replicacin. Proceso que indica en que lugar (nodos), se ubican copias de tablas o fragmentos y la frecuencia de actualizacin de la informacin.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

1.2 Objetivos del Diseo de la Distribucin de los Datos. En el diseo de la distribucin de los datos, se deben de tomar en cuenta los siguientes objetivos: Procesamiento local. La distribucin de los datos, para maximizar el procesamiento local corresponde al principio simple de colocar los datos tan cerca como sea posible de las aplicaciones que los utilizan. Se puede realizar el diseo de la distribucin de los datos para maximizar el procesamiento local agregando el nmero de referencias locales y remotas que le corresponden a cada fragmentacin candidata y la localizacin del fragmento, que de esta forma se seleccione la mejor solucin de ellas. Distribucin de la carga de trabajo. La distribucin de la carga de trabajo sobre los sitios, es una caracterstica importante de los sistemas de cmputo distribuidos. Esta distribucin de la carga se realiza para tomar ventaja de las diferentes caractersticas (potenciales) o utilizaciones de las computadoras de cada sitio, y maximizar el grado de ejecucin de paralelismo de las aplicaciones. Sin embargo, la distribucin de la carga de trabajo podra afectar negativamente el procesamiento local deseado. Costo de almacenamiento y disponibilidad. La distribucin de la base de datos refleja el costo y disponibilidad del almacenamiento en diferentes sitios. Para esto, es posible tener sitios especializados en la red para el almacenamiento de datos. Sin embargo el costo de almacenamiento de datos no es tan relevante si ste se compara con el del CPU, I/O y costos de transmisin de las aplicaciones. 1.3 Enfoques al problema de diseo de bases de datos distribuidas Existen dos estrategias generales para abordar el problema de diseo de bases de datos distribuidas: El enfoque de arriba hacia abajo (top-down). Este enfoque es ms apropiado para aplicaciones nuevas y para sistemas homogneos. Consiste en partir desde el anlisis de requerimientos para definir el diseo conceptual y las vistas de usuario. A partir de ellas se define un esquema conceptual global y los esquemas externos necesarios. Se prosigue con el diseo de la fragmentacin de la base de datos, y de aqu se contina con la localizacin de los fragmentos en los sitios, creando las imgenes fsicas. Esta aproximacin se completa ejecutando, en cada sitio, "el diseo fsico" de los datos, que se localizan en ste. En la Figura 21 se presenta un diagrama con la estructura general del enfoque top-down. El diseo de abajo hacia arriba (bottom-up). Se utiliza particularmente a partir de bases de datos existentes, generando con esto bases de datos distribuidas. En

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

forma resumida, el diseo bottom-up de una base de datos distribuida requiere de la seleccin de un modelo de bases de datos comn para describir el esquema global de la base de datos. Esto se debe, a que es posible que se utilicen diferentes SMBD. Despus se hace la traduccin de cada esquema local en el modelo de datos comn y finalmente se hace la integracin del esquema local en un esquema global comn.

Figura 21. El enfoque top-down para el diseo de bases de datos distribuidas.

El diseo de una base de datos distribuida, cualquiera sea el enfoque que se siga, debe responder satisfactoriamente las siguientes preguntas: Por qu hacer una fragmentacin de datos? Cmo realizar la fragmentacin? Qu tanto se debe fragmentar? Cmo probar la validez de una fragmentacin? Cmo realizar el asignamiento de fragmentos?

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

Cmo considerar los requerimientos de la informacin?

Figura 22. El problema de fragmentacin de relaciones. 1.4 Fragmentacin El problema de fragmentacin se refiere al particionamiento de la informacin para distribuir cada parte a los diferentes sitios de la red, como se observa en la Figura 22. Inmediatamente aparece la siguiente pregunta: cul es la unidad razonable de distribucin? Se puede considerar que una relacin completa es lo adecuado ya que las vistas de usuario son subconjuntos de las relaciones. Sin embargo, el uso completo de relaciones no favorece las cuestiones de eficiencia sobre todo aquellas relacionadas con el procesamiento de consultas. La otra posibilidad es usar fragmentos de relaciones (sub-relaciones) lo cual favorece la ejecucin concurrente de varias transacciones que accesan porciones diferentes de una relacin. Sin embargo, el uso de sub-relaciones tambin presenta inconvenientes. Por ejemplo, las vistas de usuario que no se pueden definir sobre un solo fragmento necesitarn un procesamiento adicional a fin de localizar todos los fragmentos de una vista. Aunado a esto, el control semntico de datos es mucho ms complejo ya que, por ejemplo, el manejo de llaves nicas requiere considerar todos los fragmentos en los que se distribuyen todos los registros de la relacin. En resumen, el objetivo de la fragmentacin es encontrar un nivel de particionamiento adecuado en el rango que va desde tuplas o atributos hasta relaciones completas (ver Figura 23 ). Ejemplo 1. Considere una relacin J del ejemplo visto en la introduccin del presente captulo. J: JNO JNOMBRE PRESUPUESTO LUGAR

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

J1 J2 J3 J4 J5

Instrumentacin Desarrollo de bases de datos CAD/CAM Mantenimiento CAD/CAM

150000 135000 250000 310000 500000

Guajira Cartagena Medelln Cartagena Bogot

La relacin J se puede fragmentar horizontalmente produciendo los siguientes fragmentos. J1: Proyectos con presupuesto menor que $200,000

JNO J1 J2

JNOMBRE

PRESUPUESTO 150000 135000

LUGAR Guajira Cartagena

Instrumentacin Desarrollo de bases de datos

J2: Proyectos con presupuesto mayor que o igual a $200,000 JNO J3 J4 J5 JNOMBRE CAD/CAM Mantenimiento CAD/CAM PRESUPUESTO 250000 310000 500000 LUGAR Medelln Cartagena Bogot

Ejemplo 2. La relacin J del ejemplo anterior se puede fragmentar verticalmente produciendo los siguientes fragmentos: J1: informacin acerca de presupuestos de proyectos JNO J1 J2 J3 J4 J5 PRESUPUESTO 150000 135000 250000 310000 1500000

J2: informacin acerca de los nombres y ubicaciones de proyectos JNO J1 JNOMBRE Instrumentacin LUGAR Guajira

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

J2 J3 J4 J5

Desarrollo de bases de datos CAD/CAM Mantenimiento CAD/CAM

Cartagena Medelln Cartagena Bogot

Figura 23. El grado de fragmentacin. Correctitud de una fragmentacin: Al realizar la fragmentacin de una relacin se deben satisfacer las siguientes condiciones para garantizar la correctitud de la misma: Condicin de completitud. La descomposicin de una relacin R en los fragmentos R1, R2, ..., Rn es completa si y solamente si cada elemento de datos en R se encuentra en algn de los Ri. Condicin de Reconstruccin. Si la relacin R se descompone en los fragmentos R1, R2, ..., Rn, entonces debe existir algn operador relacional , tal que, R = 1 I n Ri

Condicin de Fragmentos Disjuntos. Si la relacin R se descompone en los fragmentos R1, R2, ..., Rn, y el dato di est en Rj, entonces, no debe estar en ningn otro fragmento Rk (k j). Alternativas sobre replicacin para el asignamiento de fragmentos La replicacin de informacin es de utilidad para obtener un mejor rendimiento y para ofrecer un mayor grado de confiabilidad (tolerancia a fallas). La replicacin se complica cuando es necesario hacer actualizaciones a las copias mltiples de un dato. Por tanto, respecto a la replicacin, en el asignamiento de fragmentos se tienen tres estrategias: No soportar replicacin. Cada fragmento reside en un solo sitio. Soportar replicacin completa. Cada fragmento en cada uno de los sitios.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

Soportar replicacin parcial. Cada fragmento en algunos de los sitios. Como regla general se debe considerar que la replicacin de fragmentos es de utilidad cuando el nmero de consultas de solo lectura es (mucho) mayor que el nmero de consultas para actualizaciones. En la Tabla 1 se comparan la complejidad de implementar o tomar ventaja de las diferentes alternativas de replicacin, respecto de los diferentes aspectos importantes en bases de datos distribuidas.

Procesamiento de Consultas Manejo de Directorios Control de Concurrencia Confiabilidad Realidad

Recopilacin completa Recopilacin Parcial Fcil Moderado Fcil o no existente Moderado Muy alto Aplicacin posible Moderado Difcil Alto Realista

Particionamiento Moderado Moderado Fcil Bajo Aplicacin posible

Tabla 2. Comparacin de las estrategias de replicacin de fragmentos. Requerimientos de informacin: Con el fin de realizar una fragmentacin adecuada es necesario proporcionar informacin que ayude a realizarla. Esta informacin normalmente debe ser proporcionada por el usuario y tiene que ver con cuatro tipos: Informacin sobre el significado de los datos Informacin sobre las aplicaciones que los usan Informacin acerca de la red de comunicaciones Informacin acerca de los sistemas de cmputo 1.4.1 Tipos de fragmentacin de datos Existen tres tipos de fragmentacin:

Fragmentacin horizontal Fragmentacin vertical Fragmentacin hbrida

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

En las siguientes secciones revisaremos de manera informal cada uno de los tipos mencionados. Ms adelante, se presentar de manera ms formal la construccin de los diferentes tipos de fragmentacin. 1.4.2 Fragmentacin horizontal primaria Consiste del particionamiento en tuplas de una relacin global en subconjuntos, donde cada subconjunto puede contener datos que tienen propiedades comunes y se puede definir expresando cada fragmento como una operacin de seleccin sobre la relacin global. Ejemplo 3. Considere la relacin global SUPPLIER (SNUM, NAME, CITY) entonces, la fragmentacin horizontal puede ser definida como: SUPPLIER1 = SLcity == "SF"SUPPLIER SUPPLIER1 = SLcity == "LA"SUPPLIER

Esta fragmentacin satisface la condicin de completes si "SF" y "LA" son solamente los nicos valores posibles del atributo CITY. 2. La condicin de reconstruccin se logra con: SUPPLIER = SUPPLIER1 unin SUPPLIER2 3. La condicin de disjuntos se cumple claramente en este ejemplo. 1.4.3 Fragmentacin horizontal derivada La fragmentacin derivada horizontal se define partiendo de una fragmentacin horizontal. En esta operacin se requiere de Semi-junta (Semi-Join) el cual nos sirve para derivar las tuplas o registros de dos relaciones. Ejemplo 4. Las siguientes relaciones definen una fragmentacin horizontal derivada de la relacin SUPPLY. SUPPLY1 = SUPPLYSJsnum == snumSUPPLIER1 SUPPLY2 = SUPPLYSJsnum == snumSUPPLIER2

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BSICAS E INGENIERA Programa de Ingeniera de Sistemas

1.4.4 Fragmentacin vertical La fragmentacin vertical es la subdivisin de atributos en grupos. Los fragmentos se obtienen proyectando la relacin global sobre cada grupo. La fragmentacin es correcta si cada atributo se mapea en al menos un atributo del fragmento. Ejemplo 5. Considere la siguiente relacin global: EMP( empnum, name, sal, tax, mgrnum, depnum ) una fragmentacin vertical de esta relacin puede ser definida como: EMP1 = PJempnum, name, mgrnum, depnum EMP EMP2 = PJempnum, sal, tax EMP La reconstruccin de la relacin EMP puede ser obtenida como: EMP = EMP1 (JN empnum) EMP2 porque empnum es una clave de EMP 1.4.5 Fragmentacin hbrida En lo que respecta a la fragmentacin hbrida, esta consiste en aplicar la fragmentacin vertical seguida de la fragmentacin horizontal o viceversa. Ejemplo 6. Considere la relacin global EMP (empnum, name, sal, tax, mrgnum, depnum) Las siguientes son para obtener una fragmentacin mixta, aplicando la vertical seguida de la horizontal: EMP1 = SL depnum