Explorando Las Bases de Datos NoSQL
Explorando Las Bases de Datos NoSQL
Descripción: En esta actividad, los estudiantes aprenderán sobre las bases de datos NoSQL y explorarán sus diferentes tipos y casos de
uso. La actividad se divide en dos partes: unainvestigación individual y una discusión en grupo.
Las bases de datos NoSQL estan disenadas para modelos de datos especificos y almacenan los datos en esquemas flexibles que se
escalan con facilidad de manera horizontal.
Las fuentes de datos como las redes sociales, sensors inteligentes no encajan en el modelo relacional, ademas del gran volumen de
datos que generan harian que un modelo estructurado no cumpla con los requisitos de flexibilidad, baja latencia y alto rendimiento
que se espera.
Cargas de Las bases de datos relacionales están Las bases de datos NoSQL están diseñadas para
trabajo diseñadas para aplicaciones de online varios patrones de acceso a datos que incluyen
óptimas transaction processing (OLTP, aplicaciones de baja latencia. Las bases de
procesamiento de transacciones en línea) datos de búsqueda NoSQL están diseñadas para
altamente coherentes y transaccionales. hacer análisis sobre datos semiestructurados.
También son buenos para el online
analytical processing (procesamiento
analítico en línea (OLAP)).
Modelo de El modelo relacional normaliza los datos en Las bases de datos NoSQL proporcionan una
datos tablas conformadas por filas y columnas. Un variedad de modelos de datos, como clave-valor,
esquema define estrictamente las tablas, las documentos, gráficos y columnas, que están
filas, las columnas, los índices, las optimizados para el rendimiento y la escala.
relaciones entre las tablas y otros
elementos de las bases de datos. La base de
datos impone la integridad referencial en las
relaciones entre tablas.
Propiedades Las bases de datos relacionales ofrecen La mayoría de bases de datos NoSQL hace
ACID propiedades de atomicidad, coherencia, concesiones al flexibilizar algunas de las
aislamiento y durabilidad (ACID): propiedades ACID de las bases de datos
relacionales a favor de un modelo de datos más
La atomicidad requiere que una flexible que puede escalar horizontalmente. Esto
transacción se ejecute por completo o hace que las bases de datos NoSQL sean una
no se ejecute en absoluto. excelente opción para casos de uso de baja
La consistencia requiere que los datos latencia y alto rendimiento que necesitan
deban acoplarse al esquema de la escalar horizontalmente más allá de las
base de datos una vez confirmada una limitaciones de una sola instancia.
transacción.
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.
Rendimient Normalmente, el rendimiento depende del El rendimiento es, por lo general, depende del
o subsistema de disco. Se necesita la tamaño del clúster de hardware subyacente, la
optimización de consultas, índices y latencia de red y la aplicación que efectúa la
estructura de tabla para lograr el máximo llamada.
rendimiento.
Escalado Las bases de datos relacionales Las bases de datos NoSQL suelen ser
generalmente escalan verticalmente las particionables. Esto se debe a que los patrones
capacidades de computación del hardware o de acceso pueden escalar horizontalmente
la ampliación mediante la adición de mediante el uso de arquitectura distribuida para
réplicas para cargas de trabajo de solo aumentar el rendimiento que proporciona un
lectura. rendimiento constante a una escala casi
ilimitada.
API Solicita almacenar y recuperar datos que Las API basadas en objetos permiten a los
están comunicados mediante consultas que desarrolladores almacenar y recuperar
se ajustan a un lenguaje de consulta fácilmente estructuras de datos. Las claves de
estructurado (SQL). Estas consultas son partición permiten que las aplicaciones busquen
analizadas y ejecutadas por la base de datos pares de clave-valor, conjuntos de columnas o
relacional. documentos semiestructurados que contengan
atributos y objetos de aplicación serializados.
• Tipos de Bases de Datos NoSQL: Cada estudiante seleccionará uno de los siguientes tipos
de bases de datos NoSQL (documentales, de columnas, clave-valor, o de grafos) y
describirá sus características principales y ejemplos de situaciones en las que serían útiles.
• Casos de Uso: Los estudiantes investigarán ejemplos del mundo real en los que se han
utilizado bases de datos NoSQL. Deben proporcionar al menos dos casos de uso y explicar
por qué se eligió una base de datos NoSQL en lugar de una base de datos relacional en
cada caso.
cadenas
números
textos booleanos (verdadero/falso)
nulos
arrays
objetos/documentos
Estructura:
"name" : "David",
"age" : 34,
"address" : {
"city" : "Valladolid",
"postalCode" : "47011" }
}
¿Cómo se realiza una consulta en MongoDB?
Esta estructura de JSON presenta ventajas de rendimiento al hacer Joins y transacciones ya que es una operación más rápida
y limpia que realizar la misma consulta en SQL.
En una base de datos NoSQL no hay consultas SQL de tipo SELECT * FROM WHERE.
Las consultas se hacen pasando objetos JSON como parámetro. Por ejemplo:
db.Clientes.find({Nombre:"David"});
La consulta anterior buscará todos los clientes cuyo nombre sea David.
MongoDB viene de serie con una consola desde la que podemos ejecutar los distintos comandos.
• Escenarios Hipotéticos: Cada grupo creará un escenario hipotético en el que una empresa
o una organización deba tomar una decisión entre utilizar una base de datos relacional o
una NoSQL. Deben justificar su elección y discutir cómo esa elección afectaría a la
empresa.
• Debate General: Todos los grupos se reunirán en una sesión de debate general donde cada
grupo presentará su escenario y su elección. Los demás grupos pueden hacer preguntas y
expresar su opinión sobre la decisión tomada.