В компьютерном программировании , создание, чтение, обновление и удаление ( CRUD ) является программное обеспечение архитектурного стиля в отношении четырех основных операций постоянного хранения . [1] Альтернативные слова иногда используются при определении четырех основных операций CRUD, таких как построение вместо создания , получение вместо чтения или уничтожение или уничтожение вместо удаления . CRUD также иногда используется для описания соглашений о пользовательском интерфейсе, которые облегчают просмотр, поиск и изменениеинформация , часто с использованием компьютерных форм и отчетов . Этот термин, вероятно, был впервые популяризирован Джеймсом Мартином в его книге 1983 года « Управление средой базы данных» . Акроним может быть расширен до CRUDL, чтобы охватывать перечисление больших наборов данных, которые вносят дополнительную сложность, такую как разбиение на страницы, когда наборы данных слишком велики, чтобы их можно было легко хранить в памяти.
Концепция [ править ]
Данные могут быть помещены в место (область) хранилища. Фундаментальной особенностью места хранения является то, что оно имеет читаемый и обновляемый контент (состояние). Эти операции чтения и обновления являются двумя основными операциями с хранилищем и известны как пара загрузка-обновление (LUP). [2]
Прежде чем место хранения можно будет использовать для чтения или обновления, его необходимо создать , выделить и инициализировать с помощью согласованного содержимого. После того, как место хранения было использовано, его необходимо уничтожить , завершить работу и освободить. Эти операции создания и удаления являются двумя другими основными операциями в хранилище.
Вместе они составляют четыре основные операции управления хранилищем (прямое управление содержимым хранилищ пользователями), известные как CRUD: создание , чтение , обновление и удаление . Операции CRUD являются идемпотентными , что означает, что несколько приложений одной и той же операции оказывают такое же влияние на хранилище, как и одно приложение.
Приложения баз данных [ править ]
Аббревиатура CRUD относится ко всем основным операциям, которые реализованы в приложениях реляционных баз данных . Каждая буква в аббревиатуре может отображаться на стандартный оператор языка структурированных запросов (SQL), метод протокола передачи гипертекста (HTTP) (обычно используется для создания RESTful API ) [3] или операцию службы распространения данных (DDS):
CRUD | SQL | HTTP | DDS |
---|---|---|---|
Создайте | ВСТАВЛЯТЬ | ПОМЕЩАТЬ | написать |
читать | ВЫБРАТЬ | ПОЛУЧИТЬ | читать |
Обновить | ОБНОВИТЬ | ПОМЕЩАТЬ | написать |
Удалить | УДАЛИТЬ | УДАЛИТЬ | избавляться |
В HTTP методы GET (чтение), PUT (создание и обновление) и DELETE (удаление) являются операциями CRUD, поскольку они имеют семантику управления хранилищем, что означает, что они позволяют пользовательским агентам напрямую манипулировать состояниями целевых ресурсов . С другой стороны, метод POST - это не операция CRUD, а операция процесса, которая имеет семантику, зависящую от целевого ресурса, за исключением семантики управления хранилищем, поэтому он не позволяет пользовательским агентам напрямую манипулировать состояниями целевых ресурсов. [4] [5] В отличие от операций CRUD, метод POST не обязательно идемпотентен.
Хотя реляционная база данных обеспечивает общий уровень сохраняемости в программных приложениях, существует множество других уровней сохраняемости. Функциональность CRUD может быть реализована, например, с объектными базами данных , базами данных XML , плоскими текстовыми файлами или пользовательскими форматами файлов. Некоторые системы (большие данные) не реализуют UPDATE, но имеют только INSERT с меткой времени (ведение журнала), фактически сохраняя новую версию объекта. Как следствие, у них также нет транзакций, и они могут потерять согласованность .
Пользовательский интерфейс [ править ]
В этом разделе есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалить эти сообщения-шаблоны ) ( Узнайте, как и когда удалить этот шаблон сообщения )
|
CRUD также актуален на уровне пользовательского интерфейса большинства приложений. Например, в программном обеспечении адресной книги основной единицей хранения является запись отдельного контакта . Как минимум, программное обеспечение должно позволять пользователю
- создавать или добавлять новые записи;
- читать, извлекать, искать или просматривать существующие записи;
- обновлять или редактировать существующие записи;
- удалить, деактивировать или удалить существующие записи.
Без хотя бы этих четырех операций программное обеспечение нельзя считать законченным. Поскольку эти операции настолько фундаментальны, они часто документируются и описываются под одним всеобъемлющим заголовком, например, «управление контактами», «управление контентом» или «обслуживание контактов» (или «управление документами» в целом, в зависимости от базовой единицы хранения для конкретное приложение).
Другие варианты [ править ]
Другие варианты CRUD включают:
- ХЛЕБ (просматривать, читать, редактировать, добавлять, удалять) [6]
- ДЕЙВ (удалить, добавить, просмотреть, отредактировать) [7]
- CRAP (создать, воспроизвести, добавить, обработать) [8]
См. Также [ править ]
- Передача репрезентативного состояния (REST)
- Шаблон активной записи
- Язык манипулирования данными
- Ввод, вывод
- КИСЛОТА
- Запрос по примеру
- Разделение команд и запросов
- Scaffold (программирование)
Ссылки [ править ]
- ^ Мартин, Джеймс (1983). Управление средой базы данных . Энглвуд Клиффс, Нью-Джерси: Прентис-Холл. п. 381. ISBN. 0-135-50582-8.
- Перейти ↑ Strachey, Christopher (2000). «Фундаментальные концепции языков программирования». Вычисление высшего порядка и символическое вычисление . Kluwer Academic Publishers. 13 (1/2): 11–49. CiteSeerX 10.1.1.332.3161 . DOI : 10,1023 / А: 1010000313106 . ISSN 1388-3690 .
- ^ Том Спенсер (2014-09-16). «Никакого ОТДЫХА для уиппета» . Проверено 2 апреля 2021 .
- ↑ Филдинг, Рой (июнь 2014 г.). «Протокол передачи гипертекста (HTTP / 1.1): семантика и содержание, раздел 4» . IETF . Инженерная группа Интернета (IETF). RFC 7231 . Проверено 14 февраля 2018 .
- ^ Рой Т. Филдинг (2009-03-20). «Можно использовать POST» . roy.gbiv.com . Проверено 14 апреля 2020 .
- ^ Пол М. Джонс (2008). «ХЛЕБ, а не CRUD» .
- ^ МакГо, Джеймс (21 июня 2010). Начало работы с Django E-Commerce . п. 41. ISBN 9781430225362.
- ^ «CRAP и CRUD: от базы данных к Datacloud - Direct2DellEMC» . Direct2DellEMC . 2012-11-13 . Проверено 30 января 2018 .