GIÁO TRÌNH HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU

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

Giáo trình Hệ quản trị Cơ sở dữ liệu do tập thể tác giả TS. Nguyễn Thái Nghe, ThS. Trần Ngân Bình và ThS. Đặng Quốc Việt (Khoa Công nghệ Thông tin & Truyền thông, Trường Đại học Cần Thơ) biên soạn vào năm 2014. Tài liệu được thiết kế làm giáo trình chính khóa cho học phần chuyên ngành bắt buộc khối lượng 02 tín chỉ trong chương trình đào tạo bậc đại học các ngành Hệ thống thông tin, Khoa học máy tính và Công nghệ thông tin. Học phần này giữ vai trò phát triển nâng cao, tiếp nối trực tiếp học phần tiên quyết Hệ Cơ Sở Dữ Liệu (mã số CT106).

Mục tiêu học tập của giáo trình là cung cấp cho sinh viên hệ thống kiến thức lý thuyết nền tảng và kỹ năng kỹ thuật để quản trị một cơ sở dữ liệu quan hệ đa người dùng có cơ chế bảo mật và phân quyền. Sau khi hoàn thành học phần, người học có khả năng khởi tạo, cấu hình, kết nối và quản lý CSDL; cài đặt các ràng buộc toàn vẹn; lập trình CSDL mức nâng cao thông qua thủ tục, hàm, trigger bằng ngôn ngữ PL/SQL; kiểm soát điều khiển cạnh tranh giữa các giao dịch; thiết lập quy trình sao lưu và phục hồi; đồng thời xây dựng được ứng dụng giao diện bằng Java kết nối đến CSDL thông qua JDBC.

Giáo trình có cấu trúc gồm hai phần chính với 6 chương lý thuyết kết hợp hệ thống 6 bài thực hành (tương ứng 30 tiết phòng máy) và 3 phụ lục chuyên đề:

  • Phần 1 (Chương 1 đến Chương 3): Trình bày cơ sở lý thuyết tổng quát, độc lập với hệ quản trị cụ thể, bao gồm kiến trúc HQTCSDL, các biện pháp bảo vệ CSDL và lý thuyết quản lý giao dịch - phục hồi.
  • Phần 2 (Chương 4 đến Chương 6): Triển khai minh họa và thực hành chi tiết trên hệ quản trị CSDL Oracle 10g Release 2.

Điểm đặc trưng của giáo trình là sự kết nối trực tiếp giữa lý thuyết trừu tượng (như các giải thuật điều khiển cạnh tranh, lý thuyết khóa hai kỳ, cấu trúc phân cấp độ mịn) với việc triển khai thực tế trên hệ quản trị thương mại chuẩn công nghiệp Oracle và xây dựng ứng dụng đầu mối qua công cụ lập trình NetBeans.


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

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

