Identificación de dependencias funcionales

Anuncio
Normalización
Preparó: Ismael Castañeda Fuentes
Fuente principal: Database Systems – A Practical Approach to Design, Implementation, and Management. Thomas Connolly, Carolyn Begg
Universidad Nacional de Colombia
Facultad de Ingeniería
Objetivos
Terminología
Propósito de la normalización
Uso de la normalización en diseño de bases de datos relacionales
Problemas potenciales relacionados con datos redundantes
Dependencias funcionales
Uso de las dependencias funcionales en la normalización
Identificación de dependencias funcionales en una relación
Dependencias funcionales para identificar la llave primaria
Dependencias funcionales para agrupar atributos en relaciones
Identificar 1FN, 2FN, 3FN, BCFN,4FN, 5FN
Dependencias multivaluadas
Axiomas de Armstrong
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Terminología
TÉRMINOS EQUIVALENTES
FORMAL
(Codd)
COMÚN
FÍSICO
Relación
Tabla
Archivo
Tupla
Fila
Registro
Atributo
Columna
Campo
Dominio
Tipo de dato
Tipo de dato
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Propósito de la normalización
La normalización es una técnica para obtener un conjunto de
relaciones que soporten apropiadamente los requerimientos de datos
de una empresa
Características del conjunto de relaciones



Mínimo número de atributos necesarios para soportar los requerimientos de datos
Atributos correlacionados están en la misma relación
Redundancia mínima, excepto para atributos que son parte de llaves foráneas
Beneficios


Acceso y mantenimiento más sencillo
Mínimo uso de espacio en memoria de los computadores
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Normalización y diseño de bases de datos
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Redundancia de datos y anomalías en la actualización
El objetivo principal del diseño de base de datos relacional, es agrupar los
atributos en relaciones para minimizar la redundancia de datos
Beneficios potenciales al hacer la implementación


Actualizaciones a la base de datos se hacen con el mínimo de operaciones, reduciendo la posibilidad
de datos inconsistentes
Reducción del espacio requerido en almacenamiento persistente, reduciendo costes
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Redundancia de datos y anomalías en la actualización
La relación StaffBranch tiene datos redundantes
Al hacer operaciones en la base de datos se pueden presentar anomalías



Inserción
Actualización
Borrado
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Descomposición - Solución a la Redundancia de datos
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Propiedades de la Descomposición
Dos propiedades importantes de la descomposición:
La propiedad Lossless-join nos permite encontrar cualquier instancia de
la relación original en instancias correspondientes en relaciones más
pequeñas
La propiedad de Preservación de dependencia nos permite imponer
una restricción en la relación original mediante la imposición de una
restricción en cada una de las relaciones más pequeñas.
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Dependencias funcionales
Concepto importante en la normalización
Describen asociaciones entre atributos
Si A y B son atributos de R, B es funcionalmente dependiente de A, si para cada
valor de A en R está asociado exactamente con un valor de B en R
Notación: A  B
Representación gráfica:
Determinante de una dependencia funcional
Atributo o grupo de atributos al lado izquierdo de la flecha
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Dependencias funcionales
Dependencia funcional basada en un solo dato
staffNo  sName
sName  staffNo
Dependencia funcional considerando todos los datos
staffNo  sName
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Características de las dependencias funcionales
Dependencia Funcional completa
Los determinantes deben tener el mínimo número de atributos necesarios para mantener
la dependencia funcional con el (los) atributo(s) del lado derecho
Si A y B son atributos de una relación, B es funcionalmente completa dependiente de A,
si B es funcionalmente dependiente de A, pero no sobre cualquier propiedad del
subconjunto A
Ejemplo de dependencia parcial
staffNo, sName  branchNo
Verdadero, cada valor de (staffNo, sName)
está asociado con un valor de branchNo
Pero, branchNo también es funcionalmente
dependiente de un subconjunto de
(staffNo, sName), es decir de staffNo
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Características de las dependencias funcionales
Características principales de dependencias funcionales usadas
en normalización

Hay una asociación 1 a 1 entre el(los) atributo(s) del lado izquierdo
(determinante) y aquellos que están en la mano derecha de la dependencia
funcional

Se cumple para todos los casos

