You are on page 1of 43

Unidad VI: Diseo de Bases de Datos relacionales

Mgr. Artidoro Velapatio Ing. Edgar Taya Acosta

Normalizacin
Una de las metas del diseo de BD es construir estructuras relacionales que representen de la mejor manera posible el universo de discusin. Como producto del diseo lgico especfico obtenemos tablas que pueden presentar problemas como los siguientes: Anomalas en las operaciones: Anomalas de insercin: Incapacidad para insertar nuevas filas a la tabla, teniendo como consecuencia prdida de informacin. Anomalas de eliminacin: Prdida de informacin que no se desea al eliminar registros. Anomalas de actualizacin: Como consecuencia de modificar un mismo atributo en varios sitios. Incapacidad para representar cierta informacin. Redundancias que originan incongruencias.
02/08/2012 Ing. Edgar Taya Acosta-ESIS-2008 2

Normalizacin
Ambigedades Aparicin de registros espurios. Prdida de ciertas restricciones de integridad. Para contrarrestar estos problemas se aplica una serie de reglas que deben verificar las tablas obtenidas en el diseo lgico. El proceso de normalizacin consiste en obtener para una tabla o relacin un conjunto de tablas equivalentes que contengan la misma informacin pero eliminando anomalas y corrigiendo errores. Una forma normal es una restriccin que se aplica a los atributos de una tabla que impida la presencia de anomalas indeseadas en los datos. Cada forma normal cumple ciertas restricciones.
Ing. Edgar Taya Acosta-ESIS-2008 3

02/08/2012

Dependencias funcionales (DF)


Sea R una relacin o tabla y sea {Ri} un conjunto de relaciones derivadas de R. Para que las relaciones Ri sean equivalentes y mejores que R debe cumplirse las siguientes propiedades: Conservacin de la informacin Conservacin de las dependencias funcionales Mnima redundancia Sea R (A) una relacin o tabla y sea A = {A1, A2,...,An} el conjunto de atributos de R. Un descriptor de R es cualquier subconjunto de A. Sean X, Y A descriptores de R. Diremos que Y depende funcionalmente de X o que X determina a Y y se escribe XY si y slo si a cada valor de X le corresponde uno y solo uno valores de Y. Se dice tambin que X es un determinante e Y un determinado. En caso contrario se escribe: XY que se lee Y NO depende funcionalmente de X o que X NO determina a Y

02/08/2012

Ing. Edgar Taya Acosta-ESIS-2008

DF: Ejemplos

Para la relacin (tabla) Alumno: Alumno(Cod_alumno, Ape_alumno, Nom_alumno, Sex_alumno, Fna_alumno, Dir_alumno, Tel_alumno, Fot_alumno, Esp_alumno, Condicin). Cod_alumno Ape_alumno, Nom_alumno, Sex_alumno, Fna_alumno, Dir_alumno, Tel_alumno, Fot_alumno, Esp_alumno, Condicin (Ape_alumno, Nom_alumno) Cod_alumno, Sex_alumno, Fna_alumno, Dir_alumno, Tel_alumno, Fot_alumno, Esp_alumno, Condicin Fot_alumno Ape_alumno, Nom_alumno, Sex_alumno, Fna_alumno, Dir_alumno, Tel_alumno, Esp_alumno, Condicin Nota: Siempre se cumple que X X, y asi: Cod_alumno Cod_alumno (Ape_alumno, Nom_alumno) (Ape_alumno, Nom_alumno) Fot_alumno Fot_alumno

02/08/2012

Ing. Edgar Taya Acosta-ESIS-2008

DF: Ejemplos
En consecuencia puede escribirse: Cod_alumno A (Ape_alumno, Nom_alumno) A Fot_alumno A donde A = {Cod_alumno, Ape_alumno, Nom_alumno, Sex_alumno, Fna_alumno, Dir_alumno, Tel_alumno, Fot_alumno, Esp_alumno, Condicin} Contraejemplo: Sex_alumno Nom_alumno Puesto que, por ejemplo, para el Femenino podemos tener: Sharmelee Amrica Haydee Femenino Sandra Sheyla
Ing. Edgar Taya Acosta-ESIS-2008 6

02/08/2012

