En una base de datos relacional, cada fila en una tabla es un registro con una ID única, llamada clave. Las columnas de la tabla contienen los atributos de los datos y cada registro suele tener un valor para cada atributo
Como no estructurar una base de datos relacional:
Libros | ||||||
Título | Nombre Autor | Editorial | Dirección Editorial | Precio | Descuento | Precio final |
Viaje a la Luna | Julio | Planeta | C/ Camino de Rubín 3 | 10 | 2 | 8 |
La conquista de Europa | Julio | Timun Mas | C/ Camino de las amapolas 285 | 8 | 1 | 7 |
Brida | Paulo | Marcombo | C/ Camino de los jazmines 17 | 9 | 2 | 7 |
El Alquimista | Paulo | Planeta | C/ Camino de Rubín 3 | 10 | 1 | 9 |
- No sabemos si el Julio de la primera fila es el Julio de la segunda.
- Si hubiese que modificar el nombre de un Autor, habría que hacerlo en todas las filas en las que aparece. Si no se hace correctamente habrá discrepancias y no tiene sentido tener la información de los autores repetida.
- Si un libro pasase a ser distribuído por otra editorial, habría que cambiar también la dirección a la que está vinculada.
- El precio final se puede calcular fácilmente al restar el descuento del precio. Si almacenamos el precio final en la base de datos, podemos almacenarlo incorrectamente y dar lugar a discrepancias. Se podría decir que precio final tiene información duplicada.
Cómo sí estructurar una base de datos relacional
Libros | |||||
id | Título | Precio | Descuento | id_autor | id_editorial |
1 | Viaje a la Luna | 10 | 2 | 1 | 1 |
2 | La conquista de Europa | 8 | 1 | 2 | 2 |
3 | El Quijote | 9 | 2 | 3 | 3 |
4 | El Alquimista | 10 | 1 | 3 | 1 |
Autores | |
id | Nombre |
1 | Julio |
2 | Julio |
3 | Paulo |
Editoriales | ||
id | Editorial | Dirección |
1 | Planeta | C/ Camino de Rubín 3 |
2 | Timun Mas | C/ Camino de las amapolas 285 |
3 | Marcombo | C/ Camino de Rubín 3 |