Kiến trúc hệ cơ sở dữ liệu song song kiến trúc hệ thống song song

BÀI 12: CÁC LOẠI KIẾN TRÚC CỦA HỆ CƠ SỞ DỮ LIỆU

1. Các hệ CSDL tập trung

- Với hệ CSDL tập trung, toàn bộ dữ liệu được lưu trữ tại một máy hoặc một dàn máy. Những người dùng từ xa có thể truy cập vào CSDL thông qua các phương tiện truyền thông dữ liệu. Nói chung có ba kiểu kiến trúc tập trung:

a. Hệ CSDL cá nhân

- Hệ CSDL cá nhân là hệ CSDL có một người dùng, người này vừa thiết kế, vừa tạo lập, vừa cập nhật và bảo trì CSDL, đồng thời cũng là người khai thác thông tin, tự lập và hiển thị các báo cáo.

b. Hệ CSDL trung tâm

- Hệ CSDL trung tâm là hệ CSDL với dữ liệu được lưu trữ trên máy tính trung tâm, nhiều người sử dụng từ xa có thể truy cập CSDL này thông qua các thiết bị đầu cuối và các phương tiện truyền thông. Tùy thuộc vào quy mô của tổ chức, máy tính trung tâm này là một dàn máy hay một máy. Các hệ CSDL trung tâm thường rất lớn và có nhiều người dùng, ví dụ các hệ thống đăng kí và bán vé máy bay, các hệ thống thông tin của tổ chức tài chính,…

c. Hệ CSDL khách - chủ

Hình 1: Mô hình khách - chủ

- Trong kiến trúc khách-chủ, các thành phần [của hệ QTCSDL] tương tác với nhau tạo nên hệ thống gồm thành phần yêu cầu tài nguyên và thành phần cấp tài nguyên. Hai thành phần này không nhất thiết phải cài đặt trên cùng một máy tính.

  • Thành phần cấp tài nguyên thường được cài đặt tại một máy chủ trên mạng [cục bộ]
  • Còn thành phần yêu cầu tài nguyên có thể cài đặt tại nhiều máy khác trên mạng [ta gọi là các máy khách].

- Phần mềm CSDL trên máy khách quản lí các giao diện khi thực hiện chương trình.

- Kiến trúc loại này có một số ưu điểm sau:

  • Khả năng truy cập rộng rãi đến các CSDL.
  • Nâng cao khả năng thực hiện: các CPU ở máy chủ và máy khách khác nhau có thể cùng chạy song song, mỗi CPU thực hiện nhiệm vụ của riêng nó.
  • Chi phí cho phần cứng có thể được giảm do chỉ cần máy chủ có cấu hình đủ mạnh để lưu trữ và quản trị CSDL.
  • Chi phí cho truyền thông được giảm do một phần các thao tác được giải quyết trên máy khách, chỉ cần: yêu cầu về truy cập CSDL gửi đến máy chủ và dữ liệu kết quả gửi về cho máy khách.
  • Nâng cao khả năng đảm bảo tính nhất quán của dữ liệu vì các ràng buộc được định nghĩa và kiểm tra chỉ tại máy chủ.
  • Kiến trúc này phù hợp với việc mở rộng các hệ thống.

2. Các hệ CSDL phân tán

a. Khái niệm CSDL phân tán

- CSDL phân tán là những hệ thống cho phép người dùng truy cập không chỉ dữ liệu đặt tại chỗ mà cả những dữ liệu để ở xa.

Hình 2: Mô hình CSDL phân tán

- CSDL phân tán là một tập hợp dữ liệu có liên quan [về logic] được dùng chung và phân tán về mặt vật lí trên một mạng máy tính.

- Một hệ QTCSDL phân tán là một hệ thống phần mềm cho phép quản trị CSDL phân tán và làm cho người sử dụng không nhận thấy sự phân tán về lưu trữ dữ liệu.

- Người dùng truy cập vào CSDL phân tán thông quan chương trình ứng dụng. Các chương trình ứng dụng được chia làm hai loại:

  • Chương trình không yêu cầu dữ liệu từ nơi khác.​
  • Chương trình có yêu cầu dữ liệu từ nơi khác.​

- Có thể chia các hệ CSDL phân tán thành 2 loại chính: thuần nhất và hỗn hợp.

  • Hệ CSDL phân tán thuần nhất: các nút trên mạng đều dùng cùng một hệ QTCSDL.​
  • Hệ CSDL phân tán hỗn hợp: các nút trên mạng có thể dùng các hệ QTCSDL khác nhau.

