Contenido verificado asociado a este RA
Interpretación y Materialización del Diseño Lógico de Bases de Datos
Esta unidad aborda la comprensión de los diseños lógicos de bases de datos para asegurar la accesibilidad de los datos y la posterior implementación de estos diseños en un Sistema Gestor de Bases de Datos (SGBD) específico.
Persistencia de la Información y Gestión de Datos con Consultas y Procedimientos
Esta unidad explora las técnicas para mantener la persistencia de la información en bases de datos y la ejecución de consultas y procedimientos para gestionar y almacenar datos y objetos.
Conexión a Bases de Datos y Desarrollo de Interfaces de Gestión
Esta unidad cubre cómo establecer conexiones con bases de datos desde una aplicación, ejecutar consultas y recuperar resultados en objetos de acceso a datos, así como el desarrollo de formularios e informes para una gestión integral de la información.
Seguridad en Aplicaciones Cliente-Servidor y Documentación de Bases de Datos
Esta unidad se centra en la configuración de servicios de red para garantizar la seguridad en aplicaciones Cliente-Servidor y en la elaboración de la documentación esencial para la gestión de bases de datos y aplicaciones.
Conceptos clave
Diseño lógico de bases de datosModelo Entidad-RelaciónClaves primarias y foráneasIntegridad referencialSistemas Gestores de Bases de Datos (SGBD)Lenguaje de Definición de Datos (DDL)Persistencia de datosTransacciones ACIDBloqueosCopias de seguridadConsultas SQL (SELECT, INSERT, UPDATE, DELETE)Procedimientos almacenadosInyección SQLConexión a base de datosControladores (drivers) de base de datosCadena de conexiónObjetos de acceso a datos (DAO)ResultSet
Errores que conviene evitar
- Interpretación errónea de las cardinalidades de las relaciones, lo que lleva a un diseño de tablas subóptimo o incorrecto. Causa: Falta de comprensión de las reglas de negocio o del significado de los símbolos en el diagrama E/R. Corrección: Validar la interpretación con el analista de negocio o el diseñador de la base de datos, y revisar ejemplos de mapeo E/R a relacional.
- No definir claves foráneas durante la materialización, lo que compromete la integridad referencial y permite datos inconsistentes. Causa: Desconocimiento de la importancia de las restricciones de integridad o descuido en la implementación. Corrección: Asegurarse de que todas las relaciones del diseño lógico se traduzcan en claves foráneas en el SGBD, utilizando la cláusula `FOREIGN KEY`.
- No utilizar transacciones para operaciones que modifican múltiples tablas o registros, lo que puede dejar la base de datos en un estado inconsistente tras un fallo. Causa: Falta de comprensión de la importancia de la atomicidad. Corrección: Agrupar siempre las operaciones lógicamente relacionadas dentro de bloques de transacción (BEGIN TRANSACTION, COMMIT, ROLLBACK).
- Construir consultas SQL dinámicamente concatenando cadenas de texto con entradas de usuario, lo que abre la puerta a ataques de inyección SQL. Causa: Desconocimiento de las vulnerabilidades de seguridad o pereza en la implementación. Corrección: Utilizar siempre consultas parametrizadas o procedimientos almacenados con parámetros para todas las entradas de usuario.
- No cerrar las conexiones a la base de datos y otros recursos (Statement, ResultSet), lo que provoca fugas de recursos y puede saturar el servidor de la base de datos. Causa: Olvido o desconocimiento de la gestión de recursos. Corrección: Implementar siempre el cierre de recursos en bloques `finally` o utilizar construcciones `try-with-resources` si el lenguaje lo permite.
- Realizar validaciones de datos únicamente en el lado del cliente en formularios, dejando la base de datos vulnerable a datos inconsistentes si se eluden las validaciones. Causa: Confianza excesiva en la interfaz de usuario o falta de comprensión de la seguridad. Corrección: Implementar siempre validaciones de datos tanto en el cliente como en el servidor para garantizar la integridad de la base de datos.
- Configurar el firewall de la base de datos para permitir conexiones desde cualquier IP (0.0.0.0/0), exponiendo la base de datos a ataques externos. Causa: Desconocimiento de la seguridad de red o configuración por defecto. Corrección: Restringir el acceso al puerto de la base de datos solo a las IPs de los servidores de aplicaciones autorizados.
- No mantener la documentación de la base de datos y la aplicación actualizada, lo que dificulta el mantenimiento y la incorporación de nuevos miembros al equipo. Causa: Falta de disciplina en el proceso de desarrollo o subestimación de su importancia. Corrección: Establecer un proceso de revisión y actualización de la documentación en cada fase del desarrollo y utilizar herramientas que faciliten su gestión.