Proceso de transacciones en línea frente a la ayuda a la toma de decisiones
Muchas aplicaciones pertenecen a una de estas dos categorías de aplicaciones de base de datos:
- Proceso de transacciones en línea (OLTP, Online Transaction Processing)
- Ayuda a la toma de decisiones
Las características de estos tipos de aplicaciones tienen una influencia decisiva en las consideraciones del diseño de una base de datos.
Proceso de transacciones en línea
Las aplicaciones de base de datos de proceso de transacciones en línea son perfectas para administrar datos que cambian con frecuencia. Estas aplicaciones cuentan normalmente con muchos usuarios que realizan transacciones al mismo tiempo que cambian datos en tiempo real. Aunque las solicitudes de datos realizadas individualmente por los usuarios tienden a hacer referencia a pocos registros, muchas de estas peticiones se producen al mismo tiempo. Ejemplos corrientes de estos tipos de bases de datos son los sistemas de reserva de billetes y los de transacciones bancarias. Las principales preocupaciones en este tipo de aplicaciones son la simultaneidad y la atomicidad.
Los controles de simultaneidad de un sistema de base de datos aseguran que dos usuarios no puedan cambiar los mismos datos, o que un usuario no pueda cambiar un dato mientras otro usuario lo esté utilizando. Por ejemplo, si se pone en contacto con una agencia de viajes para reservar la última plaza disponible en un vuelo y el vendedor en cuestión comienza el proceso para reservar la plaza en su nombre, no debe ser posible que otro vendedor pueda informar a otro cliente de que la plaza está disponible.
La atomicidad garantiza que todos los pasos de una transacción se realicen correctamente como un grupo. Si se produce un error en algún paso, no se realizarán los pasos restantes. Por ejemplo, una transacción bancaria puede componerse de dos pasos: un cargo a su cuenta corriente y un ingreso en su cuenta de ahorro. Si el paso en el que se realiza el cargo en la cuenta corriente se cumple satisfactoriamente, deseará asegurarse de que la misma cantidad se ingresa en su cuenta de ahorro o se reintegra a la cuenta corriente.
Consideraciones acerca del diseño de procesos de transacciones en línea
Las bases de datos de proceso de transacciones deben diseñarse de manera que promuevan lo siguiente:
- Una ubicación correcta de los datos
Los puntos de congestión de E/S son motivo de especial preocupación cuando se diseñan sistemas OLTP, debido al número de usuarios que modifican datos de la base de datos. Al diseñar una base de datos, debe determinar los patrones de acceso a los datos más probables y agrupar los datos de acceso más frecuente. Para facilitar la tarea, utilice grupos de archivos y sistemas RAID (matriz redundante de discos independientes). - Transacciones cortas para reducir los bloqueos de larga duración y mejorar la simultaneidad
Evite la interacción con los usuarios en las transacciones. Siempre que sea posible, ejecute un solo procedimiento almacenado para procesar toda la transacción. El orden en el que haga referencia a las tablas en las transacciones puede afectar a la simultaneidad. Coloque referencias a las tablas de acceso más frecuente al final de la transacción para reducir al mínimo la duración de los bloqueos. - Copia de seguridad en línea
Los sistemas OLTP se suelen caracterizar por la ejecución continua de operaciones en las que el tiempo de inactividad es mínimo. Es decir, funcionan 24 horas al día los 7 días de la semana. Aunque SQL Server 2005 Database Engine (Motor de base de datos de SQL Server 2005) puede realizar una copia de seguridad de una base de datos mientras se utiliza, es recomendable planear el proceso de copia de seguridad de manera que se realice en los momentos de menor actividad para que las operaciones de los usuarios no se vean afectadas. - Alto grado de normalización de la base de datos
Reduzca la información redundante con el fin de acelerar las actualizaciones y, por tanto, mejorar la simultaneidad. La reducción de los datos también agiliza la realización de copias de seguridad, ya que es menor la cantidad de datos que es necesario copiar. - Pocos (o ningún) dato histórico o agregado
Los datos a los que raramente se hace referencia pueden archivarse en bases de datos independientes o bien desplazarse desde las tablas que se actualizan a menudo a las que sólo contienen datos históricos. De este modo, el tamaño de las tablas se mantiene reducido, con lo que mejoran los tiempos de copia de seguridad y el rendimiento de las consultas. - Dosificar los índices
Deben actualizarse cada vez que se agrega o se modifica una fila. Para evitar una indización excesiva de tablas con un gran número de actualizaciones, limite el alcance de los índices. Utilice el Asistente para la optimización de motor de base de datos para diseñar sus índices. - Configuración de hardware óptima para controlar el gran número de usuarios con acceso simultáneo y ofrecer la rapidez en los tiempos de respuesta que necesita un sistema OLTP
Ayuda a la toma de decisiones
Las aplicaciones de base de datos de ayuda a la toma de decisiones son óptimas para las consultas de datos que no impliquen cambios en los mismos. Por ejemplo, una compañía puede resumir periódicamente sus ventas por fecha, región comercial o producto, y almacenar esa información en otra base de datos que será utilizada por los directivos para realizar un análisis. Para tomar decisiones comerciales, los usuarios necesitan determinar rápidamente la evolución de las ventas mediante consultas de los datos a partir de diversos criterios. Sin embargo, no necesitan cambiar esos datos. Las tablas de una base de datos de ayuda a la toma de decisiones se indizan a menudo, y los datos sin formato suelen ser previamente procesados y organizados para los distintos tipos de consultas que se realizan. Dado que los usuarios no cambian los datos, la simultaneidad y la atomicidad no suponen motivos de preocupación; los datos sólo se cambian mediante actualizaciones masivas que se realizan periódicamente en horas de escasa actividad de la base de datos y fuera del horario laboral.
Consideraciones acerca del diseño de toma de decisiones
Las bases de datos de sistemas de ayuda a la toma de decisiones (DSS, Decision Support System) deben diseñarse para promover lo siguiente:
- Una intensa indización
Los sistemas de ayuda a la toma de decisiones exigen pocos requisitos para la actualización, pero suelen contener un gran volumen de datos. Utilice un gran número de índices para mejorar el rendimiento de las consultas. - La eliminación de la normalización de la base de datos
Introduzca datos resumidos o previamente agregados para satisfacer los requisitos de consulta más comunes y mejorar los tiempos de respuesta de las consultas. - Utilice un esquema de estrella o un esquema radial ramificado para organizar los datos dentro de la base de datos.