Ngôn ngữ dữ liệu trong Mô hình Quan hệ

1. Tổng quan về Ngôn ngữ dữ liệu

Ngôn ngữ dữ liệu là công cụ để người dùng giao tiếp với Hệ quản trị cơ sở dữ liệu (Hệ QTCSDL) nhằm định nghĩa và thao tác dữ liệu.

Phân loại ngôn ngữ truy vấn:

2. Ngôn ngữ Đại số quan hệ (ĐSQH)

Là tập hợp các phép toán trên các quan hệ. Đầu vào là một hoặc nhiều quan hệ, đầu ra là một quan hệ mới.

Các phép toán quan hệ:

  1. Phép chiếu (Π - Projection): Lựa chọn một số thuộc tính (cột) từ quan hệ.
    • Cú pháp: ΠA1,A2,...(R)
  2. Phép chọn (σ - Selection): Lựa chọn các bộ (dòng) thỏa mãn điều kiện nhất định.
    • Cú pháp: σcondition(R)
  3. Phép kết nối ( - Join): Ghép các bộ từ hai quan hệ dựa trên điều kiện kết nối.
    • Kết nối tự nhiên (): Kết nối dựa trên các thuộc tính trùng tên.
    • Kết nối ngoài (Outer Join): Giữ lại các bộ không tìm thấy phần tương ứng (Trái/Phải).
  4. Phép chia (÷ - Division): Tìm các giá trị trong quan hệ R1 xuất hiện cùng với tất cả các giá trị trong quan hệ R2.

Các phép toán tập hợp:

3. Ngôn ngữ SQL (Structured Query Language)

SQL là ngôn ngữ chuẩn hóa để quản lý và thao tác dữ liệu trong CSDL quan hệ.

Các thành phần của SQL:

Định nghĩa dữ liệu (DDL):

Thao tác dữ liệu (DML):

Truy vấn dữ liệu (SELECT):

Cấu trúc tổng quát:

SELECT [DISTINCT] thuộc_tính
FROM danh_sách_bảng
[WHERE điều_kiện_chọn]
[GROUP BY thuộc_tính_nhóm]
[HAVING điều_kiện_nhóm]
[ORDER BY thuộc_tính [ASC|DESC]];

4. Xử lý câu hỏi truy vấn

Khi nhận một câu lệnh SQL, Hệ QTCSDL thực hiện các bước:

  1. Phân tích cú pháp (Parser): Kiểm tra tính đúng đắn của câu lệnh.
  2. Chuyển đổi: Chuyển câu lệnh SQL sang biểu thức Đại số quan hệ.
  3. Bộ tối ưu hóa (Optimizer): Tìm phương án thực thi (Execution Plan) hiệu quả nhất.
  4. Bộ sinh mã: Tạo chương trình thực thi tối ưu để lấy dữ liệu từ CSDL.