52
Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan David González Cobas Universidad de Oviedo. Departamento de Informática Produced with L A T E X seminar style & PSTricks 1

Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

Tema 5: Diseño de Bases de Datos

Fernando Cano EspinosaJuan David González Cobas

Universidad de Oviedo. Departamento de Informática

f ano�uniovi.es , obas�uniovi.es

Curso 2009-2010

Produced with LATEX seminar style & PSTricks 1

Page 2: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

CONTENIDO

1. Introducción: un pequeño ejemplo

2. Anomalías

3. Descomposiciones

4. Normalización

CONTENIDO 2

Page 3: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

INTRODUCCIÓN

Vamos a proponer un ejemplo que consiste en una base dedatos que contendrá información sobre alumnos,asignaturas, notas y profesores. Las restricciones de las quepartimos son las siguientes:

• Un alumno sólo tiene asignado un profesor porasignatura

• Un alumno obtiene una única nota por asignatura

• Un profesor sólo puede dar clase de una asignatura

INTRODUCCIÓN 3

Page 4: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

Podríamos plantearnos mantener todos los datos en unaúnica tabla. Utilizaremos el siguiente ejemplo:

Alumno Asignatura Profesor Nota

Luis Física Newton 5

Luis Filosofía Kant 7

Carlos Física Einstein 6

Marta Física Newton 5

Pepe Filosofía Kant 4

Llamaremos a este esquema R(T, L), siendo T el conjunto deatributos y L el conjunto de restricciones expresadas comodependencias funcionales.

INTRODUCCIÓN 4

Page 5: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

R(T, L) : T = {Alumno, Asignatura, Profesor, Nota}

L = {Alumno Asignatura → Profesor,

Alumno Asignatura → Nota,

Profesor → Asignatura}

Los pares (Alumno,Asignatura) y (Alumno, Profesor) sonclaves candidatas.

Alumno Profesor → Asignatura ∈ L+

Alumno Profesor → Nota ∈ L+

INTRODUCCIÓN 5

Page 6: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

ANOMALÍAS

• Repetición de Información. El problema fundamental dela repetición de información no es el desperdicio deespacio sino otros problemas derivados delmantenimiento de información repetida, queenumeramos a continuación.

• Anomalías en la inserción y en la actualización. Alinsertar una fila nueva (en SQL, INSERT) o actualizar unaya existente (en SQL, UPDATE), tendremos quecomprobar que la información que introducimos esconsistente. Por ejemplo, comprobar la restricciónProfesor→Asignatura.

ANOMALÍAS 6

Page 7: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

• Anomalías en el borrado El problema que se nospresenta aquí no es un problema de inconsistencia, sinode pérdida de información.

• Representación de Información. Este problema estáíntimamente ligado al anterior y se basa en que nuestroesquema no nos permite guardar algunos hechos.

ANOMALÍAS 7

Page 8: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

• Imposición de las restricciones. Imponer la restricción deque un alumno sólo tiene un profesor por asignaturaresulta tan sencillo como el declarar (Alumno,Asignatura) como clave primaria. Sin embargo,garantizar el cumplimiento de las DFs cuya parteizquierda no es clave candidata no es así de sencillo.

Por ejemplo, comprobar la dependenciaProfesor→Asignatura requeriría establecer en SQL uncheck como este:

alter table R add onstraint PRO_ASIG

he k (not exists (

sele t profesor

from R

group by profesor

having ount(distin t asignatura) > 1));

ANOMALÍAS 8

Page 9: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

– Otra solución podría ser evitar que se inserten oactualicen tuplas que contradigan la restricciónmediante triggers.

– En cualquier caso, nos vemos obligados a agregar máscódigo, lo que es posiblemente innecesario y ralentiza laejecución de nuestras modificaciones a la base de datos.

ANOMALÍAS 9

Page 10: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

