Việc tìm hiểu về Đại số quan hệ giúp ta có cái nhìn tổng quan về cách thức hoạt động của các ngôn ngữ truy vấn nói chung và SQL nói riêng từ đó góp phần hiệu quả khi thao tác trên cơ sở dữ liệu. Show Mục lục SQL là gì?SQL (Structured Query Language) là ngôn ngữ truy vấn có cấu trúc. Nó là tập hợp các lệnh dùng để tương tác, tạo, sửa và truy xuất dữ liệu được lưu trữ trong một cơ sở dữ liệu quan hệ. Đại số quan hệ (Relational Algebra) là gì?Đại số quan hệ (Relational algebra) là một bộ các toán tử và quy tắc được sử dụng để thao tác trên các quan hệ và kết quả trả về là một quan hệ mới. Sau khi Edgar F. Codd đưa ra mô hình dữ liệu quan hệ vào năm 1970, đại số quan hệ được xem là nền tảng cho các ngôn ngữ truy vấn dữ liệu nói chung và SQL nói riêng. SQL cung cấp cú pháp đơn giản nhưng mạnh mẽ, giúp người dùng có được các kết quả mong muốn mà không cần nêu rõ cách thức để đạt được điều đó như thế nào. Tuy nhiên, với những vấn đề và yêu cầu mang tính phức tạp, việc viết một câu truy vấn chính xác và hiệu quả đòi hỏi phải có hiểu biết về cấu trúc dữ liệu và cách thức hoạt động của ngôn ngữ truy vấn. Vì vậy nắm vững các kiến thức về đại số quan hệ sẽ là nền tảng để việc tìm hiểu về SQL trở nên dễ dàng hơn. Các phép toán trong đại số quan hệCác phép toán trong đại số quan hệ có thể được chia thành hai loại: Phép toán quan hệ và Phép toán tập hợp. Phép toán quan hệPhép chiếu (projection)Định nghĩa: Lựa chọn một số thuộc tính từ một quan hệ. Cú pháp: SELECT Colum_name FROM Ví dụ: Đưa ra danh sách tên tất cả sinh viên. Đặc trưng: – Phép chiếu loại bỏ các bộ trùng nhau – Kết quả là một quan hệ:
Mở rộng phép chiếu: Cho phép sử dụng các phép toán số học trong danh sách thuộc tính. Ví dụ: Phép chọn (selection)Định nghĩa: Lựa chọn các bộ trong một quan hệ thỏa mãn điều kiện cho trước. Cú pháp: SELECT Colum_name FROM Table WHERE Ví dụ: Đưa ra tên của các sinh viên sống ở Bundoora SELECT Name FROM Student WHERE Suburb ="Bundoora" Phép nối (join)Định nghĩa: ghép các bộ từ 2 quan hệ thỏa mãn điều kiện kết nối Cú pháp: SELECT Column_name FROM Table_A JOIN Table_B ON A= Ví dụ: Đưa ra danh sách sinh viên và khóa học SELECT * , SID , Course FROM Student JOIN Enrol ON Id = SID Ví dụ: chọn, chiếu và kết nối: SELECT Name, Course FROM Student JOIN Enrol ON Id= SID WHERE Suburb="Bundoora" Phép nối tự nhiênĐịnh nghĩa: là phép kết nối với điều kiện bằng trên các thuộc tính trùng tên Phép nối ngoài
Ví dụ: Đưa ra danh sách mã số các sinh viên và mã khóa học mà sinh viên đó đăng ký nếu có: SELECT, Course FROM Student LEFT JOIN Enrol ON ID = SID Phép chia (Division)Định nghĩa: cho R1 và R2 lần lượt là các quan hệ n và m ngôi. Kết quả của phép chia R1 cho R2 là một quan hệ (n-m) ngôi Cú pháp: Ví dụ: SELECT DISTINCT Name FROM Subject WHERE NOT EXISTS( (SELECT Course FROM Subject) EXCEPT (SELECT Course FROM Course WHERE Course="BCS" AND Course='MCS)) Phép toán tập hợpPhép hợp (union)Định nghĩa: Gồm các bộ thuộc ít nhất một trong hai quan hệ đầu vào. Hai quan hệ khả hợp được xác định trên cùng miền giá trị. Ví dụ: SELECT Name, Course FROM Subject UNION SELECT Name, Course FROM Subject2 Phép giao (intersection)Định nghĩa: gồm các bộ thuộc cả hai quan hệ đầu vào Cú pháp: SELECT Name, Course FROM Subject INTERSECT SELECT Name, Course FROM Phép trừ (Difference)Định nghĩa: gồm các bộ thuộc quan hệ thứ nhất nhưng không thuộc quan hệ thứ hai. Hai quan hệ phải là khả hợp. Cú pháp: Phân tích đề – các (cartesian product)Định nghĩa: là kết nối giữa từng bộ của quan hệ thứ nhất và mỗi bộ của quan hệ thứ hai Ví dụ: Ứng dụng & Kết luậnPhép toán quan hệ và phép toán tập hợp giúp chúng ta sử dụng để kết hợp các bảng trong cơ sở dữ liệu theo một cách cụ thể để truy xuất thông tin từ các bảng khác nhau. Các phép toán này làm nền tảng cơ sở cho các phép toán, câu lệnh phức tạp. Hiểu về Đại số quan hệ giúp ta có cái nhìn tổng quan về cách thức hoạt động của các ngôn ngữ truy vấn nói chung và SQL nói riêng từ đó góp phần hiệu quả khi thao tác trên cơ sở dữ liệu. |