El determinante tiene el número mínimo de atributos necesarios para
mantener la dependencia con el(los) atributo(s) de la mano derecha
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Dependencias transitivas
Importante reconocer dependencias transitivas porque su existencia en una
relación puede potencialmente causar anomalías al hacer actualizaciones
Dependencia transitiva
Si A, B y C son atributos de una relación tal que
AByBC
Entonces C es dependiente transitivamente de A vía B (a condición de que A no
es funcionalmente dependiente de B o C)
Ejemplo
staffNo  sName, position, salary, branchNo, bAddress
branchNo  bAdress
Dependencia transitiva:
branchNo  bAddress existe sobre staffNo vía branchNo
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Proceso de normalización
Técnica formal para analizar una relación basada en su llave primaria y las
dependencias funcionales entre los atributos de esa relación
Se ejecuta a través de una serie de pasos. Cada paso corresponde a una forma
normal específica, que tiene sus propiedades
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Identificación de dependencias funcionales
Identificar todas las dependencias funcionales de un conjunto de atributos es
relativamente simple, si el significado de cada atributo y las asociaciones entre
atributos se conocen muy bien
Esta información debe ser proporcionada por la empresa de charlas con los
usuarios y/o documentación tal como los requerimientos de los usuarios
Si los usuarios no están disponibles y/o la documentación está incompleta,
dependiendo de la aplicación sobre la base de datos el diseñador de la base de
datos debe utilizar el sentido común y/o experiencia para suministrar la
información faltante
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Ejemplo de identificación de dependencias funcionales
Se supone que position y branch determinan salary del staff
Dependencias funcionales para la relación StaffBranch
staffNo  sName, position, salary, branchNo, bAddress
branchNo  bAddress
bAddress  branchNo
branchNo, position  salary
bAddress, position  salary
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Ejemplo de identificación de dependencias funcionales
Dependencias funcionales entre los
atributos A hasta E
AC
CA
BD
A, B  E
(fd1)
(fd2)
(fd3)
(fd4)
Con las dependencias funcionales,
identificar las restricciones de integridad que
debe tener la relación
Identificar llaves candidatas y una de ellas la
llave primaria
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Ejemplo de identificación de dependencias funcionales
Dependencias funcionales de StaffBranch
staffNo  sName, position, salary,
branchNo, bAddress
branchNo  bAddress
bAddress  branchNo
branchNo, position  salary
bAddress, position  salary
Determinantes: staffNo, branchNo, bAddress, (branchNo, position) y (bAddress, position)
Para identificar llaves candidatas:
Identificar el(los) atributo(s) que identifican cada tupla en la relación
Todos los atributos que no hacen parte de la llave candidata deben ser funcionalmente
dependientes de la llave
La única llave candidata y llave primaria de la relación StaffBranch es staffNo (los demás
atributos de la relación son funcionalmente dependientes de staffNo)
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Ejemplo de identificación de dependencias funcionales
Dependencias funcionales
AC
CA
BD
A, B  E
(fd1)
(fd2)
(fd3)
(fd4)
Determinantes A, B, C y (A,B)
Único determinante que funcionalmente
determina todos los otros atributos es (A, B)
Entonces (A, B) es la llave primaria
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Proceso de normalización
A medida que avanza la normalización, las relaciones se vuelven cada vez
más restringidas (más fuertes) en la forma y también menos vulnerables a las
anomalías de actualización.
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Proceso de normalización
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Forma desnormalizada (UNF)
UNF: Tabla que contiene uno o más grupos repetitivos
Para crear una tabla sin normalizar

Transformar los datos de la fuente de información (formulario, por ejemplo) en formato
de tabla con columnas y filas
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Forma desnormalizada (UNF)
Grupo repetitivo dentro de columna
CLIENTE
ID Cliente
Nombre
Apellido
Teléfono
123
Rachel
Ingram
555-861-2025
456
James
Wright
555-403-1659
555-776-4100
789
Maria
Fernandez
555-808-9633
Grupo repetitivo a través de columnas
CLIENTE
ID Cliente
Nombre
Apellido
Teléfono 1
123
Rachel
Ingram
555-861-2025
456
James
Wright
555-403-1659
789
Maria
Fernandez
555-808-9633
Teléfono 2
Teléfono 3
555-776-4100
CLIENTE
ID Cliente
Nombre
Apellido
Teléfono
123
Rachel
Ingram
555-861-2025
456
James
Wright
555-403-1659
456
James
Wright
555-776-4100
789
Maria
Fernandez
555-808-9633
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
UNF a 1FN
1FN: relación en la cual en cada intersección de una fila y una columna contiene
uno y solo un valor, sin grupos repetitivos
Seleccionar un atributo o conjunto de atributos para actuar como la llave para la
tabla no normalizada
Identificar el(los) grupo(s) de repetitivo(s) en la tabla no normalizada que se
repite para el(los) atributo(s) llave(s)
Quitar el grupo de repetitivo

