Está en la página 1de 15

Bases de datos

Capítulo 8: Diseño de bases de datos relacionales

Nota: Posible error en el título = capítulo 7. En la


versión inglesa es: "Relational Database Design"

Contenido

• En este capítulo se introduce al diseño de bases de datos


relacionales basado en el concepto de dependencia funcional.
• Posteriormente se definen las formas normales en términos de
las dependencias funcionales y de otros tipos de dependencias
de datos.

71902083 Bases de datos 2


Características de los buenos diseños relacionales
• Base de datos Universidad

71902083 Bases de datos 3

Características de los buenos diseños relacionales


• Alternativa de diseño: esquemas grandes
Ejemplo: en vez de esquemas profesor y departamento:
profesor_dept (ID, nombre, sueldo, nombre_dept, edificio, presupuesto)

profesor _dept es una mala idea, ya que el presupuesto se almacena de forma


redundante y se corre el riesgo de que algún usuario actualice el presupuesto
en una de las tuplas pero no en todas y por tanto se cree una inconsistencia.

71902083 Bases de datos 4


Características de los buenos diseños relacionales
• Alternativa de diseño: esquemas pequeños
• Hay que proporcionar al diseñador herramientas para reconocer
buenos diseños.
Ejemplo:
profesor_dept (ID, nombre, sueldo, nombre_dept, edificio,
presupuesto)
– “Cada valor de nombre_dept corresponde, como máximo, a un
presupuesto”
• Esta regla se especifica como la dependencia funcional:
nombre_dept → presupuesto
– Y nombre_dept no puede ser clave primaria de profesor_dept

71902083 Bases de datos 5

Características de los buenos diseños relacionales


• Alternativa de diseño: esquemas pequeños
– Perdida de información: No todas las descomposiciones de los
esquemas resultan útiles.
• Descomposición con pérdidas
• Descomposición sin pérdidas
Ejemplo: Descomposición con perdidas
empleado (ID, nombre, calle, ciudad, sueldo) se descompone en dos
esquemas con atributo común nombre
empleado1 (ID, nombre)
empleado2 (nombre, calle, ciudad, sueldo)
– Problema si dos empleados tienen el mismo nombre (ver
diapositiva siguiente)

71902083 Bases de datos 6


Características de los buenos diseños relacionales

Esquema original con dos tuplas


con el mismo atributo nombre

Esquemas divididos

Reconstrucción del esquema


original mediante la unión natural
de los dos esquemas pequeños:
genera duplas erróneas

71902083 Bases de datos 7

Características de los buenos diseños relacionales


Ejemplo: descomposición sin pérdidas
La relación R = (A, B, C) la dividimos en R1 = (A, B) y R2 = (B, C)

A B C A B B C
a 1 A a 1 1 A
b 2 B b 2 2 B
R R1= ÕA,B(r) R2 = ÕB,C(r)

A B C
ÕA (r) ÕB (r)
a 1 A
b 2 B

71902083 Bases de datos 8


Dominios atómicos y primera forma normal
• Un dominio es atómico si se considera que los elementos de ese
dominio son unidades indivisibles.
• Se dice que el esquema de la relación R está en la primera forma
normal (1FN) si los dominios de todos los atributos de R son
atómicos
• Consideraciones:
– Los números enteros son atómicos
– Ciertos atributos con información codificada (no atómicos)
conviene considerarlos atómicos
• Código empleado DDD-###: DDD: dpto, ###: nº
• Hacerlo así es una mala idea: implica codificar la información en
el programa de la aplicación en vez de en la base de datos

71902083 Bases de datos 9

Descomposición mediante dependencias funcionales


• Decidir si una relación particular R es una forma “buena”.
• En el caso de que una relación R no esté en la forma “buena”,
descomponerla en un conjunto de relaciones {R1, R2, ..., Rn} de
forma que
– Cada relación, o al menos una de ellas, esté en la forma buena
– la descomposición es una descomposición de reunión sin pérdida
• Nuestra teoría se basa en:
– Dependencias funcionales
– Dependencias multivaloradas

71902083 Bases de datos 10