• Ante este tipo de anomalías, una solución consiste endescomponer nuestro esquema original en variossubesquemas de forma que dichas anomalías se eviten.

• Este proceso se conoce como normalización.

• No siempre es posible encontrar una descomposiciónque elimine todas las posibles anomalías. En algunoscasos, la normalización resuelve ciertos problemas, perointroduce otros.

ANOMALÍAS 10

Page 11: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

Descomposiciones

• Sea R un esquema de relación. Unconjunto {R1, R2, . . . , Rn} de esquemas de relación esuna descomposición de R si

n⋃

i=1

Ri = R (1)

• En la práctica, cuando descomponemos un esquemaen un conjunto de subesquemas, incluimos en éstosatributos comunes. El objetivo de esto es poderrecuperar posteriormente la información que se haguardado en distintas tablas a través de operaciones dejoin.

ANOMALÍAS 11

Page 12: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

• Vamos a ver cómo una descomposición puede resolveralgunos de los problemas mencionados en la secciónanterior.

• La propuesta es dividir nuestro esquema R(T, L) en dossubesquemas R1(T1, L1) y R2(T2, L2).

ANOMALÍAS 12

Page 13: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

R1

Alumno Asignatura Nota

Luis Física 5

Luis Filosofía 7

Carlos Física 6

Marta Física 5

Pepe Filosofía 4R2

Profesor Asignatura

Newton Física

Kant Filosofía

Einstein Física

ANOMALÍAS 13

Page 14: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

• Es evidente que esta descomposición nos resuelvealgunos problemas: se repite menos información; a unprofesor sólo se le puede asignar una asignatura(profesor es la clave primaria de R2); y podemos guardarinformación de la asignatura que imparte cada profesoraunque no tengamos alumnos matriculados.

• Pero nos aparece un problema nuevo: ya no sabemosqué profesor tiene cada alumno en una determinadaasignatura.

ANOMALÍAS 14

Page 15: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

• Este problema se conoce con el nombrede descomposición con pérdida de información,generalmente denominado como lossy-join. Cuandoesta situación no se da, y toda la información que existíapreviamente puede recuperarse después de ladescomposición, decimos que se cumple lapropiedad lossless-join o LJ.

• Al hacer la reunión ( join) de los subesquemas noobtenemos el esquema original. En nuestro ejemplo,para esta reunión la consulta apropiada sería:

sele t r1.alumno, r1.asignatura,

r2.profesor, r1.nota

from r1 inner join r2

on r1.asignatura = r2.asignatura

Y el resultado sería:

ANOMALÍAS 15

Page 16: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

R1.Alumno R1.Asignatura R2.Profesor R1.Nota

Luis Física Newton 5

Luis Física Einstein 5

Luis Filosofía Kant 7

Carlos Física Newton 6

Carlos Física Einstein 6

Marta Física Newton 5

Marta Física Einstein 5

Pepe Filosofía Kant 4

ANOMALÍAS 16

Page 17: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

• Aparecen tres filas más (en sombreado) que en la tablaR original. El problema radica en el hecho de que haymás de un profesor de Física, con lo que al reunir (realizarel producto natural) R1 y R2, a cada alumno de Física sele empareja con todos los profesores de Física, dandolugar a filas espurias que contienen informaciónincorrecta.

ANOMALÍAS 17

Page 18: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

Descomposición con la propiedad LJ

• Rea R un esquema de una relación y consideremos unadescomposición {R1, R2, . . . , Rn} (en el sentido de ladefinición 1).

• Sea r una instancia de la relación (los valores actualesdel conjunto de filas que contiene la tabla) conesquema R; definimos las instancias ri de Ri comori = πTi

(r). De esta forma, {R1, R2, . . . , Rn} es la base dedatos que resulta de descomponer R en susproyecciones sobre los conjuntos de atributos{T1, T2, . . . , Tn}.

ANOMALÍAS 18

Page 19: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

• Pues bien, puede demostrarse que siempre se da lasiguiente inclusión:

n⊲⊳i=1

ri ⊇ r (2)

es decir, las tuplas de la relación original siempre serecuperan realizando una reunión natural de lasproyecciones ri. Desgraciadamente, también puedenaparecer otras nuevas.

• Nuestro objetivo es realizar una descomposición en laque ambos conjuntos sean iguales, es decir, que cumplala propiedad LJ.

ANOMALÍAS 19

Page 20: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

• Decimos que una descomposición {R1, R2, . . . , Rn} de unesquema R es sin pérdidas (lossless) cuando se verifica laidentidad

n⊲⊳i=1

ri = r (3)

• Para conseguir esto en nuestro ejemplo, sería necesarioque al cruzar una fila de la tabla R1 sólo obtuviéramosuna fila de la tabla R2 que cumpliera la condición

R1.Asignatura = R2.Asignatura

o dicho de otra forma, que cada asignatura de la tablaR2 sólo apareciera una vez.

ANOMALÍAS 20

Page 21: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

• Esto hecho se conoce como:

Teorema 1. (Heath)

Dado un esquema R(T, L), la descomposición

R1(R), R2(R) es una descomposición sin pérdida

(propiedad LJ) si y sólo si alguna de las siguientes

dependencias funcionales se pueden deducir de L

(pertenecen a L+):

R1 ∩ R2 → R1 − R2

R1 ∩ R2 → R2 − R1

O lo que es lo mismo:

R1 ∩ R2 → R1

R1 ∩ R2 → R2

ANOMALÍAS 21

Page 22: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

• Estas dependencias funcionales nos vienen a decir quelos atributos comunes a las dos tablas funcionan comoclave (más exactamente, superclave) en alguna deellas.

• Aprovechando este formalismo, vamos a dejarenunciado el siguiente teorema sobre descomposicionescon la propiedad LJ:

Teorema 2. Sea el esquema R(T, L) y sea

ρ = {R1, R2, . . . , Rk} una descomposición de R con la

propiedad LJ respecto de L. Si τ = {S1, S2, . . . , Sk} es una

descomposición de Ri con la propiedad LJ respecto de

Li (proyección de L+ sobre Ti ), entonces

γ = {R1, R2, . . . , Ri − 1, S1, S2, . . . , Sk, Ri + 1, . . . , Er} es una

descomposición de R respecto L con la propiedad LJ.

ANOMALÍAS 22

Page 23: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

• Siguiendo con nuestro ejemplo, vemos que Asignatura esel atributo común a ambas tablas y no es clave enninguna de ellas. Por eso, la descomposición propuestaresultó ser con pérdidas.

• Otra descomposición alternativa que sí cumpliría lapropiedad LJ sería la siguiente:

ANOMALÍAS 23

Page 24: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

R1

Alumno Profesor Nota

Luis Newton 5

Luis Kant 7

Carlos Einstein 6

Marta Newton 5

Pepe Kant 4R2

Profesor Asignatura

Newton Física

Kant Filosofía

Einstein Física

ANOMALÍAS 24

Page 25: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

• La descomposición es sin pérdida, ya que Profesor, elatributo común, es clave en R2.

• En principio, nuestro problema parece resuelto, pero simiramos con atención aún pueden aparecer algunascomplicaciones.

• Si alguien, por error, introduce una nueva fila en la tablaR1 con los valores (“Luis”, “Einstein”, 4) (puede hacerloya que no se viola la unicidad de la clave primaria), nosencontraremos con el dilema de si Luis tiene aprobadala asignatura de Física o no, además de no saber si suprofesor es Newton o Einstein:

ANOMALÍAS 25

Page 26: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

R1

Alumno Profesor Nota

Luis Newton 5

Luis Kant 7

Carlos Einstein 6

Marta Newton 5

Pepe Kant 4

Luis Einstein 4R2

Profesor Asignatura

