Motores NoSQL
Motores NoSQL
MongoDB Fundamentos
Motores NoSQL
Muchos de ustedes probablemente se estarán preguntando por qué necesitamos otra base de
datos cuando ya contamos con las Relacionales (MySQL, MS SQL Server, Oracle, DB2, etc.). Las
bases de datos relacionales son extremadamente ricas en características. Pero estas
características no vienen gratis; hay un precio a pagar y se realiza comprometiendo la
escalabilidad y flexibilidad.
NoSQL es una nueva forma de diseñar soluciones de base de datos a escala de Internet. No es un
producto o tecnología, sino un término que define un conjunto de tecnologías de base de datos
que no se basan en los principios tradicionales de los motores Relacionales.
No cabe duda de que la forma en que las aplicaciones web tratan los datos ha cambiado de forma
significativa durante la última década. Cada vez se recopilan más datos y cada vez son más los
usuarios que acceden a estos datos al mismo tiempo. Esto significa que la escalabilidad y el
rendimiento se han convertido en auténticos retos para las bases de datos relacionales basadas en
esquemas.
En primer lugar, había tipos de bases de datos NoSQL (de origen cerrado), desarrolladas por
grandes empresas para satisfacer sus necesidades específicas, como BigTable de Google, que se
cree es el primer sistema NoSQL y DynamoDB de Amazon.
El éxito de estos sistemas patentados, inició el desarrollo de varios sistemas de bases de datos de
código abierto siendo los más populares Hypertable, Cassandra, MongoDB, DynamoDB, HBase y
Redis.
Características
● Alta escalabilidad
● Fácil gestión y administración
● Bajo costo
● Modelos de datos flexibles
MongoDB
Qué es MongoDB? simplemente es una base de datos orientada a documentos.
Está diseñado para trabajar con documentos sin necesidad de tener columnas predefinidas o tipos
de datos (a diferencia de las bases de datos relacionales), lo que hace que el modelo de datos sea
extremadamente flexible
Estos documentos se almacenan en un formato llamado JSON binario (también conocido como
BSON). Los documentos pueden tener diferentes esquemas, lo que significa que el esquema puede
cambiar a medida que la aplicación evoluciona. MongoDB está construido Para escalabilidad,
rendimiento y alta disponibilidad.
No proporciona soporte para operaciones JOIN, como en SQL. De todos modos, permite al usuario
almacenar todos los datos relevantes juntos en un solo documento, evitando el uso de JOINs.
fila en RDBMS.
Esquema dinámico significa que los documentos dentro de la misma colección pueden tener
conjuntos iguales o diferentes de campos o estructura, e incluso campos comunes pueden
almacenar diferentes tipos de valores en los documentos. No hay rigidez en la forma en que los
datos se almacenan en los documentos de una colección.
Identificador _id
Hemos visto que MongoDB almacena datos en documentos. Los documentos se componen de
pares clave-valor. Aunque un documento puede compararse con una fila en RDBMS, a diferencia
de una fila, los documentos tienen un esquema flexible. Una clave, que no es más que una
etiqueta, puede compararse aproximadamente con el nombre de la columna en RDBMS. Por lo
tanto, como una clave primaria RDBMS (utilizada para identificar de forma única cada fila), una
colección debe tener una clave que identifique de forma única cada documento. A esto nos
referimos como identificador _id en MongoDB. Si no ha sido especificado explícitamente ningún
valor para una clave, se generará automáticamente un valor único y asignado a ella por MongoDB.
Este valor clave es inmutable y puede ser de cualquier tipo de datos, excepto los arrays.
En el esquema RDBMS, el diseño para los requisitos anteriores tendrá un mínimo de tres tablas.
Tabla Colección
Fila/Tupla Documento
Columna Campo
Instalar MongoDB
Para instalar el motor de MongoDB ir al sitio oficial
https://www.mongodb.com/download-center/community y descargar la versión correspondiente a
nuestro sistema operativo.
Luego de instalarlo nos encontraremos con dos archivos ejecutables, mongod (motor de base
datos) y mongo (cliente de línea de comandos).
Primero tenemos que ejecutar “mongod” para levantar el motor, el administrador de los datos.
Cuando logremos levantarlo podemos conectarnos con “mongo” el cliente de línea de comandos
para realizar operaciones en la base de datos.
Clientes Gráficos
Al ya mencionado cliente de línea de comandos, podemos agregarle clientes gráficos para poder
realizar operaciones de forma visual y más amigable al usuario. De todas formas te
recomendamos familiarizarte con el cliente de línea de comandos ya que su uso es más extendido.
Mongo Compass: https://www.mongodb.com/download-center/compass
Robo 3T: https://robomongo.org/download
Fuentes
https://docs.mongodb.com/manual/
Apress - Practical MongoDB