Bài 12: Hệ quản trị cơ sở dữ liệu và hệ cơ sở dữ liệu – Lý thuyết

Hệ cơ sở dữ liệu phân tán (Ảnh Sách KNTT)

I. Lý thuyết trọng tâm

1. Khái niệm hệ quản trị cơ sở dữ liệu

Một cơ sở dữ liệu (CSDL) lưu dữ liệu trên hệ thống máy tính dưới dạng các tệp có cấu trúc, được thiết kế để nhiều người cùng khai thác. Tuy nhiên, không phải ai cũng có đủ kiến thức về cấu trúc tệp để tự viết chương trình truy xuất dữ liệu. Vì vậy, người ta đã xây dựng những bộ phần mềm chuyên dụng gọi là hệ quản trị cơ sở dữ liệu (Database Management System – viết tắt là hệ QTCSDL).

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, đồng thời đảm bảo 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 phục vụ các nhà phát triển và người dùng.

Các hệ QTCSDL phổ biến hiện nay gồm: Oracle, MySQL, SQL Server, DB2, PostgreSQL, SQLite,… Microsoft Access cũng là một hệ QTCSDL nhưng do hạn chế về hiệu suất nên ít được dùng cho các ứng dụng phức tạp, đặc biệt là các ứng dụng trực tuyến.

Hệ QTCSDL có bốn nhóm chức năng chính:

a) Nhóm chức năng định nghĩa dữ liệu

Nhóm chức năng này cho phép người dùng:

  • Khai báo CSDL với tên gọi xác định. Một hệ QTCSDL có khả năng quản trị đồng thời nhiều CSDL khác nhau.
  • Tạo lập và sửa đổi kiến trúc bên trong của mỗi CSDL (tức là cấu trúc các bảng, các trường dữ liệu,…).
  • Cài đặt các ràng buộc toàn vẹn dữ liệu nhằm kiểm soát tính đúng đắn của dữ liệu được nhập vào.

b) Nhóm chức năng cập nhật và truy xuất dữ liệu

Đây là nhóm chức năng thao tác dữ liệu, bao gồm:

  • Cập nhật dữ liệu: Sau khi CSDL được khởi tạo, ban đầu chưa có dữ liệu nên cần nhập dữ liệu vào. Theo thời gian, do biến động thực tế hoặc do sai sót khi nhập, dữ liệu có thể không còn chính xác. Hệ QTCSDL cung cấp các chức năng thêm, xoá, sửa dữ liệu để giữ CSDL luôn cập nhật.
  • Truy xuất dữ liệu: Cho phép tìm kiếm và lọc dữ liệu theo nhiều tiêu chí khác nhau tuỳ theo nhu cầu của người dùng.

c) Nhóm chức năng bảo mật, an toàn CSDL

Nhóm chức năng này đảm bảo dữ liệu được bảo vệ và không bị mất mát:

  • Kiểm soát quyền truy cập: Dữ liệu cần được bảo mật, chỉ cung cấp cho người có thẩm quyền. Do đó, nhiều hệ QTCSDL cung cấp phương tiện phân quyền truy cập dữ liệu.
  • Kiểm soát giao dịch đồng thời: Khi nhiều người truy cập CSDL cùng lúc, có thể phát sinh tranh chấp dữ liệu (ví dụ một người đang sửa trường dữ liệu của một bản ghi thì người khác lại ra lệnh xoá cả bản ghi đó). Hệ QTCSDL cung cấp chức năng kiểm soát các giao dịch để đảm bảo tính nhất quán.
  • Sao lưu dự phòng và khôi phục: Hệ QTCSDL cung cấp phương tiện thực hiện sao lưu dự phòng (backup) để đề phòng sự cố gây mất dữ liệu, và khôi phục dữ liệu khi cần.

Điều quan trọng là các chức năng trên được xây dựng một cách tổng quát, theo mô hình CSDL chung, không phụ thuộc vào từng CSDL hay ứng dụng cụ thể nào.