Newton Física

Kant Filosofía

Einstein Física

ANOMALÍAS 26

Page 27: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

• Lo que sucede en este caso es que no estamoscumpliendo las restricciones de que un alumno tiene unúnico profesor y una única nota en cada asignatura(Alumno Asignatura → ProfesorNota)

• No ocurre lo mismo con la dependenciaProfesor→Asignatura, que se exige al declarar Profesorcomo clave primaria en R2.

• Este nuevo problema se conoce como descomposicióncon pérdida de dependencias funcionales.

ANOMALÍAS 27

Page 28: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

Descomposición sin pérdida de dependencias

• Sea el esquema R(T, L), donde L son las dependenciasestipuladas para la relación R. Sea {R1, R2, . . . , Rk} ladescomposición de R con esquemas Ri(Ti, Li),construidos de modo que Li es la proyección de L+

sobre Ti, es decir

Li = (X → Y ) ∈ L+ | (X ∪ Y ) ⊆ Ti (4)

• Por tanto cada Li será el conjunto de restricciones queinvolucra atributos únicamente de Ri, es decir, aquellasdependencias funcionales que se pueden comprobarde forma independiente en Ri.

ANOMALÍAS 28

Page 29: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

• Ojo: Las dependencias que afectan a cada relación Ri

pueden no resultar necesariamente de la proyección delas dependencias originales sobre los atributos Ti de Ri.

• Por ejemplo, en una relación R(T, L) con T = {A, B, C} yL = {A → B, B → C} la proyección sobre R1(A, C) debesatisfacer la dependencia A → C, aunque ésta no seobtiene proyectando L sobre los atributos de R1

π(A,C)(L) = φ pero A → C ∈ L1 = π(A,C)(L+)

de forma que es preciso deducir todas las dependenciasque pueden afectar solamente a los atributos de R1

para conocer L1.

ANOMALÍAS 29

Page 30: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

• Consideremos el conjunto L′ = ∪Li, es decir, la reuniónde todas las dependencias impuestas a cadasubesquema Ri. En general L′ ⊆ L, pero puede darse elcaso de que una dependencia del conjunto L puedadeducirse de L′ aun no apareciendo explícitamenteen L′; es decir, se encuentre en (L′)+.

• Para que la descomposición siga imponiendo (a nivel detabla) las dependencias originales, será entoncespreciso que (L′)+ = L+. Si esto ocurre se dice que ladescomposición preserva las dependencias.

• Es decir, la descomposición preserva dependencias si alimponer las dependencias relativas a cada tabla de ladescomposición, todas las originales resultan impuestastambién, al poder deducirse de ellas.

ANOMALÍAS 30

Page 31: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

Observemos qué es lo que sucede en nuestro ejemplo.

Esquema de partida: R(T, L)

Atributos: T = {Alumno, Asignatura, Profesor, Nota}Dependencias: L = {Alumno Asignatura → Profesor,

Alumno Asignatura → Nota,Profesor → Asignatura,Alumno Profesor → Nota}

Descomposición: R1(T1, L1)

Atributos: T1 = {Alumno, Profesor, Nota}Dependencias: L1 = {Alumno Profesor → Nota}

R2(T2, L2)

Atributos: T2 = {Profesor, Asignatura}Dependencias: L2 = {Profesor→Asignatura}

En suma: L′ = {Alumno Profesor→Nota,Profesor→Asignatura}

ANOMALÍAS 31

Page 32: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

• Como vemos la dependenciaAlumno Asignatura→Profesor no aparece explícitamenteen L′; igual ocurre con Alumno Asignatura→Nota. Pero,además, tampoco se pueden deducir de dichoconjunto.

• Existe un mecanismo para comprobar si esto ocurre:cuando dudemos de si una restricción de laforma X → Y se exige o no, bastará con calcular elcierre X+ de X respecto al conjunto L′, y si Y apareceen dicho cierre, la dependencia se estará imponiendo.

