Trong lập trình máy tính, CRUD (viết tắt các chữ cái đầu của Create-Read-Update-Delete, nghĩa là "tạo, đọc, cập nhật, xoá") là bốn chức năng cơ bản của lưu trữ liên tục.[1] Các từ thay thế đôi khi được sử dụng khi xác định bốn chức năng cơ bản của CRUD, chẳng hạn như retrieve (truy xuất) thay cho read; modify (sửa đổi) thay cho update; destroy (hủy) thay cho delete. CRUD đôi khi cũng được sử dụng để mô tả các quy ước giao diện người dùng để tạo điều kiện thuận lợi cho việc xem, tìm kiếm và thay đổi thông tin, thường sử dụng các biểu mẫu và báo cáo của máy tính. Thuật ngữ này được cho là phổ biến lần đầu tiên bởi James Martin trong cuốn sách Managing the Data-base Environment (Quản lý Môi trường Cơ sở Dữ liệu) năm 1983.[2][3] Từ viết tắt có thể mở rộng thành CRUDL để bao gồm thao tác List (liệt kê danh sách) các tập dữ liệu lớn nhưng đổi lại mang thêm các yếu tố phức tạp như phân trang khi các tập dữ liệu quá lớn để có thể dễ dàng lưu trữ trong bộ nhớ.
Từ CRUD đề cập đến tất cả các chức năng chính được thực hiện trong các ứng dụng cơ sở dữ liệu quan hệ. Mỗi chữ cái trong từ viết tắt có thể viết tương ứng tới mỗi câu lệnh Ngôn ngữ truy vấn có cấu trúc (SQL) tiêu chuẩn, hoặc phương thức trong các giao thức truyền tải siêu văn bản (HTTP) (điều này thường được sử dụng để xây dựng các API RESTful)[4] hoặc thao tác trong Dịch vụ phân phối dữ liệu (DDS):
CRUD | Nghĩa | SQL | HTTP | DDS |
---|---|---|---|---|
create | tạo | INSERT | POST | write |
read | đọc | SELECT | GET | read |
update | cập nhật | UPDATE | PUT | write |
delete | xoá | DELETE | DELETE | dispose |
Phương thức POST trong HTTP không phải là một thao tác của CRUD như các phương thức PUT, GET và DELETE, bởi các phương thức kia có ngữ nghĩa quản lý lưu trữ, nghĩa là chúng cho phép các tác nhân người dùng thao tác trực tiếp trạng thái của tài nguyên đích. Phương thức POST mặt khác nó là một quy trình hoạt động có ngữ nghĩa cụ thể của tài nguyên đích không bao gồm ngữ nghĩa quản lý lưu trữ, vì vậy nó không cho phép tác nhân người dùng thao tác trực tiếp trạng thái của tài nguyên đích.[5][6] Trái ngược với các thao tác của CRUD, phương thức POST không nhất thiết phải thay đổi giá trị.
CRUD cũng có mặt ở cấp giao diện người dùng của hầu hết các ứng dụng. Ví dụ, trong phần mềm sổ địa chỉ, đơn vị lưu trữ cơ bản là một mục nhập liên hệ riêng lẻ. Ở mức tối thiểu, phần mềm phải cho phép người dùng
Nếu thiếu ít nhất bốn thao tác này, phần mềm không thể được coi là hoàn thiện. Bởi vì các hoạt động này rất cơ bản, chúng thường được ghi lại và mô tả dưới một tiêu đề toàn diện, chẳng hạn như "quản lý liên hệ", "quản lý nội dung" hoặc "bảo trì liên hệ" (hoặc "quản lý tài liệu" nói chung, tùy thuộc vào đơn vị lưu trữ cơ bản cho mỗi ứng dụng).
Các biến thể khác của CRUD bao gồm: