Operaciones básicas de bases de datos
5.3 Operaciones básicas de bases de datos
Las operaciones fundamentales que se realizan en cualquier base de datos son sorprendentemente pocas: crear, leer, actualizar y eliminar datos. Estas cuatro operaciones, conocidas en inglés como CRUD (Create, Read, Update, Delete), forman la base de todas las interacciones con bases de datos. Aunque parecen simples en concepto, su implementación correcta es compleja. Este apartado profundiza en cada una de estas operaciones y cómo se ejecutan en el contexto de un sistema de gestión de información.
Operación de creación (Create)
La operación de creación inserta nuevos registros en la base de datos. En una base de datos relacional, esto significa insertar una nueva fila en una tabla con valores para todos los campos requeridos. La creación debe validar que los datos cumplan con los requisitos de tipo, rango y restricciones de integridad.
Cuando se crea un registro, la base de datos típicamente asigna automáticamente una clave primaria única (por ejemplo, un número incremental) que identificará ese registro para siempre. Algunos sistemas también generan automáticamente metadatos como la fecha y hora de creación o el usuario que creó el registro.
Una consideración importante es el manejo de transacciones. Si la creación de un registro en una tabla requiere crear registros relacionados en otras tablas, estos deben ocurrir como una unidad. Si algo falla a mitad del proceso, toda la operación debe revertirse, evitando datos inconsistentes.
Operación de lectura (Read)
La lectura es el corazón de cualquier sistema de información. Permite recuperar datos existentes de la base de datos. Las operaciones de lectura pueden ser simples (obtener un registro específico por su clave primaria) o complejas (obtener todos los registros que cumplan múltiples criterios, ordenados, agrupados y limitados a un número específico).
Las operaciones de lectura deben ser eficientes. Para esto, las bases de datos implementan índices, estructuras especiales que permiten buscar datos rápidamente sin examinar cada fila. Sin índices, buscar un nombre en una tabla de un millón de clientes podría requerir examinar cada fila; con un índice en el campo nombre, la búsqueda es casi instantánea.
Otra consideración es el filtrado y ordenamiento. Los datos recuperados pueden filtrarse (solo empleados con salario superior a 30.000 euros), ordenarse (alfabéticamente, por fecha, por cantidad), y limitarse (traer solo los primeros 10 resultados). El servidor de base de datos realiza esta lógica eficientemente, en lugar de traer todos los datos y procesarlos en la aplicación.
Operación de actualización (Update)
La actualización modifica datos existentes. Como con la creación, es importante implementar validación para asegurar que los nuevos valores cumplen con los requisitos. También es importante mantener control de auditoría, registrando quién realizó la actualización, cuándo y qué cambió específicamente.
Las actualizaciones pueden ser selectivas (actualizar solo los registros que cumplen ciertos criterios) o masivas (actualizar muchos registros de una vez, como cambiar el estado de todos los pedidos de hace más de 30 días). Las actualizaciones masivas requieren cuidado especial para evitar cambios no intencionados.
La gestión de conflictos de concurrencia es también importante. Si dos usuarios intentan modificar el mismo registro simultáneamente, ¿cuál cambio se mantiene? Las bases de datos implementan mecanismos como bloqueos o versionado para resolver estos conflictos.
Operación de eliminación (Delete)
La eliminación remueve registros de la base de datos. Como se mencionó en el apartado anterior, en sistemas empresariales serios se prefiere el borrado lógico (marcar un registro como inactivo/eliminado) sobre el borrado físico (eliminar completamente el registro).
Las eliminaciones también deben considerar integridad referencial. Si un cliente tiene pedidos asociados, ¿se puede eliminar el cliente? Las opciones son: prohibir la eliminación si existen referencias, eliminar en cascada (eliminar cliente y todos sus pedidos) o desvincular (eliminar cliente pero mantener pedidos sin cliente asignado). La elección depende de la lógica de negocio.
Combinaciones de operaciones: Las transacciones
En muchos casos, una operación de negocio requiere múltiples operaciones de base de datos. Una transacción es una secuencia de operaciones que debe ejecutarse como una unidad indivisible. O todas las operaciones se ejecutan exitosamente, o ninguna se ejecuta (el concepto ACID: Atomicidad, Consistencia, Aislamiento, Durabilidad).
Por ejemplo, cuando un cliente realiza una compra en una tienda online, la transacción podría incluir: crear un registro de pedido, crear registros de detalles del pedido, reducir el inventario de cada producto vendido y registrar el movimiento en la cuenta de ventas. Si algo falla (por ejemplo, falta inventario), toda la transacción se revierte.
Ejemplo práctico: Operaciones CRUD en un sistema de inventario
Un sistema de inventario realiza constantemente operaciones CRUD. La creación ocurre cuando se registra un nuevo producto: se crea un registro con nombre, descripción, cantidad inicial y precio. La lectura ocurre cuando el gerente busca productos por categoría o revisa el inventario actual. La actualización ocurre cuando llega un nuevo lote de productos (aumenta la cantidad) o cuando cambia el precio. La eliminación ocurre cuando un producto se discontinúa (borrado lógico, marcándolo como "discontinuado").
Consideremos una venta: el cliente compra 3 unidades del producto X. Esto implica una transacción: leer la cantidad actual (100 unidades), actualizar a 97 unidades, crear un registro de venta. Si el cliente quiere 500 unidades pero solo hay 100, la transacción falla sin afectar el inventario.
Ideas clave
- Las operaciones CRUD (Create, Read, Update, Delete) son las cuatro operaciones fundamentales en cualquier base de datos
- La creación inserta nuevos registros con asignación automática de claves primarias y debe validar integridad de datos
- La lectura debe ser eficiente, implementando índices y permitiendo filtrado y ordenamiento en el servidor
- La actualización requiere control de auditoría y manejo de conflictos de concurrencia cuando múltiples usuarios editan simultáneamente
- La eliminación debe preferir borrado lógico sobre físico y considerar integridad referencial con otros registros
- Las transacciones agrupan múltiples operaciones en unidades indivisibles que se ejecutan completamente o se revierten completamente