Está en la página 1de 11

República Bolivariana de Venezuela

Ministerio del Poder Popular para la Defensa

Universidad Nacional Experimental de la Fuerza Armada

Barquisimeto, Edo Lara

Integrante: Carlos Sánchez

C.I 26.540.805

¨Prof. Mauro Sánchez

Materia: Base de Datos Avanzados


INTRODUCCION

El mercado de manejadores de bases de datos es bastante grande y ofrece demasiadas


alternativas a la hora de elegir un software en que confiar, en el momento de tomar una
decisión con respecto a por cual herramienta inclinarnos, cual es la óptima, cual me ofrece
mayores garantías en mi desarrollo específico, que detalles de implementación debemos
tener en cuenta para elegir nuestro sistema de gestión de bases de datos, se convierte en
una gran preocupación y responsabilidad el conocer las características ventajas y
desventajas, no desconocemos que las herramientas constituyen un aspecto fundamental a
la hora de desarrollar un proyecto o una implementación, las características de
los proyectos, de las compañías o las necesidades hacen prioritario que estas herramientas
se ajusten a esos requerimientos específicos, por estas razones se debe profundizar e
investigar las diferentes alternativas que se tienen al alcance ,evitando
inconvenientes posteriores como son, pérdida de tiempo, perdida de dinero o aún más
grave comprometer la credibilidad profesional al avalar un concepto técnico sin el
suficiente soporte y conocimiento.

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.

En el escenario de la información, muchos de los sectores económicos requieren el


apoyo para la gestión de los grandes volúmenes de datos, uno de estos, es el transporte, una
actividad fundamental dentro de la sociedad, encaminada a la prestación de servicios,
donde el nuevo enfoque propuesto por las bases de datos NoSQL generan una forma más
eficiente para el manejo en este sector.

Para esta investigación se realizó una búsqueda en Internet, bibliografía en temas


específicos sobre lo relacionado con la base de datos NoSQL
BASE DE DATOS NoSQL

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).

En general son sistemas de almacenamiento de información que no cumplen con el


esquema entidad–relación. Tampoco utilizan una estructura de datos en forma de tabla
donde se van almacenando los datos sino que para el almacenamiento hacen uso de otros
formatos como clave–valor, mapeo de columnas o grafos

TIPOS DE BASES DE DATOS NoSQL

Tipos y clasificación de bases de datos NoSQL

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:

 Bases de datos clave – valor

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.

 Bases de datos documentales

Este tipo almacena la información como un documento, generalmente utilizando para


ello una estructura simple como JSON o XML y donde se utiliza una clave única para cada
registro. Este tipo de implementación permite, además de realizar búsquedas por clave–
valor, realizar consultas más avanzadas sobre el contenido del documento. Son las bases de
datos NoSQL más versátiles. Se pueden utilizar en gran cantidad de proyectos, incluyendo
muchos que tradicionalmente funcionarían sobre bases de datos relacionales. Algunos
ejemplos de este tipo son MongoDB o CouchDB

 Bases de datos en grafo

En este tipo de bases de datos, la información se representa como nodos de un grafo y


sus relaciones con las aristas del mismo, de manera que se puede hacer uso de la teoría de
grafos para recorrerla. Para sacar el máximo rendimiento a este tipo de bases de datos, su
estructura debe estar totalmente normalizada, de forma que cada tabla tenga una sola
columna y cada relación dos. Este tipo de bases de datos ofrece una navegación más
eficiente entre relaciones que en un modelo relacional. Algunos ejemplos de este tipo son
Neo4j, InfoGrid o Virtuoso.

 Bases de datos orientadas a objetos

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

Las Bases de datos NoSQL más utilizadas actualmente son:

 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++.

Para el almacenamiento de la información, utiliza un sistema propio de documento


conocido con el nombre BSON, que es una evolución del conocido JSON pero con la
peculiaridad de que puede almacenar datos binarios.

En poco tiempo, MongoDB se ha convertido en una de las bases de datos NoSQL


favoritas por los desarrolladores.

VENTAJAS DE NoSQL

 Se ejecutan en máquinas con pocos recursos: Estos sistemas, a diferencia de los


sistemas basados en SQL, no requieren de apenas computación, por lo que se
pueden montar en máquinas de un coste más reducido.
 Escalabilidad horizontal: Para mejorar el rendimiento de estos sistemas
