TỔNG QUAN VỀ GIÁO TRÌNH: CHƯƠNG 4 – NGÔN NGỮ TRUY VẤN SQL

Tài liệu học tập "Chương 4: Ngôn ngữ truy vấn SQL" được biên soạn bởi ThS. Nguyễn Đình Loan Phương, trực thuộc Khoa Hệ thống Thông tin – Trường Đại học Công nghệ Thông tin (ĐHQG-HCM). Văn bản này đóng vai trò là học phần kiến thức chuyên môn cốt lõi trong chương trình đào tạo kỹ sư và cử nhân ngành Hệ thống Thông tin cũng như nhóm ngành Công nghệ Thông tin, cung cấp cơ sở lý thuyết và phương pháp thực thi chuẩn hóa đối với việc quản trị, định nghĩa và xử lý dữ liệu trong các hệ quản trị cơ sở dữ liệu quan hệ (RDBMS).


1. Tổng quan về giáo trình

Môn học và vị trí trong chương trình đào tạo

Chương 4 về Ngôn ngữ truy vấn SQL là học phần trọng tâm trong môn học Cơ sở dữ liệu (Database Systems) thuộc khối kiến thức cơ sở ngành của Khoa Hệ thống Thông tin, Trường Đại học Công nghệ Thông tin. Học phần nối tiếp sau các khối kiến thức về Mô hình thực thể liên kết (ERD) và Lý thuyết đại số quan hệ, đóng vai trò bản lề giúp chuyển đổi các mô hình dữ liệu khái niệm và toán học trừu tượng sang môi trường lưu trữ và truy vấn thực tế trên máy tính.

Mục tiêu học tập (Learning Outcomes)

Sau khi hoàn thành nội dung học phần, người học đạt được các chuẩn đầu ra cụ thể:

  • Chuẩn đầu ra kiến thức: Nắm vững cú pháp, nguyên lý hoạt động và các chuẩn hóa của ngôn ngữ SQL từ SQL-86 đến SQL-2011; hiểu rõ cấu trúc ánh xạ giữa các khái niệm mô hình quan hệ (quan hệ, thuộc tính, bộ) với các đối tượng tương ứng trong SQL (bảng, cột, dòng); hiểu rõ ngữ nghĩa đa tập hợp (bag semantics) và cơ chế xử lý giá trị NULL.
  • Chuẩn đầu ra kỹ năng: Định nghĩa và khởi tạo thành công lược đồ cơ sở dữ liệu với đầy đủ các ràng buộc toàn vẹn; thực hiện chính xác các thao tác nạp, sửa đổi, xóa bỏ dữ liệu; xây dựng các câu truy vấn từ mức độ cơ bản đến phức tạp kết hợp nhiều quan hệ, phép toán tập hợp và các hàm kết hợp.

Cấu trúc và cách tiếp cận

Tài liệu được phân chia thành ba phân hệ nội dung chính theo chuẩn phân loại chức năng của SQL:

  1. Ngôn ngữ định nghĩa dữ liệu (Data Definition Language - DDL): Tạo lập, sửa đổi, xóa bỏ cấu trúc bảng và quản lý ràng buộc toàn vẹn.
  2. Ngôn ngữ thao tác dữ liệu (Data Manipulation Language - DML): Thêm mới, cập nhật và loại bỏ dữ liệu bên trong các quan hệ.
  3. Ngôn ngữ truy vấn dữ liệu (Data Query Language - DQL / Query): Trích xuất và tổng hợp thông tin từ cơ sở dữ liệu.

Cách tiếp cận của tài liệu dựa trên bản chất khai báo không thủ tục (non-procedural) của SQL. Người học được hướng dẫn phương pháp mô tả kết quả dữ liệu cần lấy (what) mà không cần can thiệp hay chỉ định các bước thuật toán thực thi vật lý (how).

Điểm đặc sắc của giáo trình

Tài liệu thiết lập mối liên hệ trực tiếp giữa ngôn ngữ truy vấn SQL và lý thuyết Đại số quan hệ ($\pi, \sigma, \times$), giúp người học hiểu rõ nguồn gốc toán học của các mệnh đề SELECT, FROM, WHERE. Đồng thời, hệ thống ví dụ và bài tập được đồng bộ hóa hoàn toàn trên một lược đồ cơ sở dữ liệu doanh nghiệp thực tế gồm các thực thể: Nhân viên (NHANVIEN), Phòng ban (PHONGBAN), Đề án (DEAN), Phân công (PHANCONG), Thân nhân (THANNHAN), Địa điểm phòng ban (DDIEM_PHG) và Sản phẩm (SANPHAM).