Cấu trúc nội dung giáo trình được triển khai theo tiến trình logic từ mô hình tổng quan, cơ chế bảo vệ, lý thuyết giao dịch đến triển khai thực hành chuyên sâu trên Oracle:

  • Chương 1: Hệ quản trị CSDL: Trình bày định nghĩa HQTCSDL, các chức năng cơ bản (lưu trữ, danh mục hệ thống, an toàn, toàn vẹn, điều khiển cạnh tranh, phục hồi); mô hình 6 thành phần của HQTCSDL theo Thomas (2005) gồm Bộ xử lý truy vấn, Bộ quản lý CSDL, Bộ tiền xử lý DML, Trình biên dịch DDL, Bộ quản lý tự điển và Cơ chế truy cập/quản lý tập tin; phân tích các kiến trúc hệ thống đa người dùng (Xử lý từ xa Mainframe, File-server, Client-Server 2 tầng và Client-Server 3 tầng); định vị vai trò của Nhà quản trị CSDL (DBA) phân biệt với Quản trị dữ liệu (DA) và Quản trị hệ thống (SA).
  • Chương 2: Các biện pháp bảo vệ CSDL: Khảo sát các kỹ thuật an toàn máy tính gồm cơ chế chứng thực (Authentication) và cấp quyền (Authorization) với System Privileges, Object Privileges (GRANT, REVOKE, WITH GRANT OPTION, CASCADE, RESTRICT); kỹ thuật khung nhìn (View) với mệnh đề WITH CHECK OPTION (LOCALCASCADED); các loại ràng buộc toàn vẹn (khóa, miền trị, tham chiếu); giải thuật mật mã hóa khả đảo (DES, 3DES, AES), bất khả đảo (MD5, SHA-1), mật mã đối xứng và bất đối xứng (RSA, PGP); công nghệ mảng đĩa độc lập dự phòng RAID từ RAID 0 đến RAID 6.
  • Chương 3: Quản lý giao dịch & Phục hồi: Phân tích bản chất giao dịch (GD), chu trình trạng thái (Active, Partially Committed, Failed, Aborted, Committed) và 4 thuộc tính ACID; các vấn đề phát sinh do thực thi cạnh tranh (Lost Update, Uncommitted Dependency, Inconsistent Analysis); các giao thức điều khiển cạnh tranh gồm Giao thức khóa hai kỳ (2PL: Growing Phase, Shrinking Phase; biến thể Rigorous 2PL và Strict 2PL); vấn đề cuộn nhiều tầng (Cascade Rollback), khóa sống (Livelock), khóa chết (Deadlock) với các giải thuật xử lý (Wait-Die, Wound-Wait theo Rosenkrantz et al., 1978; phát hiện chu trình trên đồ thị chờ Wait-For Graph theo Holt, 1972); giao thức sắp xếp theo nhãn thời gian (Timestamping Ordering); kỹ thuật điều khiển cạnh tranh lạc quan (Optimistic Concurrency Control theo Kung & Robinson, 1981); lý thuyết độ mịn dữ liệu và cơ chế khóa đa hạt (Multiple-Granularity Locking với các khóa IS, IX, S, SIX, X).
  • Chương 4: Oracle và các biện pháp bảo vệ CSDL: Giới thiệu cấu trúc lưu trữ luận lý và vật lý của Oracle (Data Block, Extent, Segment, Tablespace, Datafiles); quy trình đóng/mở CSDL (Startup/Shutdown); cấu hình kết nối mạng qua Oracle Net Manager và SQL Developer; quản trị tài khoản người dùng, phân quyền và quản lý vai trò (Role); các công cụ nhập/xuất dữ liệu exp/imp và tiện ích hiệu năng cao Oracle Data Pump.
  • Chương 5: Lập trình CSDL trong Oracle: Cấu trúc khối mã lệnh PL/SQL (Khối vô danh và khối chương trình có tên); các cấu trúc điều khiển rẽ nhánh và vòng lặp; kỹ thuật xử lý con trỏ (Cursor ngầm định và tường minh, các thuộc tính %FOUND, %NOTFOUND, %ISOPEN, %ROWCOUNT); kỹ thuật xây dựng Thủ tục (Stored Procedure), Hàm (Function), Trigger, INSTEAD OF Trigger và cơ chế bẫy lỗi ngoại lệ (Exceptions).
  • Chương 6: Quản lý giao dịch trong Oracle: Khảo sát các mức độ độc lập theo chuẩn SQL92 (Read Uncommitted, Read Committed, Repeatable Read, Serializable); cơ chế khóa chốt tự động mức dòng/bảng trong Oracle; các chiến lược sao lưu toàn bộ (Complete Backup), sao lưu gia tăng vi sai (Differential Incremental) và tích lũy (Cumulative Incremental); công cụ RMAN (Recovery Manager) và cơ chế chỉ số biến đổi hệ thống SCN.
  • Hệ thống Phụ lục: Cung cấp tài liệu tra cứu danh mục mã lỗi Oracle thường gặp (Phụ lục 1), bảng tra cứu các hàm xử lý dữ liệu tích hợp (Phụ lục 2), và hướng dẫn chi tiết quy trình kết nối CSDL Oracle từ ứng dụng Java qua giao tiếp JDBC trên môi trường NetBeans kết hợp kết xuất biểu mẫu báo cáo với iReport (Phụ lục 3).

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