d) Nhóm chức năng giao diện lập trình ứng dụng

Ngoài ba nhóm chức năng chính, hệ QTCSDL còn cung cấp Giao diện lập trình ứng dụng (Application Programming Interface – API) dưới dạng thư viện hàm riêng cho từng ngôn ngữ lập trình. Nhờ có API, các nhà phát triển ứng dụng CSDL có thể gửi truy vấn đến CSDL từ phần mềm mà họ xây dựng, phục vụ các yêu cầu công việc cụ thể.

2. Hệ cơ sở dữ liệu

Vì mục đích hỗ trợ nhiều người dùng, các hệ QTCSDL thường được xây dựng theo mô hình hai thành phần, có thể cài đặt trên cùng một máy tính hoặc trên các máy tính khác nhau:

  • Thành phần “chủ”: Có nhiệm vụ chính là tính toán, xử lí dữ liệu. Đây chính là phần cốt lõi của hệ QTCSDL.
  • Thành phần “khách” (phần mềm khách): Có nhiệm vụ tổ chức giao diện tương tác với người dùng, kết nối với phần “chủ”, gửi các yêu cầu tính toán xử lí dữ liệu và nhận lại, hiển thị kết quả.
Phần mềm khách và hệ QTCSDL cài đặt trên cùng một máy tính (Ảnh Sách KNTT)
Phần mềm khách và hệ QTCSDL cài đặt trên cùng một máy tính (Ảnh Sách KNTT)
Hệ QTCSDL và phần mềm khách cài đặt trên các máy tính khác nhau (Ảnh Sách KNTT)
Hệ QTCSDL và phần mềm khách cài đặt trên các máy tính khác nhau (Ảnh Sách KNTT)

Hai thành phần này luôn được cung cấp trong cùng một gói cài đặt hệ QTCSDL, và thành phần chủ thường được gọi luôn là hệ QTCSDL.

Các hệ QTCSDL cũng cung cấp công cụ (giao diện lập trình ứng dụng) để người dùng có thể tự viết phần mềm khách chuyên biệt theo nhu cầu riêng. Phần mềm khách chuyên biệt như thế được gọi là phần mềm ứng dụng CSDL.

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 mục đích hỗ trợ người dùng khai thác thông tin từ CSDL một cách thuận tiện theo các yêu cầu xác định. Ví dụ: phần mềm tra cứu điểm thi trực tuyến, ứng dụng mua bán trực tuyến, ứng dụng đặt xe công nghệ, thanh toán điện tử,… Có thể có nhiều phần mềm ứng dụng CSDL khác nhau cùng truy xuất, khai thác thông tin từ một CSDL.

Hệ cơ sở dữ liệu (Ảnh Sách KNTT)
Hệ cơ sở dữ liệu (Ảnh Sách KNTT)

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 (hệ cơ sở dữ liệu).

3. Hệ cơ sở dữ liệu tập trung và phân tán

a) Hệ CSDL tập trung

Hệ CSDL mà toàn bộ CSDL được lưu trữ tập trung trên một máy tính duy nhất được gọi là hệ cơ sở dữ liệu tập trung.

Hệ CSDL tập trung bao gồm cả những CSDL một người dùng (ví dụ như các CSDL của Microsoft Access), trong đó người dùng vừa là người thiết kế, tạo lập và bảo trì CSDL, vừa là người viết phần mềm ứng dụng CSDL, vừa là người dùng đầu cuối khai thác thông tin.

Hệ CSDL tập trung (Ảnh Sách KNTT)
Hệ CSDL tập trung (Ảnh Sách KNTT)

b) Hệ CSDL phân tán

Khi một tổ chức có nhiều đơn vị phân tán về mặt địa lí, họ có thể chọn giải pháp tổ chức hệ CSDL phân tán để giải quyết các bài toán quản lí liên quan. Khác với hệ CSDL tập trung đặt toàn bộ dữ liệu trên một máy tính, 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.