2. Nội dung kiến thức cốt lõi

Các chương và chủ đề chính

1. Tổng quan và lịch sử phát triển SQL

  • Định nghĩa: SQL (Structured Query Language) là ngôn ngữ chuẩn dùng cho truy vấn và thao tác trên cơ sở dữ liệu quan hệ.
  • Lịch sử và chuẩn hóa: Được IBM phát triển vào thập niên 1970 với tên gọi ban đầu là SEQUEL, sau đó được ANSI công nhận và chuẩn hóa qua các phiên bản: SQL-86, SQL-89, SQL-92, SQL-99, SQL-2003, SQL-2006, SQL-2008 và SQL-2011.
  • Thuật ngữ tương ứng:
    • Bảng (Table) tương đương Quan hệ (Relation).
    • Cột (Column) tương đương Thuộc tính (Attribute).
    • Dòng (Row) tương đương Bộ (Tuple).
  • Ngữ nghĩa đa tập hợp (Bag Semantics): Các biểu thức SQL mặc định có thể trả về các bộ trùng lặp trừ khi sử dụng từ khóa loại bỏ tường minh (DISTINCT).

2. Ngôn ngữ định nghĩa dữ liệu (DDL)

  • Chức năng: Mô tả lược đồ quan hệ, xác định miền giá trị của từng thuộc tính, thiết lập các ràng buộc toàn vẹn (RBTV) và chỉ mục (index).
  • Hệ thống kiểu dữ liệu:
    • Kiểu số: tinyint, smallint, int, numeric(m,n), decimal(m,n), float, real, smallmoney, money, bit.
    • Kiểu chuỗi ký tự: char(n), varchar(n), nchar(n), nvarchar(n).
    • Kiểu ngày tháng: datetime, smalldatetime.
    • Kiểu chuỗi nhị phân: binary, varbinary.
  • Tạo bảng (CREATE TABLE) và Ràng buộc toàn vẹn:
    • Cú pháp cơ bản định nghĩa danh sách cột, kiểu dữ liệu và ràng buộc.
    • Các loại ràng buộc: NOT NULL, NULL, UNIQUE, DEFAULT, PRIMARY KEY, FOREIGN KEY / REFERENCES, CHECK.
    • Cú pháp đặt tên cho ràng buộc: CONSTRAINT <Ten_RBTV> <Loai_RBTV>.
    • Ví dụ định nghĩa: Bảng NHANVIEN thiết lập khóa chính CONSTRAINT PK_NV_MANV PRIMARY KEY (MANV), ràng buộc kiểm tra CONSTRAINT CK_NV_PHAI CHECK (PHAI IN ('Nam', 'Nu')), giá trị mặc định CONSTRAINT DF_NV_LUONG DEFAULT (10000), và khóa ngoại tham chiếu trong bảng PHANCONG (CONSTRAINT FK_PC_MANVIEN FOREIGN KEY (MA_NVIEN) REFERENCES NHANVIEN(MANV)).
  • Sửa đổi cấu trúc bảng (ALTER TABLE):
    • Thêm cột: ALTER TABLE <Tên_bảng> ADD <Tên_cột> <Kiểu_dữ_liệu> [<RBTV>].
    • Xóa cột: ALTER TABLE <Tên_bảng> DROP COLUMN <Tên_cột>.
    • Sửa cột: ALTER TABLE <Tên_bảng> ALTER COLUMN <Tên_cột> <Kiểu_dữ_liệu_mới>.
  • Xóa bảng (DROP TABLE): Xóa toàn bộ cấu trúc và dữ liệu của quan hệ. Quy tắc bắt buộc: Khi xóa một bảng, phải tiến hành xóa tất cả các khóa ngoại từ bảng khác tham chiếu tới bảng đó trước.
  • Định nghĩa miền giá trị (CREATE DOMAIN): Khởi tạo kiểu dữ liệu kế thừa có điều kiện. Ví dụ: CREATE DOMAIN t_cvu AS CHAR(2) DEFAULT 'KT' CHECK(VALUE IN (NULL, 'TK', 'LT', 'PT', 'KT')).

3. Ngôn ngữ thao tác dữ liệu (DML)

  • Thêm dữ liệu (INSERT INTO): Cú pháp nạp đầy đủ hoặc chỉ định danh sách cột: INSERT INTO <Tên_bảng>(<Danh_sách_cột>) VALUES (<Danh_sách_giá_trị>). Ví dụ thao tác trên bảng SANPHAM: insert into SANPHAM values('BC01','But chi', 'cay', 'Singapore', 3000).
  • Xóa dữ liệu (DELETE FROM): Cú pháp DELETE FROM <Tên_bảng> [WHERE <Điều_kiện>]. Ví dụ xóa nhân viên (DELETE FROM NHANVIEN) hoặc xóa sản phẩm có điều kiện: DELETE FROM SANPHAM WHERE (Gia<10000) and (Nuocsx='Trung Quoc').
  • Cập nhật dữ liệu (UPDATE): Cú pháp UPDATE <Tên_bảng> SET <Thuộc_tính>=<Giá_trị> [WHERE <Điều_kiện>]. Ví dụ tăng 10% giá sản phẩm sản xuất tại Trung Quốc: UPDATE SANPHAM SET Gia = Gia*1.1 WHERE Nuocsx='Trung Quoc'.

4. Ngôn ngữ truy vấn dữ liệu (DQL / SELECT)

  • Dạng tổng quát: SELECT <Danh_sách_cột> FROM <Danh_sách_bảng> [WHERE <Điều_kiện>].
  • Ánh xạ Đại số quan hệ: Cấu trúc truy vấn SELECT L FROM R WHERE C tương đương với biểu thức đại số quan hệ $\pi_L(\sigma_C(R))$.
  • Mệnh đề SELECT:
    • Trích xuất toàn bộ: SELECT * FROM NHANVIEN WHERE PHG=5 (tương đương $\sigma_{PHG=5}(NHANVIEN)$).
    • Loại bỏ bản ghi trùng: Từ khóa DISTINCT (ví dụ SELECT DISTINCT LUONG FROM NHANVIEN).
    • Đặt tên bí danh: Từ khóa AS cho cột (ví dụ HONV AS HO, TENNV AS TEN).
    • Biểu thức tính toán và xử lý chuỗi: Thực hiện phép toán +, -, *, / trên thuộc tính (ví dụ LUONG*1.1 AS 'LUONG10%') và phép ghép chuỗi (HONV + ' ' + TENLOT + ' ' + TENNV AS 'HO TEN').
  • Mệnh đề WHERE và các toán tử lọc:
    • Toán tử logic: AND, OR, NOT.
    • Khoảng giá trị: BETWEEN ... AND ... và NOT BETWEEN ... AND ... (ví dụ WHERE LUONG BETWEEN 20000 AND 45000).
    • So sánh chuỗi: Toán tử LIKE với ký tự đại diện % (thay thế chuỗi bất kỳ) và _ (thay thế 1 ký tự). Xử lý ký tự đặc biệt bằng mệnh đề ESCAPE (ví dụ LIKE 'B/_%' ESCAPE '/') hoặc đóng ngoặc vuông LIKE 'B[_]%'.
    • Giá trị NULL: Kiểm tra bằng IS NULL hoặc IS NOT NULL. Quy tắc: Biểu thức toán học chứa NULL cho kết quả NULL (ví dụ 9 + null trả về null); các hàm tính toán tự động bỏ qua giá trị NULL.
    • Kiểm tra tập hợp: Toán tử IN (ví dụ WHERE PHG IN ('P1', 'P2', 'P3')).
  • Mệnh đề FROM và Kết nối nhiều bảng:
    • Liệt kê danh sách bảng và xác định điều kiện kết trong WHERE.
    • Quy tắc tích Descartes: Nếu không chỉ định điều kiện kết giữa các bảng trong WHERE, câu truy vấn sẽ trả về tích Descartes của các bảng (tương đương $R_1 \times R_2$).
    • Đặt bí danh cho bảng: FROM PHONGBAN AS PB, DDIEM_PHG AS DD WHERE PB.MAPHG = DD.MAPHG.
  • Các phép toán tập hợp:
    • UNION [ALL]: Phép hợp hai tập kết quả (ALL giữ lại các dòng trùng).
    • INTERSECT [ALL]: Phép giao hai tập kết quả.
    • EXCEPT [ALL]: Phép trừ hai tập kết quả.
  • Mệnh đề ORDER BY: Sắp xếp kết quả trả về theo thứ tự tăng dần (ASC - mặc định) hoặc giảm dần (DESC), hỗ trợ sắp xếp đa thuộc tính (ví dụ ORDER BY PHG DESC, NGSINH ASC).
  • Năm hàm kết hợp cơ bản (Aggregate Functions):
    • COUNT(*), COUNT(<Tên_thuộc_tính>): Đếm số dòng hoặc số giá trị khác NULL.
    • SUM(<Thuộc_tính>): Tính tổng (chỉ áp dụng cho kiểu số).
    • AVG(<Thuộc_tính>): Tính giá trị trung bình (chỉ áp dụng cho kiểu số).
    • MIN(<Thuộc_tính>), MAX(<Thuộc_tính>): Tìm giá trị nhỏ nhất và lớn nhất (áp dụng cho mọi kiểu dữ liệu).
    • Kết hợp với DISTINCT để loại trừ các giá trị trùng lặp trước khi tính toán.

