Contenido verificado asociado a este RA
Introducción a los SGBDR y Métodos de Acceso Programático
Esta unidad explora las características fundamentales de los Sistemas Gestores de Bases de Datos Relacionales (SGBDR), su arquitectura y los distintos métodos para interactuar con ellos desde aplicaciones, sentando las bases para la programación de acceso a datos.
Programación de Conexiones y Operaciones CRUD Fundamentales
Esta unidad se centra en la implementación práctica de conexiones a bases de datos relacionales y la ejecución de las operaciones básicas de Creación, Lectura, Actualización y Borrado (CRUD) de datos mediante código programático.
Desarrollo de Aplicaciones para la Gestión de Información en BBDD
Esta unidad integra las operaciones CRUD en aplicaciones completas, enfocándose en la ejecución de consultas complejas y la creación de interfaces que permitan a los usuarios gestionar la información de bases de datos relacionales de manera interactiva y robusta.
Conceptos clave
SGBDRModelo RelacionalSQLDriver JDBC/ODBCORMIntegridad ReferencialTransaccionalidad ACIDJDBCConnectionStatementPreparedStatementResultSetCRUDInyección SQLtry-with-resourcesDAO (Data Access Object)Capa de ServiciosInterfaz de Usuario (UI)
Errores que conviene evitar
- Confundir SQL con un SGBDR: SQL es el lenguaje para interactuar con la base de datos, mientras que el SGBDR es el software que gestiona la base de datos. Causa: Falta de distinción conceptual. Corrección: Entender que SQL es una herramienta que el SGBDR interpreta y ejecuta.
- No entender la necesidad de un driver: Intentar conectar sin el driver adecuado o con una versión incompatible. Causa: Desconocimiento del papel del driver como puente de comunicación. Corrección: Investigar y descargar el driver específico para la versión del SGBDR y del lenguaje de programación utilizado.
- No cerrar recursos (conexiones, statements, resultsets): Causa: Olvido o manejo incorrecto de excepciones. Consecuencia: Agotamiento de recursos del servidor de base de datos y de la aplicación, llevando a fallos. Corrección: Implementar el patrón `try-with-resources` o asegurar el cierre explícito en bloques `finally`.
- Vulnerabilidad de Inyección SQL: Causa: Construir sentencias SQL concatenando directamente entradas de usuario sin sanitización. Consecuencia: Un atacante puede manipular la consulta para acceder, modificar o borrar datos no autorizados. Corrección: Utilizar siempre `PreparedStatement` con parámetros para todas las entradas de usuario, nunca concatenar directamente.
- No usar transacciones para operaciones complejas: Causa: Desconocimiento de la importancia de la atomicidad. Consecuencia: La base de datos puede quedar en un estado inconsistente si una parte de una operación multi-paso falla. Corrección: Identificar secuencias de operaciones que deben ser atómicas y envolverlas en transacciones con `commit` y `rollback`.
- Validación de datos solo en la UI: Causa: Confiar únicamente en la validación del lado del cliente. Consecuencia: Datos inválidos pueden ser insertados si se bypassa la UI o si la validación es insuficiente. Corrección: Implementar validación de datos tanto en la UI como en la capa de servicios/negocio y, como última línea de defensa, en el esquema de la base de datos.