# Base de Datos: Room

# Objetivo

El alumno desarrolla aplicaciones que usan Room como base de datos y ORM.

# Criterios de Evaluación

  • El alumno es capaz de justificar cuando usar o no usar una base de datos.
  • El alumno es capaz de añadir las dependencias de Room en un proyecto.
  • El alumno es capaz de añadir las dependencias de librerías que complementan Room: Coroutines.
  • El alumno es capaz de crear una base de datos (Room) de forma óptima usando el patrón Singleton.
  • El alumno es capaz de verificar los datos introducidos en Room a través de AppInspector(Android Studio).
  • El alumno es capaz de usar funciones suspendidas con Room para no bloquear el hilo principal.
  • El alumno es capaz de crear tablas en Room.
  • El alumno es capaz de definir correctamente cada uno de los campos que forman una tabla a través de anotaciones.
  • El alumno es capaz de crear relaciones 1:1, 1:N o N:M en Room.
  • El alumno es capaz de guardar como campo un objeto personalizado(embebido).
  • El alumno es capaz de realizar migraciones o destrucción entre distintas versiones de la base de datos.
  • El alumno es capaz de crear los objetos(DAO, Base de Datos, etc.) usados en Room a través de un Inyector de Dependencias (Hilt).
  • El alumno es capaz de gestionar transacciones en Room.
  • El alumno es capaz de mappear modelos de Dominio a modelos de Entidades y viceversa.
  • El alumno es capaz de persistir datos en Room a través de un DAO.
  • El alumno es capaz de eliminar datos en Room a través de un DAO.
  • El alumno es capaz de actualizar datos en Room a través de un DAO.
  • El alumno es capaz de consultar datos en Room a través de un DAO y el lenguaje SQL.