0% encontró este documento útil (0 votos)
56 vistas8 páginas

No SQL

Este documento presenta un análisis de las bases de datos NoSQL, sus tipos y beneficios. Explora bases de datos clave-valor, de documentos, de columnas anchas y de grafos. También describe a MongoDB, una base de datos de documentos que almacena datos en formato JSON y permite esquemas flexibles.

Cargado por

luis chicaisa
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descargue como DOCX, PDF, TXT o lea en línea desde Scribd
Descargar como docx, pdf o txt
0% encontró este documento útil (0 votos)
56 vistas8 páginas

No SQL

Este documento presenta un análisis de las bases de datos NoSQL, sus tipos y beneficios. Explora bases de datos clave-valor, de documentos, de columnas anchas y de grafos. También describe a MongoDB, una base de datos de documentos que almacena datos en formato JSON y permite esquemas flexibles.

Cargado por

luis chicaisa
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descargue como DOCX, PDF, TXT o lea en línea desde Scribd
Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1/ 8

INSTITUTO SUPERIOR TECNOLÓGICO VICENTE LEÓN

TENDENCIAS ACTUALES DE PROGRAMACIÓN

NOMBRES: SEMESTRE: Quinto Nivel


Jose Luis Chicaisa
Ismael Chuquitarco
Kevin Chile
Alexis Mena
Bryan Caiza FECHA: 05/12/2022

TEMA: Bases de Datos NoSQL


OBJETIVO GENERAL
 Analizar a profundidad los tipos de bases de datos no SQL sus definiciones y su
función por medio de la investigación realizada para una mejor comprensión.

INTRODUCCIÓN
Las bases de datos NO SQL nacen de la necesidad de:

 Simplicidad en los diseños


 Escalado horizontal
 Mayor control en la disponibilidad

Pero cuidado, en muchos escenarios las BBDD relacionales siguen siendo la mejor
opción.

DESARROLLO
Bases de Datos NoSQL: Tipos y Beneficios
Bases de Datos NoSQL
NoSQL es un enfoque de las bases de datos que representa un cambio de los
tradicionales sistemas de gestión de bases de datos relacionales. Para definir NoSQL, es
útil comenzar describiendo SQL, que es un lenguaje de consulta utilizado por las BBDD
relacionales.

Las bases de datos relacionales se basan en tablas, columnas, filas o esquemas para
organizar y recuperar datos. Por el contrario, las bases de datos NoSQL no se basan en
estas estructuras y utilizan modelos de datos más flexibles.

NoSQL puede significar "no SQL" o "no sólo SQL".

Dado que las BBDD SQL han estado fallando cada vez más en satisfacer las necesidades
de rendimiento, escalabilidad y flexibilidad que necesitan las aplicaciones de la
próxima generación que requieren datos intensivos, las empresas mainstream han
adoptado bases de datos NoSQL.

NoSQL es particularmente útil para almacenar datos no estructurados, que están


creciendo mucho más rápidamente que los datos estructurados y no encaja en los
esquemas relacionales y sus tipos de datos establecidos.
Los tipos comunes de datos no estructurados incluyen: datos de usuario y sesión; Chat,
mensajería y datos de registro, datos de series de tiempo tales y datos de dispositivos
además de objetos grandes como video e imágenes.

Tipos de base de datos NoSQL


Se han creado varias variedades de bases de datos NoSQL para soportar necesidades
específicas y casos de uso. Éstos se dividen en cuatro categorías principales:

Bases de datos de valores clave: las bases de datos NoSQL de valor-clave hacen


hincapié en la simplicidad y son muy útiles para acelerar una aplicación que admita el
procesamiento de alta velocidad de lectura y escritura de datos no transaccionales. Los
valores almacenados pueden ser cualquier tipo de objeto binario (texto, video,
documento JSON, etc.) y se accede a través de una clave. La aplicación tiene control
total sobre lo que se almacena en el valor, convirtiéndolo en el modelo NoSQL más
flexible. Los datos se comparten y se replican en un clúster para obtener escalabilidad
y disponibilidad. Por esta razón, las bases de datos de valores clave a menudo no
admiten transacciones. Sin embargo, son muy eficaces en aplicaciones de escala que se
ocupan de datos de alta velocidad y no transaccionales.

Base de datos de documentos: Las bases de datos de documentos suelen almacenar


