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

Tài liệu học tập "Hướng Dẫn Tạo và Quản Trị Cơ Sở Dữ Liệu Trong SQL Server" (thuộc Chương 2: Tạo và quản trị Cơ sở dữ liệu) được biên soạn phục vụ học phần Cơ sở dữ liệu và Hệ quản trị cơ sở dữ liệu trong chương trình đào tạo bậc đại học và cao học thuộc khối ngành Công nghệ Thông tin, Hệ thống Thông tin và Kỹ thuật Phần mềm. Về mặt vị trí chương trình, nội dung này giữ vai trò cầu nối giữa lý thuyết mô hình dữ liệu quan hệ và kỹ thuật hiện thực hóa, vận hành trực tiếp trên hệ quản trị cơ sở dữ liệu quan hệ Microsoft SQL Server.

Mục tiêu học tập của tài liệu tập trung vào việc trang bị cho người học:

  • Khả năng phân biệt và kiểm soát hai tầng kiến trúc của một cơ sở dữ liệu: tầng vật lý (hệ thống tập tin .mdf, .ndf, .ldf, cấu trúc trang dữ liệu Page, khối mở rộng Extent) và tầng logic (đối tượng bảng Table, khung nhìn View, thủ tục lưu trữ Stored Procedure, hàm Function, chỉ mục Index, ràng buộc toàn vẹn).
  • Kỹ năng thao tác thành thạo ngôn ngữ định nghĩa dữ liệu (Data Definition Language - DDL) để khởi tạo, tùy chỉnh kích thước, mở rộng, thu hẹp và xóa cơ sở dữ liệu.
  • Kỹ năng thiết kế lược đồ bảng, phân bổ kiểu dữ liệu hệ thống và kiểu dữ liệu do người dùng tự định nghĩa (User-defined data type), cùng việc thiết lập các ràng buộc toàn vẹn khóa chính (PRIMARY KEY), khóa ngoại (FOREIGN KEY) và các hành vi kích hoạt tham chiếu (CASCADE, NO ACTION).

Cấu trúc tiếp cận của tài liệu đi từ tầng lưu trữ cấp thấp của hệ điều hành đến các thao tác quản trị mức hệ thống và định nghĩa lược đồ dữ liệu logic. Điểm đặc trưng trong tài liệu là sự chuẩn hóa các đặc tả kỹ thuật nội bộ của Microsoft SQL Server (chẳng hạn như kích thước trang 8 KB, tiêu đề trang 96 byte, giới hạn bản ghi 8060 byte) kết hợp song song với hệ thống cú pháp lệnh T-SQL tường minh và giao diện quản trị đồ họa.


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

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

