1. Aplicación de Base de Datos
en Tecnologías IoT
Tema 1: Introducción a las BD
NoSQL
2. Contenido
1.1.1. Qué es el Big Data
1.1.2. Problemas de las BD relacionales para el almacenamiento de la Big Data
1.2. Qué son las bases de datos Not Only SQL
1.2.1. Características
1.2.2. Ventajas de los sistemas SQL
1.2.3. Principales diferencias con las bases de datos SQL
1.3. Tipos de bases de datos NoSQL
1.3.1. Orientado a clave-valor
1.3.2. Orientado a columnas
1.3.3. Orientado a documentos
1.3.4. Orientado a grafos
3. ¿Qué es el Big Data?
Big data es un término que describe el gran volumen de datos – estructurados
y no estructurados. Pero no es la cantidad de datos lo importante. Lo que
importa es lo que las organizaciones hacen con los datos. El big data puede
ser analizado para obtener insights que conlleven a mejores decisiones y
acciones de negocios estratégicas.
insights: Ideas, profundizar, predecir, analizar, etc.
4. Big Data
Aunque el término “big data” es relativamente nuevo, la acción de recopilar y almacenar grandes
cantidades de información para su posterior análisis se viene realizando desde hace muchos años.
El concepto cobró impulso a principios de la década del 2000 cuando el analista de la industria Doug
Laney articuló la definición ahora muy popular del big data como las tres Vs:
Volumen. Las organizaciones recopilan datos de diversas fuentes, incluyendo transacciones
comerciales, medios sociales e información de sensores o que se transmite de una máquina a otra.
En el pasado, almacenarlos habría sido un problema – pero nuevas tecnologías (como Hadoop) han
aligerado la tarea.
Velocidad. Los datos se transmiten a una velocidad sin precedentes y se deben distribuir de manera
oportuna. Etiquetas FID, sensores y la medición inteligente crean la necesidad de distribuir torrentes
de datos casi en tiempo real.
Variedad. Los datos vienen en toda clase de formatos – desde datos numéricos estructurados en
bases de datos tradicionales hasta documentos de texto no estructurados, correo electrónico, video,
audio, datos de teletipo bursátil y transacciones financieras.
5. 1.1.2. Problemas de las BD relacionales para el
almacenamiento de la Big Data
Sin dejar de ser compatibles con el sistema tradicional, las tecnologías de Big Data abren nuevas posibilidades para
satisfacer necesidades de negocio de un modo hasta ahora inimaginable.
Tanto por su bajo coste, con una gran eficiencia, como por el escenario que dibujan, dentro del cual su uso constituye una
clara ventaja competitiva.
Ya no se trata de un escenario manejable, a la medida de los convencionales almacenes de datos. Big Data obliga a
evolucionar hacia un nuevo paradigma, desde la gestión de un pequeño número de datos, sistemas y aplicaciones a una
explosión de todos ellos.
La proliferación de aplicaciones, sistemas e ingentes cantidades de datos de muy distinto tipo, que se cuentan por
petabytes, es el signo de los nuevos tiempos.
Así las cosas, se impone adoptar una alternativa tecnológica que complemente y en algunos casos sustituya a las bases
de datos relacionales. Implementada junto con otras tecnologías, sistemas, una nueva cultura y habilidades necesarios
para extraer todo el potencial de los datos.
6. ¿Por qué no son válidas para el Big Data?
No están diseñadas para el cambio: El modelo relacional no es flexible frente
a los cambios. En concreto, los proyectos de modelado de datos exigen una
gran inversión de tiempo y dinero, con lo que acusan una alta ineficiencia.
No están diseñadas para manejar variedad: Puesto que están diseñadas para
gestionar datos estructurados en un marco ad hoc, tienen enormes
dificultades para manejar datos heterogéneos de distintos tamaños. Aunque
es posible configurarlas para tal fin es a costa de una complejidad del
esquema que no resulta factible.
No están diseñadas para escalabilidad y resiliencia: También estos aspectos
pueden corregirse mediante reingeniería, pero en la práctica puede afirmarse
que las bases de datos relacionales tampoco satisfacen estos dos importantes
requerimientos.
7. ¿Por qué no son válidas para el Big Data?
No están diseñadas para cargas de trabajo mixtas: La capacidad de manejar
cargas de trabajo mixtas, es decir, operativas y de análisis, también resulta
ineficiente. Resulta compleja y poco flexible y, en general, su ejecución no
ofrece un buen rendimiento. Sobre todo habida cuenta de la complejidad
creada desde su división en la década de los 90 entre bases de datos
optimizadas para cargas de trabajo operativas y analíticas, respectivamente.
No están preparadas para el desarrollo de aplicaciones modernas: Para la
creación de aplicaciones actualmente se recurre a lenguajes de programación
orientados a objetos, lo cual implica tratar a las estructuras de datos como
tales.
8. ¿Por qué no son válidas para el Big Data?
No están diseñadas para medir el tiempo: El modelo relacional ha tenido que
ir más allá de su modelo original para resolver las formas de gestión de
tiempo con el fin de poder hacer un seguimiento de los datos variables en el
tiempo. Pero lo hacen de un modo limitante, con desarrollos complicados e
implementaciones que varían de un proveedor a otro.
No son eficaces en devolver resultados por relevancia: Carecen del nivel de
sofisticación de indexación necesario para equipararse al rendimiento que
pueda ofrecer un motor de búsqueda creado con tecnología de Big Data.
Frente a ésta, aquella devolvería una lista de resultados sobre la base de un
simple orden de valores, ignorando información no estructurada, impidiendo
la obtención de información relevante.
9. ¿Por qué es importante el big data?
La importancia del big data no gira en torno a cuántos datos tiene usted, sino
qué hace con ellos. Puede tomar datos de cualquier fuente y analizarlos para
hallar respuestas que hagan posibles 1) reducciones de costos, 2) reducciones
de tiempo, 3) desarrollo de nuevos productos y soluciones optimizadas, y 4)
toma de decisiones inteligente. Cuando se combina el big data con analítica
poderosa, se pueden realizar tareas relacionadas con negocios, tales como:
● Determinar las causas de origen de fallos, problemas y defectos casi en
tiempo real.
● Generar cupones en el punto de venta basados en los hábitos de compra
del cliente.
● Recalcular portafolios de riesgo completos en minutos.
● Detectar conducta fraudulenta antes de que afecte a su organización.
10. ¿Qué son las base NoSQL?
Las bases de datos NoSQL están diseñadas específicamente para modelos de
datos específicos y tienen esquemas flexibles para crear aplicaciones
modernas. Las bases de datos NoSQL son ampliamente reconocidas porque
son fáciles de desarrollar, su funcionalidad y el rendimiento a escala. Usan
una variedad de modelos de datos, que incluyen documentos, gráficos, clave-
valor, en-memoria y búsqueda.
11. Características
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.
12. Características
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.
13. Características
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.
14. Ventajas de las base de datos SQL
● Provee herramientas que garantizan evitar la duplicidad de registros.
● Garantiza la integridad referencial, así, al eliminar un registro elimina
todos los registros relacionados dependientes.
● Favorece la normalización por ser más comprensible y aplicable.
15. Principales diferencias con las bases de datos SQL
La gran diferencia entre los dos tipos de bases de datos es la estructuración,
que en el caso de las NoSQL se trata de una forma de almacenamiento no
estructurado, todo lo contrario a sus predecesoras.
En este caso, son de bases de datos sin una tabla fija como las que sí se
encuentran en las bases de datos relacionales, lo que permite una alta
escalabilidad en ellas. Además, es abierta y por lo tanto flexible a diferentes
tipos de datos y no necesita tantos recursos para ejecutarse; de hecho, el
hardware necesario no es de un coste muy elevado. En este sentido, también
se deja notar el menor coste a la hora de la expansión, ya que no necesitan la
evolución en hardware del equipo, sino que basta con hacer un escalado
horizontal, con más máquinas en las que distribuir la carga completa.
16. Principales diferencias con las bases de datos SQL
Por contra, un par de desventajas de las bases NoSQL, que no son perfectas,
son que los desarrolles, al implementar su propio código en pos de la
fiabilidad y coherencia, es decir, al no existir tanta estandarización, se limita el
número de aplicaciones seguras para realizar transacciones, y por otro lado,
tampoco es una virtud el hecho de que sea incompatible con ellas llevar a
cabo consultas SQL, lo que hace necesario un lenguaje de consulta manual
que ralentiza los procesos de este tipo concreto.
17. Principales diferencias con las bases de datos SQL
En definitiva, lo más importante que debes saber es que las NoSQL no son un
sustituto de las SQL, sino que son una alternativa que ofrece otras
posibilidades, lo que las convierte en más interesantes para determinados
casos como por ejemplo proyectos que requieren una alta escalabilidad en el
los recursos son escasos y la integridad de los datos no es lo más importante,
como sí ocurre en cambio en aplicaciones especializadas por ejemplo en
transacciones bancarias.
18. 1.3 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.
● Ciudades (Familia de Columnas)
● Quito: Clavefila
● población: 2.000.000 (Nombre de columna:valor)
● alcalde: Agusto Barrera(Nombre de columna:valor)
● Cuenca: Clave-fila
● población: 400.000(Nombre de columna:valor)
● alcalde: Paul Granda(Nombre de columna:valor)
● exporta: artesanias(Nombre de columna:valor)
19. Tipos de bases de datos NoSQL
Documentos: en el código de aplicación, los datos se representan a menudo
como un objeto o un documento de tipo JSON porque es un modelo de datos
eficiente 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 modelo de
documento que emplean en el código de aplicación. La naturaleza flexible,
semiestructurada y jerárquica de los documentos y las bases de datos de
documentos permite que evolucionen según las necesidades de las
aplicaciones. El modelo de documentos funciona bien con catálogos, perfiles
de usuario y sistemas de administración de contenido en los que cada
documento es único y evoluciona con el tiempo.
21. Tipos de bases de datos NoSQL
Grafos: El modelo de datos comprende en las bases de datos de grafos está
formado de nodos y aristas.
Los nodos pueden tener propiedades y las aristas pueden tener etiquetas y
roles.
Los datos de grafos se almacenan en tuplas con múltiples atributos. Se
pueden representan como grafos datos de mapas de rutas, redes sociales,
datos de recursos y sus relaciones.