INGENIERÍA EN SISTEMAS COMPUTACIONALES Lecturas para la materia de Base de Datos III Recopiló y Elaboró Revisión Fecha Gabriela García Velazco 1 Ene/09 Base de Datos I Página 1 INGENIERÍA EN SISTEMAS COMPUTACIONALES Capítulo 2. Diseño de Bases de Datos Distribuidas El alumno conocerá los fundamentos, los objetivos, disciplinas y arquitectura de las bases de datos distribuidas. Objetivos de aprendizaje Contenido de la lectura Consideraciones de diseño de bases de datos distribuidas Lección 2.1. Diseño BDC de El diseño de las bases de datos centralizadas contempla los dos puntos siguientes: 1. Diseño del esquema conceptual, el cual describe la integración de la base de datos. 2. Diseño físico de la base de datos, esto es, mapear el esquema conceptual a las áreas de almacenamiento y determinar los métodos de acceso a las bases de datos. Diseño BDD de En el diseño de las bases de datos distribuidas se tienen que considerar los siguientes puntos adicionales al BDC: 1. Diseño de la fragmentación, es decir, determinar por la forma en que las relaciones globales se subdividen en fragmentos horizontales, verticales o mixtos. 2. Diseño de la asignación de los fragmentos, es determinar la forma en que los fragmentos se mapean a las imágenes físicas, en esta forma, también se determina la solicitud de fragmentos. Estrategias de diseño de BDD Existen dos estrategias para llevar a cabo el diseño de bases de datos distribuidas: Base de Datos I 1. El enfoque de arriba hacia abajo (top-down). Página 2 INGENIERÍA EN SISTEMAS COMPUTACIONALES 2. El diseño de abajo hacia arriba (bottom-up). Top-Down Este enfoque es más apropiado para aplicaciones nuevas y para sistemas homogéneos. Se parte del análisis de requerimientos para definir el diseño conceptual y las vistas de usuario, se continúa creando el esquema conceptual global, los esquemas externos necesarios y se termina con el diseño de la fragmentación de la base de datos, y su localización en los sitios, creando las imágenes físicas. Bottom- Up Se utiliza particularmente a partir de bases de datos existentes, generando con esto bases de datos distribuidas. Este diseño de base de datos distribuida requiere de la selección de un modelo de bases de datos comunes para en base a ellos describir el esquema global de la base de datos. Se pueden utilizar diferentes DDBMS. Después se hace la traducción de cada esquema local en el modelo de datos común Preguntas a resolver antes del diseño de BDD El diseño de una base de datos distribuida, cualquiera sea el enfoque que se siga, debe responder satisfactoriamente las siguientes preguntas: Base de Datos I ¿Por qué hacer una fragmentación de datos? ¿Cómo realizar la fragmentación? Página 3 INGENIERÍA EN SISTEMAS COMPUTACIONALES Lección 2.2. Diccionario de datos ¿Qué tanto se debe fragmentar? ¿Cómo probar la validez de una fragmentación? ¿Cómo realizar el asignamiento de fragmentos? ¿Cómo considerar los requerimientos de la información? Diccionario de datos Un diccionario de datos es un conjunto de metadatos que contiene las características lógicas de los datos que se van a utilizar en el sistema que se programa, incluyendo nombre, descripción, alias, contenido y organización. Cuando se Estos diccionarios se desarrollan durante el análisis de flujo de datos y desarrollan ayuda a los analistas que participan en la determinación de los requerimientos del sistema, su contenido también se emplea durante el diseño del proyecto. Para sirve qué Identifica los procesos donde se emplean los datos y los sitios donde se necesita el acceso inmediato a la información, se desarrolla durante el análisis de flujo de datos y auxilia a los analistas que participan en la determinación de los requerimientos del sistema, su contenido también se emplea durante el diseño. Qué incluye En un diccionario de datos se encuentra la lista de todos los elementos que forman parte del flujo de datos de todo el sistema. Los elementos más importantes son flujos de datos, almacenes de datos y procesos. El diccionario de datos guarda los detalles y descripción de todos estos elementos. Por que utilizarlo Razones para su utilización: 1. Para manejar los detalles en sistemas muy grandes, debido a su constante cambio. Los analistas mas organizados usan el diccionario de datos automatizados diseñados específicamente para el análisis y diseño de software. 2. Para asignarle un solo significado a cada uno de los elementos y actividades del sistema. 3. Para documentar las características del sistema, incluyendo partes o componentes así como los aspectos que los distinguen. Una vez que las características están articuladas y registradas, todos los participantes en el proyecto tendrán una fuente común de Base de Datos I Página 4 INGENIERÍA EN SISTEMAS COMPUTACIONALES información con respecto al sistema. 4. Para facilitar el análisis de los detalles con la finalidad de evaluar las características y determinar donde efectuar cambios en el sistema. Se abordan las características: Naturaleza de las transacciones: las actividades de la empresa que se llevan a cabo mientras se emplea el sistema. Preguntas: solicitudes para la recuperación o procesamiento de información para generar una respuesta específica. Archivos y bases de datos: detalles de las transacciones y registros maestros que son de interés para la organización. Capacidad del sistema: Habilidad del sistema para aceptar, procesar y almacenar transacciones y datos Localizar errores y omisiones en el sistema, detectan dificultades, y las presentan en un informe. Aun en los manuales, se revelan errores. Registro en el diccionario El diccionario tiene dos tipos de descripciones para el flujo de datos del sistema, son los elementos datos y estructura de datos. Base de Datos I Elemento dato: son los bloques básicos para todos los demás datos del sistema, por si mismos no le dan un significado suficiente al usuario. Se agrupan para formar una estructura de datos y contiene: o Un nombre: para distinguir un dato de otro. o Descripción: indica lo que representa en el sistema. o Alias: porque un dato puede recibir varios nombres, dependiendo de quién uso este dato. o Longitud: porque es de importancia de saber la cantidad de espacio necesario para cada dato. o Valores de los datos: porque en algunos procesos solo son permitidos valores muy específicos para los datos. Si los valores de los datos están restringidos a un intervalo especifico, esto debe estar en la entrada del diccionario. Estructura de datos: es un grupo de datos que están relacionados con otros y que en conjunto describen un componente del sistema. Se construyen sobre cuatro relaciones de componentes: o Relación secuencial: define los componentes que siempre se incluyen en una estructura de datos. o Relación de selección: (uno u otro), define las alternativas para datos o estructuras de datos incluidos en una estructura de datos. o Relación de iteración: (repetitiva), define la repetición de un componente. o Relación opcional: los datos pueden o no estar incluidos, o sea, una o ninguna iteración. Página 5 INGENIERÍA EN SISTEMAS COMPUTACIONALES Lección 2.3. Niveles de transparencia Introducción Un SBDD requiere características funcionales que pueden ser agrupadas y descritas como características de transparencia. Las características de transparencia del DDBMS tienen la propiedad común de permitir que el usuario sienta que es el único que está utilizando la BD. Características de transparencia Lección 2.3.1. Transparencia de distribución Para el usuario la transparencia consiste en que el DDBMS actué como un DBMS centralizado, es decir toda la complejidad de las operaciones del DDBMS son transparentes para el usuario. Las características de transparencia son: Transparencia de Distribución Esta transparencia permite que la BDD sea tratada como una BD lógica, es decir, el usuario no necesita saber: Niveles de transparencia Transparencia de distribución Transparencia de transacción Transparencia de falla Transparencia de desempeño Independencia de heterogeneidad Que los datos están en particiones. Que los datos pueden ser replicados en varios sitios. La ubicación de los datos. La transparencia de distribución permite manejar la BD como si fuera centralizada. Este nivel de transparencia varía de sistema a sistema. Existen tres niveles de transparencia de distribución: Nivel de transparencia De fragmentación De ubicación Base de Datos I Descripción Es el mayor nivel de transparencia. El usuario o programador no necesita saber que la BD esta en particiones. Para acceder a los datos no se da: el nombre, ni la ubicación de los fragmentos No se exige a los usuarios que conozcan la Página 6 INGENIERÍA EN SISTEMAS COMPUTACIONALES SQL y transparencia Ejemplo ubicación física de los datos. El sistema distribuido de base de datos debe poder hallar los datos siempre que la transacción del usuario facilite el identificador de los datos, es decir se dé el nombre de los fragmentos, pero no su ubicación. De ubicación local Existe cuando el usuario o programador debe especificar tanto los nombres como las ubicaciones de los fragmentos Si la sentencia SQL requiere: Nombre del fragmento Sí Sí No Nombre de la ubicación Sí No No El DDBMS soporta Nivel de transparencia de distribución Bajo Media Alta Mapeo local Transparencia de ubicación Transparencia de fragmentación Si se tiene una tabla llamada “Empleado” que contiene los atributos emp_name, emp_dob, emp_address, emp_departament y emp_salary y estos están distribuidos en tres lugares: New York, Atlanta, Miami. La tabla está dividida por ubicación, como se muestra a continuación: DBMS Distribuido Tabla EMPLEADO Fragmento Ubicación E1 E2 New York Atlanta E3 Miami Los datos de los empleados de New York se encuentran en el fragmento E1, los de Atlanta en el fragmento E2 y los de Miami en el fragmento E3 Sí un usuario desea mostrar la lista de todos los empleado con fecha de nacimiento anterior al 1ero. de enero de 1940, entonces: Caso 1: La BD soporta transparencia de fragmentación Base de Datos I La consulta se ajusta al formato de consulta no distribuida, es decir Página 7 INGENIERÍA EN SISTEMAS COMPUTACIONALES no se especifica nombre o ubicación del fragmento: SELECT * FROM EMPLEADO WHERE EMPL_DOB < ’01-ENE-1940’ Caso 2: La Base de datos soporta transparencia de ubicación: En la consulta deben especificarse los nombres de fragmento, más no su ubicación: SELECT * FROM E1 WHERE EMPL_DOB < ’01-ENE-1940’ UNION SELECT * FROM E2 WHERE EMPL_DOB < ’01-ENE-1940’ UNION SELECT * FROM E3 WHERE EMPL_DOB < ’01-ENE-1940’ Caso 3: La base de datos soporta transparencia de ubicación local En la consulta debe especificarse el nombre y la ubicación del fragmento: SELECT * FROM E1 NODE ‘NY’ WHERE EMPL_DOB < ’01-ENE-1940’ UNION SELECT * FROM E2 NODE ‘ATL’ WHERE EMPL_DOB < ’01-ENE-1940’ UNION SELECT * FROM E3 NODE ‘MIA’ WHERE EMPL_DOB < ’01-ENE-1940’ Nota: NODE no forma parte de SQL Base de Datos I Página 8 INGENIERÍA EN SISTEMAS COMPUTACIONALES Lección 2.3.2. Transparencia de transacción Transparencia de transacción Permite que una transacción actualice datos en varios sitios de la red y garantiza que esta sea completada en su totalidad o sea abortada, manteniendo así la integridad de los datos. Esta propiedad del DDBMS garantiza que las transacciones de base de datos mantendrán la integridad y consistencia de la base de datos distribuida. Lección 2.3.3. Transparencia de falla Lección 2.3.4. Transparencia de desempeño Transparencia de desempeño y optimización Técnicas de optimización Función de optimización Transparencia de falla Permite que el sistema continúe operando en el caso de una falla de nodo y las funciones que se perdieron a causa de la falla serán recobradas por otro nodo de la red. Transparencia de desempeño Permite que el sistema funcione como si fuera un DBMS centralizado. El sistema no sufre degradación de desempeño por uso en una red o por diferencia de plataforma de la red y garantiza que el sistema encontrara la ruta de acceso más barata los datos remotos. Una de las funciones más importantes de una BD es su capacidad para hacer que los datos estén disponibles. EL DDBMS usa técnicas de optimización de consulta para ocuparse de los problemas de acceso y garantizar un desempeño aceptable de la BD. El objetivo de una rutina de optimización de una consulta es reducir al mínimo el costo total asociado con la ejecución de una solicitud. Los costos asociados con una solicitud son una función: Base de Datos I Del costo de acceso del tiempo de acceso (E/S) implicado al accesar los datos físicos guardados en disco. Del costo de comunicación asociado con la transmisión de datos entre nodos del sistema de base de datos distribuidos. Del costo de tiempo de CPU asociado con la transmisión de datos entre nodos en DDBMS. Página 9 INGENIERÍA EN SISTEMAS COMPUTACIONALES Características de optimización Transparencia de réplica Principios Una de las características más importantes de optimización de consultas en sistemas de base de datos distribuida, es que debe proporcionar transparencia de distribución, así como transparencia de réplica. La transparencia de réplica se refiere a la capacidad del DDBMS de ocultar la existencia de copias múltiples de datos al usuario. Principios I II La selección del orden de ejecución óptimo La selección de los sitios a ser accesados para reducir el costo de comunicación. Con los principios el algoritmos de optimización de consultas puede ser evaluado en base a su modo de operación o en la temporización de su optimización Lección 2.3.5. Transparencia de heterogeneidad Lección 2.3.6. Fragmentación de datos Transparencia de heterogeneidad Permite la integración de varios DBMS locales diferentes (relacional, red, jerárquico) conforme a un esquema común, global. El DDBMS es responsable de transformar las solicitudes de datos del esquema global en el esquema de DBMS local. Fragmentación de datos La fragmentación permite dividir un objeto en dos o más segmentos o fragmentos. Objeto Es una base de datos o una tabla Cada fragmento puede guardarse en cualquier sitio en una red de computadoras. Algebra relacional Correctitud de Base de Datos I La información de la fragmentación se guarda en un catalogo de datos distribuidos (DDC), desde donde es accesada por el procesador de transacciones para procesar las solicitudes de los usuarios. Si la relación r se fragmenta, r se divide en varios fragmentos r1, r2, . . . , rn. Estos fragmentos contienen suficiente información como para permitir la reconstrucción de la relación original r. Al realizar la fragmentación de una relación se deben satisfacer las siguientes condiciones para garantizar la correctitud de la Página 10 INGENIERÍA EN SISTEMAS COMPUTACIONALES la fragmentación fragmentación: Condición De completitud Problemas para el asignamiento de fragmentos Requerimiento de información Descripción La descomposición de la relación R de los fragmentos r1, r2, . . . , rn. es completa si y solamente si cada elemento de datos en r se encuentra en alguno de los Rj. De reconstrucción Si la relación R se descompone en los fragmentos r1, r2, . . . , rn, entonces debe existir algún operador relacional N, tal que R = Ñ 1£, 2£,n Rj De fragmentos Si la relación R se descompone en los disjuntos fragmentos y el dato di está en Rj, entonces, no debe estar en ningún otro fragmento Rk(k1j) EL DBMS puede no aceptar la replicación en el asignamiento de fragmentos, entonces se opta por una de las siguientes estrategias: Problema No soportar replicación Estrategia de solución Cada fragmento reside en un solo sitio Soportar replicación completa Cada fragmento reside en cada uno de los sitios Soportar replicación parcial Cada fragmento reside en alguno de los sitios. Para llevar a cabo la fragmentación de los datos y tener un buen resultado, se debe determinar la siguiente información: Estrategias de fragmentación Sobre el significado de los datos Sobre las aplicaciones que los usan Acerca de la red de comunicaciones Acerca de los sistemas de cómputo Las estrategias de fragmentación de los datos, están basadas a nivel de tabla y consisten en dividir una tabla en fragmentos lógicos. Existen tres estrategias de fragmentación: Fragmentación horizontal Fragmentación vertical Fragmentación híbrida o mezclada Datos muestra Se usara la tabla cliente para la representación de la fragmentación. Base de Datos I Página 11 INGENIERÍA EN SISTEMAS COMPUTACIONALES TABLA: CLIENTE CUS_NUM CUS_NAME CUS_ADDRESS CUS_STATE CUS_LIMIT CUS_BAL CUS_RATING 10 11 Sinex, Inc. Martin, corp Mynus, Corp BTBC, Inc 12 Main St 321 Sunset Blvd 910 Eagle St TN FL 3,500.00 6,000.00 2,700.00 1,200.00 3 1 1,245.00 0.00 TN 4,000.00 3,500.00 3 3,400.00 Rue Du Monde 123 Maple St 909 High Ave FL 6,000.00 5,890.00 3 1,090.00 FL GA 1,200.00 2,000.00 550.00 350.00 1 2 0.00 50.00 12 13 14 15 Victory,Inc NBCC Corp Lección 2.3.7. Fragmentación Fragmentación horizontal Representación algebraica CUS_DUE horizontal Se refiere a la división de una relación en subconjuntos de tuplas. Cada fragmento se guarda en un nodo diferente y cada uno de ellos tiene filas únicas. Todas las filas tienen los mismos atributos, es decir es equivalente a la sentencia SELECT /WHERE. Los fragmentos horizontales pueden definirse como una selección de la relación global r. Es decir, se utiliza un predicado Pi para construir fragmentos ri: ri = Pi (r) Se reconstruye la relación r tomando la unión de todos los fragmentos; es decir, Ejemplo Base de Datos I r = r1 r2 · · · rnEscriba aquí la ecuación. Cada Nodo requiere información de los clientes de su propio estado, con base en esto se realizara la distribución de los fragmentos: Nombre del fragmento CUST_H1 Ubicación Condición Tennessee CUST_H2 Georgia CUST_H3 Florida CUS_STATE = ‘TN’ CUS_STATE = ‘GA’ CUS_STATE = ‘FL’ Nombre del nodo NAS Número de cliente 10,12 Número de cuartos 2 ATL 15 1 TAM 11,13,14 3 Página 12 INGENIERÍA EN SISTEMAS COMPUTACIONALES Resultado: Cada fragmento puede tener un número de filas diferente, pero el mismo número de atributos, como se muestra a continuación: Nombre del fragmento: CUST_H1 Ubicación: Tennessee Nodo: AS Representación algebraica: CUST1 = CUS_STATE = ‘TN’(CUSTOMER) Nombre del fragmento: CUST_H2 Ubicación: Georgia Nodo: ATL Representación algebraica: CUST1 = CUS_STATE = ‘ATL’(CUSTOMER) Nombre del fragmento: CUST_H3 Ubicación: FLORIDA Nodo: TAM Representación algebraica: CUST1 = CUS_STATE = ‘FL’(CUSTOMER) Lección 2.3.8. Fragmentación Fragmentación vertical Representación Base de Datos I vertical Se refiere a la división de una relación en subconjuntos de atributos, Cada subconjunto se guarda en un nodo diferente y cada fragmento tiene columnas únicas, con la excepción de la columna clave que se debe incluir en todos los fragmentos. Este es el equivalente a PROJECT La fragmentación vertical divide la relación descomponiendo el esquema R de la relación r. Cada fragmento ri de r se define mediante Página 13 INGENIERÍA EN SISTEMAS COMPUTACIONALES algebraica ri = Ri (r) La fragmentación debe hacerse de modo que se pueda reconstruir la relación r a partir de los fragmentos tomando la reunión natural Ejemplo La distribución de los fragmentos se llevará a cabo basado en las necesidades de dos departamentos: el de servicio y el de colecciones, cada uno está ubicado en un lugar diferente y tiene interés en atributos específicos. Nombre del fragmento Ubicación CUST_V1 Edificio: Servicio Edificio: colección CUST_V2 Nombre del nodo SVC ARC Nombre del atributo CUS_NUM,CUS_NAME, CUSADDRESS, CUS_STATE CUS_NUM, CUS_LIMIT, CUS_BAL, CUS_RATING, CUS_DUE Cada fragmento vertical tiene el mismo número de filas, pero diferentes atributos, como se muestra a continuación: Nombre del fragmento: CUST_V1 Ubicación: Ed. De Servicio Nodo: SVC Representación algebraica: CUST1 = CUS_NUM, CUS_NAME, CUS-ADDRESS, CUS_STATE (CUSTOMER) Nombre del fragmento: CUST_V2 Ubicación: Ed. De colección Nodo: ARC Representación algebraica: CUST1 = CUS_NUM, CUS_LIMIT, CUS-RATING, CUS_DUE (CUSTOMER) La fragmentación vertical es inherentemente más complicada que Base de Datos I Página 14 INGENIERÍA EN SISTEMAS COMPUTACIONALES particionamiento horizontal ya que existe un gran número de alternativas para realizarla. Por lo tanto, se utilizan heurísticas para hacer el particionamiento. Los dos enfoques básicos son: 1. Agrupamiento. Inicia asignando cada atributo a un fragmento, y en cada paso, algunos de los fragmentos satisfaciendo algún criterio se unen para formar un solo fragmento. 2. División. Inicia con una sola relación realizar un particionamiento basado en el comportamiento de acceso de las consultas sobre los atributos. Lección 2.3.9. Fragmentación Fragmentación híbrida Ejemplo Base de Datos I híbrida Es una combinación de estrategias horizontales y verticales. Una tabla puede dividirse en varios subconjuntos horizontales (filas) y cada una tiene un subconjunto de atributos (columnas) Se requieren diversos datos que cubran las necesidades de los departamentos de servicios y colección, en base a estas necesidades se realizará la fragmentación: Nombre del fragmento CUST_M1 Ubicación Criterios horizontales Nombre del nodo NAS-S Filas resultantes 10,12 TN-Servicio CUST_STAT E = ‘TN’ CUST_M2 TN-Colección CUST_STAT E = ‘TN’ NAS-C 10,12 CUST_M3 GA- Servicio CUST_STAT E = ‘GA’ ATL-S 15 CUST_M4 GAColección CUST_STAT E = ‘GA’ ATL-C 15 CUST_M5 FL- Servicio CUST_STAT E = ‘FL’ TAM-S 11,13,14 Criterios verticales y atributos en c/fragmento CUS_NUM, CUS_NAME, CUS_ADDRESS, CUS_STATE CUS_NUM, CUS_LIMIT, CUS_BAL, CUS_RATING, CUS_DUE CUS_NUM, CUS_NAME, CUS_ADDRESS, CUS_STATE CUS_NUM, CUS_LIMIT, CUS_BAL, CUS_RATING, CUS_DUE CUS_NUM, CUS_NAME, Página 15 INGENIERÍA EN SISTEMAS COMPUTACIONALES CUST_M6 FL- Colección CUST_STAT E = ‘FL’ TAM-C 11,13,14 CUS_ADDRESS, CUS_STATE CUS_NUM, CUS_LIMIT, CUS_BAL, CUS_RATING, CUS_DUE Cada fragmento contendrá los datos de los clientes por estado y dentro de cada estado los atributos necesarios para cada departamento: Nombre del fragmento: CUST_M1 Ubicación: TN-Servicio Nodo: ARC Nombre del fragmento: CUST_V2 Ubicación: Ed. De colección Nodo: ARC Lección 2.3.10. Distribución de datos La distribución de datos describe el proceso de decidir dónde ubicarlos y lo realiza mediante las siguientes estrategias: Factores en algoritmos de distribución Centralización de datos: Toda la Bd se guarda en un solo sitio. Partición de datos: La Bd se divide en varios fragmentos y se guarda en varios sitios Replicación de datos: Se guardan copias en uno o más fragmentos de la base de datos en vario sitios. En los algoritmos de distribución se consideran varios factores: Algoritmos de Distribución de datos Objetivos de desempeño y disponibilidad de datos Tamaño, número de filas y el número de relaciones que una entidad mantiene con otras entidades. Tipos de transacciones a ser aplicadas a la base de datos, los atributos accesados por cada una de las transacciones, etc. Datos externos, como topologías de la red, cantidad de datos procesados. Los algoritmos más comunes son los de distribución son: Base de Datos I de datos no replicados Página 16 INGENIERÍA EN SISTEMAS COMPUTACIONALES distribución de datos replicados Algoritmos de distribución de datos no replicados Lección 2.3.11. COM_MIN El algoritmo COM-MIN genera un conjunto de predicados PR1 dado un conjunto de predicados simple Pr. Esta regla afirma que una relación o fragmento Regla 1. fundamental de (F) es particionado en al menos dos partes de completes y minimalidad las cuales se accesan en forma diferente por al menos una consulta de usuario. Este algoritmo tiene el siguiente proceso: 1. Inicio: Encontrar un p1 Î Pr tal que p1 particiona a R de acuerdo a la regla 1 Hacer Pr1 = pi, Pr¬ pr - pi. F¬f1 2. Iterativamente agregar predicados a hasta que Pr1 sea completo: Encontrar un p1 Î Pr tal que p1 particiona algún fx de acuerdo a la regla 1 Hacer Pr1 = Pr1 U pi, Pr - Pr - pi. F¬ F U f1 El algoritmo empieza encontrando un predicado que es relevante y que particiona la relación de entrada. Después, agrega de manera iterativa predicados a este conjunto, asegurando minimalidad en cada paso. Por lo tanto, al final el conjunto Pr1 es tanto completo como mínimo. El segundo paso en el proceso de diseño de fragmentación horizontal primaria es derivar el conjunto de predicados minitérminos que pueden ser definidos en los predicados del conjunto Pr1. Esos minitérminos definen los fragmentos que serán usados como candidatos en el paso de asignamiento. El algoritmo de fragmentación horizontal primaria, llamado PHORIZONTAL, se presenta a continuación. La entrada al algoritmo es una relación Ri la cual es sometida a fragmentación horizontal primaria, y Pri, el cual es el conjunto de predicados simples que han sido determinados de acuerdo a Base de Datos I Página 17 INGENIERÍA EN SISTEMAS COMPUTACIONALES las consultas definidas en la relación Ri. Algoritmo Phorizontal El algoritmo PHORIZONTAL se describe a continuación: Entrada: Una relación R y un conjunto de predicados simples Pr. Salida: Un conjunto de predicados minitérminos, M, de acuerdo a los cuales la relación R será fragmentada. Pr1 COM_MIN( R, Pr ) determinar el conjunto M de predicados minitérminos determinar el conjunto I de im eliminar minitérminos contradictorios a partir de M Ejemplo Para la relación S la consulta o aplicación se verifica la información del salario y determinan incrementos. Suponga además que los registros de empleados se mantienen en dos lugares y, por tanto, la aplicación o consulta se ejecuta en dos lugares. Los predicados simples que serían usados para particionar la relación S son: p1 : CUS_LIMIT5000 p2 : CUS_LIMIT5000 Al aplicar el algoritmo COM_MIN se verifica que Pr = { P1, P2 } se completo y minimal, Pr1 = Pr. Se pueden formar los siguientes predicados minitérminos como miembros de M: m1:(CUS_LIMIT5000) (CUS_LIMIT5000) m2:(CUS_LIMIT5000) NOT(CUS_LIMIT5000) m3:NOT (CUS_LIMIT5000) (CUS_LIMIT5000) m4:NOT(CUS_LIMIT5000) NOT(CUS_LIMIT5000) Asumiendo que el dominio de LIMITE DE CRÉDITO se puede partir en dos, como se sugiere Pr p1 y p2, las siguientes implicaciones son obvias: i1: (CUS_LIMIT5000) NOT (CUS_LIMIT5000) i2: NOT (CUS_LIMIT5000) (CUS_LIMIT5000) i3: (CUS_LIMIT5000) NOT (CUS_LIMIT5000) i3: (CUS_LIMIT5000) (CUS_LIMIT5000) De acuerdo a i1, m1 es contradictorio; de acuerdo a i2, m4 es contradictorio. Por lo tanto, nos quedamos con M = { m2, m3 }. Por tanto, se definen los Base de Datos I Página 18 INGENIERÍA EN SISTEMAS COMPUTACIONALES dos fragmentos Fs = { S1, S2 } de acuerdo a M. S1 S2 Algoritmo de agrupación Algoritmo de Agrupamiento (Clustering) La tarea fundamental en el diseño de una fragmentación vertical es encontrar algún medio para agrupar los atributos de una relación basándose en los valores de afinidad entre atributos. La idea del algoritmo de agrupamiento es tomar la matriz de afinidades entre atributos (AA) y reorganizar el orden de los atributos para formar grupos en donde los atributos dentro de cada grupo presentan alta afinidad uno con otro. El algoritmo de energía acotada (BEA por sus siglas en inglés) encuentra un ordenamiento de los atributos, de tal manera, que se maximiza la siguiente medida de afinidad global (AM): Lección 2.3.12. Algoritmos de distribución de datos replicados Regla de Los datos replicados se someten a la regla de consistencia mutua, consistenci requieren que todas las copias de fragmentos de datos sean idénticas. a mutua Para mantener la consistencia la consistencia de los datos entre las replicas, el DDBMS debe garantizar que se realice una actualización de la BD en todos los sitios donde existan réplicas. Base de Datos I Página 19 INGENIERÍA EN SISTEMAS COMPUTACIONALES Procesos de la BDD La replicación exige más complejidad del procesamiento del DDBMS, como se muestra a continuación: Escenarios de replicación Si la base de datos es fragmentada, el DDBMS debe decidir a que fragmento acceder. Una operación de lectura (Read) selecciona la copia más cercana para satisfacer una transacción. Un operación de escritura (Write) requiere que todas las copias se seleccione y actualicen para satisfacer la regla de consistencia mutua. El procesador de transacciones envía una solicitud de datos a cada procesador de datos para su ejecución El procesador de datos recibe y ejecuta cada solicitud y envía los datos de vuelta al procesador de transacciones El procesador de transacciones arma las respuestas del procesador de consultas Existen 3 escenarios de replicación de bases de datos: BD totalmente replicada: guarda varias copias de cada fragmento de la BD en varios sitios. BD parcialmente replicada: guarda múltiples copias de algunos fragmentos de la Bd en multiples sitios. Una base de datos no replicada: guarda cada fragmento de BD en un solo sitio. Métodos para implementar la replicación en SQL 2008 Sincronización Además de replicar las bases, en SQL Server puede sincronizar las bases de datos mediante Microsoft Sync Framework y Sync Services for ADO.NET. Sync Services for ADO.NET proporciona una API intuitiva y flexible que se puede utilizar para generar aplicaciones destinadas a escenarios para la colaboración sin conexión. SQL Server SQL Server Management Studio incluye una organización gráfica de Management objetos de replicación que se puede utilizar para implementar y Studio administrar un entorno de replicación completo en toda la empresa. SQL Server Management Studio proporciona la carpeta Replicación como ubicación central en la que organizar y administrar las publicaciones y suscripciones. Elementos de Desde la carpeta Replicación, puede iniciar los siguientes elementos: replicación Base de Datos I Página 20 INGENIERÍA EN SISTEMAS COMPUTACIONALES Componente Descripción Asistentes para replicación y hojas de propiedades Utilice los asistentes y las hojas de propiedades para configurar las publicaciones y suscripciones y, a continuación, ver y modificar sus propiedades. Monitor de replicación El Monitor de replicación proporciona una visión sistémica de la actividad de replicación, que se centra en el movimiento de datos entre el publicador y los suscriptores. El Monitor de replicación es una herramienta para observar la actividad en tiempo real, solucionar problemas y analizar la actividad de replicación en el pasado. Visor de conflictos El Visor de conflictos le ayuda a ver y resolver cualquier conflicto ocurrido durante el proceso de sincronización de una suscripción de mezcla o de una suscripción de actualización en cola. Tipos de Hay tres tipos de replicación en SQL Server 2008: replicación en replicación transaccional, SQL Server réplica de mezcla replicación de instantáneas. Todos estos tipos dependen de varios programas independientes, denominados agentes, que realizan las tareas asociadas con el seguimiento de los cambios y la distribución de los datos. Bibliografía Base de Datos I Página 21 INGENIERÍA EN SISTEMAS COMPUTACIONALES Peter Rob, Coronel, C. (2004) Sistema de Bases de Datos, diseño implementación y administración, México, Editorial Thomson Ramez A. Elmasri, Shamkat B. Navathe (2002), Fundamentos de sistemas de Bases de Datos, Madrid, Editorial Pearson Addison Wesley Silberschatz, A., Korth, H., Sudarshan, S. (2004) Fundamentos de bases de datos, 4ta edición, México, Mc Graw Hill Sitio dedicado a las bases de datos http://www.cs.cinvestav.mx/SC/prof_personal/adiaz/Disdb/temario.html Sitio de ayuda de es/library/ms183524.aspx Base de Datos I Microsoft SQL Server: distribuidas: http://msdn.microsoft.com/es- Página 22