Bienvenidos a este vídeo dedicado a la introducción a bases de datos analíticas y bases de datos orientadas a grafos. En esta sesión, la vamos a dirigir a familiarizarnos con una serie de conceptos, que exploraremos en mayor profundidad en la semana cuatro de este curso, que son las bases de datos analíticas y las orientadas a grafos. Como veis, abordaremos definiciones conceptuales, las necesidades existentes y algún que otro detalle. Empezaremos por las bases de datos analíticas. Hasta hace poco más de una década, las bases de datos relacionales, tradicionales, eran utilizadas para resolver los problemas de las empresas en su día a día, lo que podemos denominar como soluciones operativas, es decir, mantenimiento de registros, mantenimiento del stock de productos, mantenimiento de cuentas de usuario, para dar acceso o no a usuarios registrados, etcétera. ¿Qué ocurre? Que, como venimos viendo durante este curso, el aumento de los datos está siendo masivo. Y, claro, a raíz de esto se nos plantea la posibilidad de que, además de todas estas soluciones operativas, podemos realizar muchas más acciones con estos datos que nos pueden llegar a dar un conocimiento muy valioso. De esta manera, surge una necesidad que es, a partir de este ingente cantidad de datos, cómo vamos a poder analizarlos de manera que obtengamos información valiosa. Está claro que necesitamos un proceso en el que se nos depure y se nos transformen estos datos de manera que, finalmente, obtengamos un conjunto de datos elaborado que nos permita tomar decisiones realmente importantes y que van mucho más allá de lo que es el mantenimiento del día a día de nuestro negocio. En esto es en lo que se basa el concepto de "business intelligence", este es un concepto que se entiende muy bien teniendo en cuenta estas dos frases que pongo como ejemplo. Por un lado, tenemos a Mister Codd, que es considerado el padre de las bases de datos relacionales, que allá por los años 90 dijo que, "disponer de un sistema de bases de datos relacionales no significa disponer de un sistema de soporte a la toma de decisiones". Por otro lado, hace pocos años, Wayne Calloway, como CEO de PepsiCo dijo en una junta de accionistas, "hace diez años les pude decir cuántos Doritos vendimos en el oeste en Mississippi". "Hoy no sólo les puedo decir eso mismo, sino cuántos vendimos en California, en el Condado de Orange, en la ciudad de Irvine, en el supermercado local Von's, durante una promoción especial, al final del pasillo 4, los jueves". Como podéis ver, aquí ha habido una evolución muy clara en cuanto a lo que es el concepto de dato y el concepto de la información que podemos extraer de los datos que hemos ido almacenando. De esta manera, la información actualmente está fragmentada y es escudriñada hasta obtener datos de increíble valor para los negocios. ¿Cómo atendemos a la necesidad de convertir estos datos en información valiosa?Mediante un análisis efectivo y eficiente de esta gran y masiva cantidad de datos. ¿Cuáles son los inconvenientes a los que nos enfrentamos para realizar este análisis, teniendo en cuenta que los sistemas operacionales normales están en continuo funcionamiento y es difícil interaccionar con ellos? Tenemos que tener en cuenta que los inconvenientes importantes que nos podemos encontrar son que esta interferencia con el sistema operacional nos lleva a la ralentización, tanto en lo que son las acciones del día a día, como en nuestro proceso de adquisición de este conocimiento. Asimismo, tenemos que saber que los datos normalmente se guardan de una manera desestructurada y, sobre todo, de una manera muy heterogénea. Es decir, nos podemos encontrar algunas bases de datos relacionales bien estructuradas, pero lo normal es encontrarse distintos registros que no tienen utilidad, registros repetidos, registros distribuidos en distintos formatos, como podrían ser bases de datos, ficheros de texto, etcétera. Y, a su vez, estos registros, debido también a esta heterogeneidad inherente, carecen de una fiabilidad certera en el momento en el que los tenemos registrados, y también son volátiles puesto que, como estamos en un sistema operacional del día a día, estos registros son continuamente actualizados, son borrados, se insertan nuevos registros, etcétera. Teniendo en cuenta todos estos inconvenientes y en aras de intentar resolverlos, se desarrolló el concepto de "Data Warehouse". El "Data Warehouse" lo podemos ver como un gran almacén de datos donde prima la estructura de la información, es decir, la clave del "Data Warehouse" que nos va a permitir obtener y extraer un conocimiento valioso es que la información está bien estructurada y es muy fiable. Para resolver estos inconvenientes, un "Data Warehouse" presenta las siguientes características. En primer lugar, es un sistema integrado, como he dicho, tiene una estructura consistente y los datos bien homogeneizados. Por otro lado, además, los datos están caracterizados temáticamente, es decir, tenemos una categorización que nos permite acceder a distintos tipos de datos de manera efectiva con tal de poder realizar estudios bien orientados hacia nuestros intereses. Otra característica muy importante es que un "Data Warehouse" contiene los datos de manera histórica, es decir, los datos que contiene un "Data Warehouse" registran la tendencia y evolución de ellos mismos. Esto está relacionado con la no volatilidad de estos datos, es decir, la información en este "Data Warehouse" simplemente es introducida y leída, pero jamás se modifica. Esto es lo que permitirá que podamos analizar toda la tendencia y evolución existente en los datos y de manera, como ya he dicho, categorizada. Aquí tenemos un esquema simplificado de los componentes que interactuarían con este "Data Warehouse". En este esquema podemos observar que el "Data Warehouse" recibe una determinada entrada y tiene varias salidas. Esta determinada entrada viene de la metodología conocida como "ETL", que son las siglas de "extract, transform and load". El proceso de "extract" consiste en la obtención de datos de las distintas y heterogéneas fuentes existentes, es decir, podemos tener en cuenta la base de datos de facturación de la empresa, el ERP de la empresa, incluso podemos contar con ficheros en texto plano. Esta extracción de datos es lo que se realizaría en una primera fase para, luego, transformarlos, transformarlos consistirá en homogeneizarlos, filtrarlos, depurarlos y categorizarlos. De esta manera, tendremos los datos bien preparados para hacer el volcado de éstos en lo que será nuestro almacén de datos. A su vez, este volcado de datos vendrá acompañado de distintos metadatos que acompañarán a cada registro. Finalmente, la salida del "Data Warehouse" será la explotación de estos datos, y esta explotación puede venir en forma de realización de informes, analítica de resultados o de los propios datos y técnicas de "data mining" sobre éstos. Con la evolución de los sistemas Big Data veremos que este esquema que os acabo de presentar es muy simple y que actualmente pasa a formar parte de otro más complejo, que es el denominado "Corporate Information Factory" que como veis, está constituido por algunos componentes más y distintos diagramas de flujo de información. Todo esto lo veremos en la semana cuatro, de la misma manera que también haremos un repaso a las denominadas bases de datos orientadas a grafos. Este tipo de bases de datos están adquiriendo mucho protagonismo en los últimos años y, de hecho, este paradigma no es nada nuevo y seguro que muchos de vosotros os suena o estéis familiarizados con los diagramas UML, o con mapas conceptuales, que obedecen a estas estructuras. En esencia, las bases de datos orientadas a grafos representan entidades individuales y sus relaciones. Las entidades, como puede ser una persona, un objeto, una cuenta bancaria, están representadas mediante nodos o vértices, y las relaciones entre estas entidades están representadas por arcos o conexiones. Como podemos ver, tanto los vértices como los arcos, contienen a su vez propiedades que nos permitirán recorrer el grafo y las relaciones existentes entre los datos que contiene. De este modo, tenemos que las bases de datos orientadas a grafos centran su potencial en las relaciones entre entidades, permitiendo explorar caminos que las unen o analizar las relaciones existentes entre las entidades más próximas. Obviamente, una de las grandes ventajas de este tipo de bases de datos es que están respaldadas por todos los métodos propios de la teoría de grafos que tanto ha evolucionado durante el siglo XX. Como he dicho, existen varios cálculos típicos y varios algoritmos que se utilizan actualmente, de entre los que destacaríamos, por ejemplo, el algoritmo de "PageRank" de Google, también algoritmos basados en la determinación de los caminos o las rutas más cortas, que son muy útiles para empresas o negocios de transporte, y también tenemos, por ejemplo, los algoritmos de componentes conectados o de "clustering" que nos permiten por ejemplo, en LinkedIn, saber cuál es nuestra red profesional más cercana, o en aplicaciones de "dating online", saber con qué entidades, en este caso, con qué personas compartimos mayor cantidad de intereses. En la semana cuatro, como vengo diciendo, profundizaremos en todo este tipo de características y sobre todo en las herramientas denominadas "Graph processing" que están centradas en este tipo de bases de datos, como son "Apache Giraph" o "Titan", que también están integradas dentro del ecosistema de "Hadoop". Esto es todo, os dejo con un bonito grafo de la red profesional de una determinada persona para despedirme. Si queréis generar vuestro propio grafo, podéis dirigiros a la página que os indico en el enlace inferior y, de este modo, obtener esta bonita imagen. Hasta pronto.