Trả lời nhanh: Cơ sở dữ liệu (database) là tập hợp dữ liệu được tổ chức có cấu trúc, lưu trên máy tính để nhiều người, nhiều ứng dụng cùng tìm, thêm, sửa, xoá nhanh và an toàn. Phần mềm quản lý nó gọi là hệ quản trị cơ sở dữ liệu (DBMS), ví dụ MySQL, PostgreSQL, SQL Server, MongoDB.
Điểm chính
- Luật Dữ liệu số 60/2024/QH15 định nghĩa cơ sở dữ liệu là “tập hợp các dữ liệu được sắp xếp, tổ chức để truy cập, khai thác, chia sẻ, quản lý và cập nhật”.
- Cơ sở dữ liệu là nơi chứa dữ liệu; DBMS là phần mềm quản lý. Ghép cả hai cùng ứng dụng và con người vận hành thành “hệ cơ sở dữ liệu”.
- Hai nhóm lớn: cơ sở dữ liệu quan hệ (bảng, dùng SQL, mạnh về giao dịch ACID) và NoSQL (tài liệu, khoá – giá trị, cột rộng, đồ thị), linh hoạt và dễ mở rộng ngang.
- Chọn loại cơ sở dữ liệu theo hình dạng dữ liệu và kiểu truy vấn, không theo trào lưu. Phần lớn ứng dụng nghiệp vụ vẫn nên bắt đầu bằng một CSDL quan hệ.
- Vận hành đúng quan trọng không kém chọn đúng: chỉ mục, sao lưu có kiểm thử phục hồi, phân quyền tối thiểu và tuân thủ Luật Bảo vệ dữ liệu cá nhân 91/2025/QH15 (hiệu lực từ 01/01/2026).
Mục lục
- Cơ sở dữ liệu là gì?
- Cơ sở dữ liệu khác file Excel ở điểm nào?
- Hệ quản trị cơ sở dữ liệu (DBMS) là gì?
- Cơ sở dữ liệu ra đời và phát triển như thế nào?
- Cơ sở dữ liệu quan hệ hoạt động ra sao?
- SQL là gì và dùng để làm gì?
- Giao dịch và ACID là gì?
- NoSQL là gì? Các loại cơ sở dữ liệu NoSQL
- Nên chọn SQL hay NoSQL?
- Các loại cơ sở dữ liệu theo cách dùng và nơi triển khai
- Những hệ quản trị cơ sở dữ liệu phổ biến hiện nay
- Ví dụ cơ sở dữ liệu trong doanh nghiệp
- Vận hành cơ sở dữ liệu: chỉ mục, sao lưu và bảo mật
- Doanh nghiệp cần lưu ý gì về pháp lý khi lưu dữ liệu?
- Doanh nghiệp nhỏ nên bắt đầu xây dựng cơ sở dữ liệu thế nào?
- Những sai lầm thường gặp khi làm việc với cơ sở dữ liệu
- Câu hỏi thường gặp
Cơ sở dữ liệu là gì?
Cơ sở dữ liệu (database, viết tắt CSDL) là một tập hợp dữ liệu có liên quan với nhau, được sắp xếp theo một cấu trúc nhất định và lưu trữ dưới dạng số. Mục đích của việc sắp xếp này là để máy tính tìm, đọc, thêm, sửa, xoá dữ liệu nhanh, chính xác, và cho phép nhiều người dùng cùng lúc mà không làm hỏng dữ liệu của nhau.
Ở Việt Nam, khái niệm này đã có định nghĩa pháp lý. Theo khoản 9 Điều 3 Luật Dữ liệu số 60/2024/QH15 (Quốc hội thông qua ngày 30/11/2024, hiệu lực từ 01/7/2025), cơ sở dữ liệu là “tập hợp các dữ liệu được sắp xếp, tổ chức để truy cập, khai thác, chia sẻ, quản lý và cập nhật”. Định nghĩa này nhấn mạnh đúng bản chất: dữ liệu chỉ thành “cơ sở dữ liệu” khi nó được tổ chức để dùng lại được.
Một vài cách gọi bạn sẽ gặp: “database là gì”, “CSDL là gì”, “data base”. Tất cả đều nói về cùng một khái niệm. Còn “hệ cơ sở dữ liệu” (database system) là cụm rộng hơn, gồm cả dữ liệu, phần mềm quản lý và các ứng dụng dùng nó.
Ví dụ cơ sở dữ liệu dễ hình dung
Ví dụ minh hoạ. Một cửa hàng mỹ phẩm online có ba loại thông tin: khách hàng, sản phẩm và đơn hàng. Nếu ghi vào sổ tay hoặc vài file Excel rời, mỗi lần khách đổi số điện thoại, nhân viên phải sửa ở nhiều nơi. Hai người cùng sửa một file thì dễ ghi đè lên nhau. Muốn biết “khách nào mua trên 3 lần trong quý” phải lọc thủ công.
Khi đưa vào cơ sở dữ liệu, mỗi khách hàng chỉ được lưu một lần trong bảng khách hàng. Đơn hàng chỉ “trỏ” tới khách qua một mã số. Đổi số điện thoại ở một chỗ, mọi đơn hàng đều thấy số mới. Câu hỏi “khách nào mua trên 3 lần” trở thành một câu truy vấn chạy trong vài phần nghìn giây, kể cả khi có hàng triệu đơn.
Trong đời sống, bạn dùng cơ sở dữ liệu hằng ngày mà không để ý: danh bạ điện thoại, lịch sử giao dịch ngân hàng, giỏ hàng trên sàn thương mại điện tử, hồ sơ khám bệnh, danh sách bài hát trong ứng dụng nghe nhạc. Ở quy mô quốc gia, Luật Căn cước số 26/2023/QH15 quy định Cơ sở dữ liệu quốc gia về dân cư là cơ sở dữ liệu dùng chung, tập hợp thông tin công dân đã được số hoá, chuẩn hoá để phục vụ quản lý nhà nước và giao dịch của cơ quan, tổ chức, cá nhân.
Dữ liệu, thông tin và cơ sở dữ liệu khác nhau thế nào?
- Dữ liệu (data): các giá trị thô, ví dụ “0912xxx”, “350.000”, “12/09/2026”.
- Thông tin (information): dữ liệu đã có ngữ cảnh, ví dụ “chị Lan đặt đơn 350.000 đồng ngày 12/09/2026”.
- Cơ sở dữ liệu: nơi chứa dữ liệu theo cấu trúc, để có thể rút ra thông tin bất cứ lúc nào bằng truy vấn.
Cơ sở dữ liệu khác file Excel ở điểm nào?
Nhiều doanh nghiệp nhỏ đang dùng Excel hoặc Google Sheets như một “cơ sở dữ liệu”. Cách này ổn khi dữ liệu ít và chỉ một hai người sửa. Khi đội lớn lên, giới hạn sẽ lộ ra rất nhanh.
| Tiêu chí | Bảng tính (Excel, Sheets) | Cơ sở dữ liệu (qua DBMS) |
|---|---|---|
| Quy mô | Hợp với vài nghìn đến vài chục nghìn dòng; file càng lớn càng chậm | Hàng triệu đến hàng tỷ bản ghi, vẫn truy vấn nhanh nhờ chỉ mục |
| Nhiều người cùng sửa | Dễ ghi đè, xung đột phiên bản | Có khoá (lock) và giao dịch, nhiều người ghi đồng thời vẫn đúng |
| Ràng buộc dữ liệu | Gõ sai định dạng, trùng mã vẫn lưu được | Kiểu dữ liệu, khoá chính, khoá ngoại, ràng buộc duy nhất chặn dữ liệu sai ngay khi ghi |
| Quan hệ giữa các bảng | Nối bằng hàm tra cứu, dễ gãy khi chèn cột | Quan hệ được khai báo, nối bảng bằng truy vấn |
| Phân quyền | Theo cả file hoặc cả trang tính | Đến từng bảng, từng cột, thậm chí từng dòng |
| Kết nối ứng dụng | Hạn chế | Website, app, phần mềm kế toán, báo cáo cùng đọc ghi qua chuẩn kết nối |
| Sao lưu, phục hồi | Lưu bản sao file | Sao lưu theo lịch, phục hồi về một thời điểm cụ thể |
Quy tắc thực dụng: khi có từ ba người trở lên cùng cập nhật một danh sách mỗi ngày, hoặc danh sách cần nối với dữ liệu khác (khách – đơn hàng – kho), đó là lúc nên chuyển sang cơ sở dữ liệu thật.
Hệ quản trị cơ sở dữ liệu (DBMS) là gì?
Hệ quản trị cơ sở dữ liệu (Database Management System, DBMS) là phần mềm đứng giữa dữ liệu và người dùng. Ứng dụng không mở trực tiếp file dữ liệu trên ổ đĩa. Nó gửi yêu cầu cho DBMS, và DBMS lo phần còn lại: kiểm tra quyền, tìm đường truy xuất nhanh nhất, ghi dữ liệu an toàn, ghi nhật ký để phục hồi khi có sự cố.
Nếu DBMS quản lý cơ sở dữ liệu quan hệ, người ta gọi là RDBMS (Relational DBMS). MySQL, PostgreSQL, Microsoft SQL Server, Oracle Database, SQLite là các RDBMS. MongoDB, Redis, Cassandra, Neo4j là các DBMS thuộc nhóm NoSQL.
DBMS làm những việc gì?
- Định nghĩa cấu trúc: tạo bảng, kiểu dữ liệu, ràng buộc (ví dụ email không được trùng).
- Xử lý truy vấn: nhận câu lệnh, lập “kế hoạch thực thi” (query plan), chọn dùng chỉ mục nào, nối bảng theo thứ tự nào.
- Quản lý giao dịch và đồng thời: cho hàng nghìn người đọc ghi cùng lúc mà không làm sai số liệu.
- Bảo mật: tài khoản, vai trò, quyền đọc ghi đến từng bảng, mã hoá dữ liệu, ghi lại ai đã làm gì (audit log).
- Bền vững và phục hồi: ghi nhật ký giao dịch trước khi ghi dữ liệu, để mất điện đột ngột vẫn khôi phục được trạng thái đúng.
- Sao lưu, sao chép (replication): tạo bản sao ở máy chủ khác để dự phòng hoặc chia tải đọc.
Database, DBMS và hệ cơ sở dữ liệu khác nhau thế nào?
| Khái niệm | Là gì | Ví dụ |
|---|---|---|
| Cơ sở dữ liệu (database) | Bản thân dữ liệu đã được tổ chức | Các bảng khách hàng, đơn hàng của cửa hàng |
| Hệ quản trị CSDL (DBMS) | Phần mềm tạo, lưu, truy vấn, bảo vệ dữ liệu | PostgreSQL, MySQL, SQL Server, MongoDB |
| Hệ cơ sở dữ liệu (database system) | Toàn bộ: dữ liệu + DBMS + ứng dụng + phần cứng + quy trình + con người | Hệ thống bán hàng của cửa hàng, gồm cả website và đội vận hành |
Các thành phần của một hệ cơ sở dữ liệu
- Phần cứng: máy chủ, ổ lưu trữ, mạng; ngày nay thường là máy chủ ảo trên đám mây.
- Phần mềm: DBMS, hệ điều hành, công cụ quản trị, trình kết nối (driver).
- Dữ liệu: dữ liệu nghiệp vụ và “siêu dữ liệu” (metadata) mô tả cấu trúc bảng, quyền, chỉ mục.
- Ngôn ngữ truy cập: SQL cho CSDL quan hệ; mỗi hệ NoSQL thường có ngôn ngữ hoặc API riêng.
- Quy trình: quy định đặt tên, phân quyền, sao lưu, xử lý sự cố, thay đổi cấu trúc.
- Con người: người dùng cuối, lập trình viên, quản trị viên CSDL (DBA), kỹ sư dữ liệu (data engineer).
Cơ sở dữ liệu ra đời và phát triển như thế nào?
- Thập niên 1960: các hệ quản lý dữ liệu đầu tiên xuất hiện. Charles Bachman xây dựng Integrated Data Store (IDS); IBM có hệ IMS từ năm 1966, theo mô hình phân cấp (dạng cây cha – con).
- Năm 1970: Edgar F. Codd (IBM) công bố bài báo “A Relational Model of Data for Large Shared Data Banks” trên tạp chí Communications of the ACM, đặt nền móng cho mô hình quan hệ.
- Năm 1971: nhóm Database Task Group thuộc CODASYL công bố chuẩn cho mô hình mạng (network model), nơi một bản ghi có thể có nhiều “cha”.
- Đầu thập niên 1970: Donald Chamberlin và Raymond Boyce tại IBM phát triển ngôn ngữ SEQUEL, sau đổi tên thành SQL.
- Năm 1979: Oracle Version 2 ra mắt, thường được xem là RDBMS thương mại dùng SQL đầu tiên có mặt trên thị trường, đi trước IBM.
- Năm 1986–1987: SQL trở thành chuẩn ANSI (1986) và ISO (1987).
- Cuối thập niên 2000: làn sóng NoSQL xuất hiện để phục vụ web quy mô lớn, dữ liệu bán cấu trúc và mở rộng ngang trên nhiều máy.
- Thập niên 2010–2020: cơ sở dữ liệu đám mây được quản lý sẵn (DBaaS) phổ biến; các hệ quan hệ bổ sung JSON, các hệ NoSQL bổ sung giao dịch. Chuẩn SQL:2023 (phát hành tháng 6/2023) thêm kiểu dữ liệu JSON và phần truy vấn đồ thị SQL/PGQ.
- Hiện nay: làn sóng AI tạo sinh khiến cơ sở dữ liệu vector, dùng cho tìm kiếm theo ngữ nghĩa, được quan tâm nhiều hơn.
Cơ sở dữ liệu quan hệ hoạt động ra sao?
Cơ sở dữ liệu quan hệ (relational database) tổ chức dữ liệu thành các bảng. Mỗi bảng mô tả một loại đối tượng. Mỗi hàng (row, bản ghi) là một đối tượng cụ thể. Mỗi cột (column, trường) là một thuộc tính. Các bảng liên kết với nhau bằng khoá.
- Khoá chính (primary key): cột định danh duy nhất mỗi hàng, ví dụ ma_khach.
- Khoá ngoại (foreign key): cột ở bảng này trỏ tới khoá chính của bảng khác, ví dụ cột ma_khach trong bảng đơn hàng. DBMS sẽ chặn việc tạo đơn cho một khách không tồn tại.
- Quan hệ: một – một, một – nhiều (một khách có nhiều đơn), nhiều – nhiều (một đơn có nhiều sản phẩm, một sản phẩm nằm trong nhiều đơn; cần thêm bảng trung gian chi tiết đơn hàng).
Ví dụ minh hoạ về hai bảng của cửa hàng online:
| ma_khach (khoá chính) | ho_ten | so_dien_thoai |
|---|---|---|
| KH001 | Nguyễn Thị Lan | 0912 000 001 |
| KH002 | Trần Văn Minh | 0988 000 002 |
| ma_don (khoá chính) | ma_khach (khoá ngoại) | ngay_dat | tong_tien |
|---|---|---|---|
| DH1001 | KH001 | 12/09/2026 | 350.000 |
| DH1002 | KH001 | 20/09/2026 | 520.000 |
| DH1003 | KH002 | 21/09/2026 | 180.000 |
Chuẩn hoá dữ liệu là gì?
Chuẩn hoá (normalization) là cách chia dữ liệu thành các bảng hợp lý để mỗi sự thật chỉ được lưu một lần. Ở ví dụ trên, tên và số điện thoại của chị Lan không lặp lại trong từng đơn. Lợi ích: tránh mâu thuẫn (đơn này ghi số cũ, đơn kia ghi số mới), tiết kiệm dung lượng, sửa ở một chỗ. Các mức thường dùng là dạng chuẩn 1, 2, 3 (1NF, 2NF, 3NF). Trong hệ phục vụ báo cáo, người ta đôi khi cố ý “phi chuẩn hoá” (denormalize), tức chấp nhận lặp dữ liệu để truy vấn nhanh hơn.
SQL là gì và dùng để làm gì?
SQL (Structured Query Language) là ngôn ngữ chuẩn để làm việc với cơ sở dữ liệu quan hệ. Hầu hết RDBMS đều hiểu SQL, mỗi hệ có thêm vài mở rộng riêng. Câu lệnh SQL thường được chia làm bốn nhóm:
| Nhóm | Dùng để | Lệnh tiêu biểu |
|---|---|---|
| DDL (định nghĩa dữ liệu) | Tạo, sửa, xoá cấu trúc | CREATE, ALTER, DROP |
| DML (thao tác dữ liệu) | Đọc, thêm, sửa, xoá dữ liệu | SELECT, INSERT, UPDATE, DELETE |
| DCL (kiểm soát quyền) | Cấp và thu hồi quyền | GRANT, REVOKE |
| TCL (kiểm soát giao dịch) | Gom nhiều lệnh thành một giao dịch | BEGIN, COMMIT, ROLLBACK |
Với hai bảng ở trên, câu hỏi “khách nào đặt từ 2 đơn trở lên, tổng chi bao nhiêu” viết bằng SQL như sau:
SELECT k.ho_ten, COUNT(d.ma_don) AS so_don, SUM(d.tong_tien) AS tong_chi FROM khach_hang k JOIN don_hang d ON d.ma_khach = k.ma_khach GROUP BY k.ho_ten HAVING COUNT(d.ma_don) >= 2 ORDER BY tong_chi DESC;
Kết quả trả về: Nguyễn Thị Lan, 2 đơn, 870.000. Điểm mạnh của SQL là tính “khai báo” (declarative): bạn mô tả muốn lấy gì, còn DBMS tự quyết cách lấy nhanh nhất. Đây cũng là lý do SQL là kỹ năng nền cho lập trình viên, chuyên viên phân tích dữ liệu và cả người làm báo cáo.
Giao dịch và ACID là gì?
Giao dịch (transaction) là một nhóm thao tác phải thành công cùng nhau hoặc thất bại cùng nhau. Ví dụ kinh điển là chuyển khoản: trừ tiền tài khoản A và cộng tiền tài khoản B. Nếu hệ thống chỉ làm được bước đầu rồi sập, tiền “bốc hơi”. Bộ tính chất ACID mô tả những gì một giao dịch đáng tin phải bảo đảm. Jim Gray mô tả tính nguyên tử, nhất quán và bền vững của giao dịch năm 1981; Andreas Reuter và Theo Härder bổ sung tính cô lập và đặt tên viết tắt ACID năm 1983.
| Tính chất | Ý nghĩa | Trong ví dụ chuyển khoản |
|---|---|---|
| Atomicity (nguyên tử) | Tất cả hoặc không gì cả | Không có chuyện trừ A mà không cộng B |
| Consistency (nhất quán) | Dữ liệu luôn thoả mọi ràng buộc đã khai báo | Số dư không âm nếu quy tắc yêu cầu vậy |
| Isolation (cô lập) | Các giao dịch chạy đồng thời không thấy trạng thái dở dang của nhau | Hai lệnh rút tiền cùng lúc không làm số dư sai |
| Durability (bền vững) | Đã xác nhận thì không mất, kể cả khi mất điện | Báo “thành công” là giao dịch đã được ghi bền |
BEGIN; UPDATE tai_khoan SET so_du = so_du - 500000 WHERE so_tk = 'A'; UPDATE tai_khoan SET so_du = so_du + 500000 WHERE so_tk = 'B'; COMMIT; -- lỗi giữa chừng thì ROLLBACK, cả hai lệnh đều bị huỷ
ACID là lý do ngân hàng, kế toán, kho vận, đặt vé gần như luôn dùng cơ sở dữ liệu quan hệ cho phần lõi. Nhiều hệ NoSQL hiện cũng hỗ trợ giao dịch, nhưng phạm vi và chi phí khác nhau theo từng sản phẩm, cần đọc kỹ tài liệu trước khi dựa vào.
NoSQL là gì? Các loại cơ sở dữ liệu NoSQL
NoSQL thường được hiểu là “Not only SQL”: nhóm cơ sở dữ liệu không tổ chức dữ liệu theo bảng quan hệ cố định. Chúng ra đời để giải ba bài toán mà CSDL quan hệ truyền thống xử lý tốn kém: dữ liệu có cấu trúc thay đổi liên tục, lượng ghi cực lớn, và nhu cầu mở rộng ngang bằng cách thêm máy chủ thay vì nâng cấp một máy thật mạnh.
- Cơ sở dữ liệu tài liệu (document): mỗi bản ghi là một tài liệu dạng JSON, các bản ghi không cần giống hệt nhau. Hợp với danh mục sản phẩm có thuộc tính khác nhau (áo có size, điện thoại có dung lượng).
- Khoá – giá trị (key-value): đơn giản nhất, tra theo khoá cực nhanh, thường nằm trong bộ nhớ. Hay dùng làm bộ nhớ đệm (cache), lưu phiên đăng nhập, bộ đếm, hàng đợi.
- Cột rộng (wide-column): thiết kế cho lượng ghi rất lớn trải trên nhiều máy, như nhật ký hệ thống, dữ liệu cảm biến.
- Đồ thị (graph): lưu “nút” và “cạnh”, mạnh khi câu hỏi xoay quanh mối quan hệ nhiều tầng: bạn của bạn, tài khoản nào liên quan đến một đường dây gian lận.
- Chuỗi thời gian (time-series) và vector: hai nhóm chuyên dụng đang tăng nhanh. Time-series tối ưu cho số liệu theo thời gian (giá, nhiệt độ, chỉ số máy). Vector lưu “embedding” để tìm nội dung gần nghĩa, là thành phần quen thuộc trong hệ truy xuất tăng cường cho mô hình ngôn ngữ (RAG).
Nên chọn SQL hay NoSQL?
| Tiêu chí | CSDL quan hệ (SQL) | NoSQL |
|---|---|---|
| Cấu trúc dữ liệu | Lược đồ (schema) cố định, khai báo trước | Linh hoạt, mỗi bản ghi có thể khác nhau |
| Quan hệ phức tạp, báo cáo nhiều chiều | Rất mạnh nhờ JOIN và SQL | Hạn chế (trừ CSDL đồ thị cho bài toán quan hệ) |
| Giao dịch | ACID đầy đủ là mặc định | Tuỳ sản phẩm; nhiều hệ ưu tiên tính sẵn sàng |
| Mở rộng | Chủ yếu mở rộng dọc; mở rộng ngang cần thêm kỹ thuật (bản sao đọc, phân mảnh) | Thiết kế để mở rộng ngang từ đầu |
| Phù hợp | Kế toán, ngân hàng, ERP, đơn hàng, kho | Cache, nhật ký lớn, nội dung linh hoạt, mạng quan hệ, tìm kiếm ngữ nghĩa |
Định lý CAP nói gì?
Khi dữ liệu trải trên nhiều máy, định lý CAP giúp hiểu vì sao không có hệ phân tán nào “hoàn hảo”. Eric Brewer (Đại học California, Berkeley) nêu giả thuyết này tại hội nghị PODC năm 2000; Seth Gilbert và Nancy Lynch (MIT) chứng minh chính thức năm 2002. Ba tính chất là:
- C – Consistency (nhất quán): mọi lần đọc đều thấy bản ghi mới nhất, hoặc nhận lỗi.
- A – Availability (sẵn sàng): mọi yêu cầu tới một máy còn sống đều được trả lời.
- P – Partition tolerance (chịu phân mảnh mạng): hệ vẫn chạy khi mạng giữa các máy bị đứt hoặc chậm.
Mạng thì luôn có lúc trục trặc, nên trên thực tế câu hỏi là: khi mạng đứt, hệ của bạn chọn trả lời ngay (có thể là dữ liệu cũ) hay từ chối để giữ đúng? Hệ thanh toán thường chọn đúng; mạng xã hội hiển thị lượt thích thường chọn trả lời ngay. Mở rộng PACELC (2010) bổ sung: ngay cả khi mạng bình thường, hệ vẫn phải cân giữa độ trễ và tính nhất quán.
Năm câu hỏi để chọn cơ sở dữ liệu
- Dữ liệu có cấu trúc rõ, quan hệ chặt (khách – đơn – sản phẩm – kho) không? Có thì bắt đầu bằng CSDL quan hệ.
- Sai một đồng có chấp nhận được không? Không thì cần giao dịch ACID.
- Kiểu truy vấn chủ yếu là gì: tra theo khoá, lọc nhiều điều kiện, tổng hợp báo cáo, duyệt quan hệ hay tìm theo nghĩa?
- Lượng ghi mỗi giây và tốc độ tăng trưởng dự kiến trong 2–3 năm tới là bao nhiêu?
- Đội ngũ đã thạo công nghệ nào, và ai sẽ vận hành, sao lưu, nâng cấp?
Lưu ý: Không cần chọn “một trong hai”. Kiến trúc phổ biến là dùng CSDL quan hệ làm nguồn dữ liệu gốc, thêm Redis làm cache, thêm một công cụ tìm kiếm hoặc CSDL vector cho tính năng tìm kiếm. Nhưng mỗi hệ thêm vào là thêm một thứ phải sao lưu, giám sát và bảo mật. Hãy thêm khi có vấn đề thật, không thêm “cho đủ bộ”.
Các loại cơ sở dữ liệu theo cách dùng và nơi triển khai
Ngoài cách chia theo mô hình dữ liệu, bạn sẽ gặp các cách phân loại sau:
- Theo dạng dữ liệu: có cấu trúc (bảng), bán cấu trúc (JSON, XML, email, log), phi cấu trúc (ảnh, video, âm thanh; thường lưu file ở kho đối tượng, CSDL chỉ giữ đường dẫn và thông tin mô tả).
- Theo mô hình lịch sử: phân cấp (cây), mạng (đồ thị bản ghi), quan hệ (bảng), hướng đối tượng (lưu đối tượng như trong lập trình). Hai mô hình đầu nay chủ yếu còn trong hệ thống cũ (legacy).
- Theo mục đích: OLTP (xử lý giao dịch trực tuyến, nhiều thao tác nhỏ như đặt hàng, thanh toán) và OLAP (xử lý phân tích, quét lượng lớn dữ liệu để tổng hợp báo cáo).
- Theo nơi chạy: tự cài trên máy chủ riêng (on-premise), tự cài trên máy ảo đám mây, hoặc dùng dịch vụ được quản lý sẵn (DBaaS) mà nhà cung cấp lo vá lỗi, sao lưu, nhân bản. Bạn có thể đọc thêm về các mô hình triển khai trong bài điện toán đám mây là gì.
- Theo cách lưu: trên đĩa, hay trong bộ nhớ (in-memory) để có độ trễ thấp; tập trung một máy hay phân tán nhiều máy.
- Theo giấy phép: mã nguồn mở (PostgreSQL, MySQL bản cộng đồng, SQLite) hoặc thương mại (Oracle Database, Microsoft SQL Server bản có phí). Hãy đọc kỹ điều khoản giấy phép, vì một số sản phẩm đã đổi giấy phép trong những năm gần đây.
Cơ sở dữ liệu khác kho dữ liệu và hồ dữ liệu thế nào?
Cơ sở dữ liệu nghiệp vụ (OLTP) phục vụ việc chạy hằng ngày: ghi đơn, trừ kho, thu tiền. Khi doanh nghiệp muốn phân tích nhiều năm dữ liệu từ nhiều hệ thống, việc chạy báo cáo nặng thẳng trên CSDL nghiệp vụ sẽ làm chậm bán hàng. Lúc đó dữ liệu được sao chép sang kho dữ liệu (data warehouse) đã làm sạch, tối ưu cho truy vấn phân tích; hoặc vào hồ dữ liệu (data lake) chứa cả dữ liệu thô, phi cấu trúc. Khi khối lượng và tốc độ dữ liệu vượt khả năng một hệ đơn lẻ, bài toán chuyển sang lĩnh vực dữ liệu lớn.
Những hệ quản trị cơ sở dữ liệu phổ biến hiện nay
Theo bảng xếp hạng độ phổ biến của DB-Engines năm 2025, năm vị trí dẫn đầu là Oracle, MySQL, Microsoft SQL Server, PostgreSQL và MongoDB. Trong Khảo sát nhà phát triển Stack Overflow 2025, PostgreSQL là cơ sở dữ liệu được dùng nhiều nhất (55,6% người trả lời), tiếp theo là MySQL (40,5%), SQLite (37,5%), Microsoft SQL Server (30,1%), Redis (28%) và MongoDB (24%). Hai thước đo này khác nhau: DB-Engines đo mức độ được nhắc tới và tìm kiếm, còn Stack Overflow đo tỷ lệ lập trình viên đang dùng.
| Hệ quản trị | Mô hình | Giấy phép | Thường dùng cho |
|---|---|---|---|
| PostgreSQL | Quan hệ, đa mô hình (JSON, vector qua tiện ích) | Mã nguồn mở | Ứng dụng web, hệ nghiệp vụ, dữ liệu địa lý, ứng dụng AI |
| MySQL / MariaDB | Quan hệ | Mã nguồn mở (MySQL có thêm bản thương mại) | Website, WordPress, thương mại điện tử |
| Microsoft SQL Server | Quan hệ | Thương mại (có bản miễn phí giới hạn) | Doanh nghiệp dùng hệ sinh thái Microsoft, phần mềm kế toán, ERP |
| Oracle Database | Quan hệ, đa mô hình | Thương mại | Ngân hàng, viễn thông, tập đoàn lớn |
| SQLite | Quan hệ, nhúng trong ứng dụng | Phạm vi công cộng (public domain) | Ứng dụng di động, phần mềm máy tính, thiết bị |
| MongoDB | Tài liệu | SSPL từ tháng 10/2018 (giấy phép "source-available"), có bản thương mại | Nội dung linh hoạt, danh mục, hồ sơ người dùng |
| Redis | Khoá – giá trị, trong bộ nhớ | Tuỳ phiên bản: 7.2 trở về trước là BSD; 7.4 là RSALv2 hoặc SSPLv1; từ 8.0 có thêm lựa chọn AGPLv3 | Cache, phiên đăng nhập, bảng xếp hạng, hàng đợi |
Bảng trên chỉ nhằm định hướng, không phải khuyến nghị sản phẩm. Hãy kiểm tra giấy phép và chính sách hỗ trợ của phiên bản cụ thể tại thời điểm bạn triển khai.
Ví dụ cơ sở dữ liệu trong doanh nghiệp
- Bán lẻ, thương mại điện tử: bảng sản phẩm, tồn kho, đơn hàng, thanh toán; cache giỏ hàng; tìm kiếm sản phẩm.
- Ngân hàng, tài chính: tài khoản, giao dịch, hạn mức; yêu cầu ACID nghiêm ngặt và lưu vết đầy đủ; CSDL đồ thị hỗ trợ phát hiện gian lận.
- Quản lý khách hàng: mọi hệ CRM đều đứng trên một cơ sở dữ liệu khách hàng, lịch sử tương tác, cơ hội bán hàng.
- Sản xuất, chuỗi cung ứng: định mức nguyên vật liệu, lệnh sản xuất, lô hàng; dữ liệu cảm biến máy móc lưu trong CSDL chuỗi thời gian.
- Y tế: hồ sơ bệnh án điện tử, lịch hẹn, kết quả xét nghiệm; đây là dữ liệu cá nhân nhạy cảm, cần mức bảo vệ cao.
- Nhân sự: hồ sơ nhân viên, chấm công, bảng lương.
- Dịch vụ công: các cơ sở dữ liệu quốc gia như CSDL quốc gia về dân cư; Luật Dữ liệu 2024 còn quy định Cơ sở dữ liệu tổng hợp quốc gia, được tổng hợp từ CSDL quốc gia, CSDL chuyên ngành và các CSDL khác.
Vận hành cơ sở dữ liệu: chỉ mục, sao lưu và bảo mật
Đa số sự cố với cơ sở dữ liệu không đến từ việc chọn sai sản phẩm, mà từ vận hành sơ sài. Ba việc dưới đây quyết định hệ của bạn chạy nhanh, không mất dữ liệu và không bị lộ.
Chỉ mục (index) là gì?
Chỉ mục giống mục lục cuối sách: thay vì lật từng trang, DBMS tra chỉ mục để tới thẳng các hàng cần tìm. Không có chỉ mục, truy vấn “tìm đơn theo số điện thoại” phải quét toàn bộ bảng; có chỉ mục, thời gian giảm từ vài giây xuống vài mili giây khi bảng lớn.
- Đánh chỉ mục cho cột hay dùng để lọc, nối bảng, sắp xếp (ví dụ ma_khach, ngay_dat, so_dien_thoai).
- Đừng đánh chỉ mục mọi cột: mỗi chỉ mục làm thao tác ghi chậm hơn và tốn dung lượng.
- Dùng lệnh EXPLAIN (có trong PostgreSQL, MySQL) để xem DBMS có thực sự dùng chỉ mục không, trước khi đoán mò.
Sao lưu và phục hồi thế nào cho đúng?
- Xác định hai con số: RPO (Recovery Point Objective, chấp nhận mất tối đa bao nhiêu phút dữ liệu) và RTO (Recovery Time Objective, cần chạy lại sau bao lâu). Hai con số này quyết định tần suất sao lưu và kiến trúc dự phòng.
- Kết hợp nhiều kiểu: sao lưu toàn bộ định kỳ, sao lưu nhật ký giao dịch liên tục để phục hồi về một thời điểm (point-in-time recovery), và bản sao (replica) để chuyển đổi dự phòng.
- Áp dụng nguyên tắc 3-2-1 phổ biến: ít nhất 3 bản dữ liệu, trên 2 loại phương tiện, 1 bản để ngoài hệ thống chính. Nên có ít nhất một bản không thể bị sửa hoặc xoá (immutable) để chống mã độc tống tiền.
- Diễn tập phục hồi: bản sao lưu chưa từng khôi phục thử thì chưa thể coi là bản sao lưu. Hãy diễn tập định kỳ và ghi lại thời gian thực tế.
- Bản sao (replica) không thay sao lưu: lỡ chạy lệnh xoá nhầm, lệnh đó cũng được sao chép sang bản sao trong vài giây.
Bảo mật cơ sở dữ liệu cần làm gì?
- Quyền tối thiểu: mỗi ứng dụng một tài khoản riêng, chỉ có quyền trên đúng bảng cần dùng; không để ứng dụng chạy bằng tài khoản quản trị.
- Không mở cổng CSDL ra Internet: chỉ cho phép kết nối từ máy chủ ứng dụng hoặc qua mạng riêng, VPN.
- Chống SQL injection: luôn dùng truy vấn tham số hoá (prepared statement), không ghép chuỗi dữ liệu người dùng nhập vào câu lệnh SQL.
- Mã hoá: khi truyền (TLS) và khi lưu (mã hoá ổ đĩa hoặc mã hoá cột chứa dữ liệu nhạy cảm như số giấy tờ tùy thân).
- Nhật ký kiểm toán: ghi lại ai đọc, sửa, xuất dữ liệu nhạy cảm, lúc nào; rà soát định kỳ.
- Vá lỗi: theo dõi bản cập nhật bảo mật của DBMS và hệ điều hành; với DBaaS, kiểm tra trách nhiệm nào thuộc nhà cung cấp, trách nhiệm nào thuộc bạn.
Doanh nghiệp cần lưu ý gì về pháp lý khi lưu dữ liệu?
Từ năm 2025–2026, cơ sở dữ liệu của doanh nghiệp Việt Nam không còn chỉ là chuyện kỹ thuật. Hai văn bản quan trọng nhất:
- Luật Dữ liệu số 60/2024/QH15 (thông qua 30/11/2024, hiệu lực 01/7/2025): đưa ra định nghĩa cơ sở dữ liệu, phân loại dữ liệu theo tính chất chia sẻ (dùng chung, dùng riêng, mở) và theo mức độ quan trọng (dữ liệu cốt lõi, dữ liệu quan trọng, dữ liệu khác), cùng các quy định về xây dựng, quản trị, bảo vệ dữ liệu.
- Luật Bảo vệ dữ liệu cá nhân số 91/2025/QH15 (thông qua 26/6/2025, hiệu lực 01/01/2026): mức phạt tối đa với hành vi mua bán dữ liệu cá nhân là 10 lần khoản thu có được từ vi phạm; với vi phạm quy định chuyển dữ liệu cá nhân ra nước ngoài là 5% doanh thu năm liền trước; các vi phạm khác tối đa 3 tỷ đồng với tổ chức (cá nhân bằng một nửa).
Điều đó ảnh hưởng trực tiếp tới cách thiết kế cơ sở dữ liệu:
- Biết mình đang lưu gì: lập danh mục bảng, cột nào chứa dữ liệu cá nhân, cột nào là dữ liệu nhạy cảm (sức khoẻ, tài chính, sinh trắc học…).
- Chỉ thu thập đủ dùng: không thêm cột “cho chắc” nếu không có mục đích rõ ràng.
- Thiết kế để xoá được: khi khách rút lại đồng ý hoặc hết thời hạn lưu, dữ liệu phải xoá hoặc ẩn danh được ở mọi nơi, kể cả bản sao, kho dữ liệu, file xuất.
- Kiểm soát nơi đặt dữ liệu: dùng CSDL đám mây đặt máy chủ ở nước ngoài cần đánh giá theo quy định về chuyển dữ liệu cá nhân ra nước ngoài.
- Lưu vết truy cập: để chứng minh tuân thủ và điều tra khi có sự cố rò rỉ.
Lưu ý: Phần pháp lý ở đây chỉ nhằm định hướng kỹ thuật. Nghĩa vụ cụ thể còn phụ thuộc văn bản hướng dẫn thi hành và lĩnh vực hoạt động của doanh nghiệp; hãy tham khảo bộ phận pháp chế hoặc luật sư khi triển khai.
Doanh nghiệp nhỏ nên bắt đầu xây dựng cơ sở dữ liệu thế nào?
- Liệt kê câu hỏi nghiệp vụ: bạn muốn trả lời gì hằng ngày, hằng tháng (doanh thu theo kênh, khách quay lại, tồn kho sắp hết)? Cơ sở dữ liệu thiết kế ngược từ câu hỏi.
- Vẽ thực thể và quan hệ: khách hàng, sản phẩm, đơn hàng, nhân viên, kho… và chúng nối với nhau ra sao (sơ đồ ERD).
- Chọn nền tảng phù hợp năng lực: phần lớn doanh nghiệp nhỏ không cần tự dựng DBMS; một phần mềm bán hàng, kế toán hoặc CRM chuẩn đã có sẵn cơ sở dữ liệu bên dưới. Khi cần hệ riêng, một CSDL quan hệ mã nguồn mở hoặc dịch vụ đám mây được quản lý là điểm khởi đầu an toàn.
- Làm sạch và nhập dữ liệu cũ: gộp các file Excel rời, chuẩn hoá mã khách, số điện thoại, xoá trùng. Dữ liệu bẩn đưa vào thì báo cáo cũng sai.
- Đặt quy tắc nhập liệu: trường bắt buộc, định dạng, danh mục chọn sẵn thay vì gõ tự do.
- Thiết lập sao lưu và phân quyền ngay từ ngày đầu, không đợi có sự cố.
- Kết nối và mở rộng dần: nối website, phần mềm kế toán, công cụ báo cáo qua API; khi dữ liệu đủ nhiều, tính tới kho dữ liệu cho phân tích.
Những sai lầm thường gặp khi làm việc với cơ sở dữ liệu
- Chọn NoSQL vì “nghe hiện đại” cho dữ liệu kế toán, đơn hàng vốn có quan hệ chặt, rồi phải tự viết lại logic ràng buộc và giao dịch trong ứng dụng.
- Không có khoá chính, khoá ngoại: dữ liệu mồ côi (đơn hàng của khách không tồn tại), trùng lặp khó dọn.
- Lưu tiền bằng kiểu số thực (float): gây sai lệch làm tròn; nên dùng kiểu số thập phân cố định (DECIMAL, NUMERIC) hoặc số nguyên theo đơn vị nhỏ nhất.
- Chạy báo cáo nặng trên CSDL bán hàng vào giờ cao điểm, làm chậm toàn hệ thống.
- Sửa cấu trúc trực tiếp trên môi trường thật mà không có kịch bản thay đổi (migration) và đường lùi.
- Dùng chung một tài khoản quản trị cho mọi ứng dụng và mọi người; khi có sự cố không biết ai đã làm gì.
- Có sao lưu nhưng chưa từng khôi phục thử, hoặc để bản sao lưu cùng máy chủ với dữ liệu gốc.
Câu hỏi thường gặp
Cơ sở dữ liệu là gì nói ngắn gọn?
Là tập hợp dữ liệu được tổ chức có cấu trúc trên máy tính, để có thể tìm, thêm, sửa, xoá và chia sẻ nhanh, chính xác, an toàn. Luật Dữ liệu 2024 định nghĩa là tập hợp dữ liệu được sắp xếp, tổ chức để truy cập, khai thác, chia sẻ, quản lý và cập nhật.
Database là gì, có khác cơ sở dữ liệu không?
Không khác. Database là từ tiếng Anh, cơ sở dữ liệu là cách gọi tiếng Việt, thường viết tắt CSDL.
Hệ quản trị cơ sở dữ liệu là gì? Cho ví dụ.
Là phần mềm dùng để tạo, lưu trữ, truy vấn và bảo vệ cơ sở dữ liệu. Ví dụ: MySQL, PostgreSQL, Microsoft SQL Server, Oracle Database, SQLite (quan hệ); MongoDB, Redis, Cassandra, Neo4j (NoSQL).
Excel có phải là cơ sở dữ liệu không?
Theo nghĩa rộng, một bảng tính có cấu trúc rõ ràng là một tập dữ liệu được tổ chức. Nhưng Excel không phải hệ quản trị cơ sở dữ liệu: thiếu giao dịch, ràng buộc, phân quyền chi tiết và khả năng cho nhiều người ghi đồng thời an toàn. Microsoft Access mới là một DBMS cỡ nhỏ.
SQL có phải là cơ sở dữ liệu không?
Không. SQL là ngôn ngữ truy vấn. Các sản phẩm có chữ SQL trong tên như MySQL, PostgreSQL, SQL Server là hệ quản trị cơ sở dữ liệu dùng ngôn ngữ SQL.
Cơ sở dữ liệu quan hệ và NoSQL, cái nào tốt hơn?
Không có cái nào tốt hơn tuyệt đối. CSDL quan hệ phù hợp dữ liệu có cấu trúc, quan hệ chặt và cần giao dịch chính xác. NoSQL phù hợp dữ liệu linh hoạt, lượng ghi rất lớn hoặc mô hình chuyên biệt như đồ thị, vector. Nhiều hệ thống dùng cả hai.
Học cơ sở dữ liệu nên bắt đầu từ đâu?
Bắt đầu với mô hình quan hệ và SQL: bảng, khoá, JOIN, GROUP BY, chỉ mục, giao dịch. Cài một hệ miễn phí như PostgreSQL hoặc SQLite, tự thiết kế CSDL cho một bài toán quen thuộc (quản lý thư viện, cửa hàng). Sau đó mới mở rộng sang NoSQL và tối ưu hiệu năng.
Cơ sở dữ liệu vector là gì, có cần cho AI không?
Là CSDL lưu các vector số biểu diễn ý nghĩa của văn bản, hình ảnh, cho phép tìm “nội dung gần nghĩa” thay vì khớp từ khoá. Nó hữu ích khi xây chatbot hỏi đáp trên tài liệu nội bộ. Nếu đã dùng PostgreSQL, bạn có thể thử tiện ích pgvector trước khi thêm một hệ riêng.
Dữ liệu khách hàng lưu trong cơ sở dữ liệu có phải tuân thủ luật không?
Có. Từ 01/01/2026, Luật Bảo vệ dữ liệu cá nhân số 91/2025/QH15 có hiệu lực. Doanh nghiệp cần biết mình lưu dữ liệu cá nhân nào, vì mục đích gì, ai được truy cập, lưu bao lâu, có chuyển ra nước ngoài không, và có biện pháp bảo vệ phù hợp.