Está en la página 1de 52

Tema 5: Diseño de Bases de Datos

Fernando Cano Espinosa


Juan David González Cobas
Universidad de Oviedo. Departamento de Informática
f anouniovi.es , obasuniovi.es

Curso 2009-2010

Produced with LATEX seminar style & PSTricks 1


C ONTENIDO
1. Introducción: un pequeño ejemplo

2. Anomalías

3. Descomposiciones

4. Normalización

C ONTENIDO 2
I NTRODUCCIÓN
Vamos a proponer un ejemplo que consiste en una base de
datos que contendrá información sobre alumnos,
asignaturas, notas y profesores. Las restricciones de las que
partimos son las siguientes:

• Un alumno sólo tiene asignado un profesor por


asignatura

• Un alumno obtiene una única nota por asignatura

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

I NTRODUCCIÓN 3
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 de


atributos y L el conjunto de restricciones expresadas como
dependencias funcionales.

I NTRODUCCIÓN 4
R(T, L) : T = {Alumno, Asignatura, Profesor, Nota}
L= {Alumno Asignatura → Profesor,
Alumno Asignatura → Nota,
Profesor → Asignatura}

Los pares (Alumno,Asignatura) y (Alumno, Profesor) son


claves candidatas.

Alumno Profesor → Asignatura ∈ L+


Alumno Profesor → Nota ∈ L+

I NTRODUCCIÓN 5
A NOMALÍAS
• Repetición de Información. El problema fundamental de
la repetición de información no es el desperdicio de
espacio sino otros problemas derivados del
mantenimiento de información repetida, que
enumeramos a continuación.

• Anomalías en la inserción y en la actualización. Al


insertar una fila nueva (en SQL, INSERT) o actualizar una
ya existente (en SQL, UPDATE), tendremos que
comprobar que la información que introducimos es
consistente. Por ejemplo, comprobar la restricción
Profesor→Asignatura.

A NOMALÍAS 6
• Anomalías en el borrado El problema que se nos
presenta aquí no es un problema de inconsistencia, sino
de pérdida de información.

• Representación de Información. Este problema está


íntimamente ligado al anterior y se basa en que nuestro
esquema no nos permite guardar algunos hechos.

A NOMALÍAS 7
• Imposición de las restricciones. Imponer la restricción de
que un alumno sólo tiene un profesor por asignatura
resulta tan sencillo como el declarar (Alumno,
Asignatura) como clave primaria. Sin embargo,
garantizar el cumplimiento de las DFs cuya parte
izquierda no es clave candidata no es así de sencillo.
Por ejemplo, comprobar la dependencia
Profesor→Asignatura requeriría establecer en SQL un
check 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));

A NOMALÍAS 8
– Otra solución podría ser evitar que se inserten o
actualicen tuplas que contradigan la restricción
mediante triggers.
– En cualquier caso, nos vemos obligados a agregar más
código, lo que es posiblemente innecesario y ralentiza la
ejecución de nuestras modificaciones a la base de datos.

A NOMALÍAS 9
• Ante este tipo de anomalías, una solución consiste en
descomponer nuestro esquema original en varios
subesquemas de forma que dichas anomalías se eviten.

• Este proceso se conoce como normalización.

• No siempre es posible encontrar una descomposición


que elimine todas las posibles anomalías. En algunos
casos, la normalización resuelve ciertos problemas, pero
introduce otros.

A NOMALÍAS 10
Descomposiciones

• Sea R un esquema de relación. Un


conjunto {R1 , R2 , . . . , Rn } de esquemas de relación es
una descomposición de R si

