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

Giáo trình "Hướng Dẫn SQL Cơ Bản và Nâng Cao" là tài liệu học tập chuyên khảo về Ngôn ngữ Truy vấn có Cấu trúc (Structured Query Language - SQL), phục vụ trực tiếp cho học phần Cơ sở dữ liệu và Hệ quản trị cơ sở dữ liệu quan hệ trong chương trình đào tạo đại học các ngành Công nghệ thông tin, Hệ thống thông tin, Khoa học máy tính và Kỹ thuật phần mềm. Về mặt vị trí chương trình, giáo trình đóng vai trò cầu nối bản lề giữa lý thuyết mô hình dữ liệu quan hệ (đặc biệt là Đại số quan hệ - ĐSQH) với việc triển khai thực tế trên các hệ quản trị cơ sở dữ liệu (RDBMS).

Mục tiêu học tập của giáo trình nhằm trang bị cho người học:

  • Hiểu rõ nguồn gốc lịch sử, tiến trình chuẩn hóa của SQL từ ngôn ngữ SEQUEL do IBM phát triển trong thập niên 1970 đến các chuẩn ANSI (SQL-86, SQL-92, SQL-99).
  • Làm chủ cú pháp Ngôn ngữ Định nghĩa Dữ liệu (Data Definition Language - DDL) để thiết lập lược đồ quan hệ, kiểu dữ liệu, các ràng buộc toàn vẹn (RBTV), cũng như cơ chế chỉnh sửa và xóa cấu trúc bảng.
  • Nắm vững Ngôn ngữ Thao tác Dữ liệu (Data Manipulation Language - DML) và Ngôn ngữ Truy vấn Dữ liệu (Data Query Language - DQL) qua các mệnh đề SELECT, FROM, WHERE, ORDER BY, GROUP BY, kết hợp với các phép toán tập hợp (UNION, INTERSECT, EXCEPT) và truy vấn con lồng nhau (Subquery).
  • Làm quen với các đối tượng nâng cao như khung nhìn (View) và chỉ mục (Index).

Cấu trúc tài liệu được thiết kế theo tiến trình logic từ tổng quan lý thuyết, định nghĩa cấu trúc dữ liệu, đến các kỹ thuật truy vấn từ cơ bản đến chuyên sâu. Điểm đặc sắc của giáo trình là việc xây dựng hệ thống ví dụ thực hành thống nhất dựa trên lược đồ cơ sở dữ liệu quản lý nhân sự - đề án (gồm các quan hệ NHANVIEN, PHONGBAN, PHANCONG, DEAN, THANNHAN), giúp người học theo dõi trực quan mối quan hệ giữa các bảng và tác động ngữ nghĩa của từng câu lệnh.


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

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

Căn cứ theo đề cương và cấu trúc tài liệu, nội dung giáo trình được chia thành các chủ đề học thuật trọng tâm:

  1. Giới thiệu tổng quan về SQL:

    • Hoàn cảnh ra đời: Ngôn ngữ cấp cao phát triển bởi IBM vào những năm 1970 với tên gọi ban đầu là SEQUEL, sau đó được Viện Tiêu chuẩn Quốc gia Hoa Kỳ (ANSI) chuẩn hóa thành các phiên bản SQL-86, SQL-92 và SQL-99.
    • Bản chất ngôn ngữ: Cho phép người sử dụng chỉ cần mô tả nội dung dữ liệu cần truy vấn thay vì phải chỉ định cách thức truy vấn tuần tự như trong Đại số quan hệ (ĐSQH).
    • Hệ thống thuật ngữ tương đương: Bảng tương ứng với quan hệ (Relation), cột tương ứng với thuộc tính (Attribute), dòng tương ứng với bộ (Tuple).
    • Phân loại các thành phần chức năng: Ngôn ngữ định nghĩa dữ liệu (DDL), ngôn ngữ thao tác dữ liệu (DML), ngôn ngữ thao tác dữ liệu nhúng, định nghĩa khung nhìn, ràng buộc toàn vẹn, phân quyền/bảo mật và điều khiển giao tác.
  2. Ngôn ngữ định nghĩa dữ liệu (DDL - Data Definition Language):

    • Chức năng: Mô tả lược đồ quan hệ, miền giá trị thuộc tính, ràng buộc toàn vẹn và chỉ mục.
    • Hệ thống kiểu dữ liệu chuẩn:
      • Kiểu số (Numeric): INTEGER, SMALLINT, NUMERIC(p, s), DECIMAL(p, s), REAL, DOUBLE PRECISION, FLOAT(p).
      • Kiểu chuỗi ký tự: CHARACTER(n) (hoặc CHAR(n)), CHARACTER VARYING(x) (hoặc VARCHAR(x)).
      • Kiểu chuỗi bit: BIT(x), BIT VARYING(x).
      • Kiểu ngày giờ (Datetime): DATE (ngày, tháng, năm), TIME (giờ, phút, giây), TIMESTAMP (ngày và giờ).
    • Cú pháp tạo bảng (CREATE TABLE) và khai báo miền giá trị mới (CREATE DOMAIN).
    • Ràng buộc toàn vẹn (RBTV): Khai báo mức cột và mức bảng với NOT NULL, NULL, UNIQUE, DEFAULT, PRIMARY KEY, FOREIGN KEY (REFERENCES), CHECK, cùng cơ chế đặt tên tường minh thông qua từ khóa CONSTRAINT.
    • Hiệu chỉnh và xóa cấu trúc bảng: Lệnh ALTER TABLE với các hành động ADD COLUMN, DROP COLUMN, ALTER COLUMN, ADD CONSTRAINT, DROP CONSTRAINT; Lệnh DROP TABLE để xóa bảng và toàn bộ dữ liệu.
  3. Cú pháp truy vấn dữ liệu cơ bản (DQL - Data Query Language):

    • Cấu trúc cơ bản gồm ba mệnh đề: SELECT <danh sách các cột> FROM <danh sách các bảng> WHERE <điều kiện>.
    • Đối chiếu với Đại số quan hệ: Cú pháp SELECT L FROM R WHERE C tương đương với biểu thức toán học $\Pi_L(\sigma_C(R))$.
    • Phân biệt mô hình dữ liệu: Trong SQL, bảng là đa tập hợp (Bag - cho phép các dòng trùng nhau), trong khi quan hệ trong ĐSQH là tập hợp (Set - không chứa phần tử trùng lặp).
    • Mở rộng mệnh đề SELECT: Đặt bí danh (AS), biểu thức số học (LUONG * 1.1), phép ghép chuỗi ký tự (HONV + ' ' + TENLOT + ' ' + TENNV), và loại bỏ trùng lặp bằng từ khóa DISTINCT.
  4. Xây dựng biểu thức logic và lọc dữ liệu trong mệnh đề WHERE:

    • Kết hợp điều kiện: Các toán tử logic AND, OR, NOT và thứ tự ưu tiên khi dùng dấu ngoặc đơn ( ).
    • Toán tử khoảng giá trị: Cú pháp BETWEEN <giá_trị_1> AND <giá_trị_2> và dạng phủ định NOT BETWEEN.
    • So sánh mẫu chuỗi (Pattern Matching): Toán tử LIKE và NOT LIKE với ký tự gạch dưới _ (đại diện cho một ký tự bất kỳ), dấu phần trăm % (đại diện cho một chuỗi ký tự bất kỳ), cùng mệnh đề ESCAPE để xử lý ký tự đặc biệt.
    • Xử lý giá trị rỗng (NULL): Ngữ nghĩa của NULL (không biết, không thể áp dụng, không tồn tại); tính toán với NULL cho ra kết quả NULL; so sánh với NULL trả về giá trị logic UNKNOWN; kiểm tra giá trị qua cú pháp IS NULL và IS NOT NULL.
    • Điều kiện liên quan đến ngày giờ: Xử lý định dạng chuỗi ngày tháng (YYYY-MM-DD, MM/DD/YYYY, HH:MI:SS).
  5. Mệnh đề FROM, ORDER BY và Phép toán tập hợp:

    • Mệnh đề FROM: Thực hiện tích Descartes khi không có điều kiện WHERE; kỹ thuật đặt bí danh bảng để tham chiếu và kết nối các bảng liên quan (ví dụ: liên kết NHANVIEN và THANNHAN qua MANV = MA_NVIEN).
    • Mệnh đề ORDER BY: Sắp xếp kết quả hiển thị theo chiều tăng dần (ASC - mặc định) hoặc giảm dần (DESC), hỗ trợ sắp xếp theo nhiều cột.
    • Phép toán tập hợp: Cài đặt các phép toán Hội (UNION), Giao (INTERSECT), Trừ (EXCEPT). Theo mặc định, các toán tử này loại bỏ dòng trùng; để giữ lại các bộ trùng lặp, sử dụng các biến thể mở rộng UNION ALL, INTERSECT ALL, EXCEPT ALL.
  6. Truy vấn con (Subquery), Khung nhìn (View) và Chỉ mục (Index):

    • Truy vấn con: Lệnh SELECT lồng bên trong câu lệnh SELECT, UPDATE, hoặc DELETE, được bao bọc trong cặp dấu ngoặc đơn ( ) và xuất hiện phổ biến trong các mệnh đề WHERE, HAVING, FROM.
    • Khung nhìn và Chỉ mục: Định nghĩa bảng ảo phục vụ bảo mật/đơn giản hóa truy vấn và cấu trúc dữ liệu bổ trợ nhằm tăng tốc độ tìm kiếm.

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

  • Lý thuyết tập hợp và Đại số quan hệ: Xây dựng mối liên kết toán học giữa các phép toán chiếu ($\Pi$), chọn ($\sigma$), tích Descartes ($\times$), và phép kết nối với các mệnh đề SQL tương ứng.
  • Tính toàn vẹn dữ liệu (Data Integrity): Nguyên lý kiểm soát tính hợp lệ của dữ liệu thông qua ràng buộc miền (Domain Constraints), toàn vẹn thực thể (Entity Integrity - Khóa chính) và toàn vẹn tham chiếu (Referential Integrity - Khóa ngoại).
  • Nguyên lý Logic 3 giá trị (Three-Valued Logic): Hiểu rõ cơ chế hoạt động của hệ logic đa trị (True, False, Unknown) khi hệ thống xử lý các thuộc tính mang giá trị NULL.

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical skills): Thành thạo việc viết mã DDL để khởi tạo, điều chỉnh lược đồ quan hệ; sử dụng thành thạo các câu lệnh truy vấn phức tạp kết hợp nối bảng, phép toán tập hợp và truy vấn con.
  • Kỹ năng phân tích (Analytical skills): Phân tích mô hình dữ liệu thực tế để xác định chính xác các quan hệ cha - con, thiết lập đúng khóa ngoại tham chiếu, và định nghĩa các biểu thức điều kiện logic chính xác cho bài toán nghiệp vụ.
  • Kỹ năng tối ưu hóa và chuẩn hóa (Practical competencies): Khả năng định danh ràng buộc hệ thống (CONSTRAINT) để dễ dàng quản trị, kiểm soát hiện tượng dư thừa dữ liệu bằng DISTINCT, và tổ chức dữ liệu hiển thị theo cấu trúc sắp xếp hợp lý.

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