Claves
Sea R(A) una relacin o tabla y sea X A un descriptor de R. Diremos que X es una superclave de R si XA Una superclave X de R si una clave candidata de R si NO admite un subconjunto X* X tal que X* A Una clave primaria X de R es una clave candidata elegida por el tcnico para identificar de manera nica e inconfundible a cada fila de la tabla R.

Ejemplo:
Alumno(Cod_alumno, Ape_alumno, Nom_alumno, Sex_alumno, Fna_alumno, Dir_alumno, Tel_alumno, Fot_alumno, Esp_alumno). (Cod_alumno, Ape_alumno, Nom_alumno, Sex_alumno) es una superclave de Alumno porque (Cod_alumno, Ape_alumno, Nom_alumno, Sex_alumno) A (Ape_alumno, Nom_alumno) es una clave candidata porque Ape_alumno A Nom_alumno A

02/08/2012

Ing. Edgar Taya Acosta-ESIS-2008

Claves

Cod_alumno es clave candidata porque Cod_alumno A Elegimos Cod_alumno como clave primaria de Alumno.
X descriptor de R(A) NO X no es clave de R(A) X A? SI X es una superclave de R(A) FIN Hallar X* X X* A? NO X es clave candidata de R(A) SI

Se elige la clave primaria de R(A)

X no es clave de R(A)
8

02/08/2012

Ing. Edgar Taya Acosta-ESIS-2008

DF parciales y totales
Sea R(A) una relacin o tabla y sean X, Y A descriptores de R. Diremos que la DF XY es parcial si y slo existe X* X tal que: X* Y Si NO existe X* X tal que X* Y diremos que la DF X Y es total, completa o plena. Se representa por: XY

Ejemplos:
1. Sea la tabla Examen(Cod_alumno, Cod_curso, Fecha, Nota) y sea la DF:
(Cod_alumno, Cod_curso, Fecha) Nota Cod_alumno Nota Cod_curso Nota Fecha Nota (Cod_alumno, Cod_curso) Nota (Cod_alumno, Fecha) Nota (Cod_curso, Fecha) Nota NO existe X* (Cod_alumno, Cod_curso,Fecha) tal que X* Y; entonces la DF (Cod_alumno, Cod_curso,Fecha) Nota es total

02/08/2012

Ing. Edgar Taya Acosta-ESIS-2008

DF parciales y totales
2.
Sea la tabla Carga(Cod_profesor, Cod_curso, Ape_profesor, Nom_profesor, Nom_curso, Hrs_curso, Pre_curso) y sea la DF: (Cod_profesor, Cod_curso) A Esta DF es parcial puesto que: Cod_profesor Ape_profesor, Nom_profesor Cod_curso Nom_curso, Hrs_curso, Pre_curso Tenemos entonces: (Cod_profesor, Cod_curso) Ape_profesor, Nom_profesor (a) (Cod_profesor, Cod_curso) Nom_curso, Hrs_curso, Pre_curso (b) Como: Cod_profesor (Cod_profesor, Cod_curso) Cod_curso (Cod_profesor, Cod_curso) Se cumple que existe X* X tal que X* Y, en consecuencia las DF (a) y (b) son parciales

02/08/2012

Ing. Edgar Taya Acosta-ESIS-2008

10

DF transitivas (DFT)
Sea R(A) una relacin o tabla y sean X, Y A descriptores de R. Diremos que la DF X Y es transitiva y se escribe: X Y si y slo si: X Y= Existe Z tal que X Z = y Y Z = X Z , Z Y, Z X entonces X Y Grficamente podemos representar:

Y
02/08/2012 Ing. Edgar Taya Acosta-ESIS-2008 11

DF transitivas: Ejemplos
1 Sea la tabla Pagos(Cod_alumno, Cod_curso, Periodo, Universitario, Monto). Universitario es un atributo lgico (bit) que toma el valor 1 si el alumno de la Academia Ada BYRON es alumno de la Universidad ADA BYRON, y 0 en otro caso. El monto de las pensiones es segn:
Universitario 1 0 Monto 50 90

Entonces tenemos
Cod_alumno Universitario

Monto

Por lo tanto: Cod_alumno Monto


02/08/2012 Ing. Edgar Taya Acosta-ESIS-2008 12