[
n
Ri = R (1)
i=1

• En la práctica, cuando descomponemos un esquema


en un conjunto de subesquemas, incluimos en éstos
atributos comunes. El objetivo de esto es poder
recuperar posteriormente la información que se ha
guardado en distintas tablas a través de operaciones de
join.

A NOMALÍAS 11
• Vamos a ver cómo una descomposición puede resolver
algunos de los problemas mencionados en la sección
anterior.

• La propuesta es dividir nuestro esquema R(T, L) en dos


subesquemas R1 (T1 , L1 ) y R2 (T2 , L2 ).

A NOMALÍAS 12
R1

Alumno Asignatura Nota


Luis Física 5
Luis Filosofía 7
Carlos Física 6
Marta Física 5
Pepe Filosofía 4
R2

Profesor Asignatura
Newton Física
Kant Filosofía
Einstein Física

A NOMALÍAS 13
• Es evidente que esta descomposición nos resuelve
algunos problemas: se repite menos información; a un
profesor sólo se le puede asignar una asignatura
(profesor es la clave primaria de R2 ); y podemos guardar
información de la asignatura que imparte cada profesor
aunque no tengamos alumnos matriculados.

• Pero nos aparece un problema nuevo: ya no sabemos


qué profesor tiene cada alumno en una determinada
asignatura.

A NOMALÍAS 14
• Este problema se conoce con el nombre
de descomposición con pérdida de información,
generalmente denominado como lossy-join. Cuando
esta situación no se da, y toda la información que existía
previamente puede recuperarse después de la
descomposición, decimos que se cumple la
propiedad lossless-join o LJ.

• Al hacer la reunión ( join) de los subesquemas no


obtenemos 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:

A NOMALÍAS 15
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

A NOMALÍAS 16
• Aparecen tres filas más (en sombreado) que en la tabla
R original. El problema radica en el hecho de que hay
más de un profesor de Física, con lo que al reunir (realizar
el producto natural) R1 y R2 , a cada alumno de Física se
le empareja con todos los profesores de Física, dando
lugar a filas espurias que contienen información
incorrecta.

A NOMALÍAS 17
Descomposición con la propiedad LJ

• Rea R un esquema de una relación y consideremos una


descomposición {R1 , R2 , . . . , Rn } (en el sentido de la
definición 1).

• Sea r una instancia de la relación (los valores actuales


del conjunto de filas que contiene la tabla) con
esquema R; definimos las instancias ri de Ri como
ri = πTi (r). De esta forma, {R1 , R2 , . . . , Rn } es la base de
datos que resulta de descomponer R en sus
proyecciones sobre los conjuntos de atributos
{T1 , T2 , . . . , Tn }.

A NOMALÍAS 18
• Pues bien, puede demostrarse que siempre se da la
siguiente inclusión:
n
⊲⊳ ri ⊇ r (2)
i=1

es decir, las tuplas de la relación original siempre se


recuperan realizando una reunión natural de las
proyecciones ri . Desgraciadamente, también pueden
aparecer otras nuevas.

• Nuestro objetivo es realizar una descomposición en la


que ambos conjuntos sean iguales, es decir, que cumpla
la propiedad LJ.

A NOMALÍAS 19
• Decimos que una descomposición {R1 , R2 , . . . , Rn } de un
esquema R es sin pérdidas (lossless) cuando se verifica la
identidad
n
⊲⊳ ri = r (3)
i=1

• Para conseguir esto en nuestro ejemplo, sería necesario


que al cruzar una fila de la tabla R1 sólo obtuviéramos
una fila de la tabla R2 que cumpliera la condición

R1 .Asignatura = R2 .Asignatura

o dicho de otra forma, que cada asignatura de la tabla


R2 sólo apareciera una vez.

A NOMALÍAS 20
• 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

A NOMALÍAS 21
• Estas dependencias funcionales nos vienen a decir que
los atributos comunes a las dos tablas funcionan como
clave (más exactamente, superclave) en alguna de
ellas.

• Aprovechando este formalismo, vamos a dejar


enunciado el siguiente teorema sobre descomposiciones
con 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.

A NOMALÍAS 22
• Siguiendo con nuestro ejemplo, vemos que Asignatura es
el atributo común a ambas tablas y no es clave en
ninguna de ellas. Por eso, la descomposición propuesta
resultó ser con pérdidas.

• Otra descomposición alternativa que sí cumpliría la


propiedad LJ sería la siguiente:

A NOMALÍAS 23
R1
Alumno Profesor Nota
Luis Newton 5
Luis Kant 7
Carlos Einstein 6
Marta Newton 5
Pepe Kant 4
R2
Profesor Asignatura
Newton Física
Kant Filosofía
Einstein Física

A NOMALÍAS 24
• La descomposición es sin pérdida, ya que Profesor, el
atributo común, es clave en R2 .

• En principio, nuestro problema parece resuelto, pero si


miramos con atención aún pueden aparecer algunas
complicaciones.

• Si alguien, por error, introduce una nueva fila en la tabla


R1 con los valores (“Luis”, “Einstein”, 4) (puede hacerlo
ya que no se viola la unicidad de la clave primaria), nos
encontraremos con el dilema de si Luis tiene aprobada
la asignatura de Física o no, además de no saber si su
profesor es Newton o Einstein:

A NOMALÍAS 25
R1
Alumno Profesor Nota
Luis Newton 5
Luis Kant 7
Carlos Einstein 6
Marta Newton 5
Pepe Kant 4
Luis Einstein 4
R2
Profesor Asignatura
Newton Física
Kant Filosofía
Einstein Física

A NOMALÍAS 26
• Lo que sucede en este caso es que no estamos
cumpliendo las restricciones de que un alumno tiene un
único profesor y una única nota en cada asignatura
(Alumno Asignatura → P rof esorN ota)

• No ocurre lo mismo con la dependencia


Profesor→Asignatura, que se exige al declarar Profesor
como clave primaria en R2 .

• Este nuevo problema se conoce como descomposición


con pérdida de dependencias funcionales.

A NOMALÍAS 27
Descomposición sin pérdida de dependencias

• Sea el esquema R(T, L), donde L son las dependencias


estipuladas para la relación R. Sea {R1 , R2 , . . . , Rk } la
descomposició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 que


involucra atributos únicamente de Ri , es decir, aquellas
dependencias funcionales que se pueden comprobar
de forma independiente en Ri .

A NOMALÍAS 28
• Ojo: Las dependencias que afectan a cada relación Ri
pueden no resultar necesariamente de la proyección de
las dependencias originales sobre los atributos Ti de Ri .

• Por ejemplo, en una relación R(T, L) con T = {A, B, C} y


L = {A → B, B → C} la proyección sobre R1 (A, C) debe
satisfacer la dependencia A → C, aunque ésta no se
obtiene 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 dependencias


que pueden afectar solamente a los atributos de R1
para conocer L1 .

A NOMALÍAS 29
• Consideremos el conjunto L′ = ∪Li , es decir, la reunión
de todas las dependencias impuestas a cada
subesquema Ri . En general L′ ⊆ L, pero puede darse el
caso de que una dependencia del conjunto L pueda
deducirse de L′ aun no apareciendo explícitamente
en L′ ; es decir, se encuentre en (L′ )+ .

• Para que la descomposición siga imponiendo (a nivel de


tabla) las dependencias originales, será entonces
preciso que (L′ )+ = L+ . Si esto ocurre se dice que la
descomposición preserva las dependencias.

• Es decir, la descomposición preserva dependencias si al


imponer las dependencias relativas a cada tabla de la
descomposición, todas las originales resultan impuestas
también, al poder deducirse de ellas.

A NOMALÍAS 30
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}

