Câu 1Theo khác biệt mà bài này nêu, lý do đặt bản ghi đặt chỗ vào cơ sở dữ liệu thay vì file là gì?
Cơ sở dữ liệu là gì — khác file ra sao, bảng và SQL
Bài viết này nằm trong khóa Kiến thức nền tảng về CNTT, xây dựng từ đầu những kiến thức CNTT thực tế tối thiểu mà bạn cần để lập trình và vibe coding.
Cơ sở dữ liệu nhận ba việc: tìm kiếm, xử lý các lượt ghi tới cùng lúc, và cố định hình dạng của bản ghi. Các sơ đồ cho thấy bảng gồm hàng và cột, cùng với SQL để ra lệnh đọc ghi.
Bài viết này nói về tầng DB, tức là cơ sở dữ liệu.
Cơ sở dữ liệu là phần mềm lưu dữ liệu ở dạng tìm kiếm và cập nhật được.
Điểm khác với file không phải là chỗ đặt bản ghi, mà là nó nhận luôn cả việc tìm kiếm và việc sắp xếp các lượt ghi.
Cơ sở dữ liệu khác file ở chỗ nào — tìm kiếm, ghi đồng thời, cố định hình dạng
Cơ sở dữ liệu không chỉ là chỗ chứa để lưu bản ghi.
Nó nhận ba việc: tìm những hàng khớp điều kiện, xử lý lần lượt các lượt ghi tới cùng lúc, và giữ cho hình dạng bản ghi thống nhất.
Dù tới cùng một thời điểm, các lượt ghi vẫn được xử lý lần lượt từng cái một.
Nếu ghi thẳng vào file, chính chương trình của bạn phải quyết định thứ tự đó.
Các cơ sở dữ liệu hay dùng là PostgreSQL, MySQL và SQLite.
Những bản ghi chỉ một người sửa, như cấu hình, để nguyên dạng file cũng không sao.
Những bản ghi mà nhiều người cùng đọc ghi và bạn tìm theo điều kiện mới là thứ đặt vào cơ sở dữ liệu.
Cơ sở dữ liệu nhận ba việc
Với file cũng như với cơ sở dữ liệu, bản ghi đều nằm lại trên lưu trữ; khác nhau là ai làm việc tìm kiếm, ai định thứ tự khi các lượt ghi tới cùng lúc, và ai giữ cho hình dạng bản ghi thống nhất.
Với file thì chính chương trình của bạn làm hết, còn với cơ sở dữ liệu bạn chỉ cần nói mình muốn những bản ghi như thế nào, và những hàng không đúng dạng sẽ được từ chối giúp bạn.
Bảng lưu bản ghi dưới dạng lưới gồm hàng và cột
Đơn vị lưu bản ghi bên trong cơ sở dữ liệu là bảng (table. Lưới gồm hàng và cột, gom lại những bản ghi cùng loại).
| ID đặt chỗ | ID thành viên | Ngày | Số người |
|---|---|---|---|
| 1 | 12 | 2026-10-03 | 2 |
| 2 | 7 | 2026-10-03 | 4 |
| 3 | 12 | 2026-10-10 | 3 |
Mỗi tiêu đề là một cột (column. Một mục của bản ghi), còn mỗi dòng ngang bên dưới là một hàng (row. Một bản ghi trọn vẹn, cũng gọi là record).
Cột dùng để xác định đúng một hàng là khóa chính (primary key. Cột không thể có hai hàng cùng giá trị).
Các cột được quyết định từ trước, và mỗi lần thêm một bản ghi thì thêm một hàng.
- Cột: ID đặt chỗ, ID thành viên, ngày, số người
- 1 hàng = 1 lượt đặt chỗ
- Mỗi lượt đặt chỗ lại thêm một hàng
- Cột: ID thành viên, tên, địa chỉ email
- 1 hàng = 1 thành viên
- Mỗi lần đăng ký lại thêm một hàng
Bảng đặt chỗ không ghi tên thành viên, chỉ đặt ID thành viên.
Tên chỉ nằm ở đúng một chỗ là bảng thành viên, nên khi tên đổi thì chỉ có một hàng phải sửa.
Cơ sở dữ liệu giữ dữ liệu dưới dạng lưới gồm hàng và cột là cơ sở dữ liệu quan hệ (relational database. Cũng viết là RDB), và các bảng nối được với nhau qua một cột chung.
Thứ bạn quyết định trước khi tạo bảng là schema (thứ quy định tên bảng, tên các cột và loại giá trị nằm trong mỗi cột), trong đó loại giá trị là sự phân biệt kiểu số, chữ hay ngày, cũng viết là kiểu (type).
Bảng cố định cột trước rồi lớn lên theo hàng
Bảng là lưới gồm các cột dọc và các hàng ngang.
Tên cột được quyết định trước, mỗi bản ghi mới lại thêm một hàng, và khi bạn đặt giá trị khóa chính dùng để phân biệt một bản ghi sang cả bảng khác thì hai bảng nối được với nhau.
SQL là cách viết các lệnh đọc ghi mà tầng App gửi tới cơ sở dữ liệu
Cách viết lệnh đọc ghi cho bảng là SQL (Structured Query Language. Ngôn ngữ ra lệnh đọc, thêm, sửa và xóa hàng), và một lệnh gọi là một truy vấn (query).
Trong sách nhập môn nó xuất hiện ở dạng sau.
SELECT date, guests
FROM reservations
WHERE member_id = 12;
Sau SELECT là các cột cần lấy ra, sau FROM là bảng, sau WHERE là điều kiện.
Ba dòng này là lệnh lấy ngày và số người từ những hàng có ID thành viên bằng 12 trong bảng đặt chỗ.
Nhìn từ đầu tiên là biết đó là đọc, thêm, sửa hay xóa.
Tìm hàng là việc của cơ sở dữ liệu, còn tầng App chỉ nói nó muốn những hàng nào.
Với sửa và xóa, thứ thay đổi không phải là hàng trả về mà là hàng còn lại trong bảng.
Thành phần cho phép bạn làm việc với bảng bằng cú pháp của ngôn ngữ thay vì viết SQL là ORM (Object-Relational Mapping. Thành phần xử lý hàng của bảng bằng cú pháp của ngôn ngữ rồi chuyển thành SQL và gửi đi).
Dù bạn dùng ORM, thứ tới nơi vẫn là một truy vấn SQL.
Việc tự viết và chạy SQL được nói tới trong bài SELECT của khóa SQL nhập môn.
SQL là cách nói ra những hàng bạn muốn
SQL là cách viết khi bạn nhờ cơ sở dữ liệu đọc hoặc ghi.
Từ đầu tiên quyết định là đọc, thêm, sửa hay xóa, còn hàng nào là đối tượng thì bạn nói bằng điều kiện, và việc tìm kiếm do cơ sở dữ liệu làm.
Kiểm tra kiến thức
Hãy trả lời từng câu hỏi một.
Câu 2Truy vấn SELECT date, guests FROM reservations WHERE member_id = 12; ra lệnh làm gì?
Câu 3Vì sao bảng đặt chỗ đặt ID thành viên chứ không phải tên thành viên?