Solemos dar el nombre de base de datos a aquel almacén o repositorio en el que pueden ser guardados enormes volúmenes de datos, organizados de tal manera que puedan ser accesados a posteriori con gran facilidad. Dicha información usualmente se manipula mediante una serie de programas denominados gestores de bases de datos. En el presente artículo podrás conocer más acerca de las Características de una Base de Datos, así que continúa leyendo.
Características de una Base de Datos
La creciente población humana y la ingente cantidad de información generada por sus actividades requiere llevar un registro escrupuloso de ellas. Dicha necesidad de acumular información, esto es, de preservarla en el tiempo y de posibles daños para ser consultada a futuro, se logra mediante las bases de datos. En tal sentido, los avances en electrónica e informática ofrecieron el elemento digital clave mediante el cual se pueden guardar inmensas cantidades de datos en espacios físicos restringidos, merced a su transformación en señales eléctricas o magnéticas.
¿Qué es una Base de Datos?
En palabras fáciles de comprender, una base de datos es un repositorio que posibilita el almacenamiento de información de una forma organizada para distintos finalidades y usos. A modo de ejemplo, en una base de datos se pueden guardar datos y llevar registros de una amplia variedad de departamentos (Ventas, Personal, Inventarios, y demás).
El almacenamiento de datos por sí mismo no resulta de valor alguno, pero si mezclamos o vinculamos dicha información con distintas otras áreas nos puede aportar valor. Por ejemplo, mezclar las cifras de las ventas del mes de agosto del 2014 para el producto de nombre ‘X’ en la región norte es una señal valiosa acerca de comportamiento de las ventas de dicho producto en un lapso de tiempo.
Tipos de Bases de Datos
Hay numerosas empresas con distintas directrices en cuanto a la organización de su información, y de acuerdo a ellas se estimará la clase de procesamiento que se le aplicará a la información, lo que a su vez determinará el tipo de base de datos a emplear. Hay distintos tipos de bases de datos, así como formas de clasificarlas, pero de modo general se conocen dos: OLTP y OLAP.
OLTP
A las del tipo OLTP (On Line Transaction Processing) igualmente se les denomina como bases de datos dinámicas lo que quiere decir que los datos son modificados en tiempo real, esto es, la información es insertada, eliminada, modificada y consultada en línea mientras el sistema se encuentra operativo. Lo podemos ejemplificar con el sistema de un supermercado en el cual se registran uno a uno los artículos que el cliente está adquiriendo y al mismo tiempo se realiza la actualización de su inventario.
OLAP
Las OLAP (On Line Analytical Processing) son bases de datos a las cuales suele llamarse como estáticas, lo que quiere decir que los datos no resultan alterados en tiempo real, esto es, no se inserta, ni se elimina así como tampoco se modifica la información, ya que solo se efectúan consultas sobre los datos preexistentes para el análisis y toma de decisiones. Esta modalidad de bases de datos son de las que se implementan en Business Intelligence para el mejoramiento del desempeño de las consultas con enormes volúmenes de información.
Lo conveniente de implementar una modalidad u otra va a depender de la orientación y requerimientos de cada empresa. Es de suma importancia determinar el tipo de base de datos que se necesita previo a la implementación del sistema o aplicación para gestionarla (manejador de base de datos).
Por ejemplo se puede mencionar al manejador de base de datos “DB2 10.5 with BLU Acceleration”, el cual provee una solución tanto en el ámbito transaccional como en el analítico. DB2 es la denominación comercial de un popular sistema de gestión de base de datos cuyo propietario es IBM (International Business Machines).
Además de los tipos de base de datos ya mencionados existen otros que se clasifican de acuerdo al modelo de administración de datos a ser usado. Entre ellas sobresalen la relacional, la distribuida, NoSQL, enfocada a objetos y la gráfica. Las variadas formas de trabajo que suele requerirse de una base de datos es lo que posibilita que exista una diversidad de ellas.
Base de Datos Relacional
En una base de datos relacional se recopila, por ejemplo, la información de una empresa organizada de tal modo que puede ser consultada, actualizada, analizada y extraída con facilidad. La información suele guardarse en tablas, cuyos campos se encuentran vinculados entre sí. En dichas tablas se conserva los datos de la empresa, ya sea sobre libros, clientes, etc.
A las tablas igualmente se les conoce como relaciones dada su capacidad de referirse recíprocamente entre ellas mediante un enlace lógico (join). Las tablas están compuestas de filas o registros (que contienen los datos de una misma empresa, producto, cliente, etc.) y columnas o atributos (serie de valores de un tipo específico).
Base de Datos Distribuida
En un modelo de base de datos distribuida, el almacenamiento de la información se realiza en distintas porciones de la base de datos que se encuentran en variadas ubicaciones físicas y, por ende, el procesamiento se encuentra igualmente distribuido o replicado en los diferentes puntos de una red de trabajo.
A consecuencia de ello, una base de datos distribuida exhibe una mayor disponibilidad de los datos dada sus múltiples localizaciones. De este modo, de fallar una de las bases de datos, podría seguirse operando de forma correcta aunque no con la rapidez original. No obstante, el mismo proceso de datos distribuidos puede ocasionar que exista duplicidad en ellos y un nivel de seguridad más frágil.
Existen bases de datos distribuidas de 2 tipos: homogéneas y heterogéneas. Las primeras reconocen la presencia de las otras ubicaciones y contribuyen en el proceso de las solicitudes. Adicionalmente, cuentan con el mismo esquema y un similar Sistema de Gestión de Base de Datos (SGBD). Al tanto, las heterogéneas participan de modo limitado al proceso ya que su SGBD y sus esquemas pueden diferir, inclusive, puede que las ubicaciones no se conozcan entre sí.
De forma resumida, las bases de datos del tipo homogéneo se usan generalmente dentro de una misma compañía u organización y, por ello, cuentan con el mismo SGBD y se reconocen. Las heterogéneas usualmente se emplean entre diferentes empresas u organizaciones en las que cada una cuenta con su particular SGBD y, puede ocurrir, que ni sepan cuáles son las otras ubicaciones.
Base de Datos NoSQL
La denominación de la base de datos NoSQL (Not only SQL) quiere decir no solamente SQL. Y ello es debido a que esta clase de base de datos no utiliza sentencias SQL o suele usarlas solo de apoyo, pero no a modo de consulta. NoSQL es empleada para proyectos en los que se requiere trabajar en la base de datos con grandes volúmenes. En aquellas bases con lenguaje SQL, los diferentes atributos de un elemento, se hayan en distintas columnas, al tanto que en una NoSQL todos los atributos se disponen en una misma columna, ahorrando espacio.
Cómo parte de los ejemplos de lenguajes utilizados por bases de datos NoSQL se encuentran : JSON (JavaScript Object Notation); CQL (Contextual Query Language, previamente conocido como Common Query Language); o GQL (Graph Query Language). De forma adicional, este tipo de bases de datos usualmente no permite los enlaces lógicos o joins. Esta limitación es provocada por el extremadamente alto volumen de datos que habitualmente maneja.
Base de Datos Orientada a Objetos
En una base de datos enfocada a objetos (Object-Oriented Database), los datos suelen representarse en forma de objetos y clases. Un objeto podría ser el producto de una búsqueda a una tabla, mientras que una clase es una serie de objetos. Los objetos cuentan con el poder de encapsular tanto la condición como la conducta de un objeto.
De forma adicional pueden guardar las relaciones que mantiene con otros objetos e, inclusive, asociarse con otros objetos para conformar objetos complejos. De este modo, el objeto puede ser referido o citado a posteriori, como una unidad sin necesidad de adentrarse en sus complejidades. Esta modalidad de base de datos se encuentran generalmente programadas en lenguajes dirigidos a objetos como Java, C o Smalltalk.
Base de Datos Gráfica
En lo referente a la base de datos gráfica, igualmente conocida como enfocada a grafos, se distinguen de las previamente mencionadas en que se especializan en establecer vinculaciones entre los datos de manera visual y navegar por dichas vinculaciones. Para acceder a la información, hay que leer los nodos o conectores (lugares donde se conectan los datos de las tablas), dando origen a un lenguaje natural. Se pueden citar como ejemplos de bases de datos de grafos a Neo4j y Amazon Neptune.
Sistema de Gestión de Base de Datos
Un Sistema de Gestión de Base de Datos (SGBD) es una serie de programas que posibilitan el almacenaje, actualización y extracción de la información que se encuentra en una base de datos. Un usuario puede acceder a la información mediante el uso de herramientas propias para la consulta y emisión de reportes, o bien por medio de aplicaciones para tal fin. Suele utilizarse al SQL (Structured Query Language) como lenguaje estándar para acceder y manipular la información dentro de una base de datos.
Los SGBD igualmente cuentan con métodos para el mantenimiento de la integridad de los datos, para gestionar el acceso de los usuarios a la información y para recuperarla de corromperse el sistema. Con su ayuda se puede mostrar la información de la base de datos en diversos formatos. La mayor parte de los SGBD incluyen un generador de reportes. Asimismo pueden incorporar un módulo gráfico que posibilita presentar los datos mediante gráficos y tablas.
Para acceder a la información se utilizan lenguajes de consulta, lenguajes de alto nivel que facilitan la tarea de programar las aplicaciones. Igualmente hacen más sencillas las consultas y la exposición de la información. Mediante un SGBD se puede controlar el acceso a los datos, garantizar su integridad, administrar el acceso concurrente a ellos, restaurar la información tras una falla del sistema y hacer respaldos de seguridad.
Las bases de datos y los sistemas para gestionarlas son fundamentales para cualquier actividad, y deben gestionarse con dedicación. Una SGBD, al constituirse como el pilar de toda base de datos, cuenta con varias ventajas y fortalezas, pero al igual que cualquier otra herramienta, igualmente presenta ciertas desventajas y debilidades, como las que se indican en las siguientes listas:
Ventajas
- Sencilla administración de grandes volúmenes de datos
- Fácil y eficaz acceso a la información almacenada
- Formidable flexibilidad
- Integridad y coherencia de los datos
- Gestión del acceso de los usuarios (seguridad y protección de la información)
- Elevada disponibilidad
Desventajas
- Costo inicial sumamente elevado (incluido el costo de hardware extra)
- Mucho menos eficiente cuando opera con software especial
- Se necesitan de empleados especializados (administradores de bases de datos)
- Una vulnerabilidad de cierta consideración debido a la centralización de datos
Cómo parte de los cuantiosos Sistemas de Gestión de Bases de Datos existentes, los siguientes son los 15 de mayor popularidad y uso:
- Microsoft Access (Relacional)
- Microsoft SQL Server (Relacional)
- MySQL (Relacional)
- Oracle Database (Relacional)
- OrientDB (Enfocado a documentos)
- CouchDB (Enfocado a documentos)
- Db2 de IBM (Relacional)
- IMS de IBM (Jerárquico)
- IBM Informix (Relacional)
- MariaDB (Relacional)
- Sybase ASE (Relacional)
- MongoDB (Enfocado a documentos)
- PostgreSQL (Mezcla relacional y enfocado a objetos)
- Firebird (Relacional)
- Caché (Jerárquico)
Tipos de Datos que se Pueden Almacenar
Antes del surgimiento de las bases de datos la información solía almacenarse de forma estructurada en objetos a los cuales se les denominaba “Tablas”, y en los cuales se guardaban los datos. A modo de ejemplo, la tabla de “Empleados” consta de datos vinculados al código de empleado, nombre, apellido, número de Seguro Social, etc. Dentro de una base de datos a cada uno de dichos elementos se les da el nombre de “Campo” y a su conjunto se le llama como “Registro” (igualmente denominado como Columna y Renglón, Hilera o Fila).
Los tipos de datos que pueden ser almacenados son variados, pero los más usuales son los de tipo numérico, decimales y tipo alfabético. Los tipos de datos que pueden almacenarse se han ampliado de acuerdo a como han progresado las bases de datos. Por citar solo algunos otros tipos, tenemos a los CLOB (Character Large Object) y BLOB (Binary Large Object). Los CLOB suelen emplearse para guardar documentos y los BLOB para guardar imágenes o videos.
XML es otro tipo de dato que actualmente goza de gran importancia, ya que por su naturaleza jerárquica se origina de un nodo inicial o raíz, y al mismo tiempo puede contener ‘n’ niveles y subniveles. Numerosos manejadores de bases de datos pueden utilizar este tipo de dato; no obstante, no de forma natural como lo realiza DB2, esto es, el documento es guardado como un CLOB.
Lo desventajoso de guardarlo como un CLOB es que ello conlleva a dividir el documento y almacenarlo en distintas áreas (a modo de rompecabezas), y a la hora de su consulta se ha de ensamblar para presentar su información (lo cual entraña problemas de rendimiento). Una ventaja que, a nivel competitivo, tiene DB2 es que los documentos XML habitualmente se almacenan de forma natural, esto es, el documento se guarda dentro de la base de datos, lo que posibilita consultar la información directamente y con mucho mejor rendimiento.
Inclusive pueden ser creados índices a nivel documento XML para la consulta de un nodo en particular, y así tener acceso a la información de forma más rápida. Algo que también resulta ventajoso es la posibilidad de comprimir el documento XML, con lo que puede incrementarse el ahorro en espacio de almacenaje. Hay otras bases de datos en las cuales pueden ser almacenados otros tipos de documento, como por ejemplo: Cloudant, el cual evaluaremos al avanzar en este artículo.
Del vertiginoso avance de las tecnologías de la información y los nuevos requerimientos en el manejo de la información emerge el concepto Big Data. Hay distintas definiciones, pero la más simple es la gestión de enormes volúmenes de información que provienen de distintas fuentes de datos (estructurados, no estructurados, XML, HTML, etc.) de un modo rápido sin que se afecte la disponibilidad de la información y la operatividad de los sistemas. De gran ayuda al estudio y a la toma de decisiones sirve las consultas que se hacen en Big Data.
Otra de las virtudes que, a nivel competitivo, detentan las bases de datos como DB2 e Informix es que permiten aprovechar la información proveniente de distintos orígenes, con lo que se posibilita la integración con otros sistemas y lenguajes que emplean sentencias SQL y NoSQL.
¿Qué sucede con los Datos Almacenados a Través del Tiempo?
Apenas es creada una base de datos y se comienza a trabajar con ella su volumen de información es ínfimo y el rendimiento de la aplicación y la misma base de datos es óptimo. No obstante con el paso del tiempo su volumen de datos se va incrementando y como resultado de ello van surgiendo algunos de estos problemas:
- Reducción del espacio disponible en disco.
- Aumento de los costos de almacenaje y procesamiento.
- Dificultades en el rendimiento en las consultas.
- Errores en la aplicación lo que afecta la disponibilidad de los datos.
- Inconvenientes con la base de datos y la pérdida de datos.
En base a los problemas anteriormente citados surge la necesidad de implementar mejoras a las bases de datos y/o diseñar arquitecturas para resolver tales contrariedades. Varias son las soluciones que han sido implementadas tanto a nivel de Software como de Hardware.
Uno de las más importantes dificultades a solventar es la disponibilidad y la pérdida de datos. En DB2 hay dos soluciones, la primera impide que se pierda la información de presentarse desastres, contingencia, etc. y con la segunda se logra evitar que la disponibilidad de los datos se vea afectada, esto es, la información se encontrará disponible 24 horas × 7 días (En todo instante). Estos recursos se denominan:
- HADR – Alta disponibilidad y Recuperación ante Desastres
- PureScale – Disponibilidad Continua
HADR
HADR (High Availability Disaster Recovery) es una particularidad de replicación de información que ofrece una solución de elevada disponibilidad de datos cuando se suscita algún fallo de carácter parcial o absoluto en uno de los servidores centrales. Es un arreglo que cuenta con un Servidor Primario y hasta tres Servidores Secundarios. De fallar el servidor primario, algunos de los secundarios ocupará la posición primaria y se encargará de la función de control. El copiado de la información se realiza por medio de los archivos log de transacciones.
Ventajas
- Reduce el impacto de paradas planeadas y no planeadas.
- Posibilita la actualización del software sin detener la operación.
- Para la aplicación resulta transparente, por lo que no se necesita modificar la aplicación.
- No demanda un hardware especializado.
- Fácilmente administrable y configurable.
PureScale
Es una arquitectura que se basa en clúster, el cual es una serie de varios computadores conectados por una red de alta velocidad, de modo tal que suele ser visto como un único y poderoso equipo. Es una cualidad de DB2 que aminora el riesgo y los costos asociados al desarrollo del negocio al suministrar capacidad extrema, disponibilidad interrumpida y transparencia para la aplicación. Capacidad extrema quiere decir que los requerimientos del crecimiento están cubiertos.
Ventajas
- Se evitan riesgos y los costos asociados a modificaciones en la aplicación.
- Ideado para sistemas que necesitan de disponibilidad constante (24×7). De fallar algunos o varios de sus integrantes, la transacción y funcionamiento del sistema prosiguen.
- Emplea la misma arquitectura del incuestionable estándar de Oro, los Sistemas Z.
- Se añaden o remueven integrantes de una manera sencilla.
- No se necesita ajustar la infraestructura de la base de datos.
- Balance automático de las cargas de trabajo.
- Ensamblado y disponible en Power Systems y servidores System x.
- El corazón del sistema es una arquitectura de disco compartido.
Otras Soluciones
La puesta en ejecución de HADR o PureScale va a depender de los requerimientos y capacidades de cada empresa. Existen otras soluciones de implementación de base de datos con las cuales se puede hacer frente a los inconvenientes de desempeño. DB2 brinda una enorme variedad de opciones para afrontar los problemas de rendimiento.
- DPF (Database Partition Feature). Opción de Partición de Bases de Datos.
- Table Partitioning. Particionamiento de Tablas.
- MDC (Multi-Dimension Clustering). Clustering Multidimensional.
Para comprender de mejor forma el asunto del particionamiento podemos hacer un paralelo con la frase “divide y vencerás”, ya que un principio semejante al usado en estas características de DB2. Lo más ventajoso de dichas características es que se aprovecha la potencia de múltiples procesadores en una multiplicidad nodos físicos. La información que es consultada o modificada es descompuesta de forma automática y ejecutada en cada una de las particiones. El empleo de esta característica no es percibida por el usuario ejecutante de sentencias SQL.
Ventajas
- Menor cantidad de entradas/salidas a disco.
- Se enfoca en un subconjunto de datos.
- Fragmentos pequeños divididos en más procesadores.
- Disponibilidad de información más rápida.
- Mejor gestión.
- Un mantenimiento más sencillo para pequeños fragmentos de datos.
¿Qué es DPF (Data Partitioning Feature)?
DPF es algo por lo que se caracteriza DB2, mediante la cual es posible realizar el particionamiento de base de datos. Debido a esta cualidad se logra mejorar el rendimiento y la escalabilidad de enormes bases de datos. Al ser voluminosa la información en una base de datos, ésta es una de las soluciones que ha de implementarse. Cada partición de base de datos cuenta con su particular conjunto de recursos informáticos entre los que se incluyen procesador, memoria y unidades de almacenamiento.
En un entorno DPF los registros de cada tabla suelen distribuirse en las distintas particiones (DB2 emplea un algoritmo para decidir en cual partición habrá de almacenarse determinada información). DPF es un atributo de escalabilidad. DPF admite distintas configuraciones:
- Discos compartidos
- Discos reservados.
- Posibilita la utilización de particiones lógicas y físicas.
- Los comandos para la gestión de la base de datos usualmente se ejecutan en cada una de las particiones de modo automático y transparente.
- Asimismo resulta transparente para la aplicación.
¿Qué es Table Partitioning?
Suele describirse de forma similar a DPF aplicando esto únicamente a tablas que son parte de una base de datos, esto es, la partición de la información de una tabla en un subgrupo de datos. En la mayor parte de los casos las bases de datos almacenan información de mucho tiempo atrás (históricos) lo que ocasiona que al realizar consultas sobre dicha tabla el rendimiento se vea afectado y el consumo de recursos resulte excesivo.
A modo de ejemplo, si se realiza una consulta sobre un millón de registros, ésta tomará más tiempo que una que se efectúe sobre 100,000 registros. Imaginemos que contamos con una tabla de ventas que contiene 10 millones de registros que corresponden a las ventas de una década (2004, 2005…2014). Si deseamos consultar la información del año 2005, con bastante probabilidad resultará larga la espera para mostrar dicha información.
En contraste si se realiza una partición de las ventas de forma anual, al ser consultada la información del año 2005 el gestor de la base de datos solamente efectuará la consulta sobre un millón de registros y no sobre los 10 millones de la década. Dicho de otra forma el motor de la base de datos habrá de consultar únicamente la partición en la cual se localizan las ventas del año 2005.
Ventajas
- Mejora el desempeño de las consultas.
- Se logran optimizar los costos de almacenamiento.
- Se crean o suprimen las particiones de datos de forma rápida.
- No se ve impactada la disponibilidad de los datos al añadir o remover particiones.
- Incremento del tamaño de las tablas. Las tablas cuentan con un límite máximo de almacenaje de datos, al usar Table Partitioning el tamaño de la tabla puede aumentarse por medio del uso de múltiples particiones.
¿Qué es MDC (Multi-Dimension Clustering)?
Provee un método sofisticado para posibilitar que la información de una tabla pueda ser agrupada físicamente en varias dimensiones de forma simultánea de un modo flexible y automático. Esto puede incrementar en gran medida el desempeño de las consultas.
Ventajas
- Disminuye el costo de mantenimiento en la información en lo referente a su reorganización y manutención de índices a la hora de crear, eliminar y actualizar datos.
- Fue ideado en un inicio para Data Warehouse y bases de datos con enormes volúmenes de datos, pero igualmente puede ser usado en bases de datos de tipo OLTP.
En entornos Data Warehouse regularmente las consultas se efectúan sobre enormes volúmenes de datos lo que implica que los tiempos de respuesta suelen prolongarse. Las consultas que se ejecutan siempre tienen que ver con fechas, operaciones matemáticas, productos, zonas, tipos, regiones geográficas, etc. A modo de ejemplo, si nuestras búsquedas de datos de ventas siempre suelen ser por “Fecha”, “Tipo de producto” y “Forma de pago” entonces se puede usar MDC para la tabla de ventas para un mejor desempeño en dichas consultas.
Al realizar una consulta que filtramos por “Fecha del producto”, el manejador de la base de datos usará únicamente una dimensión (un fragmento de datos). De utilizar nuestra consulta los filtros por “Fecha de venta” y “Tipo de producto”, provocará que el manejador de la base de datos emplee dos dimensiones (dos fragmentos de datos) y así de forma sucesiva. De forma parecida a DPF, el motor de la base de datos consultará fragmentos concretos de datos aumento con ello el desempeño en las consultas.
Es de suma importancia indicar que podemos combinar todas estas características para afrontar los inconvenientes que solemos conseguir cuando realizamos consultas sobre enormes volúmenes de información. En la actualidad ya se sabe de otras optimizaciones efectuadas al motor de DB2, de las cuales hablaremos más adelante. El segundo punto de relevancia lo constituyen las dificultades comunes a las que hacen frente tanto bases de datos como empresas, y es el cada vez mayor volumen de información.
Por el lado de las bases de datos ello implica contrariedades en el desempeño al realizar consultas sobre inmensos volúmenes de datos y del lado de la empresa ello implica cada vez mayores costos de almacenamiento. De allí emerge la necesidad de poner en ejecución novedosos mecanismos para disminuir tanto tiempos como costos, y es aquí donde hace su aparición el asunto de la compresión de datos.
Compresión de Datos
Es esencialmente la disminución del volumen de información usando la menor cantidad de espacio posible. Existen numerosas técnicas y algoritmos que se han puesto en ejecución en las bases de datos, no obstante una ventaja competitiva con la que cuenta DB2 es que, de forma adicional, incorpora la compresión de los diferentes tipos de objetos. La compresión puede llevarse a cabo sobre:
- Registros.
- Tablas.
- Índices.
- Tablas provisionales.
- Objetos e imágenes.
- Documentos XML.
- Log transaccionales.
- Backup.
En este asunto ha sido mucho el avance pero aún DB2 mantiene el liderazgo. Actualmente con el novedoso concepto de bases de datos en memoria y con almacenaje por columnas se pueden alcances unos mayores porcentajes de compresión, superiores a las que ya se han venido obteniendo en versiones anteriores.
Ventajas
- Disminuye los costos de almacenaje
- Aumenta el desempeño de las consultas.
- Disminuye la entrada/salida al disco.
- Aminora los costos de energía.
- Se puede trabajar con datos en memoria y con datos comprimidos.
Para que los datos sean comprimidos se emplea un diccionario en el cual se almacena un digito en hexadecimal que sirve para representar los datos que suelen repetirse. Estos dígitos en hexadecimal sustituirán a los datos en la tabla.
Uno de los costos más elevados y significativos es cuando se consulta información con acceso a discos. Será la velocidad de la unidad de disco la que indicará con qué rapidez se recuperarán los datos de la base de datos para ser retornados al usuario final. Al encontrarse comprimidos los datos, las entradas/salidas al disco se reducirán, ya que con menos accesos al disco, se podrán obtener mayores volúmenes de datos.
Hay distintas clases de discos: los discos duros, igualmente conocidos como rígidos, son discos de almacenaje no volátil, que usan un sistema de grabación magnética para guardar datos digitales, y los discos de estado sólido o SSD (Solid State Disk) que es un dispositivo de almacenaje de datos que puede estar fabricado con memoria volátil y no volátil. Estos discos suelen ser muy veloces y consumen una menor cantidad de energía y parecen destinados a reemplazar en un futuro cercano a los discos duros. Su mayor inconveniente es que son costosos.
Data Warehouse
Es una modalidad de almacenamiento de datos la cual se emplea para guardar grandes volúmenes de datos (primordialmente históricos), cuyo análisis es de gran ayuda a la hora de tomar decisiones a nivel empresarial. Los tipos de bases de datos que se destinan al Data Warehouse no guardan datos actuales, esto es, no son bases de datos transaccionales OLTP, suelen ser del tipo OLAP.
Uno de los más grandes desafíos que enfrenta una base de datos es que no puede ser usada a un mismo tiempo como transaccional y con fines analíticos. Esto no es posible lograrlo dadas las limitaciones que pueden existir tanto a nivel de software como de hardware (memoria, unidades de almacenamiento, procesadores, etc.). En razón de ello se ha de determinar qué tipo de base de datos es la que va a ser usada (OLTP u OLAP).
Dado los nuevos requerimientos y los avances tecnológicos el diseño de las bases de datos se ha venido adecuando, al mismo tiempo que se han creado novedosas arquitecturas de solución (DB2 10.5 with BLU Acceleration, Informix, PureData for Analytics y demás). Para que una empresa tome la decisión de implementar un Data Warehouse, debe realizar previamente un profundo estudio de la información que se desea analizar, así como de los datos que pretenda migrar.
Los datos con los cuales suelen alimentarse un Data Warehouse pueden provenir de diversas fuentes e inclusive de distintos proveedores de bases de datos. Para que la integración de los datos tenga lugar se necesitan de herramientas que nos posibiliten concentrar dicha información en el Data Warehouse. Estas herramientas, a las cuales suele conocerse como ETL, son diversas y son provistas por distintos proveedores.
ETL
ETL (Extract Transform Load) es el conjunto de procesos mediante el cual se puede extraer, transformar y cargar determinada información. El primer paso comprende la «Extracción» de la información proveniente de diversas fuentes de datos o de bases de datos de diferentes proveedores. Por ejemplo, podría citarse la integración de los presupuestos de México y Canadá, cuyos datos se hayan almacenados en dos bases de datos distintas. Dichos datos pueden ser extraídos gracias a una conexión ODBC para luego ser concentrados en el Data Warehouse.
La «Transformación» es el proceso de convertir los datos extraídos previo a ser guardados en el Data Warehouse. Siguiendo el ejemplo previo, la transformación sería realizar los cálculos de ambos presupuestos por año, mes y región. Finalmente, la «Carga» es el proceso remitir los datos ya convertidos al Data Warehouse. En el ejemplo citado, ello sería el almacenamiento de los presupuestos ya consolidados de México y Canadá por año, mes y región. IBM InfoSphere DataStage es una de las herramientas diseñadas para este tipo de tareas.
Data Mart
Se podría definir como una subdivisión de datos de un Data Warehouse para un área particular. En un Data Warehouse se encuentra reunida toda la información de una compañía y de cada uno de sus departamentos. Con los Data Mart es posible separar los datos de acuerdo a actividades puntuales, usuarios específicos y áreas concretas. La información de la cual suele alimentarse un Data Mart igualmente puede proceder de una base de datos de tipo transaccional.
Esta es una de las novedosas propiedades del producto DB2 10.5 with BLU Acceleration. Debido a la fácil administración de DB2 10.5 with BLU Acceleration es factible generar Data Mart con gran rapidez, respondiendo de forma eficaz con ello, a los requerimientos del negocio. Con DB2 igualmente es posible la ejecución de informes analíticos en tiempo real que sirven para contribuir a la toma de decisiones.
¿Qué Modelo de Datos se Emplea en un Data Warehouse o Data Mart?
El modelo de datos que suele utilizarse en una base de datos OLTP es del tipo relacional en el cual hay una vinculación de datos de cero a uno, de uno a uno y de uno a varios. Para vincular y sacar provecho de los datos en un modelo de este tipo, es necesaria la generación de índices primarios y combinados, lo cual en un entorno Data Warehouse no se puede lograr debido al volumen de información que es manipulado.
Las bases de datos de un Data Warehouse o un Data Mart suelen manejar inmensos volúmenes de información y de acuerdo al diseño de cada una de ellas, los datos ya se encontrarán calculados o precalculados, lo que hace posible unos mejores tiempos de respuesta. Uno de los modelos frecuentemente usados es el Star Schema o esquema en forma de estrella. Este tipo de modelo suele contar con una «tabla resultado» igualmente denominada Fact Table, que se encontrará rodeada de las tablas de referencia o dimensiones.
Estas dimensiones suelen vincularse a la «tabla resultado» mediante una llave primaria. Esta modalidad de esquema es el más conveniente para bases de datos OLAP y Data Mart por su sencillez y rapidez para realizar análisis. DB2 cuenta con numerosas optimizaciones internas para poder hacer uso de esta clase de esquemas. Por ejemplo ha desarrollado el uso del novedoso método Zigzag.
Informix Warehouse Accelerator – IWA
Informix Warehouse Accelerator es una herramienta que se usa para optimizar las cargas de trabajo con lo que es posible integrar los procesos operacionales con el fin de implementar estrategias ganadoras. Gracias a él es factible agilizar las consultas para lograr tiempos de respuesta nunca antes conseguidos. El IWA es una tecnología novedosa que mejora el desempeño y la cual cuenta con las siguientes propiedades:
- Compresión extrema, la cual se requiere cuando la memoria RAM es un elemento limitante.
- Base de datos organizadas por Fila para los casos de cargas de datos transaccionales (OLTP) y por Columna en caso de acceder a los datos por medio del acelerador para OLAP.
- Es la tercera generación de bases de datos residentes en memoria. No permite la Entrada/Salida al disco dado que la compresión posibilita mantener los datos en memoria.
- Frecuencia de partición. Se habilita para un eficaz acceso a los datos comprimidos.
- Paralelismo en masa. La totalidad de los procesadores se usan en las consultas.
- Evaluación de predicados con información comprimida, lo que mejora la realización de las consultas.
- Actualización automática de particiones, lo cual posibilita el refrescamiento en los Data Mart solo de aquella información que ha cambiado.
- Soporte para información de series de tiempos. Pueden ser analizados en memoria y en tiempo real, los datos provenientes de censores inteligentes, medidas, GPS, u otros equipos.
¿Qué son los PureSystem?
Son una novedosa serie de sistemas integrados de avanzadas características, cuyo diseño, prefabricación, configuración y optimización tiene como finalidad la ejecución de cargas de trabajo muy complejas y concretas. Esta clase de sistemas suelen brindar las siguientes ventajas:
- Fabricados en base al conjunto de conocimientos colectivos de millares de implementaciones, mejores prácticas y lo que han experimentado tanto socios de negocios como proveedores.
- Diseño Integrado. La totalidad de los componentes de hardware y software se encuentran correctamente integrados y sincronizados para el trabajo que van a desempeñar.
- Provee una acabada sincronía entre hardware y software ya que suelen venir debidamente diseñados, integrados y configurados. Tras su instalación y conexión a la red usted se cuenta con un sistema listo para funcionar.
- Su valor se ve incrementado en apenas unos días, ya que la experiencia del los técnicos es un factor que viene incorporado como parte de la integración de los sistemas.
Familia de los PureSystem
Se conocen tres familias de PureSystem, las cuales ha sido ideadas para ofrecer solución a las dificultades que suelen enfrentar los diversos tipos de cargas de trabajo, ajustando la economía y la experiencia de las tecnologías informáticas.
PureFlex: Estos sistemas proveen servicios de infraestructura y posibilitan implementar su propia aplicación o ambiente en un contexto escalable, de elevada disponibilidad y de fácil mantenimiento. Si existe únicamente una plataforma y desea diseñar cualquier aplicación indistintamente de los sistemas que posea, PureFlex es la solución.
PureApplications: Se basa en los mismos conceptos de PureFlex, proveyendo servicios de plataforma. En ellos se encuentra integrado todo el software y las herramientas necesarias para implementar una plataforma de aplicaciones sumamente escalable. Su finalidad es brindar una plataforma de aplicaciones tipo Web. Si usted cuenta con aplicaciones Web o programas que usan memoria e interactúan con la base de datos, entonces PureApplications está hecho a su medida.
PureData: Finalmente, estos sistemas están diseñados para brindar servicios de datos a las aplicaciones, indistintamente de que sean programas transaccionales como Punto de Venta o CRM, o sistemas analíticos como pérdida de clientes y/o gestión de campañas. En caso de datos concretos, programas OLTP, aplicaciones y sistemas de profundidad analítica, entonces PureData es la clave para ello.
Cuando hacemos referencia a los sistemas PureData contamos con distintos dispositivos PureData, ya que tanto sus programas de datos, el acceso a los tipos de datos y las transacciones suelen diferir mucho. Aquí es donde se brindan novedosos dispositivos.
Sistemas PureData para Hadoop
Este dispositivo ha sido mejorado para el almacenamiento, catalogación, análisis y transformación de enormes volúmenes de datos en numerosos formatos distintos. Igualmente se puede usar para el mantenimiento de mayores datos vinculados que se acceden menos frecuentemente desde un Data Warehouse, por ende su acceso resulta fácil ya que no ocupa espacio ni recursos del Data Warehouse. Optimizado asimismo para el análisis de archivos en línea.
Sistemas PureData para Transacciones
Este dispositivo está ideado para el comercio electrónico y el comercio Web transaccional. A modo de ejemplo, se encuentran las aplicaciones de Puntos de Venta en las cuales, a través de escaneado de un código, se logra determinar su precio. Igualmente se conocen como servicios de clúster de bases de datos mejorado para una mayor productividad y escalabilidad transaccional.
Sistemas PureData para Analíticos
Este dispositivo cuenta con una optimización distinta dado que interactúa con la base de datos, con la memoria, y mejora de modo diferente las cargas de trabajo tanto para análisis como para el Data Warehouse. Esto es, para programas como el análisis de clientes, análisis predictivo, elevada velocidad de análisis en datos (petabyte) con la mayor simplicidad. Esto está diseñado con la Tecnología Avanzada de Netezza, cuyos sistemas N200x brindan:
- Similares optimizaciones para enormes volúmenes de datos.
- Carente de administración táctil.
- Un número superior a 150 funciones analíticas mejoradas.
- Rendimiento mejorado de análisis de Big Data.
- Gestión sencilla para un despliegue veloz y fácil.
- Una velocidad tres veces superior al modelo N1001.
- Una capacidad adicional de 50% por rack. Ello contribuye a optimizar la eficacia del Data Center sin aumentar la potencia o los requerimientos de refrigeración.
Sistemas PureData para Análisis de Operaciones
Este dispositivo puede ofrecer soluciones como combinaciones de los datos que usted mantiene, lo que usted conoce y los análisis, pero usted puede contar con búsquedas específicas. Por ejemplo, si usted pretende detectar un fraude en tiempo real para lo que realiza profundas exploraciones a numerosos datos y reconoce que pueden existir problemas en ciertos registros, usted podría realizar búsquedas puntuales a dichos registros.
Este sistema se encuentra optimizado para equilibrar la elevada productividad para el análisis de datos así como para equilibrar la productividad operativa en tiempo real. Al predominar las consultas específicas de tipo transaccional se deben preferir los sistemas PureData para Análisis de Operaciones. En caso de que realices consultas de gran complejidad a una elevada velocidad entonces debes preferir PureData para Analíticos.
La Tendencia: Bases de Datos en Memoria
Cómo se ha podido observar, con el avance del tiempo los requerimientos del negocio no solo cambian sino que se incrementan, por ende se han añadido novedosas características a las bases de datos para enfrentar las situaciones de elevada disponibilidad, rendimiento, seguridad, mejor control del almacenamiento, etc. El almacenaje de datos es uno de los elementos de mayor costo y en la actualidad, con el innovador concepto de Big Data se ha acrecentado la necesidad de gestionar enormes volúmenes de información.
De todos los medios de almacenamiento, la unidad de disco duro se ha calificado como el más lento de todos a la hora de acceder a la información. En la actualidad el costo de la memoria se ha reducido y se tiende a hacer una mejor utilización de la misma ya que se ha logrado demostrar que es en ella donde se puede obtener el mejor desempeño de una base de datos. Al ser mantenidos los datos en memoria, se podrá acceder a la información de una forma más rápida.
En cada oportunidad que una base de datos busca la información en el disco para luego cargarla en memoria, se producen cuellos de botella. Ello va a depender igualmente del tipo de disco con que se cuente. En el apartado previo se mencionó que la utilización de unidades de discos de estado sólido SSD es igualmente una de las tendencias que actualmente predominan, pero a la fecha resultan muy costosos y no es una solución factible para numerosas empresas.
Para utilizar la memoria más eficientemente y aportar mejores resultados en bases de datos OLAP, tanto en DB2 como en Informix se han añadido nuevas propiedades que hacen posible no solo conservar los datos en memoria sino que asimismo, se logran tasas más elevadas de compresión de datos, con lo que se pueden manejar mayores volúmenes de datos. Todo apunta a conservar mayor cantidad de datos en memoria de forma comprimida, con lo que se aminora el acceso a disco, incrementándose el desempeño para el análisis de los datos.
Tipos de OLAP
ROLAP (Relational OLAP). Aquí los datos son guardados bajo un Star Schema con Tablas de Resultados y Dimensiones. Las consultas SQL analíticas cuentan con una gran cantidad de Joins, Scan e inmensas cantidades de datos añadidos. A modo de ejemplo DB2 Cube Views y Cognos Framework Manager with Relational Datasource.
MOLAP (Multidimentional OLAP). Se describe como un servidor OLAP que guarda el cubo total OLAP en memoria. Regularmente los añadidos son precalculados y guardados en memoria. Esto ofrece como resultado respuestas muy veloces a consultas de información y posibilita una elevada concurrencia en ejecución de consultas. A modo de ejemplo Cognos Power Cubes, Cognos TM1 y Essbase.
HOLAP (Hybrid OLAP). Cómo su nombre lo señala es una mezcla de ROLAP Y MOLAP. Suele combinar gran parte de las propiedades de ROLAP Y MOLAP en las cuales no hay límite del tamaño de datos como ROLAP y facilita todas las capacidades para lograr detalles de la información, con una elevada concurrencia y alto rendimiento para los datos que se solicitaron. Si estos se encuentran en cache no se efectuará la consulta en la base de datos, de no ser así sí se ejecutará en la base de datos. Ejemplos Cognos 10.1.1 DMR y Cognos Dynamic Cubes.
¿Qué es IBM BLU Acceleration for Cloud?
Se define como una herramienta de Data Warehouse y Análisis en la Nube. Una manera sencilla de definir lo que es Nube, es que ésta comprende los servicios informáticos que se brindan a través de Internet. Una de las bondades de estas arquitecturas es que las compañías ya no necesitan de una infraestructura propia y posibilita que los usuarios puedan acceder a las aplicaciones desde el lugar donde se encuentren. En el caso de los programadores, que estos puedan desarrollar rápidamente las aplicaciones.
¿Qué es Cloudant?
Es una base de datos que opera como un servicio (DBaaS), con la cual es posible centrarse en el desarrollo veloz de programas en Internet y aplicaciones móviles en vez de dedicarse al crecimiento y administración de una base de datos por su propia cuenta. Cuenta con una elevada disponibilidad, es permanente y cuenta con abundantes funciones. El centro de datos es construido para la escalabilidad y se encuentra optimizado para lecturas y escritura de datos de forma simultánea.
Gestiona igualmente una extensa variedad de tipos de datos estructurados o n, entre los que se encuentran JSON, textos enteros y geoespacial. La base de datos Cloudant es la plataforma inicial de administración de datos que aprovecha la disponibilidad, escalabilidad, y la cobertura de la Nube para conformar una red de distribución mundial de datos (DDN) que posibilita que las aplicaciones se encuentren disponibles para los usuarios desde el lugar donde estos se encuentren.
¿Qué es JSON?
Su significado en inglés es JavaScript Object Notation, el cual es un formato liviano para el intercambio de información. JSON se basa en un sub módulo del lenguaje de programación JavaScript. Gracias a su sencillez ha logrado que su utilización se esté extendiendo, algo parecido al manejo de datos tipo XML el cual es de fácil implementación, lectura y uso.
Igualmente, no suele depender del lenguaje de programación ya que numerosos lenguajes cuentas con características para mapear con JSON. Se utiliza en entornos en los cuales el flujo de los datos es de crucial relevancia como por ejemplo Google, Yahoo, etc. que suelen atender a millones de usuarios. JSON cuenta con soporte en DB2 10.5 e Informix 12.1 con el cual es posible almacenar, consultar y actualizar documentos.
Mezcla datos de otros sistemas con datos convencionales en la misma base de datos, como suele ocurrir con las aplicaciones Web o móviles. JSON otorga potestad a los programadores de disminuir la dependencia de las tecnologías informáticas, esto es, no se requieren crear esquemas al igual que tablas. A modo de ejemplo de un sencillo documento:
{
«nombre» :»Felix»,
«apellido» :»Vasquez»,
«edad» : «40»,
«dirección»:
{
«calle» :»Prados 100″,
«ciudad :»México»,
«cp» :»52034″
},
«teléfono» :
{
«tipo» :»celular»,
«número» :»5664339820″
}
{
«tipo» :»trabajo»,
«número» :»5667006894″
}
}
La relevancia de JSON es que contribuye a habilitar la nueva generación de aplicaciones móviles, sociales y de Nube transformándose de esta manera en uno de los lenguajes para la Web. Únicamente soporta seis tipos de valores que son:
- Cadena (String)
- Numérico
- Booleano
- Valores no comunes como el valor “nulo”
- Objetos
- Arreglos
No ofrece soporte a estructuras de datos cíclicos, esto es, usa un conjunto de acciones que pueden ser ejecutadas en una o varias ocasiones (Para “For 1 to 10…” , Mientras “While v_cont 100…”, Repetir “Repeat … ” ).
Internet de las Cosas (IoT)
Hoy en día, el planeta se encuentra híper conectado mediante múltiples fuentes de información (redes sociales, equipos móviles, censores y todo lo que se haya a nuestro derredor) lo que está ocasionando que estemos en contacto con demasiada información. Todo este universo de información conforma el Internet de las Cosas, el cual crea novedosas oportunidades en numerosas áreas. El fin de ello no es guardar enormes volúmenes de datos sino actuar sobre ellos mediante su análisis de una forma rauda para su conveniente aprovechamiento.
El propósito es valorar dicha información para brindar lo que desea el consumidor, para detectar fraudes, mejorar el reabastecimiento de inventarios, etc. El Internet se encuentra disponible 24×7 los 365 días del año y la información se encuentra allí como una oportunidad de realizar negocios. Este cosmos de información no puede ser explotado por cualquier manejador de base de datos, lo cual complicaría su gestión y análisis. Los motivos son las siguientes:
- Los datos suelen generarse en distintos sistemas, con formatos de cierta complejidad, diversas fuentes y tipos de datos, estructurados o no y provienen de variados contextos.
- Son de difícil análisis dado lo voluminoso de la información, necesitan más procesamiento, modelado de datos, examen complejo de textos y correlación de datos por medio de diferentes sistemas.
- Cada usuario requiere estar en la capacidad de visualizar la información para trabajar sobre ella. Se necesitan complejos algoritmos de búsqueda para una lógica toma de decisiones.
IBM Informix – Base de Datos Inteligente para IoT
IBM Informix es un modelo de base de datos inteligente optimizada para solucionar las problemáticas de IoT. Sus propiedades únicas le posibilitan que opere en dispositivos periféricos así como en la Nube. En esta última, Informix posee la escalabilidad y el rendimiento para actuar como plataforma de análisis avanzados para la consolidación de la información de millones de dispositivos.
Igualmente cuenta con la capacidad de proveer inteligencia local: Presentación de forma conjunta de datos locales, examen y toma de decisiones locales, cuenta con almacenamiento en cache de requerirse, control y respaldo en la nube para copias de seguridad y restauración. En el lugar que se implemente logrará facilidad de uso, estabilidad y una serie de características que la transforman en la herramienta de base de datos “Sencillamente Poderosa” para Internet.
Conclusión
La temática de bases de datos es muy vasta de explorar por lo que resulta difícil elegir cuál es la mejor arquitectura a usar. Suelen separarse las bases de datos en transaccionales y analíticas. Se requiere realizar un buen estudio del tipo de actividad que se va a ejecutar en la base de datos para poder escoger la arquitectura más apropiada y así efectuar una debida utilización de las capacidades de la misma para lograr los mejores resultados. Para toda empresa es una tarea ardua mantener un balance entre invertir en hardware o en software.
Hemos podido observar distintos tipos de soluciones que podrían ser adaptadas a las diferentes variedades de empresas. La compresión de datos, la gestión de enormes volúmenes de datos (estructurados o no), datos residentes en memoria, lenguajes de programación que usan sentencias SQL y NoSQL, sistemas híbridos (transaccionales y analíticos), disminución de costos de almacenaje y los tiempos mínimos de respuesta para lograr un resultado, han impulsado el desarrollo de novedosas arquitecturas a nivel de software y de hardware.
Igualmente te recomendamos estos otros interesantes artículos: