41
Normalizaci´ on Carlos A. Olarte Bases de Datos I Carlos A. Olarte Bases de Datos I Normalizaci´ on

Normalizaci´on - DECC | PUJC – Departamento de ...atlas.puj.edu.co/~caolarte/puj/cursos/cc080/files/clases... · Sea r(R) una relaci´on y k ... Por lo anterior, el diseno˜ de

  • Upload
    vandiep

  • View
    212

  • Download
    0

Embed Size (px)

Citation preview

Normalizacion

Carlos A. OlarteBases de Datos I

Carlos A. Olarte Bases de Datos I Normalizacion

Outline

1 Introduccion

2 Dependencias Funcionales

3 Diseno de Bases de Datos

4 Forma Normal Boyce-Codd (FNBC)

5 3FN

6 Dependneicas Funcionales Multivaluadas

7 4FN

Carlos A. Olarte Bases de Datos I Normalizacion

Introduccion y Motivacion

Por que la normalizacion?

De donde salen las formas normales?

Carlos A. Olarte Bases de Datos I Normalizacion

Dependencias Funcionales

Sea r(R) una relacion y k ⊆ R una clave de r entonces:t1 6= t2 → t1[k] 6= t2[k]

Sea α ⊆ R y β ⊆ R. La Dep. Funcional

α → β

se cumple en R si para todo t1, t2:

t1[α] = t2[α] ⇒ t1[β] = t2[β]

k es una superclave de r si k → R

Carlos A. Olarte Bases de Datos I Normalizacion

Ejemplo

Dado el esquema: R(Curso,Prof ,Grupo,Horario) se cumplenlas siguientes D.F:

{curso, grupo} → profesor{curso, grupo} → horario

Y no se cumple que:

{curso} → horario

Carlos A. Olarte Bases de Datos I Normalizacion

Dependencias Triviales

Son aquellas que satisfacen todas las relaciones. Por ejemploA → A o AB → A

De forma general:

α → β es trivial si β ⊆ α

Carlos A. Olarte Bases de Datos I Normalizacion

Conceptos

Relacion que satisface una dependencia: Es una relacion en lacual se cumple la D.F

Dependencia que se cumple en un esquema: Es el conjunto dedependencias que estan obligadas a cumplir un esquema

Carlos A. Olarte Bases de Datos I Normalizacion

Ejemplo

En la relacion Horario:

Aud Curso Fac Car Dıa Hora

A5 CC080 Ing Sys Mar 7A5 TE100 Ing Elec Mie 7A5 XY100 Ing Ind Jue 7

Se satisface la dependencia Auditorio → Facultad yFacultad → hora pero no es deseable que el esquema horario lascumpla.

Carlos A. Olarte Bases de Datos I Normalizacion

Continuacion

Por lo anterior, el diseno de la base de datos debe formularse enterminos de las dependencias funcionales que debe cumplir elesquema. Por ejemplo:

Curso → {Aud ,Dia,Hora}Curso → FacultadCarrera → Facultad

Carlos A. Olarte Bases de Datos I Normalizacion

Cierre de un conjunto de D.F

Dado un conjunto F de D.F, se puede definir una serie de D.F queson implicaciones logicas de F .El conjunto F+ (conjunto cierre), es el conjunto de todas las D.Fimplicadas logicamente de F .

Carlos A. Olarte Bases de Datos I Normalizacion

Calculo de F+

Se calcula a partir de las reglas de Armstrong que son correctas ycompletas:

Reflexividad: Si β ⊆ α ⇒ α → β

Aumentatividad: Si α → β ⇒ αγ → βγ

Transitividad: Si α → β ∧ β → γ ⇒ α → γ

De las anteriores reglas se deducen las siguientes:

Union: Si α → β ∧ α → γ ⇒ α → βγ

Descomposicion: Si α → βγ ⇒ α → β ∧ α → γ

Pseudo Transitividad: Si α → β ∧ γβ → ϕ ⇒ αγ → ϕ

Carlos A. Olarte Bases de Datos I Normalizacion

Cierre de un conjunto de atributos

Se define el CCA α dado un conjunto de D.F F (α+), al conjuntode todos los atributos determinados funcionalmente a partir de α.Si k es un superclave, α+ ≡ R

Carlos A. Olarte Bases de Datos I Normalizacion

Calculo de α+

resultado := α;while(hay cambios)

for each β → γ in F doif β ⊆ resultado then

resultado := resultado ∪ γ;end ;

end ;

Carlos A. Olarte Bases de Datos I Normalizacion

Recubrimiento Canonico

Es reducir el conjunto de D.F sin modificar el cierre del mismopara facilitar el chequeo de las tuplas.