DF transitivas: Ejemplos
2 Sea la tabla Acta(Cod_alumno, Ape_alumno, Nom_alumno, P1, P2, P3, PP, Examen, Software, Documentacin, Trabajo, Promedio, Observacin). Es claro que: Cod_alumno A Tenemos las DF: (P1, P2, P3) PP puesto que PP = (P1+ P2 + P3)/3 (Software, Documentacin) Trabajo puesto que Trabajo = (Software + Documentacin)/2 (PP, Examen, Trabajo) Promedio puesto que Promedio = Redondear ((PP + Trabajo + Examen)/3,0) Promedio Observacin puesto que Observacin = SI (Promedio>10, Aprobado, Desaprobado) Entonces tenemos las DFT: Cod_alumno PP Cod_alumno Trabajo Cod_alumno Promedio Cod_alumno Observacin
02/08/2012 Ing. Edgar Taya Acosta-ESIS-2008 13

Dependencias Multivaluadas (DMV)


Recordemos que cuando existe la DF X Y a cada valor de X le corresponde uno y slo uno valores de Y. Pero hemos visto que existen atributos multivaluados. Vamos a ver un ejemplo:
Autor
Mario VARGAS LLOSA Gabriel GARCIA MARQUEZ

Ttulo
{La Ciudad y los Perros, La Guerra del Fin del Mundo} {Cien Aos de Soledad, El Otoo del Patriarca}

Editorial
{Seix Barra, El Comercio} {Oveja Negra}

Como los valores de atributos deben ser atmicos debemos escribir:


Autor
Mario VARGAS LLOSA Mario VARGAS LLOSA Mario VARGAS LLOSA Mario VARGAS LLOSA Gabriel GARCIA MARQUEZ Gabriel GARCIA MARQUEZ

Ttulo
La Ciudad y los Perros La Ciudad y los Perros La Guerra del Fin del Mundo La Guerra del Fin del Mundo Cien Aos de Soledad El Otoo del Patriarca
Ing. Edgar Taya Acosta-ESIS-2008

Editorial
Seix Barral El Comercio Alfaguara Seix Barral Oveja Negra Oveja Negra
14

02/08/2012

Dependencias Multivaluadas (DMV):Ejemplo


Observamos que en la relacin Novela (Autor, Ttulo, Editorial) para el atributo Autor para cada valor le corresponde ms de un valor de los atributos Ttulo y Editorial. Este hecho se representa por X Y; es decir: Autor Ttulo Autor Editorial y se denomina Dependencia Multivaluada (DMV). Ahora vamos a dar una definicin formal: Sea R(A) una relacin o tabla y sean X, Y A descriptores de R. Diremos que X multidetermina a Y o que existe una dependencia multivaluada X Y si a todo valor de X le corresponde un conjunto finito de valores de Y. Nota: Es equivalente X Y a X { Y}
Tenemos entonces, para la tabla Novela las DMV

Autor Ttulo Autor Editorial


02/08/2012 Ing. Edgar Taya Acosta-ESIS-2008 15

Dependencias Multivaluadas (DMV):Contraejemplo


Veamos un caso donde no hay DMV. Sea la relacin Libro (Autor, Ttulo, Editorial):
Ttulo SQL Server 7.0 SQL Server 7.0 SQL Server 7.0 Autor Gayle COFFMAN Gayle COFFMAN David BESCH Ao 1999 2002 1998

Ttulo Autor Ttulo Ao La DF en este caso es: (Ttulo, Autor) Ao


Nota: Es conveniente evitar las DMV y convertirlas en DF. Pero esto tiene que ver con la Cuarta Forma Normal.
02/08/2012 Ing. Edgar Taya Acosta-ESIS-2008 16

Dependencias de Combinacin (DC)


Existe, como ms tarde veremos, las operaciones de: Proyeccin (Project): que consiste en descomponer una relacin R en otras relaciones R1, R2,...,Rn en base a un atributo comn, seleccionando una o varias columnas de la relacin.
R
A1 A2 A3 A4 A5 A6

R1 A1 A2 A3 A5 A1

R2 A4 A6

02/08/2012

Ing. Edgar Taya Acosta-ESIS-2008

17

Dependencias de Combinacin (DC)


Combinacin (Join): que consiste en juntar dos o ms relaciones para obtener una relacin R en base a un atributo comn.
R1 A1 A2 A3 A5 A1 R2 A4 A6

