Khởi động & Tình huống
Tình huống: Để tạo, lưu trữ và sửa văn bản cần phần mềm soạn thảo. Để tạo bảng tính cần phần mềm bảng tính. Vậy một phần mềm hỗ trợ làm việc với CSDL cần đáp ứng những yêu cầu nào?
Văn bản có phần mềm soạn thảo, bảng tính có phần mềm bảng tính riêng — vậy để làm việc với dữ liệu trong CSDL, cần một phần mềm đáp ứng những yêu cầu nào?
Mô phỏng: Ghép đúng phần mềm cho từng loại dữ liệu
⟳ Định hướng: Bài học sẽ giúp em hiểu rõ vai trò của Hệ QTCSDL, cấu trúc Hệ CSDL và sự khác biệt giữa mô hình tập trung – phân tán.
Mục tiêu bài học
- Hiểu khái niệm Hệ QTCSDL: Các nhóm chức năng: định nghĩa, cập nhật/truy xuất, bảo mật, giao diện lập trình.
- Hiểu khái niệm Hệ CSDL: 3 thành phần: CSDL, Hệ QTCSDL và phần mềm ứng dụng CSDL. Mô hình client–server.
- Phân biệt CSDL tập trung và phân tán: Ưu, nhược điểm và ứng dụng thực tế.
1. Hệ quản trị CSDL (Hệ QTCSDL)
Định nghĩa: Hệ quản trị cơ sở dữ liệu (Database Management System – hệ QTCSDL) là phần mềm cung cấp phương thức để lưu trữ, cập nhật và truy xuất dữ liệu của CSDL, bảo mật và an toàn dữ liệu, đồng thời cung cấp giao diện lập trình ứng dụng cho nhà phát triển.
Điều quan trọng là các chức năng này được xây dựng một cách tổng quát, theo mô hình CSDL, không phụ thuộc vào một CSDL hay một ứng dụng cụ thể nào. Một hệ QTCSDL có thể quản trị nhiều CSDL khác nhau.
Người dùng và nhà phát triển không thao tác thẳng vào tệp dữ liệu, mà đi qua hệ QTCSDL — nơi tập trung bốn nhóm chức năng của bài học.
Bốn nhóm chức năng của hệ QTCSDL
a) Định nghĩa dữ liệu
- Khai báo CSDL với tên gọi xác định (một hệ QTCSDL quản trị được nhiều CSDL).
- Tạo lập, sửa đổi cấu trúc bên trong mỗi CSDL.
- Cài đặt các ràng buộc toàn vẹn để kiểm soát tính đúng đắn của dữ liệu.
b) Cập nhật & truy xuất dữ liệu
- Cập nhật: thêm, xoá, sửa dữ liệu để dữ liệu luôn phản ánh đúng thực tế.
- Truy xuất: lấy ra dữ liệu theo những tiêu chí khác nhau do người dùng đặt.
- Đây còn được gọi chung là nhóm chức năng thao tác dữ liệu.
c) Bảo mật & an toàn CSDL
- Kiểm soát quyền truy cập: chỉ người có thẩm quyền mới đọc/sửa được dữ liệu.
- Kiểm soát giao dịch khi nhiều người cùng sửa một bản ghi, bảo đảm tính nhất quán.
- Sao lưu (backup) và khôi phục dữ liệu khi có sự cố.
d) Giao diện lập trình ứng dụng
- Cung cấp công cụ để nhà phát triển gửi truy vấn tới CSDL từ ứng dụng của mình.
- Nhờ đó mỗi tổ chức viết được phần mềm riêng phù hợp công việc cụ thể.
Mỗi nhóm đọc một việc mà hệ QTCSDL làm, rồi bấm chọn nhóm chức năng tương ứng. Nhóm nào xếp đúng cả 8 việc trước là thắng.
- Hệ QTCSDL là phần mềm cung cấp phương thức để lưu trữ, cập nhật và truy xuất dữ liệu của CSDL, bảo mật và an toàn dữ liệu.
- Hệ QTCSDL cũng cung cấp giao diện lập trình ứng dụng cho các nhà phát triển ứng dụng và người dùng.
Câu hỏi củng cố (SGK tr.60)
1. Nêu những khó khăn trong việc khai thác CSDL nếu không có hệ QTCSDL.
- Người dùng phải tự biết cấu trúc các tệp lưu dữ liệu và tự viết chương trình để đọc, ghi — rất khó với người dùng phổ thông.
- Không có cơ chế kiểm tra tự động nên dữ liệu dễ sai sót, trùng lặp, mâu thuẫn.
- Không có phân quyền, không có sao lưu — dữ liệu dễ bị lộ hoặc mất khi có sự cố.
- Nhiều người cùng sửa một dữ liệu sẽ tranh chấp, ghi đè lên nhau.
- Mỗi ứng dụng mới lại phải viết lại phần đọc/ghi dữ liệu từ đầu, rất tốn công.
2. Tóm tắt các nhóm chức năng của hệ QTCSDL.
Bốn nhóm: (a) định nghĩa dữ liệu — khai báo CSDL, tạo/sửa cấu trúc, đặt ràng buộc toàn vẹn; (b) cập nhật và truy xuất dữ liệu; (c) bảo mật, an toàn CSDL — phân quyền, kiểm soát giao dịch, sao lưu và khôi phục; (d) giao diện lập trình ứng dụng cho nhà phát triển.
Ví dụ hệ QTCSDL phổ biến: Oracle, MySQL, SQL Server, DB2, PostgreSQL, SQLite… Microsoft Access cũng là một hệ QTCSDL nhưng có nhiều hạn chế về hiệu suất nên ít dùng cho các ứng dụng phức tạp, nhất là ứng dụng trực tuyến.
2. Hệ CSDL và mô hình khách – chủ
Tình huống: Khi lên mạng tra cứu điểm thi vào lớp 10, màn hình chỉ yêu cầu em nhập vài dữ liệu tối thiểu (thường là số báo danh). Vậy mà gần như ngay lập tức em nhận được đầy đủ họ tên, trường lớp, điểm từng môn, kết quả xét tuyển.
Câu hỏi: Ngoài CSDL điểm thi, hệ thống đó còn cần có gì để cung cấp cho em thông tin nhanh và đúng như vậy?
Cần thêm một phần mềm tổ chức giao tiếp với người dùng (phần mềm tra cứu điểm thi) làm cầu nối giữa người dùng với CSDL điểm thi, và một hệ QTCSDL đứng phía sau để nhận yêu cầu, tìm kiếm rồi trả kết quả về. Ba thành phần đó hợp lại thành một hệ CSDL.
Trường hợp đơn giản nhất: cả ba thành phần cùng nằm trên một máy tính — ví dụ một CSDL Microsoft Access của cửa hàng nhỏ.
Các hệ QTCSDL nhiều người dùng thường được xây dựng theo mô hình hai thành phần: phần mềm khách (client) và phần chủ (server) — hai phần có thể ở cùng một máy hoặc ở hai máy khác nhau.
Nhiều phần mềm ứng dụng khác nhau (tra cứu điểm, xét tuyển, thống kê…) cùng khai thác một CSDL thông qua một hệ QTCSDL. Cả ba hợp lại được gọi là hệ CSDL.
🏛️ Ba thành phần của hệ CSDL
Phần mềm ứng dụng CSDL
Giao diện cho người dùng cuối
Hệ QTCSDL
Nhận yêu cầu, xử lí dữ liệu
CSDL
Nơi dữ liệu được lưu trữ
- Phần mềm ứng dụng CSDL là phần mềm được xây dựng để tương tác với hệ QTCSDL, nhằm hỗ trợ người dùng khai thác thông tin từ CSDL một cách thuận tiện theo yêu cầu xác định.
- Một hệ thống gồm ba thành phần: CSDL, hệ QTCSDL và các phần mềm ứng dụng CSDL được gọi là một hệ CSDL.
🧩 Liên hệ thực tế: Các ứng dụng mua bán trực tuyến, đặt xe công nghệ, thanh toán điện tử… mà em vẫn dùng hằng ngày đều là phần mềm ứng dụng CSDL của một hệ CSDL cụ thể phía sau.
Câu hỏi củng cố
Hệ QTCSDL và hệ CSDL khác nhau như thế nào?
Hệ QTCSDL chỉ là một phần mềm — công cụ tổng quát để lưu trữ, cập nhật, truy xuất, bảo mật dữ liệu, không gắn với CSDL hay ứng dụng cụ thể nào. Hệ CSDL là cả một hệ thống gồm ba thành phần: CSDL cụ thể + hệ QTCSDL + các phần mềm ứng dụng CSDL phục vụ một bài toán quản lí xác định. Nói ngắn gọn: hệ QTCSDL là một thành phần bên trong hệ CSDL.
3. Hệ CSDL tập trung và phân tán
Hệ CSDL tập trung
Hệ CSDL mà CSDL được lưu trữ tập trung trên một máy tính. Bao gồm cả những CSDL một người dùng trên máy tính cá nhân — khi đó một người vừa thiết kế, vừa bảo trì, vừa viết ứng dụng, vừa là người dùng cuối.
Hệ CSDL phân tán
Dữ liệu được lưu trữ ở nhiều máy tính khác nhau của một mạng máy tính. Dữ liệu lưu tại mỗi trạm hình thành một CSDL cục bộ của trạm đó.
Toàn bộ dữ liệu nằm gọn trên một máy — dễ quản lí, dễ bảo đảm nhất quán, nhưng khó mở rộng và cả hệ thống dừng nếu máy đó hỏng.
Mỗi trạm có CSDL cục bộ và hệ QTCSDL riêng, chạy được ứng dụng cục bộ. Khi một ứng dụng cần dữ liệu của ít nhất hai trạm để cho ra kết quả thì gọi là ứng dụng toàn cục (ứng dụng phân tán).
Ưu điểm của hệ CSDL phân tán
- Dễ mở rộng: thêm trạm dữ liệu mới mà không làm ảnh hưởng hoạt động của các trạm đang chạy.
- Tính sẵn sàng và độ tin cậy cao: một trạm gặp sự cố, các trạm khác vẫn hoạt động; dữ liệu có thể được lưu bản sao ở nhiều nơi.
- Tối ưu tốc độ: dữ liệu đặt gần nơi sử dụng nên giảm tải đường truyền khi truy xuất, cập nhật.
Hạn chế so với tập trung
- Thiết kế và triển khai phức tạp hơn nhiều.
- Khó bảo đảm tính nhất quán và bảo mật dữ liệu giữa các trạm.
- Chi phí duy trì cao hơn.
⚠️ Lưu ý phân biệt: có hệ CSDL tập trung nhưng xử lí phân tán — điển hình là mô hình máy chủ tệp. Toàn bộ CSDL và phần mềm đặt trên máy chủ tệp; khi một máy trạm cần thao tác, toàn bộ dữ liệu và phần mềm được chuyển qua đường truyền vào RAM của máy trạm, việc xử lí thực hiện tại máy trạm rồi mới ghi lại về máy chủ. Đó không phải là hệ CSDL phân tán.
Đọc từng tình huống và chọn mô hình phù hợp. Thảo luận nhanh trong nhóm trước khi bấm chọn.
Mô phỏng: Hệ CSDL phân tán toàn quốc
Bản đồ bốn trạm chi nhánh (Hà Nội, Đà Nẵng, TP. Hồ Chí Minh, Cần Thơ) nối với nhau qua mạng máy tính. Bấm nút bên dưới để giả lập sự cố mất kết nối ở một trạm và quan sát điều gì xảy ra với các trạm còn lại.
💡 Rút ra: khi trạm Đà Nẵng mất kết nối, CSDL cục bộ của trạm đó vẫn chạy cho các ứng dụng cục bộ tại chỗ, ba trạm còn lại cũng vẫn làm việc bình thường. Chỉ những ứng dụng toàn cục cần dữ liệu của Đà Nẵng mới bị ảnh hưởng — đó chính là ưu điểm về tính sẵn sàng của hệ CSDL phân tán.
- Hệ CSDL mà CSDL được lưu trữ tập trung trên một máy tính được gọi là hệ cơ sở dữ liệu tập trung.
- Hệ CSDL phân tán cho phép người dùng truy cập dữ liệu được lưu trữ ở nhiều máy tính khác nhau trên mạng máy tính.
Câu hỏi củng cố
Hệ CSDL tập trung và hệ CSDL phân tán khác nhau như thế nào?
Khác nhau ở nơi lưu trữ dữ liệu: hệ tập trung lưu toàn bộ CSDL trên một máy tính; hệ phân tán chia dữ liệu ra nhiều trạm của một mạng máy tính, mỗi trạm có CSDL cục bộ và hệ QTCSDL riêng. Kéo theo đó: hệ phân tán dễ mở rộng, tính sẵn sàng cao hơn, nhưng thiết kế phức tạp, khó bảo đảm nhất quán và chi phí duy trì cao hơn.
4. Thực hành MySQL – Truy vấn CSDL nhân viên
Dùng câu lệnh SQL (ngôn ngữ chuẩn của các hệ QTCSDL như MySQL) để tạo bảng, nạp dữ liệu và truy xuất thông tin nhân viên – đúng với cách một Hệ QTCSDL thực xử lý yêu cầu.
5. Luyện tập (10 câu SGK)
Luyện tập (SGK Tr.63)
1. Hãy lập danh sách các chức năng của hệ QTCSDL trong từng nhóm chức năng.
- a) Định nghĩa dữ liệu: khai báo CSDL với tên xác định; tạo lập và sửa đổi cấu trúc bên trong CSDL; cài đặt các ràng buộc toàn vẹn.
- b) Cập nhật và truy xuất dữ liệu: thêm, xoá, sửa dữ liệu; truy xuất dữ liệu theo các tiêu chí khác nhau.
- c) Bảo mật, an toàn CSDL: kiểm soát quyền truy cập; kiểm soát giao dịch khi nhiều người dùng đồng thời; sao lưu dự phòng và khôi phục dữ liệu.
- d) Giao diện lập trình ứng dụng: cung cấp công cụ để nhà phát triển gửi truy vấn tới CSDL từ ứng dụng của họ.
2. Hãy phân tích điểm mạnh và điểm yếu của CSDL phân tán so với CSDL tập trung.
Điểm mạnh: dễ mở rộng (thêm trạm mà không làm gián đoạn các trạm đang chạy); tính sẵn sàng và độ tin cậy cao (một trạm hỏng, hệ thống vẫn chạy; dữ liệu có bản sao ở trạm khác); tối ưu tốc độ vì dữ liệu đặt gần nơi sử dụng, giảm tải đường truyền.
Điểm yếu: thiết kế và triển khai phức tạp; khó bảo đảm tính nhất quán của dữ liệu giữa các trạm; khó bảo mật hơn vì dữ liệu nằm ở nhiều nơi; chi phí duy trì cao.
Vận dụng (SGK Tr.63)
1. Cho ví dụ về một hệ CSDL trên thực tế, chỉ rõ những thành phần của nó.
Ví dụ hệ CSDL quản lí thư viện trường: CSDL gồm các bảng Sách, Học sinh, Phiếu mượn…; hệ QTCSDL là MySQL (hoặc SQL Server) cài trên máy chủ của trường; phần mềm ứng dụng CSDL gồm phần mềm thủ thư dùng để nhập sách, ghi mượn – trả và trang tra cứu sách dành cho học sinh. Ba thành phần ấy hợp thành một hệ CSDL. Em có thể nêu ví dụ khác: hệ CSDL bán vé tàu, hệ CSDL tra cứu điểm thi, ứng dụng đặt xe công nghệ…
2. Hãy tìm hiểu qua Internet tên một số hệ quản trị CSDL thông dụng.
MySQL và PostgreSQL (mã nguồn mở, rất phổ biến cho ứng dụng web), Oracle Database và IBM DB2 (dùng trong ngân hàng, doanh nghiệp lớn), Microsoft SQL Server, SQLite (nhỏ gọn, nhúng trong điện thoại và trình duyệt), Microsoft Access (đơn giản, dùng cho CSDL nhỏ), MongoDB (CSDL phi quan hệ). Khi tìm hiểu, em hãy ghi lại: hệ đó miễn phí hay trả phí, thường dùng cho loại ứng dụng nào.