ScholarGate
Trợ lý

SQL và Đại số quan hệ

Đại số quan hệ là một ngôn ngữ thủ tục của các toán tử trên các quan hệ, cung cấp ngữ nghĩa hình thức cho mô hình quan hệ, trong khi SQL là ngôn ngữ khai báo tiêu chuẩn mà các hệ thống cơ sở dữ liệu biên dịch thành các kế hoạch thực thi giống đại số.

Tìm chủ đề với PaperMindSắp ra mắtFind papers & topics
Tools & resources
Tải xuống bản trình chiếu
Learn & explore
VideoSắp ra mắt

Definition

Đại số quan hệ là một tập hợp các toán tử nhận các quan hệ làm đầu vào và tạo ra các quan hệ làm đầu ra; SQL (Structured Query Language) là ngôn ngữ khai báo tiêu chuẩn ISO để định nghĩa, truy vấn và cập nhật các cơ sở dữ liệu quan hệ, với ngữ nghĩa truy vấn tương ứng chặt chẽ với đại số quan hệ được mở rộng với ngữ nghĩa nhóm, tổng hợp và tập hợp (bag semantics).

Scope

Chủ đề này bao gồm các toán tử của đại số quan hệ — chọn, chiếu, tích Descartes, kết nối, hợp, hiệu và đổi tên — và việc sử dụng chúng làm cơ sở hình thức cho các truy vấn và tối ưu hóa truy vấn. Nó bao gồm phần cốt lõi của SQL: các truy vấn SELECT-FROM-WHERE, kết nối, nhóm và tổng hợp, truy vấn con, các phép toán tập hợp, và các câu lệnh định nghĩa dữ liệu và thao tác dữ liệu, cùng với ngữ nghĩa đa tập hợp của SQL và logic ba giá trị cho các giá trị null. Nó không bao gồm cách các truy vấn được thực thi và tối ưu hóa về mặt vật lý (được đề cập trong xử lý và tối ưu hóa truy vấn).

Core questions

  • Các toán tử nguyên thủy và dẫn xuất của đại số quan hệ là gì?
  • Một truy vấn SQL SELECT-FROM-WHERE ánh xạ lên các phép toán đại số quan hệ như thế nào?
  • Việc nhóm và tổng hợp mở rộng đại số cơ bản như thế nào?
  • Các giá trị null và logic ba giá trị ảnh hưởng đến kết quả truy vấn như thế nào?
  • Tại sao SQL sử dụng ngữ nghĩa đa tập hợp (bag) thay vì ngữ nghĩa tập hợp?

Key concepts

  • chọn, chiếu, kết nối
  • hợp, hiệu, tích Descartes
  • SELECT-FROM-WHERE
  • nhóm và tổng hợp
  • truy vấn con và tương quan
  • các phép toán tập hợp và đa tập hợp
  • logic ba giá trị và các giá trị null
  • ngôn ngữ định nghĩa và thao tác dữ liệu

Key theories

Các toán tử đại số quan hệ
Chọn, chiếu, hợp, hiệu tập hợp, tích Descartes và đổi tên tạo thành một tập hợp đầy đủ từ đó kết nối, giao và chia được dẫn xuất; các đồng nhất đại số giữa chúng biện minh cho các tối ưu hóa viết lại truy vấn.
Truy vấn khai báo và tính đầy đủ quan hệ
SQL cho phép người dùng nêu rõ dữ liệu họ muốn chứ không phải cách lấy dữ liệu đó; vì nó có thể biểu diễn mọi truy vấn đại số quan hệ (và hơn thế nữa), nó có tính đầy đủ quan hệ, và hệ thống có thể tự do chọn một chiến lược thực thi hiệu quả.
Logic ba giá trị cho các giá trị null
SQL đánh giá các điều kiện trên đúng, sai và không xác định để xử lý các giá trị null; điều này ảnh hưởng đến các phép so sánh, lọc WHERE và tổng hợp, và là một nguồn phổ biến gây ra các lỗi truy vấn tinh vi.

Clinical relevance

SQL là một trong những ngôn ngữ được sử dụng rộng rãi nhất trong điện toán: nó là giao diện cho hầu hết mọi cơ sở dữ liệu quan hệ cung cấp năng lượng cho các ứng dụng kinh doanh, phân tích và dịch vụ web, và đại số quan hệ là công cụ lý thuyết mà các bộ tối ưu hóa truy vấn sử dụng để viết lại và lập kế hoạch các truy vấn SQL đó một cách hiệu quả.

History

Bài báo năm 1970 của Codd đã giới thiệu đại số và phép tính quan hệ. Tại dự án System R của IBM, Chamberlin và Boyce đã thiết kế SEQUEL (1974), sau này được đổi tên thành SQL, như một ngôn ngữ khai báo dễ tiếp cận hơn. SQL đã được ANSI và ISO chuẩn hóa bắt đầu từ năm 1986 và đã được mở rộng thông qua các tiêu chuẩn kế tiếp trong khi vẫn dựa trên đại số quan hệ.

Key figures

  • Edgar F. Codd
  • Donald D. Chamberlin
  • Raymond F. Boyce

Related topics

Seminal works

  • codd1970
  • chamberlin1974
  • garciamolina2008

Frequently asked questions

SQL có chính xác là đại số quan hệ không?
Không. SQL dựa trên đại số và phép tính quan hệ nhưng khác biệt ở những điểm chính: nó sử dụng ngữ nghĩa đa tập hợp (bag semantics) nên các bản sao có thể xuất hiện, bổ sung nhóm và tổng hợp, hỗ trợ các giá trị null với logic ba giá trị, và bao gồm các tính năng thủ tục và định nghĩa dữ liệu mà đại số thuần túy không có.
Tại sao phải học đại số quan hệ nếu SQL là thứ được sử dụng trong thực tế?
Đại số quan hệ là mô hình hình thức đằng sau việc tối ưu hóa truy vấn: các hệ thống cơ sở dữ liệu dịch SQL thành các biểu thức giống đại số và áp dụng các quy tắc tương đương để tìm các kế hoạch hiệu quả. Hiểu đại số giải thích tại sao một số viết lại truy vấn nhất định là hợp lệ và giúp lý giải về sự tương đương và chi phí của truy vấn.

Methods for this concept

Related concepts