Documentos de Académico
Documentos de Profesional
Documentos de Cultura
C.I 26.540.805
Son muchas las aplicaciones web que utilizan algún tipo de bases de datos para
funcionar. Hasta ahora estábamos acostumbrados a utilizar bases de datos SQL como son
MySQL, Oracle o MS SQL, pero desde hace ya algún tiempo han aparecido otras que
reciben el nombre de NoSQL (Not only SQL – No sólo SQL) y que han llegado con la
intención de hacer frente a las bases relacionales utilizadas por la mayoría de los usuarios.
DEFINICION
En informática, NoSQL (a veces llamado "no solo SQL") es una amplia clase de
sistemas de gestión de bases de datos que difieren del modelo clásico de SGBDR (Sistema
de Gestión de Bases de Datos Relacionales) en aspectos importantes, siendo el más
destacado que no usan SQL como lenguaje principal de consultas.
El nombre NoSQL ha tenido una evolución. Su significado inicialmente era Not SQL como una
clara referencia al modelo de lenguaje de dominio específico que mencionamos anteriormente,
además de una diferenciación en el tipo de modelo. Sin embargo, estas bases de datos han mejorado
y también pueden interactuar con lenguaje SQL, por eso es que su nombre ahora significa “Not
Only SQL” (No solo SQL).
Existen unos 150 tipos de bases de datos NoSQL con diferente arquitectura de datos
(basado en documento, en clave/valor, en objetos, en grafos, en columnas, etc.). Entre las
más conocidas:
Son el modelo de base de datos NoSQL más popular, además de ser la más sencilla en
cuanto a funcionalidad. En este tipo de sistema, cada elemento está identificado por una
llave única, lo que permite la recuperación de la información de forma muy rápida,
información que habitualmente está almacenada como un objeto binario (BLOB). Se
caracterizan por ser muy eficientes tanto para las lecturas como para las escrituras. Algunos
ejemplos de este tipo son Cassandra, BigTable o HBase.
En este tipo, la información se representa mediante objetos, de la misma forma que son
representados en los lenguajes de programación orientada a objetos (POO) como ocurre en
JAVA, C# o Visual Basic .NET. Algunos ejemplos de este tipo de bases de datos son Zope,
Gemstone o Db4o.
EJEMPLOS DE BASE DE DATOS NoSQL
Cassandra
Se trata de una base de datos creada por Apache del tipo clave–valor. Dispone de un
lenguaje propio para realizar consultas CQL (Cassandra Query Language). Cassandra es
una aplicación Java por lo que puede correr en cualquier plataforma que cuente con la
JVM.
Redis
Se trata de una base de datos creada por Salvatore Sanfilippo y Pieter Noordhuis y está apoyado
por VMWare. Se trata de una base de datos del tipo clave–valor. Se puede imaginar como un array
gigante en memoria para almacenar datos, datos que pueden ser cadenas, hashes, conjuntos de datos
o listas.
Tiene la ventaja de que sus operaciones son atómicas y persistentes. Por ponerle una pega, Redis
no permite realizar consultas, sólo se puede insertar y obtener datos, además de las operaciones
comunes sobre conjuntos (diferencia, unión e inserción).
Creado en ANSI C, por lo tanto es compatible y funciona sin problemas en sistemas Unix, Linux
y sus derivados, Solaris, OS/X sin embargo no existe soporte oficial para plataformas Windows.
MongoDB
Se trata de una base de datos creada por 10gen del tipo orientada a documentos, de
esquema libre, es decir, que cada entrada puede tener un esquema de datos diferente que
nada tenga que ver con el resto de registros almacenados. Es bastante rápido a la hora de
ejecutar sus operaciones ya que está escrito en lenguaje C++.
VENTAJAS DE NoSQL
DESVENTAJAS DE NOSQL
Redis y Memcache son dos bases de datos NoSQL muy utilizadas a la hora de aplicar
la técnica de Full Page Cache para disminuir el tiempo de carga y el consumo de recursos
en un aplicación web. Full Page Cache consiste en renderizar una página web y guardar el
HTML en una base de datos, para que cuando otros usuarios soliciten el recurso pueda ser
respondido casi de inmediato sin necesidad de hacer nuevamente un render de la página.
Query caching
Algunas veces no es posible realizar cache de todo el HTML de una página web, en esos
casos se pueden implementar otra técnica como Query Caching.
Query Caching consiste en almacenar el resultado de una consulta a la base de datos, de
esta manera si en el futuro se requiere la misma información se puede consultar
rápidamente sin necesidad de hacer la consulta completa. Los motores de bases de datos
como MySQL y Postgres ofrecen esta funcionalidad, pero con Redis también se podría
hacer y obtener mejores resultados si tu aplicación es bastante concurrida.
Leaderboard
Es común en juegos crear una tabla de clasificación de jugadores con sus puntos para
clasificación en un juego como League of Legends, Dota, Heroes of the Storm, Counter
Strike. Estos juegos en línea y tiempo real requieren que los puntos estén actualizados y que
la latencia de escritura y lectura sea baja.
CUADRO COMPARATIVO DE BASE DE DATOS SQL y NoSQL
SQL NoSQL
Almacenamiento con filas y tablas Varía dependiendo del tipo de
base de datos NoSQL
Clave-valor. Similar a la
Modelo de relacional, pero tiene solo dos
almacenamiento columnas(“clave y valor”).
Documento Almacena todos los
de datos datos juntos en un documento que
puede ser anidados
jerárquicamente, en JSON,XML
u otro formato
Tipo estructura de datos, se fijan Dinámico. Los Atributos se
por adelantado. añaden sin necesidad de bajar el
Esquemas Si se desea agregar otro atributo, se
servicio.
realiza mientras la base de datos
esta fuera de línea.
Solo vertical, o sea un servidor mas Horizontalmente, para aumentar
poderoso. la capacidad se deben añadir mas
Es posible la transmisión sobre
Escalado nodos al servidor, y a la base de
muchos servidores, pero
generalmente significa ingeniera datos se propaga
adicional. automáticamente.
Bajo Fallo en el nodo y Alta. Configurados para que la
Tolerancia a generalmente hará fallar la perdida de algunos nodos no
consulta.
Fallos interrumpa funcionamiento
global.
https://www.acens.com/wp-content/images/2014/02/bbdd-nosql-wp-acens.pdf
https://wwwresearchgate.net/publication/299389523_Bases_de_datos_NoSQL_para
_la_gestion_de_datos_geoespaciales
https://wwwocw.unican.es/pluginfile.php/2396/course/section/2473/Tema%201.%2
0NoSQL%20introduccio%CC%81n.pdf
https://lvcea.org/blog/f13293-base-de-datos-nosql-pdf