b. Một số ưu điểm và hạn chế của các hệ CSDL phân tán

- Sự phân tán dữ liệu và các ứng dụng có một số ưu điểm so với các hệ CSDL tập trung:

  • Cấu trúc phân tán dữ liệu thích hợp cho bản chất phân tán của nhiều người dùng.
  • Dữ liệu được chia sẻ trên mạng nhưng vẫn cho phép quản trị dữ liệu địa phương [dữ liệu đặt tại mỗi trạm].
  • Dữ liệu có tính sẵn sàng cao.
  • Dữ liệu có tính tin cậy cao vì khi một nút gặp sự cố, có thể khôi phục được dữ liệu tại đây do bản sao của nó có thể được lưu trữ tại một nút khác nữa.
  • Hiệu năng của hệ thống được nâng cao hơn.
  • Cho phép mở rộng các tổ chức một cách linh hoạt. Có thể thêm nút mới vào mạng máy tính mà không ảnh hưởng đến hoạt động của các nút sẵn có.

- So với các hệ CSDL tập trung, hệ CSDL phân tán có một số hạn chế như sau:

  • Hệ thống phức tạp hơn vì phải làm ẩn đi sự phân tán dữ liệu đối với người dùng.
  • Chi phí cao hơn.
  • Đảm bảo an ninh khó khăn hơn.
  • Đảm bảo tính nhất quán dữ liệu khó hơn.
  • Việc thiết kế CSDL phân tán phức tạp hơn.

Một hệ thống cơ sở dữ liệu song song tìm cách cải thiện hiệu suất thông qua song song các hoạt động khác nhau, chẳng hạn như tải dữ liệu, xây dựng chỉ mục và đánh giá các truy vấn. [1] Mặc dù dữ liệu có thể được lưu trữ theo kiểu phân tán, nhưng việc phân phối chỉ được điều chỉnh bởi các cân nhắc về hiệu suất. Cơ sở dữ liệu song song cải thiện tốc độ xử lý và đầu vào / đầu ra bằng cách sử dụng song song nhiều CPU và đĩa. Tập trung và máy khách – máy chủhệ thống cơ sở dữ liệu không đủ mạnh để xử lý các ứng dụng như vậy. Trong xử lý song song, nhiều hoạt động được thực hiện đồng thời, trái ngược với xử lý nối tiếp, trong đó các bước tính toán được thực hiện tuần tự. Cơ sở dữ liệu song song có thể được chia thành hai nhóm, nhóm kiến ​​trúc đầu tiên là kiến ​​trúc đa xử lý, các lựa chọn thay thế là:

trong điều này các công tắc hoặc trung tâm được sử dụng để kết nối các máy tính khác nhau theo cách rẻ nhất và cách đơn giản nhất chỉ có cấu trúc liên kết đơn giản được sử dụng để kết nối các máy tính khác nhau. thông minh hơn nhiều nếu thiết bị chuyển mạch được triển khai.

This page is based on the copyrighted Wikipedia article "//en.wikipedia.org/wiki/Parallel_database" [Authors]; it is used under the Creative Commons Attribution-ShareAlike 3.0 Unported License. You may redistribute it, verbatim or modified, providing that you comply with the terms of the CC-BY-SA. Cookie-policy To contact us: mail to [email protected]

Kiến trúc hệ CSDL bị ảnh hưởng nhiều bởi hệ thống máy nền. Các sắc thái của kiến trúc máy như mạng, song song và phân tán được phản ánh trong kiến trúc của hệ CSDL.

Các hệ CSDL tập trung chạy trên máy đơn và không trao đổi với các máy khác. Các hệ thống như vậy trải từ các hệ CSDL một người sử dụng chạy trên các máy cá nhân [PC] đến các hệ CSDL hiệu năng cao chạy trên các hệ mainframe. Một hệ máy tính mục đích chung hiện đại gồm một hoặc một vài CPU và một số bộ điều khiển thiết bị được nối với nhau thông qua một bus chung, cho phép truy xuất đến bộ nhớ chia sẻ. CPU có bộ nhớ cache cục bộ lưu các bản sao của một số phần của bộ nhớ chính nhằm tăng tốc độ truy xuất dữ liệu. Mỗi bộ điều khiển thiết bị phụ trách một kiểu thiết bị xác định. Các CPU và các bộ điều khiển thiết bị có thể thực hiện đồng thời, canh tranh truy cập bộ nhớ. Bộ nhớ cache giúp làm giảm sự tranh chấp truy xuất bộ nhớ. Ta phân biệt hai cách các máy tính được sử dụng: Hệ thống một người dùng và hệ thống nhiều người dùng. Hệ CSDL được thiết kế cho hệ thống một người dùng không hỗ trợ điều khiển cạnh tranh, chức năng phục hồi hoặc là thiếu hoặc chỉ là một sự chép dự phòng đơn giản.

