Đại số quan hệ trong cơ sở dữ liệu: Tìm hiểu các phép toán trong cơ sở dữ liệu
12/12/2025Đại số quan hệ trong cơ sở dữ liệu được định nghĩa là một ngôn ngữ truy vấn thủ tục. Tại đây, việc truy xuất dữ liệu không diễn ra ngẫu nhiên mà được thực thi thông qua một hệ thống các toán tử chặt chẽ và logic. Trong bài viết này, hãy cùng Viettel IDC đi sâu tìm hiểu bản chất của đại số quan hệ, đồng thời khám phá các phép toán cốt lõi đang vận hành bên trong nó.

Đại số quan hệ trong cơ sở dữ liệu là gì?
Đại số quan hệ được giới thiệu lần đầu vào năm 1970 bởi Edgar F. Codd – người được mệnh danh là "Cha đẻ của DBMS". Đây được coi là nền tảng lý thuyết vững chắc cho các hệ cơ sở dữ liệu hiện đại.
Đại số quan hệ trong cơ sở dữ liệu được phân loại là một ngôn ngữ truy vấn thủ tục (Procedural Query Language - PQL). Sự khác biệt cốt lõi của PQL nằm ở chỗ, khi thực hiện truy vấn, người dùng (hoặc lập trình viên) bắt buộc phải xác định rõ hai yếu tố:
- "Làm cái gì”: Xác định dữ liệu nào cần được truy xuất.
- "Làm như thế nào”: Chỉ định rõ lộ trình, phương pháp hoặc thuật toán cụ thể để hệ thống đi tìm và lấy dữ liệu đó từ cơ sở dữ liệu.
Nói cách khác, nếu dữ liệu là kho báu, thì đại số quan hệ không chỉ yêu cầu bạn nói "Tôi muốn kho báu", mà còn bắt bạn phải vẽ ra tấm bản đồ chỉ đường để đến được kho báu đó.
Các loại phép toán trong cơ sở dữ liệu
Trong đại số quan hệ trong cơ sở dữ liệu, hệ thống các toán tử xử lý dữ liệu được chia thành hai nhóm chính:
- Các phép toán Cơ bản (Basic Operations)
- Các phép toán Dẫn xuất (Derived Operations)
Lưu ý: Một đặc điểm cốt lõi của đại số quan hệ là tính khép kín. Khi bạn áp dụng bất kỳ phép toán nào lên các quan hệ (bảng dữ liệu đầu vào), kết quả trả về sẽ luôn là một quan hệ mới (bảng dữ liệu đầu ra). Điều này cho phép chúng ta thực hiện các truy vấn phức tạp bằng cách lồng ghép nhiều phép toán lại với nhau.
Các phép toán cơ bản của đại số quan hệ trong cơ sở dữ liệu
Dưới đây là chi tiết về 6 phép toán cơ bản của đại số quan hệ trong cơ sở dữ liệu. Đây là những công cụ cốt lõi giúp thực hiện phần lớn các thao tác truy xuất dữ liệu.
Trước khi đi vào chi tiết, chúng ta hãy thiết lập bối cảnh với hai bảng dữ liệu (Quan hệ) mẫu là SINH VIÊN và NHÂN VIÊN để sử dụng cho các ví dụ bên dưới.
Bảng SINH_VIÊN gồm Mã số (MSSV), Tên và Tuổi.
Bảng NHÂN_VIÊN gồm Mã nhân viên (MSNV), Tên và Tuổi.
1. Phép Chọn (σ)
Phép chọn được thực hiện bởi Toán tử Chọn, ký hiệu là "sigma" (σ). Nó được sử dụng để lấy các bộ (hàng/dòng) từ bảng thỏa mãn một điều kiện nhất định. Trong đại số quan hệ trong cơ sở dữ liệu thì đây là toán tử một ngôi (unary).
Ký hiệu: σP(R)
- σ: Đại diện cho PHÉP CHỌN
- R: Đại diện cho QUAN HỆ (Bảng)
- p: Công thức logic (Điều kiện)
Giả sử chúng ta muốn tìm các dòng trong bảng SINH_VIÊN có "TUỔI" là 20.
σTuổi=20(SINH_VIÊN)
Kết quả trả về:
2. Phép Chiếu (⨅)
Đối với đại số quan hệ trong cơ sở dữ liệu, phép chiếu được thực hiện bởi Toán tử Chiếu, ký hiệu là "pi" (⨅). Nó được dùng để lấy các thuộc tính (cột) cụ thể từ bảng. Phép này còn gọi là phân hoạch dọc.
Ký hiệu: a(r)
- ⨅: Đại diện cho PHÉP CHIẾU
- r: Đại diện cho QUAN HỆ
- a: Danh sách thuộc tính cần lấy
Giả sử chúng ta muốn lấy tên của tất cả sinh viên trong bảng SINH_VIÊN: TÊN(SINH_VIÊN)
Kết quả trả về:
Lưu ý: Như bạn thấy trong kết quả trên, tên "Giang" xuất hiện 2 lần trong bảng gốc nhưng đã được tự động loại bỏ giá trị trùng lặp.
Đối với nhiều thuộc tính, chúng ta dùng dấu phẩy "," để ngăn cách: MSSV,TÊN(SINH_VIÊN)
Kết quả:
3. Phép đổi tên (ρ)
Phép đổi tên được ký hiệu là "Rho" (ρ). Đúng như tên gọi, nó được dùng để đổi tên quan hệ đầu ra.
Ký hiệu: ρ(R, S)
- R: Tên quan hệ mới
- S: Tên quan hệ cũ
Giả sử chúng ta đang lấy tên của sinh viên từ bảng SINH_VIÊN. Chúng ta muốn đổi tên bảng kết quả này thành DANH_SACH_SV.
ρ(DANH_SÁCH_SV, TÊN(SINH_VIÊN))
Kết quả:
Bảng dưới đây có tên là "DANH_SÁCH_SV".
DANH_SÁCH_SV
4. Phép Hợp (∪)
Đối với đại số quan hệ trong cơ sở dữ liệu, phép hợp sử dụng ký hiệu "union" (∪). Giống như trong lý thuyết tập hợp, nó chọn tất cả các bộ (dòng) từ cả hai quan hệ. Tuy nhiên, điều kiện bắt buộc là hai bảng phải có cùng tập hợp thuộc tính (tương thích hợp).
Ký hiệu: R ∪ S
- R: Quan hệ thứ nhất
- S: Quan hệ thứ hai
Lưu ý: Nếu các quan hệ không có cùng tập thuộc tính, kết quả sẽ bị lỗi hoặc trả về NULL.
Giả sử chúng ta muốn lấy danh sách tất cả TÊN từ cả bảng SINH_VIÊN và NHÂN_VIÊN.
TÊN(SINH_VIÊN) ∪ TÊN(NHÂN_VIÊN)
Kết quả trả về:
(Đã loại bỏ trùng lặp và gộp tên từ cả 2 bảng)
5. Phép Trừ (-)
Phép trừ (hay Hiệu tập hợp) là sự khác biệt giữa hai quan hệ (R - S). Nó được ký hiệu bằng dấu gạch nối (-) và trả về tất cả các dòng có trong quan hệ R nhưng không có trong quan hệ S.
Ký hiệu: R - S
Tương tự như phép hợp, phép trừ cũng yêu cầu hai quan hệ phải có cùng tập thuộc tính.
Ví dụ: Chúng ta muốn biết tên những người là SINH_VIÊN nhưng không phải là NHÂN_VIÊN.
TÊN(SINH_VIÊN) - TÊN(NHÂN_VIÊN)
Kết quả trả về:
(Loại bỏ Cường và Dũng vì họ cũng có tên trong danh sách Nhân viên)
6. Tích đề các (X)
Tích Đề các được ký hiệu bằng dấu "X". Giả sử có hai quan hệ R và S. Tích Đề các sẽ kết hợp mọi dòng từ R với tất cả các dòng từ S.
- Ký hiệu: RxS
Ví dụ: Hãy kết hợp hai bảng SINH_VIÊN và NHÂN_VIÊN.
SINH_VIÊN x NHÂN_VIÊN
Kết quả trả về (Một phần):
(Và cứ thế tiếp tục cho đến hết các dòng)

