Beruflich Dokumente
Kultur Dokumente
● Información duplicada
● Actualizar el nombre de un jefe es complicado
● Como saber en que ciudad está un departamento, si aún
no tiene empleados?
● 'Juan Carlos Melo' = 'Juan C. Melo'?...
Problemas que se pueden presentar en un
esquema relacional
● Redundancia de datos
● Ambigüedad
● Anomalías de inserción, modificación y
borrado de datos
Normalización
● Se denota X → Y
● X se denomina determinante o implicante
● Y son los atributos implicados
Dependencias Funcionales - Ejemplo
ProgramaAcademico(codProg, registroIcfes, nombre,
noCreditos, codDirector, nombreDirector)
Dependencias funcionales:
codProg → registroIcfes nombre noCreditos
codDirector NombreDirector
registroIcfes → CodProg nombre noCreditos
codDirector NombreDirector
codDirector → nombreDirector
Dependencias Funcionales - Ejercicio
Encontrar las dependencias funcionales en:
Escribe(autor, pais, ISBN, titulo, editorial)
Ejemplo:
A→A
AB → A
AB → B
α → β es trivial si β α
Normalización
Primera Forma Normal
Una relación R está en la primera forma normal
(1FN) si los dominios de todos los atributos de R
son atómicos
1FN
Normalización
Segunda Forma Normal
Eliminar dependencias
parciales
Descomposición
● Para cumplir con las formas normales puede
ser necesario descomponer una relación en
varias relaciones
Eliminar dependencias
transitivas
Normalización
Forma Normal de Boyce-Codd
Vendedor(cedula,nombre,producto,cliente)
- Un vendedor vende varios productos a varios
clientes
Cierre de un Conjunto de Dependencias
Funcionales
● Dado un conjunto F de dependencias funcionales se
puede probar que se cumplen otras dependencias que
están implicadas lógicamente por F
Ejemplo: Dado R = (A B C G H I) y
A→ B A→ C
CG → H CG → I B→H
La dependencia funcional A→H está implicada
lógicamente:
Si t1 y t2 son dos tuplas tales que t1[A] = t2[A]
Como A → B, entonces t1[B] = t2[B],
Como B → H, entonces t1[H] = t2[H],
Por lo tanto, siempre que t1[A] = t2[A] se cumple
que t1[H] = t2[H], lo cual es la definición de A → H
Cierre de un Conjunto de
Dependencias Funcionales
El Cierre de un Conjunto de Dependencias
Funcionales F, denotado por F+, es el conjunto de
todas las dependencias funcionales implicadas
lógicamente en F
Axiomas de Armstrong
● Regla de la Reflexividad
● Regla de la Aumentatividad
● Regla de la Transitividad
Cierre de un Conjunto de
Dependencias Funcionales
Axiomas de Armstrong
● Reflexividad: Si β ⊆ α, entonces α→β
Notación:
α,β,γ,... denotan conjuntos de atributos
A,B,C,... denotan un atributo particular
αβ... denota α ᴜ β
Cierre de un Conjunto de
Dependencias Funcionales
Los Axiomas de Armstrong son correctos y
completos (sound and complete)
● Correctos (sound): no generan dependencias
funcionales incorrectas
● Completos (complete): generan todas las
dependencias funcionales implicadas
lógicamente
Cierre de un Conjunto de
Dependencias Funcionales
Reglas Adicionales (se pueden demostrar con los
Axiomas de Armstrong):
● Unión: Si α→β y α→γ, entonces α →βγ
● Descomposición: Si α→βγ, entonces α→β y
α→γ
● Pseudotransitividad: Si α →β y γβ →δ,
entonces αγ →δ
Cierre de un Conjunto de Atributos
● El cierre de un conjunto de atributos α, denotado α+,
permite determinar las llaves de una relación, y si se
cumple una dependencia funcional α → β
resultado := α;
while (cambios en resultado) do
for each dependencia funcional β →γ in F do
begin
if β ⊆ resultado then resultado := resultado ∪ γ;
end
● Calcular (CG)+
● ¿Es (CG) superllave de R?
● ¿CG → A ?
● Calcular (AG)+
● ¿Es (AG) superllave de R?
Normalización y Diseño de BD
● Generalmente un buen diseño E-R al
trasladarse a relacional queda normalizado.
Los problemas de normalización que se
encuentren en el m.relacional se podrán
corregir modificando el MER.