Giáo trình áp dụng phương pháp tiếp cận sư phạm diễn dịch kết hợp thực hành trực tiếp (deductive and practice-oriented approach):

  • Tiếp cận sư phạm: Mỗi nội dung kiến thức đều đi từ cấu trúc cú pháp tổng quát (Syntax Specification), giải thích chi tiết các tham số/tùy chọn (Parameters), sau đó minh họa ngay bằng các đoạn mã lệnh SQL cụ thể kèm theo bảng dữ liệu kết quả trước và sau khi thực thi.
  • Hệ thống ví dụ mẫu đồng nhất: Tài liệu sử dụng cơ sở dữ liệu mẫu xuyên suốt về quản lý nhân sự - phòng ban:
    • Bảng NHANVIEN (chứa các thuộc tính: MANV, HONV, TENLOT, TENNV, NGSINH, DCHI, PHAI, LUONG, MA_NQL, PHG).
    • Bảng PHONGBAN (chứa các thuộc tính: TENPB, MAPHG, TRPHG, NG_NHANCHUC).
    • Bảng PHANCONG (chứa các thuộc tính: MA_NVIEN, SODA, THOIGIAN).
    • Bảng DEAN và THANNHAN.
  • Bài tập và thực hành: Người học được yêu cầu thực thi tuần tự từ việc định nghĩa bảng kèm ràng buộc phức tạp (như ràng buộc CHECK (PHAI IN ('Nam', 'Nu')), giá trị mặc định DEFAULT (10000) hoặc DEFAULT (GETDATE())), thực hiện chỉnh sửa cấu trúc bảng qua ALTER TABLE, đến các bài tập truy vấn lọc theo điều kiện ngày tháng, ký tự đại diện (LIKE '% Nguyens_%' ESCAPE 's'), và kết nối nhiều bảng.
  • Phương pháp đánh giá: Đánh giá năng lực người học thông qua tính chính xác của cú pháp SQL, khả năng xử lý các tình huống vi phạm ràng buộc toàn vẹn, và độ tối ưu của kết quả truy vấn.
  • Hướng dẫn tự học: Người học cần cài đặt một hệ quản trị cơ sở dữ liệu quan hệ, nhập lược đồ dữ liệu mẫu được cung cấp trong tài liệu, và thực thi từng câu lệnh mẫu để đối chiếu kết quả trả về với phần giải thích lý thuyết.

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

  • Bám sát các tiêu chuẩn công nghiệp ANSI: Nội dung tài liệu hệ thống hóa quá trình phát triển của chuẩn SQL qua các mốc SQL-86, SQL-92 và SQL-99, đảm bảo mã lệnh có tính tương thích cao trên nhiều hệ quản trị cơ sở dữ liệu quan hệ khác nhau.
  • Làm rõ sự khác biệt giữa mô hình lý thuyết và triển khai thực tế: Tài liệu phân tích rõ ràng sự khác nhau giữa khái niệm tập hợp (Set) trong Đại số quan hệ và khái niệm đa tập hợp (Bag) trong SQL, qua đó giải thích cơ chế loại bỏ hoặc giữ lại các dòng trùng lặp bằng DISTINCT, UNION và UNION ALL.
  • Phân tích chuyên sâu các trường hợp biên (Corner-cases): Giáo trình dành dung lượng thích đáng để giải thích cơ chế hoạt động của giá trị NULL, chỉ ra các điểm cần lưu ý khi tính toán số học (x + 3 trả về NULL) và so sánh logic (x = 3 trả về UNKNOWN), cũng như kỹ thuật sử dụng ký tự thoát (ESCAPE) trong tìm kiếm chuỗi.
  • Tính ứng dụng kỹ thuật cao: Các ví dụ DDL đều sử dụng cách đặt tên ràng buộc chuẩn mực (CONSTRAINT NV_MANV_PK PRIMARY KEY, CONSTRAINT PC_MANVIEN_FK FOREIGN KEY), phản ánh đúng thực tiễn thiết kế cơ sở dữ liệu trong môi trường doanh nghiệp.

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

  • Sinh viên đại học: Sinh viên năm thứ 2 hoặc năm thứ 3 thuộc các khối ngành Công nghệ thông tin, Khoa học máy tính, Kỹ thuật phần mềm, Hệ thống thông tin, An toàn thông tin và Khoa học dữ liệu đang học môn Cơ sở dữ liệu hoặc Hệ quản trị cơ sở dữ liệu.
  • Điều kiện tiên quyết (Prerequisites): Người học cần hoàn thành học phần Tin học cơ sở, có hiểu biết về logic toán, cấu trúc dữ liệu và các khái niệm cơ bản về mô hình dữ liệu quan hệ (khái niệm bảng, thuộc tính, khóa chính, khóa ngoại).
  • Giảng viên: Tài liệu cung cấp cấu trúc bài giảng rõ ràng, hệ thống cú pháp chuẩn mực và ngân hàng ví dụ mẫu chuẩn hóa, thuận tiện cho việc biên soạn slide giảng dạy, bài tập lớn và đề thi học phần.
  • Lập trình viên và người tự học: Phù hợp cho lập trình viên phát triển phần mềm, kỹ sư dữ liệu cần tra cứu nhanh chuẩn cú pháp ANSI SQL, củng cố nền tảng DDL/DQL và nắm bắt các quy tắc ràng buộc toàn vẹn.

