HTTP, CRUD, and Database

HTTP, a versatile protocol, fundamentally supports CRUD (Create, Read, Update, Delete) operations, which are integral to most consumer-related internet applications.

CRUD: An acronym for Create, Read, Update, and Delete, representing the four basic operations in any database interaction.

The primary HTTP methods corresponding to these CRUD operations are:

  • GET: Retrieve a specific resource or a collection of resources.
  • POST: Create a new resource.
  • PUT: Update an existing resource.
  • DELETE: Remove a specific resource.

Data Persistence with Databases

Data persistence in applications is typically achieved through databases, ensuring data longevity beyond the application's lifecycle.

Database: A database is a collection of related data, stored and organized for easy access and management.

There are various database types, each serving different needs:

  • Relational Database: Stores data in tables with rows and columns, facilitating efficient data linkage and retrieval.
  • NoSQL Database: Utilizes a non-relational, distributed format, ideal for large, unstructured datasets and horizontal scaling.
  • Object-Oriented Database: Stores data in the form of objects, as opposed to traditional row-column formats.
  • Graph Database: Employs graph structures with nodes and edges for complex data relationships and analysis.
  • Key-Value Database: Organizes data in a key-value pair format, offering scalability and efficiency for large data volumes.
  • Distributed Database: Spreads data across multiple locations, synchronized for universal access.

CRUD operations form the foundation for interacting with any database system.

Example: Prodensity App

The Prodensity app used by JHU during the Pandemic exemplifies a CRUD application.

Screenshot of the Prodensity app

Beyond CRUD: While CRUD operations are fundamental, they represent just the basics of database interaction. For more comprehensive learning in software engineering, it's beneficial to incorporate complex functional requirements beyond simple CRUD applications.