logo xDuLieu.com

Trang trướcHệ cơ sở dữ liệuTrang sau

Cấu trúc và hoạt động của hệ cơ sở dữ liệu

 

Cấu trúc của một hệ cơ sở dữ liệu thông thường được thể hiện trên Hình 1.

Người dùngGiao diện Hệ quản trịCơ sở dữ liệu Chương trìnhứng dụng Cơ sởdữ liệu

Hình 1 Sơ đồ cấu trúc của hệ cơ sở dữ liệu

Thông qua giao diện được các chương trình ứng dụng cung cấp, người dùng chuyển các yêu cầu của mình cho cơ sở dữ liệu. Chương trình ứng dụng xử lý các yêu cầu này, chuyển thành những lệnh theo ngôn ngữ mà hệ quản trị cơ sở dữ liệu (HQTCSDL) hiểu được. HQTCSDL sẽ xem xét, kiểm tra các yêu cầu ấy xem có vi phạm các ràng buộc hay không. Nếu không có vi phạm nào thì HQTCSDL sẽ thâm nhập vào CSDL thực hiện các yêu cầu, thu nhận các kết quả và chuyển trả lại cho chương trình ứng dụng. Chương trình ứng dụng sẽ lấy các kết quả ấy, xử lý tiếp và thể hiện trên giao diện hay các phương tiện khác (như máy in chẳng hạn) theo đúng yêu cầu của người dùng.

Nếu HQTCSDL không thể thực hiện yêu cầu, nó sẽ chuyển một mã lỗi về chương trình ứng dụng. Chương trình ứng dụng sẽ xuất một thông báo tương ứng với mã lỗi ấy ra giao diện.

Lấy thí dụ ta muốn so sánh doanh số của 3 sản phẩm trong suốt 52 tuần của năm 2016 và sự so sánh này được thể hiện dưới dạng một đồ thị dạng đường gẫy, xuất kết quả này ra màn hình và ra máy in. Yêu cầu này sẽ nhập vào giao diện do chương trình ứng dụng cung cấp. Chương trình ứng dụng sẽ yêu cầu HQTCSDL cung cấp 156 số liệu tương ứng với doanh số trong 52 tuần của 3 sản phẩm ấy. HQTCSDL sẽ kiểm tra xem có thể thực hiện được yêu cầu này không. Nếu được, HQTCSDL sẽ lấy 156 số liệu này và chuyển về cho chương trình ứng dụng. Chương trình ứng dụng sẽ lấy kết quả này để vẽ một đồ thị và hiện lên giao diện, đồng thời kích hoạt máy in, in đồ thị này ra.

Ghi chú

  • Trong trường hợp cơ sở dữ liệu nhỏ, không có những yêu cầu quá phức tạp, người ta có thể kết hợp chương trình ứng dụng và HQTCSDL thành một cụm đơn nhất. MS Access là một thí dụ cho trường hợp này.
  • Khái niệm “người dùng” ở đây được sử dụng theo nghĩa rộng, là tất cả những ai có tương tác với cơ sở dữ liệu: những người cần tra cứu thông tin, những người làm công tác quản trị CSDL, những người bảo trì cơ sở dữ liệu này, ... “Người dùng” cũng có thể là những chương trình hay phần mềm có tương tác với CSDL.
  • Người ta thường quy ước gọi hệ cơ sở dữ liệu (database system) là sự kết hợp của cơ sở dữ liệu và HQTCSDL:

    Hệ cơ sở dữ liệu = Cơ sở dữ liệu + Hệ quản trị cơ sở dữ liệu


Hệ quản trị cơ sở dữ liệu

 

Qua phần trình bày trên, ta thấy HQTCSDL là một tập hợp các chương trình nhằm hỗ trợ cho người dùng và chương trình ứng dụng để tạo ra, bảo trì và sử dụng CSDL. Các quá trình chính mà HQTCSDL đảm nhiệm là :

  • Định nghĩa (defining) dữ liệu : bao gồm việc xác định kiểu, cấu trúc, cũng như ràng buộc cho các loại dữ liệu trong CSDL, mô tả một số tính chất của những dữ liệu ấy. Những thông tin này được gọi là siêu dữ liệu (metadata) và chứa trong từ điển (dictionary hay catalog) của CSDL.
  • Xây dựng (constructing) cơ sở dữ liệu : là quá trình đưa các dữ liệu vào những phương tiện chứa như ổ cứng. Phương tiện chứa này cũng chịu sự quản lý của HQTCSDL.
  • Thao tác (manipulating) trên cơ sở dữ liệu : bao gồm các chức năng như truy vấn để tìm kiếm thông tin, cập nhật để phản ảnh những biến đổi trong thế giới thực, tạo ra những loại báo cáo.
  • Chia sẻ (sharing) : giải quyết các tranh chấp (concurrency) để nhiều người dùng, nhiều chương trình ứng dụng có thể đồng thời thao tác trên cơ sở dữ liệu.
  • Bảo vệ (protecting) : giữ cho CSDL không bị ảnh hưởng khi có các hỏng hóc về phần cứng hay phần mềm máy tính, cũng như khi bị tấn công bởi các chương trình có ý đồ xấu.

