Está en la página 1de 49

QUE ES NORMALIZAR EN

BASE DE DATOS?
Normalización de Base de Datos, es el
proceso de organizar los datos en una
base de datos que incluye la creación de
tablas y el establecimiento de relaciones
entre ellas.
La normalización de una base de datos persigue
varios objetivos, principalmente reducir la
redundancia de datos y simplificar las
dependencias entre columnas, aplicándose de
manera acumulativa. Lo anterior quiere decir que
la segunda forma normal incluye a la primera, la
tercera a la segunda y así sucesivamente.
La aplicación de esta medida no debe ser
considerada como opcional, sino como un paso
necesario para garantizar un diseño de base de
datos de éxito.
Las bases de datos se normalizan para:

 Evitar la redundancia de datos


 Proteger la integridad de los datos
 Evitar problemas de actualización de los
datos en las tablas
EJEMPLO 1.
(BD: escuela)
Primera forma normal (1FN)

La primera regla de normalización se expresa


generalmente en forma de dos indicaciones
separadas.
1.Todos los atributos, valores almacenados en las
columnas, deben ser indivisibles (atómicos).
2.No deben existir grupos de valores repetidos.
Aplicando la Primera forma normal (1FN)
 Todos los atributos, valores almacenados en las columnas, deben ser indivisibles (atómicos).
 Se tienen que eliminar los grupos repetidos.

 Se tiene que crear una nueva tabla con la llave primaria de la tabla base y el grupo repetido .

Tabla alumnos

Matricula Nombre Dirección Teléfono Materia # Materia Carrera


111 José Ramos Zapata 100 55668899 Base de Datos 333 Programación
111 José Ramos Zapata 100 55668899 PSW 444 Programación
111 José Ramos Zapata 100 55668899 POO 555 Programación
222 Silvia Mores Nogal 3 12345667 Base de Datos 333 Programación
222 Silvia Mores Nogal 3 1234567 Admón. 666 Programación
Aplicando la Primera forma normal (1FN)

Solución: Aplicando el concepto de atomicidad y separar el atributo que viola 1FN en una tabla.
Tabla alumnos

Matricula Nombre Dirección Teléfono Materia # Materia Carrera


111 José Ramos Zapata 100 55668899 Base de Datos 333 Programación
111 José Ramos Zapata 100 55668899 PSW 444 Programación
111 José Ramos Zapata 100 55668899 POO 555 Programación
222 Silvia Mores Nogal 3 12345667 Base de Datos 333 Programación
222 Silvia Mores Nogal 3 1234567 Admón. 666 Programación
Aplicando la Primera forma normal (1FN)
Solución: Aplicando el concepto de atomicidad y separar el atributo que viola 1FN en una tabla.
Tabla alumnos
Matricula Nombre Apellido Dirección Teléfono Carrera
111 José Ramos Zapata 100 55668899 Programación
222 Silvia Mores Nogal 3 12345667 Programación

Tabla materias
Matricula Materia # Materia
111 Base de Datos 333
111 PSW 444
111 POO 555
222 Base de Datos 333
222 Admón. 666
Segunda forma normal (2FN)
Ahora se aplicara la segunda forma normal por lo que se tiene
que eliminar cualquier columna no llave que no dependa de
la llave primaria de la tabla.
 La Segunda Forma Normal nos habla de que cada columna
tabla debe depender de la clave o dicho de otra manera,
todos los atributos no clave deben depender por completo
de la clave primaria.
 Eliminar esas columnas de la tabla base.
 Crear una nueva tabla con esas columnas y las columnas
de la llave primaria de la cual dependen.
CONCEPTO DE DEPENDENCIA
FUNCIONAL Y DEPENDENCIA
TRANSITIVA.
En una dependencia transitiva el
E
En una dependencia funcional de
acuerdo al cuadro de abajo se atributo 1 depende funcionalmente
racionaliza que para que tanto el de la llave primaria, pero el atributo
atributo 1 como el atributo 2 2 depende del atributo 1, por lo que
dependen funcional mente de la se dice que el atributo 2 depende de
llave primaria, entonces para que la llave primaria solo que de forma
exista el atributo 1 debe existir la transitiva.
llave primaria y lo mismo con el
atributo 2

DEPENDENCIA FUNCIONAL DEPENDENCIA TRANSITIVA

LLAVE PRIMARIA LLAVE PRIMARIA

