home

=// PROCESAMIENTO TRANSACCIONAL EN LINEA OLTP // =

Es un tipo de proceso especialmente rápido en el que las solicitudes de los usuarios son resueltas de inmediato; naturalmente, ello implica la concurrencia de un mecanismo que permite el procesamiento de varias transacciones a la vez. Las bases de datos relacionales constituyen un sostén poderoso para los sistemas de apoyo a la toma de decisiones, por ello vamos a profundizar en el estudio de aquellos sistemas que llevan el peso del comportamiento diario de las empresas, en el tipo de procesamiento de la información que realizan y en cómo éstos pueden influir en el comportamiento de los sistemas dedicados al análisis. Los sistemas que se utilizan para el funcionamiento de los negocios en tiempo real son los llamados “sistemas operacionales” ó “sistemas de producción”. Ellos manipulan un gran número de transacciones simples de lectura / escritura y se basan en datos operacionales ó datos actuales del estado de la empresa. Además, juegan un papel fundamental para cualquier organización, pues garantizan la automatización de los procesos y el flujo de la información a través de la misma. El diseño e implementación de los sistemas de producción están dirigidos a cumplir sus objetivos, que consisten en apoyar las funciones diarias de la entidad u organización, brindar servicios de oficina, entregar la información de manera automatizada y asegurar la calidad y la protección de la información. Por otra parte, los sistemas que se utilizan para administrar y controlar la empresa son los llamados “sistemas informacionales”. Ellos se apoyan en los datos que sustentan el proceso de toma de decisiones en una organización y en datos estables en el tiempo (datos periódicos ó históricos). Se diseñan principalmente para ejecutar consultas complejas y de sólo lectura, que involucran perspectivas a partir de dichos datos. Uno de los aspectos fundamentales que distingue los sistemas operacionales y los informacionales es el tipo de procesamiento de la información que realizan, ya sea transaccional o analítico. El “procesamiento transaccional en línea” (OLTP – On Line Transaction Processing), conocido también como procesamiento operacional, sustenta las operaciones diarias de la empresa y describe los requerimientos operacionales del sistema. Este procesamiento se refiere a un tipo de cómputo en el cual el énfasis está en el procesamiento de las transacciones tal y como son recibidas por las aplicaciones. Las aplicaciones de bases de datos con procesamiento transaccional en línea (OLTP) son óptimas en el manejo de los datos que constantemente están cambiando y usualmente tienen un gran número de usuarios que están ejecutando transacciones simultáneamente y que actualizan ó modifican los datos en tiempo real. Aunque los requerimientos individuales por usuarios sobre los datos tienden a referenciar pocos artículos, muchos de estos requerimientos son solicitados al mismo tiempo. De ahí que las principales preocupaciones en este tipo de aplicación sean la concurrencia y la atomicidad. Los controles de la concurrencia en un sistema de bases de datos aseguran que dos usuarios no puedan cambiar o modificar el mismo tipo de dato ó que un usuario no pueda modificar una parte de un dato antes de que otro usuario haya terminado de usarlo. Por otra parte, la atomicidad asegura que todos los pasos relacionados en una transacción se completen satisfactoriamente como un todo. Si algún paso falla, ningún otro paso debe ser completado. Por ejemplo: en un banco, en el proceso de traspaso de una cuenta a otra, si el primer paso (extraer de la primera cuenta) se ejecuta favorablemente, entonces podemos asegurar que el traspaso se ejecutó sin problemas. Los sistemas de bases de datos con procesamiento transaccional deben ser diseñados para promover: una buena colocación de los datos, transacciones que minimicen los bloqueos producto de la concurrencia, los backup en línea, una alta normalización de la base de datos, pocos o ninguno datos históricos ó agregados, un uso cuidadoso de los índices y una óptima configuración del hardware. La buena colocación de los datos se refiere a los embotellamientos ó atascamientos de entrada / salida, que son una gran preocupación para los sistemas OLTP debido al número de usuarios que están modificando datos en la base de datos. Para garantizar esto, se debe determinar el verdadero patrón de acceso a los datos y poner juntos los datos que se acceden con más frecuencia. Se puede disponer, además, del uso de grupos de ficheros y de sistemas RAID (Redundant Array of Independent Disks) para ayudar en este proceso.

Hace referencia a un sistema de almacenamiento que usa múltiples discos duros entre los que distribuye o replica los datos. Dependiendo de su configuración (a la que suele llamarse nivel), los beneficios de un RAID respecto a un único disco son uno o varios de los siguientes: mayor integridad, mayor tolerancia a fallos, mayor throughput (rendimiento) y mayor capacidad.

El concebir transacciones cortas para minimizar los largos períodos de bloqueo, permite mejorar la concurrencia. Por eso, se debe evitar la interacción de usuarios durante las transacciones y, siempre que sea posible, ejecutar procesos atómicos (ejemplo: los llamados “store procedure”) para procesar la transacción completa. Además, el orden en el cual se referencien las tablas dentro de las transacciones puede afectar la concurrencia, por lo que se deben poner referencias a las tablas frecuentemente accedidas al final de la transacción para minimizar la duración del bloqueo de las mismas.

