• No results found

Application of the Constructs of the Upper Echelons Perspective

El algoritmo del diseño de B. D‟s presentado hasta este momento inicia desde un

esquema universal de una relación R = {A1, A2, A3,. . . , An } donde se incluyen todos los atributos de la B. D`s. El conjunto F de D. F. se especifica en el diseño de la B. D‟s produciendo una descomposición del esquema universal en esquemas de relaciones D = { R1, R2, R3,. . ., Rm} que formarán el esquema de la B. D‟s; D será la

descomposición R.

Se debe tener la seguridad de que cada atributo en R aparezca al menos en un esquema de relación Ri dentro de la descomposición; formalmente:

m

U

Ri = R

i=1

Esta condición se conoce como la condición de preservación de atributos.

Una meta es tener cada relación individual Ri de la descomposición D en 3NF o BCNF. Sin embargo, esta condición no es suficiente para que tener un buen diseño de la B. D‟s por sí mismo ya que en algunos casos aún pueden existir reuniones que produzcan tuplas espurias.

Ejemplo:

emp_locs

ename plocation

English, Joyce A. Bellaire English, Joyce A. Sugarland Narayan, Ramesh K. Houston Smith, Johns B. Sugarland Smith,Johns B. Bellaire Wong, Franklin T. Houston Wong, Franklin T. Stafford Wong, Franklin T. Sugarland

project

pname pnumber plocationdnum

productX 1 Bellaire 5 productY 2 Sugarland 5 productZ 3 Houston 5 computerization 10 Stafford 4 reorganization 20 Houston 1 newbenefits 30 Stafford 4

Tuplas_espurias < - emp_locs * project

tuplas espurias

ename Plocation pname pnumber dnum

English, Joyce A. Bellaire productX 1 5 Smith,Johns B. Bellaire productX 1 5 Wong, Franklin T. Sugarland productY 2 5 English, Joyce A. Sugarland productY 2 5 Smith, Johns B. Sugarland productY 2 5 Wong, Franklin T. Houston productZ 3 5 Narayan, Ramesh K. Houston productZ 3 5 Wong, Franklin T. Stafford computerization 10 4 Wong, Franklin T. Houston reorganization 20 1 Narayan, Ramesh K. Houston reorganization 20 1 Wong, Franklin T. Stafford newbenefits 30 4

En este caso ¿en cuál proyecto trabaja Narayan? o ¿en cuál proyecto trabaja Wong? En este caso, EMP_LOCS y PROJECT están en BCNF y sin embargo produjeron tuplas espurias.

Por lo que se requieren otros criterios que, junto con la 3NF o BCNF, prevengan un mal diseño.

7.4.1 DESCOMPOSICIÓN Y REUNIONES NO ADITIVAS O SIN PERDIDA DE INFROMACIÓN.

Una propiedad importante que la descomposición D debería poseer es la de reunión no aditiva, el cual asegura que no se generarán tuplas espurias cuando se realice una reunión natural. Si esta propiedad se garantiza en una descomposición, se garantiza que no exista información sin sentido después de una reunión natural.

La reunión natural del EMP_LOCS con PROJECT no tiene la propiedad de reunión no aditiva. En general, se desea que se tenga la capacidad de probar si una descomposición dada D tiene la propiedad no aditiva con respecto a un conjunto de dependencias

funcionales F, para tal efecto se tiene el siguiente algoritmo para mostrar si un conjunto de relaciones D tiene la propiedad aditiva.

Este algoritmo muestra que, si alguna hilera en S finaliza con todos los símbolos iguales a “a”, entonces la descomposición tiene la propiedad no aditiva con respecto a F. Si no es así, puede ser que se satisfagan todas las dependencias en F, pero no se garantiza la no aditividad.

ALGORITMO:

1. Crear la matriz S con una hilera “i” por cada relación Ri en la descomposición D, y en cada columna cada atributo de la relación R.

2. Se darán valores al conjunto S(i,j)=bi,j donde no incida un atributo de la columna Ri

3. Por cada hilera que represente el esquema de la relación Ri Por cada columna j que represente un atributo de Aj Si Ri incluye a un atributo Aj

Entonces S (i, j) = ai,j ;

4. Repetir hasta que la ejecución del ciclo no modifique a S. Para cada dependencia funcional X- > Y en F

Para cada hilera en S que tenga los mismos símbolos en la Columna correspondiente a los atributos en X

Haga que los símbolos en cada columna que correspondan a un atributo en Y sea el mismo en las hileras como se indica a continuación:

Si una de las hileras tiene una “a” para la columna j, coloque en la otra hilera la misma “a” en la columna indicada

5. Si una hilera tiene sólo símbolos “a”, entonces la descomposición tiene la propiedad no aditiva - de otra manera, no se tiene. Observe los dos ejemplos indicados abajo.

R= {SSN, ENAME, PNUMBER, PNAME, PLOCATION, HRS} D = {R1, R2} R1 = EMP_LOCS = {ENAME, PLOCATION}

R2 = EMP_PROJ1 = {SSN, PNUMBER, HRS, PNAME, PLOCATION} F = {SSN -> {ENAME}; PNUMBER -> {PNAME, PLOCATION}; {SSN, PNUMBER} - > HRS}

EJEMPLO 1.

SSN ENAME PNUMBER PNAME PLOCATION HRS

R1 b11 a2 b13 b14 a5 b16

R2 a1 b22 a3 a4 a5 a6

Después de aplicar el algoritmo, se observó que no existió cambio alguno. EJEMPLO 2.

R = {SSN, ENAME, PNUMBER, PNAME, PLOCATION, HRS} D = {R1, R2, R3} R1 = EMP = {SSN, ENAME}

R2 = PROJ = {PNUMBER, PNAME, PLOCATION} R3 = WORKS_ON = {SSN, PNUMBER, HRS}

F = {SSN->{ENAME}; PNUMBER->{PNAME, PLOCATION}; {SSN, PNUMBER}-> HRS}

SSN ENAME PNUMBER PNAME PLOCATION HRS

R1 a1 a2 b13 b14 b15 b16

R3 a1 b32 a3 b34 b35 a6

SSN ENAME PNUMBER PNAME PLOCATION HRS

R1 a1 a2 b13 b14 b15 b16

R2 b21 b22 a3 a4 a5 b26

a2 a4 a5

R3 a1 b32 a3 b34 b35 a6

Se muestra la matriz original y la matriz con los cambios adecuados posteriormente después de ser aplicado el algoritmo. Se observa que la última matriz tiene la propiedad de no aditividad de la reunión.

Ejercicio: Muestre si las siguientes relaciones tienen la propiedad no aditiva de la reunión natural:

UNO:

R = {ENAME, SSN, BDATE, ADDRESS, DNUMBER, DNAME, DMGRSSN} D = {R1, R2}

R1 = ED1 = {ENAME, SSN, BDATE, ADDRESS, DNUMBER} R2 = ED2 = {DNUMBER, DNAME, DMGRSSN}

F = {SSN-> {ENAME, BDATE, ADDRESS, DNUMBER}; DNUMBER -> {DNAME, DMGRSSN}}

DOS:

R = {PROPERTY_ID, COUNTY_NAME, #LOT, AREA, TAX_RATE, PRICE} D= {R1, R2, R3}

R1 = LOTS1A={PROPERTY_ID, COUNTY_NAME, #LOT, AREA} R2 = LOT1B={AREA, PRICE}

R3= LOTS2={COUNTY_NAME, TAX_RATE}

F={PROPERTY_ID->{COUNTY_NAME, #LOT, AREA}; AREA -> PRICE; COUNTY_NAME->TAX_RATE}

7.4.2 PROBLEMAS CON VALORES NULOS. (dangling tuples)

Pueden existir problemas cuando existen tuplas con valores nulos en atributos que pueden ser usados para realizar una reunión. Para ilustrar esto, considere la base de datos mostrada enseguida:

EMPLOYEE

ENAME SSN BDATE DNUM

SMITTH 123456789 09/01/1955 5 WONG 333445555 08/12/1945 5 BENITEZ 886644444 09/01/1953 BORG 888665555 10/11/2026 1 WALLACE 987654321 20/06/2021 4 BENGER 999775555 26/04/1955 ZELAYA 999887777 19/07/1958 4 DEPARTMENT DNAME DNUMDMGRSSN HEADQUARTERS 1 888665555 ADMINISTRATION 4 987654321 RESEARCH 5 333445555

SELECT ENAME, SSN, BDATE, DEPARTMENT.DNUM AS DNUM, DNAME, DMGRSSN FROM EMPLOYEE, DEPARTMENT

WHERE EMPLOYEE.DNUM=DEPARTMENT.DNUM;

PERDIDA POR VALORES NULOS

ENAME SSN BDATE DNUM DNAME DMGRSSN

SMITTH 123456789 09/01/1955 5 RESEARCH 333445555 WONG 333445555 08/12/1945 5 RESEARCH 333445555 ZELAYA 999887777 19/07/1958 4 ADMINISTRATION 987654321 WALLACE 987654321 20/06/2021 4 ADMINISTRATION 987654321 BORG 888665555 10/11/2026 1 HEADQUARTERS 888665555

Se observa que se han perdido en la consulta las tuplas de BENITEZ y BENGER, ya que tenían el valor de nulo en DNUM. (Observe que esto no viola ninguna restricción de integridad). Suponga que se quiere recuperar la lista de valores (ENAME, DNAME) de todos los empleados, como se observará, dos tuplas no aparecerán en la relación

resultante. La operación OUTER JOIN puede resolver tal problema, si se realiza una operación LEFT OUTER JOIN de EMPLOYEE con DEPARTMENT, las tuplas con nulos de EMPLOYEE aparecerán como se muestra en la siguiente tabla:

SELECT ENAME, SSN, BDATE, DEPARTMENT.DNUM AS DNUM, DNAME, DMGRSSN FROM EMPLOYEE LEFT JOIN DEPARTMENT ON EMPLOYEE.DNUM=DEPARTMENT.DNUM;

RESULTADO DEL LEFT JOIN

ENAME SSN BDATE DNUM DNAME DMGRSSN

SMITTH 123456789 09/01/1955 5 RESEARCH 333445555 WONG 333445555 08/12/1945 5 RESEARCH 333445555 ZELAYA 999887777 19/07/1958 4 ADMINISTRATION 987654321 WALLACE 987654321 20/06/2021 4 ADMINISTRATION 987654321 BENGER 999775555 26/04/1955 BENITEZ 886644444 09/01/1953 BORG 888665555 10/11/2026 1 HEADQUARTERS 888665555

En general, se debe tener un especial cuidado cuando un esquema de B. D‟s es diseñada teniendo dos o más relaciones y se interrelacionan vía una llave foránea. Esto puede causar una inexplicable pérdida de información en consultas en las que se envuelven reuniones. Además, si ocurren valores nulos en atributos tales como en SALARIO, sus efectos al construir funciones tales como SUM y AVG se deben evaluar con sumo cuidado.