Para la Tercera Forma Normal (3NF) la relación debe estar en 2NF y además los atributos no clave deben ser mutuamente independientes y dependientes por completo de la clave primaria. También recordemos que dijimos que esto significa que las columnas en la tabla deben contener solamente información sobre la entidad definida por la clave primaria y, por tanto, las columnas en la tabla deben contener datos acerca de una sola cosa.
En nuestro ejemplo en 2NF, la primera tabla conserva información acerca del libro, los autores y editoriales, por lo que debemos crear nuevas tablas para satisfacer los requisitos de 3NF.
3NF
CodLibro | Titulo |
1001 | Variable compleja |
1004 | Visual Basic 5 |
1005 | Estadística |
1006 | Oracle University |
1007 | Clipper 5.01 |
CodAutor | Autor |
801 | Murray Spiegel |
802 | E. Petroustsos |
803 | Nancy Greenberg |
804 | Priya Nathan |
806 | Ramalho |
CodEditorial | Editorial |
901 | McGraw Hill |
902 | Anaya |
903 | Oracle Corp. |
Aunque hemos creado nuevas tablas para que cada una tenga sólo información acerca de una entidad, también hemos perdido la información acerca de qué autor ha escrito qué libro y las editoriales correspondientes, por lo que debemos crear otras tablas que relacionen cada libro con sus autores y editoriales.
CodLibro | codAutor |
1001 | 801 |
1004 | 802 |
1005 | 801 |
1006 | 803 |
1006 | 804 |
1007 | 806 |
CodLibro | codEditorial |
1001 | 901 |
1004 | 902 |
1005 | 901 |
1006 | 903 |
1007 | 901 |
Y el resto de las tablas no necesitan modificación.
CodLector | Paterno | Materno | Nombres |
501 | Pérez | Gómez | Juan |
502 | Ríos | Terán | Ana |
503 | Roca | | René |
504 | García | Roque | Luis |
CodLibro | CodLector | FechaDev |
1001 | 501 | 15/04/2005 |
1004 | 502 | 17/04/2005 |
1005 | 503 | 16/04/2005 |
1006 | 504 | 20/04/2005 |
1007 | 501 | 18/04/2005 |