Câu hỏi thường gặp

1. Giáo trình này phù hợp với ai?

Giáo trình được biên soạn phục vụ sinh viên đại học các ngành kỹ thuật phần mềm, công nghệ thông tin và người làm việc trong lĩnh vực dữ liệu cần nắm vững ngôn ngữ SQL từ mức độ cú pháp cơ bản đến kỹ thuật truy vấn nâng cao.

2. Cần kiến thức nền nào để học?

Người học cần có kiến thức cơ bản về tin học đại cương, toán logic và các khái niệm sơ khởi về mô hình quan hệ (bảng, cột, dòng, mối liên kết dữ liệu).

3. Điểm khác biệt với giáo trình khác?

Giáo trình đối chiếu trực tiếp giữa các mệnh đề SQL và các phép toán Đại số quan hệ ($\Pi$, $\sigma$), giải thích bản chất đa tập hợp (Bag) của bảng dữ liệu, đồng thời phân tích chi tiết cơ chế logic 3 giá trị của NULL và kỹ thuật đặt tên ràng buộc toàn vẹn bằng CONSTRAINT.

4. Làm sao để tự học hiệu quả?

Người học nên cài đặt một hệ quản trị cơ sở dữ liệu (như SQL Server, MySQL hoặc PostgreSQL), trực tiếp gõ và thực thi các khối lệnh tạo bảng NHANVIEN, PHONGBAN, PHANCONG từ giáo trình, sau đó tự điều chỉnh các biểu thức trong mệnh đề WHERE để quan sát sự thay đổi của tập kết quả.

