Introducción
Hasta ahora hemos tratado con bases de datos embebidas. Ya conocemos los conceptos básicos de las bases de datos relacionales y cómo operar con ellas.
En este tema vamos a empezar a usar bases de datos relacionales en un entorno de servidor o SGBD (Sistema de Gestión de Bases de Datos). Veremos cómo funcionan, cómo se conectan las aplicaciones a ellas y cómo se gestionan los datos.
Algunos de los SGBD relacionales de servidor que más vas a ver son:
Con estas bases de datos podrás seguir usando todo lo que aprendiste de SQL con SQLite, alguna sintaxis (como la del DDL) pueden variar ligeramente, y algunas funciones que no tenias disponibles en SQLite ahora sí que las tendrás, pero en esencia, son lo mismo.
Diferencias clave
Trabajar con SQLite es muy simple, solo tenemos que interactuar con el archivo de base de datos que nos crea y operar contra la misma. En cambio, trabajar con un SGBD de servidor implica:
- Instalar y configurar el SGBD en un servidor.
- Conectarnos al SGBD a través de una red (local o remota) a través de un puerto.
- Para conectarnos al SGBD, necesitamos un cliente que sepa cómo comunicarse con el servidor.
- Gestionar usuarios y permisos para acceder a las bases de datos.
- Realizar operaciones de mantenimiento y optimización del servidor.
Además, los SGBD nos plantean nuevos retos, desde la gestión de conexiones, su rendimiento, seguridad y gracias a que escapamos del entorno embebido, trabajar con grandes volúmenes de datos y múltiples usuarios concurrentes es mucho más sencillo.
Seguridad
Gestionar un servidor MySQL o PostgreSQL implica también gestionar la seguridad del mismo. Esto incluye:
- Configurar usuarios y roles con permisos específicos.
- Establecer contraseñas seguras y políticas de autenticación.
- Configurar conexiones seguras (SSL/TLS) para proteger los datos en tránsito.
- Monitorear y auditar el acceso a la base de datos para detectar posibles intrusiones.
- Realizar copias de seguridad periódicas y gestionar la recuperación ante desastres.
- Mantener el software actualizado para evitar vulnerabilidades conocidas.
- Implementar medidas de seguridad adicionales como firewalls y sistemas de detección de intrusos.