es un programa o procedimiento el cual es almacenado físicamente en una base de datos. Su implementación varía de un manejador de base de datos a otro. La ventaja de un procedimiento almacenado es que al ser ejecutado, en respuesta a una petición de usuario, es ejecutado directamente en el motor de bases de datos, el cual usualmente corre en un servidor separado. Como tal, posee acceso directo a los datos que necesita manipular y sólo necesita enviar sus resultados de regreso al usuario, deshaciéndose de la sobrecarga resultante de comunicar grandes cantidades de datos salientes y entrantes. La alta normalización de la base de datos permite reducir la información redundante tanto como sea posible para incrementar la velocidad de actualización y así perfeccionar la concurrencia. La reducción de datos también perfecciona la velocidad del backup porque se minimizan los datos que serán guardados.

Los sistemas OLTP deben utilizar pocos o ningunos datos históricos o agregados. Los datos que son raramente referenciados pueden ser almacenados en bases de datos separadas, o ponerlos de manera consistente fuera de las tablas actualizadas; o sea, en tablas que contengan sólo datos históricos. Esta reducción de las tablas al mínimo posible perfecciona el tiempo de backup y la ejecución de las consultas. Por otra parte, hay que ser cuidadoso en el uso de índices. Los índices deben ser actualizados cada vez que una fila ó artículo es adicionado o modificado, por lo que se debe evitar la creación y uso indiscriminado de índices sobre aquellas tablas que se actualizan con más frecuencia. También, debemos contar con una configuración óptima de hardware para manipular el gran número de usuarios concurrentes y agilizar los tiempo de respuesta requeridos por un sistema OLTP. Muchas de estas características desarrolladas para soportar bases de datos relacionales que trabajan sobre sistemas de procesamiento transaccional en línea, son aplicables a los sistemas dedicados al análisis. El “procesamiento analítico en línea” (OLAP – On Line Analitical Processing), conocido también como procesamiento para la toma de decisiones, se caracteriza por un análisis dinámico y desde diferentes puntos de vista de los datos consolidados de la empresa. Este procesamiento soporta las actividades de investigación y navegación del usuario terminal, así como la síntesis de la información de la organización a través de vistas personalizadas, análisis históricos y pronósticos. En este sentido los sistemas OLTP son ineficientes, puesto que los datos relacionales no están concebidos para estos propósitos, por lo que las tareas de análisis, pronósticos y toma de decisiones se dificultan; las consultas serían más rápidas y eficientes si estos datos estuvieran almacenados de forma agregada. Sin embargo, los sistemas OLTP constituyen una de las fuentes fundamentales de datos, que pueden ser transformados en datos OLAP y este traslado hacia los sistemas informacionales debe hacerse de forma organizada procurando mejorar las tareas destinadas a las proyecciones futuras y a la toma de decisiones, facilitando también el uso de estos datos en el procesamiento analítico. En este proceso de transformación se contempla la reorganización de los datos OLTP que están almacenados en tablas relacionales, hacia datos OLAP que estarán almacenados en “cubos multidimensionales” ó en “sistemas dimensionales-relacionales” como una variante relacional del modelo multidimensional. Además, esta transformación de datos OLTP a datos OLAP consta de las fases de extracción de los datos del área de procesamiento transaccional, la reconciliación y transformación de los datos y su posterior almacenamiento en el área de procesamiento analítico. En la reconciliación y transformación de los datos hay que resolver las diferencias que pueden aparecer al tratar de unir datos desde diferentes sistemas OLTP a un simple sistema OLAP. Puede requerirse la conversión de diferentes tipos de datos (almacenados en cada sistema OLTP) en un tipo de dato simple (usado en el sistema OLAP). Teniendo en cuenta que los sistemas OLTP contienen todos los detalles transaccionales y que, por lo general, las consultas OLAP necesitan datos sumarizados o agregados, puede ser necesario incluir tablas (ó columnas) por agregación ó excluir aquellas que no sean relevantes. Las aplicaciones de bases de datos para el soporte a la toma de decisiones son óptimas para las consultas de datos, ya que éstos no se modifican; las tablas en esta base están fuertemente indexadas y las filas de datos (artículos) son a menudo preprocesadas y organizadas para soportar los variados tipos de consultas que serán ejecutadas. Debido a que los usuarios no modifican los datos, los problemas de concurrencia y atomicidad no constituyen una preocupación, los datos son modificados o adicionados sólo por períodos y los grandes volúmenes de actualización son hechos fuera de horario, o sea, en el tiempo de mínimo tráfico en la base de datos. De manera general, los sistemas operacionales están destinados a las funciones diarias de la entidad, al manejo de transacciones y a satisfacer servicios de oficina; son sistemas orientados a aplicaciones con un patrón de uso predefinido y un procesamiento repetitivo, influyendo de manera directa con constantes cambios en los datos y trabajando, además con datos detallados y fundamentalmente datos actuales. Podemos decir entonces, que los sistemas relacionales estándar están aptos para el procesamiento de transacciones en línea, pero fallan cuando se utilizan con fines informacionales, o cuando se les toma como herramienta de apoyo para el análisis y la toma de decisiones. Sin embargo, para lograr que exista un buen sistema informacional se necesita de la existencia de un sistema o un conjunto de sistemas operacionales que de forma coherente, nutran este sistema informacional. De ahí que los sistemas que más utilizan las empresas en la actualidad sean los sistemas operacionales y que éstos constituyan la base para los sistemas destinados al análisis y a la toma de decisiones.

**Desventajas de OLTP**** **Arquitectura OLTP/OLAP** OLTP vs DSS
 * Requerimientos OLTP**
 * Ventajas de OLTP**
 * OLTP vs Data Warehouse**
 * Diferencia entre OLTP y OLAP **
 * Video sobre OLTP in english**