Introduciendo datos apropiados en las columnas vacías de filas que contienen los datos
repetitivos ("aplanamiento" de la tabla)
ó

Colocando los datos repetitivos junto con una copia original del (de los) atributo(s)
clave(s) en una relación aparte
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
UNF a 1FN
Relación no normalizada
CLIENTE
ID
Cliente
Relación no normalizada
CLIENTE
ID
Cliente
Nombre
Apellido
Teléfono
123
Rachel
Ingram
555-861-2025
456
James
Wright
555-403-1659
555-776-4100
789
Maria
Fernandez
555-808-9633
Nombre
Apellido
Teléfono 1
123
JOSE ALFREDO
Ingram
555-861-2025
456
ALEX
Wright
555-403-1659
789
MARTIN
Fernandez
555-808-9633
Teléfono 2
Teléfono 3
555-776-4100
Diseño en 1FN
Teléfono del cliente
CLIENTE
ID
Cliente
Nombre
ID Cliente
Apellido
123
Rachel
Ingram
456
James
Wright
789
Maria
Fernandez
Grupo de Investigación en Bases de Datos UNBD
Teléfono
123
555-861-2025
456
555-403-1659
456
555-776-4100
789
555-808-9633
SIGEPRO
UNF a 1FN
Relación no normalizada
Relación no normalizada
Diseño en 1FN
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Primera Forma Normal (1NF)
Dependencias funcionales
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Segunda Forma Normal (2NF)
2NF Basada en el concepto de dependencia funcional completa
Dependencia funcional completa indica que si

A y B son los atributos de una relación

B es totalmente dependiente de A si B es funcionalmente dependiente de A, pero no en
un subconjunto de A
Segunda Forma Normal (2NF)

Una relación que está en 1FN y todo atributo no llave primaria es totalmente
dependiente funcionalmente de la llave primaria

Una relación que está en 1FN y cada atributo no llave primaria tiene dependencia
funcional total de cualquier llave candidata
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
1FN a 2NF
Identificar la llave primaria de la relación 1NF
Identificar las dependencias funcionales en la relación
Si existen dependencias parciales en la llave primaria eliminarlas colocándolas
en una nueva relación junto con una copia de su determinante
Dependencias funcionales
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Tercera Forma Normal (3NF)
3NF Basada en el concepto de dependencia transitiva
La dependencia transitiva es una condición donde
A, B y C son los atributos de una relación tal que si A  B y B C,
Entonces C es transitivamente dependiente de A a través de B (condición: A no
es funcionalmente dependiente de B o C)
Tercera forma Normal 3FN

Relación que está en 1FN y 2FN y en la que ningún atributo no llave primaria es
transitivamente dependiente de la llave primaria

Relación que está en primera y en segunda forma normal y en el que ningún atributo no
llave primaria es transitivamente dependiente de cualquier llave candidata
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
2FN a 3NF
Identificar la llave primaria en la relación 2FN
Identificar las dependencias funcionales en la relación
Si existen dependencias transitivas de la llave primaria,
eliminarlas reemplazándolas por una nueva relación,
junto con una copia de su dominante
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Más sobre dependencias funcionales
El conjunto completo de dependencias funcionales de una relación dada puede
ser muy grande
Es importante encontrar un enfoque que reduzca el conjunto a un tamaño
manejable
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Reglas de inferencia para dependencias funcionales
Identificar un conjunto de dependencias funcionales de una relación
(representadas como X) que sea un conjunto más pequeño que el conjunto
completo de dependencias funcionales para esa relación (representadas como
Y) y que tengan la propiedad de que para cada dependencia funcional en Y está
implícita por las dependencias funcionales en X
El conjunto de todas las dependencias funcionales que están implícitas en un
conjunto dado de dependencias funcionales X se llama el cierre de X, notado X+
Un conjunto de reglas de inferencia, denominados axiomas de Armstrong,
especifican cómo las nuevas dependencias funcionales se pueden inferir de las
dadas.
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Reglas de inferencia para dependencias funcionales
Sean A, B y C subconjuntos de los atributos de la relación R.
Los axiomas de Armstrong son:
 (1) Reflexividad
Si B es un subconjunto de A, entonces A  B
 (2) Incremento (augmentation) Si A  B, entonces A,C  B,C
 (3) Transitividad