Dependencias funcionales
• Una base de datos modela un conjunto de entidades y relaciones del
mundo real.
– Normalmente existen diversas restricciones (reglas) que se
aplican sobre los datos del mundo real que requieren que el valor
de un cierto conjunto de atributos determine únicamente el valor
para otro conjunto de atributos
• Ejemplo: Todos los departamentos tienen un único valor de
presupuesto, y sólo un edificio asociado.
• Un ejemplar de relación que satisfaga todas las relaciones del
mundo real de este tipo se llama ejemplar legal de relación;
• Por extensión, un ejemplar legal de una base de datos es aquel en
el que todos los ejemplares de relación son ejemplares legales.

71902083 Bases de datos 11

Dependencias funcionales
• Sea R el esquema de una relación
a Í R y b Í R (a y b atributos de R)
• La dependencia funcional
a®b
se cumple en R si y sólo si en cualquier relación legal r(R), para todos
los pares de tuplas t1 y t2 de r que concuerdan con los atributos a,
también concuerdan con los atributos b. Es decir,
t1[a] = t2 [a] Þ t1[b ] = t2 [b ]

Ejemplo: Considérese r (A,B) con el siguiente ejemplo de r.


1 4
1 5
3 7
En este ejemplo, A ® B NO se cumple, pero B ® A se cumple

71902083 Bases de datos 12


Dependencias funcionales
• Superclave: se definió como conjunto de uno o más atributos que,
tomados colectivamente, permiten identificar unívocamente una tupla
de la relación
• Clave candidata: de definió como superclave mínima
• Ahora podemos reescribir estas definiciones:
– K es superclave para un esquema de relación R si y sólo si K ® R
– K es clave candidata de R si y sólo si:
• K®Ry
• No existe a Ì K, de forma que a ® R
Ejemplo: En profesor_dept (ID, nombre, sueldo, nombre_dept, edificio,
presupuesto), el hecho de que el par de atributos (ID, nombre_dept)
forme una superclave para profesor_dept se denota escribiendo:
ID, nombre_dept ® nombre, sueldo, edificio, presupuesto

71902083 Bases de datos 13

Dependencias funcionales
• Las dependencias funcionales se emplean de dos maneras:
1. Para probar las relaciones y ver si satisfacen un conjunto dado F de
dependencias funcionales.
• Si una relación R es legal según el conjunto F de dependencias
funcionales, se dice que “R satisface F”
2. Para especificar las restricciones del conjunto de relaciones legales.
Así, solo habrá que preocuparse de aquellas relaciones que satisfagan
un conjunto dado de dependencias funcionales.
• Se dice que “F se cumple en R” si todas las relaciones legales de R
satisfacen el conjunto de dependencias funcionales F.
• Se dice que una dependencia funcional es trivial si es satisfecha por todas
las relaciones
Ejemplo: Dependencias triviales:
• ID, name ® ID
• name ® name
– En general, a ® b es trivial si b Í a

71902083 Bases de datos 14


Dependencias funcionales
Ejemplo:
– Suponer el siguiente ejemplar de la relación r

– Satisface: A ® C
– No satisface: C ® A

71902083 Bases de datos 15

Cierre de un conjunto de dependencias funcionales


• Dado un conjunto F de dependencias funcionales, hay otras ciertas
dependencias funcionales que están implicadas lógicamente por F.
– Por ejemplo si A ® B y B ® C, entonces se puede inferir que A ® C
• El conjunto de todas las dependencias funcionales lógicamente implicadas
en F es el cierre de F.
• Se denota el cierre de F por F+
• Se puede hallar todo lo concerniente a F+ aplicando los Axiomas de
Armstrong:
– si b Í a, entonces a ® b (reflexividad)
– si a ® b, entonces g a ® g b (aumentatividad)
– si a ® b, y b ® g, entonces a ® g (transitividad)
• Estas reglas son
– correctas (generan sólo dependencias funcionales que se cumplen en la
realidad) y
– completas (generan todas las dependencias funcionales que se
cumplen)
71902083 Bases de datos 16
Cierre de un conjunto de dependencias funcionales
Ejemplo:
• R = (A, B, C, G, H, I)
F={ A®B
A®C
CG ® H
CG ® I
B ® H}
• Algunos miembros del cierre de F+
– A®H
• Por transitividad de A ® B and B ® H
– AG ® I
• Por aumentatividad A ® C con G, para lograr que AG ® CG
y después transitividad con CG ® I
– CG ® HI
• por aumentatividad CG ® I se infiere CG ® CGI,
y por aumentatividad de CG ® H se infiere CGI ® HI,
y después por transitividad

