Mostrando entradas con la etiqueta NoSQL. Mostrar todas las entradas
Mostrando entradas con la etiqueta NoSQL. Mostrar todas las entradas

viernes, 21 de febrero de 2020

Bases de datos relacionales y NoSQL con Andreas Meier y Michael Kaufmann

'SQL & NoSQL databases' subtitulado 'Models, Languages, Consistency Options and Architectures for Big Data Management' es un tratado ordenado, científico y formalista del campo de las bases de datos, tanto relacionales como no relacionales, aunque quizá con un poco más de foco y profundidad en las primeras. Un tratado muy atento a los fundamentos, las reglas y el rigor.



El libro se estructura en 7 capítulos:
  • '1. Data Management': Un capítulo introductorio repleto de definiciones donde introduce el concepto de base de datos, las claves de identificación, el modelo relacional, SQL y algunas ideas de Big Data y bases de datos NoSQL. También dedica un espacio a explicar la disciplina del Data Management que es lo que presta título al capítulo.

  • '2. Data Modeling': Tras una introducción al tema del modelado explica con bastante profundidad el modelo entidad-relación detallando, por ejemplo, los tipos de asociaciones, las formas normales y las reglas de mapeo a un schema. Luego aborda las bases de datos gráficas, explicando primero el modelo de grafos para luego entrar en las reglas de mapeo de este caso. Finaliza hablando de la arquitectura de datos a nivel de empresa y sugiriendo unos pasos o fases para llevar a cabo el diseño de una base de datos.

  • '3. Database languages': Comienza por explicar el álgebra relacional con sus operadores relacionales y de conjuntos, explica de una forma no muy larga pero a pesar de ello bastante competa, el lenguaje SQL. También menciona el lenguje QBE (Query By Example) y los lenguahes de grafos, especialmente Cypher. Sigue con los lenguajes embebidos y el concepto de procedimientos almacenados así como JDBC. Y finaliza con una serie de aspectos a tener en cuenta como el manejo de variables NULL, las restricciones de integridad o aspectos de protección de datos.

  • '4. Ensuring Data Consistency': Comienza explicando la situación del acceso de múltiples usuarios a una base de datos y aborda la definición de transacciones y las propiedades ACID. Luego trata el problema de la consistencia en bases de datos distribuidas y habla de los teoremas CAP y BASE y hace una comparativa entre el enfoque ACID propio de las bases de datos relacionales y el BASE, más usado en NoSQL y Big Data.

  • '5. System Architecture': Comienza hablando del manejo de datos no estructuradosy de conceptos de almacenaje y acceso incluyendo una explicación de los mecanismos de hashing o de estructuras de datos multidimensionales. Luego aborda con cierto detalle la optimización de bases de datos relacionales. A continuación explica los algoritmos Map Reduce y finaliza con un modelo en capas para bases de datos relacionales y una visión holística de uso coordinado de diferentes bases de datos

  • '6. Postrelational Databases': Es un repaso rápido pero interesante de diferentes tipos o conceptos de bases de datos no relacionales incluyendo bases de datos federadas, bases de datos temporales, bases de datos multidimensionales, data warehouse, bases de datos orientadas a objetos, bases de datos de conocimiento y bases de datos difusas (fuzzy).

  • '7. NOSQL Databases': Primero hace una breve introducción con la historia y motivaciones de las bases de datos NoSQL para luego repasar diferentes alternativas como los repositorios atributo-valor, las bases de datos columnares, los almacenes de documentos, las bases de datos XML y las bases de datos gráficas.
Todos los capítulos finalizan con una lista comentada de sugerencias y referencias bibliográficas.

'SQL & NoSQL databases' es un tratado austero pero muy riguroso del campo de las bases de datos, amplio en cuanto a las tipologías que contempla (con mucho más detalle, eso sí, sobre el modelo relacional y el gráfico) y muy atento al rigor, a las reglas y álgebra muy claramente explicadas y aplicadas. Un libro serio, completo y útil.

Andreas Meier

(Fuente: Traducción y ligera elaboración propia de su ficha de autor en Springer)

Andreas Meier
Andreas Meier fue miembro de la Facultad de Economía y Ciencias Sociales de Friburgo donde fue profesor de Tecnologías de la Información. Se especializa en empresa electrónica, gobierno electrónico y gestión de la información. Es miembro de la GI (Gesellschaft für Informatik), de IEEE Computer Society y de ACM.

Tras estudiar música en Viena, se licenció con un grado en matemáticas en el Federal Institute of Technology (ETH) en Zurich, realizó su doctorado y fue aceptado como profesor universitario en el Institute of Computer Science.

Fue ingeniero de sistemas en el laboratorio de investigacion de IBM en San José, California, director de un banco internacional y miembro del comité ejecutivo de una compañía aseguradora.

Puedes saber más del autor visitando su ficha de profesor en la Universidad de Friburgo.

Michael Kaufmann

(Fuente: Traducción y ligera elaboración propia de su ficha de autor en Springer)

Michael Kaufmann
Michael Kaufmann es profesor de Ciencia de Datos y Big Data en la School of Information Technology de la Lucerne University of Applied Sciences and Arts. Es también el coordinador en la universidad del equipo de investigación en Inteligencia de Datos en que estudia y desarrolla métodos y tecnologías para la gestión inteligente de datos.

Michael Kaufmann estudió ciencia de los computadores, leyes y psicología en la universidad de Friburgo. Con estudios doctorales, recibió su doctorado en ciencia de los computadores sobre clasificación borrosa inductiva en analítica de marketing.

Trabajó en PostFinance como superusuario de desarrollo corporativo en un datawarehouse, como arquitecto de datos en la unidad de arquitectura en Mobiliar Insurance y como analista de negocio en FIVE Informatik AG, donde lanzó y dirigió un proyecto de investigación y comenzó a impartir clases como profesor a tiempo parcial en Kalaidos University of Applied Science.

Desde 2014 ha estado trabajando en Lucerne University of Applied Sciences and Art en la enseñanza e investigación como profesor de bases de datos, donde ha fundado y conseguido financiar el equipo de investigación de inteligencia de datos.

Puedes saber más sobre él visitando su perfil en LinkedIn.

miércoles, 12 de febrero de 2020

Una visión holística del uso combinado de bases de datos relacionales y NoSQL


Durante muchos años el mundo de las bases de datos ha estado dominado por las bases de datos relacionales. Aunque han existido desde siempre otras alternativas, las bases de datos relacionales han sido las reinas del lugar. En el fondo, todavía son, seguramente, las más preponderantes.

Sin embargo, algunos fenómenos de los últimos años, la hiper-abudancia de datos con fuentes como social media o Internet de las cosas, la importancia de los datos no estructurados y la eclosión del Big Data, han hecho que ganen relevancia otras formas de gestionar los datos más aptos para ese tratamiento masivo de datos no estructurados.

Constituyen lo que, de forma resumida, se denominan bases de datos NoSQL, cuya implementación no sigue el esquema de tablas propio de las relacionales y que ofrecen otras formas de consulta en paralelo o alternativo al uso de SQL.

Hay una gran variedad de ellas: repositorios atributo-valor, bases de datos columnares, bases de datos de grafos, bases de datos documentales, etc Las bases de datos NoSQL no son, por tanto, una solución única sino una variedad de opciones más adecuadas o menos según el caso.


En el libro desarrollan muy bien la parte más teórica sobre gestión de datos, modelado, lenguajes de consulta, etc.

Sin embargo, lo que quería traer a este post es algo más simple, pero quizá más ilustrativo. Se trata de un ejemplo que proponen bastante avanzado el libro sobre la combinación de varias de estas tecnologías de bases de datos para soportar distintos tipos de informaciones en el caso de una tienda en la web.

El ejemplo se recoge en la figura, tomada del libro:



En ella se puede observar el uso de cinco tecnologías diferentes:

  • Bases de datos relacional: el modelo más tradicional para almacenar la información estructurada disponible sobre clientes, cuentas, transacciones, etc

  • Almacenes atributo-valor: para el almacenamiento de datos más transitorios como el carrito de la compra o las sesiones y pensando, sobre todo, en la alta disponibilidad.

  • Bases de datos documental: para almacenar pedidos, entendiendo que el cuerpo de éstos podrían estar contenido, por ejemplo, en documentos XML o JSON o quizá, incluso, en PDF.

  • Bases de datos de grafo: para el tratamiento de información procedente de medios sociales como, por ejemplo, debates en blogs o hilos en twitter. 

  • Bases de datos en memoria: para la parte analítica se propone un datawarehouse complementado con herramientas especializadas de data mining o análisis predictivo. Para mejorar las prestaciones en el análisis de esos datos, se propone mantener la información en memoria.

