Normalizacion Flashcards
Cual es el objetivo de la normalizacion?
- Decidir si la relacion R esta en “buena forma”
- Si no lo esta, descomponerla en un conjunto de relacions {R1, R2,…,Rn} tal que cada relacion este en buena forma, ya la descomposicion sea sin perdida (lossless-join decomposition)
Definir descomposicion de una relacion
Sea R un esquema de relacion. Un conjunto de esquemas de relacion {R1, R2,…,Rn} es una descomposicion de R si R = R1 U R2 U … U Rn
Definir relacion legal
Una relacion se dice legal si satisface todas las ligaduras impuestas a nuestra base de datos
Definir descomposicion sin perdida
Sea C un conjunto de ligaduras en la base de datos. Una descomposicion R1,…,Rn de un esquema de relacion R es una descomposicion sin perdida para R si para todas las instancias r legales bajo C, se cumple que:
r = \Pi_R1(r) natjoin \Pi_R2(r) natjoin … natjoin \Pi_Rn(r)
Que propiedades son deseables en una descomposicion?
(1) Descomposicion sin perdida (lossless-join decomposition)
(2) Conservacion de dependencia
Definir descomposicion sin perdida en terminos de dependencia funcionales
Sea R un esquema de relacion y F un conjunto de dependencias funcionales sobre R. Sean R1 y R2 descomposiciones de R.
Esta descomposicion es sin perdida, si al menos una de las siguientes dependencias esta en F+:
R1 \cap R2 -> R1
R1 \cap R2 -> R2
Definir conservacion de dependencias
Sea R un esquema de relacion, F un conjunto de dependencias sobre R, y una descomposicion {R1, R2, …, Rn}, considerando a F_i el subconjunto de dependencias de F+ que solo incluyen atributos de R_i, dicha descomposicion preserva dependencias si:
(F1 U F2 U … U Fn)+ = F+
Definir atributo primo
Un atributo se dice primo si es miembro de cualquier clave candidata del esquema al cual pertencece
Definir dependencia total
A -> B es una dependencia total si la eliminacion de cualquier atributo en A hace que la dependencia deje de ser valida (i.e., no tiene atributos redundantes a la izq)
Definir dependencia total
A -> B es una dependencia total si la eliminacion de cualquier atributo en A hace que la dependencia deje de ser valida (i.e., no tiene atributos redundantes a la izq)
Definir dependencia parcial
A -> B es una dependencia parcial si es posible eliminar un atributo X de A y la dependencia funcional sigue siendo valida
Definir forma normal de boyce-codd (BCNF)
Un esquema de relacion R esta en BCNF respecto a sus dependencias funcionales si para toda dependencia A -> B en F+:
(1) A -> B es trivial
(2) o A es superclave de R
Definir 3NF
Un esquema R esta en 3NF respecto a sus dependencias funcionales si para cada dependencia A -> B en F+, se da alguna de las siguientes condiciones:
(1) A -> B es trivial
(2) A es superclave de R
(3) Cada atributo X en B - A es primo
Definir 2NF
Ningun atributo no primo de R depende parcialmente de alguna clave candidata de R
Definir 1NF
Un esquema de relacion esta en 1NF si todos sus atributos son atomicos
Algoritmo de descomposicion a BCNF
- Computar F+
- Para toda dependencia A -> B en F+, ver si cumple con las reglas BCNF
- Si no la cumple:
- Crear dos relaciones: R1 = {A, B} y R2 = R - B
- Repetir para R1 y R2, definiendo F1+ y F2+ en base a las dependencias de F que contienen solo atributos de R1 y R2 respectivamente.
Se termina cuando las 2 particiones que se hacen estan en BCNF. En ese caso, se toman todas las particiones en BCNF como particiones de R
Que garantiza BCNF?
Garantiza descomposicion sin perdida, pero no garantiza conservacion de dependencias
Que garantiza 3NF?
Descomposicion sin perdida y conservacion de dependencias
Algoritmo a 3NF
Dado un esquema R un conjunto de dependencias funcionales F sobre R:
(1) Computo F_c, el recubrimiento canonico de F
(2) Creo una relacion R_i = {A,B} por cada dependencia en F_c
(3) Si ninguna R_i contiene alguna clave candidata de R, creo otra relacion mas R_k = K, con K una clave de R