Kiến thức nền tảng được xây dựng

  • Fundamental Theories: Mô hình dữ liệu quan hệ của E.F. Codd, Đại số quan hệ (Relational Algebra), và lý thuyết tập hợp mở rộng (Multiset / Bag Theory).
  • Core Principles: Tính phi thủ tục (Declarative / Non-procedural Paradigm); nguyên lý toàn vẹn dữ liệu thông qua ràng buộc miền (Domain Constraints), toàn vẹn thực thể (Entity Integrity qua Khóa chính) và toàn vẹn tham chiếu (Referential Integrity qua Khóa ngoại).
  • Essential Frameworks: Lược đồ chuẩn ANSI SQL; mô hình quản trị dữ liệu ACID và cơ chế kiểm soát dữ liệu trên bảng quan hệ.

Kỹ năng phát triển

  • Technical Skills: Kỹ năng viết mã lệnh DDL để khởi tạo hệ thống bảng, cấu hình khóa và ràng buộc; kỹ năng sử dụng DML để thao tác dữ liệu; kỹ năng xây dựng câu truy vấn DQL từ cơ bản đến nâng cao.
  • Analytical Skills: Kỹ năng phân tích cấu trúc liên kết giữa các thực thể; kỹ năng phân rã bài toán nghiệp vụ thành biểu thức logic điều kiện; kỹ năng xử lý các trường hợp ngoại lệ liên quan đến giá trị rỗng (NULL).
  • Practical Competencies: Năng lực tổ chức, chuẩn hóa và trích xuất dữ liệu phục vụ các bài toán quản lý nhân sự, dự án, phòng ban và sản phẩm trong doanh nghiệp.

3. Phương pháp giảng dạy và học tập

Tiếp cận sư phạm (Pedagogical Approach)

Giáo trình áp dụng phương pháp tiếp cận diễn dịch kết hợp đối chiếu lý thuyết - thực nghiệm:

  1. Trình bày cú pháp chuẩn: Định nghĩa cú pháp tổng quát theo chuẩn ANSI SQL.
  2. Phân tích ngữ nghĩa toán học: Ánh xạ câu lệnh với phép toán Đại số quan hệ tương ứng ($\pi, \sigma, \times, \cup, \cap, -$).
  3. Thực thi trên lược đồ cụ thể: Cung cấp mã lệnh minh họa trực tiếp trên lược đồ dữ liệu mẫu.
  4. Hiển thị bảng dữ liệu kết quả: Trình bày kết quả dạng bảng dữ liệu trước và sau khi thực thi câu lệnh.

Bài tập và Case Studies

Toàn bộ bài giảng được chuẩn hóa trên hai lược đồ quan hệ cụ thể:

Lược đồ Quản lý Đề án Doanh nghiệp

  • NHANVIEN (MANV, HONV, TENLOT, TENNV, NGSINH, DCHI, PHAI, LUONG, MA_NQL, PHG)
  • PHONGBAN (TENPB, MAPHG, TRPHG, NG_NHANCHUC)
  • PHANCONG (MA_NVIEN, SODA, THOIGIAN, NVU)
  • DEAN (MADA, TENDA, DDIEM_DA, PHONG)
  • THANNHAN (MA_NVIEN, TENTN, PHAI, NGSINH, QUANHE)
  • DDIEM_PHG (MAPHG, DIADIEM)

