You are on page 1of 7

UNIVERSIDAD POLITCNICA DE PUEBLA MAESTRA EN INGENIERA TPICOS SELECTOS DE BASES DE DATOS Profa. Dra. Mara Auxilio Medina N.

DISEO DE UNA BDD El diseo de una BDD se refiere a tomar decisiones sobre el lugar de los datos y de las aplicaciones en los sitios conectados por la red que forman la BDD.

1. Conceptos bsicos La independencia de datos es la inmunidad de las aplicaciones del usuario a cambios en la definicin o en la organizacin de datos o viceversa. Existen dos tipos de independencia de datos: 1. Independencia de datos lgica.- Inmunidad de las aplicaciones de usuario a cambios en la estructura lgica de la base de datos 2. Independencia de datos fsica.- Oculta los detalles de la estructura de almacenamiento

2. Niveles de transparencia La independencia de datos es el nivel mnimo de transparencia. La transparencia se refiere a la separacin de la semntica de alto nivel de un sistema de los estudios de implementacin de bajo nivel. Existen diferentes niveles de transparencia: 1. Transparencia de red a. Transparencia de localizacin.- Los objetos de la BDD no deben identificarse slo por su localizacin b. Transparencia de nombres.- Los nombres de los objetos de la BDD no deben reflejar su ubicacin 2. Transparencia de replicacin.- Oculta datos duplicados 3. Transparencia de fragmentacin.- Se refiere al proceso de traduccin de consultas globales a consultas locales fragmentadas 4. Transparencia de lenguaje.- El diseo de la base de datos no debe verse afectado por el lenguaje en el que se implementen las aplicaciones del usuario La responsabilidad del manejo de los diferentes niveles de transparencia recae en el lenguaje de programacin de las aplicaciones, en el sistema operativo seleccionado y en los DBMSs

involucrados. Sin embargo, el procesamiento de las consultas y la asignacin de los nombres a los objetos distribuidos, son responsabilidad del diseador de la base de datos.

3. Fragmentacin de relaciones El objetivo de fragmentar las relaciones en una BDD es ofrecer a los usuarios un mayor nmero de accesos concurrentes y un menor tiempo de respuesta en sus consultas. La fragmentacin es correcta si cumple con las propiedades siguientes: 1. Completa.- Cuando cada tupla de la relacin R se puede encontrar en un fragmento 2. Reversible.- Existe una operacin que permite reconstruir la relacin original R a partir de sus fragmentos 3. Disjunta.- Una tupla pertenece a un solo fragmento

3.1 Fragmentacin horizontal primaria Este tipo de fragmentacin divide a una relacin R a travs del uso de predicados simples y la seleccin de trminos mnimos. Un trmino mnimo es la conjuncin de predicados simples que pueden aparecer en su forma natural o negada. Regla bsica: Una relacin o fragmento se divide al menos en dos partes que se acceden de forma diferente por al menos una aplicacin. Un conjunto de predicados Pr es completo si y slo si los accesos a las tuplas de los fragmentos definidos sobre Pr requiere que 2 tuplas del mismo fragmento tengan la misma probabilidad de ser accedida por cualquier aplicacin. Si todos los predicados de un conjunto son relevantes, es decir, causan la divisin de un fragmento, entonces Pr es mnimo. Medidas de apoyo para aplicar fragmentacin horizontal primaria: sel(mi) = nmero de tuplas de la relacin que podran accederse por la consulta del usuario acc(qi) = frecuencia con la cual una aplicacin del usuario qi accede a los datos

Para dos fragmentos propuestos i y j, se sugiere lo siguiente: acc(mi) / card(fi) sea diferente a acc(mj) / card(fj) La unin de los fragmentos es la operacin para reconstruir R.

3.2 Fragmentacin vertical Dado un conjunto de aplicaciones o consultas Q = {q1, q2, q3, .., qq} que se ejecutan sobre la relacin R (A1, A2, .., An), se aplica una funcin de uso definida como: 1 si Aj es referenciado por la consulta qi uso (qi, Aj) = 0 en otro caso

Suponga cuatro consultas y una relacin R de cuatro atributos:

Matriz de uso de atributos A1 1 0 0 0 A2 0 1 1 0 A3 1 1 0 1 A4 0 0 1 1

q1 q2 q3 q4

Afinidad entre atributos aff(Ai, Aj) = acceso_ a_ la_ consulta para todas las consultas que acceden a Ai y Aj

acceso a la consulta = frecuencia_de_acceso_de_una_ consulta * (tiempo_de_acceso / tiempo de ejecucin) Por simplicidad, se asume que una consulta accede a un atributo una sola vez y se considera que (tiempo_de_acceso / tiempo de ejecucin) = 1.

Matriz de frecuencia de accesos S1 15 5 25 3 S2 20 0 25 0 S3 10 0 25 0 Total 45 5 75 3

q1 q2 q3 q4

A partir de la matriz de frecuencia de accesos, se calcula la siguiente matriz: Matriz de afinidad de atributos A1 45 0 45 0 A2 0 80 5 75 A3 45 5 53 3 A4 0 75 3 78

A1 A2 A3 A4

aff(A1, A1)=45