Ví dụ: Một doanh nghiệp có trụ sở chính tại Hà Nội và các chi nhánh tại Đà Nẵng, TP. Hồ Chí Minh, Cần Thơ. Mỗi địa điểm có hệ thống máy tính riêng hình thành một trạm; các trạm kết nối với nhau qua mạng máy tính.

Cơ sở dữ liệu phân tán là tập hợp dữ liệu được phân tán trên các trạm khác nhau của một mạng máy tính. Dữ liệu tại mỗi trạm hình thành một CSDL cục bộ. Mỗi trạm phải thực hiện các ứng dụng cục bộ – là ứng dụng chạy tại một trạm và chỉ sử dụng dữ liệu của trạm đó. Đồng thời, mỗi trạm cũng phải tham gia thực hiện ứng dụng toàn cục, còn gọi là ứng dụng phân tán – là ứng dụng chạy tại một trạm nhưng sử dụng dữ liệu của ít nhất hai trạm để cho ra kết quả cuối cùng.

Các chương trình ứng dụng, hệ QTCSDL và CSDL tại mỗi trạm hình thành hệ CSDL phân tán.

Hệ cơ sở dữ liệu phân tán (Ảnh Sách KNTT)
Hệ cơ sở dữ liệu phân tán (Ảnh Sách KNTT)

c) So sánh hệ CSDL tập trung và hệ CSDL phân tán

So với hệ CSDL tập trung, việc thiết kế và triển khai hệ CSDL phân tán phức tạp hơn, khó bảo đảm tính nhất quán và bảo mật dữ liệu, chi phí duy trì cũng cao hơn. Tuy nhiên, hệ CSDL phân tán có những ưu điểm nổi bật:

  • Dễ dàng mở rộng: Có thể bổ sung thêm trạm dữ liệu vào hệ thống khi cần mà không ảnh hưởng đến hoạt động của các trạm đang vận hành.
  • Tính sẵn sàng và độ tin cậy cao: Hệ thống hoạt động ổn định, hạn chế tối đa việc mất mát dữ liệu vì dù có trạm gặp sự cố thì dữ liệu vẫn có thể được sao lưu nhiều bản đặt ở các trạm khác.

Những hệ CSDL lớn dùng trong các tổ chức có phạm vi địa lí rộng, nhiều người truy xuất thường được tổ chức dưới dạng hệ CSDL phân tán để tối ưu hoá tốc độ, giảm tải đường truyền. Ví dụ điển hình là các CSDL của Facebook, Google, Amazon,… được cài đặt trên nhiều máy chủ ở nhiều quốc gia.

Lưu ý: Cần phân biệt hệ CSDL phân tán với hệ CSDL tập trung nhưng xử lí dữ liệu phân tán. Ví dụ, mô hình máy chủ tệp là hệ CSDL tập trung: toàn bộ CSDL và phần mềm ứng dụng đặt trên máy chủ tệp, các máy trạm khi cần thao tác thì toàn bộ CSDL được chuyển qua mạng về bộ nhớ RAM của máy trạm, xử lí xong lại lưu về máy chủ. Đây không phải là hệ CSDL phân tán vì dữ liệu vẫn được lưu trữ tập trung tại một nơi.

II. Phương pháp giải các dạng bài tập

Dạng 1: Phân tích chức năng hệ QTCSDL và phân biệt các khái niệm

Phương pháp: Nắm vững bốn nhóm chức năng của hệ QTCSDL (định nghĩa dữ liệu, cập nhật và truy xuất, bảo mật an toàn, giao diện lập trình ứng dụng). Phân biệt rõ ba khái niệm: hệ QTCSDL (phần mềm), phần mềm ứng dụng CSDL (phần mềm do nhà phát triển viết riêng), và hệ CSDL (hệ thống gồm 3 thành phần). Khi liệt kê chức năng, cần sắp xếp theo đúng nhóm và nêu được vai trò cụ thể của từng chức năng.

Bài 1 (Luyện tập SGK). 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 của hệ QTCSDL.

