Vous êtes sur la page 1sur 20

3

Teor!a de la normalizaci"n

# Consiste en un conjunto de conceptos que permiten conocer el grado de correcci"n de un esquema de base de datos relacional.

3.1

Teor!a de la normalizaci"n. Conceptos previos

Dependencia funcional
Ha_escrito(DNI, nombre, ISBN, t!tulo, pesetas)* CP: {DNI, ISBN}
DNI 17.897.569 17.897.569 54.325.658 54.325.658 15.236.588 nombre Pepe Prez Pepe Prez Juan Gmez Juan Gmez Mara Bur ISBN 1254567W 458264R 458264R 1254567W 8524697Y ttulo El corsario Pistas Pistas El corsario Dependencias pesetas 236.563 100.000 250.000 25.369 132.566

* Los dominios se han omitido por simplicidad

3.1

Teor!a de la normalizaci"n. Conceptos previos

Dependencia funcional: se da cuando el valor de un conjunto de atributos (X) en una relaci"n determina el valor de otros atributos (Y) en cada tupla en que aparezca.

Para cualquier par de tuplas t1 y t2 posibles en R tales que t1[X] = t2[X] se debe cumplir que t1[Y] = t2[Y] Se denota por X ! Y, y se lee como X determina a Y o Y depende funcionalmente de X. Las dependencias funcionales son propiedades de los atributos y no deben deducirse de la observacin de una extensin concreta de una relacin.
DNI 17.897.569 17.897.569 54.325.658 54.325.658 15.236.588 nombre Pepe Prez Pepe Prez Juan Gmez Juan Gmez Mara Bur ISBN 1254567W 458264R 458264R 1254567W 8524697Y ttulo El corsario Pistas Pistas El corsario Dependencias pesetas 236.563 100.000 250.000 25.369 132.566

Dependencia funcional CP: {DNI, ISBN}

3.1

Teor!a de la normalizaci"n. Conceptos previos

Ha_escrito(DNI, nombre, ISBN, t!tulo, pesetas)*

{{DNI} {nombre}, {ISBN} {ttulo}, {DNI, ISBN } {pesetas}}

* Los dominios se han omitido por simplicidad

3.1

Teora de la normalizacin Conceptos previos

Reglas de inferencia

(R1) Regla reflexiva: si Y X entonces X Y Ej.: {DNI, ISBN} {DNI} Ej.: {DNI, ISBN} {ISBN}

3.1

Teora de la normalizacin Conceptos previos

Reglas de inferencia (R2) Regla de aumento: si X Y entonces XZYZ, y XZY

Ej.: {DNI} {nombre} ! {DNI, ISBN} {nombre, ISBN} {DNI, ISBN} {nombre}

3.1

Teora de la normalizacin Conceptos previos

Reglas de inferencia

(R3) Regla transitiva (dependencia transitiva) : si X Y Y Z entonces X Z

Ej.: {DNI, ISBN} {DNI} ! {DNI, ISBN} {nombre} {DNI} {nombre}

3.1 Teora de la normalizacin Conceptos previos Reglas de inferencia

(R4) Regla de descomposicin: si X Y Z entonces X Y X Z Ej.: {DNI, ISBN} {nombre, ttulo} ! {DNI, ISBN} {nombre}, y {DNI, ISBN} {ttulo}

3.1 Teora de la normalizacin Conceptos previos Reglas de inferencia

(R5) Regla de unin o aditiva: si X Y X Z Ej.: entonces X Y Z

{DNI, ISBN} {nombre} y {DNI, ISBN} {ttulo} {DNI, ISBN} {nombre, ttulo}

3.1 Teora de la normalizacin Conceptos previos Reglas de inferencia (R6) Regla pseudotransitiva: si X Y W Y Z Ej.: {DNI} {nombre} {ISBN, nombre} {ttulo} {ISBN, DNI} {ttulo} ! entonces W X Z

Dependencia funcional CP: {DNI, ISBN}

3.1

Teor!a de la normalizaci"n. Conceptos previos

Ha_escrito(DNI, nombre, ISBN, t!tulo, pesetas)*

.{DNI} {nombre} .{DNI, ISBN} {nombre} .{DNI, ttulo} {nombre} .{DNI, ISBN, ttulo} {nombre} .{DNI, ISBN, pesetas} {nombre} .{DNI, ISBN, ttulo, pesetas} {nombre} .{ISBN} {ttulo} .{ISBN, DNI } {ttulo} .{ISBN, pesetas} {ttulo}

.{ISBN, DNI, nombre} {ttulo} .{ISBN, DNI, nombre, pesetas} {ttulo} .{DNI, ISBN} {pesetas} .{DNI, ISBN, nombre} {pesetas} .{DNI, ISBN, ttulo} {pesetas} .{DNI, ISBN, nombre, ttulo} {pesetas}