A NOMALÍAS 31
• Como vemos la dependencia
Alumno Asignatura→Profesor no aparece explícitamente
en L′ ; igual ocurre con Alumno Asignatura→Nota. Pero,
además, tampoco se pueden deducir de dicho
conjunto.

• Existe un mecanismo para comprobar si esto ocurre:


cuando dudemos de si una restricción de la
forma X → Y se exige o no, bastará con calcular el
cierre X + de X respecto al conjunto L′ , y si Y aparece
en dicho cierre, la dependencia se estará imponiendo.

• Aún más, hay un algoritmo que nos facilita este proceso


sin la necesidad de calcular cada Li , y es el que se
presenta a continuación.

A NOMALÍAS 32
• El algoritmo se basa en la R-operación sobre el conjunto
de 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 do
for i = 1 to K do {siendo K el número de subesquemas}
Z = Z ∪ ((Z ∩ Ti )+ ∩ Ti )
end for
end while
if Y 6∈ Z then
Se pierde la dependencia X → Y
else
Se conserva la dependencia X → Y
end if

A NOMALÍAS 33
• No siempre es posible encontrar una descomposición
que no presente ninguno de los anteriores problemas.

• En general, el cumplir la propiedad LJ debe ser una


exigencia básica que debe satisfacer cualquier
descomposición, pero en el caso de descomposiciones
con pérdidas habrá que analizar las ventajas e
inconvenientes de las posibles descomposiciones y de
las implicaciones de su implementación en un sistema
real de gestión de bases de datos.