Các đặc điểm của hệ cơ sở dữ liệu

 

Hệ cơ sở dữ liệu có một số tính chất đáng lưu ý như sau:

  • Có cấu trúc nhất quán và rõ ràng : Cấu trúc dữ liệu là như nhau cho tất cả các phần tử cùng loại, về hình thức tổ chức, về xắp xếp trong phương tiện lưu trữ. Thí dụ tất cả các sinh viên đều được đặc trưng bằng một số thuộc tính giống nhau, đều được bố trí trong một số ô nhớ giống nhau, đều có cách xử lý giống nhau khi tạo mới, hiệu chỉnh, truy vấn, ... Ta có thể tìm hiểu cấu trúc này trong từ điển CSDL (siêu dữ liệu).
  • Có sự độc lập giữa chương trình và dữ liệu. Khi một trong hai thành phần này có sự thay đổi thì phần còn lại hầu như không bị ảnh hưởng. Thí dụ nếu ta thêm một số thuộc tính mới cho sinh viên, thì ta không cần phải viết lại các chương trình.
  • Có thể tạo ra nhiều khung hiển thị (view) khác nhau tùy thuộc vào vai trò và yêu cầu của người dùng. Với một sinh viên thì hiện ra một biểu mẫu để nhập các thông tin và yêu cầu, sau đó xuất ra bảng kết quả của các môn học của sinh viên ấy. Nhưng với một quản thủ thư viện thì hiện ra một biểu mẫu để nhập tên sinh viên sau đó xuất ra bảng cho biết các sách sinh viên đã mượn từ đầu năm học cũng như cho biết những tựa sách nào đã trả và những tựa sách nào chưa trả.
  • Có thể phục vụ cho nhiều người dùng khác nhau, nhiều chương trình ứng dụng khác nhau trong "cùng một lúc". Trong HQTCSDL có những chương trình để quản lý những sự tranh chấp (concurrency) giữa các người dùng, giữa các chương trình ứng dụng. Điều này đặc biệt quan trọng với các ứng dụng thương mại hoạt động trực tuyến. Hai hành khách cùng đặt vé máy bay “một lúc” trên cùng một chuyến bay có thể có hai sơ đồ chọn ghế khác nhau.

Khi nào không cần dùng cơ sở dữ liệu

 

Mặc dù hệ cơ sở dữ liệu có rất nhiều ưu điểm so với những phương pháp quản lý dữ liệu khác, tuy nhiên nó cũng đặt ra một số thử thách sau:

  • Việc quản trị, vận hành, bảo trì HQTCSDL cần có những con người có trình độ nhất định, được đào tạo, có kiến thức, kinh nghiệm để CSDL có thể vận hành trôi chảy, không hỏng hóc trong một khoảng thời gian dài.
  • Cần có chi phí đáng kể để đầu tư ban đầu cũng như để vận hành: trang bị phần cứng, phần mềm, huấn luyện nhân viên, thuê mướn chuyên viên.

Do đó trong các trường hợp sau ta cần cân nhắc thêm những phương án khác trong việc tổ chức và quản lý dữ liệu:

  • Khi dữ liệu đơn giản, thay đổi không nhiều theo thời gian, yêu cầu về mặt sử dụng không quá khắt khe.
  • Chỉ có một số ít người sử dụng cơ sở dữ liệu. Việc nhiều người đồng thời hoạt động trên cơ sở dữ liệu là không có hay có rất ít.

Ngoài ra, một số loại dữ liệu có những điểm đặc thù riêng, không thể quản lý theo cách thông thường (nghĩa là dựa trên cơ sở của ngôn ngữ SQL). Khi ấy chúng được quản lý theo cách riêng và các chương trình quản lý khi ấy có thể tích hợp với những chương trình khác để việc sử dụng được thuận tiện. Thí dụ các bản vẽ trong kỹ thuật được thực hiện nhờ máy tính (computer-aided design hay CAD), hoặc các thông tin về địa lý (GIS).