* Los dominios se han omitido por simplicidad

3.1

Teor!a de la normalizaci"n. Conceptos previos

Dependencia funcional completa Una dependencia funcional X Y entre dos conjuntos de atributos es completa si la eliminaci"n de cualquier atributo Ai de X hace que la dependencia deje de existir. {DNI, ISBN } {pesetas}

3.1

Teor!a de la normalizaci"n. Conceptos previos

Conjunto de inter$s (CI) Un conjunto de inter$s de una relaci"n es un conjunto de dependencias funcionales que basta considerar para normalizar esa relaci"n. No es %nico, pero es m!nimo. En cada dependencia funcional X Y incluida en $l

# Y consta de un solo elemento # Y depende completamente de X.

Ha_escrito(DNI: dom_dni, nombre: dom_nom, ISBN: dom_IS, t!tulo: dom_tit, pesetas: dom_pes) CP: {DNI, ISBN}

CI = {{DNI} {nombre}, {ISBN} {ttulo}, {DNI, ISBN } {pesetas}}

3.1

Teor!a de la normalizaci"n.

Diagrama de dependencias funcionales Permite una representaci"n gr&fica de las dependencias funcionales facilitando su estudio. Normalmente s"lo se representan las dependencias funcionales del conjunto de inter$s.

dni pesetas

nombre

ISBN

ttulo

Clave de una relaci"n Se dice que un subconjunto C de atributos del esquema de la relaci"n R es una clave de R - si es la clave primaria de R - o bien si tiene una restricci"n de unicidad. En ese caso, todos los atributos restantes de R dependen funcionalmente de C
Atributo primo Un atributo de una relaci"n R es primo si forma parte de alguna clave de R. Cuando un atributo no sea primo se utilizar& la expresi"n no-primo.

3.1

Teor!a de la normalizaci"n.

3.2 Teor!a de la normalizaci"n. Primera forma normal (1FN)

Definici"n de la 1FN Una relaci"n R est& en 1FN si sus atributos s"lo pueden tomar valores at"micos (simples, indivisibles).

3.2 Teor!a de la normalizaci"n. Primera forma normal (1FN)


Proveedor(vcod: dom_vcod, nombre: dom_nom, tel$fonos: dom_conj_tel, dir:dom_dir) Clave Primaria: {vcod} donde los dominios son los siguientes:

No son dominios simples

dom_vcod: entero dom_tel: cad(9) dom_ciu: cad(20) dom_ n%m: entero

dom_nom: cad(40) dom_conj_tel: conjunto de dom_tel dom_calle: cad(40) dom_dir: registro de [calle: dom_calle; dom_ciu] n%mero: dom_n%m; ciudad:

3.2 Teor!a de la normalizaci"n. Primera forma normal (1FN)


Proveedor(vcod: dom_vcod, nombre: dom_nom, tel$fonos: dom_conj_tel, dir:dom_dir)

Proveedor(vcod: dom_vcod, nombre: dom_nom, calle: dom_calle; n%mero: dom_n%m; ciudad: dom_ciu) Clave Primaria: {vcod} Lista_tel(vcod: dom_vcod, tel$fono: dom_tel) Clave Primaria: {vcod, tel$fono} Clave Ajena: {vcod} hace referencia a Proveedor donde los dominios son los siguientes:

dom_vcod: entero dom_tel: cad(9) dom_ciu: cad(20)

dom_nom: cad(40) dom_ n%m: entero dom_calle: cad(40)

3.3 Teor!a de la normalizaci"n. Segunda forma normal (2FN)

Segunda forma normal (2FN) con una sola clave Definicin de la 2FN Una relacin R est en 2FN si est en 1FN y todos sus atributos no-primos dependen funcionalmente de forma completa de la clave primaria.

3.3 Teor!a de la normalizaci"n. Segunda forma normal (2FN) Segunda forma normal (2FN) con una sola clave

CI = {{DNI} {nombre}, {ISBN} {ttulo}, {DNI, ISBN} {pesetas}}

DNI pesetas ISBN

nombre ttulo

3.3 Teor!a de la normalizaci"n. Segunda forma normal (2FN)


Segunda forma normal (2FN) con una sola clave Ha_escrito(DNI: dom_dni, nombre: dom_nom, ISBN: dom_IS, ttulo: dom_tit, pesetas: dom_pes) CP: {DNI, ISBN} No dependen funcionalmente de
forma completa de la clave primaria
DNI 17.897.569 17.897.569 54.325.658 54.325.658 15.236.588 nombre Pepe Prez Pepe Prez Juan Gmez Juan Gmez Mara Bur ISBN 1254567W 458264R 458264R 1254567W 8524697Y ttulo El corsario Pistas Pistas El corsario Dependencias pesetas 236.563 100.000 250.000 25.369 132.566