• Aún más, hay un algoritmo que nos facilita este procesosin la necesidad de calcular cada Li, y es el que sepresenta a continuación.

ANOMALÍAS 32

Page 33: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

• El algoritmo se basa en la R-operación sobre el conjuntode atributos Z respecto de L como la sustitución de Z

por Z ∪ ((Z ∩ Ti)+ ∩ Ti).

Z ⇐ X

while Z cambie and not Y ∈ Z dofor i = 1 to K do {siendo K el número de subesquemas}

Z = Z ∪ ((Z ∩ Ti)+ ∩ Ti)

end forend whileif Y 6∈ Z then

Se pierde la dependencia X → Y

elseSe conserva la dependencia X → Y

end if

ANOMALÍAS 33

Page 34: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

• No siempre es posible encontrar una descomposiciónque no presente ninguno de los anteriores problemas.

• En general, el cumplir la propiedad LJ debe ser unaexigencia básica que debe satisfacer cualquierdescomposición, pero en el caso de descomposicionescon pérdidas habrá que analizar las ventajas einconvenientes de las posibles descomposiciones y delas implicaciones de su implementación en un sistemareal de gestión de bases de datos.

ANOMALÍAS 34

Page 35: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

ESTUDIO DE NORMALIZACIÓN

• Ahora vamos a centrarnos en el estudio de la calidad deun esquema R(T, L), lo que se conoce como estudio denormalización. Lo que se pretende es dar unaclasificación, de mayor a menor, de la posibilidad deencontrarnos con problemas a la hora de implementarun esquema (tabla), teniendo en cuenta las restriccionesque se deben cumplir impuestas como dependenciasfuncionales.

• La calidad estará en función de la forma normal quealcance el esquema. Definiremos 4 formas normales eneste orden: Primera Forma Normal (1FN), 2FN, 3FN yForma Normal de Boyce-Codd (FNBC).

ESTUDIO DE NORMALIZACIÓN 35

Page 36: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

Primera Forma Normal (1FN)

• Un esquema R(T, L) está en 1FN cuando todas suscolumnas (atributos de T ) son simples. Dicho de otraforma, cada columna de una tabla debe estar definidasobre un tipo simple de datos (entero, real, cadena, etc.)y no un tipo estructurado (registro, lista, matriz, etc.).

• Realmente, lo que se busca con esta forma normal esque cada atributo se trate como un valor atómico.

ESTUDIO DE NORMALIZACIÓN 36

Page 37: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

Segunda Forma Normal (2FN)

• Un esquema R(T, L) en 1FN está en 2FN cuando todossus atributos no principales (aquellos que no formanparte de ninguna clave candidata) tienen dependenciafuncional total (completa) respecto de cada una de lasclaves candidatas.

• En algunos textos se habla únicamente de la claveprimaria y no del resto de las claves candidatas. Para verque esto no es así vamos a utilizar nuestro ejemplo conuna pequeña modificación: vamos a incluir en T elatributo que nos diga el departamento al quepertenece el profesor.

ESTUDIO DE NORMALIZACIÓN 37

Page 38: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

Tomemos el siguiente esquema:

Esquema: R(T, L)

T = {Alumno, Asignatura, Profesor, Nota, Departamento }

L = {Alumno Asignatura → Profesor,Alumno Asignatura → Nota,Profesor → Asignatura,Profesor → Departamento}

• Tomemos como clave primaria (Alumno Asignatura), demanera que Departamento tiene una dependenciafuncional completa con respecto a ella.

• No ocurre lo mismo con la otra clave candidata (AlumnoProfesor) ya que Departamento tiene una dependenciaparcial de ella, porque sólo depende de Profesor.

ESTUDIO DE NORMALIZACIÓN 38

Page 39: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

• Es cierto que en este esquema se repiteredundantemente la información del Departamentosiempre que se repita un determinado profesor, y portanto no cumple la 2FN.