Lời giải:

Nhóm 1 – Định nghĩa dữ liệu:

  • Khai báo CSDL với tên gọi xác định; một hệ QTCSDL có thể quản trị nhiều CSDL.
  • Tạo lập, sửa đổi kiến trúc bên trong mỗi CSDL.
  • Cài đặt các ràng buộc toàn vẹn dữ liệu để kiểm soát tính đúng đắn.

Nhóm 2 – Cập nhật và truy xuất dữ liệu:

  • Cập nhật dữ liệu: thêm, xoá, sửa dữ liệu trong CSDL.
  • Truy xuất dữ liệu theo nhiều tiêu chí khác nhau.

Nhóm 3 – Bảo mật, an toàn CSDL:

  • Kiểm soát quyền truy cập dữ liệu, chỉ cho phép người có thẩm quyền.
  • Kiểm soát các giao dịch đồng thời để đảm bảo tính nhất quán.
  • Sao lưu dự phòng (backup) và khôi phục dữ liệu khi có sự cố.

Nhóm 4 – Giao diện lập trình ứng dụng (API):

  • Cung cấp thư viện hàm cho từng ngôn ngữ lập trình để các nhà phát triển có thể gửi truy vấn đến CSDL từ phần mềm của mình.

Bài (Phiếu học tập – NV1). Hãy cho biết khái niệm phần mềm ứng dụng CSDL, cho ví dụ minh hoạ. Hệ QTCSDL và hệ CSDL khác nhau như thế nào?

Lời giải:

Khái niệm 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 các yêu cầu xác định. Ví dụ: phần mềm tra cứu điểm thi trực tuyến, ứng dụng đặt xe công nghệ, ứng dụng mua sắm trực tuyến.

Phân biệt hệ QTCSDL và hệ CSDL:

Tiêu chí Hệ QTCSDL Hệ CSDL
Bản chất Là một phần mềm chuyên dụng Là một hệ thống gồm nhiều thành phần
Thành phần Bản thân nó là một thành phần duy nhất Gồm ba thành phần: CSDL + hệ QTCSDL + phần mềm ứng dụng CSDL
Vai trò Cung cấp công cụ lưu trữ, cập nhật, truy xuất, bảo mật dữ liệu Là tổng thể phục vụ việc lưu trữ và khai thác dữ liệu cho người dùng cuối

Nói cách khác, hệ QTCSDL chỉ là một phần mềm nằm trong hệ CSDL; hệ CSDL là hệ thống hoàn chỉnh bao gồm cả dữ liệu, phần mềm quản trị lẫn phần mềm ứng dụng.

Dạng 2: So sánh hệ CSDL tập trung và hệ CSDL phân tán

Phương pháp: Tiêu chí phân biệt cốt lõi là nơi lưu trữ dữ liệu: tập trung trên một máy hay phân tán trên nhiều máy qua mạng. Từ đó suy ra các điểm mạnh, điểm yếu tương ứng. Lưu ý phân biệt hệ CSDL phân tán (dữ liệu thực sự phân tán ở nhiều trạm) với hệ CSDL tập trung có xử lí phân tán (dữ liệu vẫn lưu tập trung, chỉ xử lí ở máy trạm).

Bài 2 (Luyện tập SGK). Hãy phân tích điểm mạnh và điểm yếu của hệ CSDL phân tán so với hệ CSDL tập trung.

Lời giải:

Điểm mạnh của hệ CSDL phân tán:

  • Dễ dàng mở rộng: bổ sung thêm trạm mà không ảnh hưởng đến các trạm đang hoạt động.
  • Tính sẵn sàng và độ tin cậy cao: nếu một trạm gặp sự cố, dữ liệu vẫn có bản sao lưu ở các trạm khác, hệ thống vẫn hoạt động.
  • Tối ưu hoá tốc độ truy xuất và giảm tải đường truyền vì dữ liệu được đặt gần nơi sử dụng.
  • Phù hợp với các tổ chức có nhiều đơn vị phân bố ở nhiều vị trí địa lí khác nhau.

