Download Normalización

Document related concepts
no text concepts found
Transcript
Normalización
Carlos A. Olarte
Bases de Datos I
Carlos A. Olarte Bases de Datos I
Normalización
Outline
1
Introducción
2
Dependencias Funcionales
3
Diseño de Bases de Datos
4
Forma Normal Boyce-Codd (FNBC)
5
3FN
6
Dependneicas Funcionales Multivaluadas
7
4FN
Carlos A. Olarte Bases de Datos I
Normalización
Introducción y Motivación
Por qué la normalización?
De dónde salen las formas normales?
Carlos A. Olarte Bases de Datos I
Normalización
Dependencias Funcionales
Sea r (R) una relación y k ⊆ R una clave de r entonces:
t1 6= t2 → t1 [k] 6= t2 [k]
Sea α ⊆ R y β ⊆ R. La Dep. Funcional
α→β
se cumple en R si para todo t1 , t2 :
t1 [α] = t2 [α] ⇒ t1 [β] = t2 [β]
k es una superclave de r si k → R
Carlos A. Olarte Bases de Datos I
Normalización
Ejemplo
Dado el esquema: R(Curso, Prof , Grupo, Horario) se cumplen
las siguientes D.F:
{curso, grupo} → profesor
{curso, grupo} → horario
Y no se cumple que:
{curso} → horario
Carlos A. Olarte Bases de Datos I
Normalización
Dependencias Triviales
Son aquellas que satisfacen todas las relaciones. Por ejemplo
A → A o AB → A
De forma general:
α → β es trivial si β ⊆ α
Carlos A. Olarte Bases de Datos I
Normalización
Conceptos
Relación que satisface una dependencia: Es una relación en la
cual se cumple la D.F
Dependencia que se cumple en un esquema: Es el conjunto de
dependencias que están obligadas a cumplir un esquema
Carlos A. Olarte Bases de Datos I
Normalización
Ejemplo
En la relación Horario:
Aud
A5
A5
A5
Curso
CC080
TE100
XY100
Fac
Ing
Ing
Ing
Car
Sys
Elec
Ind
Dı́a
Mar
Mie
Jue
Hora
7
7
7
Se satisface la dependencia Auditorio → Facultad y
Facultad → hora pero no es deseable que el esquema horario las
cumpla.
Carlos A. Olarte Bases de Datos I
Normalización
Continuación
Por lo anterior, el diseño de la base de datos debe formularse en
términos de las dependencias funcionales que debe cumplir el
esquema. Por ejemplo:
Curso → {Aud, Dia, Hora}
Curso → Facultad
Carrera → Facultad
Carlos A. Olarte Bases de Datos I
Normalización
Cierre de un conjunto de D.F
Dado un conjunto F de D.F, se puede definir una serie de D.F que
son implicaciones lógicas de F .
El conjunto F + (conjunto cierre), es el conjunto de todas las D.F
implicadas lógicamente de F .
Carlos A. Olarte Bases de Datos I
Normalización
Cálculo de F +
Se calcula a partir de las reglas de Armstrong que son correctas y
completas:
Reflexividad: Si β ⊆ α ⇒ α → β
Aumentatividad: Si α → β ⇒ αγ → βγ
Transitividad: Si α → β ∧ β → γ ⇒ α → γ
De las anteriores reglas se deducen las siguientes:
Unión: Si α → β ∧ α → γ ⇒ α → βγ
Descomposición: Si α → βγ ⇒ α → β ∧ α → γ
Pseudo Transitividad: Si α → β ∧ γβ → ϕ ⇒ αγ → ϕ
Carlos A. Olarte Bases de Datos I
Normalización
Cierre de un conjunto de atributos
Se define el CCA α dado un conjunto de D.F F (α+ ), al conjunto
de todos los atributos determinados funcionalmente a partir de α.
Si k es un superclave, α+ ≡ R
Carlos A. Olarte Bases de Datos I
Normalización
Cálculo de α+
resultado := α;
while(hay cambios)
for each β → γ in F do
if β ⊆ resultado then
resultado := resultado ∪ γ;
end;
end;
Carlos A. Olarte Bases de Datos I
Normalización
Recubrimiento Canónico
Es reducir el conjunto de D.F sin modificar el cierre del mismo
para facilitar el chequeo de las tuplas.
Definición: Un atributo de una D.F es raro si se puede
eliminar sin alterar F +
Formalmente: A es raro para α si A ∈ α y F implica
lógicamente (F − {α → β}) ∪ {(α − A) → β}
Carlos A. Olarte Bases de Datos I
Normalización
Continuación
Por otro lado, A es raro para β si A ∈ β y el conjunto de D.F:
(F − {α → β}) ∪ {α → (β − A)} implica lógicamente a F
El recubrimiento canónico Fc es un conjunto de D.F tales que
F implica Fc y Fc implica F . Además:
Ninguna D.F de Fc tiene atributos raros
Cada lado izquierdo de las D.F es único
Carlos A. Olarte Bases de Datos I
Normalización
Cálculo del Fc
repeat
utilizar la union para transformar α → βi y α → βj en α → βi βj
encontrar atrib raros en α → β
en α o en β y eliminarlos
until F no cambie
F y Fc tienen el mismo cierre
Carlos A. Olarte Bases de Datos I
Normalización
Ejemplo
Calcular Fc de:
A → BC
B→C
A→B
AB → C
Carlos A. Olarte Bases de Datos I
Normalización
Diseño de BD (Formas Normales)
El problema de la normalización:
Curso
CC080
CC080
CC100
CC100
CC100
Prof
COLARTE
COLARTE
COLARTE
COLARTE
COLARTE
CAlumno
4096
1232
2546
1232
3256
Carlos A. Olarte Bases de Datos I
NAlumno
ABC
XYZ
MNA
XYZ
BBD
Normalización
Nota
4.5
4.1
4.2
3.5
4.5
Errores en el diseño anterior
Hay información duplicada (gasto de espacio)
Actualizar el profesor de un curso es muy complicado (en
términos de eficiencia)
Cómo saber el profesor de un curso si hay dos registros del
mismo curso con profesor diferente?
Cómo saber el profesor de un curso si no hay ningún
estudiante matriculado?
Carlos A. Olarte Bases de Datos I
Normalización
Diseño de BD
Solución: Descomposición. Dicha descomposición debe
asegurar que no se pierda información y que el nuevo esquema
se encuentre en una Forma Normal
Descomposición: Un conjunto de esquemas {r 1..rn} es una
descomposición de r si R = R1 ∪ ... ∪ Rn
Carlos A. Olarte Bases de Datos I
Normalización
Algunos Conceptos
Superclave: Conjunto de atributos que en conjunto permiten
identificar una tupla
Clave Candidata: Subconjunto propio de la superclave que
sirven para identificar una tupla
Clave Primaria: Clave candidata elegida por el diseñador
Carlos A. Olarte Bases de Datos I
Normalización
Continuación
Descomposición de reunión sin pérdida: Sea C un conjunto de
ligaduras de Integridad. Una descomposición {R1..Rn} es una
descomposición de reunión sin pérdida si para todas las
relaciones r que son legales bajo C se cumple que:
r = πR1 (r ) ./ πR2 (r )... ./ πRn (r )
Carlos A. Olarte Bases de Datos I
Normalización
Continuación
De otra forma: Sea F un conjunto de D.F y R1 y R2 una
descomposición de R. La descomposición es sin pérdida, si al
menos una de las siguientes dependencias está en F + :
R1 ∩ R2 → R1
R1 ∩ R2 → R2
Carlos A. Olarte Bases de Datos I
Normalización
Conservación de las dependencias
En un diseño de bases de datos, se deben mantener las D.F iniciales
(en la medida de lo posible) , ası́ se descompongan las relaciones.
Carlos A. Olarte Bases de Datos I
Normalización
FNBC
Una esquema de relación R está en FNBC respecto a un conjunto
de D.F F si:
1
α → β es trivial
2
α es una superclave
Un diseño de B.D esta en FNBC si todas las relaciones del
esquema están en FNBC
Carlos A. Olarte Bases de Datos I
Normalización
Alg para la descomposición en FNBC
Resultado, hecho := {R}, false
Calcular F +
while(!Hecho)
if (hay un esq Ri de Result que no este en FNBC )
sea α → βno trivial que se cumple en Ri
de modo que α → Ri no este en F +
y α∩β =
Resultado :=
(resultado − Ri ) ∪ (Ri − β) ∪ (α, β)
end
end
Carlos A. Olarte Bases de Datos I
Normalización
Ejemplo
Sea r (Curso, Profesor , Creditos, Alumno, Grupo, Nota y las D.F:
curso → profesor , credito
alumno, curso, grupo → nota
La descomposición en FNBC serı́a: E 1(curso, prof , credito) y
E 2(curso, alumno, grupo, nota)
Carlos A. Olarte Bases de Datos I
Normalización
Ej. Pérdida de Dep
Sea R = {Sucur , Client, Banq} que indica que el cliente tiene un
banquero personal. Se exige que:
banquero → sucursal
sucursal, cliente → banquero
Aplicando el algoritmo se obtiene R1 = {Ban, Suc} y
R2 = {Cli, Ban} dónde se pierde la 2da D.F.
Carlos A. Olarte Bases de Datos I
Normalización
Criterios de diseño
Se debe lograr:
FNBC
Reunión sin Pérdida
Conservación de las Dependencias
Como no siempre se puede lograr se opta por:
3FN
Reunión sin Pérdida
Conservación de las Dependencias
Carlos A. Olarte Bases de Datos I
Normalización
3FN
Es una forma normal más débil que la FNBC . Se dice que R está
en 3FN con respecto al conjunto F de D.F si se cumple al menos
una de las siguientes condiciones:
1
α → β es trivial
2
α es una superclave
3
Cada atributo A en β − α está contenido en alguna clave
candidata de R ( dependencias transitivas)
Carlos A. Olarte Bases de Datos I
Normalización
3FN
Toda Relación en FNBC está en 3FN
En el ejemplo del banquero, la relación se encuentra en 3FN
puesto que una clave candidata puede ser {Suc, Cli} y
{Suc} − {ban} = {Suc} está contenido en una clave candidata. Y
para la 2da D.F, α es una superclave.
Carlos A. Olarte Bases de Datos I
Normalización
Algoritmo para Dec en 3FN
Calcular Fc
i := 0;
for each D.F α → β de Fc do
if ninguno Rj , j = 1..i contiene αβ
i + +; Ri := αβ
if ninguno Rj , j = 1..i contiene una clave
candidata de R
i + +;
Ri := Cualquier clave candidata de R
return(R1 ..Ri )
Carlos A. Olarte Bases de Datos I
Normalización
Ejemplo
Sea InfoBank = {suc, cli, banq, oficina} y las D.F
ban → {suc, ofic} y {cli, suc} → banq
En el ciclo del for se descompone en las siguientes relaciones:
ofic(banq, suc, ofic) y clien(cli, suc, banq)
Carlos A. Olarte Bases de Datos I
Normalización
FNBC vs. 3FN
La FNBC puede sacrificar dependencias, la 3FN no
Ambas aseguran reunión sin pérdida
En la 3FN puede duplicarse información (en el ejemplo
anterior, la información de dónde trabaja el banquero X está
duplicada)
Carlos A. Olarte Bases de Datos I
Normalización
Dependencias Multivaluadas
Se representa por
α →→ β
dónde: Si t1 [α] = t2 [α], ∃t3 , t4 tal que:
t1 [α] = t2 [α] = t3 [α] = t4 [α]
t3 [β] = t1 [β]
t3 [R − β] = t2 [R − β]
t4 [β] = t2 [β]
t1 [R − β] = t4 [R − β]
Carlos A. Olarte Bases de Datos I
Normalización
Dependencias Multivaluadas
Informalmente: La relación entre α y β es independiente a la
relación entre α y R − β. Por ejemplo, si un cliente puede tener
múltiples direcciones, puede escribirse:
cc cliente →→ direccion
α →→ β es trivial si β ⊆ α o si β ∪ α = R
Carlos A. Olarte Bases de Datos I
Normalización
4FN
Un esquema de relación R está en 4FN respecto a un conjunto D
de D.F.M si para toda D.F.M en D + cumple:
1
α →→ β es trivial
2
α es una superclave
Carlos A. Olarte Bases de Datos I
Normalización
Algoritmo
Resultado := {R}
Hecho := false;
CalcularD +
while(!Hecho)
if (hay un Ri que no este en4FN)
sea α →→ β no trivial
que cumple Ri de modo queα → Ri
no estaenD + y α ∩ β = Resultado := (Res − Ri ) ∪ (Ri − β) ∪ (α, β)
end;
end;
Carlos A. Olarte Bases de Datos I
Normalización
Ejemplo
Sea Libros(ISBN, Titulo, Materia, Autor , Fecha y las D.F:
ISBN → Titulo, Fecha
ISBN →→ Autor
ISBN →→ Materia
La descomposición en 4FN serı́a:
(ISBN, Titulo, Fecha), (ISBN, Materia)
(ISBN, Autor )
Carlos A. Olarte Bases de Datos I
Normalización
2FN
Solo reconocimiento histórico. Se dice que R está en 2FN si todo
atributo A pertenece a una clave candidata y A no depende
parcialmente de ninguna clave candidata.
Carlos A. Olarte Bases de Datos I
Normalización
1FN
Todos los atributos de una relación deben ser monovaluados
(inherente al modelo relacional)
Carlos A. Olarte Bases de Datos I
Normalización