Database
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Database

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

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

Đây là những gì SQL dựa trên, và vì vậy điều này 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à ngô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, bởi vì bạn không cho phần mềm cơ sở dữ liệu biết phải làm gì , bạn chỉ nói với nó những gì bạn muốn 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, QBE và QUEL có 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 theo sau của 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, 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ệ

Hoạt động chính là:

  • công đoàn để 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à loại thuộc tính (miền).
  • sản phẩm của cartesian để 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.
  • chọn để chỉ trích xuất một số bộ (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 để tránh 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 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à 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ề việc tham gia vào 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ên theta tham gia . Tất cả các phiên bản khác được trích xuất từ ​​2.

Tham gia tự nhiên

Tham gia tự nhiên tươ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.

Ví dụ:

Mối quan hệ A

ID nhân viên Tên
1 Đánh dấu
2 Tony
3 Rick

Mối quan hệ B

Tên người quản lý ID nhân viê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:

ID nhân viên Tên Tên người quản lý
1 Đánh 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-join

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ằng nhau 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.

Trang bị tham gia

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ế.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL GIỮA Toán tử cho người mới bắt đầu

  2. Thông báo về tính khả dụng chung của trình quản lý tuân thủ SQL 5.9

  3. Cờ theo dõi mới để sửa hiệu suất biến bảng

  4. 13 bài viết trên blog về các thủ thuật và phương pháp thiết kế cơ sở dữ liệu tốt nhất

  5. SQL Azure:Cơ sở dữ liệu XXXYYY trên máy chủ hiện không khả dụng