Đạ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.

  • 🔍 Hãy bắt đầu với các toán tử một ngôi: Các lệnh SELECT, PROJECT và RENAME lọc hàng, chọn cột và đổi tên thuộc tính trên cùng một bảng.
  • 📚 Áp dụng lý thuyết tập hợp: Phép hợp, phép giao, phép hiệu và tích Descartes kết hợp các mối quan hệ tương thích với phép hợp để tạo ra các kết quả mới.
  • 🔗 Hãy tham gia một cách có chủ đích: Các phép nối Theta, Equi và Natural xử lý các kết quả khớp bên trong, trong khi các phép nối Left, Right và Full Outer giữ lại các bộ dữ liệu không khớp có giá trị null.
  • 📐 Khả năng tương thích với đồng hồ: Luôn luôn xác nhận rằng số lượng tham số, tên thuộc tính và miền khớp nhau trước khi thực hiện bất kỳ phép toán tập hợp hoặc hợp nhất nào.
  • 🤖 Sử dụng trí tuệ nhân tạo để dịch: Các trợ lý AI chuyển đổi các biểu thức đại số thành SQL, giải thích thứ tự ưu tiên của toán tử và chỉ ra các điều kiện kết nối bị thiếu bằng ngôn ngữ dễ hiểu.

Đại số quan hệ trong DBMS

Đạ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 Google 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
Google 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

Đị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 × Bcolumn 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. 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.

Tham gia bên ngoài bên trái

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.

Tham gia bên ngoài bên phải

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.

Câu Hỏi Thường Gặp

Đại số quan hệ là một ngôn ngữ toán học thủ tục được sử dụng để định nghĩa các phép toán trên các quan hệ. SQL là một ngôn ngữ truy vấn khai báo mà các công cụ cơ sở dữ liệu dịch thành các kế hoạch thực thi theo kiểu đại số bên trong.

Hai quan hệ được gọi là tương thích hợp nhất khi chúng có cùng số thuộc tính và mỗi thuộc tính tương ứng đều có cùng miền giá trị. Các phép toán hợp, giao và hiệu đều yêu cầu tính tương thích hợp nhất.

Tích Descartes nhân mọi hàng của ma trận A với mọi hàng của ma trận B, tạo ra các mối quan hệ trung gian khổng lồ nhưng ít ý nghĩa. Thông thường, nó được theo sau bởi mệnh đề SELECT để trở thành một phép nối hữu ích.

Không. Đại số quan hệ thuần túy coi các quan hệ như các tập hợp, vì vậy các phần tử trùng lặp sẽ tự động bị loại bỏ sau mỗi thao tác. SQL hoạt động khác biệt — nó làm việc trên các tập hợp đa phần tử và chỉ loại bỏ các phần tử trùng lặp khi sử dụng DISTINCT.

Toán tử DIVISION trả lời các truy vấn "cho tất cả" — ví dụ, tìm khách hàng đã đặt mua mọi sản phẩm trong danh mục. Nó trả về các bộ dữ liệu của một quan hệ khớp với mọi bộ dữ liệu của quan hệ khác.

Hãy sử dụng phép nối ngoài (outer join) khi các hàng không khớp vẫn mang ý nghĩa — ví dụ: liệt kê tất cả khách hàng cùng với dữ liệu đơn hàng tùy chọn. Phép nối trong (inner join) sẽ loại bỏ các hàng không khớp đó; phép nối ngoài giữ lại chúng và sử dụng giá trị NULL để điền vào.

Các trợ lý AI dịch các biểu thức đại số thành SQL và ngược lại, giải thích thứ tự ưu tiên của toán tử từng bước một, và đánh dấu các điều kiện kết hợp bị thiếu mà nếu không sẽ biến truy vấn thành một phép nhân Descartes chậm chạp.

Đúng vậy. Các công cụ AI biến những câu hỏi thông thường như "khách hàng đến từ Ấn Độ đã mua mọi sản phẩm" thành các cây đại số với các toán tử SELECT, PROJECT và DIVISION, sau đó chuyển đổi chúng thành câu lệnh SQL có thể chạy được.

Tóm tắt bài viết này với: