Documente Academic
Documente Profesional
Documente Cultură
Marta Zorrilla
Universidad de Cantabria
Tabla de contenidos
Introducción
Notación
Primera forma normal
Dependencias funcionales
Segunda forma normal
Tercera forma normal
Forma normal de Boyce-Codd
Dependencias multivaluadas y 4FN
Quinta forma normal
Proceso de diseño
Criterios de diseño
Un buen diseño de base de datos relacional requiere
encontrar un “buen” conjunto de esquemas de
relación
Métodos:
Modelos ER, UML, ORM y uso de herramientas CASE
Síntesis: Agrupar atributos en relaciones
Descomposición: Dividir una relación en relaciones
Ejemplo
Sea el esquema:
prestamos = (nombre_sucursal, ciudad_sucursal, activos,
nombre_cliente, numero_prestamo, cantidad)
Problemas:
Los datos nombre_sucursal, ciudad_sucursal, activos se repiten para
cada préstamo que hace una sucursal
La información de la sucursal no existe, si no hay préstamo (o bien
requiere nulos)
Se malgasta espacio en disco
Se complica el proceso de actualización de datos
prestamos = (nombre_sucursal,nombre_ciudad,activos,
nombre_cliente, numero_prestamo, cantidad)
sucursal = (nombre_sucursal,nombre_ciudad,activos)
R = R1 ∪ R2
R1 = (V) R2 = (W)
V W V W
α 1 α 1
α 2 β 2
β 1 ∏W(r)
∏V(r)
r
V W
∏V (r) ∏W (r)
α 1
α 2
β 1
β 2
Ejemplo de descomposición sin pérdida
Decomposición de R = (V, W, Y)
R1 = (V,Y) R2 = (W,Y)
V W Y V Y W Y
α 1 a α a 1 a
α 2 b α b 2 b
β 1 c β c 1 c
r ∏W(r)
∏V(r)
V W Y
∏V (r) ∏W (r) α 1 a
α 2 b
β 1 c
r
Normalización
Diseño formal de bases de datos relacionales basado en el
concepto de dependencia.
Dependencias:
son propiedades inherentes al contenido semántico de los datos;
son un tipo especial de restricción de usuario en el modelo
relacional, que afecta únicamente a los atributos dentro de una
única relación; y
se han de cumplir para cualquier extensión de un esquema de
relación.
Tipos: funcional, multievaluada, jerárquicas y de combinación
multivaluadas 4FN
fu FN Boyce - Codd
n ci
on 3FN
al
es
2FN
1FN
1FN
Definiciones y notación
Esquema de relación (o esquema de tabla):
Es una lista ordenada de nombres de atributos.
Relación (o tabla):
Es una determinación de un esquema de relación mediante
valores concretos de los atributos, es decir, una tabla de
valores.
Notación utilizada:
1.-Las letras mayúsculas del comienzo del alfabeto
representan atributos simples.
2.-Las letras mayúsculas del final del alfabeto representan
conjuntos de atributos (atributos compuestos), siendo posibles
conjuntos simples.
3.-La letra R se usa para denotar un esquema de relación.
4.-Se utiliza r para indicar una relación, es decir, el contenido
de una tabla.
5.-La concatenación significa unión, es decir: A1A2...An es el
conjunto {A1, A2, ..., An}, X ∪ Y es lo mismo que XY y
también X ∪ A es igual que X{A}.
Primera forma normal (1NF)
Un esquema de relación, R, está en 1NF, si y
sólo si, tiene un número de atributos fijo y éstos
toman valores no compuestos (atómicos)
Definiciones
Clave:
Es todo atributo, simple o compuesto, que toma valores únicos
(no repetidos). Esto equivale a decir que, para un esquema de
relación, R, K ⊆ R es una clave si, para cualquier contenido,
r(R), de la relación, para todas las parejas t1 y t2 de tuplas de
r(R), tales que t1≠t2 entonces t1[K] ≠ t2[K].
Clave principal:
Es la clave que se utiliza para identificar cada tupla de una
relación.
Atributo de clave (Key atribute):
Es un atributo que pertenece a una clave.
Atributo no de clave (Non key attribute):
Es un atributo que ni es una clave ni forma parte de una clave.
Superclave, conjunto de atributos que contengan una clave
(key). Todas las claves son superclaves pero pueden no ser
mínimas.
Definiciones
Dependencia funcional:
Sean V ⊆ R y W ⊆ R, se dice que W depende funcionalmente de
V en R, V → W, si en cualquier relación r(R), para todas las
parejas t1 y t2 de tuplas de r(R) tales que t1[V]=t2[V] entonces
t1[W]=t2[W].
Por ejemplo:
y que NO se mantengan :
numero_prestamo → nombre_cliente
(podría ser un préstamo de varias personas)
cantidad → numero_prestamo
(podría haber más préstamos con el mismo importe)
Dependencias funcionales (Cont.)
Una dependencia funcional es trivial si es satisfecha por
todas las instancias de la relación. En general, V → W es
trivial si W ⊆ V.
E.j.
nombre_cliente, numero_prestamo → nombre_cliente
nombre_cliente → nombre_cliente
si X ⊆ Y, entonces X → Y (reflexividad)
si X → Y entonces Z X → ZY (amplificación)
si X → Y e Y → Z, entonces X → Z (transitividad)
Dependencias funcionales (Cont.)
Se dice que estas reglas son válidas porque no generan
dependencias funcionales incorrectas y son completas
porque, dado un conjunto de dependencias funcionales, F,
permiten encontrar su conjunto cerrado, F+.
Si X → Y y X → Z entonces X → YZ (unión)
Si X → YZ entonces X → Y y X → Z (descomposición)
Si X → Y y WY → Z entonces XW → Z
(seudotransitividad)
Ejemplo
R = (A, B, C, G, H, I)
F={ A→B
A→C
CG → H
CG → I
B→H }
Algunos miembros de F+
A→H
Por transitividad A → B y B → H
AG → I
Por amplificación A → C con G, para conseguir AG → CG
y después transitividad con CG → I
CG → HI
con CG → H y CG → I aplicando la regla de unión o por la
amplificación de CG → I para inferir CG → CGI, amplificación
de CG → H para inferir CGI → HI, y entonces aplicar regla de
transitividad
Procedimiento para computar F+
F+ := F
repeat
for each dependencia funcional f en F+
aplicar reglas de reflexividad y amplificación a f
añadir las dependencias funcionales resultantes a F+
for each par de depencias funcionales f1y f2 en F+
if f1 y f2 pueden ser combinadas utilizando transitividad
then añadir la dependencia funcional resultante a F+
until F+ deje de cambiar
Cod_prov Num_ped
A20 729
B09 730
... ... LINEA_DE_PEDIDO
ALUMNOS
Nombre_al Num_exp
32678 2745
32678 3752
25663 3752
... ...
Forma normal de Boyce-Codd (FNBC):
Un esquema de relación, R, está en BCNF si y sólo si para
todas sus dependencias funcionales elementales de la
forma X → Y se verifica que X es una clave de R.
X → Y es trivial (i.e., Y ⊆ X)
X es clave de R
ALUMNOS
Nombre_al Num_exp
Laso, Ana 32678
Mas, Luis 25663 NOTAS
... ...
Num_exp Cod_asig Calificacion
32678 2745 APROBADO
32678 3752
25663 3752 NOTABLE
... ... ...
Forma normal de Boyce-Codd (FNBC):
Si una relación cuyas claves no están solapadas
está en 3FN, está también en FNBC.
null p2 m2
Un esquema en 3FN y no en FNBC tiene los problemas de
♠ Repetición de información (e.j., la relación p1, m1)
♠ Necesidad del uso de valores nulos (e.j., para representar la
relación p2, m2 donde no hay correspondiente valor de E).
Y la ventaja de que sí preserva las dependencias
Comparación BCNF - 3NF (Cont.)
Para llevar el esquema a FNBC
E P P M
e1 p1 p1 m1
e2 p1 p1 m1
e3 p1 p1 m1
p2 m2
* Información se preserva
curso profesor
database Avi
database Hank curso →→ profesor
database Sudarshan
operating systems Avi
operating systems Jim
enseña
curso libro
database DB Concepts
database Ullman curso →→ libro
operating systems OS Concepts
operating systems Shaw
textos
1ª - 1ª Luis TV Sony
1ª - 2ª Luis TV Loewe
2ª - 1ª Luis PC Sony
2ª - 1ª Luis PC Loewe FALSA
3ª - 3ª Pedro TV Sony
1ª - 1ª Luis TV Sony
3ª - 2ª Luis PC Sony
2ª - 3ª Luis TV Loewe
5ª - 2ª Pedro TV Sony
Quinta forma normal (5FN)
Un esquema de relación, R, está en 5NF si y sólo si, para
cada dependencia de combinación no trivial, cada
proyección incluye una clave de la relación original.
Síntesis
Se agrupan los atributos formando relaciones.
Pasos