CHƯƠNG 4 Đại số quan hệ Bài giảng môn Cơ sở dữ liệu © Bộ môn Hệ Thống Thông Tin ‐ Khoa Công Nghệ Thông Tin ‐ Trường Đại học Khoa học Tự nhiên Nội dung chi tiết Giới thiệu Đại số quan hệ Phép toán tập hợp Phép chọn Phép chiếu Phép tích Cartesian Phép kết Phép chia Các phép toán khác Các thao tác cập nhật trên quan hệ © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 2 Giới thiệu Xét một số xử lý trên quan hệ KHOA - Thêm Khoa ‘Hóa học’ vào quan hệ - Chuyển Khoa CNTT sang phòng B12 MÃKHOA TÊNKHOA NĂMTL PHÒNG ĐIỆNTHOAI TRƯỞNGKHOA NGÀYNHẬNCHỨC CNTT Công nghệ thông tin 1995 B12 B11 0838123456 002 20/02/2005 VL Vật lý 1976 B21 0838223223 005 18/09/2003 SH Sinh học 1980 B31 0838454545 004 11/10/2000 HH Hóa học 1980 B41 NULL 007 15/10/2001 - Cho biết tên các khoa được thành lập từ năm 1980 TÊNKHOA Sinh học Hóa học 3 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN Giới thiệu (tt) Có 2 loại xử lý: - Làm thay đổi dữ liệu (cập nhật): thêm mới, xóa và sửa - Không làm thay đổi dữ liệu (rút trích): truy vấn Ngôn ngữ truy vấn (Query Language – QL): - Cho phép người dùng rút trích hay cập nhật dữ liệu được lưu trong một mô hình dữ liệu Ngôn ngữ truy vấn quan hệ: - Đại số quan hệ (Relational Algebra) Biểu diễn câu truy vấn dưới dạng biểu thức, cho phép người dùng biểu diễn các bước thực hiện câu truy vấn - Phép tính quan hệ (Relational Calculus) Biểu diễn kết quả phi thủ tục dựa trên ngôn ngữ logic, cho phép người dùng diễn đạt cái họ cần hơn là thao tác xử lý nó - SQL (Structured Query Language) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 4 Đại số Đại số - Toán tử (operator) - Toán hạng (operand) Trong số học - Toán tử: +, ‐, *, / - Toán hạng ‐ biến (variables): x, y, z - Hằng (constant) - Biểu thức (x+7) / (y‐3) (x+y)*z and/or (x+7) / (y‐3) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 5 Đại số quan hệ Biến là các quan hệ - Tập hợp (set) Toán tử là các phép toán (operations) - Trên tập hợp Hội (union) Giao (intersec) Trừ (difference) - Rút trích 1 phần của quan hệ Chọn (selection) Chiếu (projection) - Kết hợp các quan hệ Tích Cartesian (Cartesian product) Kết (join) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 6 Đại số quan hệ (tt) Khi dùng đại số quan hệ, một nhu cầu truy vấn được thể hiện qua một biểu thức đại số quan hệ: - Kết quả trả về là một thể hiện của quan hệ - Có thể là một chuỗi các phép toán đại số quan hệ - Theo thứ tự thực hiện của các toán tử, kết quả của toán tử thực hiện trước là đầu vào cho toán tử thực hiện kế tiếp. © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 7 Đại số quan hệ (tt) Phép toán đại số Phép toán đại số quan hệ Toán hạng ‐ Biến : x, y, z, … ‐ Quan hệ : NhanVien, … ‐ Hằng số : 150, … ‐ Thể hiện của quan hệ : t, v, … Toán tử ‐ Thao tác xử lý giữa các toán ‐ Thao tác xử lý giữa các quan hệ hạng để tạo thành giá trị mới : +, ‐, để tạo thành quan hệ mới : phép *, /, … chọn , hội , … Biểu thức ‐ Chuỗi các phép toán đại số ‐ Chuỗi các phép toán đại số quan ‐ Kết quả cho ra một giá trị mới hệ (câu truy vấn) ‐ Kết quả cho ra một quan hệ mới (x+7) / (y‐3) (x+y)*z and/or (x+7) / (y‐3) MANV (NHANVIEN) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 8 Nội dung chi tiết Giới thiệu Đại số quan hệ Phép toán tập hợp Phép chọn Phép chiếu Phép tích Cartesian Phép kết Phép chia Các phép toán khác Các thao tác cập nhật trên quan hệ © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 9 Phép toán tập hợp Quan hệ là tập hợp các bộ - Phép hội r s - Phép giao r s - Phép trừ r s Tính khả hợp (Union Compatibility) - Cho hai lược đồ quan hệ R(A1, A2, …, An) và S(B1, B2, …, Bn), r(R), s(S). Hai quan hệ r và s là khả hợp nếu R và S có cùng bậc n Và có DOM(Ai)=DOM(Bi) , 1 i n Kết quả phép toán , , hoặc của r và s là một quan hệ có các thuộc tính cùng tên với các thuộc tính của quan hệ r. © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 10 Phép toán tập hợp (tt) Ví dụ hai quan hệ khả hợp SINHVIEN TENSV NGSINH PHAI GIAOVIEN TENGV NG_SINH GIOITINH Tung 12/08/1955 Nam Trinh 04/05/1986 Nu Hang 07/19/1968 Nu Khang 10/25/1983 Nam Nhu 06/20/1951 Nu Phuong 05/03/1958 Nu Hung 09/15/1962 Nam Minh 02/28/1942 Nam Chau 12/30/1988 Nu Bậc n=3 DOM(TENSV) = DOM(TENGV) DOM(NGSINH) = DOM(NG_SINH) DOM(PHAI) = DOM(GIOITINH) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 11 Phép hội Cho 2 quan hệ r và s khả hợp Phép hội của r và s - Ký hiệu r s - Là một quan hệ gồm các bộ thuộc r hoặc thuộc s, hoặc cả hai (các bộ trùng lắp sẽ bị loại bỏ) rs={t/trts} Ví dụ r A B s A B rs A B 1 2 1 2 3 2 1 1 2 3 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 12 Phép hội (tt) SinhVien GiaoVien HOTEN DIACHI HOTEN DIACHI Đinh Bá Tiến 119 Cống Quỳnh, Tp HCM Đinh Bá Tiến 119 Cống Quỳnh, Tp HCM Nguyễn Thanh Tùng 222 Nguyễn Văn Cừ, Tp HCM Trần Thanh Tâm 553 Mai Thị Lựu, Tp HCM Lê Quỳnh Như 291 Hồ Văn Huê, Tp HCM SinhVien GiaoVien HOTEN DIACHI Đinh Bá Tiến 119 Cống Quỳnh, Tp HCM Nguyễn Thanh Tùng 222 Nguyễn Văn Cừ, Tp HCM Lê Quỳnh Như 291 Hồ Văn Huê, Tp HCM Trần Thanh Tâm 553 Mai Thị Lựu, Tp HCM © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 13 Phép giao Cho 2 quan hệ r và s khả hợp Phép giao của r và s - Ký hiệu r s - Là một quan hệ gồm các bộ thuộc r đồng thời thuộc s Ví dụ rs={t/trts} r A B s A B rs A B 1 2 2 2 3 1 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 14 Phép giao (tt) SinhVien GiaoVien HOTEN DIACHI HOTEN DIACHI Đinh Bá Tiến 119 Cống Quỳnh, Tp HCM Đinh Bá Tiến 119 Cống Quỳnh, Tp HCM Nguyễn Thanh Tùng 222 Nguyễn Văn Cừ, Tp HCM Trần Thanh Tâm 553 Mai Thị Lựu, Tp HCM Lê Quỳnh Như 291 Hồ Văn Huê, Tp HCM SinhVien GiaoVien HOTEN DIACHI Đinh Bá Tiến 119 Cống Quỳnh, Tp HCM © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 15 Phép trừ Cho 2 quan hệ r và s khả hợp Phép giao của r và s - Ký hiệu r s - Là một quan hệ gồm các bộ thuộc R và không thuộc S Ví dụ rs={t/trts} r A B s A B rs A B 1 2 1 2 3 1 1 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 16 Phép trừ (tt) SinhVien GiaoVien HOTEN DIACHI HOTEN DIACHI Đinh Bá Tiến 119 Cống Quỳnh, Tp HCM Đinh Bá Tiến 119 Cống Quỳnh, Tp HCM Nguyễn Thanh Tùng 222 Nguyễn Văn Cừ, Tp HCM Trần Thanh Tâm 553 Mai Thị Lựu, Tp HCM Lê Quỳnh Như 291 Hồ Văn Huê, Tp HCM SinhVien – GiaoVien HOTEN DIACHI Nguyễn Thanh Tùng 222 Nguyễn Văn Cừ, Tp HCM Lê Quỳnh Như 291 Hồ Văn Huê, Tp HCM © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 17 Các tính chất Giao hoán rs=sr rs=sr Kết hợp r (s t) = (r s) t r (s t) = (r s) t © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 18 Nội dung chi tiết Giới thiệu Đại số quan hệ Phép toán tập hợp Phép chọn Phép chiếu Phép tích Cartesian Phép kết Phép chia Các phép toán khác Các thao tác cập nhật trên quan hệ © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 19 Phép chọn Được dùng để lấy ra các bộ của quan hệ r thỏa mãn điều kiện chọn P Ký hiệu (r) P P là biểu thức gồm các mệnh đề có dạng - <tên thuộc tính> <phép so sánh> <hằng số> - <tên thuộc tính> <phép so sánh> <tên thuộc tính> <phép so sánh> gồm , , , , , Các mệnh đề được nối lại nhờ các phép , , © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 20 Phép chọn (tt) Kết quả trả về là một quan hệ - Có cùng danh sách thuộc tính với r - Có số bộ luôn ít hơn hoặc bằng số bộ của r Ví dụ (A=B)(D>5) (r) r A B C D A B C D 1 7 1 7 5 7 23 10 12 3 23 10 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 21 Phép chọn (tt) Phép chọn có tính giao hoán (p1 p2 (r)) = (p2 p1 (r)) = p1 p2 (r) © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 22 Nội dung chi tiết Giới thiệu Đại số quan hệ Phép toán tập hợp Phép chọn Phép chiếu Phép tích Cartesian Phép kết Phép chia Các phép toán khác Các thao tác cập nhật trên quan hệ © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 23 Phép chiếu Được dùng để lấy ra một vài cột của quan hệ r Ký hiệu A1, A2, …, Ak(r) Kết quả trả về là một quan hệ - Có k thuộc tính - Có số bộ luôn ít hơn hoặc bằng số bộ của r Ví dụ A,C (r) r A B C A,C (r) A C 10 1 1 20 1 1 30 1 2 40 2 © Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN 24 Phép chiếu (tt) Phép chiếu không có tính giao hoán (r) = ( (r)) X,Y X Y …
Tổng quan về giáo trình
Tài liệu "Chương 4: Đại số quan hệ" thuộc chuỗi bài giảng môn Cơ sở dữ liệu, do Bộ môn Hệ thống Thông tin – Khoa Công nghệ Thông tin – Trường Đại học Khoa học Tự nhiên biên soạn. Trong chương trình đào tạo bậc đại học các ngành Công nghệ Thông tin, Hệ thống Thông tin và Khoa học Máy tính, môn Cơ sở dữ liệu đóng vai trò là học phần cơ sở ngành bắt buộc, cung cấp nền tảng lý thuyết và kỹ thuật quản trị dữ liệu có cấu trúc.
Mục tiêu học tập chính của chương là trang bị cho người học hiểu biết bản chất toán học của mô hình dữ liệu quan hệ; phân biệt rõ hai nhóm xử lý dữ liệu: xử lý thay đổi dữ liệu (cập nhật: thêm, xóa, sửa) và xử lý không làm thay đổi dữ liệu (rút trích: truy vấn). Qua đó, sinh viên nắm vững nguyên lý vận hành của Ngôn ngữ truy vấn (Query Language – QL), phân biệt ngôn ngữ thủ tục (Đại số quan hệ – Relational Algebra) với ngôn ngữ phi thủ tục (Phép tính quan hệ – Relational Calculus) và ngôn ngữ truy vấn thương mại (SQL).
Cấu trúc bài giảng được triển khai theo hướng diễn dịch logic: từ việc đặt vấn đề qua các thao tác thực tế trên bảng dữ liệu, chuẩn hóa thành khái niệm đại số, định nghĩa hình thức các phép toán tập hợp và phép toán quan hệ chuyên biệt, đến cách thức phối hợp các toán tử để giải quyết các bài toán rút trích dữ liệu phức tạp. Điểm đặc thù của tài liệu là tính trực quan hóa cao, mọi khái niệm toán học trừu tượng đều được minh họa bằng lược đồ và bảng dữ liệu thể hiện cụ thể (như quan hệ KHOA, SINHVIEN, GIAOVIEN, BOMON, DETAI), giúp người học theo dõi rõ ràng sự biến đổi cấu trúc và dữ liệu sau mỗi phép toán.
Nội dung kiến thức cốt lõi
Các chương và chủ đề chính
Nội dung chương 4 được chia thành 10 chủ đề chính, phản ánh trình tự tiếp cận từ nền tảng toán học đến ứng dụng biểu thức truy vấn:
- Tổng quan về xử lý dữ liệu và ngôn ngữ truy vấn: Phân định hai nhóm thao tác: thao tác cập nhật (làm thay đổi dữ liệu) và thao tác truy vấn (rút trích thông tin). Giới thiệu vị trí của Đại số quan hệ (tiếp cận theo quy trình các bước thực hiện) so với Phép tính quan hệ (tiếp cận dựa trên logic khai báo) và SQL.
- Khái niệm Đại số và Đại số quan hệ: Thiết lập mối tương quan giữa đại số số học (toán tử $+$, $-$, $*$, $/$; toán hạng là biến số, hằng số) và đại số quan hệ (toán tử là các phép toán quan hệ; toán hạng là các quan hệ, thể hiện quan hệ $t, v$).
- Các phép toán tập hợp và Tính khả hợp (Union Compatibility): Trình bày điều kiện để hai quan hệ khả hợp: cùng bậc $n$ ($R(A_1, \dots, A_n)$ và $S(B_1, \dots, B_n)$) và tương thích miền giá trị $\text{DOM}(A_i) = \text{DOM}(B_i)$ với $1 \le i \le n$. Định nghĩa ba phép toán: Phép hội ($r \cup s = {t \mid t \in r \lor t \in s}$), Phép giao ($r \cap s = {t \mid t \in r \land t \in s}$), Phép trừ ($r - s = {t \mid t \in r \land t \notin s}$).
- Phép chọn ($\sigma$ - Selection): Phép toán đơn nguyên trích xuất các bộ thỏa mãn biểu thức điều kiện $P$ ($\sigma_P(r)$). Điều kiện $P$ được xây dựng từ các phép so sánh ($=, \ne, <, \le, >, \ge$) và liên kết logic ($\land, \lor, \neg$).
- Phép chiếu ($\Pi$ - Projection) và Phép chiếu tổng quát: Trích xuất tập thuộc tính xác định $\Pi_{A_1, \dots, A_k}(r)$, loại bỏ các bộ trùng lặp. Mở rộng phép chiếu tổng quát cho phép đưa vào các biểu thức số học (ví dụ: tính lương mới $\text{LUONG} \times 1.1$).
- Phép tích Cartesian ($\times$ - Cartesian Product): Kết hợp từng bộ của quan hệ $r$ với tất cả các bộ của quan hệ $s$, tạo ra quan hệ mới có bậc bằng tổng bậc của $r$ và $s$.
- Phép kết (Join): Các dạng phép kết dữ liệu gồm Kết tự nhiên (Natural join), Kết có điều kiện tổng quát (Theta join) và Kết bằng (Equi join).
- Phép chia ($\div$): Phép toán phục vụ các truy vấn mang ý nghĩa "với mọi" / "tất cả".
- Các phép toán bổ sung: Các phép toán mở rộng nhằm tối ưu biểu thức truy vấn.
- Các thao tác cập nhật trên quan hệ: Nguyên lý hình thức cho các thao tác chèn (insert), xóa (delete) và hiệu chỉnh (modify/update).
Kiến thức nền tảng được xây dựng
Chương học xây dựng các nguyên lý cốt lõi của lý thuyết cơ sở dữ liệu quan hệ:
- Tính đóng (Closure Property): Đầu vào của một phép toán là một hoặc nhiều quan hệ, kết quả trả về luôn là một quan hệ mới. Đặc tính này cho phép lồng ghép liên tiếp các phép toán để tạo thành một chuỗi biểu thức đại số quan hệ.
- Tính khả hợp: Ràng buộc chặt chẽ về mặt toán học trước khi thực hiện các thao tác tập hợp ($\cup, \cap, -$), đảm bảo tính nhất quán về cấu trúc và ngữ nghĩa dữ liệu giữa hai quan hệ.
- Tính chất đại số: Xác lập các quy tắc biến đổi tương đương như tính giao hoán ($r \cup s = s \cup r$, $r \cap s = s \cap r$, $\sigma_{p_1}(\sigma_{p_2}(r)) = \sigma_{p_2}(\sigma_{p_1}(r))$) và tính kết hợp ($r \cup (s \cup t) = (r \cup s) \cup t$), làm nền tảng cho việc tối ưu hóa câu truy vấn.
Kỹ năng phát triển
- Kỹ năng phân tích câu truy vấn: Nhận diện bảng dữ liệu nguồn, xác định điều kiện chọn lọc bộ (mệnh đề $\sigma$) và các trường dữ liệu cần trích xuất (danh sách thuộc tính $\Pi$).
- Kỹ năng thiết lập biểu thức hình thức: Chuyển đổi yêu cầu ngôn ngữ tự nhiên thành biểu thức đại số quan hệ nhiều bước, sử dụng đúng thứ tự ưu tiên của các toán tử.
- Kỹ năng xử lý dữ liệu quan hệ đa bảng: Sử dụng phối hợp tích Cartesian và phép chọn hoặc các biến thể của phép kết để liên kết các bảng thông qua quan hệ khóa ngoài (ví dụ: liên kết
BOMON.TRUONGBMvớiGIAOVIEN.MAGV).
Phương pháp giảng dạy và học tập
Phương pháp tiếp cận sư phạm
Tài liệu áp dụng phương pháp tiếp cận từ trực quan đến trừu tượng (inductive-deductive learning):
- Khởi động bài toán thực tế: Trình bày bảng dữ liệu
KHOAvới các thao tác cụ thể như chuyển đổi phòng làm việc của khoa CNTT sang phòng B12, hoặc trích xuất tên các khoa thành lập từ năm 1980. - Trừu tượng hóa toán học: Quy đổi các bài toán trên về cấu trúc tập hợp, toán tử và toán hạng.
- Hình thức hóa định nghĩa: Đưa ra ký hiệu toán học chính xác ($\sigma, \Pi, \times, \cup, \cap, -$) cùng các điều kiện biên (bậc của quan hệ, miền giá trị).
- Kiểm chứng qua ví dụ mẫu: Cung cấp các bước thực thi chi tiết, minh họa rõ bảng trung gian và bảng kết quả cuối cùng.
Hệ thống bài tập và nghiên cứu tình huống
Tài liệu sử dụng một hệ thống cơ sở dữ liệu quản lý trường học và đề tài nghiên cứu khoa học làm trường hợp nghiên cứu xuyên suốt:
KHOA(MAKHOA, TENKHOA, NAMTL, PHONG, DIENTHOAI, TRUONGKHOA, NGAYNHANCHUC)GIAOVIEN(MAGV, HOTEN, NGSINH, MABM, PHAI, LUONG, DIACHI)SINHVIEN(TENSV, NGSINH, PHAI, DIACHI)BOMON(MABM, TENBM, PHONG, TRUONGBM, NGAYNHANCHUC)DETAI(MADT, TENDT, MACD, GVCNNDT)CONGVIEC(..., NGAYBD, ...)CHUDE(MACD, TENCD)TG_DETAI(MAGV, MADT, ...)
Hệ thống ví dụ được phân loại từ đơn giản đến phức tạp:
- Ví dụ 1 (Phép chọn và chiếu đơn giản): Cho biết họ tên và mức lương của các giáo viên nữ: $$\Pi_{\text{HOTEN, LUONG}}(\sigma_{\text{PHAI='Nữ'}}(\text{GIAOVIEN}))$$
- Ví dụ 2 (Kết hợp phép chiếu và phép hội): Cho biết mã số các giáo viên thuộc bộ môn HTTT hoặc có tham gia đề tài mã 001: $$\Pi_{\text{MAGV}}(\sigma_{\text{MABM='HTTT'}}(\text{GIAOVIEN})) \cup \Pi_{\text{MAGV}}(\sigma_{\text{MADT='001'}}(\text{TG_DETAI}))$$
- Ví dụ 3 (Kết hợp phép chiếu và phép giao): Cho biết mã số các trưởng khoa có chủ nhiệm đề tài: $$\Pi_{\text{TRUONGKHOA}}(\text{KHOA}) \cap \Pi_{\text{GVCNĐT}}(\text{DETAI})$$
- Ví dụ 4 (Phép chọn với khoảng thời gian): Cho biết tên các công việc bắt đầu trong khoảng từ 01/01/2007 đến 01/08/2007: $$\sigma_{\text{NGAYBĐ} \ge \text{'1/1/2007'} \land \text{NGAYBĐ} \le \text{'1/8/2007'}}(\text{CONGVIEC})$$
- Ví dụ 5 (Phép chiếu tổng quát có tính toán): Cho biết họ tên giáo viên và lương sau khi tăng 10%: $$\Pi_{\text{HOTEN, LUONG} \times 1.1}(\text{GIAOVIEN})$$
- Ví dụ 6 (Tích Cartesian phối hợp phép chọn): Tìm thông tin bộ môn cùng thông tin trưởng bộ môn: $$\sigma_{\text{TRUONGBM=MAGV}}(\text{BOMON} \times \text{GIAOVIEN})$$
QUY TRÌNH THỰC THI TRUY VẤN
Điểm nổi bật và cấu trúc trình bày
- Tính chuẩn xác về mô hình toán học: Tài liệu phân định rõ sự khác nhau giữa biến quan hệ, thể hiện của quan hệ (instance), bộ dữ liệu (tuple) và thuộc tính (attribute). Việc đối chiếu song song giữa đại số số học và đại số quan hệ (bảng so sánh ở Slide 8) giúp người học nắm bắt nhanh khái niệm trừu tượng.
- Làm rõ các tính chất đại số quan trọng: Tài liệu chỉ ra cụ thể:
- Phép chọn có tính giao hoán: $\sigma_{p_1}(\sigma_{p_2}(r)) = \sigma_{p_2}(\sigma_{p_1}(r)) = \sigma_{p_1 \land p_2}(r)$.
- Phép chiếu không có tính giao hoán: $\Pi_{X, Y}(r) \ne \Pi_X(\Pi_Y(r))$, và quy tắc rút gọn dãy phép chiếu: $\Pi_{A_1, \dots, A_n}(\Pi_{A_1, \dots, A_m}(r)) = \Pi_{A_1, \dots, A_n}(r)$ (với $n \le m$).
- Mở rộng biểu thức số học: Đưa khái niệm phép chiếu tổng quát $\Pi_{F_1, \dots, F_n}(E)$ vào bài giảng, chứng minh tính linh hoạt của đại số quan hệ khi xử lý các phép toán tính toán giá trị dẫn xuất ($F_i$ là hàm số học dựa trên hằng số và thuộc tính).
- Trực quan hóa cấu trúc dữ liệu: Các slide phân tích rõ số hàng (bộ) và số cột (thuộc tính) thay đổi như thế nào qua phép chọn (giảm số bộ, giữ nguyên số cột) và phép chiếu (giảm số cột, có thể giảm số bộ do loại trừ trùng lặp).
Đối tượng sử dụng giáo trình
| Đối tượng | Mục đích và Phạm vi sử dụng |
|---|---|
| Sinh viên chuyên ngành CNTT, HTTT, KHMT | Sử dụng làm tài liệu học tập chính thức cho học phần Cơ sở dữ liệu; nắm vững bản chất toán học của các phép toán trước khi học ngôn ngữ SQL. |
| Giảng viên và Trợ giảng | Sử dụng làm đề cương bài giảng lý thuyết, khung bài tập trên lớp và định hướng thiết kế đề thi đánh giá năng lực suy luận đại số. |
| Lập trình viên / Kỹ sư dữ liệu | Tài liệu tham khảo để hiểu sâu cơ chế biên dịch và tối ưu hóa câu truy vấn bên dưới các công cụ cơ sở dữ liệu quan hệ (RDBMS Query Optimizer). |
Kiến thức tiên quyết
- Toán rời rạc: Lý thuyết tập hợp cơ bản (hội, giao, hiệu, tích Descartes), logic vị từ và đại số Boolean.
- Nhập môn lập trình: Tư duy xử lý dữ liệu có cấu trúc, biến, kiểu dữ liệu và toán tử điều kiện.
Câu hỏi thường gặp
1. Tài liệu này phù hợp với học phần nào trong chương trình đào tạo?
Tài liệu được thiết kế chuyên biệt cho học phần Cơ sở dữ liệu (thường giảng dạy ở học kỳ 3 hoặc 4) thuộc khối kiến thức cơ sở nhóm ngành Công nghệ Thông tin tại Trường Đại học Khoa học Tự nhiên và các trường khối kỹ thuật.
2. Hai quan hệ cần đáp ứng điều kiện gì để thực hiện được các phép toán tập hợp?
Để thực hiện các phép toán tập hợp ($\cup, \cap, -$), hai quan hệ $r(R)$ và $s(S)$ phải thỏa mãn tính khả hợp (Union Compatibility):
- Lược đồ $R$ và $S$ phải có cùng bậc $n$ (cùng số lượng thuộc tính).
- Miền giá trị của các thuộc tính tương ứng phải tương thích: $\text{DOM}(A_i) = \text{DOM}(B_i)$ với mọi $1 \le i \le n$.
3. Phép chọn ($\sigma$) và Phép chiếu ($\Pi$) khác nhau như thế nào về mặt cấu trúc kết quả?
- Phép chọn ($\sigma_P(r)$): Trích xuất theo hàng ngang (lọc các bộ thỏa điều kiện $P$). Kết quả giữ nguyên danh sách thuộc tính ban đầu và số bộ kết quả luôn nhỏ hơn hoặc bằng số bộ của quan hệ gốc ($|KQ| \le |r|$).
- Phép chiếu ($\Pi_A(r)$): Trích xuất theo cột dọc (lấy một tập con các thuộc tính $A$). Kết quả có số thuộc tính bằng $k$ ($k \le n$) và số bộ cũng có thể giảm nếu xuất hiện các bộ dữ liệu trùng lắp sau khi chiếu.
4. Tại sao cần học Đại số quan hệ khi các hệ quản trị hiện đại đều sử dụng SQL?
Đại số quan hệ là nền tảng toán học của SQL. Hiểu rõ đại số quan hệ giúp người học:
- Nắm được cách thức bộ tối ưu hóa truy vấn (Query Optimizer) của hệ quản trị cơ sở dữ liệu chuyển đổi một câu lệnh SQL thành cây đại số quan hệ và sắp xếp lại thứ tự các phép toán để giảm chi phí thực thi.
- Xây dựng tư duy truy vấn chặt chẽ, tối ưu hóa câu lệnh ngay từ khâu thiết kế logic.
5. Thứ tự thực thi giữa phép tích Cartesian và phép chọn có ảnh hưởng gì đến kết quả?
Tích Cartesian ($r \times s$) tạo ra số lượng bộ rất lớn ($|r| \times |s|$). Trong thực tế tính toán, phép chọn với điều kiện liên kết ($\sigma_{\text{khóa ngoại}=\text{khóa chính}}$) thường được đẩy xuống thực hiện đồng thời hoặc kết hợp thành phép kết (Join) để giảm kích thước bảng dữ liệu trung gian, tối ưu hóa bộ nhớ và thời gian tính toán.
Kết luận
Chương 4 "Đại số quan hệ" trong bài giảng Cơ sở dữ liệu của Bộ môn Hệ thống Thông tin – Trường ĐH Khoa học Tự nhiên là tài liệu học thuật chuẩn hóa, trình bày hệ thống toán học hình thức dùng cho việc rút trích và thao tác dữ liệu. Việc làm chủ các phép toán đơn nguyên ($\sigma, \Pi$), phép toán tập hợp ($\cup, \cap, -$) và phép toán kết nối ($\times, \bowtie, \div$) là điều kiện tiên quyết giúp sinh viên nắm vững nguyên lý vận hành của các hệ quản trị cơ sở dữ liệu quan hệ, tạo nền tảng trực tiếp cho các nội dung tiếp theo như Phép tính quan hệ, Ngôn ngữ SQL và Kỹ thuật tối ưu hóa câu truy vấn.