Đại số quan hệ

Khi làm việc với mô hình quan hệ, chúng ta có 2 nhóm thao tác có thể sử dụng. Một trong số đó là đại số quan hệ.

Khi làm việc vớimô hình quan hệ, chúng ta có 2 nhóm thao tác có thể sử dụng.

Đầu tiên được gọi làđại số quan hệ, và nó là mộtngôn ngữ thủ tục.

Đây là những gì SQL dựa trên, và vì vậy nó rất quan trọng để học - vì SQL là tiêu chuẩn thực tế để làm việc với cơ sở dữ liệu quan hệ.

Thứ hai được gọi làphép tính quan hệvà thay vì mang tính thủ tục, nó là mộtngôn ngữ khai báo. Đó là sự khác biệt cơ bản về cách chúng tôi tương tác với cơ sở dữ liệu, vì bạn không nói với phần mềm cơ sở dữ liệuphải làm gì, bạn chỉ nói với nóbạn muốn gìvà để nó phân loại chi tiết cách thực hiện.

Đây là điểm khác biệt chung giữa các ngôn ngữ lập trình. Trong giao diện người dùng hiện đại, chúng tôi nói rằng tương tác với DOM trong React là tương tác. Sử dụng JavaScript vani để sửa đổi DOM là thủ tục.

Các ngôn ngữ nhưDatalog,QBEQUELcó phép tính quan hệ làm cơ sở của nó. Tôi sẽ không nói về điều này bởi vì tôi nghĩ rằng đó là một cách hoạt động thích hợp hơn nhiều so với cách tiếp cận thực tế hơn được theo sau bởi SQL, nhưng bạn có thể xem xét nó nếu bạn muốn.

Với phần giới thiệu này, chúng ta hãy tiếp tục vớiđại số quan hệ.

Chúng tôi có 2 loại hoạt động:

  • hoạt động chính
  • tham gia hoạt động

Các phép toán chính trong đại số quan hệ

Các hoạt động chính là:

  • liên hiệpđể lấy dữ liệu từ hai bảng, tạo tổng các bộ giá trị, miễn là hai bảng có cùng cột và loại thuộc tính (miền).
  • Sự khác biệtđể lấy dữ liệu có trong bảng đầu tiên nhưng không có trong bảng thứ hai, tạo ra sự khác biệt của các bộ giá trị, miễn là hai bảng có cùng cột và kiểu thuộc tính (miền).
  • sản phẩm cacteđể lấy dữ liệu từ hai bảng vào và tạo một bảng duy nhất kết hợp dữ liệu của chúng, dựa trên một giá trị thuộc tính.
  • lựa chọnđể chỉ trích xuất một số bộ giá trị (hàng) có trong bảng dựa trên các tiêu chí nhất định.
  • dự ánđể tạo một bảng mới chỉ chứa một hoặc nhiều thuộc tính (cột) của bảng hiện có
  • đổi tênđược sử dụng để đổi tên một thuộc tính, được sử dụng để ngăn xung đột khi nhiều bảng có cùng tên cho các dữ liệu khác nhau

Tham gia các phép toán trong đại số quan hệ

Phép nối có lẽ là phép toán mạnh mẽ nhất mà bạn có thể thực hiện với đại số quan hệ. Chúng xây dựng dựa trên các hoạt động chính và chúng cho phép bạn tương quan dữ liệu chứa trong các quan hệ (bảng) khác nhau.

Lưu ý: Tôi sẽ sớm nói về các phép kết hợp trong thực tế trong DBMS, đây chủ yếu là lý thuyết.

Chúng tôi có 2 phiên bản tham gia chính:tham gia tự nhiêntheta tham gia. All the other versions are extracted from those 2.

Tham gia tự nhiên

Tham gia tự nhiêntương quan hai quan hệ (bảng) và tạo một bảng mới dựa trên các giá trị giống nhau của một thuộc tính.

Trước tiên, chúng ta cần hai quan hệ có cùng tên thuộc tính (cột). Sau đó, nếu các giá trị trong các thuộc tính trong mối quan hệ A không khớp với các thuộc tính trong mối quan hệ B, thì hàng đó không phải là một phần của kết quả, nó sẽ bị bỏ qua.

Thí dụ:

Quan hệ A

Mã hiệu công nhân Tên
1 dấu
2 Tony
3 Rick

Quan hệ B

Tên người quản lý Mã hiệu công nhân
Todd 1
Albert 2

Chúng ta có thể thực hiện phép nối tự nhiên để lấy tên sếp cho từng nhân viên:

Mã hiệu công nhân Tên Tên người quản lý
1 dấu Todd
2 Tony Albert

Vì các quan hệ có chung tên thuộc tính ID nhân viên nên nó chỉ xuất hiện một lần trong kết quả, không phải 2 lần.

Nhân viên số 3 có mặt trong mối quan hệ A, Rick, không được bao gồm trong bảng này, vì không có mục nhập tương ứng trong mối quan hệ B.

Theta-tham gia

Một phép nối theta cho phép thực hiện phép nối dựa trên bất kỳ tiêu chí nào để so sánh hai cột trong hai quan hệ khác nhau, không chỉ bình đẳng như phép nối tự nhiên.

Nó thực hiện một tích lũy thừa của hai bảng và lọc kết quả dựa trên lựa chọn mà chúng tôi muốn thực hiện.

Tham gia trang bị

Phép nối tương đương là phép nối theta, trong đó lựa chọn dựa trên sự bình đẳng giữa các giá trị thuộc tính trong hai bảng khác nhau.

Sự khác biệt với phép nối tự nhiên là chúng ta có thể chọn tên thuộc tính (cột) mà chúng ta muốn so sánh.

Chúng ta sẽ nói nhiều hơn về các phép nối sau khi SQL được giới thiệu, vì vậy chúng ta có thể sử dụng chúng trong thực tế.


Các hướng dẫn khác về cơ sở dữ liệu: