En CDA contamos con el Programa Formadores, donde seguimos capacitando a nuestros talentos en las tecnologías. Entre nuestros cursos de formación realizamos una capacitación en Bases no relacionales y MongoDB, dictada por la ingeniera en Sistemas Verónica Pineyro, donde participaron varios de nuestros colaboradores para seguir creciendo en conocimientos sobre el Mundo IT.

El paradigma de los datos

Ante la gran cantidad y complejidad de datos provenientes de redes sociales, IOT y maquinas generadoras de data, sumado a la necesidad de manejarlos eficientemente para beneficio de la labor empresarial y a la falta de capacidad de las soluciones convencionales para hacerlo, surgen las bases de datos no relacionales.

Este tipo de bases de datos utilizan la arquitectura distribuida, lo más importante a la hora de diseñar. La misma brinda la tolerancia a fallos ya que está distribuida en nodos que son manejados por un administrador, por lo que si un nodo deja de funcionar puede ser respaldado por los demás hasta que se repara.

Dentro de las arquitecturas encontramos dos tipos de escalamiento: el vertical, que aumenta la capacidad de un único nodo, y si bien es más sencillo es más limitado; y el escalamiento horizontal, el de la arquitectura distribuida, donde en lugar de sumar capacidad a un nodo se van agregando distintos nodos, haciendo que el escalamiento sea casi infinito y más ágil. Las bases de datos no relacionales suelen usar este escalamiento

Características de las bases de datos no relacionales:

  • Poseen un esquema flexible, pudiendo incorporar de datos de manera dinámica, sin la necesidad de tener una estructura predefinida. El esquema se puede ir cambiando.
  • No utilizan el SQL como lenguaje de consultas.
  • No garantizan las propiedades de atomicidad, consistencia, aislamiento y durabilidad (ACID, por sus siglas en ingles).
  • No suelen soportar operaciones JOIN
  • Favorecen la escalabilidad, principalmente la horizontal
  • Suelen ser distribuidas y de código abierto
  • Suelen tener varios modelos de datos, permitiendo el modelo embebido y el relacional

 

 

Tipos de base NO SQL

  1. Clave valor: cada registro de la base esta identificado con una clave, no se conoce la estructura del valor ya que la mayor ventaja es leer y escribir datos rápidamente, el objetivo no es la búsqueda. Ejemplos de ella son Oracle y Amazon SynamoDB.
  2. Documentales: aquí sí se conoce la estructura de esos valores, los datos se almacenan en documentos, el formato mas utilizados es el BSON y JSON.
  3. Basadas en columnas: agrupan los datos en familias de datos, parecidas a las bases de datos relacionales, pero requieren menos consultas a la hora de recuperar datos. Cassandra y Hadoop tienen este tipo de base.
  4. Orientadas a grafos: almacenan entidades o representan relaciones complejas entre sus datos. Un ejemplo de éstas es Infinit Graph.

 

MongoDB

Cuando hablamos de MongoDB nos referimos a una base de datos NoSQL del tipo documental donde, como su nombre lo indica, no se almacenan registros sino documentos. Este almacenamiento se da de manera flexible, por lo cual su estructura puede variar.

El uso de MongoDB en un proyecto es ideal cuando las necesidades del mismo son almacenar o acceder a mucha información con rapidez, manejar cantidades muy grandes de datos, que haya variabilidad donde cada documento deba almacenar diversos campos.

 

 

CRUD de MongoDB

Las cuatro operaciones básicas que se pueden realizar en una base de datos, resumidas en el acrónimo CRUD, se traducen de la siguiente manera en el caso de MongoDB:

  • Create: el parámetro es el valor
  • Read: tiene dos parámetros, criterio de selección y selección
  • Update: el primer parámetro es el filtro y el segundo la acción
  • Delete: se pasa el filtro por el que marcamos los datos que se borrarán de la collection