Đại số quan hệ

**Đại số quan hệ** (tiếng Anh: *relational algebra*) dùng phổ biến trong lý thuyết cơ sở dữ liệu quan hệ là một bộ các toán tử và các quy tắc tương ứng có thể được sử dụng để thao tác trên các toán học (*relation*) và tạo ra kết quả là một quan hệ khác. Trước đây, đại số quan hệ ít được quan tâm cho đến khi Edgar F. Codd đưa ra mô hình dữ liệu quan hệ (*relational model*) vào năm 1970. Từ đó đến nay, đại số quan hệ được xem là nền tảng cho các ngôn ngữ truy vấn cơ sở dữ liệu.

## Quan hệ khả hợp
Cho hai lược đồ quan hệ R(A1, A2,..., An) và S(B1, B2,..., Bm) được gọi là khả hợp nếu:
- Chúng có cùng bậc: m = n.
- Miền giá trị (DOM) của các thuộc tính tương ứng bằng nhau: DOM(Ai) = DOM(Bi) với 1 ≤ i ≤ n.

## Các phép toán

### Phép hợp
Cho hai quan hệ R(U) và S(U) (U là tập hữu hạn các thuộc tính). Điều kiện: R,S khả hợp.Ký hiệu: R∪SKết quả: A = R∪S là một quan hệ (trên tập thuộc tính U) gồm các bộ r thỏa mãn r ∈ R hoặc r ∈ S.

### Phép giao
Giao của 2 tập hợp R và S khả hợp là tập hợp các bộ t sao cho t\in R \land t \in S .

Kí hiệu: R \cap S . Trong đó:

* R và S là 2 quan hệ khả hợp.
* \cap : kí hiệu phép giao tập hợp.

### Phép trừ
Cho 2 quan hệ R & S là 2 quan hệ trên tập thuộc tính U. Hiệu 2 quan hệ R & S ký hiệu là R\S. là một quan hệ trên tập thuộc tính U và được xác định như sau: R\S={t sao cho t thuộc R và t không thuộc S}

### Tích Descartes
**Tích Descartes** (hay **tích Đềcác**) của hai tập hợp *A* và *B*, ký hiệu là *A*×*B*, là một tập hợp chứa tất cả các bộ có dạng (*a*, *b*) với *a* là một phần tử của *A* và *b* là một phần tử của *B*. Hay, viết trong ngôn ngữ của lý thuyết tập hợp:

### Phép chọn

#### Định nghĩa
Phép chọn trên một quan hệ R là thao tác chọn ra tập con của các bộ (hàng) trong quan hệ R sao cho thỏa mãn điều kiện chọn. Nói đơn giản, thì phép chọn như là một bộ lọc, dùng để lọc các bộ dữ liệu, chỉ giữ lại các bộ thỏa mãn điều kiện chọn và loại bỏ đi các bộ không thỏa. Kết quả trả về là một quan hệ mới.

Kí hiệu: \sigma_{c}(R). Trong đó:

* σ: kí hiệu phép chọn.
* c: điều kiện chọn, là một biểu thức mệnh đề, có thể chứa các toán tử logic như \lor (OR - hoặc), \land (AND - và), ¬ (Negation - phủ định).
* R: quan hệ R.

#### Tính chất

* Giao hoán: \sigma_{\alpha} (\sigma_{\beta} (R))=\sigma_{\beta} (\sigma_{\alpha} (R))
* Kết hợp: \sigma_{\alpha} (\sigma_{\beta}(R))=\sigma_{\alpha \land \beta} (R))

### Phép chiếu
Phép chiếu dùng để chọn ra danh sách các thuộc tính trong một quan hệ, và loại bỏ những thuộc tính không cần thiết. Kết quả trả về là một quan hệ mới.

Kí hiệu: \pi_\alpha (R). Trong đó:

* \pi: kí hiệu phép chiếu.
* \alpha: danh sách các thuộc tính cần chiếu có trong bảng quan hệ R.
* R: quan hệ R.

### Phép đổi tên
Kí hiệu: \rho_S (R) hoặc \rho_{S(B_1,B2,...,B_n)} (R) hoặc \rho_{(B_1,B_2,...,B_n)}(R). Trong đó:

* \rho: kí hiệu của phép đổi tên.
* S hayS(B_1,B_2,...,B_n) hay (B_1,B_2,...,B_n): là tên mới của quan hệ được đổi tên, với các thuộc tính (B_1,B_2,...,B_n) của nó.
* R: quan hệ R.

Ví dụ: \rho_{NV(MaNV,HoNV,TenNV,Email,SDT,Phong,Luong)}(NHANVIEN), hay \rho_{NV} (NHANVIEN) dùng để đổi tên quan hệ NHANVIEN thành quan hệ mới, NV.

### Phép kết nối

#### Phép nối tự nhiên

#### Phép nối <chem>\theta</chem>
Kí hiệu: R \bowtie_\theta S. Trong đó:

* R và S: là các quan hệ.
* \bowtie_\theta: kí hiệu của phép nối \theta, với \theta là một biểu thức logic.

Nhận xét: R \bowtie_\theta S=\sigma_\theta (R\times S) 

#### Phép nối ngoài
##### Phép nối ngoài - bên trái

##### Phép nối ngoài - bên phải

##### Phép nối ngoài đầy đủ

### Phép chia

## Xem thêm
* Tích Descartes
* Phép chiếu (toán học)
* Phép chiếu (lý thuyết tập hợp)
* Quan hệ (toán học)

## Tham khảo