Nội dung trọng tâm của chương được tổ chức thành năm chủ đề kỹ thuật logic, phản ánh quy trình từ quản trị hệ thống đến hiện thực hóa bảng dữ liệu:

  1. Kiến trúc tổ chức lưu trữ vật lý và logic:

    • Mặt logic: Cơ sở dữ liệu hiển thị dưới dạng các đối tượng quản lý gồm Tables (lưu trữ và truy xuất dữ liệu), Indexes (tối ưu hóa hiệu năng truy vấn gồm Clustered và Non-clustered), Views (tập kết quả logic dựa trên truy vấn SELECT), và nhóm đối tượng lập trình Programmability (Stored Procedures, Functions, Triggers, Constraints).
    • Mặt vật lý: Quy định tối thiểu 2 tập tin vật lý cho một cơ sở dữ liệu gồm tập tin dữ liệu chính (Primary data file - .mdf), các tập tin dữ liệu thứ cấp tùy chọn (Secondary data files - .ndf) và tập tin nhật ký giao dịch (Transaction log file - .ldf).
    • Đơn vị cấp phát: Đơn vị cơ bản là Trang dữ liệu (Data Page) kích thước 8 KB. Mỗi trang có tiêu đề (Page Header) chiếm 96 byte để chứa thông tin hệ thống; phần thân trang chứa dữ liệu tuần tự với kích thước một hàng dữ liệu tối đa là 8060 byte. Tám trang liên tục (64 KB) hợp thành một Extent. Hệ thống định dạng 16 Extents (tương đương 128 Pages) trên mỗi 1 MB dung lượng đĩa.
    • Nhóm tập tin (Filegroups): Phân chia thành Primary Filegroup (chứa file .mdf và các bảng hệ thống), User-defined Filegroup (tạo theo chỉ định của người quản trị) và Default Filegroup (chứa các bảng và chỉ mục khi không chỉ định vị trí cụ thể).
  2. Cú pháp định nghĩa và quản trị cơ sở dữ liệu:

    • Cú pháp lệnh CREATE DATABASE đi kèm đặc tả tập tin filespec với các thông số: NAME (tên logic), FILENAME (đường dẫn vật lý), SIZE (dung lượng khởi tạo), MAXSIZE (dung lượng tối đa hoặc UNLIMITED), và FILEGROWTH (mức tăng trưởng theo dung lượng MB hoặc tỷ lệ phần trăm).
    • Thiết lập cấu hình cơ sở dữ liệu thông qua lệnh ALTER DATABASE (bổ sung/chỉnh sửa file dữ liệu, thay đổi dung lượng, cấu hình AUTO_SHRINK, chế độ phục hồi RECOVERY FULL | BULK_LOGGED | SIMPLE, quyền truy cập SINGLE_USER | RESTRICTED_USER | MULTI_USER, chế độ ghi READ_ONLY | READ_WRITE).
    • Các thủ tục hệ thống và hàm kiểm tra trạng thái: sp_helpdb, sp_spaceused, DATABASEPROPERTYEX, thủ tục đổi tên sp_renamedb, và lệnh xóa DROP DATABASE (lưu ý ngoại lệ không thể xóa các cơ sở dữ liệu hệ thống như master, model, tempdb).
    • Giới thiệu khái niệm Database Snapshot trong phiên bản SQL Server Enterprise Edition nhằm duy trì dữ liệu lịch sử cho báo cáo và phòng ngừa lỗi thao tác của người dùng hoặc quản trị viên.
  3. Hệ thống kiểu dữ liệu và kiểu người dùng tự định nghĩa:

    • Phân loại kiểu dữ liệu hệ thống (System-Supplied Data Types) và kiểu dữ liệu do người dùng tự định nghĩa (User-Defined Data Types - UDDT).
    • Thủ tục tạo UDDT: sp_addtype type, system_data_type [,'NULL' | 'NOT NULL'] (ví dụ: tạo kiểu isbn từ smallint NOT NULL, zipcode từ char(10), longstring từ varchar(63)).
    • Tra cứu danh mục UDDT qua bảng hệ thống, thủ tục sp_help hoặc truy vấn khung nhìn thông tin INFORMATION_SCHEMA.DOMAINS.
    • Thủ tục hủy UDDT: sp_droptype, tuân thủ điều kiện kiểu dữ liệu không còn bị tham chiếu bởi các bảng hoặc đối tượng khác trong cơ sở dữ liệu.
  4. Thiết kế và quản trị cấu trúc bảng (Tables):

    • Quy chuẩn kỹ thuật: Hệ thống hỗ trợ tối đa 2 triệu bảng trong một cơ sở dữ liệu, tối đa 1024 cột trong một bảng và 8060 bytes trên một hàng.
    • Trình tự 7 bước chuẩn để tạo bảng: Xác định kiểu dữ liệu cột -> Xác định thuộc tính Null/Not Null -> Xác định tính duy nhất -> Xác định khóa chính/khóa ngoại -> Thiết lập giá trị mặc định -> Thiết lập ràng buộc miền giá trị -> Tạo bảng và chỉ mục.
    • Cú pháp lệnh CREATE TABLE, tích hợp thuộc tính phát sinh giá trị tự động IDENTITY(seed, increment) (thường áp dụng cho các kiểu số nguyên như tinyint, smallint, int, bigint, decimal, numeric).
    • Khái niệm và quy tắc cột tính toán (Computed column - column_name AS expression): Cột ảo không lưu trữ vật lý, cho phép tham gia vào chỉ mục hoặc ràng buộc khóa nếu biểu thức mang tính xác định (deterministic).
  5. Thiết lập ràng buộc toàn vẹn và khóa:

    • Cú pháp thiết lập khóa chính (PRIMARY KEY) với tùy chọn chỉ mục CLUSTERED hoặc NONCLUSTERED.
    • Cú pháp thiết lập khóa ngoại (FOREIGN KEY ... REFERENCES) liên kết giữa các bảng.
    • Cơ chế xử lý vi phạm tham chiếu khi cập nhật hoặc xóa dữ liệu trên bảng chính: ON UPDATE | ON DELETE { CASCADE | NO ACTION }. Tùy chọn CASCADE tự động cập nhật/xóa các bản ghi tham chiếu tương ứng; tùy chọn mặc định NO ACTION từ chối thao tác và trả về thông báo lỗi hệ thống.

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