R A1 A2 A3 A4 A5 A6

El problema es que cuando se combinan relaciones obtenidas de una relacin R mediante la proyeccin, no necesariamente se obtiene la relacin original R.
Ing. Edgar Taya Acosta-ESIS-2008 18

02/08/2012

Descomposicin con prdida y sin prdida


Sea una relacin R (A1,A2,...,An) descompuesta mediante la proyeccin en R1, R2,..., Rk relaciones. Diremos que: La descomposicin es sin prdida si R = JOIN (R1, R2,...,Rk) La descomposicin es con prdida si R JOIN (R1, R2,...,Rk) Es decir que aparecen filas espurias, que no estaban originalmente Una relacin R(A) satisface una dependencia de combinacin (DC) y se escribe: R* (R1, R2,..., Rk) si y slo si R = JOIN (R1, R2,...,Rk)
02/08/2012 Ing. Edgar Taya Acosta-ESIS-2008 19

Formas normales
Primera Forma Normal (1FN): Una relacin o tabla R(A) est en la Primera Forma Normal si slo si todos los valores de sus atributos son atmicos. Es decir; en toda interseccin Fila-Columna debe haber un solo valor. Segunda Forma Normal (2FN): Una relacin o tabla R(A) est en la Segunda Forma Normal si slo si est en la 1FN y todo atributo no clave tiene DF completa de la clave primaria de R. Tercera Forma Normal (3FN): Una relacin o tabla R(A) est en la Tercera Forma Normal si slo si est en la 2FN y no existen DF transitivas para atributos no claves. Forma Normal Boyce - Codd (FNBC): Una relacin o tabla R(A) est en la Forma Normal Boyce - Codd si slo si est en la 3FN y toda determinante es clave candidata.
Ing. Edgar Taya Acosta-ESIS-2008 20

02/08/2012

Formas normales
Cuarta Forma Normal (4FN): Una relacin o tabla R(A) est en la Cuarta Forma Normal si slo si est en la FNBC y si toda DMV (Dependencia Multi-Valuada) es una DF (Dependencia Funcional). Quinta Forma Normal (5FN): Una relacin o tabla R(A) est en la Quinta Forma Normal si slo si est en la 4FN y si toda DC (Dependencia de Combinacin) es consecuencia de las claves candidatas.
1FN 2FN
3FN FNBC 4FN 5FN

02/08/2012

Ing. Edgar Taya Acosta-ESIS-2008

21

1FN: Ejemplos
Sea la tabla Alumno(Cod_alumno, Apellido, Nombre, Curso)
ALUMNO Cod_alumno 215690 Apellido PEREZ GODOY Nombre Ana Giovanna Curso BD101, SO103, AS203

215695

GOMEZ SANCHEZ

Diego Armando

BD101, DG202

Como puede observarse esta tabla Alumno no est en 1FN, porque en la columna Curso, hay valores no atmicos. Vamos a ponerla en 1FN:
ALUMNO Cod_alumno 215690 215690 215690 215695 215695
02/08/2012

Apellido PEREZ GODOY PEREZ GODOY PEREZ GODOY GOMEZ SANCHEZ GOMEZ SANCHEZ

Nombre Ana Giovanna Ana Giovanna Ana Giovanna Diego Armando Diego Armando

Curso BD101 SO103 DG202 BD101 DG202


22

Ing. Edgar Taya Acosta-ESIS-2008

2FN: Ejemplos
Sea la tabla Alumno(Cod_alumno, Apellido, Nombre, Cod_curso, Nom_curso) en 1FN
ALUMNO Cod_alumno 215690 215690 215690 215695 215695 Apellido PEREZ GODOY PEREZ GODOY PEREZ GODOY GOMEZ SANCHEZ GOMEZ SANCHEZ Nombre Ana Giovanna Ana Giovanna Ana Giovanna Diego Armando Diego Armando Cod_curso BD101 SO103 DG202 BD101 DG202 Nom_curso Base de Datos Windows 2000 Graficacin en 3D Base de Datos Graficacin en 3D

Clave Primaria = (Cod_alumno, Cod_curso) Como puede observarse esta tabla Alumno no est en 2FN, porque hay DF parciales como: Cod_alumno Apellido, Nombre Cod_curso Nom_curso
02/08/2012 Ing. Edgar Taya Acosta-ESIS-2008 23

