jueves, 18 de diciembre de 2014

MongoDB o PostGIS?

¿Qué es mongoDB?
MongoDB es una base de datos NOSQL orientada  a documentos, desarrollada con código abierto.

¿Qué significa que es “NoSQL”?
Significa que en lugar de guardar los datos en tablas como se hace en las bases de datos relacionales, MongoDB guarda estructuras de datos en documentos tipo JSON con un esquema dinámico (BSON), haciendo que la integración de los datos en ciertas aplicaciones sea más fácil y rápida.
En el gráfico se aprecia la relación de una base de datos relacional (RDBMS) tanto la escalabilidad como la velocidad se ven afectados ante un número elevado de elementos en la base de datos MongoDB.

Desde hace 7 años que fue creada ha venido implementando características para ser usada como una base para la producción de uso y con muchas características. Una de las características principales que es es un base datos con un modelo de datos diferente, ya que está “orientada a documentos” con el esquema de un JSON como almacenamiento.

JSON
¿Qué ventajas tiene la representación de nuestros datos utilizando un formato JSON?
JSON presenta un framework flexible y conciso tanto para consultas,como para almacenar registros.
La sintaxis JSON es similar a la de otras estructuras de datos utilizados en muchos lenguajes de programación y es por tanto, familiar para los desarrolladores.
JSON es independiente del lenguaje de programación que se utilice.

¿Que tipos de datos puede almacenar un JSON?
6 tipos de datos:
  • cadenas
  • números
  • textos boolenaos (verdadero/falso)
  • nulos
  • arrays
  • objetos/documentos
Estructura:
{
"id" : 5010,
"ciudad" : "Ibarra",
"distrito" : "Ciudad Blanca"
 "Zona" : "Zona 1 Norte"

}

¿Cómo se realiza una consulta en MongoDB?

Esta estructura de JSON presenta ventajas de rendimiento al hacer Joins y transacciones ya que es una operación más rápida y limpia que realizar la misma consulta en SQL.


En una base de datos NoSQL no hay consultas SQL de tipo SELECT * FROM WHERE.

Las consultas se hacen pasando objetos JSON como parámetro. Por ejemplo:


db.Clientes.find({Nombre:"David"});

La consulta anterior buscará todos los clientes cuyo nombre sea David.


MongoDB viene de serie con una consola desde la que podemos ejecutar los distintos comandos.MongoDB se está utilizando en aplicaciones web de alto rendimiento. PostGIS se utiliza principalmente en proyectos gubernamentales o empresariales.

MongoDB destaca en la gestión de datos geoespaciales de gran volumen (big data). Es por lo tanto una solución a un problema real, la gestión de grandes volúmenes de datos. Este sistema responde también a las necesidades de escalabilidad horizontal que tienen cada vez más empresas.

En cuanto a las funcionalidades geométricas, MongoDB soporta algunas funcionalidades geométricas por lo que es una buena opción para gestionar datos geográficos sencillos. PostGIS tiene una capacidad de análisis espacial mucho más sofisticada, es un autentico sistema GIS. Por otra parte MongoDB utiliza índices B-Tree y PostGIS índices R-Tree. Un B-tree no puede ser utilizado de manera eficiente para indexar polígonos.

Por último mencionar que es algo complicado aprender a gestionar estas bases de datos NoSQL.


No hay comentarios:

Publicar un comentario