Resumen BD Herencia - eliizquierdo/material_programacion_avanzada2026 GitHub Wiki

📦 Proyecto: mini-crud-alumno-sql (Tema 4 — Herencia + MySQL) — ⬇️ Descargar ZIP · ☁️ Abrir en Codespace

En este capítulo, hemos migrado el almacenamiento de datos a una base de datos relacional y hemos modelado la entidad Alumno implementando una relación de herencia respecto a la entidad Persona.

🏗️ Conceptos Clave Implementados

Concepto Descripción Aplicación
Herencia de Tabla Dividida El modelo de datos se dividió en dos tablas: Persona (datos comunes) y Alumno (datos específicos), unidas por una clave foránea, garantizando que el Alumno sea también una Persona. Se realizó un JOIN para listar datos y se utilizó una transacción para las operaciones de escritura.
Transacciones (ACID) Se adoptó el manejo transaccional explícito en el AlumnoDAO para las operaciones que escriben en ambas tablas (agregar, actualizar). eliminar no necesita transacción propia: al borrar de personas, el ON DELETE CASCADE se encarga de alumnos automáticamente. Esto asegura que la inserción de datos en Persona y Alumno sea Atómica: si falla en una tabla, se ejecuta ROLLBACK en ambas.
Control Transaccional JDBC Se utilizó connection.setAutoCommit(false) para iniciar la transacción lógica, y connection.commit() o connection.rollback() para confirmarla o deshacerla. El patrón try-catch-finally dentro del DAO asegura que el rollback se ejecute ante cualquier fallo.

🎯 Separación de Responsabilidades (MVC)

El diseño modular de MVC facilitó la integración de esta complejidad en el Modelo:

Capa Rol Impacto en este Capítulo
Modelo AlumnoVO y AlumnoDAO. Implementó toda la lógica transaccional y de mapeo de dos tablas, manteniendo la capa de Control (Servlet) simple.
Controlador AlumnoControladorServlet. Se refactorizó la lógica de acciones usando la estructura switch y se mantuvo la delegación de tareas al DAO.
Vista alumno-form.jsp, alumno-lista.jsp, etc. Se adaptaron para manejar campos como el teléfono y se crearon las vistas de Edición y Listado que consumen los datos del AlumnoVO.

De esta manera, se ha implementado con éxito la gestión de la entidad Alumno, sentando las bases para futuras implementaciones de entidades que hereden de Persona (como por ej. Profesor).


📋 Palabras clave

herencia · AlumnoVO · AlumnoDAO · transacciones JDBC · COMMIT · ROLLBACK · ACID · atomicidad · JOIN · FK · ON DELETE CASCADE · MVC · Controlador · Vista · Modelo


🧠 Autoevaluación — Herencia en Java y BD


← Modificaciones a la VISTA · 🏠 Inicio · Instalación en Ubuntu →