Giáo trình cung cấp các trụ cột lý thuyết cốt lõi của ngành khoa học máy tính và kỹ thuật dữ liệu:

  • Lý thuyết trạng thái và tính toàn vẹn ACID của giao dịch: Định hình nguyên lý bảo toàn dữ liệu thông qua tính nguyên tử, tính nhất quán, tính cô lập và tính bền vững.
  • Lý thuyết khả tuần tự và tương tranh (Serializability Theory): Xây dựng các mô hình toán học và giải thuật để đảm bảo các lịch trình đan xen (nonserial schedules) đạt được kết quả tương đương với các lịch trình tuần tự (serial schedules).
  • Mô hình kiến trúc phân tầng lưu trữ dữ liệu: Phân tách và liên kết giữa cấu trúc lưu trữ luận lý (Tablespace, Segment, Extent, Block) và cấu trúc lưu trữ vật lý (Datafiles, Control files, Redo log files).
  • Hệ thống an ninh và an toàn dữ liệu đa lớp: Kết hợp các mô hình điều khiển truy cập tùy biến (DAC), kiểm soát quyền qua Role, mã hóa dữ liệu thuật toán và cơ chế an toàn phần cứng (RAID Parity, Error-Correcting Codes).

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical skills): Cài đặt, thiết lập tham số và vận hành hệ thống CSDL Oracle; cấu hình mạng phân tán Oracle Net; viết kịch bản trích xuất dữ liệu dung lượng lớn với Oracle Data Pump; lập trình thành thạo ngôn ngữ thủ tục mở rộng PL/SQL; thực hiện sao lưu/phục hồi hệ thống bằng RMAN.
  • Kỹ năng phân tích (Analytical skills): Phân tích và phát hiện các hiện tượng xung đột dữ liệu (Lost Update, Dirty Read, Phantom Read); đánh giá lịch trình thực thi để ngăn chặn chu trình bế tắc (Deadlock); thẩm định và lựa chọn độ mịn khóa (Granularity) phù hợp với tải giao dịch của ứng dụng.
  • Kỹ năng ứng dụng thực tế (Practical competencies): Xây dựng module kết nối Java Database Connectivity (JDBC) chuẩn 2 tầng và 3 tầng; thiết kế giao diện form quản trị dữ liệu trên IDE NetBeans; xây dựng báo cáo động qua iReport phục vụ vận hành doanh nghiệp.

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 kết hợp chặt chẽ giữa lý thuyết hệ thống hóa và thực nghiệm phòng máy. Nội dung được biên soạn theo nguyên tắc phân tầng: phần lý thuyết trừu tượng cung cấp mô hình khái niệm chuẩn mực theo tài liệu học thuật quốc tế; phần thực hành cụ thể hóa các khái niệm đó thành thao tác dòng lệnh và quy trình quản trị trên hệ quản trị CSDL Oracle 10g R2.

+-------------------------------------------------------------------+
|                        MÔ HÌNH TIẾP CẬN SƯ PHẠM                   |
+-------------------------------------------------------------------+
|  Lý thuyết tổng quát (Phần 1: Chương 1 - 3)                       |
|  - Kiến trúc HQTCSDL (Thomas, 2005)                               |
|  - An toàn, Toàn vẹn, Phân quyền & Mã hóa                         |
|  - Giao dịch ACID & Điều khiển cạnh tranh (2PL, WFG, Timestamp)   |
+-------------------------------------------------------------------+
                                 │
                                 ▼ (Hiện thực hóa công nghệ)
+-------------------------------------------------------------------+
|  Thực nghiệm Oracle & Lập trình (Phần 2: Chương 4 - 6 & Phụ lục)  |
|  - Quản trị Physical/Logical Storage, Oracle Data Pump            |
|  - Lập trình PL/SQL: Cursor, Procedure, Function, Trigger         |
|  - Quản lý giao dịch, RMAN Backup/Restore, Java JDBC & iReport    |
+-------------------------------------------------------------------+
                                 │
                                 ▼ (Phân bổ thực hành 02 tín chỉ)
+-------------------------------------------------------------------+
|  6 Buổi thực hành phòng máy (30 tiết)                             |
|  - Chuẩn bị tại nhà: Bài tập có hướng dẫn (Guided Exercises)      |
|  - Thực hiện tại lớp: Bài tập tự làm (Independent Lab Tasks)      |
+-------------------------------------------------------------------+

Bài tập và dữ liệu mẫu (Case studies)

Giáo trình chuẩn hóa thực hành thông qua hệ thống 5 bộ cơ sở dữ liệu mẫu đại diện cho các lĩnh vực nghiệp vụ khác nhau:

  1. CSDL Kiến trúc sư (Xây dựng): Gồm các quan hệ KTRUCSU, CHUTHAU, CHUNHAN, CONGNHAN, CGTRINH, THAMGIA, THIETKE.
  2. CSDL Báo chí - Xuất bản: Gồm các quan hệ BAIBAO, BAO_TCHI, THE_LOAI, DANG_BAI, PHATHANH, VIETBAI.
  3. CSDL Thương mại - Đại lý: Gồm các quan hệ HANGHOA, DAILY, MUA, BAN.
  4. CSDL Quản trị nhân sự chuẩn Oracle (HR / Scott Schema): Gồm các quan hệ REGIONS, COUNTRIES, LOCATIONS, DEPARTMENTS, JOBS, EMPLOYEES, JOB_HISTORY, EMP, BONUS.
  5. CSDL Bảo hiểm: Gồm các quan hệ DONVI, KH, LOAIBH, THEBH.