71902083 Bases de datos 17

Cierre de un conjunto de dependencias funcionales


• Se puede simplificar más el cálculo manual de F+ utilizando las
siguientes reglas adicionales.
– Unión: Si se cumple que a ® b y que a ® g , entonces se cumple:
a®bg
– Descomposición: Si se cumple que a ® b g, entonces se cumple:
a ® b y que a ® g
– Pseudotransitividad: Si se cumple que a ® b y que g b ® d ,
entonces se cumple que a g ® d
• Las reglas anteriores se pueden inferir a partir de los axiomas de
Armstrong.

71902083 Bases de datos 18


Recubrimiento canónico
• Los conjuntos de dependencias funcionales pueden tener
dependencias redundantes que pueden inferirse desde otras
Ejemplo: A ® C es redundante en: {A ® B, B ® C, A ® C}
– Las partes de una dependencia funcional pueden ser redundantes
• Ejemplo: {A ® B, B ® C, A ® CD} se puede simplificar a
{A ® B, B ® C, A ® D}
• Ejemplo: {A ® B, B ® C, AC ® D} se puede simplificar a
{A ® B, B ® C, A ® D}
• Intuitivamente, un recubrimiento canónico de F es un conjunto
“mínimo” de dependencias funcionales equivalentes a F, sin
dependencias redundantes o que tienen partes redundantes de las
dependencias

71902083 Bases de datos 19

Objetivos de la normalización
• Sea R un esquema de relación con un conjunto F de dependencias
funcionales.
• Se decide si un esquema de relación R está en una forma “buena”.
• En el caso de que un esquema de relación R no esté en una forma
“buena”, se descompone en un conjunto de esquemas de relación
{R1, R2, ..., Rn} tales que
– todos los esquemas de relación esté en una forma buena
– La descomposición sea una descomposición sin pérdidas frente a
la unión
– preferiblemente, la descomposición debería ser que conservase
las dependencias.

71902083 Bases de datos 21


Forma normal de Boyce–Codd
• Una de las formas normales más deseables que se pueden obtener
es la forma normal de Boyce-Codd (FNBC).
– Elimina todas las redundancias que se pueden descubrir a partir
de las dependencias funcionales aunque puede que queden otros
tipos de redundancias.
• Un esquema de relación R está en la FNBC respecto al conjunto F de
dependencias funcionales si, para todas las dependencias
funcionales de F+ de la forma a®b donde a Í R y b Í R, se cumple,
al menos, una de las siguientes condiciones:
– a ® b es trivial (es decir b Í a)
– a es una superclave de R

71902083 Bases de datos 22

Forma normal de Boyce–Codd


Ejemplo:
profesor _dept (ID, nombre, sueldo, nombre_dept, edificio,
presupuesto)
– No está en FNBC porque nombre_dept ® presupuesto se cumple
en profesor_ dept, pero nombre_dept no es una superclave
Ejemplo:
profesor(ID, nombre, nombre_dept, sueldo)
– Sí está en FNBC dado que todas las dependencias funcionales no
triviales como:
ID ® nombre, nombre_dept, sueldo
Incluyen ID en la parte izquierda de la flecha, e ID es una
superclave (realmente, en este caso, la clave primaria) para
profesor

71902083 Bases de datos 23


Forma normal de Boyce–Codd
Ejemplo:
departamento(nombre_dept, edificio, presupuesto)
Sí está en FNBC dado que todas las dependencias funcionales no
triviales que se cumplen, como por ejemplo:
nombre_dept ® edificio, presupuesto
incluyen nombre_dept en la parte izquierda de la flecha, y
nombre_dept es una superclave (y clave primaria) de departamento

71902083 Bases de datos 24

Descomposición de un esquema en FNBC


