Clases
Te dejamos a continuación el material para que sigas cada clase
Clases anteriores
Semana 14
Veremos GraphQL.
Una introducción al paradigma de persistencia Event-Sourcing. (pronto el link)
Resumen de la materia.
Semana 13
Semana 12
Semana 11
Veremos cómo se trabaja con Neo4J.
Luego mostraremos cómo resolver el ejemplo Películas que integra una solución Arena con Neo4J (te recomendamos el branch ogm).
Podés descargarte en tu casa otro ejemplo adicional: Alumnos que cursan.
Semana 10
Estaremos estudiando el particionamiento y la replicación en MongoDB
Replicación
Sharding
BONUS: Cómo generar datos random
GIT: Ejemplo con Docker
Videos de clase
Replicación con MongoDB
Sharding en MongoDB
Semana 9
Haremos un Taller de Docker
Recomendamos tener previamente instalado Docker en sus computadoras, para poder practicar los pasos del taller. Pueden encontrar instrucciones aquí:
Para Windows: https://docs.docker.com/docker-for-windows/install/
Para Linux hay varias formas y puede depender de la distro, pero lo esencial está aquí: https://docs.docker.com/engine/install/ubuntu/
Por problemas instalando Docker antes de la clase, pueden escribir en #general en el Slack de la materia.
Material: Taller de Docker
Videos de clase:
Git del ejercicio en clase:
Semana 8
Haremos el Taller OD/M Morphia - Préstamos de libros
Ejemplos para descargar:
Jugadores de fútbol (driver MongoDB)
BONUS: Podés ver un Ejercicio comparativo de carga de Subtítulos de Series y Películas - Comparación MySQL y MongoDB.
Y luego veremos el ejemplo Conversión de Monedas en Redis. También pueden ver el mismo conversor en Vaadin.
Te dejamos el Apunte introductorio sobre Redis
También jugaremos un poco con Redis-commander (otra opción más completa es Redsmin pero funciona un poco más lenta).
Como todo tiene que ver con todo, les dejamos Hedis (cliente para Haskell).
Cómo trabajar con hashes: se ve en este blog.
Videos de clase:
Semana 7
En la introducción práctica a MongoDB veremos
Te recomendamos que instales en tu notebook Mongo DB y Robo 3T como cliente. Estas son las instrucciones para Linux (más información en la página de Software). También te dejamos un tutorial en español para instalarlo en Windows.
Semana 6
Empezaremos a estudiar la naturaleza del mundo NoSQL, para lo cual te dejamos este apunte.
Semana 5
Luego de un breve repaso, estudiaremos cómo es el mapeo de tipos primitivos: Heladerías (uso de mapas y enums), y una lista de opiniones sobre los candidatos (un set de strings).
Luego veremos el ejemplo de los Productos (problema N + 1 queries)
Luego charlaremos brevemente cómo podemos implementar testeo unitario automatizado cuando tenemos persistencia
el fixture parte de una base vacía, crea información y luego la destruye (@before y @after), como se ve en el ejemplo de Profesores y materias
o bien el fixture crea los datos la primera vez cuando no existen, como en el ejemplo de Telefonía
cuando un test tiene efecto colateral ==> rollback de la transacción para no afectar otros tests
o bien trabajar con una base de datos en memoria (branch in-memory del ejemplo de Telefonía). Luego repasaremos ventajas y contras de este approach.
Semana 4
Continuaremos con el Taller práctico de mapeo objetos/relacional - relaciones de Herencia, Fetch Lazy vs. Eager y el refactor de DAOs.
Semana 3
Comenzaremos a realizar el Taller práctico de mapeo objetos/relacional: configuración de Hibernate, entidades, relaciones one-to-many, many-to-one, etc.
Semana 2
Comenzaremos a estudiar cómo se hace el mapeo entre el modelo de objetos y el relacional.
Semana 1
Anotarse en esta planilla
Introducción a la materia
contenidos
cursada
modalidad de TPs y parciales
material: apuntes y ejemplos que están en este site
Apunte principal: Introducción a Persistencia. Transaccionalidad y modelos arquitecturales.
Para prepararte a estudiar el mapeo entre el mundo de objetos y el relacional, tenés que leer estos apuntes
Repaso del modelo relacional, que viste en la materia Bases de Datos.
Ejercicio del Manejo de proyectos con componentes en el motor de la base de datos, del cual te podés bajar el ejemplo resuelto