You are on page 1of 15

Universidad “Mariano Gálvez”

Ingeniería en Sistemas de Información


8to. Semestre
Sección “A”
Desarrollo web
Ing. Axel Aguilar

Bases de Datos No Relacionales uso y Ejemplo

Alvin Steve Padilla Meza

3090-10-11973

Mazatenango 12 de octubre del 2018.


Índice

Tema…………………………………………………………………Pagina
Introducción……………………………………………………………… 3
Estructuración…………………………………………………………. 4-13
Conclusión……………………………………………………………… 14
Bibliografía...…………………………………………………………… 15
Introducción
En el siguiente trabajo se presentará una investigación correspondiente
al tema denominado: “Bases de Datos No Relacionales uso y
Ejemplo” en la cual se conocerá el concepto de Bases de Datos no
Relacionales, cuando Usar la Base de Datos No relacionales, también
conoceremos como función las Bases de Datos no relacionales, tipos
de Bases de Datos no relacionales y de esa misma forma se aprenderá
ejemplos de las Bases de Datos No relacionables que se utilizan,
ventajas y desventajas de estas Bases de Datos No Relacionales, etc.
Bases de Datos No Relacionales
Como su propio nombre indica, las bases de datos no relacionales son las que, a
diferencia de las relacionales, no tienen un identificador que sirva de relación entre
un conjunto de datos y otros. Como veremos, la información se organiza
normalmente mediante documentos y es muy útil cuando no tenemos un esquema
exacto de lo que se va a almacenar. Una base de datos no relacional es aquella que
no usa el esquema tabular de filas y columnas que se encuentra en la mayoría de
los sistemas de base de datos más tradicionales. En su lugar, las bases de datos
no relacionales usan un modelo de almacenamiento que está optimizado para los
requisitos específicos del tipo de datos que se almacena. Por ejemplo, los datos se
pueden almacenar como pares clave/valor simple, como documentos JSON o como
un grafo que consta de bordes y vértices.
La indiscutible reina del reciente éxito de las bases de datos no relacionales
es MongoDB seguida por Redis, Elasticsearch y Cassandra.

¿CUÁNDO USAR NOSQL?


Básicamente se utilizan en:
Redes sociales: casi obligatorio.
Desarrollo Web: debido a la poca uniformidad de la información que se encuentra
en Internet; aun cuando también puede emplearse SQL.
Desarrollo Móvil: debido a la tendencia – en crecimiento- de Bring Your Own
Device.
BigData: debido a la administración de grandísimas cantidades de información y su
evidente heterogeneidad.
Cloud (XaaS): “Everything as a Service”; NoSQL puede adaptarse casi a cualquier
necesidad del cliente, y sus particularidades.
Por defecto, Facilcloud distribuye la edición Express del sistema de gestión de base
de datos relacional, desarrollado por Microsoft, Microsoft SQL, la cual tiene algunas
pequeñas limitaciones, pero son completamente gratis. Una vez se conecta el nodo
remoto requerido, se ejecuta la herramienta del SQL Server Management Studio,
utilizando el correspondiente atajo dentro de la carpeta en el escritorio.
Adicional, en la nube elástica de Facilcloud podrás seleccionar el tipo de base de
dato que desees, en las opciones para SQL se encuentran MSSQL 2012, MariaDB,
MySQL, Perconadb y PostgreSQL; entre las bases de datos NoSQL se encuentran
Cassandra, CouchDB, MongoDB, Neo4j, OrientDB y Redis.

¿Cómo funciona una base de datos NoSQL (no relacionales)?


Las bases de datos NoSQL utilizan una variedad de modelos de datos para acceder
y administrar datos, como documentos, gráficos, clave-valor, en-memoria y
búsqueda. Estos tipos de bases de datos están optimizados específicamente para
aplicaciones que requieren grandes volúmenes de datos, baja latencia y modelos
de datos flexibles, lo que se logra mediante la flexibilización de algunas de las
restricciones de coherencia de datos en otras bases de datos.
Considere el ejemplo de modelado del esquema para una base de datos simple de
libros:
En una base de datos relacional, un registro de libros a menudo se enmascara (o
"normaliza") y se almacena en tablas separadas, y las relaciones se definen
mediante restricciones de claves primarias y externas. En este ejemplo, la
tabla Libros tiene las columnas ISBN, Título del libro y Número de edición, la
tabla Autores tiene las columnas ID Autor y Nombre de autor y, finalmente, la
tabla Autor-ISBN tiene las columnas ID Autor e ISBN. El modelo relacional está
diseñado para permitir que la base de datos aplique la integridad referencial entre
tablas en la base de datos, normalizada para reducir la redundancia y,
generalmente, está optimizada para el almacenamiento.
En una base de datos NoSQL, el registro de un libro generalmente se almacena
como un documento JSON. Para cada libro, el elemento, ISBN, Título del
libro, Número de edición, Nombre autor e ID Autor se almacenan como atributos en
un solo documento. En este modelo, los datos están optimizados para un desarrollo
intuitivo y escalabilidad horizontal.

¿Por qué debería usar una base de datos NoSQL?


Las bases de datos NoSQL se adaptan perfectamente a muchas aplicaciones
modernas, como dispositivos móviles, web y juegos, que requieren bases de datos
flexibles, escalables, de alto rendimiento y altamente funcionales para proporcionar
excelentes experiencias de usuario.
Flexibilidad: las bases de datos NoSQL generalmente ofrecen esquemas flexibles
que permiten un desarrollo más rápido y más iterativo. El modelo de datos flexible
hace que las bases de datos NoSQL sean ideales para datos semiestructurados y
no estructurados.
Escalabilidad: las bases de datos NoSQL generalmente están diseñadas para
escalar usando clústeres distribuidos de hardware en lugar de escalar añadiendo
servidores caros y sólidos. Algunos proveedores de la nube manejan estas
operaciones fuera del alcance, como un servicio completamente administrado.
Alto rendimiento: la base de datos NoSQL está optimizada para modelos de datos
específicos (como documentos, clave-valor y gráficos) y patrones de acceso que
permiten un mayor rendimiento que el intento de lograr una funcionalidad similar
con bases de datos relacionales.
Altamente funcional: las bases de datos NoSQL proporcionan API altamente
funcionales y tipos de datos que están diseñados específicamente para cada uno
de sus respectivos modelos de datos.

Tipos de bases de datos NoSQL

Clave-valor: las bases de datos clave-valor son altamente divisibles y permiten


escalado horizontal a escalas que otros tipos de bases de datos no pueden
alcanzar. Los casos de uso como juegos, tecnología publicitaria e IoT se prestan
particularmente bien con el modelo de datos clave-valor. Amazon DynamoDB está
diseñado para proporcionar una latencia de milisegundos constate de un solo dígito
para cualquier escala de cargas de trabajo. Este rendimiento coherente responde
en gran parte por qué la función de historias de Snapchat, (que incluye la carga de
trabajo de la escritura de almacenamiento más grande de Snapchat) se trasladó a
DynamoDB.

Documento: algunos desarrolladores no piensan en su modelo de datos en


términos de filas y columnas des normalizadas. Normalmente, en el nivel de
aplicación, los datos se representan como un documento JSON porque es más
intuitivo para los desarrolladores pensar en su modelo de datos como un
documento. La popularidad de las bases de datos de documentos ha crecido porque
los desarrolladores pueden conservar los datos en una base de datos utilizando el
mismo formato de modelo de documentos que usan en su código de aplicación.
DynamoDB y MongoDB son bases de datos de documentos muy conocidas que
proporcionan API poderosas e intuitivas para un desarrollo flexible y ágil.
Gráfico: el propósito de una base de datos de gráficos es facilitar la creación y la
ejecución de aplicaciones que funcionan con conjuntos de datos altamente
conectados. Los casos de uso típicos para una base de datos de gráficos incluyen
redes sociales, motores de recomendaciones, detección de fraude y gráficos de
conocimiento. Amazon Neptune es un servicio de base de datos de gráficos
completamente administrado. Neptune admite tanto el modelo de Property Graph
como el Resource Description Framework (RDF), que ofrece la opción de dos API
de gráficos: TinkerPop y RDF/SPARQL. Las bases de datos de gráficos populares
incluyen Neo4j y Giraph.

En memoria: las aplicaciones de juegos y tecnología publicitaria tienen casos de


uso como tablas de clasificación, tiendas de sesión y análisis en tiempo real que
requieren tiempos de respuesta de microsegundos y pueden tener grandes picos
de tráfico en cualquier momento. Amazon ElastiCache ofrece Memcached y Redis,
para servir cargas de trabajo de baja latencia y alto rendimiento, como McDonald’s,
en las que no se pueden servirse con almacenes de datos basados en
disco. Amazon DynamoDB Accelerator (DAX) es otro ejemplo de un almacén de
datos especialmente diseñado. DAX hace que DynamoDB lea una orden de
magnitud más rápida.

Buscar: muchas aplicaciones generan registros para ayudar a los desarrolladores


a solucionar problemas. Amazon Elasticsearch Service (Amazon ES) está diseñado
para proporcionar visualizaciones en tiempo real y análisis de datos generados por
máquinas al indexar, agregar y buscar registros y métricas semiestructuradas.
Amazon ES también es un poderoso motor de búsqueda de alto rendimiento para
casos de uso de búsqueda de texto completo. Expedia está utilizando más de 150
dominios de Amazon ES, 30 TB de datos y 30 mil millones de documentos para una
variedad de casos de uso críticos, que van desde el monitoreo operativo y la
resolución de problemas, hasta el seguimiento de la pila de aplicaciones distribuidas
y la optimización de precios.
Ventajas de una base de datos NoSQL
 La escalabilidad y su carácter descentralizado. Soportan estructuras
distribuidas.
 Suelen ser bases de datos mucho más abiertos y flexibles. Permiten
adaptarse a necesidades de proyectos mucho más fácilmente que los
modelos de Entidad Relación.
 Se pueden hacer cambios de los esquemas sin tener que parar bases de
datos.
 Escalabilidad horizontal: son capaces de crecer en número de máquinas, en
lugar de tener que residir en grandes máquinas.
 Se pueden ejecutar en máquinas con pocos recursos.
 Optimización de consultas en base de datos para grandes cantidades de
datos.
Desventajas de una base de datos NoSQL
 No todas las bases de datos NoSQL contemplan la atomicidad de las
instrucciones y la integridad de los datos. Soportan lo que se llama
consistencia eventual.
 Problemas de compatibilidad entre instrucciones SQL. Las nuevas bases de
datos utilizan sus propias características en el lenguaje de consulta y no son
100% compatibles con el SQL de las bases de datos relacionales. El soporte
a problemas con las queries de trabajo en una base de datos NoSQL es más
complicado.
 Falta de estandarización. Hay muchas bases de datos NoSQL y aún no hay
un estándar como si lo hay en las bases de datos relacionales. Se presume
un futuro incierto en estas bases de datos.
 Soporte multiplataforma. Aún quedan muchas mejoras en algunos sistemas
para que soporten sistemas operativos que no sean Linux.
 Suelen tener herramientas de administración no muy usables o se accede
por consola.
Diferencias entre Base de Datos Relacionales y las No Relacionales

Bases de datos
Bases de datos NoSQL
relacionales

Las bases de datos Las bases de datos clave-valor,


Cargas de relacionales están diseñadas documentos, gráficos y en
trabajo para aplicaciones de memoria de NoSQL están
óptimas procesamiento de diseñadas para OLTP para una
transacciones online (OLTP) serie de patrones de acceso a
altamente coherentes y datos que incluyen aplicaciones
transaccionales, y son de baja latencia. Las bases de
buenas para el datos de búsqueda NoSQL
procesamiento analítico están diseñadas para hacer
online (OLAP). análisis sobre datos
semiestructurados.

El modelo relacional
normaliza los datos en tablas
conformadas por filas y
columnas. Un esquema
define estrictamente las Las bases de datos NoSQL
tablas, las filas, las columnas, proporcionan una variedad de
Modelo de
los índices, las relaciones modelos de datos, que incluyen
datos
entre las tablas y otros documentos, gráficos, clave-
elementos de las bases de valor, en-memoria y búsqueda.
datos. La base de datos
impone la integridad
referencial en las relaciones
entre tablas.

Las bases de datos


relacionales ofrecen Las bases de datos NoSQL a
propiedades de atomicidad, menudo hacen concesiones al
coherencia, aislamiento y flexibilizar algunas de las
durabilidad (ACID): propiedades ACID de las bases
de datos relacionales para un
La atomicidad requiere que
modelo de datos más flexible
una transacción se ejecute
que puede escalar
Propiedades por completo o no se ejecute
horizontalmente. Esto hace que
ACID en absoluto.
las bases de datos NoSQL sean
La coherencia requiere que una excelente opción para casos
una vez confirmada una de uso de baja latencia y alto
transacción, los datos deban rendimiento que necesitan
acoplarse al esquema de la escalar horizontalmente más allá
base de datos. de las limitaciones de una sola
instancia.
El aislamiento requiere que
las transacciones
simultáneas se ejecuten por
separado.
La durabilidad requiere la
capacidad de recuperarse de
un error inesperado del
sistema o de un corte de
energía y volver al último
estado conocido.

Normalmente, el rendimiento
depende del subsistema de El rendimiento es, por lo general,
disco. Se necesita la depende del tamaño del clúster
Rendimiento optimización de consultas, de hardware subyacente, la
índices y estructura de tabla latencia de red y la aplicación
para lograr el máximo que efectúa la llamada.
rendimiento.

Las bases de datos NoSQL


Las bases de datos
normalmente se pueden
relacionales generalmente
particionar porque los patrones
escalan en forma ascendente
de acceso de valores clave son
las capacidades de
escalables mediante el uso de
Escalado computación del hardware o
arquitectura distribuida para
la ampliación mediante la
aumentar el rendimiento que
adición de réplicas para
proporciona un rendimiento
cargas de trabajo de solo
constante a una escala casi
lectura.
ilimitada.

Las API basadas en objetos


permiten a los desarrolladores
Solicita almacenar y
almacenar y recuperar
recuperar datos que están
fácilmente estructuras de datos
comunicados mediante
en memoria. Las claves de
consultas que se ajustan a un
partición permiten que las
API lenguaje de consulta
aplicaciones busquen pares de
estructurado (SQL). Estas
clave-valor, conjuntos de
consultas son analizadas y
columnas o documentos
ejecutadas por la base de
semiestructurados que
datos relacional.
contengan atributos y objetos de
aplicación serializados.
Ejemplos de bases de datos NoSQL o No relacionales
Veamos a continuación algunos tipos de bases NoSQL más utilizadas actualmente.

1.- 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.
2.- Redis: Se trata de una base de datos creada por Salvatore San Filippo 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.
3.- 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.
4.- CouchDB WHITEPAPER: Se trata de un sistema creado por Apache y escrito
en lenguaje Erlang que funciona en la mayoría de sistemas POSIX, incluyendo
GNU/LINUX y OSX, pero no así en sistemas Windows. Como características más
importantes cabe destacar el uso de Restfull HTTP API como interfaz y JavaScript
como principal lenguaje de interacción. Para el almacenamiento de los datos se
utiliza archivos JSON. Permite la creación de vistas, que son el mecanismo que
permite la combinación de documentos para retornar valores de varios documentos,
es decir, CouchDB permite la realización de las operaciones JOIN típicas de SQL.

Ejemplo práctico: bases de datos no relacionales


Quizá os estéis preguntando “si las bases de datos relacionales son tan prácticas,
¿en qué situaciones es buena idea trabajar con las no relacionales?”. Si algo tienen
de malo las bases de datos relacionales, es que son como Sheldon Cooper, tienen
que saber de antemano qué es y cómo es lo que van a almacenar. En cambio, las
bases de datos no relacionales son más flexibles, se lo tragan todo, sin importar su
estructura.
Imaginemos que hemos mandado unas máquinas al espacio para que nos reporten
qué es lo que encuentran en su viaje. Obviamente, no sabemos a ciencia cierta qué
se van a encontrar. De alguna forma, tienen una inteligencia artificial instalada que
reconoce los objetos con los que se va encontrando y también tienen sensores
instalados. Pero no sabemos bien qué miden, ya que cada máquina tiene sensores
diferentes. Cada 24 horas envían un resumen de lo que han visto durante el día.
{
"maquina_id":1,
"timestamp":149992693000,
"coordenadas":"75988823.567, 55375867.098, 12676444.311",
"encontrado”: [
"roca",
"agua",
"roca",
"roca",
"algo que parece un animal",
"roca"
],
"temperatura”: {
"min”: -50,
"max”: -49
},
"ruido”: {
"min":72,
"max":4549
}
}
{
"maquina_id":2,
"timestamp":1499925677000,
"coordenadas":"66635675.920, 78021134.727, 53580995.751",
"temperatura”: {
"min”: -50,
"max”: -49
},
"humedad”: {
"min":2%,
"max":5%
}
}
Cada uno de estos documentos JSON contiene la información reportada en cada
envío por cada máquina. La máquina con identificador 1 está reportando datos de
temperatura y ruido, mientras que la de identificador 2 reporta temperatura y
humedad. No sabemos qué sensores tendrá instalados la siguiente y, mucho
menos, qué y cómo reportarán las máquinas que aún no se han mandado y los
ingenieros están montando. No merece la pena ponerse a diseñar una base de
datos relacional para almacenar esta información. En este caso, lo mejor es dejar a
una base de datos no relacional que se trague todo lo que las máquinas reportan,
tal cual. Además, la finalidad del sistema es meramente científica y no se contempla
la existencia de usuarios a los que se les deba la garantía de consistencia que
ofrecen las bases de datos SQL. Simplemente, se quiere almacenar todo para un
futuro análisis. Una vez almacenados en la base de datos no relacional se podrá
pedir y visualizar la información de diferentes maneras. Y si en algún momento se
necesita consumir los datos de una forma más estructurada, siempre podremos
procesar y volcar la información a una base de datos relacional. Pero es que, muy
probablemente, no sea necesario.
Conclusión

En el siguiente trabajo se presentó una investigación correspondiente al tema


denominado: “Bases de Datos No Relacionales uso y Ejemplo” en la
cual se conoció el concepto de Base de Datos No Relacionales son las que, a
diferencia de las relacionales, no tienen un identificador que sirva de relación entre
un conjunto de datos y otros. Como veremos, la información se organiza
normalmente mediante documentos y es muy útil cuando no tenemos un esquema
exacto de lo que se va a almacenar. Una base de datos no relacional es aquella
que no usa el esquema tabular de filas y columnas que se encuentra en la
mayoría de los sistemas de base de datos más tradicionales. En su lugar, las
bases de datos no relacionales usan un modelo de almacenamiento que está
optimizado para los requisitos específicos del tipo de datos que se almacena.
También conocimos que la Base de Datos No Relacionales utiliza una variedad de
modelos de datos para acceder y administrar datos, como documentos, gráficos,
clave-valor, en-memoria y búsqueda. Estos tipos de bases de datos están
optimizados específicamente para aplicaciones que requieren grandes volúmenes
de datos, baja latencia y modelos de datos flexibles, lo que se logra mediante la
flexibilización de algunas de las restricciones de coherencia de datos en otras bases
de datos.
También conocimos las Ventajas de una base de datos NoSQL
 La escalabilidad y su carácter descentralizado. Soportan estructuras
distribuidas.
 Suelen ser bases de datos mucho más abiertos y flexibles. Permiten
adaptarse a necesidades de proyectos mucho más fácilmente que los
modelos de Entidad Relación.
 Se pueden hacer cambios de los esquemas sin tener que parar bases de
datos.
Y las Desventajas de una base de datos NoSQL
 No todas las bases de datos NoSQL contemplan la atomicidad de las
instrucciones y la integridad de los datos. Soportan lo que se llama
consistencia eventual.
 Problemas de compatibilidad entre instrucciones SQL. Las nuevas bases de
datos utilizan sus propias características en el lenguaje de consulta y no
son 100% compatibles con el SQL de las bases de datos relacionales. El
soporte a problemas con las queries de trabajo en una base de datos
NoSQL es más complicado.
 Falta de estandarización. Hay muchas bases de datos NoSQL y aún no hay
un estándar como si lo hay en las bases de datos relacionales. Se presume
un futuro incierto en estas bases de datos.
 Soporte multiplataforma. Aún quedan muchas mejoras en algunos sistemas
para que soporten sistemas operativos que no sean Linux, etc.
Bibliografía
https://aws.amazon.com/es/nosql/

https://www.facilcloud.com/noticias/sql-vs-nosql-which-one-should-i-use/

https://www.swapbytes.com/rdbms-vs-nosql-bases-de-datos-relacionales-no-relacionales/

https://blog.pandorafms.org/es/nosql-vs-sql-diferencias-y-cuando-elegir-cada-una/

https://www.acens.com/wp-content/images/2014/02/bbdd-nosql-wp-acens.pdf

https://es.slideshare.net/rafq007/diferencias-entre-base-de-datos-relacional-y-no-relacional

https://aukera.es/blog/bases-de-datos-relacionales-vs-no-relacionales/

https://ascenso.org/instituto-marketing-digital/respuestas/que-es-nosql/

You might also like