Điểm yếu của hệ CSDL phân tán:

  • Thiết kế và triển khai phức tạp hơn nhiều so với hệ tập trung.
  • Khó đảm bảo tính nhất quán dữ liệu giữa các trạm.
  • Vấn đề bảo mật khó khăn hơn do dữ liệu nằm rải rác trên nhiều máy.
  • Chi phí duy trì và vận hành cao hơn.

Bài (Phiếu học tập – NV2). Trình bày điểm khác nhau giữa hệ CSDL tập trung và hệ CSDL phân tán. Cho biết ưu điểm của hệ CSDL phân tán là gì?

Lời giải:

Điểm khác nhau:

Tiêu chí Hệ CSDL tập trung Hệ CSDL phân tán
Nơi lưu trữ dữ liệu Toàn bộ trên một máy tính duy nhất Phân tán trên nhiều máy tính khác nhau qua mạng
Phạm vi Phù hợp quy mô nhỏ, một địa điểm Phù hợp tổ chức lớn, nhiều địa điểm
Mức độ phức tạp Đơn giản, dễ triển khai Phức tạp, khó thiết kế và duy trì
Ứng dụng Chỉ có ứng dụng tập trung Có cả ứng dụng cục bộ (dùng dữ liệu một trạm) và ứng dụng toàn cục (dùng dữ liệu ít nhất hai trạm)

Ưu điểm của hệ CSDL phân tán: Dễ dàng mở rộng quy mô; tính sẵn sàng và độ tin cậy cao nhờ sao lưu dữ liệu trên nhiều trạm; tối ưu tốc độ truy xuất và giảm tải đường truyền.

Dạng 3: Vận dụng – Nhận biết hệ CSDL trong thực tế

Phương pháp: Khi phân tích một hệ CSDL thực tế, cần chỉ ra đủ ba thành phần: (1) CSDL chứa dữ liệu gì, (2) hệ QTCSDL nào được sử dụng, (3) phần mềm ứng dụng CSDL là gì. Khi tìm hiểu các hệ QTCSDL phổ biến, cần lưu ý phân biệt hệ QTCSDL quan hệ (dữ liệu tổ chức theo bảng) với các loại khác.

Bài 1 (Vận dụng SGK). Cho ví dụ về một hệ CSDL trên thực tế, chỉ rõ những thành phần của nó.

Lời giải:

Ví dụ: Hệ CSDL tra cứu điểm thi tuyển sinh vào lớp 10.

  • CSDL: Lưu trữ thông tin thí sinh (họ tên, số báo danh, trường, lớp, điểm từng môn thi, kết quả xét tuyển,…).
  • Hệ QTCSDL: Có thể sử dụng MySQL, SQL Server hoặc Oracle để quản lí dữ liệu điểm thi.
  • Phần mềm ứng dụng CSDL: Trang web tra cứu điểm thi trực tuyến – cho phép thí sinh nhập số báo danh và xem kết quả; phần mềm thống kê đánh giá kết quả toàn bộ kì thi; phần mềm xét tuyển.

Bài 2 (Vận dụng SGK). Hãy tìm hiểu qua Internet tên một số hệ quản trị CSDL quan hệ được sử dụng phổ biến.

Lời giải:

Một số hệ QTCSDL quan hệ phổ biến hiện nay:

  • Oracle Database: Hệ QTCSDL thương mại mạnh mẽ, được sử dụng rộng rãi trong các doanh nghiệp lớn, ngân hàng, tổ chức tài chính.
  • MySQL: Hệ QTCSDL mã nguồn mở phổ biến nhất, thường dùng cho các ứng dụng web (Facebook, YouTube từng sử dụng MySQL).
  • Microsoft SQL Server: Hệ QTCSDL thương mại của Microsoft, phổ biến trong môi trường doanh nghiệp sử dụng hệ sinh thái Microsoft.
  • PostgreSQL: Hệ QTCSDL mã nguồn mở với nhiều tính năng nâng cao, được đánh giá cao về tính tuân thủ chuẩn SQL.
  • SQLite: Hệ QTCSDL nhẹ, không cần máy chủ riêng, thường được nhúng trong các ứng dụng di động và phần mềm nhỏ.