Tài liệu thiết lập hệ thống lý thuyết nền tảng về tổ chức lưu trữ hướng khối trong hệ quản trị cơ sở dữ liệu:

  • Nguyên lý phân trang và cấp phát không gian: Bản chất của việc quản lý dữ liệu trên đĩa từ cấp độ Data Page 8 KB đến Extent 64 KB; nguyên lý phân bổ trang đầu tiên của tập tin để SQL Server giám sát cấp phát không gian lưu trữ.
  • Cơ chế nhật ký giao dịch (Write-Ahead Logging / Transaction Log): Tập tin .ldf lưu trữ tuần tự các bản ghi giao dịch phục vụ khôi phục trạng thái nhất quán của dữ liệu, không tổ chức theo cấu trúc trang dữ liệu thông thường.
  • Mô hình ràng buộc dữ liệu toàn vẹn: Quy tắc toán học về tính 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).

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical skills): Viết kịch bản T-SQL hoàn chỉnh để tạo lập và hiệu chỉnh cấu trúc cơ sở dữ liệu; khai báo cấu trúc tập tin vật lý phân tán trên nhiều ổ đĩa nhằm tối ưu hóa hoạt động I/O; sử dụng các câu lệnh DDL định nghĩa bảng dữ liệu phức tạp.
  • Kỹ năng phân tích (Analytical skills): Phân tích kích thước dòng dữ liệu nhằm tránh vượt quá giới hạn 8060 byte của trang dữ liệu; phân tích biểu thức cột tính toán để xác định khả năng đánh chỉ mục; lựa chọn giải pháp hành vi tham chiếu CASCADE hoặc NO ACTION phù hợp với yêu cầu nghiệp vụ.
  • Năng lực thực hành (Practical competencies): Quản trị thuộc tính CSDL qua DATABASEPROPERTYEX; giám sát không gian đĩa bằng sp_spaceused; tạo và gỡ bỏ kiểu dữ liệu tự định nghĩa (sp_addtype, sp_droptype).

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

Phương pháp tiếp cận sư phạm

Tài liệu áp dụng phương pháp tiếp cận từ bản chất vật lý đến cú pháp lập trình và cấu trúc logic (Bottom-up kết hợp Top-down):

  1. Giảng giải nguyên lý kiến trúc lưu trữ cấp thấp trên hệ thống đĩa cứng.
  2. Trình bày khung cú pháp chuẩn tắc của các câu lệnh T-SQL cùng các tham số tùy chọn.
  3. Cung cấp các đoạn mã nguồn minh họa với các giá trị cấu hình cụ thể.
  4. Đối chiếu thao tác dòng lệnh (Command-line / Script) với thao tác trên giao diện đồ họa người dùng (GUI / Menu-driven).

Bài tập và kịch bản thực hành

Tài liệu tích hợp các kịch bản thực hành đa dạng:

  • Kịch bản khởi tạo CSDL Sample: Khởi tạo CSDL đơn giản trên PRIMARY với file dữ liệu 10 MB, tăng trưởng 20%, file log 3 MB, tăng trưởng 1 MB và thiết lập bảng mã COLLATE SQL_Latin1_General_Cp1_CI_AS.
  • Kịch bản khởi tạo CSDL Sales đa tập tin: Thiết lập file dữ liệu chính Sales1_dat.mdf, file thứ cấp Sales2_dat.ndf trên PRIMARY, kết hợp nhóm tập tin tùy biến SalesGroup1 chứa Sales3_dat.ndf và Sales4_dat.ndf.
  • Kịch bản thay đổi cấu trúc: Thực thi lệnh ALTER DATABASE Sales để chỉnh sửa kích thước tập tin nhật ký Sales_log lên 10 MB và bổ sung tập tin dữ liệu mới Sales5_dat.mdf.
  • Kịch bản thiết kế bảng nghiệp vụ:
    • Bảng Sanpham định nghĩa các kiểu dữ liệu CHAR, VARCHAR, SMALLMONEY, INT.
    • Bảng NhaCungCap ứng dụng trường tự tăng MaNCC int IDENTITY NOT NULL PRIMARY KEY.
    • Bảng chi tiết hóa đơn CtHoadon ứng dụng cột tính toán ThanhTien AS SoLuong * DonGia.
    • Bảng DEAN, PHANCONG, VITRI, PhongBan minh họa khóa chính đơn, khóa chính phức hợp gồm 2 cột (MaNv, MaDa), và thiết lập quan hệ khóa ngoại MaVt REFERENCES VITRI(MaVt).

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

  • Đánh giá định lượng: Kiểm tra kết quả thực thi các câu lệnh DDL thông qua việc truy vấn các bảng hệ thống và thủ tục phân tích (sp_helpdb, sp_help, INFORMATION_SCHEMA.DOMAINS).
  • Hướng dẫn tự học: Người học được khuyến nghị thực hành viết mã tuần tự: bắt đầu từ kịch bản khởi tạo CSDL với nhiều filegroup, tiến hành thay đổi thuộc tính CSDL bằng ALTER DATABASE SET, định nghĩa kiểu dữ liệu mới bằng sp_addtype, và cuối cùng là tạo bảng hoàn chỉnh chứa các ràng buộc toàn vẹn dữ liệu.

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

  1. Phân định rõ ràng cơ chế quản trị đa tập tin và Filegroup: Tài liệu làm rõ việc phân bổ các tập tin vật lý (.mdf, .ndf) lên các đĩa vật lý độc lập nhằm giảm thiểu tranh chấp I/O, phân chia ranh giới giữa Primary Filegroup, User-defined Filegroup và Default Filegroup.

  2. Cơ chế bảo vệ dữ liệu với Database Snapshot: Giới thiệu tính năng Database Snapshot trên phiên bản Enterprise Edition, cho phép lưu giữ trạng thái dữ liệu tại một thời điểm phục vụ công tác lập báo cáo và khôi phục dữ liệu nhanh khi xảy ra lỗi vận hành.

  3. Đặc tả chi tiết cấu trúc phần cứng và lưu trữ trang: Đưa ra các thông số định lượng chính xác: trang dữ liệu 8 KB, tiêu đề 96 byte, giới hạn bản ghi 8060 byte, nhóm 8 trang tạo thành 1 Extent, 1 MB tương đương 16 Extents.

  4. Tối ưu hóa bảng thông qua Cột tính toán và Ràng buộc toàn vẹn: Hướng dẫn chi tiết việc sử dụng Computed Column cùng các điều kiện để cột ảo này có thể tham gia vào cấu trúc chỉ mục hoặc khóa chính. Đồng thời, tài liệu cung cấp đặc tả rõ ràng về hành vi tham chiếu khóa ngoại thông qua hai tùy chọn CASCADE và NO ACTION.


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

  • Sinh viên đại học/cao học: Sinh viên năm thứ 2 hoặc năm thứ 3 chuyên ngành Khoa học Máy tính, Công nghệ Thông tin, Hệ thống Thông tin Quản lý, Công nghệ Phần mềm đang học môn Cơ sở dữ liệu hoặc Quản trị Hệ cơ sở dữ liệu.
  • Yêu cầu kiến thức tiên quyết (Prerequisites):
    • Kiến thức nền tảng về cấu trúc dữ liệu và giải thuật.
    • Kiến thức về mô hình quan hệ (Relational Model), đại số quan hệ và các phép toán trên bảng.
    • Hiểu biết cơ bản về quản lý tập tin và hệ thống lưu trữ trên hệ điều hành Windows.
  • Giảng viên: Sử dụng tài liệu làm khung đề cương bài giảng lý thuyết, biên soạn giáo án thực hành phòng lab SQL Server, và xây dựng đề bài tập lớn môn học.
  • Kỹ sư và người tự học: Tài liệu tham khảo chuẩn mực để tra cứu cú pháp DDL, quy tắc thiết kế cấu trúc bảng và cơ chế quản trị tập tin vật lý trong Microsoft SQL Server.

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

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