2FN: Ejemplos
La solucin es descomponer la tabla Alumno(Cod_alumno, Apellido, Nombre, Cod_curso, Nom_curso) en dos tablas: Alumno(Cod_alumno, Apellido, Nombre, Cod_curso) y Curso( Cod_curso, Nom_curso; Horas, Precio)
ALUMNO Cod_alumno Apellido Nombre Cod_curso

215690
215690 215690 215695 215695

PEREZ GODOY
PEREZ GODOY PEREZ GODOY GOMEZ SANCHEZ GOMEZ SANCHEZ

Ana Giovanna
Ana Giovanna Ana Giovanna Diego Armando Diego Armando

BD101
SO103 DG202 BD101 DG202

Clave Primaria = (Cod_alumno, Cod_curso)


CURSO Cod_curso BD101 Nom_curso Base de Datos Horas 6 Precio 80

SO103
DG202
02/08/2012

Windows 2000
Graficacin en 3D

8
5

100
70
24

Ing. Edgar Taya Acosta-ESIS-2008

3FN: Ejemplos
Sea la tabla Pagos(Cod_alumno, Cod_curso, Periodo, Universitario, Monto). Universitario es un atributo lgico (bit) que toma el valor 1 si el alumno de la Academia Ada BYRON es alumno de la Universidad ADA BYRON, y 0 en otro caso.
PAGOS Cod_alumno 215690 215690 215690 215695 215695 Cod_curso BD101 SO103 DG202 BD101 DG202 Periodo 2001 V 2001 V 2001 -V 2001 -V 2001 -V Universitario 1 1 1 0 0 Monto 50 50 50 90 90

Clave Primaria = (Cod_alumno, Cod_curso) Esta tabla Pagos tiene una DF transitiva para una atributo no clave como Monto: Cod_alumno Monto
02/08/2012 Ing. Edgar Taya Acosta-ESIS-2008 25

3FN: Ejemplos
La solucin es descomponer la tabla Pagos(Cod_alumno, Cod_curso, Periodo, Universitario, Monto) en dos tablas: Pagos(Cod_alumno, Cod_curso, Periodo, Universitario). y Condicin( Universitario, Monto)
PAGOS Cod_alumno 215690 215690 215690 Cod_curso BD101 SO103 DG202 Periodo 2001 V 2001 V 2001 -V Universitario 1 1 1

215695
215695

BD101
DG202

2001 -V
2001 -V

0
0

Clave Primaria = (Cod_alumno, Cod_curso)


CONDICION Universitario 1 0 Monto 50 90

Clave Primaria = Universitario


02/08/2012 Ing. Edgar Taya Acosta-ESIS-2008 26

3FN: Ejemplos

De otro lado la 3FN servir tambin para eliminar columnas que estn dems, puesto que calculan valores que pueden almacenarse en variables de memoria. Asi para la tabla Acta(Cod_alumno, Ape_alumno, Nom_alumno, P1, P2, P3, PP, Examen, Software, Documentacin, Trabajo, Promedio, Observacin) existen las DF transitivas Cod_alumno PP Cod_alumno Trabajo Cod_alumno Promedio Cod_alumno Observacin Entonces podemos eliminar las columnas PP, Trabajo, Promedio y Observacin quedando la relacin Acta como sigue: Acta(Cod_alumno, Ape_alumno, Nom_alumno, P1, P2, P3, Examen, Software, Documentacin) Puesto como ya se vio las columnas eliminadas pueden considerarse como variables de memoria y presentarlas como columnas virtuales en una consulta SQL como veremos posteriormente.

02/08/2012

Ing. Edgar Taya Acosta-ESIS-2008

27

Forma Normal Boyce Codd: Ejemplos


En las relaciones 3FN se pueden presentar los siguientes problemas:
Hay varias claves candidatas. Esas claves candidatas son compuestas. Las claves candidatas se traslapan. Para resolver estos casos se defini la FNBC.