• Consecuentemente, un esquema en 1FN cuyas clavescandidatas están formadas por un solo atributo siempreestá en 2FN.

ESTUDIO DE NORMALIZACIÓN 39

Page 40: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

Tercera Forma Normal (3FN)

• Un esquema R(T, L) en 2FN está en 3FN cuando ningúnatributo no principal depende transitivamente deninguna clave.

• Entre X y Z existe una dependencia transitiva (X ։ Z) sise cumple que

X ∩ Z = φ

∃Y : X ∩ Y = φ, Y ∩ Z = φ

X → Y, Y 9 X y Y → Z

• Se dice que Z es una información sobre X, pero deforma indirecta, ya que realmente Z es una informaciónsobre Y , e Y sobre X.

ESTUDIO DE NORMALIZACIÓN 40

Page 41: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

• Aunque nuestro esquema no cumple la 2FN, este tipo detransitividad también se presenta:

Alumno Asignatura → ProfesorProfesor 9 Alumno AsignaturaProfesor → DepartamentoLuego: Alumno Asignatura ։ Departamento

• Esto sucede porque Departamento es una informaciónpropia del Profesor y no de la asignatura de un alumno.Por eso cada vez que se repite el profesor se repetirá laasignatura que imparte.

ESTUDIO DE NORMALIZACIÓN 41

Page 42: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

• Otra forma equivalente, aunque algo más sencilla, decomprobar si un esquema está en 3FN es la siguiente: unesquema estará en 3FN si para toda dependenciafuncional no trivial X → A ( es decir que A * X ) se cumplealguna de las siguientes condiciones:

1. X es una superclave de R

2. A está contenida en una clave candidata de R

• Aunque se habla de superclaves, si trabajamos con unconjunto de dependencias sin atributos extraños (porejemplo un recubrimiento no redundante) podemoshablar directamente de claves candidatas.

• En nuestro esquema R vemos que la dependenciaProfesor → Departamento no cumple ninguna de las doscondiciones.

ESTUDIO DE NORMALIZACIÓN 42

Page 43: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

Forma Normal de Boyce-Codd (FNBC)

• Un esquema R(T, L) en 1FN está en BCFN cuando paratoda dependencia funcional no trivial X → Y (es decir,Y * X , Y 6= φ), se tiene que X es clave o superclave.

• Vemos que ahora somos más restrictivos y exigimos quese cumpla únicamente la condición 1 para estar en 3FN.Por lo tanto es evidente que todo esquema que esté enFNBC también estará en 3FN.

ESTUDIO DE NORMALIZACIÓN 43

Page 44: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

• Para ver la diferencia entre FNBC y 3FN vamos a retomarnuestro esquema original:

R(T, L) : T = {Alumno, Asignatura, Profesor, Nota}

L = {Alumno Asignatura → Profesor,

Alumno Asignatura → Nota,

Profesor → Asignatura}

Claves Candidatas = {(Alumno Asignatura), (Alumno Profesor)}

• Ahora R sí que está en 3FN, pero porProfesor→Asignatura R no alcanza la FNBC.

ESTUDIO DE NORMALIZACIÓN 44

Page 45: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

• Hay un aspecto de la FNBC que la hace muy interesantea la hora de implementar la base de datos. Si todas lastablas están en FNBC, podemos hacer cumplir lasdependencias funcionales asociadas a cada tablamediante la restricción PRIMARY KEY (para la claveprimaria) y UNIQUE (para el resto de claves candidatas).Sin embargo en 3FN las dependencias del tipoProfesor→Asignatura suelen tener un costecomputacional elevado, como ya se mencionóanteriormente.

ESTUDIO DE NORMALIZACIÓN 45

Page 46: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

• Resumiendo, si un esquema (tabla) no alcanza unaforma normal satisfactoria, que reduzca la repetición deinformación, entonces podemos realizar unadescomposición de la misma.