Phân bổ thực hành và đánh giá

Chương trình thực hành cho học phần 02 tín chỉ được thiết kế thành 6 bài thực hành (tương ứng 6 buổi, 30 tiết). Mỗi bài học bao gồm hai phần:

  • Phần bài tập có hướng dẫn (Guided exercises): Cung cấp kịch bản từng bước kèm câu lệnh mẫu để người học tự nghiên cứu trước ở nhà.
  • Phần bài tập tự làm (Independent tasks): Yêu cầu sinh viên trực tiếp tư duy cú pháp và thực hiện độc lập tại phòng máy.

Đánh giá kết quả học tập được thực hiện thông qua việc kiểm tra các tập tin kịch bản lệnh SQL/PL/SQL sinh viên lưu lại qua từng buổi, kết hợp kiểm tra lý thuyết (câu hỏi ôn tập cuối mỗi chương) và bài tập lớn xây dựng ứng dụng kết nối cơ sở dữ liệu.

Hướng dẫn tự học

Người học được yêu cầu tuân thủ quy trình tự học: nghiên cứu lý thuyết và giải quyết toàn bộ phần bài tập có hướng dẫn trước khi đến lớp; trong buổi học chỉ tập trung thao tác các bài tập nâng cao; lưu trữ toàn bộ các câu lệnh đã thực thi vào các tập tin script có cấu trúc để tái sử dụng làm dữ liệu đầu vào cho các bài thực hành kế tiếp.


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

  • Hệ thống hóa các lý thuyết điều khiển cạnh tranh kinh điển: Giáo trình tổng hợp đầy đủ các giải thuật điều khiển tương tranh và phục hồi quan trọng trong khoa học máy tính, bao gồm mô hình thành phần của Thomas (2005), giải thuật giải quyết deadlock Wait-Die và Wound-Wait của Rosenkrantz et al. (1978), phân tích chu trình đồ thị chờ WFG của Holt (1972), và kỹ thuật điều khiển cạnh tranh lạc quan ba pha (Read, Validation, Write) của Kung & Robinson (1981).
  • Cập nhật công nghệ quản trị Oracle hiện đại: Trình bày chi tiết công cụ sao chép dữ liệu Oracle Data Pump (so sánh trực tiếp với tiện ích truyền thống exp/imp), các kỹ thuật sao lưu vi sai/tích lũy thông qua chương trình quản lý phục hồi chuyên dụng RMAN, và cơ chế chỉ số SCN (System Change Number).
  • Tích hợp giải pháp an toàn phần cứng và mật mã học: Giáo trình không giới hạn ở mức phần mềm mà mở rộng phân tích các cấp độ mảng đĩa RAID (từ RAID 0 đến RAID 6, kỹ thuật Data Striping, Parity bit và mã sửa lỗi Hamming), cùng các giải thuật mật mã đối xứng (DES, 3DES, AES) và bất đối xứng (RSA, PGP).
  • Mở rộng kết nối ứng dụng đầu cuối (End-to-End Development): Cung cấp tài liệu kỹ thuật hoàn chỉnh về mô hình kiến trúc JDBC, quy trình ánh xạ tương tác giữa ứng dụng Java với DBMS, cách thiết kế giao diện form trên NetBeans và tích hợp công cụ lập báo cáo doanh nghiệp iReport.

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

  • Sinh viên chuyên ngành CNTT&TT: Tài liệu được biên soạn phục vụ trực tiếp cho sinh viên năm thứ 2 và năm thứ 3 thuộc các ngành Hệ thống thông tin, Khoa học máy tính, Công nghệ thông tin, Kỹ thuật phần mềm tại Trường Đại học Cần Thơ và các cơ sở giáo dục đại học có chương trình tương đương.
  • Điều kiện tiên quyết: Người học bắt buộc phải hoàn thành học phần Hệ Cơ Sở Dữ Liệu (CT106), nắm vững các kiến thức về mô hình quan hệ, lý thuyết chuẩn hóa dữ liệu, đại số quan hệ và cú pháp các câu lệnh SQL cơ bản (SELECT, INSERT, UPDATE, DELETE, CREATE TABLE).
  • Giảng viên đại học: Sử dụng làm giáo trình giảng dạy chuẩn cho học phần Hệ quản trị CSDL (02 tín chỉ), làm tài liệu tham chiếu để biên soạn đề cương môn học, bài giảng lý thuyết, hệ thống bài tập thực hành phòng máy và ngân hàng đề thi.
  • Kỹ sư phần mềm và người tự học: Phù hợp cho các lập trình viên muốn nâng cao kỹ năng viết mã CSDL mức máy chủ (Stored Procedures, Triggers, Cursors), kỹ sư quản trị cơ sở dữ liệu (DBA) mới bắt đầu làm việc với môi trường Oracle Database 10g/11g.

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

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