A NOMALÍAS 34
E STUDIO DE N ORMALIZACIÓN
• Ahora vamos a centrarnos en el estudio de la calidad de
un esquema R(T, L), lo que se conoce como estudio de
normalización. Lo que se pretende es dar una
clasificación, de mayor a menor, de la posibilidad de
encontrarnos con problemas a la hora de implementar
un esquema (tabla), teniendo en cuenta las restricciones
que se deben cumplir impuestas como dependencias
funcionales.

• La calidad estará en función de la forma normal que


alcance el esquema. Definiremos 4 formas normales en
este orden: Primera Forma Normal (1FN), 2FN, 3FN y
Forma Normal de Boyce-Codd (FNBC).

E STUDIO DE N ORMALIZACIÓN 35
Primera Forma Normal (1FN)

• Un esquema R(T, L) está en 1FN cuando todas sus


columnas (atributos de T ) son simples. Dicho de otra
forma, cada columna de una tabla debe estar definida
sobre 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 es


que cada atributo se trate como un valor atómico.

E STUDIO DE N ORMALIZACIÓN 36
Segunda Forma Normal (2FN)

• Un esquema R(T, L) en 1FN está en 2FN cuando todos


sus atributos no principales (aquellos que no forman
parte de ninguna clave candidata) tienen dependencia
funcional total (completa) respecto de cada una de las
claves candidatas.

• En algunos textos se habla únicamente de la clave


primaria y no del resto de las claves candidatas. Para ver
que esto no es así vamos a utilizar nuestro ejemplo con
una pequeña modificación: vamos a incluir en T el
atributo que nos diga el departamento al que
pertenece el profesor.

E STUDIO DE N ORMALIZACIÓN 37
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), de


manera que Departamento tiene una dependencia
funcional completa con respecto a ella.

• No ocurre lo mismo con la otra clave candidata (Alumno


Profesor) ya que Departamento tiene una dependencia
parcial de ella, porque sólo depende de Profesor.

E STUDIO DE N ORMALIZACIÓN 38
• Es cierto que en este esquema se repite
redundantemente la información del Departamento
siempre que se repita un determinado profesor, y por
tanto no cumple la 2FN.

• Consecuentemente, un esquema en 1FN cuyas claves


candidatas están formadas por un solo atributo siempre
está en 2FN.

E STUDIO DE N ORMALIZACIÓN 39
Tercera Forma Normal (3FN)

• Un esquema R(T, L) en 2FN está en 3FN cuando ningún


atributo no principal depende transitivamente de
ninguna clave.

• Entre X y Z existe una dependencia transitiva (X ։ Z) si


se 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 de


forma indirecta, ya que realmente Z es una información
sobre Y , e Y sobre X.

E STUDIO DE N ORMALIZACIÓN 40
• Aunque nuestro esquema no cumple la 2FN, este tipo de
transitividad también se presenta:

Alumno Asignatura → Profesor


Profesor 9 Alumno Asignatura
Profesor → Departamento
Luego: Alumno Asignatura ։ Departamento

• Esto sucede porque Departamento es una información


propia del Profesor y no de la asignatura de un alumno.
Por eso cada vez que se repite el profesor se repetirá la
asignatura que imparte.

E STUDIO DE N ORMALIZACIÓN 41
• Otra forma equivalente, aunque algo más sencilla, de
comprobar si un esquema está en 3FN es la siguiente: un
esquema estará en 3FN si para toda dependencia
funcional no trivial X → A ( es decir que A * X ) se cumple
alguna 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 un