ATRIBUTO 1 ATRIBUTO 1

ATRIBUTO 2 ATRIBUTO 2
Por lo tanto para la 2FN se debe de tener en cuenta
lo siguiente:

 La tabla debe de estar en primera forma normal.

 Identificar las dependencias funcionales y


transitivas.
Aplicando la Segunda forma normal (2FN)

Tabla alumnos
Matricula Nombre Apellido Dirección Teléfono Carrera
111 José Ramos Zapata 100 55668899 Programación
222 Silvia Mores Nogal 3 12345667 Programación

Tabla materias
Matricula Materia # Materia La tabla alumnos esta en 2FN ya que
111 Base de Datos 333 cualquier valor único Matricula determina
111 PSW 444 un solo valor para cada columna por lo
111 POO 555 tanto todas las columnas dependen de la
222 Base de Datos 333 llave primaria Matricula.
222 Admón. 666
Aplicando la Segunda forma normal (2FN)
Tabla materias Analizando la tabla materias nos damos cuenta que la llave
primaria es #Materia, y el atributo Matricula es una llave
foránea, por lo que el atributo Materia depende
Matricula Materia # Materia
funcionalmente de # de Materia ya que esta es la llave
111 Base de Datos 333 primaria.
111 PSW 444
111 POO 555 Sin embargo Materia no depende de Matricula, por lo tanto
222 Base de Datos 333
hay que separar el atributo Matricula en otra tabla sin perder
la relación,
222 Admón. 666

Tabla Matricula-Materia Tabla materias


Matricula # Materia Materia # Materia
111 333 Base de Datos 333
111 444 PSW 444
111 555 POO 555
222 333 Base de Datos 333
222 666 Admón. 666
Tercera forma normal (3FN).

En cuanto a la tercera forma normal, ésta indica


que no deben existir dependencias transitivas entre
las columnas de una tabla, lo cual significa que las
columnas que no forman parte de la clave primaria
deben depender sólo de la clave, nunca de otra
columna no clave.
Aplicando la Tercera forma normal (3FN)

Ahora analizando la tabla alumnos vemos que todos los atributos dependen funcionalmente de la
llave primaria Matricula, sin embargo el atributo Carrera no depende directamente de Matricula, sino
que primero depende del alumno (Nombre) entonces la carrera existe por el alumno el cual no es
una llave , por lo que es una dependencia transitiva, por lo que tenemos que eliminar esta situación,
para lo cual separaremos el atributo Carrera en otra tabla.

Tabla alumnos
Matricula Nombre Apellido Dirección Teléfono Carrera
111 José Ramos Zapata 100 55668899 Programación
222 Silvia Mores Nogal 3 12345667 Programación
Aplicando la Tercera forma normal (3FN)

Tabla alumnos
Matricula Nombre Apellido Dirección Teléfono Carrera
111 José Ramos Zapata 100 55668899 Programación

222 Silvia Mores Nogal 3 12345667 Programación

Tabla alumnos
Matricula Nombre Apellido Dirección Teléfono Id Carrera

111 José Ramos Zapata 100 55668899 789

222 Silvia Mores Nogal 3 12345667 789

Tabla Carrera
Id Carrera Carrera
Si no se cuenta con una llave primaria para carrera Se crea o
789 Programación
se le asigna una. En este caso Id_carrera no se saca de la
456 Computación
tabla alumnos por ser una llave “creada”.
Recapitulando.
alumnos

alumnos
materias
Matricula Materia # Materia

111 Base de Datos 333


111 PSW 444 1FN
111 POO 555
222 Base de Datos 333
222 Admón. 666
alumnos relación materias
Matricula # Materia Materia # Materia
111 333 Base de Datos 333
111 444 PSW 444
111 555 POO 555
2FN
222 333 Base de Datos 333
222 666 Admón. 666
alumnos materias
Matricula Materia # Materia

111 Base de Datos 333


111 PSW 444
1FN
111 POO 555
222 Base de Datos 333
222 Admón. 666

alumnos relación materias


Matricula # Materia Materia # Materia
111 333 Base de Datos 333
2FN
111 444 PSW 444
111 555 POO 555
222 333 Base de Datos 333
222 666 Admón. 666

