Documentos de Académico
Documentos de Profesional
Documentos de Cultura
UNIVERSIDAD
TECNOLÓGICA DEL NORTE
DE GUANAJUATO.
Grupo: GDS0351
Alumnos:
1220100306
1220100579
MÁRIA GUADALUPE PUENTE GONZALEZ - JOSE ISRAEL SALDAÑA GODÍNEZ 2
INDICE
Introducción........................................................................................................................................................3
Semblanza a las Bases de Datos No Relacionales - NoSQL..................................................................4
Características fundamentales de estos tipos de base de datos..........................................................5
Ventajas y desventajas de estos tipos de base de datos........................................................................5
VENTAJAS...........................................................................................................................................................5
DESVENTAJAS.....................................................................................................................................................6
Uso de las bases de datos no relacionales................................................................................................6
Tipos de bases de datos NoSQL..........................................................................................................................6
Diferencias entre una base de datos relacional y una no relacional....................................................7
Principales gestores de base de datos no relacionales..........................................................................9
Conclusión........................................................................................................................................................11
Bibliografía........................................................................................................................................................12
Introducción
Hay muchas aplicaciones web que utilizan algún tipo de base de datos para funcionar. hasta ahora solíamos
usar bases de datos SQL como MySQL, Oracle o MS SQL, pero desde entonces hace algún tiempo
aparecieron otros como NoSQL (no solo SQL - no solo SQL) y lo cual viene con el propósito de tratar con las
reglas relacionales que la mayoría de la gente usa el usuario.
Las bases de datos no relacionales son las más simples. La base de datos clave-valor se puede ver como una
lista de pares, donde tenemos claves que están asociadas de manera única con valores, es decir, cada clave
corresponde a un valor único y único.
La simplicidad de la estructura al mismo tiempo concilia sus principales ventajas y desventajas. Estas bases de
datos tienen una velocidad de búsqueda muy alta, si las comparamos con bases de datos relacionales es como
si indexáramos todos los datos con un índice denso. Sin embargo, al mismo tiempo, los datos que podemos
registrar cumplen una estructura muy simple, que en ocasiones puede no ser suficiente para cubrir nuestras
necesidades.
Los valores que almacenamos pueden ser: imágenes, documentos, sonidos…. Esto hace que la base de datos
sea muy potente cuando queremos gestionar una gran cantidad de datos pesados concurrentes, con una
estructura muy sencilla y la necesidad de un acceso rápido y simultáneo por parte de muchos usuarios.
Lo que todos lo que estos almacenes de datos tienen en común están que no utilizan un modelo relacional.
Además, tienden a ser más específicos en el tipo de datos que admiten y en cómo se pueden consultar los
datos. El término NoSQL hace referencia a almacenes de datos que no usan SQL para las consultas. En su
lugar, los almacenes de datos usan otros lenguajes de programación y otras construcciones para consultar los
datos. En la práctica, "NoSQL" significa "base de datos no relacional", aunque muchas de estas bases de datos
admiten consultas compatibles con SQL. Sin embargo, la estrategia de ejecución de consultas subyacente
normalmente es de la forma en que una RDBMS tradicional ejecutaría la misma consulta SQL.
¿Qué son las bases de datos no relacionales? Las bases de datos no relacionales son un sistema de
almacenamiento de información que se caracteriza por no usar el lenguaje SQL para las consultas. Esto no
significa que no se pueda utilizar el lenguaje SQL, pero no lo hace como herramienta de consulta, sino como
apoyo. Por ello también se le suele llamar NoSQL (no solo SQL).
Se puede decir que la aparición del término NoSQL apareció con la llegada de la Web 2.0 ya que en ese
momento solo subían contenido a la red las empresas que contaban con un portal para subir contenido a la red,
pero con la llegada de aplicaciones como Facebook, Twitter o YouTube, cualquier usuario podía subir
contenido, provocando el crecimiento de los datos. En el momento que aparecieron las aplicaciones ya
mencionadas, fue donde empezaron los primeros problemas de la gestión de todos los datos almacenados en
las bases de datos relacionales. Al comienzo, para solucionar estos problemas de accesibilidad, las empresas
optaron por utilizar más maquinas, pero pronto se dieron cuenta de que esa no era la solución que se
necesitaba, además de ser una solución que implicaba invertir cantidades grandes de dinero. Otra solución era
la creación de robustas, apareciendo así el movimiento NoSQL.
El mencionar NoSQL es hablar de estructuras que nos permiten almacenar información en aquellas situaciones
en las que las bases de datos relaciones generen problemas debido a problemas de escalabilidad y rendimiento
de las bases de datos relacionales donde se dan cita miles de usuario concurrentes y con millones de consultas
diarias. Las bases de datos NoSQL son sistemas de almacenamiento de información que no cumple cumplen
con un esquema entidad-relación, y mucho menos utilizan una estructura de datos en 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.
NoSQL se refiere a una gran variedad de tecnologías de base de datos que se han desarrollado en respuesta a
las necesidades de desarrollo de las aplicaciones modernas, las cuales las bases de datos relacionales no
pueden solventar y generan problemas al almacenar los diferentes datos dados por los usuarios. Los
desarrolladores trabajan con aplicaciones que generan un enorme volumen de datos y constante evolución de
ellos (Estructurados, semiestructurados, no estructurados y polimórficos).
Las bases de datos no relaciones no fueron diseñadas para poder hacer frente a la escalabilidad y agilidad que
necesitan las aplicaciones modernas, ni para beneficiarse de los sistemas de almacenamiento básico y de la
potencia de procesos que existen hoy en día. Ya que antes las aplicaciones funcionaban con un conjunto finito
de usuarios ahora se proporcionan como servidores, que no solo deben funcionar sin interrupción, sino que
además tiene que ser accesibles desde dispositivos y deben poder escalarse a millones de usuarios de todo el
mundo. por ellos es analizar cual base de datos va mas acorde a una problemática que se requiere solucionas,
si una relacional o no relación.
Las bases de datos no relacionales o NoSQL se caracterizan por tener una mayor escalabilidad y por
su soportar una estructura distribuida, son más flexibles y permiten hacer cambios en los esquemas.
Además, permiten la escalabilidad horizontal y están optimizadas para grandes cantidades de datos.
Pero antes de escoger una base de datos se tiene que tomar en cuenta las características del proyecto
y ver si se necesita una BBDD relacional o no.
La información no se almacena en tablas sino a través de documentos.
Son bases de datos muy útiles pata organizar y gestionar información no estructurada, o cuando no se
tiene una noción clara de los datos a almacenar.
No se utiliza el lenguaje SQL para consultas, aunque si lo pueden usar como herramientas de apoyo.
Es un sistema de almacenamiento de datos relativamente nuevo, y como tal, todavía no posee un
sistema estandarizado.
A diferencia de las no relacionales, no garantizan el cumplimiento de las cualidades ACID, esto es,
atomicidad, consistencia, integridad y durabilidad.
Arquitectura distribuida. Las bases de datos relacionales suelen estar centralizadas en una única
máquina o bien en una estructura máster–esclavo, sin embargo, en los casos NoSQL la información
puede estar compartida en varias máquinas mediante mecanismos de tablas Hash distribuidas.
No suelen permitir operaciones JOIN. Al disponer de un volumen de datos tan extremadamente grande
suele resultar deseable evitar los JOIN. Esto se debe a que, cuando la operación no es la búsqueda de
una clave, la sobrecarga puede llegar a ser muy costosa. Las soluciones más directas consisten en
desnormalizar los datos, o bien realizar el JOIN mediante software, en la capa de aplicación.
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.
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.
DESVENTAJAS
Por su parte, las principales desventajas de una base de datos no relacional son las siguientes:
No cumplen igual que las relacionales con las propiedades de atomicidad, consistencia, integridad y
durabilidad.
No son compatibles con determinadas consultas en lenguaje SQL.
Carecen de un sistema estandarizado ya que todavía son bases de datos relativamente nuevas.
Muchos sistemas de gestión de bases de datos relacionales son de código abierto y tienen una gran
comunidad detrás programando soluciones y nuevas funcionalidades. En el caso de las bases de datos
no relacionales este soporte es mucho más limitado.
Las bases de datos NoSQL utilizan una variedad de modelos de datos para acceder y administrar datos. 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 flexibilidad de
algunas de las restricciones de coherencia de datos en las otras bases de datos.
Clave-valor: las basas de datos clave-valor son altamente divisibles y permiten escalado horizontal a escalas
que otros tipos de bases de datos no pueden diseñar para proporcionar una latencia de milisegundos constante
de un solo digito para cualquier escala de carga de trabajo.
Documentos: en el código de aplicaciones, los datos se representan a menudo como un objeto o un documento
de tipo JSON porque es un modelo de datos eficientes e intuitivo para los desarrolladores. Las bases de datos
de documentos facilitan a los desarrolladores el almacenamiento y la consulta de datos en una base de datos
mediante el uso del mismo formato de modelos de documentos que emplean en el código de aplicación.
Gráficos: 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.
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.
Nombre: Cassandra
Corporación: Apache Software Fundation.
Tamaño: 2 GB
Ultima versión: 3.11.7 (25 de julio de 2020)
Requerimientos adicionales Java, Python 2.7, Docker CE
Cassandra es un sistema de código abierto distribuido de gestión de base de datos diseñado para manejar
grandes cantidades de datos a través de muchos servidores de conveniencia, proporcionando alta
disponibilidad sin ningún punto único de fallo.
Nombre: Redis
Corporación: Amazon
Tamaño: 512 MD
Ultima versión: 6.0.6 (20 de julio de 2020)
Requerimientos adicionales: ActionScript, C, C++, C#, Clojure, Common
Lisp, Erlang, Go, Haskell, haXe, Io, Java,
server-side JavaScript (Node.js), Lua,
Objective-C, Perl, PHP, Pure Data, Python,
Ruby, Scala, Smalltalk y Tcl.
Redis, que significa Remote Dictionary Server, es un rápido almacén de datos clave-valor en memoria de
código abierto. El proyecto se inició cuando Salvatore Sanfilippo, el desarrollador original de Redis trataba de
mejorar la escalabilidad de su empresa emergente italiana. A partir de ahí, desarrolló Redis, que ahora se utiliza
como base de datos, caché, agente de mensajes y cola.
Redis ofrece tiempos de respuesta inferiores al milisegundo, lo que permite que se realicen millones de
solicitudes por segundo para aplicaciones en tiempo real de la industria, como videojuegos, tecnología
publicitaria, servicios financieros, sanidad e IoT
Nombre: MongoDB
Corporación: MongoDB Inc.
Tamaño: 4 MB
Ultima versión: 4.0.8 (29 de marzo de 2019
Requerimientos adicionales:
MongoDB es una base de datos de documentos que ofrece una gran escalabilidad y flexibilidad, y un modelo de
consultas e indexación avanzado.
Nombre: CouchDB
Corporación: Apache Software Foundation
Tamaño: 8 MB
Ultima versión: 3.0.0 (26.02.2020)
Requerimientos adicionales: JavaScript
Una factura es un documento independiente que reúne toda la información relevante en un registro de datos
completo: emisor, número de factura, destinatario, precio, artículos vendidos, dirección del emisor de la factura
y del destinatario. Todo ello es información esencial de este registro único. En una base de datos relacional toda
esta información se distribuye en diferentes líneas, mientras que CouchDB permite recoger toda esta
información en un documento. Por lo tanto, los datos no necesitan estar estructurados previamente. La
estructura resulta del propio documento. Por lo tanto, CouchDB se puede considerar un sistema de gestión de
bases de datos sin tablas.
Conclusión
Las bases de datos son una parte esencial de cualquier sistema informático, ya que todos los
programas que tienen que acceder a diferentes datos durante la ejecución o crear otros datos deben
almacenarse por separado, de forma fiable, no conflictiva y permanente. Esto puede suceder en
bases de datos (BD) que están organizadas y administradas por sistemas de administración de bases
de datos (SGBD), aplicaciones de software que interactúan con el usuario o con otros programas
porque puede haber una información almacenada en la base de datos.
Las bases de datos NoSQL son realmente otra opción en la categoría de alternativas para almacenar los datos
de su aplicación. Hay varios tipos, pero generalmente su objetivo principal es resolver problemas de rendimiento
y escalabilidad de RDBMS. Por otro lado, RDBMS no desaparecerá menos. Sus capacidades de transacción los
hacen ideales para la mayoría de las aplicaciones actuales. Sin embargo, definitivamente sufrirán cambios.
Al igual que en las bases de datos orientadas a objetos anteriores que influyeron en el desarrollo de RDBMS, en
el futuro veremos muchas de las ideas de NoSQL aplicadas a las bases de datos relacionales. En el futuro,
utilizará más de un tipo de base de datos. Lo que es apropiado para su aplicación y, además, lo que es
apropiado para el caso de uso particular de su aplicación. Por lo tanto, no es raro ver desarrollos que utilizan
más de un tipo de base de datos.
El punto es que debe seguir adaptándose, dejar de preocuparse por perder la seguridad de RDBMS y comenzar
a usar otras alternativas. Muchas bases de datos NoSQL ya están en producción, y algunas de ellas tienen
soporte comercial y están respaldadas por grandes corporaciones. Recuerde, no se trata de usar la mejor
herramienta, se trata de usar la mejor herramienta para su problema en particular.
Bibliografía
Bases de Datos NoSQL: qué son y cuáles son sus ventajas. (2021, October). UNIR México; UNIR
México. https://mexico.unir.net/ingenieria/noticias/bases-de-datos-nosql/
Explicación sobre las bases de datos NoSQL. (2020). MongoDB. https://www.mongodb.com/es/nosql-
explained
Tablado, F. (2020, September 9). Base de datos no relacional. ¿Qué es? Características y ejemplos.
Ayuda Ley Protección Datos; AyudaLeyProteccionDatos. https://ayudaleyprotecciondatos.es/bases-de-
datos/no-relacional/
Bases de datos no relacionales | Bases de datos de gráficos | AWS. (2022). Amazon Web Services, Inc.
https://aws.amazon.com/es/nosql/
Bases de Datos NoSQL: qué son y cuáles son sus ventajas. (2021, October). UNIR México; UNIR
México. https://mexico.unir.net/ingenieria/noticias/bases-de-datos-nosql/
Redis: almacén de datos en memoria. Cómo funciona y por qué utilizarlo. (2022). Amazon Web
Services, Inc. https://aws.amazon.com/es/redis/