conjunto de dependencias sin atributos extraños (por
ejemplo un recubrimiento no redundante) podemos
hablar directamente de claves candidatas.

• En nuestro esquema R vemos que la dependencia


Profesor → Departamento no cumple ninguna de las dos
condiciones.

E STUDIO DE N ORMALIZACIÓN 42
Forma Normal de Boyce-Codd (FNBC)

• Un esquema R(T, L) en 1FN está en BCFN cuando para


toda 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 que


se cumpla únicamente la condición 1 para estar en 3FN.
Por lo tanto es evidente que todo esquema que esté en
FNBC también estará en 3FN.

E STUDIO DE N ORMALIZACIÓN 43
• Para ver la diferencia entre FNBC y 3FN vamos a retomar
nuestro 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 por


Profesor→Asignatura R no alcanza la FNBC.

E STUDIO DE N ORMALIZACIÓN 44
• Hay un aspecto de la FNBC que la hace muy interesante
a la hora de implementar la base de datos. Si todas las
tablas están en FNBC, podemos hacer cumplir las
dependencias funcionales asociadas a cada tabla
mediante la restricción PRIMARY KEY (para la clave
primaria) y UNIQUE (para el resto de claves candidatas).
Sin embargo en 3FN las dependencias del tipo
Profesor→Asignatura suelen tener un coste
computacional elevado, como ya se mencionó
anteriormente.

E STUDIO DE N ORMALIZACIÓN 45
• Resumiendo, si un esquema (tabla) no alcanza una
forma normal satisfactoria, que reduzca la repetición de
información, entonces podemos realizar una
descomposición de la misma.

• Esta descomposición debe cumplir la propiedad LJ; que


si es posible conserve dependencias; y que las tablas
obtenidas alcancen una forma normal más adecuada.
Esto no siempre es posible, y a veces lo que ganamos
por un lado lo perdemos por otro.

E STUDIO DE N ORMALIZACIÓN 46
Algoritmo de descomposición en FNBC con la Propiedad LJ

• Existe un algoritmo que nos asegura una descomposición


con la propiedad LJ y que todas las tablas obtenidas
alcanzan la FNBC.

• Partimos de R(T, L) donde L es un recubrimiento no


redundante. Si existe una dependencia X →A tal que X
no sea clave (por tanto no está en FNBC), proyectamos
R en R1 = (T1 , L1 ) y R2 = (T2 , L2 ), con

T1 = X ∪ {A} y
T2 = T − {A}

E STUDIO DE N ORMALIZACIÓN 47
• Podemos ver una de las condiciones para que la
descomposició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. Es
decir, los atributos comunes (X) funcionan como clave
por lo menos en uno de los subesquemas (T2 ).

E STUDIO DE N ORMALIZACIÓN 48
• L1 y L2 son las proyecciones de L+ (cierre del conjunto
L) sobre T1 y T2 respectivamente. Normalmente no
tenemos calculado L+ , por tanto, debemos encontrar
todas las posibles dependencias que impliquen
únicamente a atributos de cada esquema y después
obtener su recubrimiento no redundante.

• Si alguno de los esquemas obtenidos no alcanza la FNBC


volveremos a descomponerlo hasta que todos los
esquemas resultantes cumplan la FNBC.

E STUDIO DE N ORMALIZACIÓN 49
• En la práctica cuando en los esquemas aparecen
dependencias 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, la


descomposición resultante también la cumple.

E STUDIO DE N ORMALIZACIÓN 50
• 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 para


descomponer, 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)}

E STUDIO DE N ORMALIZACIÓN 51
• El resultado que hemos obtenido con todas las tablas en
FNBC ya lo vimos anteriormente para mostrar que dicha
descomposición no conservaba dependencias. Una vez
más el resultado no parece óptimo, la elección última
dependerá de otros factores de implementación que no
se contemplan en esta teoría de diseño de bases de
datos.

E STUDIO DE N ORMALIZACIÓN 52

También podría gustarte