documentos JSON, XML y BSON. Son similares a las bbdd de valores clave, pero en este
caso, un valor es un solo documento que almacena todos los datos relacionados con
una clave específica. Los campos populares del documento pueden indexarse para
proporcionar una recuperación rápida sin conocer la clave. Cada documento puede
tener la misma estructura o una estructura diferente.

Bases de datos de columnas anchas: Las bases de datos NoSQL de columnas anchas


almacenan datos en tablas con filas y columnas similares a las BBDD relacionales, pero
los nombres y los formatos de las columnas pueden variar de fila a fila en la tabla. Las
columnas de columnas anchas agrupan columnas de datos relacionados juntos. Una
consulta puede recuperar datos relacionados en una sola operación porque sólo se
recuperan las columnas asociadas con la consulta. En una BBDD, los datos estarían en
diferentes filas almacenadas en diferentes lugares del disco, requiriendo múltiples
operaciones de disco para su recuperación.

Bases de datos de grafos: una base de datos de grafos utiliza estructuras de grafos para
almacenar, correlacionar y consultar relaciones. Proporcionan una adyacencia libre de
índice, de modo que los elementos adyacentes se unen entre sí sin usar un índice.

Las bases de datos multimodales aprovechan alguna combinación de los cuatro tipos
descritos anteriormente y, por lo tanto, pueden soportar una gama más amplia de
aplicaciones.

Beneficios de NoSQL
Las bases de datos NoSQL ofrecen a las empresas ventajas importantes sobre el
RDBMS tradicional, entre ellas:

 Escalabilidad: las bases de datos NoSQL utilizan una metodología de escala


horizontal que facilita la adición o reducción de la capacidad de forma rápida y
sin interrupciones con el hardware de los productos básicos. Esto elimina el
tremendo costo y complejidad de la fragmentación manual que es necesaria al
intentar escalar.
 Rendimiento: Simplemente agregando recursos dinámicamente, las empresas
pueden aumentar el rendimiento con las bases de datos NoSQL. Esto permite a
las organizaciones continuar ofreciendo experiencias de usuario rápidas y
confiables con un retorno de inversión previsible.
 Alta disponibilidad: las bases de datos NoSQL generalmente están diseñadas
para garantizar la alta disponibilidad y evitar la complejidad que viene con una
arquitectura típica que se basa en nodos primarios y secundarios. Algunas
bases de datos NoSQL distribuidas utilizan una arquitectura que distribuye
automáticamente los datos de forma equitativa entre varios recursos para que
la aplicación permanezca disponible para las operaciones de lectura y escritura
incluso cuando falla un nodo.
 Disponibilidad: Al replicar automáticamente los datos a través de múltiples
servidores, centros de datos o recursos de la nube, las bases de datos NoSQL
distribuidas pueden minimizar la latencia y garantizar una experiencia de
aplicación consistente dondequiera que se encuentren los usuarios.

¿Qué es MongoDB?
En un artículo anterior ya hablamos sobre MongoDB. Recordemos. MongoDB es una
base de datos orientada a documentos. Esto quiere decir que en lugar de guardar los
datos en registros, guarda los datos en documentos. Estos documentos son
almacenados en BSON, que es una representación binaria de JSON.

Una de las diferencias más importantes con respecto a las bases de datos relacionales,
es que no es necesario seguir un esquema. Los documentos de una misma colección -
concepto similar a una tabla de una base de datos relacional -, pueden tener esquemas
diferentes.

Imaginemos que tenemos una colección a la que llamamos Personas. Un documento


podría almacenarse de la siguiente manera:

Nombre: "Pedro",
Apellidos: "Martínez Campo",

Edad: 22,

Aficiones: ["fútbol","tenis","ciclismo"],

Amigos: [

Nombre:"María",

Edad:22

},

Nombre:"Luis",

Edad:28

El documento anterior es un clásico documento JSON. Tiene strings, arrays,


subdocumentos y números. En la misma colección podríamos guardar un documento
como este:

Nombre: "Luis",

Estudios: "Administración y Dirección de Empresas",

Amigos:12

Este documento no sigue el mismo esquema que el primero. Tiene menos campos,
algún campo nuevo que no existe en el documento anterior e incluso un campo de
distinto tipo.
Esto que es algo impensable en una base de datos relacional, es algo totalmente válido
en MongoDB.

¿Cómo funciona MongoDB?


