sábado, 10 de julio de 2021

MongoDB: Lenguaje SQL

MongoDB es un gestor de bases de datos NoSQL, por lo que a diferencia de las bases de datos relacionales, no utiliza el lenguaje SQL. MongoDB dispone de un lenguaje de consulta de información  propio: MongoDB Query Language (MQL).

Vamos a revisar muy brevemente las caractarerísticas de cada uno de ellos: SQL y MQL.

El lenguaje SQL permite construir sentencias para hacer todo tipo de operaciones sobre bases de datos relacionales: Crear/eliminar una BBDD, crear/modificar/eliminar tablas/indices/vistas, consultar/modificar/agregar/eliminar filas de tablas, etc.

Esto es debido a que SQL incluye: un lenguaje de definición de datos, un lenguaje de manipulación de datos y un lenguaje de control de datos.

Algunos ejemplos de sentencias SQL :

  • Crear una tabla:   CREATE TABLE jobs( 
                                     ID int,
     
                                     country varchar(255),

                                     sector varchar(255),

                                     company varchar(255),
     
                                     job_description varchar(255)

                                 );
     
  •  Consultar una tabla: SELECT company, country,source from jobs where sector="finance"

Es relativamente fácil desarrollar un programa sencillo, por ejemplo en python, para conectarse con una BBDD relacional y ejecutar sentencias SQL de cualquier tipo.

Sin embargo en MongoDB no tenemos esta flexibilidad, ya que el lenguaje MQL no se basa en sentencias, sino en comandos/instrucciones específicas para cada tipo de operación.

Por ejemplo una consulta en MQL parecida a la anterior en SQL sería:
   db.jobs.find(
        {"sector" : "finance"},
        {"company":1,"country":1,
"source":1}
   )

 
En la instrucción anterior db es la variable de la conexión a MongoDB, jobs es la colección sobre la que queremos trabajar y find  es el comando especifico para la operación que queremos realizar, en este caso una consulta con la condición sector="finance", y sólo queremos mostrar los campos company, country y source.

Para los que estamos acostumbrados a trabajar con SQL no es fácil pasar de éste a MQL, ya que las estructuras son totalmente diferentes.

Sin embargo hay una serie de herramientas que nos permiten convertir secuencias SQL en MQL:

  • Tenemos por ejemplo la página site24x7 que acepta sentencias SQL y genera el comando MQL equivalente.
  • Adicionalmente algunas aplicaciones de administración de MongoDB incluyen esta facilidad, por ejemplo NoSQLBooster.
  • La documentación en linea de MongoDB incluye una página con mapeo SQL a MQL: docs.mongodb.com
  • La herramienta MongoDB Connector for BI permite utilizar sentencias SQL para extraer información de una BBDD  MongoDB y alimentar herramientas BI como Tableau,Qlik, MicroStrategy, etc.

 





No hay comentarios:

Publicar un comentario