Một bảng ghi một loại đối tượng
Cơ sở dữ liệu quan hệ tổ chức dữ liệu thành các **bảng** có thể liên kết với nhau. Trong một bảng, mỗi **hàng** là một **bản ghi** về một đối tượng; mỗi **cột** là một **trường**, ghi cùng một loại thông tin cho các bản ghi. Tên trường cho biết cột ấy mang ý nghĩa gì.
Ví dụ, thư viện nhạc hư cấu có bảng **Bản nhạc**:
| Mã bài | Tên bài | Mã tác giả |
|---|---|---|
| K01 | Mưa đầu mùa | T01 |
| K02 | Ngày nắng | T02 |
| K03 | Gió qua hiên | T01 |
Bảng có ba bản ghi và ba trường. Bản ghi `K03` cho biết tên bài là “Gió qua hiên”, mã tác giả là `T01`. Mã tác giả ở đây là dữ liệu để tìm thông tin trong một bảng khác; chỉ nhìn mã chưa biết tên tác giả.
Các bảng có thể liên kết
Bảng **Tác giả** của cùng CSDL có hai trường **Mã tác giả** và **Tên tác giả**: `T01` → An, `T02` → Bình. Hai tên chỉ là nhân vật giả định. Dựa vào mã `T01` ở bản ghi `K03`, ta tìm được tác giả An.
Việc tách tên tác giả sang một bảng giúp khi cần sửa tên hiển thị của An chỉ sửa ở bản ghi `T01`, thay vì tìm cả hai bản nhạc `K01` và `K03`. Đó là một lí do dùng các bảng có quan hệ, không có nghĩa cứ chia càng nhiều bảng càng tốt.
Bài luyện
Trong bảng Bản nhạc trên, “Tên bài” là gì?
“Tên bài” đứng ở đầu một cột.
Bản ghi là một hàng, chẳng hạn hàng K02.
Mã tác giả là trường khác.
Bảng chỉ là một phần của CSDL.
Lời giải
“Tên bài” là tên cột dùng để lưu tên ở mọi hàng, nên đó là một trường của bảng Bản nhạc.
Bài luyện
Bản ghi có Mã bài K03 cho biết tên bài nào?
Đây là tên ở hàng K01.
Đây là tên ở hàng K02.
Hàng K03 có Tên bài là “Gió qua hiên”.
An là tên tác giả tra ở bảng khác.
Lời giải
Tìm hàng có Mã bài K03 rồi đọc cột Tên bài. Giao điểm ấy ghi “Gió qua hiên”.
Bài luyện
Muốn biết tên tác giả của K01, cần tra tiếp bảng nào theo mã T01?
Cột Tên bài không chứa tên tác giả.
T01 được đối chiếu với Mã tác giả trong bảng Tác giả.
K02 có mã T02.
T01 là mã, không phải tên.
Lời giải
Bản ghi K01 có Mã tác giả T01. Tra T01 ở bảng Tác giả được tên An.
Đang học