Definicion: Un atributo de una D.F es raro si se puedeeliminar sin alterar F+

Formalmente: A es raro para α si A ∈ α y F implicalogicamente (F − {α → β}) ∪ {(α− A) → β}

Carlos A. Olarte Bases de Datos I Normalizacion

Continuacion

Por otro lado, A es raro para β si A ∈ β y el conjunto de D.F:(F − {α → β}) ∪ {α → (β − A)} implica logicamente a F

El recubrimiento canonico Fc es un conjunto de D.F tales queF implica Fc y Fc implica F . Ademas:

Ninguna D.F de Fc tiene atributos rarosCada lado izquierdo de las D.F es unico

Carlos A. Olarte Bases de Datos I Normalizacion

Calculo del Fc

repeatutilizar la union para transformar α → βi y α → βj en α → βiβj

encontrar atrib raros en α → βen α o en β y eliminarlos

until F no cambieF y Fc tienen el mismo cierre

Carlos A. Olarte Bases de Datos I Normalizacion

Ejemplo

Calcular Fc de:A → BCB → CA → BAB → C

Carlos A. Olarte Bases de Datos I Normalizacion

Diseno de BD (Formas Normales)

El problema de la normalizacion:

Curso Prof CAlumno NAlumno Nota

CC080 COLARTE 4096 ABC 4.5CC080 COLARTE 1232 XYZ 4.1CC100 COLARTE 2546 MNA 4.2CC100 COLARTE 1232 XYZ 3.5CC100 COLARTE 3256 BBD 4.5

Carlos A. Olarte Bases de Datos I Normalizacion

Errores en el diseno anterior

Hay informacion duplicada (gasto de espacio)

Actualizar el profesor de un curso es muy complicado (enterminos de eficiencia)

Como saber el profesor de un curso si hay dos registros delmismo curso con profesor diferente?

Como saber el profesor de un curso si no hay ningunestudiante matriculado?

Carlos A. Olarte Bases de Datos I Normalizacion

Diseno de BD

Solucion: Descomposicion. Dicha descomposicion debeasegurar que no se pierda informacion y que el nuevo esquemase encuentre en una Forma Normal

Descomposicion: Un conjunto de esquemas {r1..rn} es unadescomposicion de r si R = R1 ∪ ... ∪ Rn

Carlos A. Olarte Bases de Datos I Normalizacion

Algunos Conceptos

Superclave: Conjunto de atributos que en conjunto permitenidentificar una tupla

Clave Candidata: Subconjunto propio de la superclave quesirven para identificar una tupla

Clave Primaria: Clave candidata elegida por el disenador

Carlos A. Olarte Bases de Datos I Normalizacion

Continuacion

Descomposicion de reunion sin perdida: Sea C un conjunto deligaduras de Integridad. Una descomposicion {R1..Rn} es unadescomposicion de reunion sin perdida si para todas lasrelaciones r que son legales bajo C se cumple que:

r = πR1(r) ./ πR2(r)... ./ πRn(r)

Carlos A. Olarte Bases de Datos I Normalizacion

Continuacion

De otra forma: Sea F un conjunto de D.F y R1 y R2 unadescomposicion de R. La descomposicion es sin perdida, si almenos una de las siguientes dependencias esta en F+:

R1 ∩ R2 → R1

R1 ∩ R2 → R2

Carlos A. Olarte Bases de Datos I Normalizacion

Conservacion de las dependencias

En un diseno de bases de datos, se deben mantener las D.F iniciales(en la medida de lo posible) , ası se descompongan las relaciones.

Carlos A. Olarte Bases de Datos I Normalizacion

FNBC

Una esquema de relacion R esta en FNBC respecto a un conjuntode D.F F si:

1 α → β es trivial

2 α es una superclave

Un diseno de B.D esta en FNBC si todas las relaciones delesquema estan en FNBC

Carlos A. Olarte Bases de Datos I Normalizacion

Alg para la descomposicion en FNBC

Resultado, hecho := {R}, falseCalcular F+

while(!Hecho)if (hay un esq Ri de Result que no este en FNBC )

sea α → βno trivial que se cumple en Ri

de modo que α → Ri no este en F+

y α ∩ β = �Resultado :=

(resultado − Ri ) ∪ (Ri − β) ∪ (α, β)end

end

Carlos A. Olarte Bases de Datos I Normalizacion

Ejemplo