Giáo trình được thiết kế cho sinh viên đại học khối ngành Công nghệ thông tin & Truyền thông đã qua giai đoạn cơ sở, cần trang bị kiến thức chuyên sâu về quản trị hệ thống dữ liệu, cơ chế vận hành giao dịch và lập trình phía máy chủ (server-side database programming).

2. Cần 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 hoàn thành học phần Hệ Cơ Sở Dữ Liệu (mã học phần CT106), có kỹ năng thao tác cơ bản với ngôn ngữ truy vấn cấu trúc SQL và nắm được tư duy lập trình căn bản (ưu tiên ngôn ngữ Java nếu thực hiện phần phụ lục ứng dụng).

3. Điểm khác biệt cốt lõi giữa giáo trình này và giáo trình Hệ Cơ Sở Dữ Liệu căn bản là gì?

Giáo trình Hệ Cơ Sở Dữ Liệu cơ bản tập trung vào phân tích thiết kế mô hình dữ liệu (ERD), chuẩn hóa quan hệ và cú pháp truy vấn đại số. Ngược lại, Giáo trình Hệ quản trị Cơ sở dữ liệu tập trung vào kiến trúc bên trong của phần mềm HQTCSDL (Transaction Manager, Scheduler, Buffer Manager), các vấn đề vận hành tương tranh (ACID, 2PL, Deadlock, Timestamping), an ninh/bảo mật và kỹ thuật lập trình nâng cao bằng PL/SQL trên Oracle.

4. Làm thế nào để tự học và thực hành hiệu quả theo giáo trình?

Người học nên phân chia việc học thành 2 giai đoạn: đọc hiểu bản chất các giải thuật lý thuyết ở Phần 1 (tập trung vào các bảng phân tích lịch trình giao dịch và đồ thị chờ), sau đó cài đặt phần mềm Oracle 10g R2 cùng SQL Developer để thực hiện tuần tự từng bài tập có hướng dẫn và bài tập tự làm trong Phần 2.

5. Giáo trình có cung cấp các công cụ và tài liệu bổ trợ nào không?

Giáo trình tích hợp sẵn 5 bộ cơ sở dữ liệu mẫu hoàn chỉnh, danh mục câu hỏi ôn tập cuối mỗi chương, bảng tra cứu mã lỗi Oracle, bảng tổng hợp hàm xử lý dữ liệu, cùng hướng dẫn từng bước cấu hình kết nối JDBC trên IDE NetBeans và thiết kế mẫu biểu báo cáo bằng iReport.


Kết luận

Giáo trình Hệ quản trị Cơ sở dữ liệu (TS. Nguyễn Thái Nghe, ThS. Trần Ngân Bình, ThS. Đặng Quốc Việt, 2014) là tài liệu học thuật hoàn chỉnh, chuẩn hóa hệ thống kiến thức từ lý thuyết khoa học dữ liệu nền tảng đến kỹ năng kỹ thuật quản trị chuyên sâu.

Lộ trình học tập được đề xuất theo cấu trúc tài liệu:

  1. Nền tảng: Nắm vững kiến thức HQTCSDL, các mô hình kiến trúc, phân quyền và mật mã hóa (Chương 1, 2).
  2. Lý thuyết lõi: Nghiên cứu sâu về giao dịch ACID, giải thuật điều khiển cạnh tranh và phục hồi (Chương 3).
  3. Thực nghiệm công nghệ: Triển khai quản trị lưu trữ vật lý/luận lý và bảo mật trên Oracle (Chương 4).
  4. Lập trình mở rộng: Xây dựng thủ tục, hàm, trigger và điều khiển con trỏ PL/SQL (Chương 5).
  5. Vận hành nâng cao: Kiểm soát giao dịch, khóa và thực hiện sao lưu/phục hồi với RMAN (Chương 6).
  6. Ứng dụng tích hợp: Kết nối CSDL Oracle vào ứng dụng Java qua JDBC và kết xuất báo cáo iReport (Phụ lục 3).

Để hỗ trợ quá trình học tập, người học có thể tham khảo thêm các tài liệu hướng dẫn kỹ thuật chính thức từ Oracle Documentation và các hệ thống quản lý cơ sở dữ liệu mã nguồn mở tương đương.