Subido por jesusperez.0407

CASO III I 2023

Anuncio
Universidad de oriente
Núcleo Monagas
Escuela de ingeniería y ciencias aplicadas
Departamento de Ingeniería de sistemas
Administración de sistemas de base de datos (071-3622)
Bases de datos no relacionales (NoSQL)
Docente:
Bachilleres:
Msc. Aníbal Fariñas
Arvelo, Jesús C.I: 28516610
Pérez, Jesús C.I: 29914067
Rangel, María C.I: 30439811
Maturín, febrero 2024
Índice
Bases de datos no relacionales (NoSQL) ................................................................................... 1
1.
Origen de las Bases de Datos No Relacionales (NoSQL):............................................... 5
2.
Limitaciones de las Bases de Datos Relacionales: ........................................................... 6
3.
Teorema CAP: .................................................................................................................. 7
4.
Big Data: .......................................................................................................................... 8
5.
Características de las Bases de Datos NoSQL: ................................................................ 8
6.
5.1
Esquema Flexible: ........................................................................................................ 8
5.2
Escalabilidad Horizontal............................................................................................... 8
5.3
Modelos de Datos Variados:......................................................................................... 9
5.4
Optimización para Operaciones de Lectura/Escritura Específicas: .............................. 9
5.5
Escalabilidad Lineal: .................................................................................................... 9
5.6
Escalabilidad Horizontal: ............................................................................................. 9
5.7
Habilidad de Distribución:............................................................................................ 9
5.8
Uso Eficiente de Recursos: ......................................................................................... 10
5.9
Libertad de Esquema: ................................................................................................. 10
5.10
Modelo de Concurrencia Débil: .............................................................................. 10
5.11
Consultas Simples: .................................................................................................. 11
Elementos ....................................................................................................................... 11
6.1
Documento: ................................................................................................................ 11
6.2
Tipos de Datos: ........................................................................................................... 11
6.3
Colecciones:................................................................................................................ 12
6.4
Base de Datos: ............................................................................................................ 12
Clasificación en función de su modelo de datos ............................................................ 13
7.
7.1
Orientadas a Clave-Valor (Key-Value Stores): .......................................................... 13
7.2
Orientadas a Columnas (Wide Column Stores):......................................................... 13
7.3
Orientadas a Documentos (Document Stores): .......................................................... 13
7.4
Orientadas a Gráficos (Graph Databases): ................................................................. 13
8.
Ventajas de los Sistemas NoSQL: .................................................................................. 14
9.
Inconvenientes de los sistemas NoSQL ......................................................................... 14
10.
Diferencias esenciales entre NoSQL y SQL .................................................................. 15
10.1
Modelo de Datos: .................................................................................................... 15
10.2
Esquema: ................................................................................................................. 16
10.3
Escalabilidad: .......................................................................................................... 16
10.4
Consistencia: ........................................................................................................... 16
10.5
Lenguaje de Consulta:............................................................................................. 16
10.6
Transacciones:......................................................................................................... 17
10.7
Casos de Uso: .......................................................................................................... 17
11.
Proveedores de base de datos NoSQL............................................................................ 17
Aplicaciones ............................................................................................................................. 19
12.
Ejemplos de bases de datos NoSQL............................................................................... 21
13.
Diagramas UML para Base de datos NoSQL ................................................................ 22
13.1
Diagrama de Clases UML:...................................................................................... 22
13.2
Diagrama de Componentes: .................................................................................... 22
13.3
Diagrama de Objetos UML:.................................................................................... 22
13.4
Diagrama de Actividad UML: ................................................................................ 23
13.5
Diagrama de Despliegue UML : ............................................................................. 23
Referencias bibliográficas ........................................................................................................ 24
1. Origen de las Bases de Datos No Relacionales (NoSQL):
El surgimiento de las bases de datos NoSQL se enraíza en la necesidad de superar las
limitaciones de las bases de datos relacionales en el contexto de la explosión de datos y la
demanda de escalabilidad en el ámbito de las aplicaciones web y los entornos empresariales
modernos. Históricamente, las bases de datos relacionales han sido la piedra angular de la
gestión de datos, pero su arquitectura y modelo de datos relacional presentan desafíos cuando se
enfrentan a la ingente cantidad de información generada por las plataformas online, redes
sociales y aplicaciones de gran escala.
El término "NoSQL" inicialmente se interpretó como "No SQL" o "Not Only SQL",
subrayando la idea de que estas nuevas bases de datos no están restringidas al modelo relacional
y proporcionan alternativas flexibles y ágiles. Este movimiento ganó impulso en la década de
2000, cuando compañías como Google, Amazon y Facebook enfrentaron problemas prácticos en
la administración eficiente de grandes volúmenes de datos no estructurados y semi-estructurados.
Diversos factores contribuyeron al surgimiento de las bases de datos NoSQL. Entre ellos se
incluyen la necesidad de gestionar datos distribuidos en entornos escalables horizontalmente, la
adaptación a esquemas dinámicos y la tolerancia a fallos en sistemas distribuidos. El teorema
CAP (Consistency, Availability, Partition Tolerance), propuesto por Eric Brewer, también
influyó en la concepción de estas bases de datos al señalar las limitaciones inherentes al
garantizar simultáneamente consistencia, disponibilidad y tolerancia a particiones en sistemas
distribuidos.
Los pioneros en el desarrollo de bases de datos NoSQL incluyen sistemas como Apache
Cassandra, MongoDB, y CouchDB, cada uno diseñado para abordar problemas específicos de
escalabilidad y flexibilidad en la gestión de datos. A medida que la tecnología evolucionó, las
bases de datos NoSQL se diversificaron en diferentes tipos, como bases de datos de documentos,
columnares, clave-valor y orientadas a grafos, cada una con sus propias características y casos de
uso particulares.
Este cambio en el paradigma de gestión de datos ha transformado la forma en que las
organizaciones abordan el almacenamiento y procesamiento de información a gran escala,
proporcionando soluciones adaptadas a los desafíos contemporáneos de la administración de
datos.
2. Limitaciones de las Bases de Datos Relacionales:
Las limitaciones intrínsecas de las bases de datos relacionales han sido objeto de análisis y
discusión en la literatura especializada. Según Date (2004), una de las restricciones
fundamentales radica en la rigidez de su esquema, que impone una estructura fija y predefinida a
los datos. Esta característica puede resultar especialmente problemática al tratar con datos no
estructurados o semi-estructurados.
Además, Codd (1970) señaló que las bases de datos relacionales presentan desafíos en
términos de escalabilidad, destacando la limitación de la escalabilidad vertical. La dependencia
de la mejora de rendimiento a través de la adición de recursos en un solo servidor puede volverse
insuficiente en entornos que requieren escalabilidad horizontal para gestionar grandes volúmenes
de datos y tráfico.
Otra limitación documentada es la complejidad que puede surgir al manejar relaciones más
intrincadas entre entidades. A medida que la complejidad de las relaciones crece, las consultas en
bases de datos relacionales pueden volverse más complicadas y afectar el rendimiento global del
sistema.
En el ámbito de la modificación del esquema, Date (2004) subraya que realizar cambios en la
estructura de una base de datos relacional existente puede ser un proceso laborioso y costoso, lo
que podría ser una restricción significativa en entornos de producción.
Estas limitaciones subrayan la necesidad de considerar enfoques alternativos, como las bases
de datos NoSQL, para abordar eficazmente los desafíos emergentes en la gestión de datos en
entornos contemporáneos.
3. Teorema CAP:
El teorema CAP, propuesto por Eric Brewer, desempeñó un papel crucial en la
conceptualización de las bases de datos NoSQL. Este teorema establece que en un sistema
distribuido, es imposible garantizar simultáneamente Consistencia (C), Disponibilidad (A) y
Tolerancia a particiones (P). La comprensión de este teorema ha influido significativamente en la
arquitectura y diseño de bases de datos NoSQL, que buscan equilibrar estos tres aspectos en
función de las necesidades específicas de una aplicación (Brewer, 2000).
4. Big Data:
El término "Big Data" describe el fenómeno de la gestión y análisis de conjuntos masivos de
datos que superan la capacidad de las herramientas de bases de datos tradicionales. Este concepto
se popularizó con la obra "Big Data: A Revolution That Will Transform How We Live, Work,
and Think" de Viktor Mayer-Schönberger y Kenneth Cukier, que explora cómo el análisis de
grandes volúmenes de datos puede generar conocimientos significativos y transformar diversos
aspectos de la sociedad (Mayer-Schönberger & Cukier, 2013).
5. Características de las Bases de Datos NoSQL:
Las bases de datos NoSQL comparten varias características que las diferencian de las bases de
datos relacionales tradicionales:
5.1 Esquema Flexible: A diferencia de las bases de datos relacionales con un esquema
fijo, las NoSQL permiten esquemas flexibles, lo que facilita la adaptación a cambios
en la estructura de los datos sin necesidad de modificar el esquema de toda la base de
datos.
5.2 Escalabilidad Horizontal: Las bases de datos NoSQL están diseñadas para escalar
horizontalmente, lo que significa que pueden gestionar grandes volúmenes de datos
distribuyendo la carga de trabajo en múltiples nodos o servidores.
5.3 Modelos de Datos Variados: Incluyen diversos modelos de datos como bases de
datos de documentos, clave-valor, columnares y orientadas a grafos, permitiendo a los
desarrolladores elegir el modelo que mejor se adapte a sus necesidades.
5.4 Optimización para Operaciones de Lectura/Escritura Específicas: Muchas
bases de datos NoSQL están optimizadas para operaciones específicas, ya sea lecturas
rápidas, escrituras eficientes o búsquedas complejas, dependiendo de los requisitos de
la aplicación.
5.5 Escalabilidad Lineal: La escalabilidad lineal es una característica clave que
permite a estas bases de datos manejar un aumento proporcional en la carga de trabajo
al agregar más nodos, manteniendo un rendimiento constante.
5.6 Escalabilidad Horizontal:
La escalabilidad horizontal se refiere a la capacidad de una base de datos para manejar un
crecimiento en el volumen de datos distribuyendo la carga entre múltiples nodos o servidores. En
lugar de depender de un único servidor más potente (escalabilidad vertical), la escalabilidad
horizontal implica agregar más nodos para distribuir la carga de trabajo. Este enfoque permite a
las bases de datos NoSQL adaptarse fácilmente a grandes volúmenes de datos y a incrementos en
la demanda, proporcionando un rendimiento consistente a medida que la infraestructura se
expande.
5.7 Habilidad de Distribución:
La habilidad de distribución en las bases de datos NoSQL se refiere a la capacidad de
distribuir datos de manera eficiente a través de múltiples nodos o servidores. Esta distribución
puede llevarse a cabo mediante la fragmentación de datos, donde diferentes partes de la base de
datos residen en diferentes nodos. La habilidad de distribución es esencial para lograr la
escalabilidad horizontal y garantizar que la carga de trabajo se distribuya de manera equitativa
entre los nodos, evitando cuellos de botella y mejorando el rendimiento general del sistema.
5.8 Uso Eficiente de Recursos:
Las bases de datos NoSQL están diseñadas para hacer un uso eficiente de los recursos
disponibles. Al distribuir la carga entre varios nodos, se puede aprovechar mejor la capacidad de
procesamiento y almacenamiento de cada servidor. Además, la capacidad de escalar
horizontalmente permite agregar recursos según sea necesario, lo que contribuye a un uso más
eficiente de los recursos en entornos dinámicos y cambiantes.
5.9 Libertad de Esquema:
La "libertad de esquema" es una característica distintiva de las bases de datos NoSQL,
permitiendo flexibilidad en la estructura de los datos almacenados. A diferencia de las bases de
datos relacionales, que requieren un esquema rígido y predefinido, las bases de datos NoSQL
permiten a los desarrolladores adaptar la estructura de los datos sin restricciones. En este sentido,
Date (2004) señala que la libertad de esquema permite a los usuarios agregar campos o columnas
de manera dinámica, facilitando la evolución de la base de datos conforme evolucionan los
requisitos de la aplicación.
5.10 Modelo de Concurrencia Débil:
El "modelo de concurrencia débil" en las bases de datos NoSQL se refiere al enfoque de
manejar operaciones concurrentes. Según Brewer (2000), en un modelo de concurrencia débil, se
tolera cierto grado de inconsistencia temporal entre réplicas distribuidas para lograr un mejor
rendimiento y disponibilidad. Este enfoque reconoce que, durante operaciones concurrentes,
puede haber breves períodos de discrepancia antes de que la consistencia sea restaurada.
5.11 Consultas Simples:
Las bases de datos NoSQL están diseñadas para admitir consultas simples y eficientes. En
concordancia con esta idea, Sadalage y Fowler (2013) explican que, dependiendo del modelo de
datos (como documentos o clave-valor), las consultas en bases de datos NoSQL tienden a ser
más sencillas y centradas en el acceso eficiente a los datos, ofreciendo un rendimiento rápido.
6. Elementos
6.1 Documento:
En el contexto de las bases de datos NoSQL, un "documento" se refiere a una unidad básica
de almacenamiento que generalmente contiene datos en un formato semiestructurado. Estos
documentos pueden ser representados en varios formatos, como JSON, BSON (una
representación binaria de JSON), XML o YAML. Cada documento puede contener información
relacionada y puede variar en estructura, lo que proporciona una gran flexibilidad en la
representación de datos. Los documentos se utilizan comúnmente en bases de datos de
documentos como MongoDB, donde constituyen registros individuales que encapsulan
información específica de una entidad.
6.2 Tipos de Datos:
En bases de datos NoSQL, los "tipos de datos" se refieren a las distintas formas en que los
datos pueden ser representados y almacenados. A diferencia de las bases de datos relacionales,
donde los tipos de datos están predefinidos y estructurados en tablas, las bases de datos NoSQL
permiten una variedad más amplia de tipos de datos. Esto puede incluir tipos simples como
números, cadenas de texto, booleanos, así como tipos más complejos como arreglos, objetos
anidados y otros tipos semiestructurados. La flexibilidad en los tipos de datos es una
característica distintiva que se alinea con la naturaleza dinámica y diversa de los datos manejados
por estas bases de datos.
6.3 Colecciones:
Una colección es un conjunto lógico de documentos. Mientras que en las bases de datos
relacionales se usan tablas para organizar datos, en bases de datos de documentos, como
MongoDB, los documentos se agrupan en colecciones. Cada colección puede contener
documentos con estructuras ligeramente diferentes, lo que facilita la adaptabilidad a cambios en
los requisitos de almacenamiento sin afectar a otras partes de la base de datos. Las colecciones
proporcionan una forma de organizar y gestionar datos de manera lógica y eficiente.
6.4 Base de Datos:
Se refiere al almacenamiento centralizado que contiene una o más colecciones de datos. A
diferencia de las bases de datos relacionales, donde se enfatiza la consistencia en la estructura de
los datos, en las bases de datos NoSQL, la base de datos puede albergar colecciones con
estructuras más flexibles. Cada base de datos puede representar un conjunto lógico de
información relacionada, y las bases de datos NoSQL pueden gestionar múltiples bases de datos
independientes en un solo sistema. La naturaleza distribuida y escalable de muchas bases de
datos NoSQL permite gestionar grandes volúmenes de datos de manera eficiente y adaptarse a
las demandas cambiantes de las aplicaciones modernas.
7. Clasificación en función de su modelo de datos
7.1 Orientadas a Clave-Valor (Key-Value Stores):
Las bases de datos orientadas a clave-valor, como DynamoDB de Amazon, se caracterizan
por almacenar datos como pares de clave y valor, ofreciendo eficiencia en la recuperación de
datos mediante la clave (Amazon DynamoDB, n.d.).
7.2 Orientadas a Columnas (Wide Column Stores):
Las bases de datos orientadas a columnas almacenan datos en columnas en lugar de filas. Esto
permite la recuperación eficiente de datos específicos, siendo ideales para aplicaciones que
requieren análisis y agregaciones de datos. Cada columna puede ser tratada de manera
independiente, lo que brinda flexibilidad en la manipulación de datos.
7.3 Orientadas a Documentos (Document Stores):
Las bases de datos orientadas a documentos almacenan datos en documentos
semiestructurados (por ejemplo, JSON o BSON). Cada documento es único y puede contener
campos variados. Esto facilita la representación de datos complejos y su evolución con el tiempo,
proporcionando una mayor flexibilidad.
7.4 Orientadas a Gráficos (Graph Databases):
Las bases de datos orientadas a gráficos están diseñadas para representar y almacenar
relaciones complejas entre entidades. Utilizan estructuras de grafo con nodos y bordes para
modelar conexiones. Esto las hace eficientes para consultas que involucran patrones complejos y
relaciones.
8. Ventajas de los Sistemas NoSQL:
Escalabilidad Horizontal:
Los sistemas NoSQL, al estar diseñados para escalar horizontalmente, permiten la expansión
del sistema distribuyendo la carga de trabajo entre múltiples nodos, proporcionando una
escalabilidad eficiente (Cattell, 2011).
Manejo de Grandes Volúmenes de Datos:
Los sistemas NoSQL son adecuados para manejar grandes volúmenes de datos no
estructurados o semi-estructurados, brindando flexibilidad en la gestión de información masiva
(Sadalage & Fowler, 2013).
Flexibilidad en el Esquema:
Descripción: La libertad de esquema de los sistemas NoSQL permite la adaptación dinámica
de la estructura de datos, facilitando cambios en el esquema sin afectar a toda la base de datos
(Date, 2004).
9. Inconvenientes de los sistemas NoSQL
Consistencia Relajada:
Algunos sistemas NoSQL adoptan un modelo de consistencia relajada para lograr
escalabilidad y disponibilidad, lo que puede resultar en datos inconsistentes durante ciertos
periodos (Brewer, 2000).
Complejidad en Consultas Complejas:
La simplicidad en las consultas es una característica, pero puede resultar en limitaciones para
realizar consultas complejas que involucren múltiples operaciones (Sadalage & Fowler, 2013).
Falta de Estandarización:
Descripción: La falta de un estándar consolidado en los sistemas NoSQL puede generar
complicaciones al seleccionar y cambiar entre diferentes sistemas de bases de datos (Hecht &
Jablonski, 2011).
10.Diferencias esenciales entre NoSQL y SQL
Las diferencias entre bases de datos NoSQL y SQL (relacionales) abarcan varios aspectos,
incluyendo el modelo de datos, la escalabilidad, la consistencia, el esquema y el lenguaje de
consulta.
10.1 Modelo de Datos:
SQL: Las bases de datos SQL son basadas en un modelo relacional, que organiza los datos en
tablas con filas y columnas. La estructura está definida por un esquema fijo.
NoSQL: Las bases de datos NoSQL ofrecen varios modelos de datos, como clave-valor,
documentos, columnares o basados en grafos, proporcionando flexibilidad en la representación
de datos.
10.2 Esquema:
SQL: Las bases de datos SQL tienen un esquema fijo y predefinido que debe ser seguido.
Cualquier cambio en la estructura requiere alteraciones en el esquema, lo que puede ser un
proceso complejo.
NoSQL: Las bases de datos NoSQL permiten esquemas dinámicos, permitiendo la adición o
eliminación de campos sin requerir cambios globales en la base de datos.
10.3 Escalabilidad:
SQL: La escalabilidad en bases de datos SQL se logra típicamente mediante escalabilidad
vertical (añadiendo más recursos a un servidor).
NoSQL: Las bases de datos NoSQL están diseñadas para escalar horizontalmente,
distribuyendo la carga entre múltiples servidores o nodos.
10.4 Consistencia:
SQL: Las bases de datos SQL tienden a priorizar la consistencia transaccional (ACID),
garantizando que las transacciones se completen con éxito o se reviertan por completo.
NoSQL: Algunas bases de datos NoSQL pueden adoptar modelos de consistencia eventual o
consistencia relajada para mejorar la disponibilidad y la tolerancia a fallos.
10.5 Lenguaje de Consulta:
SQL: Utiliza el lenguaje estructurado de consulta (SQL) para realizar operaciones como
SELECT, INSERT, UPDATE y DELETE.
NoSQL: Cada tipo de base de datos NoSQL puede tener su propio conjunto de operaciones y
lenguaje de consulta. Algunos utilizan consultas similares a SQL, mientras que otros pueden
utilizar métodos específicos del modelo de datos.
10.6 Transacciones:
SQL: Las bases de datos SQL admiten transacciones ACID (Atomicidad, Consistencia,
Aislamiento, Durabilidad), garantizando la integridad de los datos en entornos críticos.
NoSQL: Algunas bases de datos NoSQL pueden sacrificar ciertos aspectos de las
transacciones ACID en favor de mejoras en la escalabilidad y rendimiento.
10.7 Casos de Uso:
SQL: Tradicionalmente utilizado en aplicaciones con relaciones complejas entre datos y
donde la integridad de la transacción es crucial, como sistemas de gestión empresarial (ERP) y
aplicaciones financieras.
NoSQL: Preferido en entornos con grandes volúmenes de datos, alta concurrencia, y donde la
flexibilidad y escalabilidad son prioritarias, como aplicaciones web, redes sociales y análisis de
big data.
11.Proveedores de base de datos NoSQL
Existen varios proveedores de bases de datos NoSQL que ofrecen soluciones robustas para
diversos casos de uso. A continuación, proporciono descripciones breves de algunos de los
principales proveedores de bases de datos NoSQL:
MongoDB:
MongoDB es una base de datos orientada a documentos que almacena datos en formato
BSON (Binary JSON). Proporciona flexibilidad en el esquema, escalabilidad horizontal y
soporte para consultas complejas. Es ampliamente utilizado en aplicaciones web y móviles.
Cassandra:
Apache Cassandra es una base de datos orientada a columnas diseñada para proporcionar alta
disponibilidad y escalabilidad lineal. Es especialmente adecuada para aplicaciones con grandes
volúmenes de datos distribuidos.
Couchbase:
Couchbase combina la flexibilidad de un modelo de documentos con la velocidad y
escalabilidad de un sistema de clave-valor. Ofrece una gestión eficiente de datos JSON,
escalabilidad y características de tiempo real.
Neo4j:
Neo4j es una base de datos orientada a grafos que utiliza la estructura de grafo para
representar y almacenar relaciones complejas entre entidades. Es ideal para casos de uso que
involucran patrones de conexión.
Amazon DynamoDB:
DynamoDB es un servicio de base de datos NoSQL completamente administrado
proporcionado por Amazon Web Services (AWS). Ofrece un rendimiento rápido y escalabilidad
automática, siendo especialmente útil en entornos de aplicaciones web y móviles.
Redis
Redis es una base de datos en memoria que funciona principalmente como un almacén de
estructuras de datos clave-valor. Es conocida por su alta velocidad y capacidad de manejar
operaciones en tiempo real, como la mensajería y las listas ordenadas.
Aplicaciones
Los sistemas NoSQL encuentran aplicaciones en una variedad de escenarios donde la
flexibilidad, la escalabilidad y la eficiencia en la manipulación de grandes volúmenes de datos
son fundamentales. Como ejemplos tenemos:
Aplicaciones Web y Móviles:
Las bases de datos NoSQL son ampliamente utilizadas en el desarrollo de aplicaciones web y
móviles. Su capacidad para manejar grandes volúmenes de datos no estructurados o
semiestructurados, así como su capacidad de escalabilidad horizontal, las hace ideales para
entornos con una alta concurrencia y un rápido crecimiento de usuarios.
Gestión de Contenido y Catálogos de Productos:
Descripción: En entornos donde se gestionan grandes cantidades de contenido multimedia o
catálogos de productos con atributos variables, las bases de datos NoSQL, especialmente las
orientadas a documentos, ofrecen flexibilidad para adaptarse a la diversidad de datos y esquemas
cambiantes.
Análisis de Big Data:
Para el análisis de grandes conjuntos de datos, los sistemas NoSQL son utilizados en
combinación con herramientas de procesamiento y análisis de big data. Su capacidad para
manejar datos no estructurados y escalar horizontalmente los hace adecuados para entornos de
big data.
Redes Sociales y Recomendaciones:
En plataformas de redes sociales, donde la relación entre usuarios, publicaciones y actividades
es compleja, las bases de datos NoSQL, especialmente las orientadas a grafos, son utilizadas para
modelar y analizar eficientemente estas relaciones. También son aplicadas en sistemas de
recomendación para personalizar contenidos.
IoT (Internet of Things):
En entornos de IoT, donde se generan grandes cantidades de datos de dispositivos conectados,
las bases de datos NoSQL son utilizadas para gestionar la variedad y volumen de datos
generados por sensores y dispositivos IoT.
Aplicaciones en Tiempo Real:
En situaciones que requieren procesamiento y análisis de datos en tiempo real, como sistemas
de monitorización o aplicaciones financieras, las bases de datos NoSQL, especialmente las
basadas en clave-valor o en memoria, ofrecen un rendimiento rápido y eficiente.
Desarrollo Rápido de Prototipos y Startups:
Los sistemas NoSQL son a menudo elegidos en entornos de desarrollo ágil y startups, donde
los requisitos de esquema pueden cambiar rápidamente. La flexibilidad en el esquema y la
capacidad de escalabilidad horizontal son beneficiosas en estos contextos.
Sistemas de Gestión de Sesiones y Caché:
Para mejorar el rendimiento en aplicaciones que requieren una rápida recuperación de datos,
como sistemas de gestión de sesiones en aplicaciones web, las bases de datos NoSQL,
especialmente las basadas en clave-valor o en memoria, son utilizadas para almacenar y
recuperar datos de manera eficiente.
12.Ejemplos de bases de datos NoSQL
MongoDB:
MongoDB es una base de datos NoSQL orientada a documentos. Almacena datos en formato
BSON (Binary JSON) y permite una representación flexible de la información mediante
documentos que pueden contener campos y estructuras complejas. MongoDB es conocida por su
escalabilidad, rendimiento y facilidad de uso. Es ampliamente utilizado en aplicaciones web y
móviles, así como en entornos que requieren manejo eficiente de datos no estructurados.
Apache Cassandra:
Cassandra es una base de datos NoSQL orientada a columnas diseñada para ofrecer alta
disponibilidad y escalabilidad lineal. Es especialmente adecuada para entornos distribuidos con
grandes volúmenes de datos. Cassandra utiliza un modelo de datos basado en columnas que
permite un acceso eficiente a conjuntos de datos específicos y es capaz de manejar cargas de
trabajo distribuidas.
13.Diagramas UML para Base de datos NoSQL
Aunque los diagramas UML (Unified Modeling Language) son herramientas eficaces para
modelar bases de datos relacionales, no son tan ampliamente utilizados para representar bases de
datos NoSQL debido a la naturaleza flexible y variada de los modelos de datos NoSQL. Sin
embargo, se pueden utilizar ciertos diagramas UML adaptados para brindar una visión general de
la estructura y las relaciones en bases de datos NoSQL.
Acá algunas adaptaciones posibles:
13.1 Diagrama de Clases UML:
Este diagrama puede representar las clases de documentos y las relaciones entre ellas. Cada
clase de documento podría tener atributos y métodos asociados. Las asociaciones pueden indicar
relaciones entre documentos, como la inclusión de documentos anidados o referencias entre
ellos.
13.2 Diagrama de Componentes:
En lugar de clases, un diagrama de componentes podría ser útil para representar las columnas y
sus relaciones. Los componentes pueden representar columnas individuales y sus asociaciones,
proporcionando una vista estructurada de cómo se almacenan y se relacionan los datos.
13.3 Diagrama de Objetos UML:
Descripción: Este tipo de diagrama puede utilizarse para representar instantáneas de datos
específicos en un momento dado. Los objetos pueden representar documentos, registros o
elementos específicos de la base de datos en un estado particular.
13.4 Diagrama de Actividad UML:
Este diagrama puede ser útil para modelar el flujo de datos a través de operaciones y procesos
en una base de datos NoSQL. Puede ilustrar cómo se manipulan los datos en diferentes etapas.
13.5
Diagrama de Despliegue UML :
Si la base de datos NoSQL se despliega de manera distribuida, un diagrama de despliegue UML
puede mostrar cómo se distribuyen los nodos y cómo se interconectan para garantizar la
escalabilidad y la disponibilidad.
Referencias bibliográficas

Date, C. J. (2004). "An Introduction to Database Systems." Addison-Wesley.

Codd, E. F. (1970). "A Relational Model of Data for Large Shared Data Banks."
Communications of the ACM, 13(6), 377-387. DOI: 10.1145/362384.362685.

Mayer-Schönberger, V., & Cukier, K. (2013). "Big Data: A Revolution That Will
Transform How We Live, Work, and Think." Editorial.

Brewer, E. A. (2000). "Towards Robust Distributed Systems." Proceedings of the 19th
Annual ACM Symposium on Principles of Distributed Computing (PODC), 7-10.

Date, C. J. (2004). "An Introduction to Database Systems." Addison-Wesley.

Brewer, E. A. (2000). "Towards Robust Distributed Systems." Proceedings of the 19th
Annual ACM Symposium on Principles of Distributed Computing (PODC), 7-10.
DOI: 10.1145/343477.343502.

Sadalage, P. J., & Fowler, M. (2013). "NoSQL Distilled: A Brief Guide to the
Emerging World of Polyglot Persistence." Addison-Wesley.
Descargar