Sea r(Curso,Profesor ,Creditos,Alumno,Grupo,Nota y las D.F:curso → profesor , creditoalumno, curso, grupo → notaLa descomposicion en FNBC serıa: E1(curso, prof , credito) yE2(curso, alumno, grupo, nota)

Carlos A. Olarte Bases de Datos I Normalizacion

Ej. Perdida de Dep

Sea R = {Sucur ,Client,Banq} que indica que el cliente tiene unbanquero personal. Se exige que:

banquero → sucursalsucursal , cliente → banquero

Aplicando el algoritmo se obtiene R1 = {Ban,Suc} yR2 = {Cli ,Ban} donde se pierde la 2da D.F.

Carlos A. Olarte Bases de Datos I Normalizacion

Criterios de diseno

Se debe lograr:

FNBC

Reunion sin Perdida

Conservacion de las Dependencias

Como no siempre se puede lograr se opta por:

3FN

Reunion sin Perdida

Conservacion de las Dependencias

Carlos A. Olarte Bases de Datos I Normalizacion

3FN

Es una forma normal mas debil que la FNBC . Se dice que R estaen 3FN con respecto al conjunto F de D.F si se cumple al menosuna de las siguientes condiciones:

1 α → β es trivial

2 α es una superclave

3 Cada atributo A en β − α esta contenido en alguna clavecandidata de R ( dependencias transitivas)

Carlos A. Olarte Bases de Datos I Normalizacion

3FN

Toda Relacion en FNBC esta en 3FNEn el ejemplo del banquero, la relacion se encuentra en 3FNpuesto que una clave candidata puede ser {Suc ,Cli} y{Suc} − {ban} = {Suc} esta contenido en una clave candidata. Ypara la 2da D.F, α es una superclave.

Carlos A. Olarte Bases de Datos I Normalizacion

Algoritmo para Dec en 3FN

Calcular Fc

i := 0;for each D.F α → β de Fc do

if ninguno Rj , j = 1..i contiene αβi + +;Ri := αβ

if ninguno Rj , j = 1..i contiene una clavecandidata de Ri + +;Ri := Cualquier clave candidata de R

return(R1..Ri )

Carlos A. Olarte Bases de Datos I Normalizacion

Ejemplo

Sea InfoBank = {suc , cli , banq, oficina} y las D.Fban → {suc , ofic} y {cli , suc} → banqEn el ciclo del for se descompone en las siguientes relaciones:ofic(banq, suc , ofic) y clien(cli , suc , banq)

Carlos A. Olarte Bases de Datos I Normalizacion

FNBC vs. 3FN

La FNBC puede sacrificar dependencias, la 3FN no

Ambas aseguran reunion sin perdida

En la 3FN puede duplicarse informacion (en el ejemploanterior, la informacion de donde trabaja el banquero X estaduplicada)

Carlos A. Olarte Bases de Datos I Normalizacion

Dependencias Multivaluadas

Se representa por

α →→ β

donde: Si t1[α] = t2[α],∃t3, t4 tal que:t1[α] = t2[α] = t3[α] = t4[α]t3[β] = t1[β]t3[R − β] = t2[R − β]t4[β] = t2[β]t1[R − β] = t4[R − β]

Carlos A. Olarte Bases de Datos I Normalizacion

Dependencias Multivaluadas

Informalmente: La relacion entre α y β es independiente a larelacion entre α y R − β. Por ejemplo, si un cliente puede tenermultiples direcciones, puede escribirse:

cc cliente →→ direccion

α →→ β es trivial si β ⊆ α o si β ∪ α = R

Carlos A. Olarte Bases de Datos I Normalizacion

4FN

Un esquema de relacion R esta en 4FN respecto a un conjunto Dde D.F.M si para toda D.F.M en D+ cumple:

1 α →→ β es trivial

2 α es una superclave

Carlos A. Olarte Bases de Datos I Normalizacion

Algoritmo

Resultado := {R}Hecho := false;CalcularD+

while(!Hecho)if (hay un Ri que no este en4FN)

sea α →→ β no trivialque cumple Ri de modo queα → Ri

no estaenD+yα ∩ β = �Resultado := (Res − Ri ) ∪ (Ri − β) ∪ (α, β)

end ;end ;

Carlos A. Olarte Bases de Datos I Normalizacion

Ejemplo

Sea Libros(ISBN,Titulo,Materia,Autor ,Fecha y las D.F:ISBN → Titulo,FechaISBN →→ AutorISBN →→ MateriaLa descomposicion en 4FN serıa:(ISBN,Titulo,Fecha), (ISBN,Materia)(ISBN,Autor)

Carlos A. Olarte Bases de Datos I Normalizacion

2FN

Solo reconocimiento historico. Se dice que R esta en 2FN si todoatributo A pertenece a una clave candidata y A no dependeparcialmente de ninguna clave candidata.

Carlos A. Olarte Bases de Datos I Normalizacion

1FN

Todos los atributos de una relacion deben ser monovaluados(inherente al modelo relacional)

Carlos A. Olarte Bases de Datos I Normalizacion