Si A  B y B  C, entonces A  C
Reglas adicionales se pueden derivar de las tres primeras las cuales simplifican
el cálculo de X+
Sea D otro subconjunto de atributos de la relación R, entonces:
 (4) Autodeterminación
AA
 (5) Descomposición
Si A  B,C, entonces A  B y A  C
 (6) Unión
Si A  B y A  C, entonces A  B,C
 (7) Composición
Si A  B y C  D, entonces A,C  B,D
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Conjuntos mínimos de dependencias funcionales
Un conjunto de dependencias funcionales Y está cubierta por un conjunto de
dependencias funcionales X, si cada dependencia funcional de Y está también
en X+, es decir, todas las dependencias en Y se pueden inferir de X.
Un conjunto de dependencias funcionales X es mínima si satisface las
siguientes condiciones:
 Cada dependencia en X tiene un solo atributo en su lado derecho
 No puede sustituir ninguna dependencia A  B en X con la dependencia C  B, donde
C es un subconjunto propio de A, y aún así tener un conjunto de dependencias
equivalentes a X.
 No se puede eliminar ninguna dependencia de X y conservar un conjunto de
dependencias que equivalen a X.
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Forma normal de Boyce-Codd (BCFN)
Una relación está en Boyce-Codd (BCFN) si y solo si cada determinante es llave
candidata
Basada en las dependencias funcionales que tienen en cuenta todas las claves
candidatas en una relación, sin embargo BCNF tiene restricciones adicionales
con respecto a la definición general de 3FN
La diferencia entre 3FN y BCFN es que para una dependencia funcional A  B,
3FN permite esta dependencia en una relación si B es un atributo de la llave
primaria y A no es llave candidata. Mientras que, BCNF insiste en que para que
esta dependencia permanezca en una relación, A debe ser una llave candidata
Toda relación en BCFN también está en 3FN. Sin embargo, una relación en 3FN
no necesariamente está en BCFN
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Forma normal de Boyce-Codd (BCFN)
Dependencias Funcionales de la relación ClientInterview
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Forma normal de Boyce-Codd (BCFN)
Relaciones BCNF Interview y StaffRoom
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Forma normal de Boyce-Codd (BCFN)
Son muy raras las violaciones a BCNF
Potenciales violaciones a BCNF pueden ocurrir en una relación que:
 Contiene dos (o más) llaves candidatas compuestas
 Las llaves candidatas se superponen, es decir, tienen al menos un atributo en común
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Repaso de Normalización (UNF a BCNF)
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Repaso de Normalización (UNF a BCNF)
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Repaso de Normalización (UNF a BCNF)
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Repaso de Normalización (UNF a BCNF)
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Cuarta Forma Normal (4NF)
A pesar de que BCNF elimina anomalías debidas a dependencias funcionales,
otro tipo de dependencias, llamadas dependencias multi-valuadas (MVD),
pueden causar redundancia de datos
La posible existencia de dependencias multi-valuadas en una relación se debe a
1NF y que puede resultar en redundancia de datos
Dependencia multi-valuada (MVD)
 Dependencia entre atributos de una relación (por ejemplo: A, B y C), tal que para cada
valor de A hay un conjunto de valores para B y un conjunto de valores para C. Sin
embargo, el conjunto de valores de B y C son independientes uno del otro.
Notación MVD entre atributos A, B y C de una relación:
A ->> B
A ->> C
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Cuarta Forma Normal (4NF)
Una dependencia multi-valuada se puede definir como trivial o no trivial
Una MVD A ->> B en una relación R se define como trivial si
(a) B es un subconjunto de A ó
(b) A U B = R
Una MVD se define como no trivial si ni (a) ni (b) se satisfacen
Una MVD trivial no especifica una restricción en una relación, mientras que una
MVD no trivial especifica una restricción
4FN es una relación que está en forma normal Boyce-Codd y no contiene
dependencias no triviales multi-valuadas
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Cuarta Forma Normal (4NF) - Ejemplo
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Quinta forma normal (5NF)
5FN es una relación descompuesta en dos relaciones que tienen la propiedad
lossless-join, la que asegura que no se generan tuplas no válidas cuando las
relaciones se reúnen a través de una operación natural join
Sin embargo, hay requisitos para descomponer una relación en más de dos
relaciones. Aunque raros, esos casos se manejan por dependencia join y quinta
forma normal (5NF)
5FN es una relación que no tiene dependencias join
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Quinta forma normal (5NF) - Ejemplo
Grupo de Investigación en Bases de Datos UNBD
SIGEPRO
Descargar