Kiến trúc của hệ cơ sở dữ liệu

 

Nếu xét về mặt chức năng, ta thấy hệ cơ sở dữ liệu đảm nhiệm 3 chức năng chính:

  • tồn trữ (storage) : lưu giữ cơ sở dữ liệu, siêu dữ liệu và thực hiện các chức năng của HQTCSDL.
  • xử lý (processing) : bao gồm những hoạt động như kiểm tra dữ liệu nhập, chuẩn bị các yêu cầu của người dùng như truy vấn, điều chỉnh dữ liệu, thực hiện một số các thao tác để làm việc với cơ sở dữ liệu, ...
  • thể hiện (presentation) : quản lý các quá trình xuất nhập dữ liệu: tạo các giao diện để người dùng nhập yêu cầu hay xuất kết quả, xuất kết quả ra máy in, . . .

Tùy theo cách sắp xếp các chức năng này vào các phần cứng và phần mềm mà ta có những loại kiến trúc sau: một lớp, hai lớp, ba lớp hay nhiều hơn ba lớp.

Kiến trúc một lớp

Trong kiến trúc một lớp (single tier), toàn bộ cơ sở dữ liệu, HQTCSDL, chương trình ứng dụng được đặt trong một máy, thường là trong một ổ đĩa cứng. Loại năy thường dùng để đáp ứng cho một người sử dụng, đáp ứng cho những như cầu sử dụng đơn giản, có lượng dữ liệu không lớn, nên còn được gọi là cơ sở dữ liệu cá nhân (personal database).

Kiến trúc một lớp có ưu điểm là tương đối đơn giản, không phức tạp, dễ xây dựng, dễ sử dụng, triển khai nhanh, có thể sao lưu dễ dàng, có thể chuyển từ máy này sang máy khác nhanh chóng. Tuy nhiên, khả năng chia sẻ dữ liệu kém, chức năng có phần nào hạn chế. Vì thế không đáp ứng được cho các tổ chức có quy mô trung bình hay lớn.

Kiến trúc hai lớp

Kiến trúc hai lớp (two tier) được tổ chức theo dạng khách/chủ (client/server). Phần cứng gồm hai nhóm máy được nối kết với nhau. Nhóm thứ nhất, thường chỉ gồm một máy, được gọi là máy chủ (server) chứa cơ sở dữ liệu và hệ quản trị cơ sở dữ liệu, đảm nhiệm chức năng tồn trữ. Nhóm thứ hai được gọi là máy khách (client) đảm nhiệm chức năng thể hiện, dành cho những người thường xuyên làm việc với cơ sở dữ liệu.

Hình 2 Cấu trúc hai lớp

Tùy trường hợp cụ thể mà chức năng xử lý được sắp xếp theo một số cách khác nhau, thí dụ như: (Hình 3)

  • trong trường hợp "fat client", chức năng xử lý được đặt ở máy khách (Hình 3a),
  • trong trường hợp "thin client", chức năng xử lý được đặt ở máy chủ (Hình 3b),
  • trong trường hợp trung gian, chức năng xử lý được chia làm hai phần, một phần đặt ở máy chú, một phần đặt ở máy khách (Hình 3c).
MÁYKHÁCH MÁYCHỦ (3a)(3b)(3c) TỒN TRỮTỒN TRỮTỒN TRỮ THỂ HIỆNTHỂ HIỆNTHỂ HIỆN XỬ LÝXỬ LÝXỬ LÝXỬ LÝ

Hình 3 Sự phân bố các chức năng trong kiến trúc 2 lớp

Kiến trúc 3 lớp và hơn 3 lớp

Trong kiến trúc 3 lớp, một lớp dành cho máy khách thực hiện chức năng thể hiện, một lớp dành cho máy chủ thực hiện chức năng tồn trữ (Database Server), một lớp dành cho máy chủ thứ hai thực hiện chức năng xử lý (Application Server).

Các kiến trúc có nhiều hơn 3 lớp là sự mở rộng hơn nữa của kiến trúc 3 lớp. Ta vẫn có một lớp dành cho máy khách thực hiện chức năng thể hiện, một lớp dành cho máy chủ thực hiện chức năng tồn trữ, nhưng chức năng xử lý được thực hiện bởi nhiều lớp, thí dụ ta có một lớp dành cho web (Web Server).



Trang trướcVề đầu chươngTrang sau


Trang web này được cập nhật lần cuối ngày 25/11/2018