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)
Mục lục [Ẩn]

Chọn đến phần học sinh cần nhanh chóng thông qua mục lục bằng cách click đến phần đó

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.

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