Content deleted Content added
fixed typo Tags: Reverted possibly inaccurate edit summary references removed Mobile edit Mobile web edit |
ClueBot NG (talk | contribs) m Reverting possible vandalism by 93.148.240.234 to version by TurboSuperA+. Report False Positive? Thanks, ClueBot NG. (4405898) (Bot) |
||
(36 intermediate revisions by 29 users not shown) | |||
Line 1:
{{Short description|Basic operations of a computer database}}
{{Redirect|CRUD|other uses|Crud
In [[computer programming]], '''create, read, update, and delete''' ('''CRUD''') are the four basic operations (actions) of [[persistent storage]].<ref name
== History ==
The term ''CRUD'' was likely first popularized in 1983<ref>{{cite book |last1=Martin |first1=James |title=Managing the data-base environment |date=1983 |publisher=Prentice-Hall |___location=Englewood Cliffs, New Jersey |isbn=0135505828 |page=381 |url=https://archive.org/details/managingdatabase00mart/page/381}}</ref> by [[James Martin (author)|James Martin]] in his book ''Managing the data-base environment''.
== Conceptual ==
Data can be put in a ''___location/area'' of a storage mechanism.
* The fundamental feature of a storage ___location is that its ''content'' is both ''readable'' and ''updatable''.
Line 12 ⟶ 15:
Together these four operations make up the basic operations of storage management known as CRUD: ''Create'', ''Read'', ''Update'' and ''Delete''.
==
=== Databases ===
The acronym CRUD refers to the major operations which are implemented by [[database]]s. Each letter in the acronym can be mapped to a standard [[SQL|Structured Query Language (SQL)]] statement.<ref>{{cite web|url=https://www.educative.io/blog/crud-operations|title=CRUD operations explained: Create, read, update, delete|author=Maryam Sulemani|date=7 April 2021|access-date=14 December 2021}}</ref>
Line 33 ⟶ 37:
|}
Although [[relational database]]s are a common [[persistence layer]] in software applications, numerous other persistence layers exist. CRUD functionality can for example be implemented with [[
=== RESTful APIs ===
The acronym CRUD also appears in the discussion of [[Representational state transfer|RESTful APIs]]. Each letter in the acronym may be mapped to a [[HTTP method|Hypertext Transfer Protocol (HTTP) method]]:
Line 47 ⟶ 51:
|-
| Create
| [[Hypertext Transfer Protocol#Request methods|POST, PUT]] if we don't have `id` or `uuid`<!-- Do not replace with POST which is not a CRUD operation (cf. below). -->
|- <!-- POST should be added.
POST is a CRUD operation in the same way as SQL INSERT.
Line 60 ⟶ 64:
|-
| Update
| [[Hypertext Transfer Protocol#Request methods|PUT]] to replace, [[Hypertext Transfer Protocol#Request methods|PATCH]] to modify
|-
| Delete
| [[Hypertext Transfer Protocol#Request methods|DELETE]]
Line 70 ⟶ 72:
In HTTP, the GET (read), PUT (create and update), POST (create - if we don't have `id` or `uuid`), and DELETE (delete) methods are CRUD operations as they have storage management semantics, meaning that they let [[user agent]]s directly manipulate the states of target [[Web resource|resources]].<ref>{{cite web |url=https://tools.ietf.org/html/rfc7231#section-4 |title=Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content, Section 4 |last=Fielding |first=Roy |date=June 2014 |website=IETF |publisher=Internet Engineering Task Force (IETF) |access-date=2018-02-14 |rfc=7231}}</ref> The [[Hypertext Transfer Protocol#Request methods|POST]] method, on the other hand, is a process operation that has target-resource-specific semantics which typically exceed the scope of CRUD operations.<ref name="it-is-okay-to-use-post">{{cite web|url=https://roy.gbiv.com/untangled/2009/it-is-okay-to-use-post |title=It is okay to use POST |author=Roy T. Fielding |publisher=roy.gbiv.com |date=2009-03-20 |access-date=2020-04-14 |quote=POST only becomes an issue when it is used in a situation for which some other method is ideally suited: e.g., retrieval of information that should be a representation of some resource (GET), complete replacement of a representation (PUT), or any of the other standardized methods that tell intermediaries something more valuable than “this may change something.” The other methods are more valuable to intermediaries because they say something about how failures can be automatically handled and how intermediate caches can optimize their behavior. POST does not have those characteristics, but that doesn’t mean we can live without it. POST serves many useful purposes in HTTP, including the general purpose of “this action isn’t worth standardizing.”}}</ref>
=== User
{{original research|section=yes|date=November 2018}}
CRUD is also relevant at the user interface level of most applications. For example, in address book software, the basic storage unit is an individual ''contact entry''. As a bare minimum, the software must allow the user to:
* ''Create'', or add new entries
* ''Read'', retrieve, search, or view existing entries
Line 79 ⟶ 81:
* ''Delete'', deactivate, or remove existing entries
Because these operations are so fundamental, they are often [[Software documentation|documented]] and described under one comprehensive heading such as "contact management" or "document management" in general.{{
== Other variations ==
Line 86 ⟶ 88:
* CRUDL (create, read, update, delete, list)
*BREAD (browse, read, edit, add, delete)<ref>{{cite web |year=2008 |title=BREAD, not CRUD |author=Paul M. Jones |url=http://paul-m-jones.com/archives/291}}</ref>
* DAVE (delete, add, view, edit)<ref>{{cite book|last1=McGaw|first1=James|title=Beginning Django E-Commerce|date=21 June 2010 |page=41 |publisher=Apress |isbn=9781430225362 |url=https://books.google.com/books?id=LwO1GzMN_QsC&q=DAVE&pg=PA41}}</ref>
* CRAP (create, replicate, append, process)<ref>{{cite news|url=https://blog.dellemc.com/en-us/crap-and-crud-from-database-to-datacloud/ |title=CRAP and CRUD: From Database to Datacloud - Direct2DellEMC |date=2012-11-13 |work=Direct2DellEMC |access-date=2018-01-30 |language=en-US}}</ref>
Line 103 ⟶ 105:
{{databases}}
[[Category:Database management systems]]
|