Publicité

Características MONGO DB

25 Mar 2015
Publicité

Contenu connexe

Publicité

Características MONGO DB

  1. MONGO DB
  2. ¿Qué es MongoDB? MongoDB es un gestor de base de datos NO-SQL orientado a documentos.
  3. ¿Las bases de datos de Mongo poseen tablas? En vez de tablas, MongoDB almacena sus datos en colecciones, las cuales son equivalentes a las tablas de los gestores de base de datos relacionales. Una colección almacena uno o más documentos, los cuales se corresponden con los registros de una tabla y cada documento posee uno o más campos, los cuales se corresponden con las columnas de una tabla.
  4. TABLAS -> COLECCIONES REGISTROS -> DOCUMENTOS COLUMNAS -> CAMPOS JOINs -> DOCUMENTOS EMBEBIDOS
  5. ¿A que se le llama documentos? Un documento es la unidad básica de datos en MongoDB. Su estructura de datos es muy similar a la de JSON (Javascript Object Notation) pero almacenados en un formato mucho más rico conocido BSON (Binary JSON).
  6. { _id: ObjectId(7df78ad8902c) title: 'MongoDB Overview', description: 'MongoDB is no sql database', by: 'tutorials point', url: 'http://www.tutorialspoint.com', tags: ['mongodb', 'database', 'NoSQL'], likes: 100, comments: [ { user:'user1', message: 'My first comment', dateCreated: new Date(2011,1,20,2,15), likes: 0 }, ... ]
  7. Tablas VS Colecciones La gran diferencia es que los documentos de una misma colección, a diferencia de los registros de las tablas, pueden no tener los mismos campos (Es decir, pueden poseer distinta estructura). Una persona puede agregar un nuevo campo a algunos de los documentos de una colección sin tener que agregar el mismo campo a todos los documentos de la misma colección. Esta característica convierte a Mongo en una BD muy flexible con respecto a las alternativas relacionales.
  8. Las bases de datos de Mongo, ¿Utilizan esquemas de BD? MongoDB hace uso de esquemas dinámicos. En Mongo se pueden crear colecciones sin definir su estructura, es decir, sin especificar el nombre de cada uno de sus campos y sus respectivos tipos. Se puede alterar la estructura de los documentos simplemente añadiendo nuevos campos o borrando los ya existentes. Aunque no sea obligatorio, en la práctica es común que todos los documentos de una colección posean una estructura homogénea.
  9. ¿Qué ventajas poseen los esquemas dinámicos? Los esquemas dinámicos facilitan el proceso de desarrollo iterativo. Raramente se necesitará almacenar operaciones del tipo “ALTER TABLE”.
  10. ¿Cuáles son los usos típicos para MongoDB? MongoDB fue diseñado para sistemas de propósito general, haciéndolo apropiado para un gran número de casos. Por ejemplo: CMS, Aplicaciones móviles, gaming, plataformas e- commerce, analytics, logging, cache, etc.
  11. Características de Mongo: ● MongoDB esta escrito en su totalidad en C++. ● La versión de 32bits no es aconsejable usarla en un entorno en producción. Solo a modo de desarrollo. ● MongoDB no soporta joins ni transacciones. Sin embargo posee índices secundarios, un propio lenguaje de consulta muy expresivo, escrituras de documentos atómicas, y lecturas consistentes. ● Para las versiones de 32 bits de Mongo, la base de datos sólo puede alcanzar los 2GB.
  12. Características de Mongo: ● Esquemas flexibles. Las colecciones en MongoDB poseen un esquema flexible, totalmente dinámico. Las colecciones no fuerzan a los documentos a poseer una determinada estructura. ● Modelos de datos embebidos. Los documentos embebidos o anidados son documentos que se definen dentro de otro documento. Esta es una forma de capturar las relaciones entre los datos almacenando “subdocumentos” en una misma estructura. Estos se conocen como modelo de datos desnormalizados (permiten obtener y manipular los datos relacionados en una sola operación).
  13. Características de Mongo: ● Operaciones de escritura atómicas a nivel documento. Esto quiere decir que MongoDB solo garantiza “transacciones” a nivel documento. Es decir, MongoDB no puede garantizar que la edición de dos o más documentos en una misma operación se realicen en forma conjunta. En modelos normalizados, la aplicación es la encargada de llevar a cabo operaciones de lectura/escritura en forma separada para actualizar los documentos relacionados.
  14. Características de Mongo: ● Crecimiento de un documento. Si un documento supera el tamaño de memoria reservado para el mismo, MongoDB relocaliza el documento en disco. La relocalización de documentos conlleva mayor tiempo de procesamiento y puede conducir a un almacenamiento fragmentado. Es importante considerar la normalización de los documentos.
  15. Características de Mongo: ● Memory-mapped files. Los archivos de base de datos se almacenan en páginas. Estas páginas conservan la forma en que se almacenan en memoria byte a byte. Esto significa que MongoDB trata los archivos de datos como si estuvieran en memoria. Esta es la característica fundamental del motor de almacenamiento de MongoDB. ● Escalabilidad Horizontal con Shards Sharding es un método utilizado para almacenar datos a través de múltiples computadoras. MongoDB hace uso de este método para brindar soporte a data sets muy grandes y aplicaciones de gran rendimiento. Cada Shard es una instancia independiente de MongoDB que almacena una partición de la BD. Los Shards, en conjunto conforman una única BD lógica.
  16. ¿Apoya MongoDB transacciones ACID? MongoDB no soporta transacciones de múltiples documentos. Sin embargo, MongoDB proporciona operaciones atómicas en un solo documento. A menudo, estas operaciones atómicas de nivel de documento son suficientes para resolver los problemas que requerirían transacciones ACID en una base de datos relacional. Por ejemplo, en MongoDB, puede incrustar datos relacionados en matrices anidadas o documentos anidados dentro de un solo documento y actualizar todo el documento en una sola operación atómica. Bases de datos relacionales pueden representar el mismo tipo de datos con varias tablas y filas, lo que requeriría el soporte de transacciones para actualizar los datos de forma atómica. MongoDB permite a los clientes leer documentos insertados o modificados antes de que comete estas modificaciones en el disco, independientemente del nivel de preocupación de escritura o la configuración de un diario. Como resultado, las aplicaciones pueden observar dos clases de comportamientos: ● Para los sistemas con múltiples lectores simultáneos y escritores, MongoDB permitirá a los clientes para leer los resultados de una operación de escritura antes de que vuelva la operación de escritura.
  17. ¿Requiere MongoDB mucha memoria RAM? No necesariamente. Es posible ejecutar MongoDB en una máquina con una pequeña cantidad de memoria RAM libre. MongoDB usa automáticamente toda la memoria libre en el equipo como su caché. Monitores de recursos del sistema muestran que MongoDB utiliza una gran cantidad de memoria, pero su uso es dinámico. Si otro proceso de repente necesita mayor espacio de memoria RAM del servidor, MongoDB liberará parte de su memoria asignada para el otro proceso. Técnicamente, el subsistema de memoria virtual del sistema operativo gestiona la memoria de MongoDB. Esto significa que MongoDB utilizará tanta memoria libre como pueda (esto reduce el intercambio a disco).
  18. Tabla Comparativa SQL - Mongo http://docs.mongodb.org/manual/reference/sql-comparison
Publicité