Lược đồ Quản lý Sản phẩm

  • SANPHAM (MASP, TENSP, DVT, NUOCSX, GIA)

Bài tập thực hành mẫu (Practical Exercises)

Tài liệu cung cấp hệ thống 9 bài toán truy vấn thực hành điển hình:

  1. Rút trích danh sách các dự án có ngân sách lớn hơn $250.000$.
  2. Liệt kê danh sách các chức vụ và mức lương tương ứng, loại bỏ các dòng trùng lặp.
  3. Tìm tên nhân viên sinh sau ngày $01/07/1970$, có lương lớn hơn $35.000$ và có chức vụ là 'LT' hoặc 'PT'.
  4. Xuất danh sách tên phòng ban, tên dự án do phòng ban đó chủ trì và họ tên người quản lý phòng ban.
  5. Cho biết tên nhân viên và tên dự án tham gia, chỉ lọc các dự án do phòng ban khác với phòng nhân viên trực thuộc chủ trì.
  6. Truy vấn các đề án tại 'Ha Noi', hiển thị mã đề án, mã phòng ban chủ trì, họ tên trưởng phòng cùng ngày sinh và địa chỉ của trưởng phòng.
  7. Tìm họ tên nhân viên thuộc phòng số $5$ có tham gia đề án "Sản phẩm X" với số giờ làm việc trên $10$ giờ.
  8. Liệt kê họ tên của từng nhân viên cùng họ tên người phụ trách trực tiếp nhân viên đó.
  9. Tìm họ tên các nhân viên chịu sự quản lý trực tiếp của người quản lý có tên "Nguyen Thanh Tung".

Phương pháp đánh giá và hướng dẫn tự học

  • Phương pháp đánh giá: Đánh giá dựa trên tính hợp lệ của cú pháp DDL/DML, tính chính xác của kết quả truy vấn DQL, mức độ tối ưu của điều kiện kết nối và khả năng bảo toàn toàn vẹn dữ liệu khi thao tác.
  • Hướng dẫn tự học:
    1. Đọc và phân tích kỹ lược đồ quan hệ mẫu.
    2. Tự viết lại câu lệnh CREATE TABLE kèm đầy đủ các ràng buộc PRIMARY KEY, FOREIGN KEY, CHECK, DEFAULT.
    3. Phân tích các ví dụ về mệnh đề WHERE, toán tử LIKE, IN, BETWEEN và kiểm tra xử lý giá trị NULL.
    4. Thực hành giải tuần tự 9 bài toán truy vấn mẫu và so sánh với cấu trúc Đại số quan hệ tương ứng.

4. Điểm nổi bật và cập nhật

Quá trình chuẩn hóa qua các phiên bản

Giáo trình ghi nhận đầy đủ tiến trình phát triển và chuẩn hóa của ngôn ngữ SQL từ nguyên mẫu ban đầu đến các tiêu chuẩn hiện đại:

Chuẩn ANSI/ISO Năm công bố Điểm bổ sung và đặc trưng kỹ thuật
SEQUEL / IBM 1970s Giai đoạn nghiên cứu ban đầu tại phòng thí nghiệm IBM San Jose
SQL-86 1986 Tiêu chuẩn ANSI SQL đầu tiên được công nhận chính thức
SQL-89 1989 Bổ sung các chuẩn ràng buộc toàn vẹn cơ bản
SQL-92 1992 Mở rộng chuẩn kết nối bảng (JOIN), kiểu dữ liệu mới và toán tử quan hệ
SQL-99 1999 Bổ sung tính năng hướng đối tượng, biểu thức đệ quy, TRIGGER
SQL-2003 2003 Tích hợp các tính năng liên quan đến XML, hàm cửa sổ (Window functions)
SQL-2006 2006 Định nghĩa chuẩn lưu trữ và truy vấn tài liệu XML (SQL/XML)
SQL-2008 2008 Mở rộng các hàm xử lý dữ liệu và cải tiến câu lệnh TRUNCATE
SQL-2011 2011 Hỗ trợ dữ liệu thời gian (Temporal data) và nâng cao hiệu năng truy vấn