III. Sơ đồ tư duy

HỆ QUẢN TRỊ CSDL VÀ HỆ CSDL
│
├── 1. HỆ QUẢN TRỊ CSDL (Hệ QTCSDL)
│   ├── Khái niệm: PM cung cấp phương thức lưu trữ, cập nhật,
│   │   truy xuất, bảo mật dữ liệu + giao diện lập trình ứng dụng
│   │
│   ├── Nhóm chức năng
│   │   ├── Định nghĩa dữ liệu
│   │   │   ├── Khai báo CSDL (tên, số lượng)
│   │   │   ├── Tạo lập / sửa đổi kiến trúc
│   │   │   └── Cài đặt ràng buộc toàn vẹn
│   │   │
│   │   ├── Cập nhật & truy xuất dữ liệu
│   │   │   ├── Thêm, xoá, sửa dữ liệu
│   │   │   └── Truy xuất theo nhiều tiêu chí
│   │   │
│   │   ├── Bảo mật, an toàn CSDL
│   │   │   ├── Kiểm soát quyền truy cập
│   │   │   ├── Kiểm soát giao dịch đồng thời
│   │   │   └── Sao lưu dự phòng & khôi phục
│   │   │
│   │   └── Giao diện lập trình ứng dụng (API)
│   │       └── Thư viện hàm cho từng ngôn ngữ lập trình
│   │
│   └── VD phổ biến: Oracle, MySQL, SQL Server, PostgreSQL, SQLite
│
├── 2. HỆ CƠ SỞ DỮ LIỆU (Hệ CSDL)
│   ├── Mô hình hai thành phần
│   │   ├── Phần "chủ": xử lí dữ liệu (= hệ QTCSDL)
│   │   └── Phần "khách": giao diện người dùng
│   │
│   ├── Phần mềm ứng dụng CSDL
│   │   ├── Khái niệm: PM tương tác với hệ QTCSDL
│   │   │   để hỗ trợ người dùng khai thác CSDL
│   │   └── VD: tra cứu điểm thi, đặt xe, mua sắm online
│   │
│   └── Ba thành phần hệ CSDL
│       ├── CSDL (dữ liệu)
│       ├── Hệ QTCSDL (phần mềm quản trị)
│       └── Phần mềm ứng dụng CSDL
│
└── 3. HỆ CSDL TẬP TRUNG & PHÂN TÁN
    ├── Hệ CSDL tập trung
    │   ├── Dữ liệu lưu trên MỘT máy tính
    │   ├── Đơn giản, dễ triển khai
    │   └── VD: CSDL Microsoft Access
    │
    ├── Hệ CSDL phân tán
    │   ├── Dữ liệu phân tán trên NHIỀU máy qua mạng
    │   ├── Mỗi trạm có CSDL cục bộ + ứng dụng cục bộ
    │   ├── Ứng dụng toàn cục: dùng dữ liệu ≥ 2 trạm
    │   └── VD: Facebook, Google, Amazon
    │
    └── So sánh
        ├── Ưu điểm phân tán: mở rộng dễ, tin cậy cao,
        │   tối ưu tốc độ
        └── Nhược điểm phân tán: phức tạp, khó nhất quán,
            bảo mật khó, chi phí cao
Thầy Phạm Thành Danh

Thầy Phạm Thành Danh

(Người kiểm duyệt, ra đề)

Chức vụ: Trưởng ban biên soạn môn Tin Học THPT

Trình độ: Cử nhân Sư phạm Tin học, Chứng chỉ hạng II, Chứng chỉ Tin học, Ngoại ngữ B1

Kinh nghiệm: 8+ năm kinh nghiệm tại Trường THPT Thuận Hóa