Создание, чтение, обновление и удаление
В компьютерном программировании создание , чтение, обновление и удаление ( CRUD ) являются четырьмя основными операциями постоянного хранилища . [1] CRUD также иногда используется для описания соглашений пользовательского интерфейса , которые облегчают просмотр, поиск и изменение информации с помощью компьютерных форм и отчетов .
История
[ редактировать ]Этот термин, вероятно, был впервые популяризирован [ нужна ссылка ] Джеймс Мартин в своей книге 1983 года «Управление средой баз данных» .
Концептуальный
[ редактировать ]Данные могут быть помещены в определенное место/область механизма хранения.
- Фундаментальной особенностью места хранения является то, что его содержимое доступно как для чтения , так и для обновления .
- Прежде чем место хранения можно будет прочитать или обновить, его необходимо создать ; который выделяется и инициализируется с содержимым.
- На каком-то более позднем этапе может потребоваться уничтожение места хранения ; который финализирован и освобожден.
Вместе эти четыре операции составляют основные операции управления хранилищем, известные как CRUD: создание , чтение , обновление и удаление .
Варианты использования
[ редактировать ]Базы данных
[ редактировать ]Аббревиатура CRUD относится к основным операциям, которые реализуются базами данных . Каждую букву в аббревиатуре можно сопоставить стандартному оператору языка структурированных запросов (SQL) . [2]
CRUD | SQL |
---|---|
Создавать | ВСТАВЛЯТЬ |
Читать | ВЫБИРАТЬ |
Обновлять | ОБНОВЛЯТЬ |
Удалить | УДАЛИТЬ |
Хотя реляционные базы данных являются распространенным уровнем сохранения данных в программных приложениях, существует множество других уровней сохранения. Функциональность CRUD может быть реализована, например, с помощью баз данных документов , объектных баз данных , баз данных XML , текстовых файлов или двоичных файлов.
Некоторые системы больших данных не реализуют UPDATE, а имеют только INSERT (ведение журнала) с отметкой времени, каждый раз сохраняя совершенно новую версию объекта.
RESTful API
[ редактировать ]Аббревиатура CRUD также появляется при обсуждении RESTful API . Каждая буква в аббревиатуре может быть сопоставлена с методом протокола передачи гипертекста (HTTP) :
CRUD | HTTP |
---|---|
Создавать | POST, PUT, если у нас есть `id` или `uuid` |
Читать | ПОЛУЧАТЬ |
Обновлять | PUT для замены, PATCH для изменения |
Удалить | УДАЛИТЬ |
В HTTP методы GET (чтение), PUT (создание и обновление), POST (создание — если у нас нет `id` или `uuid`) и DELETE (удаление) являются операциями CRUD, поскольку они имеют семантику управления хранилищем. Это означает, что они позволяют пользовательским агентам напрямую манипулировать состояниями целевых ресурсов . [3] С другой стороны, метод POST представляет собой операцию процесса, имеющую семантику, специфичную для целевого ресурса, которая обычно выходит за рамки операций CRUD. [4]
Пользовательский интерфейс
[ редактировать ]![]() | Эта статья , возможно, содержит оригинальные исследования . ( Ноябрь 2018 г. ) |
CRUD также актуален на уровне пользовательского интерфейса большинства приложений. Например, в программном обеспечении адресной книги основной единицей хранения является отдельная запись контакта . Как минимум, программное обеспечение должно позволять пользователю: [5]
- Создайте или добавьте новые записи
- Чтение , извлечение, поиск или просмотр существующих записей
- Обновить или отредактировать существующие записи
- Удалить , деактивировать или удалить существующие записи
Поскольку эти операции настолько фундаментальны, они часто документируются и описываются под одним всеобъемлющим заголовком, например «управление контактами» или «управление документами» в целом. [ нужна ссылка ]
Другие варианты
[ редактировать ]Другие варианты CRUD включают:
- ABCD (добавление, просмотр, изменение, удаление)
- CRUDL (создание, чтение, обновление, удаление, список)
- ХЛЕБ (просматривать, читать, редактировать, добавлять, удалять) [6]
- ДЭЙВ (удалить, добавить, просмотреть, отредактировать) [7]
- CRAP (создание, репликация, добавление, обработка) [8]
См. также
[ редактировать ]- Представительская государственная передача (REST)
- Шаблон активной записи
- Язык манипулирования данными
- Ввод/вывод
- КИСЛОТА
- Запрос по примеру
- Разделение команд и запросов
- Скаффолд (программирование)
Ссылки
[ редактировать ]- ^ Мартин, Джеймс (1983). Управление средой базы данных . Энглвуд Клиффс, Нью-Джерси: Прентис-Холл. п. 381. ИСБН 0-135-50582-8 .
- ^ Марьям Сулемани (7 апреля 2021 г.). «Объяснение операций CRUD: создание, чтение, обновление, удаление» . Проверено 14 декабря 2021 г.
- ^ Филдинг, Рой (июнь 2014 г.). «Протокол передачи гипертекста (HTTP/1.1): семантика и содержимое, раздел 4» . IETF . Целевая группа инженеров Интернета (IETF). РФК 7231 . Проверено 14 февраля 2018 г.
- ^ Рой Т. Филдинг (20 марта 2009 г.). «Можно использовать POST» . roy.gbiv.com . Проверено 14 апреля 2020 г.
POST становится проблемой только тогда, когда он используется в ситуации, для которой идеально подходит какой-либо другой метод: например, получение информации, которая должна быть представлением некоторого ресурса (GET), полная замена представления (PUT) или любой из другие стандартизированные методы, которые сообщают посредникам нечто более ценное, чем «это может что-то изменить». Другие методы более ценны для посредников, поскольку они говорят о том, как можно автоматически обрабатывать сбои и как промежуточные кэши могут оптимизировать их поведение. POST не обладает этими характеристиками, но это не значит, что мы можем жить без него. POST служит многим полезным целям в HTTP, включая общую цель: «это действие не стоит стандартизировать».
- ^ Канн, Чарльз. Программирование для Интернета — От супа до орехов — Реализация полной веб-страницы ГИС . Геттисбергский колледж. стр. 6.1 Интерфейс CRUD.
- ^ Пол М. Джонс (2008). «ХЛЕБ, а не ХЛЕБ» .
- ^ Макгоу, Джеймс (21 июня 2010 г.). Начало электронной коммерции Django . п. 41. ИСБН 9781430225362 .
- ^ «CRAP и CRUD: от базы данных к облаку данных — Direct2DellEMC» . Директ2DellEMC . 13 ноября 2012 г. Проверено 30 января 2018 г.