Đại số quan hệ trong hệ quản trị cơ sở dữ liệu (DBMS) kèm ví dụ.
⚡ Tóm tắt thông minh
Đại số quan hệ trong hệ quản trị cơ sở dữ liệu (DBMS) là một ngôn ngữ truy vấn theo thủ tục, nhận các quan hệ làm đầu vào và tạo ra các quan hệ mới làm đầu ra. Nó phân loại các toán tử thành các loại đơn, tập hợp và nhị phân, cung cấp nền tảng lý thuyết mà các công cụ SQL dịch thành các kế hoạch truy vấn có thể thực thi.

Đại số quan hệ là gì?
Đại số quan hệ SQL là một ngôn ngữ truy vấn theo thủ tục, chấp nhận các thể hiện của các quan hệ làm đầu vào và trả về các thể hiện mới của các quan hệ làm đầu ra. Nó áp dụng một tập hợp các toán tử cố định một cách đệ quy trên một hoặc nhiều quan hệ, và kết quả của mỗi toán tử bản thân nó là một quan hệ có thể được đưa vào phép toán tiếp theo. Các công cụ SQL dựa vào đại số này để lập kế hoạch và thực thi các truy vấn.
Đại số quan hệ cơ bản Operations
Các toán tử đại số quan hệ được chia thành ba nhóm.
Quan hệ một ngôi Operations
- CHỌN (σ)
- DỰ ÁN (π)
- ĐỔI TÊN (ρ)
Operacác quan điểm từ Lý thuyết tập hợp
- LIÊN HIỆP (∪)
- GIAO ĐIỂM (∩)
- CHÊNH LỆCH (−)
- Tích Descartes (×)
Quan hệ nhị phân Operations
- THAM GIA
- KHOẢNG CÁCH
Các phần bên dưới sẽ trình bày chi tiết từng toán tử với các ví dụ minh họa.
CHỌN (σ)
CHỌN Thao tác này chọn một tập hợp con các bộ dữ liệu thỏa mãn một vị từ nhất định. Ký hiệu sigma. σ biểu thị điều đó:
σp(r)
Ở đâu σ là người vận hành, p là điều kiện mệnh đề, và r là mối quan hệ (bảng). Câu lệnh SELECT giữ nguyên lược đồ và loại bỏ các hàng không thỏa mãn điều kiện.
Ví dụ 1
σ topic = "Database" (Tutorials)
Chọn các bộ dữ liệu từ Khóa hướng dẫn trong đó chủ đề bằng "Cơ sở dữ liệu".
Ví dụ 2
σ topic = "Database" AND author = "guru99" (Tutorials)
Chọn các bộ dữ liệu từ Khóa hướng dẫn Trong đó chủ đề là “Cơ sở dữ liệu” và tác giả là guru99.
Ví dụ 3
σ sales > 50000 (Customers)
Chọn các bộ dữ liệu từ Khách Hàng có giá trị bán hàng lớn hơn 50,000.
Phép chiếu (π)
chiếu Toán tử này loại bỏ mọi thuộc tính khỏi bảng dữ liệu đầu vào ngoại trừ những thuộc tính được liệt kê, tạo ra một tập con theo chiều dọc. Phép chiếu cũng loại bỏ các hàng trùng lặp do thao tác xóa gây ra.ping thuộc tính. Ký hiệu pi π biểu thị điều đó.
Ví dụ: Hãy xem xét bảng sau.
| ID khách hàng | Tên khách hàng | Trạng thái |
|---|---|---|
| 1 | hoạt động | |
| 2 | Amazon | hoạt động |
| 3 | Apple | Không hoạt động |
| 4 | Alibaba | hoạt động |
Dự đoán dựa trên Tên khách hàng và Trạng thái:
π CustomerName, Status (Customers)
| Tên khách hàng | Trạng thái |
|---|---|
| hoạt động | |
| Amazon | hoạt động |
| Apple | Không hoạt động |
| Alibaba | hoạt động |
Đổi tên (ρ)
đổi tên Toán tử là một phép toán một ngôi dùng để đặt tên mới cho một thuộc tính (hoặc cho toàn bộ quan hệ). Ví dụ: ρ(a/b) R đổi tên thuộc tính b mối quan hệ R đến aViệc đổi tên đặc biệt hữu ích khi bạn cần thực hiện phép nối tự thân hoặc nối hai bảng có chung tên thuộc tính.
liên hiệp Operation (∪)
UNION toán tử, được ký hiệu bởi ∪Hàm này trả về mọi bộ dữ liệu xuất hiện trong cả quan hệ A hoặc quan hệ B, tự động loại bỏ các phần tử trùng lặp.
Result ← A ∪ B
Để một cuộc hôn nhân được công nhận là hợp lệ:
- A và B phải có cùng số lượng thuộc tính (cùng bậc).
- Các miền thuộc tính tương ứng phải tương thích với nhau.
- Các bộ dữ liệu trùng lặp sẽ được tự động loại bỏ.
Thí dụ. Hãy xem xét hai bảng sau:
| Bảng A | Bảng B | |||
|---|---|---|---|---|
| cột 1 | cột 2 | cột 1 | cột 2 | |
| 1 | 1 | 1 | 1 | |
| 1 | 2 | 1 | 3 | |
A ∪ B cho:
| cột 1 | cột 2 |
|---|---|
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
Hiệu số tập hợp (−)
Dấu trừ biểu thị sự khác biệt. Kết quả của A − B là một quan hệ chứa tất cả các bộ dữ liệu có trong A nhưng không có trong B.
- A và B phải tương thích với nhau về mặt hợp nhất.
- Tên thuộc tính và miền phải trùng khớp.
Ví dụ: A − B
| cột 1 | cột 2 |
|---|---|
| 1 | 2 |
Giao điểm (∩)
ngã tư toán tử, được ký hiệu bởi ∩, định nghĩa một quan hệ chứa mọi bộ dữ liệu xuất hiện trong cả A và B. A và B phải tương thích với nhau về mặt hợp nhất.
Định nghĩa trực quan về giao điểm.
Ví dụ: A ∩ B
| cột 1 | cột 2 |
|---|---|
| 1 | 1 |
Tích Descartes (×) trong hệ quản trị cơ sở dữ liệu
Sản phẩm Descartes Phép toán này kết hợp mọi bộ dữ liệu của một bảng với mọi bộ dữ liệu của bảng khác, hợp nhất các cột của chúng. Bản thân kết quả hiếm khi hữu ích, nhưng khi kết hợp với mệnh đề SELECT, nó trở thành nền tảng của phép toán JOIN. Nó cũng được gọi là tích chéo hoặc phép nối chéo.
Ví dụ: σ cột 2 = '1' (A × B)
Biểu thức này trả về mọi hàng của A × B có column 2 giá trị là 1.
| cột 1 | cột 2 |
|---|---|
| 1 | 1 |
| 1 | 1 |
Tham gia Operations
A tham gia là tích Descartes theo sau là một vị từ chọn lọc. Các phép nối được ký hiệu bằng ⋈ ký hiệu này cho phép bạn kết hợp các bộ dữ liệu liên quan từ các mối quan hệ khác nhau một cách có ý nghĩa.
Các loại phép nối:
- Các phép nối trong: Khớp Theta, khớp Equi, khớp Natural.
- Các mối nối ngoài: Các kiểu nối ngoài bên trái, bên phải và toàn bộ.
Tham gia bên trong
Trong một tham gia bên trongChỉ những bộ dữ liệu thỏa mãn tiêu chí khớp mới được bao gồm; phần còn lại sẽ bị loại bỏ.
Theta Tham gia
Dạng tổng quát của JOIN là: Theta tham gia, được ký hiệu là θ. Phép nối Theta có thể sử dụng bất kỳ điều kiện so sánh nào trong tiêu chí lựa chọn của nó.
A ⋈θ B
Ví dụ:
A ⋈ A.column 2 > B.column 2 (B)
| cột 1 | cột 2 |
|---|---|
| 1 | 2 |
Trang bị Tham gia
Khi phép nối Theta chỉ sử dụng các điều kiện bằng nhau, nó trở thành một phép nối. Equi tham gia.
A ⋈ A.column 2 = B.column 2 (B)
| cột 1 | cột 2 |
|---|---|
| 1 | 1 |
Phép nối Equi là một trong những kiểu nối được sử dụng nhiều nhất, và RDBMS Trình tối ưu hóa truy vấn thường đầu tư rất nhiều công sức vào việc làm cho nó hiệu quả.
Tham gia tự nhiên (⋈)
A Tham gia tự nhiên Yêu cầu một thuộc tính (cột) chung giữa các quan hệ. Thuộc tính chung phải có cùng tên và miền giá trị. Kết quả chứa một bản sao của cột khớp.
Hãy xem xét hai bảng này.
| Bảng C | |
|---|---|
| Số | Square |
| 2 | 4 |
| 3 | 9 |
| Bảng D | |
|---|---|
| Số | Cube |
| 2 | 8 |
| 3 | 27 |
C ⋈ D sản xuất:
| Số | Square | Cube |
|---|---|---|
| 2 | 4 | 8 |
| 3 | 9 | 27 |
Tham gia bên ngoài
An tham gia bên ngoài lưu giữ các bộ dữ liệu thỏa mãn tiêu chí phù hợp. và các bộ dữ liệu không đáp ứng điều kiện này, sẽ điền các cột bị thiếu bằng giá trị NULL.
Nối ngoài bên trái (A ⟕ B)
Phép nối ngoài bên trái giữ nguyên mọi bộ dữ liệu trong quan hệ bên trái. Nếu một hàng trong A không có hàng tương ứng trong B, các thuộc tính do B đóng góp sẽ được điền bằng NULL.
Hãy xem xét các bảng sau:
| Bảng A | |
|---|---|
| Số | Square |
| 2 | 4 |
| 3 | 9 |
| 4 | 16 |
| Bảng B | |
|---|---|
| Số | Cube |
| 2 | 8 |
| 3 | 18 |
| 5 | 75 |
A ⟕ B cho:
| Số | Square | Cube |
|---|---|---|
| 2 | 4 | 8 |
| 3 | 9 | 18 |
| 4 | 16 | NULL |
Phép nối ngoài bên phải (A ⟖ B)
Phép nối ngoài bên phải giữ cho mọi bộ dữ liệu ở đúng mối quan hệ. Nếu một hàng trong B không có hàng tương ứng trong A, các cột do A đóng góp sẽ được điền bằng NULL.
A ⟖ B cho:
| Số | Cube | Square |
|---|---|---|
| 2 | 8 | 4 |
| 3 | 18 | 9 |
| 5 | 75 | NULL |
Nối ngoài toàn phần (A ⟗ B)
Phép nối ngoài đầy đủ giữ lại mọi bộ dữ liệu từ cả hai bảng, bất kể điều kiện nối có khớp hay không. Các giá trị thiếu ở cả hai phía sẽ trở thành NULL.
A ⟗ B cho:
| Số | Square | Cube |
|---|---|---|
| 2 | 4 | 8 |
| 3 | 9 | 18 |
| 4 | 16 | NULL |
| 5 | NULL | 75 |
OperaTóm tắt tham khảo Tor
Hãy sử dụng bảng tham khảo này để dễ dàng nhớ lại chức năng của từng toán tử.
| Operation (Ký hiệu) | Mục đích |
|---|---|
| CHỌN (σ) | Chọn một tập hợp con các bộ dữ liệu thỏa mãn một vị từ cho trước. |
| DỰ ÁN (π) | Chỉ giữ lại các thuộc tính đã liệt kê và loại bỏ các hàng trùng lặp. |
| LIÊN HIỆP (∪) | Trả về mọi bộ dữ liệu xuất hiện trong A hoặc B mà không có phần tử trùng lặp. |
| HIỆU SỐ TẬP HỢP (−) | Trả về các bộ giá trị trong A mà không có trong B. |
| GIAO ĐIỂM (∩) | Trả về các bộ giá trị xuất hiện trong cả A và B. |
| Tích Descartes (×) | Kết hợp mọi bộ dữ liệu A với mọi bộ dữ liệu B. |
| INNER JOIN | Chỉ giữ lại các bộ dữ liệu khớp với điều kiện kết nối. |
| THETA JOIN (θ) | Kết hợp dạng tổng quát bằng cách sử dụng bất kỳ vị từ so sánh nào. |
| EQUI JOIN | Phép nối Theta chỉ sử dụng các phép so sánh bằng nhau. |
| THAM GIA TỰ NHIÊN (⋈) | Kết nối các mối quan hệ dựa trên các thuộc tính có cùng tên và miền. |
| Kết nối ngoài bên trái (⟕) | Giữ lại mọi bộ dữ liệu từ bảng bên trái, điền vào bảng bên phải bằng NULL. |
| RIGHT OUTER JOIN (⟖) | Giữ lại mọi bộ dữ liệu từ bảng quan hệ bên phải, điền vào bảng bên trái bằng NULL. |
| FULL OUTER JOIN (⟗) | Giữ lại mọi bộ dữ liệu từ cả hai bảng, điền các giá trị thiếu bằng NULL. |