Các máy tính cá nhân [ PC ] ngày càng trở nên mạnh hơn, nhanh hơn, và rẻ hơn. Có sự chuyển dịch trong hệ thống tập trung. Các đầu cuối [terminal] được nối với hệ thống tập trung bây giờ được thế chỗ bởi các máy tính cá nhân. Chức năng giao diện người dùng [user interface] thường được quản lý trực tiếp bởi các hệ thống tập trung nay được quản lý bởi các máy tính cá nhân. Như vậy, các hệ thống tập trung ngày nay hoạt động như các hệ thống server nó làm thoả mãn các đòi hỏi của các client. Chức năng CSDL có thể được chia thành hai phần: phần trước [front-end] và phần sau [back-end]. Phần sau quản trị truy xuất cấu trúc, định giá câu vấn tin và tối ưu hoá, điều khiển sự xảy ra đồng thời và phục hồi. Phần trước của hệ CSDL gồm các công cụ như: tạo mẫu [form], các bộ soạn báo cáo [report writer], giao diện đồ hoạ người dùng [graphical user interface]. Giao diện giữa phần trước và phần sau thông qua SQL hoặc một chương trình ứng dụng. Các hệ thống server có thể được phân thành các phạm trù : server giao dịch [transaction server], server dữ liệu [data server].

ClientClientClientClientServer

Network

Figure 1

Hệ thống server giao dịch [transaction-server systems]: còn được gọi là hệ thống server vấn tin [query-server system], cung cấp một giao diện mà các client có thể gửi đến nó các yêu cầu thực hiện một hành động. Để đáp ứng các yêu cầu, hệ thống thực hiện các hành động và gửi lại client các kết quả. Các người sử dụng có thể đặc tả các yêu cầu trong SQL hoặc trong một giao diện trình ứng dụng sử dụng một cơ chế gọi thủ tục xa [ remote-procedure-call ].

  • Các servers giao dịch [ Transaction servers ]: Trong các hệ thống tập trung, phần trước [front-end] và phần sau [back-end] được thực hiện trong một hệ thống. Kiến trúc server giao dịch cho phép chia chức năng giữa phần trước và phần sau. Chức năng phần trước được hỗ trợ trên các máy tính cá nhân [PC]. Các PC hành động như những khách hàng của các hệ thống server nơi lưu trữ một khối lượng lớn dữ liệu và hỗ trợ các chức năng phần sau. Các clients gửi các giao dịch đến các hệ thống server tại đó các giao dịch được thực hiện và các kết quả được gửi trả lại cho các clients, người giữ trách nhiệm hiển thị dữ liệu.

ODBC [ Open DataBase Connectivity ] được phát triển để tạo giao diện giữa các clients và các servers. ODBC là một giao diện trình ứng dụng cho phép các clients sinh ra các lệnh SQL và gửi đến một server tại đó lệnh được thực hiện. Bất kỳ client nào sử dụng giao diện có thể nối với bất kỳ một server nào cung cấp giao diện này.

Các giao diện client-server khác ODBC cũng được sử dụng trong một số hệ thống xử lý giao dịch. Chúng được xác định bởi một giao diện lập trình ứng dụng, sử dụng nó các clients tạo ra các lời gọi thủ tục giao dịch từ xa [ transactional remote procedure calls ] trên server. Các lời gọi này giống như các lời gọi thủ tục gốc đối với người lập trình nhưng tất cả các lời gọi thủ tục từ xa của một client được bao trong một giao dịch ở server cuối. Như vậy nếu giao dịch bỏ dở, server có thể huỷ bỏ hiệu quả của các lời gọi thủ tục xa riêng lẻ.

Hệ thống server dữ liệu [ Data-server systems ]: cho phép các clients trao đổi với các server bằng cách tạo ra các yêu cầu đọc hoặc cập nhật dữ liệu trong các đơn vị như file hoặc trang. Ví dụ, các file-servers cung cấp một giao diện với hệ thống file tại đó các clients có thể tạo, cập nhật, đọc hoặc xoá files. Các servers dữ liệu của cơ sở dữ liệu cung cấp nhiều chức năng hơn; chúng hỗ trợ các đơn vị dữ liệu nhỏ hơn file như trang, bộ [ tuple ] hoặc đối tượng. Chúng cũng cung cấp phương tiện dễ dàng để lấy chỉ mục [indexing] dữ liệu, phương tiện dễ dàng để tạo giao dịch.

  • Các server dữ liệu [Data Servers]: Các hệ thống server dữ liệu được sử dụng trong các mạng cục bộ, trong đó có một nối kết tốc độ cao giữa các máy clients và máy server, các máy clients có sức mạnh xử lý tương thích với máy server và các công việc phải được thực hiện là tăng cường tính toán. Trong một môi trường như vậy, có thể gửi dữ liệu đến các máy client để thực hiện tất cả các xử lý tại máy clients sau đó gửi dữ liệu trở lại đến máy server. Kiến trúc này đòi hỏi các tính năng back-end đầy đủ tại các clients. Kiến trúc server dữ liệu thường được gặp trong các hệ CSDL hướng đối tượng [Object-Oriented DataBase Systems]

Gửi trang đối lại với gửi hạng mục [Page shipping versus item shipping]: Đơn vị liên lạc dữ liệu có thể là các "hạt thô" [Coarse granularity] như một trang, hay hạt min [fine granularity] như một bộ [tuple]/ đối tượng [object]. Ta dùng thuật ngữ hạng mục để chỉ bộ hay đối tượng. Nếu đơn vị liên lạc là một hạng mục sẽ dẫn đến tổng chi phí truyền thông điệp tăng. Đem về hạng mục [fetching item] trước khi nó được yêu cầu, được gọi là đem về trước [Prefetching]. Gửi trang có thể được xem như một dạng của đem về trước nếu một trang chứa nhiều hạng mục.

Chốt [Locking]: Các chốt thường được cấp bởi server trên các hạng mục mà nó gửi cho các máy clients. Khi client giữ một chốt trên một hạng mục dữ liệu, nó có quyền “sử dụng” hạng mục dữ liệu này, hơn nữa trong khoảng thời gian client giữ chốt trên hạng mục dữ liệu không một client nào khác có thể sử dụng hạng mục dữ liệu này. Bất lợi của gửi trang là các máy client có thể được cấp các chốt "hạt quá thô" -- một chốt trên một trang ẩn chứa các chốt trên tất cả các hạng mục trong trang. Các kỹ thuật nhằm tiết giảm chốt [lock deescalation] được đề nghị, trong đó server có thể yêu cầu các clients truyền trả lại các chốt trên các hạng mục cấp phát trước. Nếu máy client không cần hạng mục cấp phát trước, nó có thể truyền trả lại các chốt trên hạng mục cho server và các chốt này có thể được cấp phát cho các clients khác.

Trữ dữ liệu [Data caching]:Dữ liệu được gửi đến một client với danh nghĩa một giao dịch có thể được trữ ở client, ngay cả khi giao dịch đã hoàn tất, nếu không gian lưu trữ có sẵn. Các giao dịch liên tiếp tại cùng một client có thể dùng dữ liệu được trữ. Tuy nhiên, sự kết dính dữ liệu là một vấn đề cần phải được xem xét: một giao dịch tìm thấy dữ liệu được trữ, nó phải chắc chắn rằng dữ liệu này là "mới nhất" vì các dữ liệu này có thể được cập nhật bởi một client khác sau khi chúng được trữ. Như vậy, vẫn phải trao đổi với server để kiểm tra tính hợp lệ của dữ liệu và để giành được một chốt trên dữ liệu.

Trữ chốt [Lock caching]: Các chốt cũng có thể được trữ lại tại máy client. Nếu một hạng mục dữ liệu được tìm thấy trong cache và chốt yêu cầu cho một truy xuất đến hạng mục dữ liệu này cũng tìm thấy trong cache, thì việc truy xuất có thể tiến hành không cần một liên lạc nào với server. Tuy nhiên, server cũng phải lưu lại vết của các chốt được trữ. Nếu một client đòi hỏi một chốt từ server, server phải gọi lại tất cả các chốt xung đột trên cùng hạng mục dữ liệu từ tất cả các máy clients đã trữ các chốt.

Video liên quan

Chủ Đề