Saltar al contenido

¿Qué Tipo de Base de Datos Utilizar? – Parte II

image_print

Autora: Keila Chacón / Centro de Seguridad Informática y Certificación Electrónica (CSICE). FIIIDT. 

 

INTRODUCCIÓN

Continuando con la segunda parte investigación (parte I: http://www.fii.gob.ve/que-tipo-de-base-de-datos-utilizar-parte-i/ ), referente al decidir qué tipo de base de datos a la hora dar inicio a los proyectos de desarrollo de software que se plantean los equipos de planificación y gestión de la Fundación Instituto de Ingeniería, en el presente artículo se indagará los temas técnicos referente a la comparación entre las estructuras SQL y NoSQL, características, similitudes y diferencias entre de MongoDB, MySQL y PostgreSQL y finalmente concluir las consideraciones que se deben tener presente al momento de decidir.

COMPARANDO ESTRUCTURAS SQL vs NoSQL

La mayoría de los desarrolladores y administradores de bases de datos se inclinan en utilizar SQL por ser un lenguaje de consultas estándar, soportado por múltiples manejadores de bases de datos y porque trabaja con una estructura definida y robusta, asegurando la integridad de los datos, además da la posibilidad de realizar consultas anidadas y complejas entre tablas o entidades.

Esta estricta norma de definir estructuras de datos es lo que pone la principal limitante al lenguaje de consultas SQL, y es una de las principales razones por las que nace el NoSQL, donde su flexibilidad a la hora de definir esquemas de datos es su punto relevante, entre otras cosas como: insertar documentos sin una estructura rígida, estructuras basadas en grafos, documentos o columnas, dinamismo a la hora de consultar, pudiendo agregar/quitar propiedades de una entidad a medida que se van agregando registros nuevos.

Sin embargo, esta flexibilidad también puede traer problemas, por ejemplo, al migrar de un motor NoSQL a otro, pues no comparten un lenguaje de consultas estándar. Otro factor a considerar es la escalabilidadpor lo general, las bases de datos SQL son verticalmente escalables, esto quiere decir que, para tener más potencia, espacio, velocidad, etc. se debe invertir en CPU, memoria RAM y máquinas más potentes. Mientras que NoSQL es horizontalmente escalable, por lo que podemos repartir una base de datos muy grande en shards o particiones entre varios equipos con requerimientos de baja o media gama sin ningún problema.

DIFERENCIAS ENTRE MongoDB, MySQL Y PostgreSQL

Ahora que conocemos un poco más acerca de la definición y las diferencias entre SQL y NoSQL, podemos centrarnos en MongoDB, MySQL y PostgreSQLcomo herramientas de estos dos esquemas.

  • MongoDB

En el caso de la herramienta líder para el uso de bases de datos NoSQL, podemos mencionar lo siguiente:

  • Es una base de datos basada en documentos. Es un tipo de base de datos NoSQL. Los datos se organizan como colecciones, documentos y campos.
  • Presenta un esquema dinámico, lo que da la posibilidad demodificar el esquema de nuestra base de datos a medida que ingresamos registros nuevos.
  • La velocidad es otro punto a favor, dada la simplicidad de su estructura, las consultas son mucho más rápidas.
  • Otra característica es la indexación, que ayuda a los campos a indexarse ​​en el documento. En MongoDB, se puede crear una copia de datos con conjuntos de réplica. Ayuda a crear la segunda parte de los datos primarios si el primario falla y luego el conjunto de réplicas comprueba automáticamente y hace que el secundario sea primario. Hay otras características como equilibrio de carga, almacenamiento de archivos, agregación, javascript del lado del servidor, entre otros.
  • MySQL

Podemos contar con las siguientes características:

  • Es uno de los motores más robustos y maduros y, por lo tanto, una de las opciones más confiables.
  • MySQL es un sistema de gestión de bases de datos relacionales (RDBMS) y también conocido como base de datos SQL, ya que utiliza SQL (lenguaje de consulta estructurado) para acceder a sus datos. En una base de datos SQL, los datos se organizan en tablas, filas y columnas.
  • Existen bastantes diferencias entre MongoDB y MySQL, como la forma en que se almacenan y acceden los datos es bastante diferente. Pero, hay características comunes como indexación, transacciones y vistas. Se puede acceder a la base de datos desde varias herramientas y lenguajes de programación para ser utilizados con varios tipos de aplicaciones.
  • PosgreSQL
  • Maneja la base de datos relacional, orientada a objetos por naturaleza.
  • Almacena los datos en tablas y usa los esquemas dinámicos y estáticos tanto para usar datos relacionales como para el almacenamiento.
  • Gestiona principalmente su concurrencia siguiendo el concepto de MVC, es decir, control de concurrencia de múltiples versiones. PostgreSQL tiene muchas características como replicación, indexación, esquemas, gran variedad de tipos de datos, herencia, copias de seguridad en línea, objetos usados ​​definidos como conversiones y lenguaje de procedimientos.
  • MongoDB, Mysql y PostgreSQL coinciden en:
  • Ser compatibles con todos los principales sistemas operativos, incluidos Windows, Linux, Unix, etc, al igual que con los principales lenguajes de programación como PHP, Java, Perl, C, C++, C.net, entre otros.
  • Son compatibles con las propiedades de ACID Transactions.
  • Son herramientas Open Source y puede descargarse y usarse completamente gratis.

¿QUÉ TIPO DE BASE DE DATOS DEBEMOS USAR? 

Luego de realizar la investigación de base de datos NoSQL y SQL presentada en las anteriores entregas, las cuales hacen referencia a cuando usar NoSQL, conocer las ventajas y desventajas de MongoDB y algunos casos de éxitos donde se aplicó MongoDB y Bigdata, se continuo con la investigación, enfocándola en las características principales de MongoDB, MySQL y PostgreSQL y comparando su estructura, y de esta manera obtener las bases sólidas para dar con la respuesta a la interrogantes ¿Qué tipo de base de datos utilizar?.

De acuerdo a lo anterior, tomando en cuenta las investigaciones y análisis realizado, durante la fase inicial de los proyectos de desarrollo de software donde se debe definir el tipo de base de datos utilizar, se debe contemplar principalmente que tipo y formato de datos gestionará, de ellos depende que base de datos utilizar, si son datos que pueden ser estructurados en una tabla relacional o son de tipo documentos sin un formato estandarizado entre ellos, básicamente si puede ser estructurados o no la data dependerá que tipo de base de datos utilizar, por los antes expuesto no debemos dejar a un lado u omitir este importante aspecto.

Cabe mencionar que la Fundación Instituto de Ingeniería por ser el único proveedor del estado venezolano en certificación de firmas electrónicas, considera la actualización de los sistemas que apoyan al proceso de firmas electrónicas en documentos como punto de cuenta, formatos de vacaciones, entre otros, los equipos de planificación y gestión de proyectos de software deben tener presente el análisis para decidir qué base de datos utilizar para dicho proceso.

CONCLUSIÓN

Para concluir la investigación en general sobre las bases de datos NoSQL, MongoDB y diferencias con SQL, se hace referencia al uso de las bases de datos NoSQL presente hoy en día de forma frecuente, las aplicaciones y los softwares que más se utilizan incluyen de forma directa en su arquitectura. Algún tiempo atrás fue toda una revolución la aparición de las bases de datos construidas con SQL, han cumplido y lo han hecho bien, pero las necesidades del mundo digital avanzan a pasos agigantados y lamentablemente las SQL tienen algunas limitaciones.

Esta es una de las razones de la aparición de las Bases de datos NoSQL, la evolución tecnológica de la sociedad y la participación masiva de usuarios que producen y alojan contenido cada segundo, exigía una forma más flexible de almacenar, ordenar y captar mayor cantidad de datos, eso es lo que ha ayudado a solucionar el NoSQL.

Uno de los tipos de base de datos NoSQL son las Documentales que permiten almacenar, recuperar y administrar datos semiestructurados, entre la más reconocida es MongoDB, es por ellos que se analizó sus ventajas, diferencias y estructuras con las bases de datos SQL como MySQL y PostgreSQL.

El estudio realizado da pie al equipo de gestión de proyectos de software a tomar en cuenta las bases de datos NoSQL en el momento de definir la estructura de los datos y como se almacenarán en las próximos sistemas o aplicaciones a desarrollar en la Fundación Instituto de Ingeniería.  

REFERENCIAS

  1. Keila Chacón ¿Qué Tipo de Base de Datos Utilizar? – Parte I Centro de Seguridad Informática y Certificación Electrónica (CSICE). FIIIDT.http://www.fii.gob.ve/que-tipo-de-base-de-datos-utilizar-parte-i/
  2. Diferencia entre MongoDB y PostgreSQL. (2019).  https://www.educba.com/mongodb-vs-postgresql/
  3. MySQL vs MongoDB ¿Cuándo y dónde usar cada uno? (2019).       https://impactotecno.wordpress.com/2018/02/26/mysql-vs-mongodb-cuando-y-donde-usar-cada-uno/
  4. MongoDB: la base de datos NoSQL flexible y escalable. (2019). https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/mongodb-presentacion-y-comparacion-con-mysql/
  5. ¿Cuál es la diferencia entre MySQL y MongoDB? (2020)
    https://presmarymethuen.org/es/dictionary/what-is-the-difference-between-mysql-and-mongodb/

 

Contacto: kchacon@fii.gob.ve; jefecentrocsice.1@gmail.com

Compartir en Redes Sociales
0 Shares