En programación informática , crear, leer, actualizar y eliminar ( CRUD ) son las cuatro operaciones básicas del almacenamiento persistente . [1] CRUD también se utiliza a veces para describir las convenciones de la interfaz de usuario que facilitan la visualización, la búsqueda y el cambio de información mediante formularios e informes basados en computadora .
Es probable que el término haya sido popularizado por primera vez [ cita requerida ] por James Martin en su libro de 1983 Managing the data-base environment .
Los datos se pueden colocar en una ubicación/área de un mecanismo de almacenamiento.
Juntas, estas cuatro operaciones conforman las operaciones básicas de gestión de almacenamiento conocidas como CRUD: Crear , Leer , Actualizar y Eliminar .
El acrónimo CRUD hace referencia a las principales operaciones que implementan las bases de datos . Cada letra del acrónimo se puede asignar a una declaración estándar del lenguaje de consulta estructurado (SQL) . [2]
Aunque las bases de datos relacionales son una capa de persistencia común en las aplicaciones de software, existen muchas otras capas de persistencia. La funcionalidad CRUD se puede implementar, por ejemplo, con bases de datos de documentos , bases de datos de objetos , bases de datos XML , archivos de texto o archivos binarios.
Algunos sistemas de big data no implementan UPDATE, sino que solo tienen un INSERT (registro) con marca de tiempo, que almacena una versión completamente nueva del objeto cada vez.
El acrónimo CRUD también aparece en la discusión sobre las API RESTful . Cada letra del acrónimo puede asignarse a un método del Protocolo de transferencia de hipertexto (HTTP) :
En HTTP, los métodos GET (leer), PUT (crear y actualizar), POST (crear - si no tenemos `id` o `uuid`) y DELETE (eliminar) son operaciones CRUD ya que tienen semántica de gestión de almacenamiento, lo que significa que permiten a los agentes de usuario manipular directamente los estados de los recursos de destino . [3] El método POST , por otro lado, es una operación de proceso que tiene semántica específica de los recursos de destino que normalmente excede el alcance de las operaciones CRUD. [4]
El CRUD también es relevante en el nivel de interfaz de usuario de la mayoría de las aplicaciones. Por ejemplo, en el software de libreta de direcciones, la unidad de almacenamiento básica es una entrada de contacto individual . Como mínimo, el software debe permitir al usuario: [5]
Debido a que estas operaciones son tan fundamentales, a menudo se documentan y describen bajo un título general como "gestión de contactos" o "gestión de documentos" en general. [ cita requerida ]
Otras variaciones de CRUD incluyen:
POST solo se convierte en un problema cuando se usa en una situación para la que algún otro método es ideal: por ejemplo, la recuperación de información que debería ser una representación de algún recurso (GET), el reemplazo completo de una representación (PUT) o cualquiera de los otros métodos estandarizados que les dicen a los intermediarios algo más valioso que "esto puede cambiar algo". Los otros métodos son más valiosos para los intermediarios porque dicen algo sobre cómo se pueden manejar automáticamente las fallas y cómo los cachés intermedios pueden optimizar su comportamiento. POST no tiene esas características, pero eso no significa que podamos vivir sin él. POST cumple muchos propósitos útiles en HTTP, incluido el propósito general de "no vale la pena estandarizar esta acción".