Các phép toán dẫn xuất của đại số quan hệ trong cơ sở dữ liệu
Các phép toán dẫn xuất từ đại số quan hệ trong cơ sở dữ liệu được gọi là các phép toán mở rộng, bao gồm 3 loại chính: Phép toán kết hợp, phép toán giao và phép toán chia.
1. Phép Giao (∩)
Phép giao trả về các bộ (dòng) xuất hiện trong CẢ HAI quan hệ. Điều kiện là hai quan hệ phải tương thích hợp (cùng số lượng và kiểu thuộc tính).
Ký hiệu: R ∩ S
Ví dụ: Tìm những người có tên xuất hiện ở cả bảng SINH_VIÊN và bảng NHÂN_VIÊN.
TÊN(SINH_VIÊN) ∩ TÊN(NHÂN_VIÊN)
Kết quả:
(Lưu ý: Trong ví dụ ở các phép toán cơ bản của đại số quan hệ trong cơ sở dữ liệu, nếu xét kỹ dữ liệu thì chỉ có Giang (hoặc tên trùng nhau tùy dữ liệu mẫu) là xuất hiện ở cả hai nơi).
2. Phép Chia (÷ hoặc /)
Phép chia của đại số quan hệ trong cơ sở dữ liệu là công cụ mạnh mẽ để giải quyết các truy vấn có tính chất "bao trùm tất cả".
Ký hiệu: R/S Nghĩa là: Tìm các đối tượng trong bảng R có quan hệ với tất cả các đối tượng trong bảng S.
Để dễ hiểu, hãy xét ví dụ nhỏ sau:
Bảng ĐĂNG_KÝ (R) Danh sách sinh viên và các môn họ đã đăng ký.
Bảng MÔN_BẮT_BUỘC (S) Danh sách các môn yêu cầu phải học đủ.
Câu hỏi: Tìm sinh viên đã đăng ký tất cả các môn có trong bảng MÔN_BẮT_BUỘC (tức là phải học cả Toán và Lý).
ĐĂNG_KÝ÷MÔN_BẮT_BUỘC
Kết quả:
3. Phép kết nối
Phép kết nối là phép toán hai ngôi cho phép kết hợp hai hoặc nhiều quan hệ lại với nhau. Để dễ hiểu, chúng ta sẽ thiết lập 2 bảng dữ liệu mới:
Bảng NHÂN_VIÊN mô tả thông tin nhân viên gồm Mã, Tên, Thành phố và Kinh nghiệm.
Bảng PHÒNG_BAN mô tả thông tin phòng ban và yêu cầu kinh nghiệm tối thiểu.
Trước khi đi vào phép kết nối của đại số quan hệ trong cơ sở dữ liệu, hãy xem qua Tích đề các của 2 bảng này. Việc hình dung ra bảng Tích Đề các sẽ giúp bạn hiểu cực nhanh cách Join hoạt động (vì Join thực chất là Tích Đề các + Lọc điều kiện).
Bảng tích đề các (NHÂN_VIÊN X PHÒNG_BAN) (Ghép mọi dòng nhân viên với mọi dòng phòng ban)
a. Phép nối Theta (θ)
Theta Join kết hợp hai quan hệ bằng một điều kiện tổng quát, ký hiệu là "theta" (θ). Điều kiện này có thể là các phép so sánh như >, <, >=, <=, =.
Ký hiệu: R ⋈θ S
Ví dụ: Tìm danh sách kết hợp mà ở đó KINH_NGHIỆM của nhân viên lớn hơn hoặc bằng KN_TỐI_THIỂU của phòng ban.
NHÂN_VIÊN⋈NHÂN_VIÊN.KINH_NGHIỆM>=PHÒNG_BAN.KN_TỐI_THIỂUPHÒNG_BAN
Cách làm: Nhìn vào bảng Tích Đề các ở trên, giữ lại dòng nào thỏa mãn
KINH_NGHIỆM >= KN_TỐI_THIỂU.
b. Kết nối bằng
Equi Join là trường hợp đặc biệt của Theta Join, nơi điều kiện chỉ chứa phép so sánh BẰNG (=).
Ví dụ: Kết nối bảng NHÂN_VIÊN và PHÒNG_BAN sao cho MÃ_NV ở bảng này bằng MÃ_NV ở bảng kia.
NHÂN_VIÊN⋈NHÂN_VIÊN.MÃ_NV=PHÒNG_BAN.MÃ_NVPHÒNG_BAN
Kết quả:
c. Kết nối tự nhiên (⋈)
Kết nối tự nhiên không cần đến phép so sánh. Nó tự động tìm các thuộc tính (cột) có cùng tên và cùng miền giá trị ở hai bảng để kết nối, đặc biệt tự động loại bỏ các cột trùng lặp. Kết nối tự nhiên thường xuất hiện trên khóa ngoại (Foreign key).
Ví dụ: Kết nối tự nhiên NHÂN_VIÊN và PHÒNG_BAN (Hệ thống tự nhận diện cột chung là MÃ_NV).
NHÂN_VIÊN ⋈ PHÒNG_BAN
Kết quả:
Đại số quan hệ trong cơ sở dữ liệu là mô hình lý thuyết đóng vai trò "xương sống", là nền tảng xây dựng nên ngôn ngữ SQL hiện đại. Hy vọng qua bài viết trên, Viettel IDC đã giúp bạn hiểu hơn về các ngôn ngữ truy vấn, đạt hiệu quả tốt khi thao tác trên cơ sở dữ liệu.
Nếu bạn cần một giải pháp hỗ trợ toàn diện cho việc quản trị, sao lưu và bảo vệ cơ sở dữ liệu, hãy tham khảo https://viettelidc.com.vn/viettel-database-service. Dịch vụ giúp bạn triển khai, quản lý, giám sát và sao lưu database trên hạ tầng đạt chuẩn quốc tế, với đội ngũ kỹ thuật 24/7 luôn đồng hành cùng hệ thống.
Để được hỗ trợ tư vấn và tìm hiểu các dịch vụ của Viettel, bạn có thể liên hệ trực tiếp tới Viettel IDC qua các kênh:
- Hotline: 1800 8088 (miễn phí cước gọi)
- Fanpage: https://www.facebook.com/viettelidc
Tin liên quan
Lỗi msvcr100.dll là gì? Hướng dẫn cách sửa lỗi msvcr100 dll nhanh chóng
Lỗi msvcr100.dll khiến phần mềm không khởi chạy trên Windows. Xem hướng dẫn khắc phục từng bước để bổ sung thư viện còn thiếu và sửa chữa chương trình bị lỗi.
Top 20 các extension visual studio code hữu ích cho lập trình viên
Các extension Visual Studio Code hữu ích mở rộng khả năng của trình soạn thảo, giúp lập trình viên tối ưu môi trường làm việc và nâng cao hiệu quả viết mã.
Bridge là gì? Cách hoạt động và ứng dụng trong mạng LAN
Bridge là gì? Cầu nối mạng hoạt động dựa trên địa chỉ MAC để kết nối các phân đoạn LAN, kiểm soát luồng dữ liệu và hỗ trợ triển khai mạng vật lý lẫn mạng ảo.
Lỗi Blocked due to other 4xx issue là gì? Nguyên nhân và cách fix lỗi
Lỗi Blocked due to other 4xx issue khiến Google không lập chỉ mục URL, cần xác định đúng mã HTTP và nguyên nhân để khắc phục hiệu quả trong Search Console.
Test case là gì? Cách viết test case và mẫu minh họa cho người mới
Test case là gì và làm sao để viết rõ ràng, đúng yêu cầu? Nắm vững cách xây dựng trường hợp kiểm thử qua ví dụ cụ thể để phát hiện sai lệch trong hoạt động phần mềm.
AI Inference là gì? Cơ chế và vai trò trong vận hành AI
AI inference là gì? Cách mô hình AI tạo kết quả sau huấn luyện, phân biệt với AI training, các hình thức triển khai và ứng dụng thực tế trong doanh nghiệp.
DBeaver là gì? Hướng dẫn cài đặt và kết nối cơ sở dữ liệu với DBeaver
DBeaver là gì? Khám phá tính năng quản lý cơ sở dữ liệu, các phiên bản miễn phí và trả phí cùng hướng dẫn cài đặt, kết nối, chạy truy vấn SQL cho người mới.
Cách thay đổi mật khẩu máy tính trên Windows 10, 11 đơn giản
Cách thay đổi mật khẩu máy tính trên Windows 10, 11 qua Settings, Control Panel, CMD và các công cụ quản trị được hướng dẫn chi tiết theo từng bước dễ thực hiện.
Microsoft Management Console là gì? Cách sử dụng MMC cho người mới
Microsoft Management Console là gì? Đây là nền tảng tập hợp các công cụ quản trị Windows, hỗ trợ quản lý hệ thống, thêm snap-in và lưu console theo nhu cầu sử dụng.
Rủi ro khi sử dụng giả lập online và cách phòng tránh
Rủi ro khi sử dụng giả lập online có thể gây lộ dữ liệu, mất quyền kiểm soát tài khoản, lừa đảo trực tuyến, vi phạm chính sách game, gián đoạn thao tác và phát sinh chi phí.
Bình luận ()