· Descomposición
Se sugiere
descomponer los esquemas de relación que tienen muchos atributos en varios
esquemas con menos atributos:
Esquema-sucursal-cliente = (nombre-sucursal, ciudad-sucursal,
activo, nombre-cliente)
Empleando
la relación empréstito se crean las
nuevas relaciones sucursal-cliente
(Esquema
sucursal-cliente)
sucursal-cliente = Π nombre-sucursal,
ciudad-sucursal, activo, nombre-cliente (empréstito)
En
ocasiones existen casos en los que nos hace falta reconstruir las relaciones ya
que se requiere hallar datos en los que ninguna relación de la base de datos
contiene esos datos.
Cuando
se tiene una pérdida de información, es decir, no se encuentra la información
que se desea a esto se le llama descomposición
con pérdida o una descomposición de
reunión con perdida. y cuando la descomposición no es una descomposición
con perdida se le conoce como descomposición
de reunión sin perdida.
Un
ejemplo de descomposición con
pérdida cuando se tiene un atributo en común y al representarse de manera
inadecuada al ver que no satisface lo que deseamos buscar se debe considerar
otro diseño alternativo.
·
Propiedades
deseables de la descomposición
Cuando
se diseña una base de datos relacional puede hacerse necesaria la
descomposición de una relación en varias relaciones de menor tamaño obteniendo
propiedades deseadas.
Del
esquema Esquema-empréstito exige que se cumpla:
nombre-sucursal → ciudad-sucursal activo
número-préstamo → importe nombre-sucursal
ü Descomposición
de reunión sin pérdida
Resulta
fundamental que la descomposición sea una descomposición sin perdida al momento
descomponer una relación en varias relaciones de menor tamaño. Se puede
presentar un criterio antes para poder demostrar esta afirmación:
R= Esquema de relación.
F=Conjunto de dependencias funcionales
de R.
R1 y R2=
Descomposición de R.
Es una descomposición de
reunión sin pérdida de R si al menos una de las siguientes dependencias se
halla F+:
R1 ∩ R2 → R1
R1 ∩ R2
→ R2
ü Conservación
de las dependencias
Cuando
se lleva a cabo la actualización de una base de datos el sistema debe poder
comprobar que la actualización no crea ninguna relación ilegal, se deben
diseñar unos esquemas de datos relacionales que permitan validar las
actualizaciones sin que haga falta calcular las reuniones.
Para
decidir si se necesita calcular las reuniones se tiene que determinar las
dependencias funcionales las cuales se comprueban verificando cada relación una
a una. Cuando las descomposiciones resulta que tienen propiedad F′+ = F+ son descomposiciones
que conservan las dependencias:
calcular F+;
for each esquema Ri de E do
begin
Fi : = la restricción de F+ a Ri;
end
F′
:= ∅
for each restricción
Fi do
begin
F′ =
F′ ∪ Fi
end
calcular F′+;
if (F′+
= F+) then return (true)
else return (false);
ü Repetición
de información
A
veces es necesario repetir la información ya que en la descomposición se llega
a separar los datos en relaciones diferentes, con esto ya no se considera como
redundancia.
· Cuarta formal normal
También es denominada dependencia
multivalorada son utilizadas para definir una forma normal para los esquemas de
relación.
ü Dependencias
multivaloradas
Las dependencias
multivaloradas no impiden la existencia de esas tuplas, exigen que estén
presentes en la relación otras tuplas de una cierta forma; las dependencias
multivaloradas se conocen como dependencias de generación de tuplas.
Sea R un esquema de
relación y sean α ⊆ R y β ⊆ R.
La dependencia
multivalorada
α →→β
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[α] = t2[α], existen unas tuplas t3
y t4 de r tales que:
α →→β indica que la relación
entre α y β es independiente de la relación entre α y R – β. Si todas las
relaciones del esquema R satisfacen la dependencia multivalorada α →→β,
entonces α →→β es una dependencia multivalorada trivial en el esquema R.
Las dependencias
multivaloradas se utilizan de dos maneras:
1. Para verificar las relaciones y
determinar si son legales bajo un conjunto dado de dependencias funcionales y
multivaloradas.
2. Para especificar restricciones del
conjunto de relaciones legales; de este modo, sólo habrá que preocuparse
de las relaciones que satisfagan un conjunto dado de dependencias funcionales y
multivaloradas.
Al
definir dependencia multivaloradas podemos decir que cada dependencia funcional es también una
dependencia multivalorada:
Si α →β, entonces α →→β.
ü Definición de la cuarta forma
normal
La dependencia multivalorada
se puede utilizar para mejorar la BD descomponiendo el esquema en la cuarta
forma normal.
Un esquema de relación R está
en la cuarta forma normal con respecto a un conjunto F de dependencias
funcionales y multivaloradas de F+ de la forma α →→β, donde α ⊆ R y β ⊆ R, donde
mínimo se tiene que cumplir una de las siguientes condiciones:
α →→β = dependencia multivalorada trivial.
α = superclave del esquema R.
La restricción de F a
Ri es el conjunto Fi que consta de:
1. Todas las dependencias
funcionales de F+ que sólo incluyen atributos de Ri
2. Todas las dependencias multivaloradas
de la forma α →→β ∩ Ri donde α ⊆ Ri y α →→β está en F+.
ü Algoritmo de descomposición
Su analogía de 4FN y FNBC puede ser aplicable al algoritmo para la
descomposición de los esquemas. Este algoritmo es igual al algoritmo de
descomposición en FNBC solo que se emplea dependencias multivaloradas y utiliza
la restricción F+ a Ri
Sean R un esquema de
relación y F un conjunto de dependencias funcionales y multivaloradas de
R.
Suponiendo que R1 y R2
forman una descomposición de R. Esta descomposición será una de reunión
sin pérdida de R si y sólo si, como mínimo, una de las siguientes
dependencias multivaloradas se halla en F+:
R1 ∩ R2 →→ R1
R1 ∩ R2 →→ R2
·
Otras
formas normales
Las dependencias multivaloradas ayudan a comprender y abordar algunas
formas de repetición de la información.
Dependencias de reunión son restricciones que generalizan las
dependencias multivaloradas y las llevan a otra forma normal forma normal de
reunión por proyección (FNRP) y existe una clase de restricciones más
generalizada llamada forma normal de dominios y claves (FNDC).