Tất tần tật về các phép toán trong cơ sở dữ liệu
Các phép toán trong cơ sở dữ liệu không chỉ giúp người dùng truy xuất và xử lý dữ liệu một cách hiệu quả mà còn đảm bảo tính toàn vẹn và chính xác của thông tin. Trong bài viết này, Bizfly Cloud sẽ chia sẻ tất cả các phép toán trong cơ sở dữ liệu được sử dụng hiện nay.
Cơ sở dữ liệu là gì?
Cơ sở dữ liệu (Database) là tập hợp thông tin có cấu trúc, thường lưu trữ và truy cập qua hệ thống máy tính, thường được mô hình hóa dưới dạng bảng với hàng và cột. Ví dụ như danh sách nhân viên hay bảng kiểm kê hàng hóa. Cơ sở dữ liệu được quản lý bởi hệ thống quản lý cơ sở dữ liệu (DBMS), cho phép truy xuất, thao tác và quản lý dữ liệu qua ngôn ngữ truy vấn SQL.
Thế nào là đại số quan hệ?
Đại số quan hệ (relational algebra) là một bộ các toán tử và quy tắc được sử dụng để thao tác trên các quan hệ trong lý thuyết cơ sở dữ liệu. Khái niệm này được phát triển bởi Edgar F. Codd vào năm 1970, khi ông giới thiệu mô hình dữ liệu quan hệ, và từ đó đại số quan hệ đã trở thành nền tảng cho các ngôn ngữ truy vấn dữ liệu như SQL.
Các phép toán trong cơ sở dữ liệu
1. Phép toán quan hệ
Phép chiếu
Phép chiếu (hay còn gọi là projection) trong cơ sở dữ liệu là một phép toán được sử dụng để chọn ra một số thuộc tính từ một quan hệ, đồng thời loại bỏ các thuộc tính không cần thiết. Kết quả của phép chiếu sẽ là một quan hệ mới chỉ chứa các thuộc tính đã được chỉ định trong danh sách chiếu.
Đặc điểm của phép chiếu
● Loại bỏ bộ trùng lặp: Kết quả của phép chiếu sẽ không chứa các bộ trùng lặp, tức là mỗi bộ trong kết quả là duy nhất.
● Bậc của quan hệ kết quả: Bậc (số lượng thuộc tính) của quan hệ kết quả sẽ bằng số lượng thuộc tính trong danh sách chiếu, và luôn nhỏ hơn hoặc bằng bậc của R
● Số lượng bộ: Số bộ trong quan hệ kết quả từ một phép chiếu luôn nhỏ hơn hoặc bằng số bộ trong R
Phép chiếu thường được ký hiệu bằng ký tự Hy Lạp π (pi). Cú pháp chung cho phép chiếu có thể được biểu diễn như sau:
π <dấu cách>
Trong đó:
● R: quan hệ gốc.
● <danh sách các thuộc tính>
Giả sử chúng ta có một quan hệ tên là NHÂNVIÊN với các thuộc tính như Mã số NV, Họ đệm, Tên, Địa chỉ, và Lương. Nếu chúng ta chỉ muốn lấy ra các thông tin về Mã số NV, Tên, và Lương, phép chiếu sẽ được thực hiện như sau:
π Mã số NV Tên Lương (NHÂN VIÊN)
Kết quả trả về sẽ là một quan hệ mới chỉ chứa ba thuộc tính này, loại bỏ tất cả thông tin khác
Phép chọn
Phép chọn (hay còn gọi là selection) là một phép toán trong đại số quan hệ, được sử dụng để chọn ra một tập hợp các bộ (hàng) từ một quan hệ (table) sao cho các bộ này thỏa mãn một điều kiện nhất định. Phép chọn hoạt động như một bộ lọc, chỉ giữ lại các bộ dữ liệu phù hợp với điều kiện đã đặt ra.
Khi thực hiện phép chọn, điều kiện sẽ được áp dụng cho từng bộ trong quan hệ R một cách độc lập. Nếu điều kiện cho giá trị đúng, bộ đó sẽ được đưa vào kết quả. Kết quả của phép chọn sẽ có cùng thuộc tính như quan hệ ban đầu R, nhưng số lượng bộ trong kết quả có thể ít hơn hoặc bằng số bộ trong R.
Phép chọn được ký hiệu là:
σ Điều kiện chọn (R)
Trong đó:
● σ: Ký hiệu của phép chọn.
● Điều kiện chọn: Biểu thức logic dựa trên các thuộc tính của quan hệ R.
● R là tên của quan hệ mà phép chọn được áp dụng.
Phép nối
Phép nối (join) là một trong những phép toán quan trọng trong cơ sở dữ liệu, cho phép kết hợp dữ liệu từ nhiều bảng khác nhau dựa trên một hoặc nhiều điều kiện liên quan. Dưới đây là các loại phép nối phổ biến và cách sử dụng chúng trong SQL.
● Phép Nối Trong (Inner Join): Kết hợp các bản ghi từ hai bảng chỉ khi có sự trùng khớp giữa các giá trị trong cột được chỉ định. Cú pháp như sau:
SELECT columns
FROM TableA
INNER JOIN TableB ON TableA.column = TableB.column;
● Phép Nối Trái (Left Join): Lấy tất cả các bản ghi từ bảng bên trái và các bản ghi tương ứng từ bảng bên phải. Nếu không có sự trùng khớp, kết quả sẽ trả về NULL cho các cột của bảng bên phải. Cú pháp như sau:
SELECT columns
FROM TableA
LEFT JOIN TableB ON TableA.column = TableB.column;
● Phép Nối Phải (Right Join): Ngược lại với Left Join, nó lấy tất cả các bản ghi từ bảng bên phải và các bản ghi tương ứng từ bảng bên trái. Cú pháp như sau:
SELECT columns
FROM TableA
RIGHT JOIN TableB ON TableA.column = TableB.column;
● Phép Nối Ngoài (Full Join):Định nghĩa: Kết hợp tất cả các bản ghi từ cả hai bảng, với NULL cho các cột không có sự trùng khớp. Cú pháp như sau:
SELECT columns
FROM TableA
FULL OUTER JOIN TableB ON TableA.column = TableB.column;
● Phép Nối Tự Nhiên (Natural Join): Kết nối hai bảng dựa trên tất cả các cột có cùng tên và loại dữ liệu. Cú pháp như sau:
SELECT columns
FROM TableA
NATURAL JOIN TableB;
● Phép Nối Bằng (Equi-Join): Là một dạng của Inner Join nơi điều kiện kết nối là dấu "=" giữa các cột.
Phép chia
Phép chia là một phép toán trong đại số quan hệ, được sử dụng để thực hiện các truy vấn đặc biệt trong cơ sở dữ liệu. Nó cho phép tìm kiếm các bộ thuộc tính trong một quan hệ mà thỏa mãn điều kiện liên quan đến một quan hệ khác.
Phép chia được áp dụng cho hai quan hệ R(Z) và S(X) và được ký hiệu là R(Z) S(X), trong
đó X ⊂ Z . Giả sử Y = Z - X (như vậy Z = X Y). Kết quả của phép chia là quan hệ T(Y)
chứa một bộ t nếu các bộ tR xuất hiện trong R với tR[Y] = t và với tR[X] = tS với mọi bộ tS
trong S. Điều đó có nghĩa là để một bộ t xuất hiện trong kết quả T của phép chia, các giá trị
2. Phép toán tập hợp
Phép hợp
Phép hợp (union) là một trong những phép toán cơ bản trong đại số quan hệ, cho phép kết hợp hai quan hệ (tables) thành một quan hệ mới. Kết quả của phép hợp bao gồm tất cả các bộ (tuples) thuộc ít nhất một trong hai quan hệ đầu vào.Nếu một bộ xuất hiện trong cả hai quan hệ, nó chỉ xuất hiện một lần trong kết quả.
Để thực hiện phép hợp, hai quan hệ phải có cùng kiểu cấu trúc, tức là phải có cùng số lượng thuộc tính và các thuộc tính tương ứng phải có cùng miền giá trị. Nếu không, phép hợp sẽ không thể thực hiện được. Ký hiệu cho phép hợp giữa hai quan hệ R và S thường được viết là R∪S.
Trong SQL, cú pháp để thực hiện phép hợp như sau:
SELECT column1, column2 FROM table1
UNION
SELECT column1, column2 FROM table2;
Ở đây, column1 và column2 là các thuộc tính mà bạn muốn lấy từ hai bảng table1 và table2. Kết quả sẽ là một tập hợp các bộ không trùng lặp từ cả hai truy vấn.
Phép giao
Phép giao là một trong những phép toán cơ bản trong đại số quan hệ, được sử dụng để thao tác với các quan hệ trong cơ sở dữ liệu. Cụ thể, phép giao giữa hai quan hệ
R và S được ký hiệu là R∩S và cho kết quả là một quan hệ chứa tất cả các bộ (tuple) có mặt trong cả hai quan hệ R và S.
Phép giao trong cơ sở dữ liệu có 3 tính chất sau:
● Tính giao hoán: R∩S=S∩R
● Tính kết hợp: R∩(S∩T)=(R∩S)∩T
● Tính phân phối: R∩(S∪T)=(R∩S)∪(R∩T)
Phép trừ
Phép trừ trong SQL được sử dụng để trừ một biểu thức hoặc số với một biểu thức hoặc số khác. Cú pháp cơ bản để thực hiện phép trừ là:
SELECT
FROM
WHERE <điều kiện>;
Phép tích Cartesian
Phép tích Cartesian, hay còn gọi là CROSS JOIN, là một phép toán trong SQL dùng để kết hợp hai bảng dữ liệu. Khi thực hiện phép tích này, mỗi bản ghi của bảng đầu tiên sẽ được kết hợp với tất cả các bản ghi của bảng thứ hai, tạo ra một tập hợp các bản ghi mới với số lượng bản ghi bằng tích của số bản ghi trong hai bảng.
Cú pháp cơ bản của phép tích Cartesian như sau:
SELECT cot1, cot2, ..., cotn
FROM bang1, bang2;
Trong đó:
● cot1, cot2, ..., cotn là tên các cột cần hiển thị trong kết quả.
● bang1, bang2 là tên các bảng được kết hợp
Kết quả của phép tích Cartesian sẽ có số lượng bản ghi bằng m×n, với m là số bản ghi trong bảng đầu tiên và n là số bản ghi trong bảng thứ hai. Điều này có thể dẫn đến việc tạo ra một số lượng lớn các bản ghi không có ý nghĩa nếu không có điều kiện lọc thích hợp.
Kết luận
Các phép toán trong cơ sở dữ liệu là những công cụ thiết yếu giúp người dùng tương tác với dữ liệu một cách linh hoạt và hiệu quả. Việc nắm vững các phép toán này không chỉ giúp cải thiện khả năng quản lý thông tin mà còn nâng cao hiệu suất làm việc trong môi trường số.