Cập nhật kiểu dữ liệu và cú pháp mở rộng

  • Kiểu dữ liệu mở rộng: Tích hợp các kiểu dữ liệu chuyên dụng trong các hệ quản trị CSDL thương mại và mã nguồn mở:
    • Kiểu tiền tệ: money, smallmoney.
    • Kiểu chuỗi Unicode hỗ trợ đa ngôn ngữ: nvarchar(n), nchar(n).
    • Kiểu thời gian ngắn: smalldatetime.
    • Kiểu nhị phân biến đổi: varbinary.
  • Định nghĩa miền giá trị người dùng (CREATE DOMAIN): Cung cấp cú pháp chuẩn cho phép đóng gói kiểu dữ liệu nền tảng kèm ràng buộc điều kiện và giá trị mặc định (DEFAULT, CHECK).

Ứng dụng thực tế và kết nối nghiệp vụ

  • Mô hình hóa nghiệp vụ doanh nghiệp: CSDL mẫu mô phỏng chính xác các quan hệ thực tế gồm quản lý nhân sự phân cấp (MA_NQL tham chiếu đệ quy đến MANV), phân công công việc đa đối tượng (PHANCONG tham chiếu nhiều chiều đến NHANVIEN và DEAN), quản lý tài chính sản phẩm (SANPHAM).
  • Giải quyết các bài toán biên: Đưa ra các quy tắc xử lý thực tế khi dữ liệu bị thiếu khuyết (NULL), nguyên tắc bảo toàn toàn vẹn tham chiếu khi xóa dữ liệu có khóa ngoại ràng buộc, và phương pháp xử lý chuỗi ký tự đặc biệt bằng ESCAPE.

5. Đối tượng sử dụng giáo trình

Sinh viên theo học các ngành kỹ thuật và công nghệ

  • Chuyên ngành: Sinh viên theo học các ngành Hệ thống Thông tin, Khoa học Máy tính, Kỹ thuật Phần mềm, Công nghệ Thông tin, Kỹ thuật Dữ liệu và An toàn Thông tin.
  • Thời điểm: Thường được giảng dạy vào năm thứ hai hoặc đầu năm thứ ba trong chương trình đào tạo đại học/cao học.

Yêu cầu kiến thức tiên quyết (Prerequisites)

Để tiếp thu nội dung tài liệu một cách tối ưu, người học cần hoàn thành các nội dung kiến thức tiên quyết:

  1. Khái niệm Cơ sở dữ liệu cơ bản: Hiểu về mô hình dữ liệu quan hệ, khái niệm khóa chính, khóa ngoại, bộ và thuộc tính.
  2. Lý thuyết Đại số quan hệ (Relational Algebra): Nắm vững các phép toán $\sigma$ (chọn), $\pi$ (chiếu), $\times$ (tích Descartes), $\bowtie$ (kết nối), $\cup$ (hợp), $\cap$ (giao), $-$ (trừ).
  3. Logic toán học: Hiểu rõ logic mệnh đề boolean (AND, OR, NOT) và các phép so sánh toán học.

Giảng viên và công tác giảng dạy

  • Sử dụng làm đề cương chi tiết và tài liệu trình chiếu chính thức cho các buổi học lý thuyết trên lớp.
  • Khai thác hệ thống bảng dữ liệu mẫu và các bài tập mẫu để thiết kế bài thực hành phòng máy (Lab), đề thi kiểm tra giữa kỳ và cuối kỳ.

Tự học và tra cứu kỹ thuật (Reference)

  • Dành cho các lập trình viên, kỹ sư phát triển phần mềm và chuyên viên phân tích dữ liệu cần tài liệu tra cứu chuẩn xác về cú pháp SQL chuẩn ANSI, nguyên tắc hoạt động của các ràng buộc toàn vẹn và các quy tắc xử lý tập hợp.

6. Câu hỏi thường gặp (FAQ)

1. Giáo trình này phù hợp với những đối tượng người học nào?

Giáo trình được thiết kế trực tiếp cho sinh viên đại học và cao học thuộc khối ngành Công nghệ Thông tin và Hệ thống Thông tin đang theo học học phần Cơ sở dữ liệu, đồng thời là tài liệu tham khảo kỹ thuật cho lập trình viên và người tự học muốn củng cố kiến thức nền tảng về ngôn ngữ SQL chuẩn.

2. Người học cần trang bị những kiến thức nền tảng nào trước khi học giáo trình này?

