Trong lĩnh vực lập trình, CRUD (viết tắt của Create-Read-Update-Delete, có nghĩa là 'tạo, đọc, cập nhật, xóa') là bốn chức năng cốt lõi của việc quản lý dữ liệu. Các thuật ngữ thay thế đôi khi được dùng để chỉ các chức năng này, ví dụ như retrieve (lấy dữ liệu) thay cho read; modify (chỉnh sửa) thay cho update; destroy (xóa) thay cho delete. CRUD cũng được dùng để chỉ các quy tắc giao diện người dùng hỗ trợ việc xem, tìm kiếm và chỉnh sửa thông tin, thường thông qua các biểu mẫu và báo cáo trên máy tính. Thuật ngữ này lần đầu tiên được phổ biến bởi James Martin trong cuốn sách Managing the Database Environment (Quản lý Môi trường Cơ sở Dữ liệu) năm 1983. Phiên bản mở rộng CRUDL bao gồm thao tác List (liệt kê) dữ liệu lớn, nhưng có thêm các yếu tố như phân trang khi dữ liệu quá lớn để lưu trữ trong bộ nhớ.
Ứng dụng trong quản lý cơ sở dữ liệu
CRUD liên quan đến các chức năng chính trong các hệ thống cơ sở dữ liệu quan hệ. Mỗi ký tự trong từ viết tắt tương ứng với các câu lệnh trong Ngôn ngữ Truy vấn Cấu trúc (SQL) tiêu chuẩn, hoặc các phương thức trong giao thức HTTP (thường dùng để xây dựng API RESTful), 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 thuộc các thao tác CRUD như PUT, GET và DELETE, vì các phương thức này có ngữ nghĩa quản lý lưu trữ, cho phép người dùng thao tác trực tiếp lên trạng thái của tài nguyên đích. Ngược lại, POST 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 quản lý lưu trữ, vì vậy không cho phép thao tác trực tiếp lên trạng thái của tài nguyên đích. Do đó, POST không nhất thiết thay đổi giá trị như các thao tác của CRUD.
Giao diện người dùng
CRUD xuất hiện ngay cả trong giao diện người dùng của đa số ứng dụng. Ví dụ, trong phần mềm quản lý danh bạ, đơn vị lưu trữ cơ bản là một mục liên hệ riêng biệt. Phần mềm cần phải cung cấp các chức năng tối thiểu cho người dùng, bao gồm
- thêm mới hoặc tạo các mục liên hệ;
- truy xuất, tìm kiếm hoặc xem các mục hiện có;
- cập nhật hoặc chỉnh sửa các mục đã có;
- xóa, hủy kích hoạt hoặc gỡ bỏ các mục hiện có.
Nếu phần mềm không hỗ trợ ít nhất bốn thao tác này, thì không thể coi là đầy đủ chức năng. Các thao tác này là cơ bản đến mức thường được gộp chung dưới các tiêu đề như 'quản lý liên hệ', 'quản lý nội dung' hoặc 'bảo trì danh bạ' (hoặc 'quản lý tài liệu' tùy thuộc vào loại dữ liệu lưu trữ của ứng dụng).
Các biến thể khác
Các biến thể của CRUD bao gồm:
- ABCD (thêm, duyệt, thay đổi, xóa) - 'add, browse, change, delete'
- CRUDL (tạo, đọc, cập nhật, xóa, liệt kê) - 'create, read, update, delete, list'
- BREAD (duyệt, đọc, sửa, thêm, xóa) - 'browse, read, edit, add, delete'
- DAVE (xóa, thêm, xem, sửa) - 'delete, add, view, edit'
- CRAP (tạo, sao chép, nối thêm, xử lý) - 'create, replicate, append, process'