Finalmente, y aunque no se aprecia en la figura, los autores proponen, a modo de ejemplo, y de cara a la integración, el uso de una arquitectura REST. 

La verdad es que parece un esquema un poco de laboratorio o, mejor dicho, de libro o Powerpoint. Es difícil imaginar que en una solución real se mezclen cinco tecnologías de bases de datos por más que, individualmente, cada una pueda ser óptima para una de las labores descritas.

Sin embargo, me gusta por lo ilustrativo y panorámico que resulta, porque ayuda a entender y recordar... y por eso he querido dejarlo consignado en este post.

viernes, 18 de abril de 2014

En busca de la tecnología en Big Data

Es, quizá, un vicio demasiado extendido en el mundo de la tecnología o, por mejor decir, en el del marketing tecnológico: hablamos de tecnología...pero sin hablar de tecnología.

Se venden los beneficios para las empresas, para el negocio o la transformación de la sociedad que una nueva tecnología puede inducir...pero no se indica cómo, no se dan pistas acerca de en qué consiste la tecnología subyacente, no se explica dónde está la raíz de la novedad. Se utilizan grandes términos generalistas, pero no se detalla.

No sé si es que se asume que el público general no está interesado realmente en la tecnología sino en sus usos y beneficios; no sé si se piensa que ese público no es capaz de entender la tecnología... o no sé si es que, en ocasiones, no hay tal novedad tecnológica y estamos hablando más de marketing que de tecnología.

Esa sensación de falta de explicación tecnológica me la he encontrado, por ejemplo, intentando entender el fenómeno de Big Data. Encuentro muy frecuentes menciones a los cambios recientes en la naturaleza de los datos, a la proliferación de tipos de datos no estructurados, a la influencia de los medios sociales con toda su información no relacional que contienen, a la generación de masivas cantidades de datos, al abaratamiento del almacenamiento... y también encuentro frecuentes menciones a los beneficios de un conocimiento profundo del cliente, a los análisis de sentimiento, a la captura de tendencias...

Todo ello lo entiendo, lo valoro y me interesa.

Pero... ¿dónde está la tecnología?

¿Que nuevas estructuras de información se precisan? ¿Qué algoritmos gestionan esos nuevos tipos de datos? ¿Qué optimizaciones se aplican para manejar de forma eficiente esas masivas cantidades de información? ¿Hay nuevo hardware en discos o memorias? ¿Nuevos modos de indexación? ¿Nuevos algoritmos o lenguajes de consulta? ¿Nuevos conceptos en transaccionalidad? ¿Qué pasa con los SGBD relacionales? ¿Cómo se integran, si es que lo hacen, en los modelos de Big Data?

Aunque, en efecto, la tecnología 'profunda' es dura, echo en falta algo de explicación que, siquiera, me permita vislumbrar el cambio tecnológico subyacente tras un fenómeno que tanto da que hablar.

En el libro 'Too big to ignore' de Phil Simon, encuentro, no una profunda explicación tecnológica pero si, al menos, algunas pistas de las que tirar.

Observo la importancia que se le concede a las nuevas bases de datos NoSQL que, entiendo, agrupan realmente un conjunto de nuevos (en algunos casos no tan nuevos) tipos de bases de datos. También observo la emergencia del concepto de las bases de datos columnares... y me quedo con la preponderancia de Hadoop como plataforma real con su sistema de archivos HDFS (Hadoop Distributed File System) que sí parace tener algo que decir.

Quizá el lector conozca en profundidad estas tecnologías y no valore el hallazgo pero a mi me ha costado un tiempo (bien es verdad que algo disperso y de de escasa dedicación, a modo de hobby y no como actividad profesional) el llegar a disponer de la más mínima pista de naturaleza tecnológica, acerca de qué había detrás de Big Data.

Es, quizá, un vicio demasiado extendido en el mundo de la tecnología o, por mejor decir, del marketing tecnológico: hablamos de tecnología...pero sin hablar de tecnología. Es posible que eso simplifique los mensajes y los haga más accesibles al gran público...pero también es cierto que en ocasiones genera la sensación de 'venta de humo', la duda de si realmente hay una tecnología o sólo marketing. Y hace dudar...

Ya dispongo de algunas pistas tecnológicas sobre Big Data. Cuando pueda profundizar en ellas, espero descubir que, en efecto, hay tecnología detrás de Big Data y que esta nuevo y prometedor fenómeno puede, realmente, ponerse a la altura de su promesa.