alumnos
relación materias
Matricula Nombre Apellido Dirección Teléfono Id Carrera
Matricula # Materia Materia # Materia
111 José Ramos Zapata 100 55668899 789
111 333 Base de Datos 333
222 Silvia Mores Nogal 3 12345667 789
111 444 PSW 444
POO 555
3FN
Id Carrera Carrera 111 555
carrera 789 Programación 222 333 Base de Datos 333

456 Computación 222 666 Admón. 666


EJEMPLO 2.
(BD: tienda)
Se tiene la siguiente tabla y se quiere normalizar hasta la
tercera forma normal.

ID_ORDEN FECHA ID_CLIENTE NOM_CLIENTE ESTADO NUM_ITEM DESC_ITEM CANT PRECIO


UNIT ($)
23011 2/23/03 1011 JOSUE OAXACA 3678 TORNILLO 3”X1/4 455 3.00

23011 2/23/03 1011 JOSUE OAXACA 4567 PIJA 2”X1/3” 98 1.50

23011 2/23/03 1011 JOSUE OAXACA 9876 ARANDELA ¼” 45 0.50

23022 2/25/03 1072 HORACIO TOLUCA 23345 TAQUETES PLASTICO 1/4 89 0.40

23033 2/27/03 1104 ANA YUCATAN 1234 PLANTA SOLDAR 2 7000

23033 2/27/03 1104 ANA YUCATAN 6743 GATO HIDRAHULICO 5 4000


5 TONS.
Aplicando la 1FN.

ORDENES

ID_ORDEN FECHA ID_CLIENTE NOM_CLIENTE ESTADO NUM_ART DESC_ART CANT PRECIO


UNIT ($)
23011 2/23/03 1011 JOSUE OAXACA 3678 TORNILLO 3”X1/4 455 3.00

23011 2/23/03 1011 JOSUE OAXACA 4567 PIJA 2”X1/3” 98 1.50

23011 2/23/03 1011 JOSUE OAXACA 9876 ARANDELA ¼” 45 0.50

23022 2/25/03 1072 HORACIO TOLUCA 23345 TAQUETES PLASTICO 1/4 89 0.40

23033 2/27/03 1104 ANA YUCATAN 1234 PLANTA SOLDAR 2 7000

23033 2/27/03 1104 ANA YUCATAN 6743 GATO HIDRAHULICO 5 4000


5 TONS.
Aplicando la 1FN.
ORDENES
ID_ORDEN FECHA ID_CLIENTE NOM_CLIENTE ESTADO NUM_ART DESC_ART CANT PRECIO
UNIT ($)
23011 2/23/03 1011 JOSUE OAXACA 3678 TORNILLO 3”X1/4 455 3.00

23011 2/23/03 1011 JOSUE OAXACA 4567 PIJA 2”X1/3” 98 1.50

23011 2/23/03 1011 JOSUE OAXACA 9876 ARANDELA ¼” 45 0.50

23022 2/25/03 1072 HORACIO TOLUCA 23345 TAQUETES PLASTICO 1/4 89 0.40

23033 2/27/03 1104 ANA YUCATAN 1234 PLANTA SOLDAR 2 7000

23033 2/27/03 1104 ANA YUCATAN 6743 GATO HIDRAHULICO 5 4000


5 TONS.

ORDENES ARTICULOS
ID_ORDEN NUM_ART DESC_ART CANT PRECIO
UNIT ($)
ID_ORDEN FECHA ID_CLIENTE NOM_CLIENTE ESTADO
23011 3678 TORNILLO 3”X1/4 455 3.00
23011 2/23/03 1011 JOSUE OAXACA
23011 4567 PIJA 2”X1/3” 98 1.50
23022 2/25/03 1072 HORACIO TOLUCA
23011 9876 ARANDELA ¼” 45 0.50
23033 2/27/03 1104 ANA YUCATAN
23022 23345 TAQUETES PLASTICO 1/4 89 0.40

23033 1234 PLANTA SOLDAR 2 7000

23033 6743 GATO HIDRAHULICO 5 4000


5 TONS.
Aplicando la 2FN.

ORDENES ARTICULOS
ID_ORDEN FECHA ID_CLIENTE NOM_CLIENTE ESTADO ID_ORDEN NUM_ART DESC_ART CANT PRECIO
UNIT ($)
23011 2/23/03 1011 JOSUE OAXACA
23011 3678 TORNILLO 3”X1/4 455 300

23022 2/25/03 1072 HORACIO TOLUCA


23011 4567 PIJA 2”X1/3” 98 150