Ejemplos:
Sea la tabla Asesora(Cod_alumno, Especialidad, Asesor)
ASESORIA Cod_alumno 216095 216100 216105 216110 216115 216115 216100 216105 Especialidad Matemtica Computacin Matemtica Matemtica Computacin Matemtica Matemtica Computacin Asesor David HILBERT Bill GATES Evarist GALOIS Evarist GALOIS Edgard CODD David HILBERT Evarist GALOIS Bill GATES
28

02/08/2012

Ing. Edgar Taya Acosta-ESIS-2008

FNBC: Ejemplos
En la tabla Asesora(Cod_alumno, Especialidad, Asesor) tenemos que: (Cod_alumno, Especialidad) (Cod_alumno, Asesor) son claves candidatas compuestas y Cod_alumno est en las 2 claves candidatas. Pero existe la DF Asesor Especialidad y Asesor es determinante pero no es clave candidata. Vamos a solucionar este problema descomponiendo la tabla Asesora(Cod_alumno, Especialidad, Asesor) en dos tablas: Alumno(Cod_alumno, Especialidad) y Asesor( Asesor, Especialidad) c/u de las cuales si estn en la FNBC.
Ing. Edgar Taya Acosta-ESIS-2008 29

02/08/2012

4FN: Ejemplos
En la tabla Novela (Autor, Ttulo, Editorial) tenemos las DMV: Autor Ttulo Autor Editorial
Autor Mario VARGAS LLOSA Mario VARGAS LLOSA Ttulo La Ciudad y los Perros La Ciudad y los Perros Editorial Seix Barral El Comercio

Mario VARGAS LLOSA


Mario VARGAS LLOSA Gabriel GARCIA MARQUEZ Gabriel GARCIA MARQUEZ

La Guerra del Fin del Mundo


La Guerra del Fin del Mundo Cien Aos de Soledad El Otoo del Patriarca

Alfaguara
Seix Barral Oveja Negra Oveja Negra

Para eliminar las DMV y convertirlas en DF y transformar la tabla Novela a la 4FN procedemos como sigue:
02/08/2012 Ing. Edgar Taya Acosta-ESIS-2008 30

