Uso de bases de datos

Servicio: Resolución / Universidad: UOC / Curso 2025/2026 Semestre 2

Encarga la Resolución de PACs o PECs UOC

Modalidad Personalizada: 100 €/PAC, 200€/Práctica
Modalidad Compartida: 70€/PAC, 140€/Práctica

100,00 

SKU: 75.567 Categoría:

Encarga Exámenes Finales


Tips para resolver tus PACs

Tips para la PAC1 de Uso de bases de datos
  • Antes de insertar una tupla en WINE o WINE_GRAPE, revisa que las claves foráneas (winery_id, grape_id) existan.
  • Cuando elimines una tupla, verifica qué tablas se verán afectadas por cascadas o restricciones.
  • Para condiciones complejas como “al menos dos variedades de uva” o pedidos con múltiples criterios, utiliza producto cartesiano X para comparar filas
Tips para la PAC2 de Uso de bases de datos
  • Para resolver los ejercicios de horarios (schedules), no basta con saber qué hace cada sentencia; lo crucial es cuándo ocurre el COMMIT.
  • Fíjate en el SELECT. Si al repetir la consulta los datos de una fila que ya existía han cambiado (ej. el nombre o el VAT), es Lectura No Repetible.
  • Un horario puede ser perfectamente seriable (los datos finales son consistentes y "tienen sentido") pero ser un desastre en términos de recuperabilidad
Tips para la Práctica1 de Uso de bases de datos
  • En la pregunta sobre la "Campaña de Navidad", verás que el PDF de teoría (R2) explica el uso de patrones con LIKE. Pero ojo: LIKE solo funciona con texto.
  • Cuando te pidan contar "vinos diferentes" o "pedidos distintos" de un cliente, no basta con un COUNT(*). Debes usar COUNT(DISTINCT columna)
  • La PAC pide mostrar incluso a los clientes que no han comprado nada. Si usas un JOIN normal, estos clientes desaparecerán de tu lista. Debes usar un LEFT JOIN
  • En la pregunta 1 es indispensable el uso de la cláusula "CHECK"
  • En la pregunta 2 resulta conveniente utilizar la cláusula "HAVING" para filtrar resultados de un "GROUP BY"
  • En la pregunta 3 la manera más usual de resolverlo es usando JOINs y varias subconsultas
Tips para la Práctica2 de Uso de bases de datos
  • En la Pregunta 1, no te limites a calcular datos. El código debe ser robusto: utiliza RAISE EXCEPTION para comprobar si el ID de la Denominación de Origen existe y si realmente tiene vinos asociados.
  • Para la Pregunta 2, el criterio de evaluación es tajante: la eficiencia es la clave. En lugar de hacer un SUM de todas las líneas cada vez que algo cambie (lo cual es muy lento), utiliza la lógica incremental
  • Lee con atención el enunciado del disparador: se busca actualizar el order_amount basándose en el precio de catálogo y sin aplicar descuentos.
  • Al calcular el rendimiento y stock, no realices consultas aisladas para cada dato. La clave está en usar una CTE (WITH) que agrupe las ventas y los vinos de la PDO en un solo paso.
  • En las preguntas sobre el vino más vendido o la categoría predominante, es fácil olvidar el escenario de empate.
  • para que el order_amount sea real, el trigger debe responder igual de bien ante un borrado de línea o una modificación de cantidad.
Tips para la Práctica3 de Uso de bases de datos
  • Cierra siempre Connection, Statement y ResultSet manualmente en bloques finally independientes
  • Usa isBeforeFirst() para lanzar "List without data" si no hay filas, y reserva "List not available" para excepciones SQLException
  • Desactiva el autoCommit al inicio de la Pregunta 2 y gestiona la transacción con commit() o rollback() según el éxito del fichero