btvn.vn
Tìm kiếm Đăng nhập

Khóa ngoài và liên kết các bảng

Lưu trên thiết bị này
Giới thiệu các hệ cơ sở dữ liệu · Chọn bài khác

Mã ở bảng này dẫn sang bảng khác

**Khóa ngoài** là trường hoặc nhóm trường trong một bảng dùng để tham chiếu tới khóa ở bảng khác. Trong bộ dữ liệu giả định, **Bản nhạc.Mã tác giả** dẫn tới **Tác giả.Mã tác giả**. Bảng **Bản thu** lưu ba trường **Mã bản thu**, **Mã bài**, **Mã ca sĩ**: | Mã bản thu | Mã bài | Mã ca sĩ | |---|---|---| | R01 | K01 | S01 | | R02 | K03 | S02 | | R03 | K01 | S02 | Ở đây Mã bản thu định danh từng bản thu. Mã bài và Mã ca sĩ là khóa ngoài: cùng một bài có thể được thu bởi nhiều ca sĩ. Mã `K01` xuất hiện hai lần trong Bản thu là bình thường; nó vẫn chỉ một hàng trong Bản nhạc.

Lần theo một bản thu

Bảng **Bản nhạc** có `K01` → “Mưa đầu mùa”, tác giả `T01`; `K03` → “Gió qua hiên”, cũng có tác giả `T01`. Bảng **Tác giả** có `T01` → An. Bảng **Ca sĩ** gồm `S01` → Chi, `S02` → Dung. Muốn đọc R03, trước hết tìm R03 trong Bản thu: mã bài `K01`, mã ca sĩ `S02`. Đối chiếu `K01` với Bản nhạc được “Mưa đầu mùa” và mã tác giả `T01`; đối chiếu `S02` với Ca sĩ được Dung; đối chiếu `T01` với Tác giả được An. Vậy R03 là bản thu “Mưa đầu mùa” do Dung thể hiện, tác giả An. Việc lấy thông tin qua các mã chung gọi là **liên kết dữ liệu** giữa các bảng. Chỉ viết cùng tên cột chưa đủ: mã tham chiếu phải được hiểu đúng theo quy tắc dữ liệu và phải có bản ghi tương ứng ở bảng được tham chiếu.

Bài luyện

Trong Bản thu, trường nào dẫn tới khóa Mã bài ở bảng Bản nhạc?
Chọn một đáp án

Bài luyện

Theo các bảng đã cho, bản thu R02 là bài nào và do ai thể hiện?
Chọn một đáp án

Bài luyện

Vì sao K01 có thể xuất hiện ở cả R01 và R03 mà không vi phạm khóa chính của Bản nhạc?
Chọn một đáp án

Đang học