Người học cần có kiến thức cơ bản về mô hình cơ sở dữ liệu quan hệ và các phép toán trong Đại số quan hệ (chọn, chiếu, tích Descartes, kết nối). Việc nắm vững logic vị từ và biểu thức boolean sẽ hỗ trợ trực tiếp cho việc viết mệnh đề điều kiện WHERE.

3. Điểm khác biệt cốt lõi giữa tài liệu này với các tài liệu hướng dẫn SQL thông thường là gì?

Tài liệu không đơn thuần liệt kê cú pháp mà liên kết chặt chẽ từng mệnh đề SQL với nền tảng lý thuyết Đại số quan hệ ($\pi, \sigma, \times$), phân tích rõ ràng cơ chế ngữ nghĩa đa tập hợp (bag semantics), quy định xử lý giá trị NULL trong các phép tính toán và chuẩn hóa việc đặt tên ràng buộc toàn vẹn thông qua từ khóa CONSTRAINT.

4. Phương pháp tự học giáo trình này như thế nào để đạt hiệu quả cao nhất?

Người học nên tiến hành theo trình tự:

  1. Vẽ lại lược đồ quan hệ của CSDL Quản lý Đề án và Sản phẩm để nắm bắt cấu trúc bảng và các mối quan hệ khóa ngoại.
  2. Viết mã lệnh DDL tạo bảng kèm các ràng buộc PRIMARY KEY, FOREIGN KEY, CHECK, DEFAULT.
  3. Nhập dữ liệu mẫu bằng các câu lệnh INSERT INTO.
  4. Thực hiện các câu lệnh truy vấn mẫu từ đơn giản đến phức tạp, đồng thời phân tích cây đại số quan hệ tương ứng của từng câu truy vấn.

5. Có những tài liệu bổ trợ và hệ thống dữ liệu mẫu nào đi kèm với giáo trình?

Tài liệu tích hợp đầy đủ hệ thống dữ liệu mẫu bao gồm hai lược đồ hoàn chỉnh: CSDL Quản lý Đề án Doanh nghiệp (NHANVIEN, PHONGBAN, PHANCONG, DEAN, THANNHAN, DDIEM_PHG) và CSDL Quản lý Bán hàng (SANPHAM). Đi kèm là danh sách 9 bài toán truy vấn thực tế có phân tích cấu trúc điều kiện chi tiết.


7. Kết luận

Chương 4 "Ngôn ngữ truy vấn SQL" của Khoa Hệ thống Thông tin – Trường Đại học Công nghệ Thông tin cung cấp một hệ thống kiến thức hoàn chỉnh, chuẩn mực và mang tính học thuật cao về ngôn ngữ định nghĩa, thao tác và truy vấn dữ liệu trên mô hình cơ sở dữ liệu quan hệ.

Lộ trình học tập đề xuất

  1. Giai đoạn 1: Tiếp cận phân hệ DDL, nắm vững các kiểu dữ liệu, viết câu lệnh CREATE TABLE, ALTER TABLE và thiết lập hệ thống ràng buộc toàn vẹn thông qua CONSTRAINT.
  2. Giai đoạn 2: Thực hành các thao tác nạp, xóa và sửa dữ liệu với INSERT INTO, DELETE FROM, UPDATE.
  3. Giai đoạn 3: Xây dựng các câu truy vấn SELECT đơn bảng và đa bảng, làm chủ kỹ thuật kết nối dữ liệu và xử lý các toán tử lọc WHERE, LIKE, IN, BETWEEN, IS NULL.
  4. Giai đoạn 4: Ứng dụng các phép toán đại số tập hợp (UNION, INTERSECT, EXCEPT), mệnh đề sắp xếp ORDER BY và 5 hàm kết hợp (COUNT, SUM, AVG, MIN, MAX) để xử lý các yêu cầu trích xuất dữ liệu tổng hợp.

Tài nguyên tham khảo

  • Bài giảng điện tử Chương 4: Ngôn ngữ truy vấn SQL – Giảng viên ThS. Nguyễn Đình Loan Phương, Khoa Hệ thống Thông tin, Trường Đại học Công nghệ Thông tin (ĐHQG-HCM).
  • Hệ thống tiêu chuẩn ngôn ngữ SQL của ANSI/ISO (từ chuẩn SQL-86 đến SQL-2011).