simplemente se consigue añadiendo más nodos, con la única operación de indicar al
sistema cuáles son los nodos que están disponibles.
 Pueden manejar gran cantidad de datos: Esto es debido a que utiliza una estructura
distribuida, en muchos casos mediante tablas Hash.
 No genera cuellos de botella: El principal problema de los sistemas SQL es que
necesitan transcribir cada sentencia para poder ser ejecutada, y cada sentencia
compleja requiere además de un nivel de ejecución aún más complejo, lo que
constituye un punto de entrada en común, que ante muchas peticiones puede
ralentizar el sistema..
 Los datos no tienen que almacenarse en tablas.
 Generalmente, su arquitectura es distribuida almacenándose la información en más
de una máquina del sistema. Por lo tanto, los sistemas que las soportan tienen una
mayor escalabilidad horizontal (a mayor número de nodos mayor rendimiento) y
también mayor tolerancia ante fallos en los distintos nodos.
 Algunos tipos de almacén de bases de datos NoSQL incluyen diferentes tipos de
almacenes como por ejemplo el almacén de columnas, de documentos, de key value
store, de gráficos, de objetos, de XML y otros modos de almacén de datos.
 Las bases de datos NoSQL de código abierto tienen una implementación rentable,
ya que no requieren tarifas de licencia y pueden ejecutarse en hardware de bajo
precio.
 Son de fácil expansión y más barata que las bases de datos relacionales, debido a
que tienen un escalado horizontal en vez de vertical y a que se distribuye la carga
por todos los nodos.

DESVENTAJAS DE NOSQL

 Los Sistemas de Gestión de Bases de Datos NoSQL no contemplan por definición la


atomicidad de las instrucciones, es decir, cuando una operación sobre los datos
consta de varios pasos, no se tienen que ejecutar todos.
 Los gestores NoSQL no contemplan obligatoriamente la consistencia o integridad
de la BBDD, esto quiere decir que no se comprueba que la operación a ejecutar
sobre los datos se pueda completar desde un estado de la Base de Datos válido a
otro válido (por ejemplo no violación de ninguna restricción de tipos de datos o
reglas).
 Las Bases de Datos NoSQL funcionan ampliamente en máquinas Linux, pero no
existe en general soporte a otros Sistemas Operativos.
IMPLEMENTACIÓN

Actualmente la implementación de este nuevo enfoque ha ido incrementando en


diferentes campos de la sociedad, debida en gran medida al aumento exponencial de los
datos en la web siendo esto un enorme problema para bases de datos SQL. Las grandes
empresas como Facebook, Amazon, Google, LinkedIn y Twitter manejan ahora cantidades
de información en tera y petabytes de datos,

Full Page Cache

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.

Esta aplicación está muy extendida y es importante en muchos tipos de aplicaciones


acudir a una base de datos NoSQL para implementarla.

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.

Ejemplos MUSQL, Oracle, Database, MongoDB, HBase, Cassandra.


SQLServer
CONCLUSION

Bases de datos NoSQL juega un papel integral en el diseño e implementación de


aplicaciones de negocio, puesto que retienen información de usuarios, productos, entre
otros. Es por eso que se considera que las bases de datos NoSQL son idóneas para
aplicaciones que requieran de lectura/escritura de grandes volúmenes de datos, y necesiten
brindar un servicio a miles de millones de usuarios.

Finalmente, y haciendo hincapié en uno de los aspectos más ampliamente explotado


como es la inyección de comandos debemos tener en cuenta que en las bases de datos
NoSQL, las peticiones y llamadas se ejecutan invocando la API correspondiente
formateada según una convención común, habitualmente JSON o XML. En este punto, una
incorrecta verificación de los parámetros de entrada puede permitir la ejecución de
comandos al evaluarse y tratarse en la llamada a la API correspondiente. Las posibilidades
de inyección y los riesgos, al utilizarse una API con lenguaje de programación
procedimental, son aún mayores que en el caso de bases de datos relaciones donde se usa el
lenguaje SQL típicamente declarativo y mucho más acotado. Inyección NoSQL y de código
javascript son nuevos vectores que amplían la superficie de ataques sobre estas bases de
datos.
BIBLIOGRAFIA

 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

También podría gustarte