23033 2/27/03 1104 ANA YUCATAN


23011 9876 ARANDELA ¼” 45 50

23022 23345 TAQUETES PLASTICO 1/4 89 40

ARTICULOS ARTICULOS_CANTIDAD
23033 1234 PLANTA SOLDAR 2 7000

NUM_ART DESC_ART PRECIO ($) ID_ORDEN NUM_ART CANT


23033 6743 GATO HIDRAHULICO 5 4000
5 TONS.
3678 TORNILLO 3”X1/4 300 23011 3678 455

4567 PIJA 2”X1/3” 150 23011 4567 98


LA TABLA ORDENES ESTA EN 2FN, PERO EN LA TABLA
9876 ARANDELA ¼” 50 23011 9876 45 ARTICULOS, VEMOS QUE PRECIO Y DESC_ART SON
DEPENDIENTES DE NUM_ART, PERO NO DEPENDEN DE
23345 TAQUETES PLASTICO 1/4 40 23022 23345 89 ID_ORDEN, POR LO QUE SACAMOS ESTAS COLUMNAS DE LA
TABLA ARTICULOS CON SU RESPECTIVA LLAVE.
1234 PLANTA SOLDAR 7000 23033 1234 2

6743 GATO HIDRAHULICO 4000 23033 6743 5


5 TONS.
Aplicando la 3FN.

ORDENES ARTICULOS ARTICULOS_CANTIDAD


ID_ORDEN FECHA ID_CLIENTE NOM_CLIENTE ESTADO NUM_ART DESC_ART PRECIO ID_ORDEN NUM_ART CANT
UNIT ($)
23011 2/23/03 1011 JOSUE OAXACA 23011 3678 455
3678 TORNILLO 3”X1/4 3.00

23022 2/25/03 1072 HORACIO TOLUCA 23011 4567 98


4567 PIJA 2”X1/3” 1.50

23033 2/27/03 1104 ANA YUCATAN 23011 9876 45


9876 ARANDELA ¼” 0.50

23022 23345 89
23345 TAQUETES PLASTICO 1/4 0.40
ORDENES 23033 1234 2
1234 PLANTA SOLDAR 7000
ID_ORDEN FECHA ID_CLIENTE
23033 6743 5
6743 GATO HIDRAHULICO 4000
23011 2/23/03 1011 5 TONS.

23022 2/25/03 1072

LA TABLA ARTICULOS Y LA TABLA ARTICULOS_CANTIDAD YA


23033 2/27/03 1104
ESTAN EN 3FN, PERO EN LA TABLA ORDENES, VEMOS QUE
CLIENTE NOM_CLIENTE Y ESTADO DEPENDEN DE ID_CLIENTE Y ESTA
NO ES LLAVE PRIMARIA, SINO QUE SE CONSIDERA UNA
ID_CLIENTE NOM_CLIENTE ESTADO COLUMNA MAS POR LO QUE ES UNA DEPENDENCIA
1011 JOSUE OAXACA
TRANSITIVA, POR LO QUE HAY QUE SEPARARLAS EN OTRA
TABLA EN DONDE ID_CLIENTE SE CONVIERTE EN LLAVE
1072 HORACIO TOLUCA PRIMARIA Y A SU VEZ HAY QUE DEJARLA EN LA TABLA
ORIGINAL PARA CONVERVAR LA RELACION.
1104 ANA YUCATAN
RECAPITULANDO.
ARTICULOS_CANTIDAD
ORDENES ID_ORDEN NUM_ART CANT

23011 3678 455

23011 4567 98

23011 9876 45

23022 23345 89

23033 1234 2

23033 6743 5
ARTICULOS

ORDENES CLIENTE
NUM_ART DESC_ART PRECIO
UNIT ($)
ID_ORDEN FECHA ID_CLIENTE ID_CLIENTE NOM_CLIENTE ESTADO 3678 TORNILLO 3”X1/4 300

23011 2/23/03 1011 1011 JOSUE OAXACA 4567 PIJA 2”X1/3” 150

23022 2/25/03 1072 1072 HORACIO TOLUCA 9876 ARANDELA ¼” 50

23033 2/27/03 1104 1104 ANA YUCATAN 23345 TAQUETES PLASTICO 1/4 40

1234 PLANTA SOLDAR 7000

6743 GATO HIDRAHULICO 4000


5 TONS.
OBSERVACION.

