Normalización | Vamos con todo con este ejemplo!
En este ejemplo vamos a normalizar una Base de Datos con las tablas: Autores, libros, editoriales y préstamos, primero debemos identificar las entidades y relaciones en los datos proporcionados. En este caso, parece que tenemos las siguientes entidades:
- Autores
- Libros
- Editoriales
- Préstamos
- Lectores
También hay relaciones entre estas entidades:
- Cada libro tiene un autor.
- Cada libro tiene una editorial.
- Cada préstamo está relacionado con un libro.
- Cada préstamo está relacionado con un lector.
Dado que la tabla original ya contiene información sobre préstamos, podríamos considerar tener tres tablas separadas para autores, libros y lectores, y luego una cuarta tabla para registrar los préstamos. Aquí te muestro cómo podrías normalizar los datos:
Tabla 1: Autores
| CodAutor | NombreAutor |
|---|---|
| 1 | Murray Spiegel |
| 2 | E. Petroustsos |
| 3 | Nancy Greenberg |
| 4 | Ramalho |
Tabla 2: Libros
| CodLibro | Titulo | CodAutor | CodEditorial |
|---|---|---|---|
| 1001 | Variable compleja | 1 | 1 |
| 1004 | Visual Basic 5 | 2 | 2 |
| 1005 | Estadística | 1 | 1 |
| 1006 | Oracle University | 3 | 3 |
| 1007 | Clipper 5.01 | 4 | 1 |
Tabla 3: Editoriales
| CodEditorial | NombreEditorial |
|---|---|
| 1 | McGraw Hill |
| 2 | Anaya |
| 3 | Oracle Corp. |
Tabla 4: Lectores
| CodLector | NombreLector |
|---|---|
| 1 | Pérez Gómez, Juan |
| 2 | Ríos Terán, Ana |
| 3 | Roca, René |
| 4 | García Roque, Luis |
Tabla 5: Préstamos
| CodPrestamo | CodLibro | CodLector | FechaDev |
|---|---|---|---|
| P099M09 | 1001 | 1 | 15/4/2005 |
| P089M89 | 1004 | 2 | 17/4/2005 |
| P065M05 | 1005 | 3 | 16/4/2005 |
| P699M07 | 1006 | 4 | 20/4/2005 |
| P329M07 | 1007 | 1 | 18/4/2005 |
De esta manera, hemos separado los datos en tablas más pequeñas y relacionadas entre sí, lo que facilita la gestión y consulta de la información. Cada tabla tiene una clave primaria única (por ejemplo, CodAutor, CodLibro, CodEditorial, CodLector) que se utiliza para relacionar las tablas entre sí.