• Suponga que se tiene un esquema R y una dependencia no trivial a®b que
genera un incumplimiento de la FNBC (a no es una superclave de R)
– En el diseño se sustituye R por dos esquemas:
• R1 = a ∪ b
• R2 = R – (b - a)
Ejemplo:
profesor _dept (ID, nombre, sueldo, nombre_dept, edificio, presupuesto)
Donde de cumple: nombre_dept ® edificio, presupuesto y nombre_dept
no es superclave
» a = nombre_dept
» b = {edificio, presupuesto}
– R1 = a ∪ b = (nombre_dept, edificio, presupuesto)
– R2 = R – (b - a) = R – (edificio, presupuesto) = (ID, nombre, sueldo, nombre_dept)
• En este caso no hacen falta más descomposiciones
71902083 Bases de datos 25
Tercera forma normal
• La FNBC exige que todas las dependencias no triviales sean de la forma a
® b donde a es una superclave.
• La tercera forma normal (3FN) relaja ligeramente esta restricción al
permitir dependencias funcionales no triviales cuya parte izquierda no sea
una superclave
• Un esquema de relación R está en la tercera forma normal (3FN) si para
todo a ® b en F+ donde a Í R y b Í R se cumple, al menos, una de las
siguientes condiciones:
1. a ® b es trivial (es decir, b Í a)
2. a es superclave de R
3. Cada atributo A de b – a está contenido en alguna clave candidata
de R.
(NOTA: cada atributo puede estar en una clave candidata diferente)
• Si una relación está en FNBC está en 3FN (ya que debe cumplirse en FNBC
una de las dos primeras condiciones anteriores).
• La tercera condición es una relajación mínima de FNBC para asegurar la
conservación de dependencias

71902083 Bases de datos 26

Tercera forma normal


Ejemplo:
– Si se quiere poner la condición “un estudiante puede tener más de un
tutor pero, como mucho, uno de un departamento dado”, los esquemas
profesor, estudiante y departamento siguen igual y se crea: tutor_dept
(e_ID, p_ID, nombre_dept)
– Claves candidatas: {e_ID, p_ID}, {e_ID, nombre_dept}
– tutor_dept tiene las siguientes dependencias funcionales:
• p_ID ® nombre_dept
• e _ID, nombre_dept ® p_ID
– Sea a = p_ID, b = nombre_dept
• 1: NO se cumple: a ® b no es trivial
• 2: NO se cumple: a ® b pero a no es superclave
• 3: SI se cumple: b - a = nombre_dept pertenece a clave candidata
– Sea a = e _ID, nombre_dept , b = p_ID
• 1: NO se cumple: a ® b no es trivial
• 2: SI se cumple: a ® b y a es superclave

71902083 Bases de datos 27


Dependencias Multivaloradas
• Sea R un esquema de relación y sea a Í R y b Í R. La dependencia
multivalorada
a ®® b
se cumple en R si en toda relación legal r(R), para todo par de tuplas
t1 y t2 de r tales que t1[a] = t2 [a], existen tuplas t3 y t4 de r tales que:
t1[a] = t2 [a] = t3 [a] = t4 [a]
t3[b] = t1 [b]
t3[R – b] = t2[R – b]
t4 [b] = t2[b]
t4[R – b] = t1[R – b]

71902083 Bases de datos 29

Dependencias Multivaloradas
Ejemplo:
• Comprobar si es legal el ejemplar de la figura si la relación cumple la
dependencia multivalorada ID ®® nombre_dept
– ID, calle y ciudad hacen referencia a un profesor que puede
pertenecer a varios departamentos y tener varias direcciones

• No es legal, faltarían las tuplas:


(2222, Física, Main, Manchester)
(2222,Matemáticas, North, Rye)

71902083 Bases de datos 30


Cuarta forma normal
• Un esquema de relación R está en 4FN con respecto a un conjunto D
de dependencias funcionales y multivaloradas si para todas las
dependencias multivaloradas de la forma a ®® b, donde a Í R y b
Í R, se cumple, como mínimo, una de las siguientes condiciones:
• a ®® b es trivial (es decir, b Í a or a È b = R)
• a es una superclave del esquema R
• Si una relación está en 4FN está en FNBC

71902083 Bases de datos 31

71902083 Bases de datos 32

También podría gustarte