Tài liệu được thiết kế cho sinh viên chuyên ngành Công nghệ Thông tin, kỹ sư phần mềm tập sự, và quản trị viên cơ sở dữ liệu (DBA) mới bắt đầu cần nắm vững cấu trúc lưu trữ nội bộ cũng như cú pháp DDL trong Microsoft SQL Server.

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ề mô hình cơ sở dữ liệu quan hệ, các khái niệm bảng, cột, khóa, và hiểu biết tổng quan về cách hệ điều hành lưu trữ tập tin trên đĩa cứng.

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

Tài liệu không chỉ dừng lại ở cú pháp SQL tiêu chuẩn mà đi sâu vào kiến trúc lưu trữ vật lý chi tiết của SQL Server (kích thước trang 8 KB, tiêu đề 96 byte, quy tắc Extent 64 KB, tổ chức Filegroup) song song với các kịch bản lệnh T-SQL thực tế.

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

Người học nên cài đặt hệ quản trị SQL Server (hoặc SQL Server Management Studio - SSMS), thực thi tuần tự các câu lệnh mẫu trong tài liệu (từ tạo CSDL Sample, Sales, sửa đổi cấu trúc bằng ALTER DATABASE, đến tạo các bảng nghiệp vụ như Sanpham, CtHoadon), sau đó sử dụng các thủ tục như sp_helpdb và sp_help để kiểm tra kết quả.

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

Các tài liệu bổ trợ cần thiết gồm tài liệu hướng dẫn sử dụng công cụ SQL Server Management Studio (SSMS), danh mục tài liệu kỹ thuật Microsoft Docs/Learn về Transact-SQL, và các tài liệu tham khảo về chuẩn hóa cơ sở dữ liệu quan hệ.


Kết luận

Tài liệu "Hướng Dẫn Tạo và Quản Trị Cơ Sở Dữ Liệu Trong SQL Server" cung cấp cấu trúc kiến thức chuẩn xác, kết hợp giữa lý thuyết lưu trữ cấp thấp và kỹ năng quản trị DDL thực tế.

Lộ trình học tập đề xuất cho người học:

  1. Tiếp cận và phân tích cấu trúc vật lý (.mdf, .ndf, .ldf, Data Page, Extent, Filegroup).
  2. Thực hành cú pháp khởi tạo và điều chỉnh cấu hình CSDL (CREATE DATABASE, ALTER DATABASE, DATABASEPROPERTYEX).
  3. Làm chủ hệ thống kiểu dữ liệu và kỹ thuật tạo kiểu dữ liệu tự định nghĩa (sp_addtype).
  4. Thiết kế bảng dữ liệu, thiết lập cột tự tăng (IDENTITY), cột tính toán (Computed column), cùng hệ thống ràng buộc khóa chính (PRIMARY KEY) và khóa ngoại (FOREIGN KEY).

Người học có thể mở rộng kiến thức bằng việc tra cứu sâu hơn trên các hệ thống bảng hệ thống (systypes, INFORMATION_SCHEMA.DOMAINS) và tài liệu đặc tả kiến trúc lưu trữ chính thức từ Microsoft SQL Server.