aff(A1, A2)=0 aff(A2, A2)=75 + 5

aff(A1, A3)=45 aff(A2, A3)=5 aff(A3, A3)=45 + 5 +3

aff(A1, A4)=0 aff(A2, A4)=75 aff(A3, A4)=3 aff(A4, A4)=75 + 3

Calcular una medida de afinidad global utilizando la matriz de afinidad de atributos y las medidas de conexin y contribucin definidas como sigue:

conexin (Ax, Ay) =z=1n aff(Az, Ax) * aff(Az, Ay) contribucin (Ai, Aj, Ak) = 2*conexin (Ai,Aj) + 2* conexin(Aj,Ak) - 2*conexin(Ai, Ak)

Fijar las dos primeras columnas de la matriz de afinidad: A1 45 0 45 0 A2 A3 A4 0 80 5 75

A1 A2 A3 A4

Calcular 3 medidas de contribucin para determinar el lugar de A3 que maximice la medida de afinidad global: contribucin(A0, A3, A1) = 2*conexin (A0,A3) + 2* conexin(A3,A1) - 2*conexin(A0, A1) = 0 + 2*(45*45 + 45*53) 2*0 = 2*(4410) = 8820 contribucin(A1, A3, A2) = 2*conexin (A1,A3) + 2* conexin(A3,A2) - 2*conexin(A1, A2) = = 2*4410 + 2*(80*5 + 5*53 + 75*3) 2*(45*5)

= 8820 + 1780 - 450 = = 10150

contribucin(A2, A3, A4) = 2*conexin (A2,A3) + 2* conexin(A3,A4) - 2*conexin(A2, A4) = = 1780 + 0 0 =1780 De las 3 contribuciones anteriores, se tiene que A3 en medio de A1 y A2 es la unidad de afinidad global mxima, por lo que la matriz parcial de contribuciones es: A1 45 45 0 0 A3 45 53 5 3 A2 A4 0 5 80 75

A1 A3 A2 A4

Calcular 4 medidas de contribucin para determinar el lugar de A4 que maximice la medida de afinidad global en la matriz parcial de contribuciones: contribucin(A4, A1, A3) = 2*conexin (A4,A1) + 2* conexin(A1,A3) - 2*conexin(A4, A3) = 150 + 8820 1536 = 7434 contribucin(A1, A4, A3) = 2*conexin (A1,A4) + 2* conexin(A4,A3) - 2*conexin(A1, A3) = 150 + 1536 8820 = -7134 contribucin(A3, A4, A2) = 2*conexin (A1,A4) + 2* conexin(A4,A3) - 2*conexin(A1, A3) =1536 + 23730 1780 = 23486 contribucin(A2, A4, A0) = 2*conexin (A2,A4) + 2* conexin(A4,A0) - 2*conexin(A2, A0) = 23730 De las 4 contribuciones anteriores, se tiene que A4 despus de A2 es la unidad de afinidad global mxima, por lo que la matriz de contribuciones es: Matriz de contribuciones A1 45 45 0 0 A3 45 53 5 3 A2 0 5 80 75 A4 0 3 75 78

A1 A3 A2 A4

Regiones de la matriz de contribuciones A1 45 45 0 0 A3 45 53 5 3 A2 0 5 80 75 A4 0 3 75 78

A1 A3 A2 A4

En general, una matriz de contribuciones es de la forma siguiente:

Habr que seleccionar el punto de ruptura (X) conforme a las medidas siguientes: CTQ = nmero total de accesos a los atributos por las aplicaciones que acceden slo a TA CBQ = nmero total de accesos a los atributos por las aplicaciones que acceden slo a BA COQ= nmero total de accesos a los atributos por las aplicaciones que acceden a TA y a BA Para encontrar el punto de ruptura en la matriz de contribuciones, se requiere encontrar el punto a lo largo de la diagonal tal que maximice CTQ * CBQ COQ2

Opcin 1: A1 45 45 0 0 A3 45 53 5 3 A2 0 5 80 75 A4 0 3 75 78

A1 A3 A2 A4

CTQ * CBQ COQ2 = 0 * (5 + 75 + 3) 452 = -2025

Opcin 2: A1 45 45 0 0 A3 45 53 5 3 A2 0 5 80 75 A4 0 3 75 78

A1 A3 A2 A4

CTQ * CBQ COQ2 = 45 * 75 82 = 3311

Opcin 3: A1 45 45 0 0 A3 45 53 5 3 A2 0 5 80 75 A4 0 3 75 78

A1 A3 A2 A4

CTQ * CBQ COQ2 = 50 *0 782 = -6084 Existen algunos inconvenientes en la deteccin del punto de ruptura: 1. El grupo de atributos afines queda en medio de la matriz. Solucin: mover una fila arriba y una columna a la izquierda y encontrar el mejor punto de ruptura. Repetir el procedimiento para todos los cambios posibles. Estas operaciones son de orden cuadrtico (O(m2)). 2. Existen ms de 2 grupos afines (m grupos). Solucin: calcular el punto de ruptura para 1, 2, , m-1 puntos de ruptura y tratar de encontrar el mejor. Estas operaciones son de orden exponencial (O(2m)).

You might also like