4FN: Ejemplos
Descomponer la tabla Novela (Autor, Ttulo, Editorial en las tablas Autor_Ttulo (Autor, Ttulo) y Editorial( Autor, Editorial) donde solo hay DF y en consecuencia estn en 4FN.
AUTOR_TITULO Autor Mario VARGAS LLOSA Mario VARGAS LLOSA Gabriel GARCIA MARQUEZ Gabriel GARCIA MARQUEZ Ttulo La Ciudad y los Perros La Guerra del Fin del Mundo Cien Aos de Soledad El Otoo del Patriarca

TITULO_EDITORIAL Ttulo La Ciudad y los Perros La Ciudad y los Perros La Guerra del Fin del Mundo La Guerra del Fin del Mundo Cien Aos de Soledad Editorial Seix Barral El Comercio Alfaguara Seix Barral Oveja Negra

El Otoo del Patriarca


02/08/2012 Ing. Edgar Taya Acosta-ESIS-2008

Oveja Negra
31

5FN: Ejemplos
Sea la tabla Software(Compaa, Versin, rea)
SOFTWARE
Compaa Microsoft Microsoft Borland C.A. Ingls Espaol Espaol Espaol Versin rea Bases de Datos Sistema Operativo Bases de Datos Bases de Datos

que se descompone en 3:
SOFTWARE1 Compaa Microsoft Microsoft Borland C.A. Versin Ingls Espaol Espaol Espaol SOFTWARE2 SOFTWARE3 Compaa Microsoft Microsoft Borland C.A.
Ing. Edgar Taya Acosta-ESIS-2008

Versin
Ingls

rea
Bases de Datos

rea Bases de Datos Sistema Operativo Bases de Datos Bases de Datos


32

Espaol
Espaol

Sistema Operativo
Bases de Datos

02/08/2012

5FN: Ejemplos
Si se halla la operacin de combinacin obtenemos: JOIN (Software1, Software2) Software contienen filas espurias.
JOIN (SOFTWARE2, SOFTWARE3) Compaa Microsoft Microsoft Microsoft Borland Borland C. A. C.A. Versin Ingls Espaol Espaol Ingls Espaol Ingls Espaol rea Bases de Datos Bases de Datos Sistema Operativo Bases de Datos Bases de Datos Bases de Datos Bases de Datos Versin Ingls Espaol Espaol Espaol Espaol Espaol Espaol rea Bases de Datos Sistema Operativo Bases de Datos Sistema Operativo Bases de Datos Sistema Operativo Bases de Datos JOIN (SOFTWARE1, SOFTWARE2) Compaa Microsoft Microsoft Microsoft Borland Borland C. A. C.A.

JOIN (Software2, Software3) Software contienen filas espurias.


02/08/2012 Ing. Edgar Taya Acosta-ESIS-2008 33

5FN: Ejemplos
JOIN (Software1, Software3) Software contienen filas espurias. .
JOIN (SOFTWARE1, SOFTWARE3) Compaa Microsoft Microsoft Microsoft Microsoft Borland C.A. Versin Ingls Espaol Ingls Espaol Espaol Espaol rea Bases de Datos Bases de Datos Sistema Operativo Sistema Operativo Bases de Datos Bases de Datos JOIN (SOFTWARE1, SOFTWARE2, SOFTWARE3) Compaa Microsoft Microsoft Borland C.A. Versin Ingls Espaol Espaol Espaol rea Bases de Datos Sistema Operativo Bases de Datos Bases de Datos

Mientras que JOIN (Software1,Software2, Software3) = Software

02/08/2012

Ing. Edgar Taya Acosta-ESIS-2008

34

5FN: Ejemplos
Entonces existe una DC: Software* (Software1, Software2, Software3) Y adems en cada caso: (Compaa, Versin) (Versin, rea) (Compaa, rea) son claves candidatas. Por lo tanto las tablas: Software1(Compaa, Versin) Software2(Versin, rea) Software3(Compaa, rea) estn en 5ta forma normal ya que slo hay Dependencias funcionales
02/08/2012 Ing. Edgar Taya Acosta-ESIS-2008 35

Ejemplo de Normalizacin

Vamos a utilizar la metodologa (no recomendada) de partir de una relacin (tabla) universal. Supongamos que la ficha de matrcula para la Academia Ada BYRON tiene una forma similar a la siguiente:

Academia Ada BYRON


Fecha:
DATOS del ALUMNO Nombre Apellidos Direccin Telfono Especialidad

DATOS de los CURSOS Cdigo Nombre Turno

02/08/2012

Ing. Edgar Taya Acosta-ESIS-2008

36

Relacin Universal
Construimos una relacin universal Matrcula con todos los posibles atributos:
MATRICULA
Cdigo_alumno Apellido_alumno Nombre_alumno Direccin_alumno Telfono_alumno Especialidad_alumno Codigo_curso1 Nombre_curso1 Turno_curso1 Codigo_curso2 Nombre_curso2 Turno_curso2 Codigo_curso3 Nombre_curso3 Turno_curso3 Codigo_curso4 Nombre_curso4 Turno_curso4

La relacin universal MATRICULA evidentemente no est en 1FN puesto que hay valores que se repiten con respecto a los cursos y se van a presentar anomalas de insercin, modificacin y eliminacin

02/08/2012

Codigo_curso5 Nombre_curso5 Turno_curso5

Ing. Edgar Taya Acosta-ESIS-2008

37

Poner en 1FN
Para ponerla en 1FN decomponemos Matrcula en tres relaciones o tablas: Alumno, Curso y Clase.
CURSO ALUMNO
Cdigo_alumno Apellido_alumno Nombre_alumno Sexo_alumno Fechanac_alumno Direccin_alumno Telfono_alumno Foto_alumno Especialidad_alumno Descripcin_especialidad Cdigo_curso Nombre_curso Sumilla Horas Precio Prerrequisitos

CLASE
Nmero_clase Cdigo_curso Cdigo_profesor Apellido_profesor Nombre_profesor Horario Aula Vacantes Matriculados Asistentes Fecha_clase Hora_clase Ing. Edgar Taya Acosta-ESIS-2008

Las relaciones Alumno, Curso y Clase estn en 1FN, pero Clase no est en 2FN porque hay dependencias parciales
02/08/2012

38

Poner en 2FN
Para poner la tabla Clase en 2FN la decomponemos la tabla Clase en dos relaciones o tablas: Clase y Profesor.
ALUMNO
Cdigo_alumno Apellido_alumno Nombre_alumno Sexo_alumno Fechanac_alumno Direccin_alumno Telfono_alumno Foto_alumno Especialidad_alumno Descripcin_especialidad

CURSO
Cdigo_curso
Nombre_curso Sumilla Horas Precio Prerrequisitos

PROFESOR
Cdigo_profesor Apellido_profesor Nombre_profesor Sexo_profesor Fechanac_profesor Grado_Ttulo_profesor DNI_profesor Direccin_profesor Telfono_profesor Pago_profesor

CLASE
Nmero_clase Fecha_clase Hora_clase Cdigo_curso Cdigo_profesor Horario Aula Vacantes Matriculados Asistentes

Las relaciones Alumno, Curso,Profesor y Clase estn en 2FN, pero Alumno no est en 3FN porque hay dependencias transitivas
Ing. Edgar Taya Acosta-ESIS-2008 39

02/08/2012

Poner en 3FN
Para poner la tabla Alumno en 3FN la descomponemos la tabla Alumno en dos relaciones o tablas: Alumno y Especialidad.
ALUMNO
Cdigo_alumno Apellido_alumno Nombre_alumno Sexo_alumno Fechanac_alumno Direccin_alumno Telfono_alumno Foto_alumno Especialidad_alumno

CURSO
Cdigo_curso
Nombre_curso Sumilla Horas Precio Prerrequisitos

ESPECIALIDAD
Especialidad_alumno Descripcin_especialidad

PROFESOR
Cdigo_profesor Apellido_profesor Nombre_profesor Sexo_profesor Fechanac_profesor Grado_Ttulo_profesor DNI_profesor Direccin_profesor Telfono_profesor Pago_profesor Ing. Edgar Taya Acosta-ESIS-2008

CLASE
Nmero_clase Fecha_clase Hora_clase Cdigo_curso Cdigo_profesor Horario Aula Vacantes Matriculados Asistentes

Las relaciones Alumno, Especialidad, Curso,Profesor y Clase estn en 3FN y en la FNBC, pero en Clase pueden presentarse multivalores

02/08/2012

40

Poner en 4FN
Para poner la tabla Clase en 4FN la descomponemos la tabla Clase en dos relaciones o tablas: Clase y Sesin_Clase.
ALUMNO
Cdigo_alumno Apellido_alumno Nom_alumno Sexo_alumno Fechanac_alumno Direccin_alumno Telfono_alumno Foto_alumno Especialidad_alumno

CURSO
Cdigo_curso
Nombre_curso Sumilla Horas Precio Prerrequisitos

SESION_CLASE
Nmero_clase Fecha_clase Hora_clase Asistentes

ESPECIALIDAD
Especialidad_alumno Descripcin_especialidad

PROFESOR
Cdigo_profesor

CLASE
Nmero_clase Cdigo_curso Cdigo_profesor Horario Aula Vacantes Matriculados 02/08/2012

Apellido_profesor Nombre_profesor Sexo_profesor Fechanac_profesor Grado_Ttulo_profesor DNI_profesor Direccin_profesor Telfono_profesor Pago_profesor

Las relaciones Alumno, Especialidad, Curso,Profesor Clase y Sesin_Clase estn en 4FN y 5FN
41

Ing. Edgar Taya Acosta-ESIS-2008

Comentario
En el ejemplo para la BD Academia que hemos desarrollado hemos partido de una relacin (tabla) universal donde se ha considerado todos los atributos posibles. Luego hemos considerado las dependencias funcionales, las dependencias multivaluadas y las dependencias de combinacin. En base a esto hemos obtenido las 6 tablas resultantes. Cmo obtener las otras tablas derivadas que obtuvimos en el diseo lgico especfico? El problema es que la teora nos dice que debemos considerar todas las dependencias funcionales posibles y las derivadas de estas, y luego las dependencias multivaluadas y de combinacin. Pero esto no se hace en la mayora de los casos. Solo se hacen ciertas preguntas para llegar hasta la 3FN. La ventaja de aplicar el proceso de diseo previo es que el esquema resultante estar normalizado hasta la 3FN y slo habra que preocuparse en la FNBC y la 4FN. La 5FN solo se presentar en casos especiales o BD complejas.
Ing. Edgar Taya Acosta-ESIS-2008 42

02/08/2012

Fin
Tacna, otoo del 2008

You might also like