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 →