В компьютерном программировании создание , чтение, обновление и удаление ( CRUD ) являются четырьмя основными операциями постоянного хранения . [1] CRUD также иногда используется для описания соглашений пользовательского интерфейса , которые облегчают просмотр, поиск и изменение информации с использованием компьютерных форм и отчетов .
Термин, вероятно, впервые популяризировал [ требуется ссылка ] Джеймс Мартин в своей книге 1983 года «Управление средой баз данных» .
Данные могут быть помещены в определенное место/область механизма хранения.
Вместе эти четыре операции составляют основные операции управления хранилищем, известные как CRUD: создание , чтение , обновление и удаление .
Аббревиатура CRUD относится к основным операциям, которые реализуются базами данных . Каждая буква в аббревиатуре может быть сопоставлена со стандартным оператором языка структурированных запросов (SQL) . [2]
Хотя реляционные базы данных являются общим слоем сохранения в программных приложениях, существует множество других слоев сохранения. Например, функциональность CRUD может быть реализована с помощью баз данных документов , объектных баз данных , баз данных XML , текстовых файлов или двоичных файлов.
Некоторые системы больших данных не реализуют UPDATE, а имеют только INSERT с меткой времени (журналирование), каждый раз сохраняя совершенно новую версию объекта.
Аббревиатура CRUD также появляется в обсуждении RESTful API . Каждая буква в аббревиатуре может быть сопоставлена с методом протокола передачи гипертекста (HTTP) :
В HTTP методы GET (чтение), PUT (создание и обновление), POST (создание - если у нас нет `id` или `uuid`) и DELETE (удаление) являются операциями CRUD, поскольку они имеют семантику управления хранилищем, что означает, что они позволяют агентам пользователей напрямую манипулировать состояниями целевых ресурсов . [3] Метод POST , с другой стороны, является операцией процесса, которая имеет семантику, специфичную для целевого ресурса, которая обычно выходит за рамки операций CRUD. [4]
CRUD также имеет значение на уровне пользовательского интерфейса большинства приложений. Например, в программном обеспечении адресной книги базовая единица хранения — это отдельная запись контакта . Как минимум, программное обеспечение должно позволять пользователю: [5]
Поскольку эти операции являются настолько фундаментальными, они часто документируются и описываются под одним всеобъемлющим заголовком, например, «управление контактами» или «управление документами» в целом. [ необходима цитата ]
Другие варианты CRUD включают в себя:
POST становится проблемой только тогда, когда он используется в ситуации, для которой идеально подходит какой-либо другой метод: например, извлечение информации, которая должна быть представлением некоторого ресурса (GET), полная замена представления (PUT) или любой другой стандартизированный метод, который сообщает посредникам что-то более ценное, чем "это может что-то изменить". Другие методы более ценны для посредников, потому что они говорят что-то о том, как сбои могут быть автоматически обработаны и как промежуточные кэши могут оптимизировать свое поведение. POST не обладает этими характеристиками, но это не значит, что мы можем жить без него. POST служит многим полезным целям в HTTP, включая общую цель "это действие не стоит стандартизировать".