• Esta descomposición debe cumplir la propiedad LJ; quesi es posible conserve dependencias; y que las tablasobtenidas alcancen una forma normal más adecuada.Esto no siempre es posible, y a veces lo que ganamospor un lado lo perdemos por otro.

ESTUDIO DE NORMALIZACIÓN 46

Page 47: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

Algoritmo de descomposición en FNBC con la Propiedad LJ

• Existe un algoritmo que nos asegura una descomposicióncon la propiedad LJ y que todas las tablas obtenidasalcanzan la FNBC.

• Partimos de R(T, L) donde L es un recubrimiento noredundante. Si existe una dependencia X →A tal que Xno sea clave (por tanto no está en FNBC), proyectamosR en R1 = (T1, L1) y R2 = (T2, L2), con

T1 = X ∪ {A} y

T2 = T − {A}

ESTUDIO DE NORMALIZACIÓN 47

Page 48: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

• Podemos ver una de las condiciones para que ladescomposición cumpla la propiedad LJ

T1 ∩ T2 → T1 − T2

siempre se cumple, ya que (T1 ∩ T2) es X y (T1 − T2) es A,y por tanto, se trata de la propia dependencia X → A. Esdecir, los atributos comunes (X) funcionan como clavepor lo menos en uno de los subesquemas (T2).

ESTUDIO DE NORMALIZACIÓN 48

Page 49: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

• L1 y L2 son las proyecciones de L+ (cierre del conjuntoL) sobre T1 y T2 respectivamente. Normalmente notenemos calculado L+, por tanto, debemos encontrartodas las posibles dependencias que impliquenúnicamente a atributos de cada esquema y despuésobtener su recubrimiento no redundante.

• Si alguno de los esquemas obtenidos no alcanza la FNBCvolveremos a descomponerlo hasta que todos losesquemas resultantes cumplan la FNBC.

ESTUDIO DE NORMALIZACIÓN 49

Page 50: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

• En la práctica cuando en los esquemas aparecendependencias de la forma

X → A1, X → A2 . . . X → An

donde X no es clave candidata, se genera:

T1 = {X, A1, A2 . . . An}

T2 = {T − {A1, A2 . . . An}}

• Al ir cumpliendo la propiedad LJ en cada paso, ladescomposición resultante también la cumple.

ESTUDIO DE NORMALIZACIÓN 50

Page 51: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

• Ejemplo

R(T, L) : T = {Alumno, Asignatura, Profesor, Nota, Dpto}

L = {Alumno Asignatura → Profesor Nota

Profesor → Asignatura Dpto}

Claves Candidatas = {(Alumno Asignatura), (Alumno Profesor)}

• Profesor → Asignatura rompe la FNBC, y la utilizamos paradescomponer, como también tenemos que con Profesor → Dpto:

R1(T1, L1) : T1 = {Alumno, Profesor, Nota}

L1 = {Alumno Profesor → Nota}

Clave Candidata = {(Alumno Profesor)}

R2(T2, L2) : T2 = {Profesor, Asignatura, Dpto}

L2 = {Profesor → Asignatura Dpto}

Clave Candidata = {(Profesor)}

ESTUDIO DE NORMALIZACIÓN 51

Page 52: Tema 5: Diseño de Bases de Datos - uniovi.esdi002.edv.uniovi.es/~fcano/bdatos/materiales/.../TranspaDisenio2010.pdf · Tema 5: Diseño de Bases de Datos Fernando Cano Espinosa Juan

• El resultado que hemos obtenido con todas las tablas enFNBC ya lo vimos anteriormente para mostrar que dichadescomposición no conservaba dependencias. Una vezmás el resultado no parece óptimo, la elección últimadependerá de otros factores de implementación que nose contemplan en esta teoría de diseño de bases dedatos.

ESTUDIO DE NORMALIZACIÓN 52