POR LA SEGUNDA FORMA NORMAL SE OBERVA QUE SE CONFORMO LA TABLA ARTICULOS_CANTIDAD, Y SE OBSERVA QUE EL

ATRIBUTO “CANT” DEPENDE DE ID_ORDEN PARA EXISTIR Y SE PUEDE PENSAR QUE DICHO ATRIBUTO SE PUEDE MOVER A LA TABLA
ORDENES, SIN EMBARGO NO ES NECESARIO YA QUE SI OBSERVAMOS EN LA TABLA ARTICULOS_CANTIDAD TENEMOS QUE DESPUES
DE NUESTRO ANALISIS HAY DOS LLAVES FORANEAS DE LAS CUALES UNA ES ID_ORDEN, Y CON ESTO SE LOGRA LA DEPENDENCIA ENTRE
“CANT” E ID_ORDEN”.
DEPENDENCIA FUNCIONAL

ARTICULOS
ARTICULOS_CANTIDAD
NUM_ART DESC_ART PRECIO
ORDENES ID_ORDEN NUM_ART CANT UNIT ($)
3678 TORNILLO 3”X1/4 300
ID_ORDEN FECHA ID_CLIENTE 23011 3678 455

4567 PIJA 2”X1/3” 150


23011 23/03 1011 23011 4567 98

9876 ARANDELA ¼” 50
23022 2/25/03 1072 23011 9876 45

23345 TAQUETES PLASTICO 1/4 40


23033 2/27/03 1104 23022 23345 89

1234 PLANTA SOLDAR 7000


23033 1234 2

6743 GATO HIDRAHULICO 4000


23033 6743 5 5 TONS.
EJEMPLO 3.
Se tiene la siguiente tabla y se quiere normalizar hasta la
tercera forma normal.
Cliente

nss nombre puesto salario emails


juanp@ecn.es;
111 Juan Pérez Jefe de Área 3000
jefe2@ecn.es
222 José Sánchez Administrativo 1500 jsanchez@ecn.es
adiaz@ecn.es;
333 Ana Díaz Administrativo 1500
ana32@gmail.com
Aplicando la 1FN.
Cliente
nss nombre puesto salario emails
juanp@ecn.es;
111 Juan Pérez Jefe de Área 3000
jefe2@ecn.es
222 José Sánchez Administrativo 1500 jsanchez@ecn.es
adiaz@ecn.es;
333 Ana Díaz Administrativo 1500
ana32@gmail.com

Cliente
nss nombre apellido puesto salario emails

111 Juan Pérez Jefe de Área 3000 juanp@ecn.es;

111 Juan Pérez Jefe de Área 3000 jefe2@ecn.es

222 José Sánchez José Sánchez Administrativo 1500 jsanchez@ecn.es

333 Ana Díaz Administrativo 1500 adiaz@ecn.es;

333 Ana Díaz Administrativo 1500 ana32@gmail.com


Aplicando la 1FN.
Cliente
nss nombre apellido puesto salario emails

111 Juan Pérez Jefe de Área 3000 juanp@ecn.es;

111 Juan Pérez Jefe de Área 3000 jefe2@ecn.es

222 José Sánchez José Sánchez Administrativo 1500 jsanchez@ecn.es

333 Ana Díaz Administrativo 1500 adiaz@ecn.es;

333 Ana Díaz Administrativo 1500 ana32@gmail.com

Cliente Mails
nss nombre apellido puesto salario nss emails

111 Juan Pérez Jefe de Área 3000 111 juanp@ecn.es;

222 José Sánchez José Sánchez Administrativo 1500 111 jefe2@ecn.es

333 Ana Díaz Administrativo 1500 222 jsanchez@ecn.es

333 adiaz@ecn.es;

333 ana32@gmail.com
Aplicando la 2FN.
Para la aplicación de la 2FN podemos observar que tanto para la tabla mails como
la tabla Cliente no se aplica, ya que en Cliente esta en 2FN ya que cualquier valor
único nss determina un solo valor para cada columna por lo tanto todas las columnas
dependen de la llave primaria Matricula.

Cliente Mails
nss nombre apellido puesto salario nss emails

111 Juan Pérez Jefe de Área 3000 111 juanp@ecn.es;

222 José Sánchez José Sánchez Administrativo 1500 111 jefe2@ecn.es

333 Ana Díaz Administrativo 1500 222 jsanchez@ecn.es

