2.0 Introducción
Las bases de datos relacionales tienen dos diferencias claves con respecto a la forma de almacenar datos que hemos visto hasta ahora:
- Estructura de tablas: Los datos se organizan en tablas que tienen filas y columnas, donde cada fila representa un registro único y cada columna representa un atributo del registro.
- Relaciones entre tablas: Las tablas pueden estar relacionadas entre sí a través de claves primarias y foráneas, lo que permite establecer conexiones entre diferentes conjuntos de datos.
Vamos a verlo con un ejemplo simple usando dos tablas.
Clientes
ID | Nombre | Dirección | |
---|---|---|---|
1 | Juan | xyz@gmail.com | Calle Falsa 123 |
2 | Ana | abc@gmail.com | Calle Real 456 |
3 | Luis | 123@gmail.com | Calle Verde 789 |
4 | Ana | 987@gmail.com | Calle Azul 101 |
Pedidos
ID | Cliente_ID | Producto | Cantidad | Fecha |
---|---|---|---|---|
1 | 1 | Laptop | 1 | 2023-10-01 |
2 | 2 | Smartphone | 2 | 2023-10-02 |
3 | 1 | Tablet | 1 | 2023-10-03 |
4 | 3 | Monitor | 1 | 2023-10-04 |
5 | 2 | Teclado | 1 | 2023-10-05 |
6 | 1 | Ratón | 1 | 2023-10-06 |
7 | 3 | Impresora | 1 | 2023-10-07 |
En estas tablas podemos observar:
- La tabla "Clientes" tiene una columna
ID
que sirve para identificar de manera única a cada cliente. - La tabla "Pedidos" tiene una columna
Cliente_ID
que hace referencia alID
de la tabla Clientes.
Ventajas de las bases de datos relacionales
Usar este tipo de bases de datos ofrece varias ventajas:
- Integridad de los datos: Las relaciones entre tablas ayudan a mantener la consistencia de los datos.
- Flexibilidad: Se pueden realizar consultas complejas para obtener información relacionada entre diferentes tablas.
- Escalabilidad: Las bases de datos relacionales pueden manejar grandes volúmenes de datos y son adecuadas para aplicaciones empresariales, almacenar datos en ficheros se vuelve ineficiente a medida que crece la cantidad de información.
- Seguridad: Permiten definir permisos y roles para controlar el acceso a los datos.
- Normalización: Ayudan a reducir la redundancia de datos al dividir la información en tablas relacionadas, lo que mejora la eficiencia del almacenamiento y la actualización de datos.
- Soporte para transacciones: Permiten realizar operaciones que involucran múltiples tablas de manera segura, asegurando que todas las operaciones se completen correctamente o ninguna lo haga, manteniendo la integridad de los datos.
- Lenguaje de consulta estructurado (SQL): Proporcionan un lenguaje estándar para interactuar con los datos, lo que facilita la creación, lectura, actualización y eliminación de registros.
- Soporte para índices: Permiten crear índices en columnas específicas para mejorar el rendimiento de las consultas, acelerando el acceso a los datos.
- Soporte para vistas: Permiten crear vistas que son consultas predefinidas sobre una o más tablas, facilitando la obtención de información específica sin necesidad de escribir consultas complejas cada vez.
- Integración con aplicaciones: Las bases de datos relacionales son ampliamente utilizadas y tienen soporte en muchas aplicaciones y lenguajes de programación, lo que facilita su integración en sistemas existentes.
Tipos de relaciones
Cuando empieces a relacionar tablas, es importante entender los diferentes tipos de relaciones que pueden existir entre ellas:
- Uno a uno (1:1): Cada registro en la primera tabla se relaciona con un único registro en la segunda tabla. Por ejemplo, una persona puede tener un único DNI asociado.
- Uno a muchos (1:N): Un registro en la primera tabla puede estar relacionado con múltiples registros en la segunda tabla. Por ejemplo, un escritor puede haber escrito varios libros.
- Muchos a muchos (N:M): Los registros en la primera tabla pueden estar relacionados con múltiples registros en la segunda tabla y viceversa. Por ejemplo, los pokemon pueden tener múltiples tipos y un tipo puede pertenecer a múltiples pokemon. Para manejar este tipo de relaciones, se suele crear una tabla intermedia que contenga las claves primarias de ambas tablas relacionadas.