Si somos
bien concretos y específicos se trata de una base de datos no relacional o NoSQL, una de las más
conocidas del mercado (MongoDB) pero podemos encontrar otras como CochBase, BaseX,
RavenDB, etc..
Este tipo
de sistema de base de datos no son relacionales (RDBMS) y no implementan
aspectos que comúnmente utilizamos en los sistemas tracionales como el lenguaje
SQL de consulta, las transacciónes ni garantizan el ACID, no existe el JOIN.
Desde su
arquitectura inicial son pensadas para escalar horizontalmente, e decir, no
requieren de características adicionales para escalar de esta forma con lo
cual “todo es más simple”.
Hablando específicamente
de Mongo, está escrito en C++, podemos consultar los datos almacenados
utilizando JSON e internamente los documentos se almacenan en BSON (una
representación binaria de JSON), es posible realizar operaciones CRUD.
Podría
buscar los alumnos almacenados en la base de datos en la colección Alumnos ingresando el siguiente
comando:
db.Alumnos.find({Nombre : “Juan”});
Los datos
en este tipo de BD no requieren estar normalizados, con lo cual podremos
guardarlos normalizados, desnormalizados o en forma híbrida está decisión es
fundamentalmente un aspecto que puede impactar en el rendimiento.
Los datos son almacenados en colecciones, dentro de las diferentes bases de datos que puedo tener en un servidor Mongo.
La instalación es muy simple y cuenta con una consola de comandos, donde puedo interactuar con la base de datos. (más información http://docs.mongodb.org/v3.0/tutorial/install-mongodb-on-windows/ )
- Mongob: es la base de datos propiamente dicha, gestiona todas las operaciones request, accesos a datos, etc.
- Mongo: Inica el Shell, es una consola interprete de Java Scritp que permite realizar todo tipo de operaciones.
El esquema
lo definirá más que nada las consultas que voy a realizar normalmente, esto
sería totalmente en una base de datos RDBMS que debería definir el esquema y
luego almacenar los datos con ese criterio.
En los próximos artículos se dará más detalles sobre las características más destacadas.
Links Relacionados:
Más información sobre el Shell: http://docs.mongodb.org/v2.2/faq/mongo/
Manual completo: http://docs.mongodb.org/v3.0/