333 adiaz@ecn.es;

333 ana32@gmail.com
Aplicando la 3FN.
Para la aplicación de la 3FN podemos observar que tanto para la tabla mails esta en
3FN, pero la tabla Cliente los campos o columnas nombre y apellido dependen de la
llave primaria nss, pero las columnas puesto y salario depende de la columna
nombre para existir por lo que es una dependencia transitiva, por lo que hay que
sacar dichas columnas con la respectiva llave primaria de la tabla original para crear
la relación así como crear una nueva llave primaria para la nueva tabla.
Cliente Mails nss emails

nss nombre apellido puesto salario 111 juanp@ecn.es;

111 Juan Pérez Jefe de Área 3000 111 jefe2@ecn.es

222 José Sánchez José Sánchez Administrativo 1500 222 jsanchez@ecn.es

333 Ana Díaz Administrativo 1500 333 adiaz@ecn.es;

333 ana32@gmail.com
puesto Cliente
nss Id_puesto puesto salario nss nombre apellido

111 1777 Jefe de Área 3000 111 Juan Pérez

222 1888 Administrativo 1500 222 José Sánchez José Sánchez

333 1888 Administrativo 1500 333 Ana Díaz


RECAPITULANDO.
Cliente
nss nombre puesto salario emails
juanp@ecn.es;
111 Juan Pérez Jefe de Área 3000
jefe2@ecn.es
222 José Sánchez Administrativo 1500 jsanchez@ecn.es
adiaz@ecn.es;
333 Ana Díaz Administrativo 1500
ana32@gmail.com
Cliente Mails
nss nombre apellido nss emails

111 Juan Pérez 111 juanp@ecn.es;

222 José Sánchez José Sánchez 111 jefe2@ecn.es

333 Ana Díaz 222 jsanchez@ecn.es


puesto
333 adiaz@ecn.es;
nss Id_puesto puesto salario
333 ana32@gmail.com
111 1777 Jefe de Área 3000

222 1888 Administrativo 1500

333 1888 Administrativo 1500


EJEMPLO 4.
SE TIENE LA SIGUIENTE TABLA.

Libro
Cod_Libro Titulo Autor Editorial Nombre_Lector Fecha_Dev

1001 Variable compleja Murray Spiegel McGraw Hill Pérez Gómez, Juan 15/04/2005

1004 Visual Basic 5 E. Petroustsos Anaya Ríos Terán, Ana 17/04/2005

1005 Estadística Murray Spiegel McGraw Hill Roca, René 16/04/2005

1006 Oracle University Priya Nathan Oracle Corp. García Roque, Luis 20/04/2005

1007 Clipper 5.01 Ramalho McGraw Hill Pérez Gómez, Juan 18/04/2005
APLICANDO LA 1FN.

Libro
Cod_Libro Titulo Autor Editorial Nombre_Lector Fecha_Dev

1001 Variable compleja Murray Spiegel McGraw Hill Pérez Gómez, Juan 15/04/2005

1004 Visual Basic 5 E. Petroustsos Anaya Ríos Terán, Ana 17/04/2005

1005 Estadística Murray Spiegel McGraw Hill Roca, René 16/04/2005

1006 Oracle University Priya Nathan Oracle Corp. García Roque, Luis 20/04/2005

1007 Clipper 5.01 Ramalho McGraw Hill Pérez Gómez, Juan 18/04/2005
APLICANDO LA 1FN.

Libro
Cod_Libro Titulo Autor Editorial Apellido_Pat Apellido_Mat Nombre Fecha_Dev

1001 Variable compleja Murray Spiegel McGraw Hill Pérez Gómez Juan 15/04/2005

1004 Visual Basic 5 E. Petroustsos Anaya Ríos Terán Ana 17/04/2005

1005 Estadística Murray Spiegel McGraw Hill Roca René 16/04/2005

1006 Oracle University Priya Nathan Oracle Corp. García Roque Luis 20/04/2005

1007 Clipper 5.01 Ramalho McGraw Hill Pérez Gómez Juan 18/04/2005
APLICANDO LA 2FN.
los atributos no clave deben depender por completo de la clave primaria
Libro
Cod_Libro Titulo Autor Editorial Apellido_Pat Apellido_Mat Nombre Fecha_Dev

1001 Variable compleja Murray Spiegel McGraw Hill Pérez Gómez Juan 15/04/2005

