Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Durante las décadas de los 60 y 70 surge el concepto de las bases de datos; sin embargo, el objetivo
principal siempre ha sido la administración óptima de la información y el uso que se le puede dar a la
misma. Hoy, las necesidades de las empresas han cambiado y la necesidad de interactuar con diversas
fuentes de información ha desafiado a las bases de datos. Lo anterior ha provocado que los volúmenes de
información sean mayores, su formato muy diverso lo que incrementa así los tiempos de respuesta para
analizar la información y tomar decisiones.
Existe mucha información acerca de las bases de datos, por lo tanto el objetivo de este artículo no es
hacerlo un experto en el tema sino solo ser una guía de los conceptos que se manejan actualmente, conocer
brevemente las características de las bases de datos y las soluciones que existen hoy en día.
Las bases de datos de tipo OLTP (On Line Transaction Processing) también son llamadas bases de datos
dinámicas lo que significa que la información se modifica en tiempo real, es decir, se insertan, se eliminan,
se modifican y se consultan datos en línea durante la operación del sistema. Un ejemplo es el sistema de un
supermercado donde se van registrando cada uno de los artículos que el cliente está comprando y a su vez el
sistema va actualizando el Inventario.
Figura 1.
Las bases de datos de tipo OLAP (On Line Analytical Processing) también son llamadas bases de datos
estáticas lo que significa que la información en tiempo real no es afectada, es decir, no se insertan, no se
eliminan y tampoco se modifican datos; solo se realizan consultas sobre los datos ya existentes para el
análisis y toma de decisiones. Este tipo de bases de datos son implementadas en Business Intelligence para
mejorar el desempeño de las consultas con grandes volúmenes de información.
Figura 2.
La necesidad de implementar un tipo u otro dependerá del giro y necesidades de cada empresa. Es muy
importante identificar el tipo de base de datos que se requiere antes de implementar un manejador de base de
datos. Por ejemplo podemos citar al manejador de base de datos “DB2 10.5 with BLU Acceleration”, la cual
proporciona una solución para la parte transaccional y para la parte de analíticos.
http://www-01.ibm.com/software/data/db2/linux-unix-windows/db2-blu-acceleration/
Figura 3.
Los tipos de datos que se pueden almacenar son diversos, pero los más comunes son de tipo Numérico,
Decimales y tipo Texto. Conforme han evolucionado las bases de datos se han expandido los tipos de datos
que pueden almacenar. Por mencionar algunos tipos están los CLOB (Character Large Object) y BLOB
(Binary Large Object). Los CLOB son utilizados para almacenar documentos y los BLOB para almacenar
una imagen o video.
Otro tipo de dato relevante hoy en día es el tipo de dato XML. Este es un tipo de dato jerárquico porque
parte de un nodo inicial o raíz, y a su vez puede tener ‘n’ niveles y subniveles. Muchos manejadores de bases
de datos puede manipular este tipo de dato; sin embargo, no de forma nativa como lo hace DB2, es decir, el
documento es almacenado como un CLOB. La desventaja de almacenarlo como un CLOB implica dividir
el documento y guardarlo en diferentes áreas (como si fuera un rompecabezas), y para consultarlo se debe
armar para mostrar su información (lo cual implica problemas de desempeño).
Una ventaja competitiva que tiene DB2 es que los documentos XML se almacenan de forma nativa, es
decir, el documento se almacena dentro de la base de datos, lo que permite consultar la información de
forma directa y con mucho mejor desempeño. Incluso se pueden crear índices a nivel documento XML para
consultar un nodo en específico, y así acceder más rápido a la información. Otra ventaja es la compresión de
documento XML lo cual incrementa el ahorro en almacenamiento.
Figura 4.
Existen otras bases de datos que permiten almacenar diferentes tipos de documento, como por ejemplo:
Cloudant, el cual se vera más adelante.
http://www.ibm.com/developerworks/ssa/local/im/que-es-big-data/
Otra de las ventajas competitivas que tiene las bases de datos como DB2 e Informix es que permite hacer
la explotación de la información que viene de diferentes fuentes permitiendo así la integración con otros
sistemas y lenguajes que utilizan sentencias SQL y NoSQL.
https://www.ibm.com/developerworks/ssa/library/bd-datos-sql-y-nosql-en-db2/
De los problemas anteriores surge la necesidad de hacer mejoras a las bases de datos y/o crear arquitecturas
para dar soluciones a los problemas anteriores. Se han implementado varias soluciones a nivel Software y
Hardware.
¿Qué es HADR?
Sus siglas en inglés significan High Availability Disaster Recovery. Es una característica de replicación
de datos que brinda una solución de Alta Disponibilidad cuando surge una falla parcial o total en uno de
los servidores principales. Es una solución que soporta un Servidor como Primario y hasta tres Servidores
como Secundarios. Si el servidor primario falla, uno de los servidores secundarios tomará el control y pasará
a ser ahora el servidor primario. La replicación de la información se hace a través de los archivos log de
transacciones.
Ventajas
Figura 5.
¿Qué es PureScale?
Es una arquitectura basada en Clúster. Un Clúster es un conjunto de varios ordenadores unidos por una red
de alta velocidad, de tal forma que es visto como un solo computador más potente. Es una característica
de DB2 que reduce el riesgo y los costos del crecimiento del negocio al proporcionar capacidad extrema,
disponibilidad continua y transparente para el aplicativo. Capacidad extrema significa que puede crecer su
sistema como sea necesario.
Ventajas
Figura 6.
Otras soluciones han sido implementadas a nivel base de datos para hacer frente a los problemas
de performance. DB2 ofrece una gran variedad de alternativas para hacer frente a los problemas de
performance.
Para tener un mejor entendimiento del tema de particionamiento se hace la analogía de la frase “divide y
vencerás”. Es el mismo principio utilizado en estas características de DB2.
Una de las ventajas de estas características es que se hace un aprovechamiento del poder de múltiples
procesadores en múltiples nodos físicos. Los datos que son consultados o modificados son descompuestos
automáticamente y ejecutados en cada una de las particiones. El uso de esta característica es transparente
para el usuario que ejecuta sentencias SQL.
Ventajas
Figura 7.
1. Discos compartidos.
2. Discos dedicados.
3. Permite el uso de particiones lógicas y físicas.
4. Los comandos para la administración de la base de datos son ejecutados en cada una de las particiones
de forma automática y transparente.
5. Es transparente para el aplicativo.
Figura 8.
Por ejemplo, si se ejecuta una consulta sobre un millón de registros tardará más que si se realiza sobre
100,000 registros. Supongamos que tenemos la tabla de Ventas la cual contiene 10 millones de registros
correspondiente a las ventas de 10 años (2004, 2005...2014). Si consultamos información del año 2005
probablemente el tiempo de espera para mostrar la información será alto. En cambio si se hace un
particionamiento de las ventas por año, al consultar la información del año 2005 el manejador de la base
de datos solo consultará sobre un millón de registros y no sobre los 10 millones de registros. Dicho de otra
manera el motor de la base de datos consultará solo la partición donde se encentran las ventas del año 2005.
Figura 9.
Ventajas
Ventajas
En ambientes Data Warehouse normalmente las consultas se hacen sobre grandes volúmenes de información
lo que conlleva a tener problemas en los tiempos de respuesta. Las consultas que se realizan siempre van
relacionadas con fechas, cálculos, productos, regiones, tipos, áreas geográficas, etc. Por ejemplo, si nuestras
consultas de Ventas siempre son por “Fecha”, “Tipo de producto” y “Forma de pago” entonces podemos
hacer el uso de MDC para la tabla de Ventas para poder tener un mejor desempeño durante las consultas.
Cuando nosotros realicemos una consulta filtrando por “Fecha del producto” el manejador de la base de
datos utilizará solo una dimensión (un segmento de datos). Si en nuestra consulta utilizamos los filtros por
“Fecha de venta” y “Tipo de producto” entonces el manejador de la base de datos utilizará dos dimensiones
(dos Segmentos de datos) y así sucesivamente. Similar a DPF el motor de la base de datos consultará
segmentos específicos de datos incrementando el desempeño en las consultas.
Figura 10.
Es importante mencionar que podemos hacer una combinación de todas estas características para enfrentar
a los problemas que nos enfrentamos cuando hacemos consultas sobre grandes volúmenes de información.
Hoy en día ya existen otras optimizaciones que se han hecho al motor de DB2, el cual se podrá ver más
adelante.
El segundo punto importante son los problemas comunes a los que se enfrentan las bases de datos y las
empresas, el incremento de los volúmenes de información. Del lado de las bases de datos implica problemas
de desempeño al hacer consultas sobre grandes volúmenes de información y del lado de la compañía
implica incrementos en los costos de almacenamiento. De aquí surge la necesidad de implementar nuevos
mecanismos para reducir los tiempos y costos, y es aquí donde surge el tema de la compresión de datos.
1. Compresión de registros.
2. Compresión de tablas.
3. Compresión de Índices.
4. Compresión de tablas temporales.
5. Compresión de objetos e imágenes.
6. Compresión de documentos XML.
7. Compresión de Log de transacciones.
8. Compresión de backup.
En este tema se ha avanzado mucho pero DB2 tiene el liderazgo. Ahora con el nuevo concepto de bases
de datos en memoria y con almacenamiento por columnas se puede lograr mayores tasas de compresión,
mejores a las que ya se venían obteniendo en versiones previas.
http://www.ibm.com/developerworks/ssa/data/library/DB2BLU/
Ventajas
En la siguiente figura se muestra un ejemplo de cómo se realiza la compresión con base a patrones
de repetición. Para la compresión de datos se utiliza un diccionario donde se almacenará un digito en
hexadecimal que representará los datos que se repiten. Estos dígitos en hexadecimal reemplazarán a los
datos en la tabla.
Figura 11.
Uno de los costos más altos y relevantes es cuando consultamos información con acceso a discos.
Dependiendo de las características del disco será la velocidad con que los datos serán recuperados por la
base de datos y devueltos al usuario final. Al comprimir datos se reducen las Entradas/Salidas al disco,
debido a que con menos acceso al disco se obtendrán mayores volúmenes de información. Existen diferentes
tipos de discos, los discos duros o también llamados discos rígidos que son discos de almacenamiento
de datos no volátil que emplean un sistema de grabación magnética para almacenar datos digitales; y los
discos de estado sólido conocidos como SSD (Solid State Disk) que es un dispositivo de almacenamiento
de datos que puede estar construido con memoria volátil y no volátil. Estos discos son muy rápidos y
consumen menos energía y la tendencia indica que en un futuro sustituirán a los discos duros. Su principal
inconveniente es que son caros.
Con las nuevas necesidades y el avance tecnológico se han modificado las bases de datos y también se
han creado nuevas arquitecturas de solución (DB2 10.5 with BLU Acceleration, Informix, PureData for
Analytics entre otros).
Las empresas cuando toman la decisión de crear un Data Warehouse deben realizar un profundo análisis
de la información que desean analizar y conocer cuales serán los datos a migrar. Los datos que alimentan
a un Data Warehouse pueden venir de diferentes fuentes e incluso de diferentes proveedores de bases de
datos. Para hacer la integración de la información se requieren de herramientas que nos permitan hacer la
concentración de la información en el Data Warehouse. Las herramientas son variadas y existen diferentes
proveedores, estas son conocidas como herramientas ETL.
¿Qué es un ETL?
Sus siglas en inglés significan Extract Transform Load. Extract es el proceso de extraer la información que
puede venir de diferentes fuentes de datos o bases de datos de distintos proveedores. Por ejemplo, consolidar
los presupuestos de México y Canadá, cuya información está almacenada en una base de datos Informix y
MySQL respectivamente. A través de una conexión vía ODBC puede hacer la extracción de la información
para concentrarla en el Data Warehouse.
Transform es el proceso de transformar los datos que se están extrayendo antes de ser almacenados
en el Data Warehouse. Tomando el ejemplo anterior, la transformación sería hacer los cálculos de los
presupuestos de México y Canadá por año, mes y región.
Por último, el Load es el proceso de la carga de los datos ya transformados hacia el Data Warehouse. En el
ejemplo anterior estamos almacenando los presupuestos ya calculados de las regiones México y Canadá por
año, mes y región.
Figura 12.
Una herramienta que ayuda en este tipo de actividades es el producto de IBM InfoSphere DataStage.
http://www-03.ibm.com/software/products/en/ibminfodata/
administración simple de DB2 10.5 with BLU Acceleration permite generar Data Mart de una forma rápida
para ser capaz de reaccionar a los requerimientos del negocio. DB2 también permite la ejecución de reportes
analíticos en tiempo real para ayudar a la toma de decisiones.
Figura 13.
http://www-01.ibm.com/software/data/db2/linux-unix-windows/db2-blu-acceleration/
Figura 14.
Figura 15.
Cuando hablamos de los sistemas PureData tenemos diferentes dispositivos PureData, porque sus
aplicaciones de datos, el acceso a los tipos de datos y las transacciones son muy diferentes. Y es aquí donde
se ofrecen nuevos dispositivos.
Figura 16.
http://www-01.ibm.com/software/data/puredata/hadoop/
http://www-01.ibm.com/software/data/puredata/transactions/
http://www-01.ibm.com/software/data/puredata/operationalanalytics/
Cuando se tiene un número de consultas puntuales de tipo transaccional se debe inclinar hacia los sistemas
PureData para Análisis de Operaciones. Si necesita consultas muy complejas de alta velocidad entonces se
debe inclinar por PureData para Analíticos (Este es el sistema basado en Netezza).
disponibilidad, desempeño, seguridad, ahorros en almacenamiento, etc. Uno de los recursos más costoso
es el almacenamiento de la información y hoy con el nuevo concepto de Big Data la necesidad de manejar
grandes volúmenes de información se ha incrementado. El acceso a disco es el acceso más lento para obtener
la información. Actualmente el costo de la memoria ha disminuido y la tendencia es hacer un mejor uso
de la misma porque se ha demostrado que el área principal de una base de datos para obtener un mejor
desempeño es la memoria, al tener los datos en memoria, el acceso a la información se realiza de una manera
más rápida. Las bases de datos cuando buscan la información en el disco para después subirla a memoria
genera cuellos de botella, esto dependerá también del tipo de disco que se tenga. En la sección previa se
comentó que el uso de discos de estado sólido SSD es también la tendencia, pero por el momento son muy
costosos y no es una solución viable para muchas empresas.
Para hacer frente al mejor uso de la memoria y entregar mejores resultados en bases de datos OLAP, en
DB2 e Informix se han agregado nuevas características que permiten no solo tener los datos en memoria
sino que también permite obtener mayores tasas de compresión de datos, lo cual permite manipular mayores
volúmenes de información. La tendencia es tener más datos en memoria de manera comprimida, con lo
anterior se reduce el acceso a disco y se incrementa el desempeño para el análisis de la información.
http://www-01.ibm.com/common/ssi/cgi-bin/ssialias
Tipos de OLAP
ROLAP
Sus siglas en inglés significan Relational OLAP. En ROLAP los datos son almacenados en un Star Schema
con tablas de Hechos y Dimensiones. Las consultas SQL analíticas tienen un gran número de Joins, Scan y
enormes cantidades de datos agregados. Por ejemplo DB2 Cube Views y Cognos Framework Manager with
Relational Datasource.
Figura 17.
MOLAP
Sus siglas en inglés significan Multidimentional OLAP. Es la descripción de un servidor OLAP que
almacena el cubo completo OLAP en memoria. Normalmente las agregaciones son precalculas y
almacenadas en memoria. Esto trae como resultado respuestas muy rápidas a consultas de datos y permite
una alta concurrencia en ejecución de consultas. Ejemplo Cognos Power Cubes, Cognos TM1 y Essbase.
Figura 18.
HOLAP
Sus siglas en inglés significan Hybrid OLAP. Como sus siglas lo indican es una combinación de ROLAP Y
MOLAP. Combina muchas de las características de ROLAP Y MOLAP donde no existe límite del tamaño
de datos como ROLAP y proporciona todas las capacidades para obtener detalles de la información, con una
alta concurrencia y alto rendimiento para los datos solicitados. Si los datos solicitados están en cache no se
realiza la consulta en la base de datos, de lo contrario la consulta se ejecutará en la base de datos. Ejemplos
Cognos 10.1.1 DMR y Cognos Dynamic Cubes.
Figura 19.
http://bluforcloud.com/
¿Qué es Cloudant?
Es una base de datos de como servicio (DBaaS) la cual permite centrarse en el desarrollo rápido de
aplicaciones en Internet y aplicaciones móviles en lugar de preocuparse por la expansión y gestión de la
base de datos por su cuenta. Tiene alta disponibilidad, es duradera y contiene amplias funciones. El almacén
de datos se construye para la escalabilidad y está optimizada para lecturas y escritura de datos simultáneas.
Maneja también una amplía variedad de tipos de datos estructurados y no estructurados entre ellos JSON,
textos completos y geoespacial.
Figura 20.
https://cloudant.com/
La base de datos Cloudant es la primera plataforma de gestión de datos para aprovechar la disponibilidad,
escalabilidad, y el alcance de la Nube para crear una red de distribución global de datos (DDN) que permita
a las aplicaciones estar disponibles para los usuarios donde quiera que se encuentre.
Figura 21.
¿Qué es JSON?
Sus nomenclaturas en inglés significan JavaScript Object Notation, el cual es un formato ligero para el
intercambio de datos. JSON está basado en un subconjunto del lenguaje de programación JavaScript. Su
simplicidad ha hecho que su uso se esté ampliando, algo similar al manejo de datos tipo XML donde es
fácil de implementar, de leer y de utilizar. También es independiente del lenguaje de programación ya que
muchos lenguajes tienen características para mapear con JSON. Se emplea en ambientes donde el flujo
de los datos es de vital importancia como por ejemplo Google, Yahoo, etc. que atienden a millones de
usuarios. JSON está soportado en DB2 10.5 e Informix 12.1 con el cual se permite guardar, consultar y
actualizar documentos. Combina datos desde otros sistemas con datos tradicionales en la misma base de
datos, como por ejemplo las aplicaciones Web o móviles. JSON da el poder a los programadores de reducir
la dependencia de las tecnologías de la información, es decir, no se necesitan crear esquemas y tampoco
tablas. Ejemplo de un simple documento:
{
"nombre" :"Daniel",
"apellido" :"Anguiano",
"edad" : "40",
"direccion":
{
"calle" :"Prados 100",
"ciudad :"Mexico",
"cp" :"52034"
},
"telefono" :
[
{
"tipo" :"celular",
"numero" :"5564239823"
}
{
"tipo" :"trabajo",
"numero" :"5553706234"
}
]
}
La importancia de JSON es que ayuda a habilitar la nueva era de aplicaciones móviles, sociales y Nube
convirtiéndose así en uno de los lenguajes para la Web. Solo soporta seis tipos de valores y son:
1. Cadena (String)
2. Numérico
3. Booleano
4. Valores especiales como el valor “nulo”
5. Objetos
6. Arreglos
No soporta estructuras de datos cíclicos, es decir, utilizar un conjunto de acciones que se pueden ejecutar una
o varias veces (Para “For 1 to 10…” , Mientras “While v_cont 100…”, Repetir “Repeat … ” ).
de inventarios, etc. El Internet esta accesible 24x7 los 365 días del año y la información está ahí como una
oportunidad de hacer negocio. Este mundo de información no puede ser explotada por cualquier manejador
de base de datos lo cual hace complicado el manejo y análisis de este mundo de información. Las razones
son las siguientes:
1. Los datos son generados de diferentes sistemas, con formatos complejos, diferentes fuentes y tipos de
datos, estructurados, no estructurados y vienen de diferentes contextos.
2. Son difíciles de analizar por el volumen de información, requieren más procesamiento, modelado de
datos, análisis complejo de textos y correlación de datos a través de los distintos.
3. Usted necesita ser capaz de visualizar la información para actuar sobre ella. Se requieren sofisticados
algoritmos de búsqueda para tomar decisiones.
Figura 22.
Conclusión
El tema de bases de datos es muy amplio de explorar y difícil de seleccionar cuál es la mejor arquitectura
a utilizar. Normalmente se separan las bases de datos para operaciones Transaccionales y para Analíticos.
Es necesario hacer un buen análisis del tipo de operación que se va a ejecutar en la base de datos para
poder elegir la arquitectura más adecuada y así realizar un buen uso de las capacidades de las bases de
datos para obtener los mejores resultados. Para las compañías es difícil mantener un equilibrio entre
invertir en Hardware y Software. Ya hemos visto diferentes tipos de soluciones que se adaptan a los
distintos giros de empresas. La compresión de datos, el manejo de grandes volúmenes de información
(Estructurados y No Estructurados), datos en memoria, lenguajes de programación que utilizan sentencias
SQL y NoSQL, sistemas híbridos (Transaccionales y Analíticos), reducción de costos de almacenamiento
y los tiempos mínimos de respuesta para obtener un resultado han sido los motivos para el desarrollo de
nuevas arquitecturas a nivel Software y Hardware.
Referencias
Information Center DB2 10.5
DB2 PureScale
PureSystem
Sobre el autor
Jorge Daniel Anguiano Morales