
Trả lời nhanh: Database là hệ thống lưu và tra cứu dữ liệu có tổ chức, như Excel nhưng chịu được hàng triệu dòng, nhiều người đọc ghi cùng lúc mà không giẫm nhau, và đảm bảo dữ liệu không hỏng giữa chừng khi mất điện. Hai họ chính: SQL (bảng - cột - quan hệ, như Postgres/MySQL) cho dữ liệu có cấu trúc rõ, đơn hàng, khách hàng, tiền; NoSQL (tài liệu linh hoạt, như MongoDB) cho dữ liệu hình thù thay đổi. Dự án đầu tay 2026: cứ SQL mà chọn, cấu trúc rõ ràng dạy bạn tư duy dữ liệu đúng, và mọi công cụ xoay quanh nó.
Mọi app bạn dùng, từ ngân hàng đến trà sữa đặt online, đều đứng trên một database. Bài này cho người bắt đầu từ số không thật sự: database khác file thường chỗ nào, các khái niệm nghe đáng sợ (SQL, NoSQL, transaction) thực chất là gì, và người mới nên bắt đầu ở đâu để không lạc đường.
- Database ≠ Excel ở ba chữ: đồng thời (nhiều người cùng ghi), toàn vẹn (không hỏng nửa chừng), tốc độ tra cứu
- SQL: dữ liệu vào khuôn bảng, hỏi bằng ngôn ngữ chuẩn, vua của dữ liệu nghiệp vụ
- NoSQL: khuôn linh hoạt, đổi hình thù thoải mái, hợp dữ liệu phi cấu trúc, không phải 'SQL phiên bản xịn'
- Người mới: SQL (Postgres hoặc SQLite) + một VPS nhỏ = sân tập chuẩn
Vì sao Excel không gánh nổi một cửa hàng online
Ba tình huống Excel bó tay mà database sinh ra để giải:
- Đồng thời: hai khách cùng mua món cuối cùng trong kho, Excel cho cả hai thành công, database khóa đúng chỗ để chỉ một đơn được nhận.
- Toàn vẹn (transaction): trừ tiền khách xong app crash trước khi tạo đơn? Database gói hai việc thành một giao dịch: hoặc cả hai xong, hoặc như chưa từng xảy ra.
- Tra cứu ở quy mô: "đơn của số điện thoại này trong 2 triệu đơn", Excel quét từng dòng; database có index trả lời tức thì (bài index trong cùng cụm giải thích phép màu này).
SQL: dữ liệu sống trong bảng có kỷ luật
Họ SQL (Postgres, MySQL, SQLite) tổ chức dữ liệu thành bảng, mỗi bảng một loại thứ (khách, đơn, sản phẩm), các bảng quan hệ với nhau qua khóa (đơn nào của khách nào). Hỏi dữ liệu bằng ngôn ngữ SQL gần như tiếng Anh:
SELECT ten, tong_tien FROM don_hang WHERE ngay >= '2026-09-01' ORDER BY tong_tien DESC;Kỷ luật khuôn bảng nghe gò bó nhưng chính là tính năng: dữ liệu tiền nong, tồn kho, công nợ cần bị ép vào khuôn để không loạn. Đó là lý do 50 năm rồi SQL vẫn là xương sống thương mại thế giới, và là kỹ năng dữ liệu đáng học nhất, vì đến cả AI cũng viết SQL giúp bạn được nhưng đọc hiểu kết quả vẫn là việc của người.
NoSQL: khi dữ liệu không chịu vào khuôn
Họ NoSQL đổi kỷ luật lấy linh hoạt, tiêu biểu là kiểu document (MongoDB): mỗi bản ghi là một gói JSON tự do, bản ghi này có trường mà bản ghi kia không cần có. Hợp khi: dữ liệu hình thù đa dạng (catalog sản phẩm trăm loại thuộc tính khác nhau), prototype đổi cấu trúc liên tục, hay log/sự kiện đổ về ào ạt. Hiểu lầm cần gỡ: NoSQL không phải "bản nâng cấp của SQL", nó là đánh đổi khác, và đa số dự án nghiệp vụ chọn nhầm NoSQL rồi vất vả mô phỏng lại quan hệ bằng tay. Ghi chú 2026: Postgres với JSONB đã lai được hai thế giới, thêm một lý do người mới cứ SQL mà đi.
Bắt đầu ở đâu: lộ trình một buổi chiều
- Chọn: SQLite nếu muốn nhẹ nhất (một file, không cài gì), Postgres nếu muốn chuẩn công nghiệp ngay từ đầu (bài cài 15 phút có sẵn trong cụm).
- Sân tập: một VPS nhỏ, cài, phá, cài lại thoải mái; đây cũng chính là môi trường sau này chạy thật, học một lần dùng mãi.
- Bài tập đầu: dựng 3 bảng khach - san_pham - don_hang, tự tay INSERT và SELECT JOIN, một buổi chiều là vỡ ra 80% khái niệm.
- Có AI kèm: để Claude Code viết SQL mẫu rồi bắt nó giải thích từng dòng, gia sư kiên nhẫn vô hạn, và bạn học đọc SQL nhanh hơn học viết.
Bảng chọn cho dự án đầu tay
| Dự án của bạn | Chọn | Vì sao |
|---|---|---|
| Cửa hàng online, quản lý đơn hàng, kho | Cơ sở dữ liệu quan hệ | Dữ liệu có quan hệ rõ ràng, cần tính đúng tiền và tồn kho |
| Blog, trang tin, trang giới thiệu | Cơ sở dữ liệu quan hệ | Phần mềm viết sẵn đều dùng loại này |
| Ứng dụng ghi lại sự kiện, nhật ký thiết bị | Loại phi quan hệ hợp hơn | Ghi rất nhiều, cấu trúc thay đổi, ít cần nối bảng |
| Ứng dụng có cấu trúc dữ liệu chưa chốt, đang thử nghiệm | Loại phi quan hệ, hoặc quan hệ kèm cột kiểu tài liệu | Đỡ phải sửa cấu trúc bảng liên tục |
| Không chắc | Cơ sở dữ liệu quan hệ | Sai lầm rẻ hơn, và chuyển đi sau này dễ hơn chiều ngược lại |
Câu trả lời thẳng cho người mới: gần như luôn là loại quan hệ. Không phải vì nó tốt hơn, mà vì tài liệu, ví dụ, thư viện và người trả lời câu hỏi giúp bạn đều nhiều hơn hẳn.
Bốn khái niệm cần hiểu trước khi viết dòng mã đầu tiên
- Khóa chính: mỗi dòng có một mã định danh duy nhất. Đây là thứ mọi thứ khác dựa vào.
- Khóa ngoại: dòng ở bảng này trỏ tới dòng ở bảng kia. Đơn hàng trỏ tới khách hàng.
- Chỉ mục: giúp tìm nhanh, đổi lại làm chậm việc ghi và tốn dung lượng.
- Giao dịch: nhiều thao tác chạy trọn vẹn hoặc không chạy gì cả. Đây là thứ giữ cho tiền và tồn kho không sai khi có sự cố giữa chừng.
Lộ trình một buổi chiều
# 1. Cai va tao co so du lieu dau tien
sudo apt install -y postgresql
sudo -u postgres createdb cuahang
# 2. Tao hai bang co quan he
sudo -u postgres psql cuahang <<'SQL'
CREATE TABLE khach_hang (
id SERIAL PRIMARY KEY,
ten TEXT NOT NULL,
sdt TEXT UNIQUE,
tao_luc TIMESTAMPTZ DEFAULT now()
);
CREATE TABLE don_hang (
id SERIAL PRIMARY KEY,
khach_id INT NOT NULL REFERENCES khach_hang(id),
tong_tien NUMERIC(12,0) NOT NULL CHECK (tong_tien >= 0),
tao_luc TIMESTAMPTZ DEFAULT now()
);
CREATE INDEX idx_don_hang_khach ON don_hang(khach_id);
SQL
# 3. Thu chen va truy van
sudo -u postgres psql cuahang -c \
"INSERT INTO khach_hang(ten,sdt) VALUES ('Nguyen Van A','0900000001');"
sudo -u postgres psql cuahang -c \
"SELECT k.ten, count(d.id) FROM khach_hang k LEFT JOIN don_hang d ON d.khach_id=k.id GROUP BY k.ten;"Ba điều đáng chú ý trong đoạn trên: dùng kiểu số thập phân cố định cho tiền chứ không dùng số thực; đặt ràng buộc ngay từ lúc tạo bảng thay vì kiểm ở phía ứng dụng; và đánh chỉ mục cho cột nối bảng. Ba thói quen này tiết kiệm rất nhiều công về sau.
Câu hỏi thường gặp
Học database có cần giỏi toán không?
Không, cần tư duy sắp xếp ngăn nắp hơn là toán. Nếu bạn từng thiết kế một file Excel quản lý ra hồn, bạn đã có 60% tư duy schema rồi.
Database và server có phải là một không?
Database là phần mềm quản dữ liệu; server (VPS) là máy để nó chạy. Cùng một VPS thường chạy cả app lẫn database, mô hình chuẩn của dự án vừa và nhỏ.
MongoDB có phải lựa chọn tồi không?
Không hề, nó xuất sắc đúng việc của nó (document linh hoạt, scale ngang). Chỉ tồi khi bị chọn vì 'nghe hiện đại' cho dữ liệu vốn dĩ quan hệ, đơn hàng, tồn kho, công nợ.
Dữ liệu quan trọng để trên VPS có an toàn không?
An toàn theo kỷ luật của bạn: database chỉ nghe localhost, mật khẩu mạnh, backup hằng đêm + backup máy chủ định kỳ. Đó cũng chính là checklist trong các bài cài đặt của cụm này.
Bài viết liên quan
- Index database là gì? Tăng tốc 100 lần
- Postgres vs MySQL 2026: chọn theo việc
- VPS ổ Enterprise U.2 NVMe RAID 10 tại TND
- Claude Design: Hướng Dẫn Áp Dụng Cho Dev WordPress + VPS Việt Nam (Kết Hợp Vibe Coding)
- Cài Proxmox build cloud nhỏ tại nhà: tự host vs thuê VPS, khi nào đáng?
- Chạy Llama 3.3 70B trên GPU VPS RTX 4090: hướng dẫn 2026
- VPS chạy n8n 24/7: setup Docker Compose từ A-Z (có HTTPS, backup)
- Proxy cho SEO SERP tracking 2026: multi-country
- Kuma service mesh trên VPS K3s: setup microservice startup