1004 Visual Basic 5 E. Petroustsos Anaya Ríos Terán Ana 17/04/2005

1005 Estadística Murray Spiegel McGraw Hill Roca René 16/04/2005

1006 Oracle University Priya Nathan Oracle Corp. García Roque Luis 20/04/2005

1007 Clipper 5.01 Ramalho McGraw Hill Pérez Gómez Juan 18/04/2005
APLICANDO LA 2FN.
los atributos no clave deben depender por completo de la clave primaria
Libro Lector
Cod_Lector Apellido_Pat Apellido_Mat Nombre
Cod_Libro Titulo Autor Editorial

1001 Variable compleja Murray Spiegel McGraw Hill 1001 Pérez Gómez Juan

1004 Visual Basic 5 E. Petroustsos Anaya 1004 Ríos Terán Ana

1005 Estadística Murray Spiegel McGraw Hill 1005 Roca René

1006 Oracle University Priya Nathan Oracle Corp. 1006 García Roque Luis

1007 Clipper 5.01 Ramalho McGraw Hill 1007 Pérez Gómez Juan

Fecha Cod_Libro Cod_Lector Fecha_Dev

1001 1001 15/04/2005

1004 1004 17/04/2005

1005 1005 16/04/2005

1006 1006 20/04/2005

1007 1007 18/04/2005


APLICANDO LA 3FN.
no deben existir dependencias transitivas entre las columnas de una tabla.
Libro
Cod_Libro Titulo Autor Editorial

1001 Variable compleja Murray Spiegel McGraw Hill

1004 Visual Basic 5 E. Petroustsos Anaya

1005 Estadística Murray Spiegel McGraw Hill

1006 Oracle University Priya Nathan Oracle Corp.

1007 Clipper 5.01 Ramalho McGraw Hill

El análisis es el siguiente, el titulo depende de Cod_Libro para existir sin embargo Autor y
Editorial dependen de Titulo que a su vez depende de Cod_Libro para que existan o
funciones por lo que hay que sacarlos de dicha tabla, visto de otra forma existe un solo
titulo y único para cada Cod_Libro, sin embargo un Autor puede escribir varios Títulos, y a
su vez una editorial puede tener también varios títulos y varios autores.
APLICANDO LA 3FN.
no deben existir dependencias transitivas entre las columnas de una tabla.
Libro Autor Editorial
Cod_Libro Titulo Cod_Autor Autor Cod_Edit Editorial
1001 Variable compleja 801 Murray Spiegel 901 McGraw Hill
1004 Visual Basic 5 802 E. Petroustsos 902 Anaya
1005 Estadística 803 Murray Spiegel 903 Oracle Corp.
1006 Oracle University 804 Priya Nathan

1007 Clipper 5.01 805 Ramalho

El análisis es el siguiente, el titulo depende de Cod_Libro para existir sin embargo Autor y
Editorial dependen de Titulo que a su vez depende de Cod_Libro para que existan o
funciones por lo que hay que sacarlos de dicha tabla, visto de otra forma existe un solo
titulo y único para cada Cod_Libro, sin embargo un Autor puede escribir varios Títulos, y a
su vez una editorial puede tener también varios títulos y varios autores.
APLICANDO LA 3FN.
no deben existir dependencias transitivas entre las columnas de una tabla.
Libro Autor Editorial
Cod_Libro Titulo Cod_Autor Autor Cod_Edit Editorial
1001 Variable compleja 801 Murray Spiegel 901 McGraw Hill
1004 Visual Basic 5 802 E. Petroustsos 902 Anaya
1005 Estadística 803 Murray Spiegel 903 Oracle Corp.
1006 Oracle University 804 Nancy Greenberg y
Priya Nathan

1007 Clipper 5.01 805 Ramalho

Sin embargo de las tablas creadas se ha perdido la relación por lo que hay que
relacionar cada libro con los autores y con sus editoriales.
APLICANDO LA 3FN.
no deben existir dependencias transitivas entre las columnas de una tabla.
Libro-Autor Libro-Editorial
Cod_Libro Cod_Autor Cod_Libro Cod_Edit

1001 801 1001 901

1004 802 1004 902

1005 801 1005 901

1006 803 1006 903

1006 804 1007 901

Sin embargo de las tablas creadas se ha perdido la relación por lo que hay que
relacionar cada libro con los autores y con sus editoriales.
FIN EJERCICIOS.

También podría gustarte