MongoDB vs MySQL: ¿Cual es la mejor tecnología de Bases de Datos?

 

MongoDB y MySQL son dos servers de bases de datos muy populares. Ambas funcionan con una gran variedad de lenguajes de scripting y programación, y ambas son Open Source. En este pequeño artículo contaré acerca de las bondades de cada una de estas tecnologías de manera comparativa. 




MySQL

MySQL (My SQL o My Sequel) es un sistema relacional de bases de datos desarrollado y distribuido por Oracle Corp. 

MongoDB 


MongoDB es un sistema que archiva los datos en documentos individuales en formato JSON. Es un sistema NO SQL, lo que permite mucha mayor flexibilidad en terminos de estructura de datos. 


Comparando MongoDB vs MySQL

La diferencia fundamental entre estas dos tecnologías es la manera en la que se archivan los datos. MySQL, como la mayoría de mis lectores probablemente ya conozcan, se archivan de una manera muy similar a como funciona una planilla de excel, per se. Es decir, por columnas y filas. 

En MongoDB, cada dato es un "documento", y un grupo de datos relacionados se llama "colección" mientras que en MySQL, los datos relacionados pertenecen a una determinada tabla, y las tablas relacionadas a una misma base de datos.

MongoDB no es un sistema estructurado. Es decir que las estructuras pueden modificarse de manera dinamica. En MySQL, como su nombre lo implica, utiliza un sistema de consultas SQL (Estructurado) para acceder a la base de datos. El esquema no se puede alterar. Las consultas a la base de datos para escribir, leer o editar se pueden hacer de una manera estricta y predefinida solamente. 

Por ejemplo, si en una tabla MySQL tenemos dos columnas "nombre" y "dirección" y deseamos agregar, digamos, a través de un form PHP, una nueva columna "edad", no podríamos hacerlo ya que esa columna no formaría parte del esquema. Habría que rehacer el esquema de nuestra tabla. 

En MongoDB esto no es necesario ya que nuevos campos pueden insertarse independientemente del esquema, por ello se dice que tiene una manera dinamica de crecer, en terminos de data entry.


TABLA COMPARATIVA
PARTICULARIDADES                             MySQL MongoDB
Modelo "Rich" de datos NO  SI 
Esquema Dinámico NO  SI 
Dato tipificado SI SI
Data Locality NO SI
Actualizar CamposSI SI 
Facil para programadorxs NO  SI
Transacciones Complejas SI  NO 
Auditoría SI  SI 
Auto-shading  NO  SI 


Algunas terminologías también varían dependiendo de ambas tecnologías.

Por ejemplo, lo que en MySQL solemos llamar "tabla" en MongoDB llamamos "Colección".
Lo que en MySQL llamamos fila, en MongoDB llamamos "Documento"
lo que en MySQL llamamos columna, en MongoDB se llama "Campo"
y lo que en MySQL llamamos join, para unir datos de diferentes tablas, en MongoDB llamamos "Embedded Document" o "Linking"


A continuación un ejemplo de como cargaríamos los mismos datos en MongoDB y MySQL

MongoDB:
 
{
nombre: "Alexia",
edad: "40",
contacto:{ 
celu: "+541100000000",
direccion: "Calle 164, Buenos Aires" 

}


MySQL

nombre    edad     contacto-celu          direccion
Alexia      40        +541100000000     Calle 164, Buenos Aires


0 comentarios:

Copyright (C) 2019 - Chica de Sistemas. Con la tecnología de Blogger.

Páginas