MongoDB está escrito en C++, aunque las consultas se hacen pasando objetos JSON
como parámetro. Es algo bastante lógico, dado que los propios documentos se
almacenan en BSON. Por ejemplo:

db.Clientes.find({Nombre:"Pedro"});

La consulta anterior buscará todos los clientes cuyo nombre sea Pedro.

MongoDB viene de serie con una consola desde la que podemos ejecutar los distintos
comandos. Esta consola está construida sobre JavaScript, por lo que las consultas se
realizan utilizando ese lenguaje. Además de las funciones de MongoDB, podemos
utilizar muchas de las funciones propias de JavaSciprt. En la consola también podemos
definir variables, funciones o utilizar bucles.

Si queremos usar nuestro lenguaje de programación favorito, existen drivers para un


gran número de ellos. Hay drivers oficiales para C#, Java, Node.js, PHP, Python, Ruby,
C, C++, Perl o Scala. Aunque estos drivers están soportados por MongoDB, no todos
están en el mismo estado de madurez. Por ejemplo el de C es una versión alpha. Si
queremos utilizar un lenguaje concreto, es mejor revisar los drivers disponibles para
comprobar si son adecuados para un entorno de producción.

¿Dónde se puede utilizar MongoDB?


Aunque se suele decir que las bases de datos NoSQL tienen un ámbito de aplicación
reducido, MongoDB se puede utilizar en muchos de los proyectos que desarrollamos
en la actualidad.

Cualquier aplicación que necesite almacenar datos semi estructurados puede


usar MongoDB. Es el caso de las típicas aplicaciones CRUD o de muchos de los
desarrollos web actuales.

Eso sí, aunque las colecciones de MongoDB no necesitan definir une esquema, es
importante que diseñemos nuestra aplicación para seguir uno. Tendremos que pensar
si necesitamos normalizar los datos, denormalizarlos o utilizar una aproximación
híbrida. Estas decisiones pueden afectar al rendimiento de nuestra aplicación. En
definitiva el esquema lo definen las consultas que vayamos a realizar con más
frecuencia.

MongoDB es especialmente útil en entornos que requieran escalabilidad. Con sus


opciones de replicación y sharding, que son muy sencillas de configurar, podemos
conseguir un sistema que escale horizontalmente sin demasiados problemas.

¿Dónde no se debe usar MongoDB?

En esta base de datos no existen las transacciones. Aunque nuestra aplicación puede
utilizar alguna técnica para simular las transacciones, MongoDB no tiene esta
capacidad. Solo garantiza operaciones atómicas a nivel de documento. Si las
transacciones son algo indispensable en nuestro desarrollo, deberemos pensar en otro
sistema.

Tampoco existen los JOINS. Para consultar datos relacionados en dos o más
colecciones, tenemos que hacer más de una consulta. En general, si nuestros datos
pueden ser estructurados en tablas, y necesitamos las relaciones, es mejor que
optemos por un RDBMS clásico.

Y para finalizar, están las consultas de agregación. MongoDB tiene un framework para


realizar consultas de este tipo llamado Aggregation Framework. También puede usar
Map Reduce. Aún así, estos métodos no llegan a la potencia de un sistema relacional.
Si vamos a necesitar explotar informes complejos, deberemos pensar en utilizar otro
sistema. Eso sí, esta es una brecha que MongoDB va recortando con cada versión. En
poco tiempo esto podría dejar de ser un problema.

CONCLUSIÓN
 Las bases de datos NoSQL son ya una opción más en la cartera de alternativas
para almacenar los datos de tus aplicaciones. Existen varios tipos de ellas, pero
en general su objetivo principal es resolver los problemas de performance y de
escalabilidad de las RDBMS.
 Por otro lado, las RDBMS no desaparecerán ni mucho menos. Sus capacidades
transaccionales las hacen perfectas para la mayoría de las aplicaciones
existentes.

BIBLIOGRAFÍA
 García J. (21 de julio 2020). Tecnologías de la infomación. Bases de
Datos NoSQL: Tipos y Beneficios. Recuperado de:
https://www.tecnologias-informacion.com/nosql.html
 Jacome D. (5 de marzo 2019). Genbeta. MongoDB: qué es, cómo
funciona y cuándo podemos usarlo Recuperado de:
https://www.genbeta.com/desarrollo/mongodb-que-es-como-funciona-
y-cuando-podemos-usarlo-o-no

También podría gustarte