MongoDB , la base de datos NoSQL más popular, es una base de datos orientada a documentos de código abierto. El término ‘NoSQL’ significa ‘no relacional’. Significa que MongoDB no se basa en la estructura de base de datos relacional similar a una tabla, sino que proporciona un mecanismo completamente diferente para el almacenamiento y la recuperación de datos. Este formato de almacenamiento se llama BSON (similar al formato JSON).
Una estructura simple de documento MongoDB:
{ title: 'Geeksforgeeks', by: 'Harshit Gupta', url: 'https://www.geeksforgeeks.org', type: 'NoSQL' }
Las bases de datos SQL almacenan datos en formato tabular. Estos datos se almacenan en un modelo de datos predefinido que no es muy flexible para las aplicaciones de gran crecimiento del mundo real actual. Las aplicaciones modernas están más conectadas en red, son más sociales e interactivas que nunca . Las aplicaciones almacenan cada vez más datos y acceden a ellos a velocidades más altas.
El Sistema de gestión de bases de datos relacionales (RDBMS) no es la opción correcta cuando se trata de manejar grandes datos en virtud de su diseño, ya que no son escalables horizontalmente . Si la base de datos se ejecuta en un solo servidor, alcanzará un límite de escala. Las bases de datos NoSQL son más escalables y ofrecen un rendimiento superior. MongoDB es una base de datos NoSQL que escala al agregar más y más servidores y aumenta la productividad con su modelo de documento flexible.
RDBMS frente a MongoDB :
- RDBMS tiene un diseño de esquema típico que muestra el número de tablas y la relación entre estas tablas, mientras que MongoDB está orientado a documentos. No hay concepto de esquema o relación.
- Las transacciones complejas no se admiten en MongoDB porque las operaciones de combinación complejas no están disponibles.
- MongoDB permite una estructura de documentos altamente flexible y escalable. Por ejemplo, un documento de datos de una colección en MongoDB puede tener dos campos, mientras que el otro documento de la misma colección puede tener cuatro.
- MongoDB es más rápido en comparación con RDBMS debido a técnicas eficientes de indexación y almacenamiento.
- Hay algunos términos que están relacionados en ambas bases de datos. Lo que se llama Tabla en RDBMS se llama Colección en MongoDB. De manera similar, una tupla se denomina documento y una columna se denomina campo. MongoDB proporciona un ‘_id’ predeterminado (si no se proporciona explícitamente), que es un número hexadecimal de 12 bytes que asegura la unicidad de cada documento. Es similar a la clave principal en RDBMS.
Características de MongoDB:
- Orientado a documentos : MongoDB almacena el tema principal en la cantidad mínima de documentos y no lo divide en múltiples estructuras relacionales como RDBMS. Por ejemplo, almacena toda la información de una computadora en un solo documento llamado Computadora y no en estructuras relacionales distintas como CPU, RAM, Disco duro, etc.
- Indexación : sin indexación, una base de datos tendría que escanear todos los documentos de una colección para seleccionar aquellos que coincidan con la consulta, lo que sería ineficiente. Por lo tanto, para una búsqueda eficiente, la indexación es imprescindible y MongoDB la usa para procesar grandes volúmenes de datos en muy poco tiempo.
- Escalabilidad : MongoDB se escala horizontalmente mediante fragmentación (partición de datos en varios servidores). Los datos se dividen en fragmentos de datos utilizando la clave de fragmento, y estos fragmentos de datos se distribuyen uniformemente entre fragmentos que residen en muchos servidores físicos. Además, se pueden agregar nuevas máquinas a una base de datos en ejecución.
- Replicación y alta disponibilidad : MongoDB aumenta la disponibilidad de datos con múltiples copias de datos en diferentes servidores. Al proporcionar redundancia, protege la base de datos de fallas de hardware. Si un servidor deja de funcionar, los datos se pueden recuperar fácilmente de otros servidores activos que también tenían los datos almacenados en ellos.
- Agregación : las operaciones de agregación procesan registros de datos y devuelven los resultados calculados. Es similar a la cláusula GROUPBY en SQL. Algunas expresiones de agregación son sum, avg, min, max, etc.
¿Dónde usamos MongoDB?
Se prefiere MongoDB sobre RDBMS en los siguientes escenarios:
- Big Data : si tiene una gran cantidad de datos para almacenar en tablas, piense en MongoDB antes que en las bases de datos RDBMS. MongoDB tiene una solución integrada para particionar y fragmentar su base de datos.
- Esquema inestable : agregar una nueva columna en RDBMS es difícil, mientras que MongoDB no tiene esquema. Agregar un nuevo campo no afecta a los documentos antiguos y será muy fácil.
- Datos distribuidos Dado que se almacenan múltiples copias de datos en diferentes servidores, la recuperación de datos es instantánea y segura incluso si hay una falla de hardware.
Soporte de idiomas por MongoDB :
Actualmente, MongoDB proporciona compatibilidad con controladores oficiales para todos los lenguajes de programación populares, como C, C++, Rust, C#, Java, Node.js, Perl, PHP, Python, Ruby, Scala, Go y Erlang.
Instalación de MongoDB :
Simplemente vaya a http://www.mongodb.org/downloads y seleccione su sistema operativo entre Windows , Linux , Mac OS X y Solaris. En su sitio se proporciona una explicación detallada sobre la instalación de MongoDB.
Para Windows, se despliegan algunas opciones para los sistemas operativos de 64 bits. Cuando esté ejecutando Windows 7, 8 o versiones más recientes, seleccione Windows 2008 R2+ de 64 bits . Cuando utilice Windows XP o Vista, seleccione Windows 64-bit 2008 R2+ heredado .
¿Quién está usando MongoDB?
MongoDB ha sido adoptado como software de back-end por varios sitios web y servicios importantes, incluidos EA, Cisco, Shutterfly, Adobe, Ericsson, Craigslist, eBay y Foursquare.
Artículo siguiente :
MongoDB y Python
Para obtener más información, visite su sitio web: https://www.mongodb.com/nosql-explained
Sobre el autor: Harshit Gupta , con sede en Kolkata, es un bloguero activo que tiene un gran interés en escribir sobre temas de actualidad, blogs técnicos, historias y experiencias de vida personal. Además de ser un apasionado de la escritura, también le encanta programar y bailar. Actualmente estudia en el IIEST y es colaborador activo del blog geeksforgeeks.
Si también desea exhibir su blog aquí, consulte GBlog para escribir un blog invitado en GeeksforGeeks.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA