Bài 13

Cơ sở dữ liệu quan hệ

Từ những bảng dữ liệu quen thuộc, em sẽ khám phá cách tổ chức, liên kết và truy vấn dữ liệu một cách chính xác.

Tình huống mở đầu

Một ô tìm kiếm, rất nhiều bảng dữ liệu

Khi em tìm bài hát “Xa khơi”, ứng dụng nhanh chóng cho biết tên bài hát, nhạc sĩ sáng tác và ca sĩ thể hiện. Nhưng các thông tin ấy lại được lưu ở những bảng khác nhau.

Dự đoán: Ứng dụng dựa vào đâu để ghép đúng các thông tin?
Bài hát
Xa khơi
Nhạc sĩ
Nguyễn Tài Tuệ
Khóa liên kết
Mid = 0004 · Aid = 4
1

Mục tiêu bài học

Sau bài học này, em có thể:

01

Nhận biết mô hình quan hệ

Giải thích được vì sao dữ liệu được tổ chức thành các bảng có liên hệ với nhau.

02

Phân biệt bản ghi và trường

Xác định được hàng, cột, bản ghi và trường trong một bảng dữ liệu.

03

Xác định các loại khóa

Nhận biết khóa chính, khóa ngoài và vai trò của chúng trong liên kết dữ liệu.

04

Chọn kiểu dữ liệu

Chọn kiểu dữ liệu và ràng buộc phù hợp cho từng trường.

05

Thực hiện phép nối

Quan sát từng bước cách ghép các bảng bằng trường khóa chung.

06

Truy vấn bằng SQL

Viết và chạy câu lệnh SELECT đơn giản trên dữ liệu âm nhạc mẫu.

2

Kiến thức mới

CSDL quan hệ tổ chức dữ liệu thành các bảng và nối chúng bằng khóa.

1. Khái niệm cơ sở dữ liệu quan hệ

CSDL âm nhạc gồm bốn bảng

Thay vì lặp lại tên nhạc sĩ và ca sĩ ở mọi nơi, dữ liệu được chia thành các bảng Nhạc sĩ, Ca sĩ, Bản nhạcBản thu âm. Các mã Aid, Sid và Mid giúp liên kết chúng.

Nhạc sĩ
Aid PKTenNS
1Đỗ Nhuận
2Văn Cao
3Hoàng Việt
4Nguyễn Tài Tuệ
Ca sĩ
Sid PKTenCS
TKTrần Khánh
LDLê Dung
TNTấn Nhân
QHQuốc Hương
Bản nhạc
Mid PKAid FKTenBN
00011Du kích sông Thao
00022Trường ca sông Lô
00033Tình ca
00044Xa khơi
00051Việt Nam quê hương tôi
00062Tiến về Hà Nội
Bản thu âm
Mid FKSid FK
0001TK
0001LD
0005TK
0005TN
0002QH
0002QH

Cơ sở dữ liệu quan hệ là hệ thống quản lý dữ liệu lưu trữ thông tin dưới dạng các tập hợp bảng có quan hệ logic với nhau thông qua khóa chính (Primary Key) và khóa ngoại (Foreign Key), đảm bảo tuân thủ nghiêm ngặt các đặc tính ACID (Atomicity, Consistency, Isolation, Durability) để duy trì tính toàn vẹn dữ liệu.

Nguồn: Microsoft – trích từ tài liệu Azure Cloud Architecture Guides.
Atomicity – tính nguyên tử: một giao dịch hoặc thực hiện trọn vẹn, hoặc không để lại thay đổi nào. Consistency – tính nhất quán: dữ liệu luôn thỏa mãn mọi ràng buộc đã đặt ra. Isolation – tính độc lập: các giao dịch chạy đồng thời không làm sai lệch kết quả của nhau. Durability – tính bền vững: kết quả đã ghi nhận không bị mất kể cả khi mất điện, sự cố.
2. Một số thuật ngữ, khái niệm liên quan

Bản ghi

Một hàng của bảng, ghi dữ liệu về một đối tượng cụ thể. Ví dụ: một hàng mô tả nhạc sĩ Văn Cao.

Trường

Một cột của bảng, thể hiện một thuộc tính. Ví dụ: TenNS là trường tên nhạc sĩ.

Khóa chính

Một trường hoặc nhóm trường có giá trị không trùng nhau, dùng để xác định duy nhất mỗi bản ghi.

Khóa ngoài

Trường hoặc nhóm trường tham chiếu tới khóa chính của bảng khác, tạo mối liên hệ giữa các bảng.

Liên kết dữ liệu

Ghép dữ liệu từ hai hay nhiều bảng dựa trên trường chung để tạo ra thông tin đầy đủ hơn.

Kiểu dữ liệu & ràng buộc

Quy định miền giá trị của trường, giúp kiểm soát tính hợp lệ và nhất quán của dữ liệu.

Ví dụ: Bảng điểm thi tiếng Anh
SBDHọ và tênGiới tínhNgày sinhĐiểmMã kì thi
1Phan Việt AnNam17/10/20056,25A1001
2Trần Duy AnhNam11/09/20048,00A1001
3Bùi Thị HươngNữ20/03/20069,50A1001

Ràng buộc dữ liệu: SBD là số nguyên; họ tên là xâu tối đa 64 kí tự; giới tính chỉ nhận “Nam” hoặc “Nữ”; ngày sinh là ngày hợp lệ; điểm từ 0 đến 10; mã kì thi là xâu tối đa 5 kí tự.

Xem bản đồ quan hệ →
3

Bản đồ quan hệ và mô hình 3D

Chạm vào từng bảng, sau đó xoay mô hình để quan sát các lớp dữ liệu và khóa.

Mô hình 3D cấu trúc quan hệ
BẢN NHẠC🔑 Mid↗ AidTenBN
NHẠC SĨ🔑 AidTenNS
BẢN THU ÂM↗ Mid↗ Sid

Nhiệm vụ quan sát

Kéo trực tiếp mô hình để xoay. Các mặt biểu diễn bảng; trường cùng tên tạo đường tham chiếu giữa các mặt.

Góc X: −18° · Góc Y: 28°

Phương án tĩnh: Bản nhạc nối Nhạc sĩ qua Aid; Bản thu âm nối Bản nhạc qua Mid và nối Ca sĩ qua Sid.

4

Mô phỏng phép nối dữ liệu

Theo dõi từng bản thu âm tìm bản nhạc, nhạc sĩ và ca sĩ tương ứng.

Nhiệm vụ khám phá
  1. Dự đoán số dòng của bảng kết quả.
  2. Bấm Bước tiếp để quan sát từng phép ghép khóa.
  3. Đọc biểu đồ, viết kết luận về vai trò của khóa ngoài.
Dự đoán: 6 dòng của bảng Bản thu âm sẽ tạo ra bao nhiêu dòng sau khi nối đủ dữ liệu?
0/6 bước

Sẵn sàng. Hãy chọn dự đoán rồi bấm “Bước tiếp”.

Bảng Bản thu âm

#MidSid
10001TK
20001LD
30005TK
40005TN
50002QH
60002QH

Bảng kết quả nối

Kết quả sẽ xuất hiện từng dòng sau mỗi bước.

Biểu đồ số bản thu theo bài hát

Du kích sông Thao
0
Việt Nam quê hương tôi
0
Trường ca sông Lô
0

Đơn vị: số dòng bản thu âm trong dữ liệu mẫu của bài.

5

Phòng thực hành mã lệnh SQL

Chỉnh sửa câu lệnh SELECT và chạy trên bộ dữ liệu âm nhạc mẫu.

Nhiệm vụ: Tìm tên bản nhạc cùng tên nhạc sĩ sáng tác. Thử thay đổi danh sách trường, thêm WHERE hoặc ORDER BY. Bộ chạy chỉ xử lí truy vấn đọc dữ liệu, không truy cập tệp hay mạng.

SQL Lab · Chế độ an toàn
Bộ máy: Đang tảiLượt chạy: Chưa chạy
Kết quả truy vấn sẽ hiển thị tại đây.
6

Luyện tập

5 câu hỏi, mỗi lần một câu. Trả lời để mở khóa câu tiếp theo.

Câu 1/5

Cơ sở dữ liệu quan hệ là gì?

Chọn một phương án để nhận phản hồi.
0/5điểm luyện tập

Hoàn thành!

7

Tổng kết kiến thức

Năm ý chính tạo thành một chuỗi logic của mô hình quan hệ.

BảngTổ chức dữ liệu theo hàng và cột.
Bản ghi & trườngHàng mô tả đối tượng; cột mô tả thuộc tính.
Khóa chínhPhân biệt duy nhất từng bản ghi.
Khóa ngoàiTham chiếu khóa chính của bảng khác.
Liên kếtGhép bảng để tạo thông tin đầy đủ.

Điểm luyện tập: Chưa hoàn thành

Hãy hoàn thành 5 câu luyện tập để cập nhật kết quả tại đây.

Tự đánh giá

Em đã làm được gì?

  • Nhận biết bản ghi, trường và bảng.
  • Xác định khóa chính, khóa ngoài.
  • Quan sát và thực hiện phép nối.
  • Chạy truy vấn SELECT cơ bản.
Vận dụng

CSDL quản lí điểm ở trường

Hãy đề xuất ba bảng để quản lí học sinh, môn học và điểm; xác định khóa chính và khóa ngoài để liên kết các bảng đó.

Câu hỏi mở: Nếu hai học sinh trùng họ tên, trường nào nên dùng để phân biệt?

Từ điển thuật ngữ

Relation
Quan hệ; trong mô hình quan hệ thường được thể hiện bằng một bảng.
Record
Bản ghi, tương ứng với một hàng của bảng.
Field
Trường, tương ứng với một cột của bảng.
Primary key
Khóa chính, xác định duy nhất từng bản ghi.
Foreign key
Khóa ngoài, tham chiếu tới khóa chính ở bảng khác.
Join
Phép nối dữ liệu từ các bảng dựa trên trường chung.