Friday, August 30, 2019

Introducción a las bases de datos orientadas a documentos con Mongodb

FROM THE DESK OF B. J. FERRO



Información general
Las bases de datos relacionales dominan el mercado. Es muy probable que, si has diseñado y programado aplicaciones web, hayas utilizado esas bases de datos con éxito. Sigue siendo hoy el principal almacén de datos para aquellas aplicaciones que requieren de modelos con esquemas rígidos, normalizados, y con soporte transaccional muy eficiente. Las propiedades ACID de los motores de almacenamiento relaciones son obligatorias para muchas aplicaciones de misión crítica.
Sucede también que en los últimos años han surgido nuevos entornos donde se manejan grandes volúmenes de datos con esquemas más flexibles que han disparado la adopción de almacenes de datos alternativos que ofrecen ventajas sobre las bases de datos relacionales. De hecho, algunas características de esas “nuevas soluciones” ya existían en bases de datos no relacionales y comienzan entonces a surgir preguntas sobre la viabilidad y la utilidad de esas nuevas tecnologías; preguntas como:
• ¿Estos nuevos almacenes de datos reemplazan a los sistemas de bases de datos relacionales?
• ¿Quién los está usando en producción, y por qué?
• ¿Qué compromisos están involucrados en el traslado a una base de datos no relacional?
Las respuestas a las preguntas anteriores pueden resumirse a responder a ¿por qué los desarrolladores están interesados en la utilización de bases de datos orientadas a documentos y en particular en la utilización de MongoDB como una de las implementaciones de mayor impacto?

El objetivo
¿Qué te propongo?
Un curso presencial en línea de 24 horas de duración dedicado a los fundamentos de MongoDB, recorriendo los principios de las bases de datos orientadas a documentos, los formatos utilizados para los documentos, la relación de estos modelos con los modelos relacionales, sus ventajas y desventajas y la utilización de MongoDB para la gestión de datos modelados con documentos.
En el curso instalarán el servidor de la base de datos de forma local, su Shell Mongo basado en JavaScript y su cliente gráfico MongoDB Compass. Todos ellos están disponibles para los sistemas operativos Windows y Linux en sus varias distribuciones.
Comentaremos en el curso sobre MongoDB Atlas, el servicio DBaaS (Database as a Service) que ofrece la compañía MongoDB para instalar (¿deployar?), operar y escalar una base de datos MongoDB en la nube de forma sencilla.
La oportunidad
¿Qué espero que obtengas de este curso introductorio?
  • Qué aprendas a utilizar MongoDB para resolver problemas que requieren esquemas de datos flexibles.
  • Qué conozcas casos de uso típicos que usan modelos de datos orientados a documentos.
  • Qué puedas escribir programas simples en Java para gestionar almacenes de datos en MongoDB.
  • Qué el conocimiento adquirido asiente los cimientos para adentrarte de lleno a las complejidades de MongoDB.
Temas del curso
  1.  Fundamentos de Mongodb
    • Objetivos de diseño
    • Características clave
    • Casos de uso y limitaciones
  2. MongoDB a través de su Shell de JavaScript
    • Operaciones CRUD en el Shell
    • Construcción de índices
    • Aspectos básicos de administración
    • Utilización de MongoDB Compass
  3. MongoDB a través de Java y Python
    • Utilización de IntelliJ Idea (o el IDE de tu agrado) con MongoDB Java Driver
    • Administración de dependencias con Gradle o Maven (el de tu agrado)
    • Selección de bases de datos y colecciones (disponibles para el curso)
    • Programas de Java y Python para ilustrar operaciones CRUD.
  4. Datos orientados a documentos
    • Diseño de esquemas
    • Modelos de datos para aplicaciones “canónicas” (e-commerce, blogs, etc.).
    • Las “tuercas y tornillos” de las bases de datos, las colecciones y los documentos.
  5. El marco de trabajo de agregación de Mongodb
    • Fundamentos del pipeline del marco de trabajo de agregación
    • Las operaciones de agregación en Mongodb
    • Desempeño y limitaciones
Estrategia del curso
Mi estrategia de curso se basa en combinar concurrentemente los conceptos teóricos con ejemplos que ilustren esos conceptos. Creo que no basta con “cortar código”. Es necesario conocer con detalle el código que escribimos.
Utilizaré presentaciones y ejemplos de código ya preparados con antelación para optimizar el tiempo de las clases. La herramienta de vídeo conferencia que usaremos me permite compartir la pantalla o aplicaciones seleccionadas y también me permite designar a ustedes como presentadores para aclarar cuaquier duda que requiera ser examinada en sus equipos.
En las sesiones de tres horas dedicaremos tiempo a que ustedes resuelvan algunos ejercicios. Una vez terminado ese tiempo pasaremos a revisarlos
Para cada sesión, recibirán ustedes por email la liga al “salón” de video conferencia. En caso que por razones técnicas de fallos en Internet (apagones, etc.) se reprogramará esa sesión atendiendo a vuestra disponibilidad.
Calendario del curso
A continuación se indican las fechas para las sesiones del curso. Se trata de fechas estimadas que están sujetas a cambios en presencia de algunas “eventualidades”


Precios
  • $4000.00 pesos (si requieres factura agregar el IVA de 16%).
  • Forma de pago: Un solo pago antes del 30 de septiembre de 2019.
Restricciones
El curso se cancela si la cantidad de participantes es menor de 15 personas. Se requiere su confirmación antes del 30 de septiembre de 2019. Eso me da tiempo para avisar con antelación que no se realice el pago a los que han confirmado