Refinamiento de Esquemas
Base de Datos
Valeria Beratto Ulloa
vberatto@[Link]
Introducción
Autor País Cod-Libro Título Editorial
Date, C USA 01 DB AD
Date, C USA 02 SQL AD
Kim, W China 03 PL/SQL ACM
Gardarin Chile 04 SQL(I) Verlag
Gardarin Chile 05 SQL(II) Verlag
Problemas??
1. Redundancia de datos
2. Anomalías de modificación de datos
3. Anomalías de inserción de datos
4. Anomalías de borrados de datos
Introducción (II): Descomposición
de Relaciones
Consiste en sustituir Autor País
el esquema de la Date, C USA
relación por dos o Kim, W China
más esquemas de Gardarin Chile
relación.
Cod- Autor Título Editorial
Libro
01 Date, C DB AD
02 Date, C SQL AD
04 Kim, W PL/SQL ACM
05 Gardarin SQL(I) Verlag
06 Gardarin SQL(II) Verlag
Introducción (III): Problemas con
la Descomposición de Relaciones
1. Hace falta descomponer la relación??
2. Qué problemas provoca la
descomposición??
Resp:
1. Las formas normales
2. Se deben tener dos propiedades:
1. Reunión sin pérdida: Recuperar todas las
instancias.
2. Conservación de las dependencias: Cumplir
cualquier restricción de la relación origina
Introducción (IV)
Formas Normales (FN): Conjunto de
restricciones sobre tablas relacionales
que evitan los problemas de
redundancia de datos.
Dependencias Funcionales (DF): Es
un tipo de RI que generaliza el
concepto de clave y son dadas por las
reglas de negocio.
Dependencias Funcionales
Sea R el esquema de una relación y sean
X, Y conjuntos no vacíos de atributos de R.
Diremos que Y depende funcionalmente de
X (X→Y) o X determina a Y. Si para cada
par de tuplas t1 y t2 de R
t1.X = t2.X , entonces t1.Y = t2.Y
Dependencias Funcionales
La siguiente relación satisface la A B C D
DF AB→C.??
AB es clave??
a
1 b
1 c
1 d
1
Si se inserta la tupla a
1 b
1 c
1 d
2
< a ,b ,c ,d >, se viola la DF??
2 1 1 1 a
1 b
2 c
2 d
1
Una instancia de R es legal, si a
2 b
1 c
3 d
2
satisface todas las RI.
Las DF no exige que el conjunto
X sea mínimo, pero para que sea
X clave debe ser mínimo.
Dependencias Funcionales
Al tener el LIBRO (código, título,
editorial, páginas).
código→ código, título, editorial, páginas (1)
Código es mínimo, por que no es redundante.
Si agregamos código, título→ editorial, páginas, no es
minimal, por que es un subconjunto de la DF (1).
Para que sea clave de ser mínimo
Dependencias Funcionales
Si tenemos:
A→C
C→B
Si dos tuplas tiene el mismo valor en A, debe tener el
mismo valor C, y por lo tanto debe tener el mismo B.
Entonces podemos decir que se cumple A→B.
Una DF d está implícita en un conjunto D, si se cumple
en todas las instancias que satisfacen todas DF de D.
Dependencias Funcionales
Diremos que Y tiene dependencia
funcional trivial de X, si Y forma parte
del conjunto de atributos de X
autor, cod →autor
alumno, nota→ nota
libro→ libro
Axiomas de Armstrong
El conjunto de todas las DF implícitas en un
conjunto D dado de DF se denomina cierre de D y
se denota por D+.
Para obtener D+, con los axiomas de Armstrong.
Consideramos X,Y y Z conjunto de atributos no
vacíos.
Reflexividad: Si Y es subconjunto de X, entonces X→Y.
Aumentatividad: Si X→Y, entonces XZ→YZ.
Transitividad: Si X→Y e Y→Z entonces X→Z
Axiomas de Armstrong
Otras reglas
Unión: Si X→Y e X→Z, entonces X→YZ.
Descomposición: Si X→YZ, entonces X→Y e
X→Z.
Ejemplo: Considere R(A,B,C) con: A→B y
B→C
Por reflexividad: A→A, B→B, C→C
Por transitividad: A→C
Por aumentatividad A→B con C, AC→BC
Ejercicio
Dada la siguiente relación R(A,B,C,D,E) y las siguientes
dependencias funcionales determine:
AC
BD
CB
BDE
Demuestre ABE, por axiomas de Armstrong
Determine clave o claves candidatas
Teoría de Normalización
Técnica formal de análisis y organización de datos; trata de
evitar la redundancia y anomalías de actualización.
Introduce formalización en el diseño lógico de BDR.
Además permite mecanizar parte del proceso al disponer de
instrumentos algorítmicos de ayuda al diseño.
Proceso de normalización: disminuye las anomalías de
actualización, pero penaliza las consultas (combinación
consume muchos recursos).
Formas normales
Un esquema de relación está en una determinada forma normal si
satisface un determinado conjunto específico de restricciones
definidas sobre los atributos del esquema (dependencias).
1ª FN (Codd, 1970)
Concepto de relación normalizada.
2ª, 3ª FN (Codd, 1970), FNBC (Boyce/Codd, 1974)
Basadas en análisis de dependencias funcionales.
4ª FN. Fagin, 1977
Basada en análisis de dependencias multivaluadas.
5ª FN. Fagin, 1979
Basada en análisis de dependencias de proyección / combinación.
Formas Normales ()
Toda relación en FNBC está en la 3FN, toda relación en 3FN está en
2FN, y toda relación en 2FN está en 1FN.
Una relación o tabla está en 1FN si cada atributo no contiene
campos multivaluados.
Por la propia definición del modelo de datos relacional, NO se admiten
campos multivaluados. En consecuencia, TODAS las relaciones del
modelo de datos relacional están automáticamente en 1FN.
Ejemplo 1FN
Cliente
IDCl Nombre Apellido Teléfono
123 Rachel Ingram 555-861-2025
555-403-1659
456 James Wright
555-776-4100
789 Cesar Dure 555-808-9633
Cliente
ID Cliente Nombre Apellido Teléfono 1 Teléfono 2
123 Rachel Ingram 555-861-2025
456 James Wright 555-403-1659 555-776-4100
789 Cesar Dure 555-808-9633
Formas Normales (2FN)
Una relación R está en 2FN si está en
1FN y cada atributo no clave depende
por completo de los atributos claves.
Atributo no clave o no primos: si no pertenece
a alguna de las claves candidatas de R.
Atributo clave o primos: pertenece a alguna
de las claves candidatas de R.
Formas Normales (2FN)
Ejemplo:
Eval (alumno, edad, asignatura, dpto, nota)
y DF son:
alumno →edad
asignatura → dpto.
alumno,asignatura →nota
Está en 2FN??
• La clave candidata es: (alumno,asignatura), por que todos
los atributos depende funcionalmente de ella.
• Pero se encuentra en 2FN??, no porque edad depende en
forma parcial de la clave candidata.
Formas Normales (2FN)
Ejemplo:
Qué debemos hacer?? Descomponer
R1(alumno,edad), donde alumno→edad
R2(asignatura,dpto), donde asignatura→depto
R3(alumno, asignatura, nota), donde
alumno,asignatura→nota
Formas Normales (2FN)
Dada R(A,B,C,D) con DFs:
AB→ C
C→D
A→C
Está R en 2FN?
No, por que B no depende de la clave
Dada R(A,B,C,D,E) con DFs:
AB → CD
C→E
Está R en 2FN ?
Si, todos los atributos no claves depende por completo de los atributos claves.
Dada Libro(código, isbn, título, autor, país)
código→isbn
isbn→código, título, autor
autor→país
Está Libro en 2 FN ?
Formas Normales (3FN)
Una relación está en 3FN si está en 2FN y cada
atributo no clave depende de manera no transitiva de
alguna de las claves.
Si tenemos Libro(código, isbn, título, autor, país)
código→isbn
isbn→código, título, autor
autor→país
País depende transitivamente de código o isnb, por lo
tanto no se encuentra en 3 FN
Formas Normales (3FN)
Para que quede en 3FN debemos
descomponer:
R1 (autor, país)
R2(código, isbn, título, autor)
Formas Normales (3FN)
Dada R(A,B,C,D,E) con DFs:
AB → CDE
C→E
Está R en 3FN?
No, por que E igual depende transitivamente de la
clave candidata
Dada R(A,B,C,D,E) con DFs:
AB → CDE
Está R en 3FN?
Sí, por que todos los atributos no claves dependen
por completo de la clave
Formas Normales (Boyce –Codd)
• Una relación R está FNBC si se cumplen
algunas de las siguientes afirmaciones,
para cada DF en D X→A:
• A es subconjunto de X o
• X es una super clave
• Una relación está en FNBC si los
determinantes de las DFs son claves
candidatas.
• Toda relación FNBC también está en 3FN
Formas Normales (Boyce –Codd)
• Ejemplo:
• Considere R (A,B,C)
• AB→C
• C→A
Está en FNBC??
Claves Candidatas: AB o BC
No está en FNBC, por qué??
C no es llave candidata
Formas Normales (Boyce –Codd)
En general, una relación no está en
FNBC cuando existen dos o más
llaves candidatas para la relación,
éstas son llaves compuestas (con más
de un atributo) y su intersección no es
vacía
Formas Normales (Boyce –Codd)
R(A,B,C) y DF
AC→B
B→C
está en FNBC??
No, porque las llaves candidatas son:
AC o AB y la intersección es A
Formas Normales: Ejercicios
R (ABCDE) y las DF:
A→B
BC→E
ED→A
Cuáles son las claves candidatas??
Está R en 3FN?
Está R en FNBC?
Descomposición de relaciones
Esquema relación universal R
R = (A1, A2, ..., An), que contiene todos los atributos de
la BD
Descomposición de R en D
D = (R1, R2, ..., Rm), que se obtiene mediante la
descomposición utilizando las dependencias funcionales
Se debe verificar:
Ui=1..m Ri = R
Preservación de dependencias
Preservación de dependencias
Se mantiene el conjunto dfs de R con
la unión de todas las dfs de Ri
Join sin Pérdida
Definición
Una descomposición D = (R1, R2, ...,
Rm) de R tiene la propiedad de JSP
respecto al conjunto de dfs F sobre R, si
por cada instancia de relación r de R que
satisfaga F, se cumple lo siguiente:
(πR1(r), ..., πRm(r)) = r
Join sin Pérdida
Propiedad
D = (R1, R2) de R tiene JSP respecto
a F sobre R sii
la df (R1 ∩ R2) -> (R1 - R2) está en F+
ó
la df (R1 ∩ R2) -> (R2 - R1) está en F+
Ejemplo JSP
R (ABCDE) y las DF:
• A→B
• BC→E
• ED→A
R1(A,B) y R2(ACDE)
R1 ∩ R2 -> R1-R2 ó
R1 ∩ R2 -> R2-R1
A->B ó A->CDE
Como A->B existe o la puedo determinar, la
descomposición es JSP