Subido por Gaby Cruz

Lectura Unidad II

Anuncio
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_LIMIT5000
p2 : CUS_LIMIT5000
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_LIMIT5000) (CUS_LIMIT5000)
m2:(CUS_LIMIT5000)  NOT(CUS_LIMIT5000)
m3:NOT (CUS_LIMIT5000) (CUS_LIMIT5000)
m4:NOT(CUS_LIMIT5000)  NOT(CUS_LIMIT5000)
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_LIMIT5000)  NOT (CUS_LIMIT5000)
i2: NOT (CUS_LIMIT5000)  (CUS_LIMIT5000)
i3: (CUS_LIMIT5000)  NOT (CUS_LIMIT5000)
i3: (CUS_LIMIT5000)  (CUS_LIMIT5000)
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
Descargar