3.3 Teor!a de la normalizaci"n. Segunda forma normal (2FN) Segunda forma normal (2FN) con una sola clave Autor(DNI: dom_dni, nombre: dom_nom) Clave Primaria: {DNI} Libro(ISBN: dom_IS, ttulo: dom_tit) Clave Primaria: {ISBN} Ha _escrito(DNI: dom_dni, ISBN: dom_IS, pesetas: dom_pes) Clave Primaria: {DNI, ISBN} Clave Ajena: {DNI} hace referencia a Autor Clave Ajena: {ISBN} hace referencia a Libro

Autor

3.3 Teor!a de la normalizaci"n. Segunda forma normal (2FN) con una sola clave.
Libro

DNI 17.897.569 54.325.658


Ha_escrito

nombre Pepe Prez Juan Gmez Mara Bur

ISBN 1254567W 458264R 8524697Y

ttulo El corsario Pistas Dependencias

15.236.588

DNI 17.897.569 17.897.569 54.325.658 54.325.658 15.236.588

ISBN 1254567W 458264R 458264R 1254567W 8524697Y

pesetas 236.563 100.000 250.000 25.369 132.566

3.3 Teor!a de la normalizaci"n. Tercera forma normal (3FN) con una sola clave Definicin de la 3FN Una relacin R est en 3FN si est en 2FN y ningn atributo no-primo depende funcionalmente de forma transitiva de la clave primaria.

vcod V1 V2 V3

nombre Pepe Juan Eva

cod_provincia 46 12 46

nom_provincia Valencia Castelln Valencia

3.3 Teor!a de la normalizaci"n. Tercera forma normal (3FN) con una sola clave

Proveedor(vcod: dom_vcod, nombre: dom_nom, cod_provincia: dom_codp, nom_provincia: dom_nomp)

vcod

nombre cod_provincia nom_provincia

3.3 Teor!a de la normalizaci"n. Tercera forma normal (3FN) con una sola clave
Provincia(cod_provincia: dom_codp, nom_provincia: dom_nomp) Clave Primaria: {cod_provincia}

Proveedor(vcod: dom_vcod, nombre: dom_nom, cod_provincia: dom_codp) Clave Primaria: {vcod} Clave Ajena: {cod_provincia} hace referencia a Provincia

3.3 Teor!a de la normalizaci"n. Tercera forma normal general (3FNG) Definicin de la Tercera forma normal general (3FNG) : Una relacin est en 3FN si para toda dependencia X A (donde A es un nico atributo) se cumple una de las dos condiciones siguientes: 1) X contiene alguna clave, o 2) A es un atributo primo Si hay dependencias funcionales que no cumplen ninguna de las dos condiciones, hay que descomponer la relacin de la misma manera que se haca en la 3FN.

3.3 Teor!a de la normalizaci"n. Tercera forma normal general (3FNG) Cuando hay ms de una clave en una relacin pueden darse: a) Relaciones que a pesar de no estar en 3FN no presentan redundancias. b) Relaciones que estn en 3FN y presentan redundancias.

3.3 Teor!a de la normalizaci"n. Tercera forma normal general (3FNG) a) Socio(num_socio: dom_num, nombre: dom_nombre, edad: dom_edad, DNI:dom_dni) Clave Primaria: {num_socio} nico: {DNI}
num_socio dni

edad

nombre

3.3 Teor!a de la normalizaci"n. Tercera forma normal general (3FNG) Colegio(curso:dom_cur,cod_grupo:dom_gru,DNI_delegado: dom_DNI, aula: dom_aula) Clave Primaria: {curso, cod_grupo} nico: {aula, cod_grupo}
D N I_d ele gad o

cod_gru po

curso aula

3.3 Teor!a de la normalizaci"n. Tercera forma normal general (3FNG)


Curso 1 1 1 2 Cod_grupo Delegado A B C A Juanito Jorgito Jaimito Carmen Aula 2 2 4 3

3.3 Teor!a de la normalizaci"n. Tercera forma normal general (3FNG) Si se descompone segn la 3FN Aula(aula: dom_aula, curso: dom_cur) Clave Primaria: {aula} Colegio(aula: dom_aula, cod_grupo: dom_gru, DNI_delegado: dom_DNI) Clave Primaria: {aula, cod_grupo} Clave Ajena: {aula} hace referencia a Aula se pierde la dependencia funcional {curso, cod_grupo} {aula}, que habra que expresar con una RI.

