Bài 13: Chủ đề: Cơ sở dữ liệu quan hệ - Tin học 11 Kết nối tri thức

Web Publisher User

Chủ đề: Làm quen với cơ sở dữ liệu quan hệ

1. Tại sao phải "quan hệ"?

Tưởng tượng bạn là người quản lý điểm của một trung tâm ngoại ngữ. Ban đầu, bạn có thể tạo một file Excel khổng lồ như thế này:

SBD

Họ tên

Ngày sinh

Lớp

Tên Môn học

Giáo viên dạy

Điểm

001

Nguyễn Văn An

10/05/2007

11A1

Tiếng Anh A1

Cô Mai

8.5

002

Trần Thị Bình

12/03/2007

11A2

Tiếng Anh A2

Thầy Hùng

9.0

001

Nguyễn Văn An

10/05/2007

11A1

Tiếng Pháp B1

Thầy Thái

7.5

003

Lê Văn Cường

20/08/2007

11A1

Tiếng Anh A1

Cô Mai

8.0

Bạn thấy có vấn đề gì không?

  • Dư thừa thông tin: Bạn "Nguyễn Văn An" thi 2 môn, nên phải nhập lại "Họ tên", "Ngày sinh", "Lớp" tới 2 lần. Nếu bạn ấy thi 10 môn thì sao? Rất tốn công và tốn dung lượng!
  • Khó cập nhật: Nếu bạn An chuyển sang lớp 11A3, bạn phải tìm tất cả các dòng có tên bạn An để sửa. Sót một dòng thôi là thông tin sẽ bị sai lệch ngay!
  • Dễ gõ nhầm: Lúc thì gõ "Cô Mai", lúc gõ nhầm thành "cô mai". Máy tính sẽ hiểu đây là 2 người khác nhau.

Giải pháp: "Chia để trị"! Thay vì bỏ tất cả vào một bảng lớn, chúng ta sẽ tách ra thành các bảng nhỏ hơn, mỗi bảng quản lý một đối tượng cụ thể.

  • Bảng HOCSINH: Chỉ chứa thông tin học sinh.
  • Bảng MONHOC: Chỉ chứa thông tin môn học.
  • Bảng DIEM: Chứa điểm của học sinh theo từng môn.

Đây chính là ý tưởng cốt lõi của CSDL quan hệ: lưu trữ dữ liệu trong các bảng riêng biệt và tạo ra mối liên hệ giữa chúng.

2. Các đặc điểm hình thành nên cơ sở dữ liệu quan hệ

Để hiểu rõ hơn, chúng ta cần nắm vững vài thuật ngữ cơ bản nhé.

Bảng (Table):

Giống như một trang tính Excel, dùng để lưu trữ thông tin về một loại đối tượng cụ thể.

Ví dụ: Bảng HOCSINH, bảng NHACSI, bảng SANPHAM.

Trường (Field / Column):

Là một cột trong bảng, thể hiện một thuộc tính (đặc điểm) của đối tượng.

Ví dụ: Trong bảng HOCSINH, ta có các trường: MaHS, HoTen, NgaySinh.

Bản ghi (Record / Row):

Là một hàng trong bảng, chứa thông tin đầy đủ về một đối tượng cụ thể.

Ví dụ: Hàng "HS001 - Nguyễn Văn An - 10/05/2007" là một bản ghi trong bảng HOCSINH.

 

3. Khóa chính & khóa ngoài

a) Khóa Chính (Primary Key)

🧠 Câu hỏi: Trong danh sách lớp, làm sao để phân biệt 2 bạn trùng tên "Nguyễn Văn An"? Dùng tên thì không ổn rồi!

🔑 Trả lời: Chúng ta dùng Mã học sinh! Mỗi học sinh có một mã duy nhất, không bao giờ trùng lặp.

 

Khóa chính là một (hoặc nhiều) trường dùng để xác định duy nhất một bản ghi (một hàng) trong bảng.

Chú ý: Giá trị của khóa chính là DUY NHẤTKHÔNG ĐƯỢC ĐỂ TRỐNG (NULL).

Ví dụ: MaHS trong bảng HOCSINH, MaSach trong bảng SACH, Số CCCD trong bảng CONGDAN.

 

b) Khóa Ngoài (Foreign Key)

🧠 Câu hỏi: Nhìn vào bảng DIEM chỉ có MaMon và DiemSo, làm sao biết điểm này là của học sinh nào?

🔗 Trả lời: Chúng ta cần thêm trường MaHS vào bảng DIEM. Trường MaHS này chính là Khóa ngoài.

 

Khóa ngoài là một trường trong một bảng, mà giá trị của nó chính là khóa chính của một bảng khác. Nó tạo ra mối liên kết giữa hai bảng.

Ví dụ: Trong bảng DIEM, MaHS là khóa ngoài, liên kết đến khóa chính MaHS của bảng HOCSINH. Tương tự, MaMon là khóa ngoài liên kết đến bảng MONHOC.

c) Ví dụ trực quan:

Bảng HOCSINH (Khóa chính: MaHS)

MaHS

HoTen

HS001

Nguyễn Văn An

HS002

Trần Thị Bình

 

Bảng DIEM (Khóa ngoài: MaHS)

MaDiem

MaHS

MonHoc

Diem

D01

HS001

Toán

8.5

D02

HS002

9.3

D03

HS003

Hóa

7.8

 

Khi nhìn vào dòng D03 của bảng DIEM, ta thấy MaHS là "HS001". Ta dùng mã này "tra cứu" ngược lại bảng HOCSINH và biết ngay điểm 8.5 môn Hóa là của bạn "Nguyễn Văn An". Phép "tra cứu" này được gọi là liên kết (join).

 


4. Bài tập vận dụng

Hãy cùng phân tích CSDL của một thư viện đơn giản nhé!

Bảng DOCGIA

MaDocGia

HoTenDocGia

DiaChi

DG01

Lê Minh

Hà Nội

DG02

Mai Anh

TP. HCM

 

Bảng SACH

MaSach

TenSach

TacGia

S001

Lão Hạc

Nam Cao

S002

Dế Mèn

Tô Hoài

 

Bảng MUONSACH

MaPhieu

MaSach

MaDocGia

NgayMuon

PM01

S002

DG01

15/10/2023

PM02

S001

DG02

16/10/2023

PM03

S001

DG01

18/10/2023

 

Câu hỏi:

  1. Xác định khóa chính cho mỗi bảng trên.
  2. Trong bảng MUONSACH, trường nào là khóa ngoài? Chúng liên kết tới các bảng nào?
  3. Dựa vào dữ liệu, hãy cho biết: Bạn "Lê Minh" đã mượn những quyển sách nào?

Đáp án gợi ý


1. Khóa chính: Bảng DOCGIA -> MaDocGia. Bảng SACH -> MaSach. Bảng MUONSACH -> MaPhieu.

2. Khóa ngoài trong bảng MUONSACH là:

    • MaSach (liên kết đến khóa chính của bảng SACH).
    • MaDocGia (liên kết đến khóa chính của bảng DOCGIA).

3. Chi tiết quá trình thực hiện như sau:

Tìm "Lê Minh" trong bảng DOCGIA, thấy mã là DG01.

Tìm các dòng có MaDocGia là DG01 trong bảng MUONSACH, ta thấy có PM01 và PM03.

Tra cứu MaSach tương ứng (S002, S001) qua bảng SACH, ta biết bạn Lê Minh đã mượn sách "Dế Mèn..." và "Lão Hạc".


Post a Comment

Chúng tôi rất vui khi bạn muốn đóng góp ý kiến. Để đảm bảo môi trường trao đổi lành mạnh, vui lòng tuân thủ các quy định sau:

1. Sử dụng tiếng Việt có dấu đầy đủ, tránh viết tắt.
2. Bình luận sẽ được kiểm duyệt trước khi công khai.
3. Tôn trọng người khác và đóng góp ý kiến xây dựng.
4. Tuân thủ chính sách của Google và TTKT.

Cảm ơn bạn đã đồng hành cùng chúng tôi!

CẢNH BÁO

Gần đây, chúng tôi phát hiện nội dung bị chụp màn hình và chia sẻ trái phép. TTKT khuyến cáo bạn không nên chụp màn hình mà hãy chia sẻ link đến bài viết để tôn trọng tác giả và tránh bị vô hiệu hóa tài khoản.

Yêu cầu Đăng nhập

Để tiếp tục sử dụng, vui lòng đăng nhập.