What is CRUD?15 May 2020
CRUD stands for “Create, Read, Update, and Delete”, the four basic functions a model should be able to do in order to be complete. The origin of the term CRUD is often credited to James Martin in his 1983 book Managing the Data Base Environment, which makes CRUD one of the oldest continually used phrases in the coding lexicon, CRUD has informed database development, optimization, and innovation for nearly four decades. The CRUD paradigm is also common when developing web applications, since it provides an easily memorable framework for reminding developers how to construct usable, scaleable models and database platforms for a myriad of different purposes, including web applications.
How is CRUD used for programming?
Let’s use a music database as an easy-to-understand example. In this example, we have a database that stores information for artists, albums, reviews, and genres. When programmers provide interactions with this database, the steps of CRUD are carried out as follows:
- Create: A new artist is entered into the database. The program calling the function would supply values like “artist” or “band name”, which would be assigned a unique ID that could be referenced later.
- Read: The new artist's information is displayed to the user or programmer, powered by a function that simply calls up the entry from the database based on the unique ID.
- Update: Artist information, such as notes and country of origin are added to the artist record. This would be powered by a function that allows for updates to an existing entry, prompting users to fill in those required fields.
- Delete: If no albums or songs will be added for this artist, the artist can be deleted. Or, the artist record can be removed for other reasons (duplicate entry, lack of information, etc.).
In other words, without the four basic elements that comprise CRUD, an application or software cannot be considered complete (more complex needs may require even more elements to be complete).
Because these operations are so fundamental, they are often documented and described under one comprehensive heading. Depending on the basic storage unit for the particular application, some such heading names include:
- Contact management
- Content management
- Contact maintenance
- Document management
When you come across these terms while learning a programming language, you are dealing with CRUD.
What does CRUD actually look like in terms of real database applications?
Each element in the CRUD acronym corresponds to a standard Structured Query Language (SQL) statement, Hypertext Transfer Protocol (HTTP) method (this is typically used to build RESTful APIs) or Data Distribution Service (DDS) operation.
For example, in terms of SQL, the corresponding terms are:
- Create = Insert
- Read = Select
- Update = Update
- Delete = Delete
For HTTP, the terms pair as:
- Create = Put/Post
- Read = Get
- Update = Put/Post/Patch
- Delete = Delete
Seen this way, CRUD provides a useful paradigm for developers to follow no matter what language or protocol they are working with. Think of it almost as a checklist for ensuring that the component or model you are building actually provides the functionality necessary for operations and queries to run smoothly.
How is CRUD useful for my own programming needs?
Since CRUD refers more to a structural idea rather than a specific language, think of it less as a coding language to master and more as a guiding principle that informs database design and operations, the backbone of modern web applications. Without a system or model that adheres to this paradigm, the database operations for an app will not fully function.
To master CRUD and apply its principles for your own programming or development projects or learning, you want to become versed in one of the common languages referenced above. For example, you could take a course in HTML or one in SQL, or one of the many database programming languages.
If you intend to focus more on web design as a specialty, CRUD is still relevant. Web designers refer instead to REST (representational state transfer), but REST is still simply a superset of CRUD. REST is used with HTTP resources, which are important for developing secure websites that visitors will trust. Therefore, if you were planning on learning HTTP, this same paradigm will still serve as the backbone of what you develop.
There are few complex functions or user-end interfaces that do not require the fundamentals of CRUD. If you want to create usable databases, address books, web pages, or any other kind of software, you need to familiarize yourself with the basics about CRUD and how it works. CRUD mastery is essential for good computer programming. As you build programming proficiency in designing storage systems, incorporating CRUD operations into your models will become second nature.