3.3 Teor!a de la normalizaci"n. Tercera forma normal general (3FNG) Es preferible conservar la relacin original: Colegio (curso: dom_cur, cod_grupo: dom_gru, DNI_delegado: dom_DNI, aula: dom_aula) CP: {curso, cod_grupo} nico: {aula, cod_grupo} En la que queda implcita la dependencia funcional {aula } {curso}.

4 Transformacin de las Restricciones de Integridad


nombre cod 1 capitn Pertenece n DNI nombre

Equipo

Jugador

capitn: tipo lgico


Equipo(cod: dom_cod, nombre: dom_nom_equi) Clave Primaria: {cod} Jugador(DNI: dom_ DNI, nombre: dom_ nombre) Clave Primaria: {DNI} Pertenece(cod: dom_cod, DNI: dom_ DNI, capitn: dom_lgico) Clave Primaria: {DNI} VNN: {cod, capitn} Clave Ajena: {cod} hace referencia a Equipo Clave Ajena: {DNI} hace referencia a Jugador Restriccin de integridad CREATE ASSERTION Slo_un_capitn_por_equipo CHECK NOT EXISTS (SELECT * FROM Pertenece Px WHERE PX.capitn = TRUE GROUP BY Px.cod HAVING COUNT(*) >1)

4 Transformacin de las Restricciones de Integridad


Ttulo cod n Im parte n n R esp 1 DNI nom bre

A signatura

Profesor

RI:Todo profesor responsable de una asignatura, la imparte. Profesor(DNI: dom_ DNI, nombre: dom_ nombre) CP: {DNI} VNN:{Profesor} Asignatura(cod: dom_cod, Ttulo: dom_Ttulo, DNI: dom_DNI) CP: {cod} VNN:{Ttulo} CA: {DNI} ! Profesor CA: {cod, DNI} ! Imparte Imparte(cod: dom_cod, DNI: dom_ DNI) CP: {cod, DNI} CA: {cod} ! Asignatura CA: {DNI} ! Profesor

4 Transformacin de las restricciones de integridad Caso particular

an

a1 A

a0 n

r n

b1 B

b0

bm

Restriccin de integridad: Una entidad de B no puede participar dos veces en R con el mismo valor de r.

A(a0: dom_a0, a1: dom_a1,, an: dom_an) Clave Primaria: {a0} B(b0: dom_b0, b1: dom_b1,, bm: dom_bm) Clave Primaria: {b0} R(a0: dom_a0, b0: dom_b0,r: dom_r) Clave Primaria: {a0, b0} nico: {b0 , r} Clave Ajena: {a0} hace referencia a A Clave Ajena: {b0} hace referencia a B

5 Representaci"n de las transacciones

1) Investigar la transaccin para concretar sobre qu objetos (entidades o relaciones) acta y con qu operacin (insercin, borrado o modificacin). 2) Determinar en qu relaciones del esquema relacional se encuentran representados esos objetos y qu operacin debe utilizarse. 3) Sustituir en la transaccin conceptual las operaciones sobre objetos del diagrama Entidad-Relacin por operaciones sobre las relaciones del esquema relacional en las que se representan esos objetos.

5 Representaci"n de las transacciones

El conjunto de operaciones bsicas permitidas ser: operacin_bsica ::= sentencia_insert | sentencia_delete | sentencia_update utilizando para ello las operaciones de SQL estndar

5 Representaci"n de las transacciones

La sintaxis de definicin de una transaccin es la siguiente: TRANSACCIN nombre_transaccin (parmetro: tipo, ) INICIO_TRANSACCIN /*conjunto de operaciones bsicas que componen la transaccin expresadas como una secuencia, y en las que se pueden utilizar mecanismos de iteracin, seleccin, dilogo con el usuario, mensaje, interrupcin de la transaccin, */ FIN_TRANSACCIN

5 Representaci"n de las transacciones


Secuencia instruccin1; ; instruccin n Iteracin Para cada valor de conjunto hacer fin_para Mientras condicin hacer fin_mientras Repetir hasta condicin Seleccin Si condicin entonces [Si no ] fin_si Caso trmino_escalar valor 1: ; ;valor n: fin_caso Lectura: leer (variable) Mensajes hacia el usuario: Mensaje (texto del MENSAJE) Anular una transaccin: ROLLBACK acaba la transaccin sin cambios Confirmar una transaccin: COMMIT: da como buenos todos los cambios Comentarios: /* comentario */ Llamadas a otras transacciones. Parmetro de error error = -1: la transaccin ha violado alguna restriccin error = n (n ! 0): la transaccin ha modificado n tuplas.