En programación de computadoras , crear, leer, actualizar y eliminar ( CRUD ) son las cuatro operaciones básicas del almacenamiento persistente . [1] A veces se utilizan palabras alternativas al definir las cuatro operaciones básicas de CRUD, como construir en lugar de crear , recuperar en lugar de leer o destruir o destruir en lugar de eliminar . 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 , a menudo utilizandoformularios e informes . El término probablemente fue popularizado por primera vez por James Martin en su libro de 1983 Managing the Data-base environment . El acrónimo puede extenderse a CRUDL para cubrir la lista de grandes conjuntos de datos que aportan complejidad adicional, como la paginación, cuando los conjuntos de datos son demasiado grandes para guardarlos fácilmente en la memoria.
Concepto
Los datos se pueden colocar en una ubicación (área) de un almacenamiento. La característica fundamental de una ubicación de almacenamiento es que tiene un contenido (estado) legible y actualizable . Estas operaciones de lectura y actualización son las dos operaciones básicas en un almacenamiento y se conocen como par de carga-actualización (LUP). [2]
Antes de que una ubicación de almacenamiento se pueda utilizar para leer o actualizar, es necesario crearla , asignarla e inicializarla con un contenido coherente. Una vez que se ha utilizado una ubicación de almacenamiento, es necesario destruirla , finalizarla y desasignarla. Estas operaciones de creación y eliminación son las otras dos operaciones básicas en un almacenamiento.
Juntos componen las cuatro operaciones básicas de la gestión del almacenamiento (manipulación directa del contenido de las ubicaciones de almacenamiento por parte de los usuarios) conocidas como CRUD: crear , leer , actualizar y eliminar . Las operaciones CRUD son idempotentes , lo que significa que varias aplicaciones de la misma operación tienen el mismo efecto en un almacenamiento que una sola aplicación.
Aplicaciones de base de datos
El acrónimo CRUD se refiere a todas las operaciones principales que se implementan en aplicaciones de bases de datos relacionales . Cada letra del acrónimo se puede asignar a una declaración estándar de Lenguaje de consulta estructurado (SQL), un método de Protocolo de transferencia de hipertexto (HTTP) (esto se usa generalmente para construir API RESTful ) [3] o una operación de Servicio de distribución de datos (DDS):
CRUD | SQL | HTTP | DDS |
---|---|---|---|
crear | INSERTAR | PONER | escribir |
leer | SELECCIONE | OBTENER | leer |
actualizar | ACTUALIZAR | PONER | escribir |
Eliminar | ELIMINAR | ELIMINAR | disponer |
En HTTP, los métodos GET (leer), PUT (crear y actualizar) y DELETE (eliminar) son operaciones CRUD, ya que tienen semántica de administración de almacenamiento, lo que significa que permiten que los agentes de usuario manipulen directamente los estados de los recursos de destino . [4] El método POST , por otro lado, es una operación de proceso que tiene una semántica específica del recurso de destino que excluye la semántica de las operaciones CRUD. [5] Y contrariamente a las operaciones CRUD, el método POST no es necesariamente idempotente.
Aunque una base de datos relacional proporciona 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 objetos , bases de datos XML , archivos de texto plano o formatos de archivo personalizados. Algunos sistemas (de big data) no implementan ACTUALIZAR, sino que solo tienen un INSERT (registro en diario) con marca de tiempo, que en realidad almacena una nueva versión del objeto. Como consecuencia, tampoco tienen transacciones y pueden perder la coherencia .
Interfaz de usuario
CRUD también es relevante a nivel de interfaz de usuario de la mayoría de las aplicaciones. Por ejemplo, en el software de la libreta de direcciones , la unidad de almacenamiento básica es una entrada de contacto individual . Como mínimo, el software debe permitir al usuario
- crear o agregar nuevas entradas;
- leer, recuperar, buscar o ver entradas existentes;
- actualizar o editar entradas existentes;
- eliminar, desactivar o eliminar entradas existentes.
Sin al menos estas cuatro operaciones, el software no puede considerarse completo. Debido a que estas operaciones son tan fundamentales, a menudo se documentan y describen bajo un título completo, como "administración de contactos", "administración de contenido" o "mantenimiento de contactos" (o "administración de documentos" en general, según la unidad de almacenamiento básica la aplicación particular).
Otras variaciones
Otras variaciones de CRUD incluyen:
Ver también
- Transferencia de estado representacional (REST)
- Patrón de registro activo
- Lenguaje de manipulación de datos
- De entrada y salida
- ÁCIDO
- Consulta por ejemplo
- Separación entre comandos y consultas
- Andamio (programación)
Referencias
- ^ Martin, James (1983). Gestión del entorno de la base de datos . Acantilados de Englewood, Nueva Jersey: Prentice-Hall. pag. 381. ISBN 0-135-50582-8.
- ^ Strachey, Christopher (2000). "Conceptos fundamentales en lenguajes de programación". Computación simbólica y de orden superior . Editores académicos de Kluwer. 13 (1/2): 11–49. CiteSeerX 10.1.1.332.3161 . doi : 10.1023 / A: 1010000313106 . ISSN 1388-3690 .
- ^ Tom Spencer (16 de septiembre de 2014). "No hay DESCANSO para el whippet" . Consultado el 2 de abril de 2021 .
- ^ Fielding, Roy (junio de 2014). "Protocolo de transferencia de hipertexto (HTTP / 1.1): Semántica y contenido, Sección 4" . IETF . Grupo de trabajo de ingeniería de Internet (IETF). RFC 7231 . Consultado el 14 de febrero de 2018 .
- ^ Roy T. Fielding (20 de marzo de 2009). "Está bien usar POST" . roy.gbiv.com . Consultado el 14 de abril de 2020 .
POST solo se convierte en un problema cuando se usa en una situación para la cual algún otro método es ideal: por ejemplo, recuperación de información que debería ser una representación de algún recurso (GET), 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 las fallas pueden manejarse automáticamente 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 tiene muchos propósitos útiles en HTTP, incluido el propósito general de "no vale la pena estandarizar esta acción".
- ^ Paul M. Jones (2008). "PAN, no CRUDO" .
- ^ McGaw, James (21 de junio de 2010). Comenzando con Django E-Commerce . pag. 41. ISBN 9781430225362.
- ^ "CRAP y CRUD: de la base de datos a la nube de datos - Direct2DellEMC" . Direct2DellEMC . 2012-11-13 . Consultado el 30 de enero de 2018 .