Please enable JavaScript.
Coggle requires JavaScript to display documents.
Bases de datos NoSQL - Coggle Diagram
Bases de datos NoSQL
Definicion
-
-
Actualmente se las usa en aplicaciones en tiempo real. Algunas bases NoSQL pueden soportar consultas de lenguaje SQL e incluso por medio de persistencia poliglota puede existir comunicacion con bases relacionales.
Soportan documentos JSON, estan diseñadas para tener baja latencia, modelos flexibles y ademas escalamiento horizontal
-
-
Tipos
Wide Column: Usan tablas, filas y columnas. A diferencia de bases de datos relacionales, el nombre y el tipo de dato pueden diferir en cada fila en la misma tabla
Document: Permite el almacenamiento y recuperacion de informacion en forma de documento, se conoce tambien como datos semiestructurados.
Key-Value: Implementa arrays asociativos, tambien conocidos como diccionarios o tablas hash. Cada registro puede ser recuperado por medio de su 'key'.
Graph: Utiliza estrcuturas tipo grafo para busquedas semanticas con nodos, aristas y propiedades para representar data. Debido a su naturaleza permiten la consulta de datos en muchos casos en una sola operacion, pues cada dato esta conectado con otros.
Ejemplos
CouchDB: Implementa documentos JSON, se caracteriza por usar una API REST lo cual significa que las consultas pueden ser realizadas por medio de peticiones HTTP. Ademas es escalable y tiene herramientas para el manejo de trafico, permite tambien la creacion de validacion de datos. Para mayor informacion sobre su lenguaje de consulta visitar: https://docs.couchdb.org/en/latest/intro/api.html
REDIS: Es orientada a pares 'key-value' , se caracteriza por mantener la data en memoria, tambien conocida como persistencia en memoria. Por medio de su 'key' se recupera el valor asociado a ella, implementa ademas tipos de datos como strings, tablas hash, conjuntos, etc. Asi mismo permite mecanismos para backup y recuperacion de datos. Para mayor informacion sobre sus comandos ver: https://redis.io/commands
MongoDB: Es orientada a documentos en donde cada base de datos contiene colleciones, y cada coleccion documentos. El acceso a los datos se maneja por medio de la creacion de usuarios y roles, Su lenguaje de consulta permite opeaciones para la creacion de base de datos, backups, recuperacion asi como tambien exportacion e importacion de datos. Para mas informacion sobre su lenguaje de consulta ver: https://docs.mongodb.com/manual/tutorial/query-documents/
Neo4J: Implementa grafos en donde cada grafo se relaciona con otros grafos. Tiene escalabilidad horizontal y vertical, ademas de tener una API REST tambien tiene su propio lenguaje de consulta, Cypher.
Su uso es recomendable cuando los datos estan relacionados en grupos asi como tambien cuando los datos hacen sentido al organizarlos en nodos y relaciones. Algunos ejemplos para este tipo de base de datos incluyen a: redes sociales, deteccion de fraudes, juegos colaborativos y sistemas de recomendacion. Para mayor informacion sobre Cypher ver: https://neo4j.com/developer/cypher/
ORM
'Object Relational Mapping' se refiere a escribir consultas en otro lenguaje de programacion diferente al que implementa la base de datos. El lenguaje que mapea debe ser orientado a objetos, por lo general el proceso de ORM es llevado a cabo por una libreria