5. Có tài liệu bổ trợ nào kèm theo?

Tài liệu cung cấp lược đồ cơ sở dữ liệu mẫu về quản lý công ty (gồm 5 bảng có liên kết khóa ngoại) cùng tập hợp các câu truy vấn mẫu từ mức độ chiếu/chọn đơn giản đến các phép toán tập hợp và truy vấn con.


Kết luận

Giáo trình "Hướng Dẫn SQL Cơ Bản và Nâng Cao" là tài liệu học thuật hoàn chỉnh, cung cấp toàn diện kiến thức về ngôn ngữ SQL theo các chuẩn ANSI SQL-86/92/99. Tài liệu bao quát từ định nghĩa cấu trúc dữ liệu (DDL), thiết lập ràng buộc toàn vẹn, hiệu chỉnh lược đồ, đến các kỹ thuật truy vấn (DQL), xử lý logic 3 giá trị, phép toán tập hợp và truy vấn con. Lộ trình học tập đề xuất cho người học là nắm vững cú pháp DDL và các kiểu dữ liệu, thực hành thiết kế bảng với ràng buộc CONSTRAINT, thành thạo các mệnh đề SELECT - FROM - WHERE, và phát triển lên các kỹ thuật truy vấn lồng ghép phức tạp cùng quản trị khung nhìn và chỉ mục.