1.1.1. Xử lý phân tán
Thuật ngữ xử lý phân tán có thể là thuật ngữ được lạm dụng nhiều nhất trong khoa học máy tính trong những năm vừa qua. Nó thường được dùng để chỉ những hệ thống gồm nhiều loại thiết bị khác nhau chẳng hạn như: hệ đa bộ vi xử lý, xử lý dữ liệu phân tán, mạng máy tính
Có hai khái niệm xử lý phân tán liên quan với nhau.
- Khái niệm liên quan đến việc tính toán trên Client/Server. Trong đó ứng dụng được chia ra thành hai phần, phần của Server và phần của Client và được vận hành ở hai nơi. Trong tính toán phân tán này cho phép truy nhập trực tiếp dữ liệu và xử lý dữ liệu trên Server và Client.
- Khái niệm thứ hai là việc thực hiện các tác vụ xử lý phức tạp trên nhiều hệ thống. Không gian nhớ và bộ xử lý của nhiều máy cùng hoạt động chia nhau tác vụ xử lý. Máy trung tâm sẽ giám sát và quản lý các tiến trình này. Có trường hợp thông qua Internet, hàng nghìn máy cùng xử lý một tác vụ.
Có thể định nghĩa hệ xử lý phân tán như sau: Hệ xử lý phân tán là một tập hợp các phần tử xử lý tự trị (không nhất thiết đồng nhất) được kết nối với nhau bởi một mạng máy tính và cùng phối hợp thực hiện những công việc gán cho chúng. Phần tử xử lý ở đây để chỉ một thiết bị tính toán có khả năng thực hiện chương trình trên nó.
1.1.2. Hệ thống phân tán
Hệ thống phân tán là tập hợp các máy tính độc lập kết nối với nhau thành một mạng máy tính được cài đặt các hệ cơ sở dữ liệu và các phần mềm hệ thống phân tán tạo khả năng cho nhiều người sử dụng truy nhập chia sẻ nguồn thông tin chung. Các máy tính trong hệ thống phân tán có kết nối phần cứng lỏng lẻo, có nghĩa là không chia sẻ bộ nhớ, chỉ có một hệ điều hành trong toàn bộ hệ thống phân tán
Các mạng máy tính được xây dựng dựa trên kỹ thuật Web. Ví dụ như mạng Internet, mạng Intranet… là các mạng phân tán.
Có thể bạn quan tâm!
- Cơ sơ dữ liệu phân tán - 1
- Các Đặc Điểm Chính Của Cơ Sở Dữ Liệu Phân Tán
- Một Kiến Trúc Tham Chiếu Dùng Cho Các Csdl Phân Tán
- Các Kiểu Kiến Trúc Tham Chiếu Hệ Quản Trị Csdl Phân Tán
Xem toàn bộ 312 trang tài liệu này.
1.1.3. Hệ cơ sở dữ liệu phân tán
Công nghệ các hệ CSDL phát triển từ mô hình dữ liệu, trong đó mỗi ứng dụng định nghĩa một hay nhiều tệp dữ liệu riêng của nó được mô tả như hình 1.1, sang mô hình định nghĩa và quản lý dữ liệu tập trung. Điều đó dẫn đến khái niệm độc lập dữ liệu, nghĩa là tính bất biến của các hệ ứng dụng đối với sự thay đổi cấu trúc lưu trữ và các chiến lược truy nhập dữ liệu.
Hình 1.1. Xử lý dữ liệu truyền thống
Trong ngữ cảnh hệ xử lý phân tán thì hệ cơ sở dữ liệu phân tán có thể được xem như những công cụ làm cho quá trình xử lý dữ liệu phân tán dễ dàng hơn và hiệu quả hơn. Khái niệm hệ CSDL phân tán bao gồm cả khái niệm CSDL phân tán và hệ quản trị CSDL phân tán.
Hình 1.2. Xử lý cơ sở dữ liệu
Một CSDL phân tán là sự tập hợp dữ liệu mà về mặt logic chúng thuộc cùng một hệ thống nhưng được trải rộng ở nhiều nơi (site) của một mạng máy tính.
Khái niệm này nhấn mạnh hai khía cạnh quan trọng như nhau của một CSDL phân tán là:
- Sự phân tán (distribution): nghĩa là dữ liệu không tập trung ở cùng một nơi (hiểu theo nghĩa bộ xử lý - processor), điều này giúp ta có thể phân biệt một CSDL phân tán với một CSDL tập trung, đơn lẻ.
- Sự tương quan logic (logical correlation): nghĩa là dữ liệu có những mối liên hệ mật thiết với nhau, điều này giúp ta có thể phân biệt một CSDL phân tán với một tập hợp các CSDL cục bộ (local database) hoặc các tập tin tập trung ở những nơi khác nhau của một mạng máy tính.
Một vấn đề nảy sinh từ khái niệm trên là sự phân tán và sự tương quan logic được đưa ra một cách quá mơ hồ để có thể luôn phân biệt được những trường hợp thực sự là CSDL phân tán và những trường hợp không phải là những CSDL phân tán.
Để có một khái niệm rò ràng hơn, ta xét một số ví dụ sau:
Ví dụ 1.1: Xét một ngân hàng có ba chi nhánh ở các vị trí địa lý khác nhau được mô tả trong hình 1.3.
Hình 1.3. Một cơ sở dữ liệu phân tán trên một mạng phân tán địa lý
Tại mỗi chi nhánh có máy tính kiểm soát các máy rút tiền của chi nhánh, và một CSDL tài khoản (account database) của chi nhánh. Mỗi máy tính với CSDL tài khoản cục bộ ở một chi nhánh tạo thành một nơi (site) của CSDL phân tán; các máy tính được nối với nhau thông qua mạng máy tính truyền thông (communication network). Khi hoạt động bình thường, các ứng dụng được chạy tại các thiết bị đầu cuối của chi nhánh chỉ cần truy nhập CSDL ở chi nhánh đó. Những ứng dụng này được thực hiện hoàn tất bởi máy tính của chi nhánh, nơi mà chúng được chạy, và được gọi là các ứng dụng cục bộ (local application). Một ví dụ của ứng dụng cục bộ là ứng dụng “ghi nợ” hoặc “ghi có” trên một tài khoản được lưu trữ trong cùng một chi nhánh mà tại đây chạy ứng dụng này.
Nếu chúng ta thử áp dụng định nghĩa của CSDL phân tán cho trường hợp này, thì chúng ta nhận thấy rằng khó nói là có tính tương quan logic hay không.
Có phải các chi nhánh chỉ chứa thông tin về các tài khoản của cùng một ngân hàng là đủ?
Có nên xem điều này là một ví dụ của một CSDL phân tán hoặc một tập hợp CSDL cục bộ?
Để trả lời cho câu hỏi này, chúng ta tập chung vào cái gì làm cho một tập hợp các CSDL cục bộ khác với một CSDL phân tán có cùng dữ liệu. Về quan điểm công nghệ (technological viewpoint), có một khía cạnh thực sự quan trọng là sự tồn tại của một
vài ứng dụng truy xuất dữ liệu tại hai chi nhánh trở lên. Các ứng dụng này được gọi là ứng dụng toàn cục (global application) hoặc ứng dụng phân tán (distributed application). Sự tồn tại của các ứng dụng toàn cục là đặc điểm phân biệt của các CSDL phân tán so với một tập hợp các CSDL cục bộ.
Một ứng dụng toàn cục tiêu biểu là một sự chuyển quĩ của một tài khoản trong một chi nhánh này vào tài khoản trong một chi nhánh khác. Ứng dụng này cập nhật dữ liệu tại hai chi nhánh khác nhau. Lưu ý ứng dụng này thực hiện hai cập nhật cục bộ tại hai chi nhánh riêng biệt (ghi nợ và ghi có), bởi vì cũng cần phải đảm bảo cả hai cập nhật này được thực hiện hoặc đều không được thực hiện. Do đó, việc đảm bảo yêu cầu này của các ứng dụng toàn cục là một công việc khó khăn.
Trong ví dụ 1.1, các máy tính được đặt tại các vị trí địa lý khác nhau. Tuy nhiên, các CSDL phân tán cũng có thể được xây dựng trên các mạng cục bộ.
Ví dụ 1.2: Xét cùng một ngân hàng của ví dụ 1.1, với cùng các ứng dụng. Tuy nhiên hệ thống có một cấu hình được chỉ ra trong hình 1.4.
Hình 1.4. Một cơ sở dữ liệu phân tán trên một mạng cục bộ
Cùng các bộ xử lý các CSDL của chúng đã được di chuyển từ các chi nhánh về một toà nhà chung và bây giờ được kết nối với nhau bởi một mạng cục bộ băng thông cao (high-bandwidth local network).
Các máy rút tiền của các chi nhánh được kết nối với các máy tính tương ứng bởi các tuyến điện thoại. Mỗi bộ xử lý và CSDL của nó tạo thành một nơi của mạng máy tính cục bộ.
Chúng ta thấy rằng cấu trúc vật lý của các kết nối đã được thay đổi so với ví dụ 1.1; tuy nhiên các khía cạnh đặc trưng của kiến trúc vẫn không thay đổi. Đặc biệt cùng các máy tính thực hiện cùng các ứng dụng truy xuất trên cùng các CSDL. Một ứng dụng là cục bộ trong ví dụ 1.1 thì vẫn là cục bộ, miễn là tính cục bộ (locality) không được định
nghĩa đối với sự phân tán địa lý của các máy tính thực hiện ứng dụng này, nhưng chỉ đối với một máy tính và CSDL riêng của nó.
Nếu có các ứng dụng toàn cục thì ví dụ này được xem là CSDL phân tán, vì hầu hết các điểm đặc trưng của ví dụ trước vẫn còn hợp lệ. Tuy nhiên, CSDL phân tán được thực hiện trên một mạng cục bộ (LAN) thay vì trên một mạng diện rộng (WAN), với độ tin cậy (reliability) và thông lượng (throughput) của nó cao hơn, trong một số trường hợp sẽ thay đổi các giải pháp cho trước đối với một số vấn đề. Chúng ta xét một ví dụ của một hệ thống mà chúng ta không xem là một CSDL phân tán.
Ví dụ 1.3: Xét cùng một ngân hàng của ví dụ 1.1, nhưng với cấu hình của hệ thống được chỉ ra trong hình 1.5.
Hình 1.5. Một hệ thống đa xử lý (multiprossor system)
Dữ liệu của các chi nhánh khác nhau được phân tán trên ba máy tính phía sau (backend conputer), mà chúng thực hiện các chức năng quản trị cơ sở dữ liệu. Chương trình ứng dụng được thực hiện bởi một máy tính khác, mà máy tính này yêu cầu các dịch vụ truy xuất CSDL tại các máy tính phía sau khi cần thiết.
Lý do mà hệ thống máy tính này không được xem là một CSDL phân tán, bởi vì mặc dù dữ liệu được phân tán về mặt vật lý trên các bộ xử lý khác nhau, nhưng sự phân tán của chúng là không thích hợp trên quan điểm ứng dụng. Điều mà chúng ta không có ở đây chính là sự tồn tại của các ứng dụng cục bộ, bởi vì không có một máy tính nào mà chính nó có khả năng thực hiện một ứng dụng.
Từ các ví dụ trên, ta có một phát biểu về cơ sở dữ liệu phân tán như sau:
Một CSDL phân tán, là sự tập hợp dữ liệu được phân tán trên các máy tính khác nhau của một mạng máy tính. Mỗi nơi của mạng máy tính có khả năng xử lý tự trị (autonomous processing capability) và có thể thực hiện các ứng dụng cục bộ. Mỗi nơi cũng tham gia vào sự thực hiện của ít nhất một ứng dụng toàn cục, mà nơi này yêu cầu truy xuất dữ liệu ở nhiều nơi bằng cách dùng hệ thống truyền thông con (communication subsystem).
Định nghĩa này nhấn mạnh ba khía cạnh quan trọng của một CSDL phân tán, đó là:
- Sự phân tán dữ liệu: Dữ liệu phải được phân tán ở nhiều nơi.
- Ứng dụng cục bộ: Mỗi nơi phải thực hiện ít nhất một ứng dụng cục bộ.
- Ứng dụng toàn cục: Mỗi nơi phải tham gia vào sự thực hiện của ít nhất một ứng dụng toàn cục .
Ví dụ 1.5: Xét hệ thống quản lý dự án trong một công ty phát triển phần mềm. Để quản lý, công ty có một CSDL với lược đồ toàn cục như sau:
- NV(MANV, TENNV, CV): Quan hệ này chứa thông tin về nhân viên của công ty gồm: mã nhân viên, tên nhân viên, chức vụ của nhân viên.
- TL(CV, LUONG): Quan hệ này chứa thông tin về lương trả theo chức vụ của nhân viên.
- DA(MADA, TENDA, NS, VT): Quan hệ này chứa thông tin về các dự án mà công ty đang thực hiện gồm: mã dự án, tên dự án, ngân sách dành cho dự án, nơi thực hiện dự án.
- HS(MANV, MADA, NHIEMVU, THOIGIAN): Quan hệ này chứa thông tin về việc phân công các nhân viên thực hiện các dự án gồm mã nhân viên, mã dự án, nhiệm vụ trong dự án, thời gian thực hiện trong dự án.
Giả sử công ty có văn phòng ở Nam Định, Hà Nội, Đà Nẵng, Cần Thơ; mỗi nơi đều thực hiện một số dự án.
Giả sử hệ thống có các ứng dụng sau:
- Ứng dụng 1: Truy xuất DA theo vị trí là “Hà Nội”
- Ứng dụng 2: Truy xuất các bộ của DA có ngân sách lớn hơn 20000
- Ứng dụng 3: Truy xuất các bộ của DA có ngân sách nhỏ hơn hoặc bằng 20000.
Do tính phân tán của các văn phòng nên tại mỗi văn phòng có lưu trữ dữ liệu tác nghiệp của chính văn phòng đó, các nhân viên tại và các dự án mà văn phòng đó đang quản lý.
Với các yêu cầu như trên, sử dụng thiết kế và cài đặt CSDL phân tán là hợp lý.
Trong đó 3 khía cạnh quan trọng của một CSDL phân tán:
- Sự phân tán dữ liệu: Dữ liệu được phân tán tại 4 nơi: Nam Định, Hà Nội, Đà Nẵng, Cần Thơ
- Ứng dụng cục bộ: Với 3 ứng dụng trên thì mỗi nơi đều phải thực hiện ít nhất một ứng dụng cục bộ.
- Ứng dụng toàn cục: Với 3 ứng dụng trên thì thì mỗi nơi đều tham gia vào sự thực hiện của ít nhất một ứng dụng toàn cục .
Hình 1.6. Sơ đồ lưu trữ phân tán
1.2. Mục đích của việc sử dụng cơ sở dữ liệu phân tán
Trong những năm gần đây, công nghệ CSDL phân tán đã trở thành một lĩnh vực quan trọng của công nghệ thông tin, tính cần thiết của nó ngày càng nâng cao. Có rất nhiều nguyên nhân thúc đẩy sự phát triển của CSDL phân tán. Các động cơ thúc đẩy chính là:
- Sự phát triển tổ chức (organizational) kinh tế (economic)
- Kết nối lẫn nhau (interconnection) của các CSDL hiện tại
- Sự lớn mạnh gia tăng (incremental growth)
- Giảm chi phí truyền thông (communication overhead)
- Hiệu quả công việc (performance consideration)
- Độ tin cậy (reliability) và tính sẵn sàng (availability)
1.2.1. Sự phát triển của các cơ cấu tổ chức kinh tế
Cùng với sự phát triển của xã hội, nhiều cơ quan, xí nghiệp có cơ cấu tổ chức không được tập trung hoá, hoạt động phân tán trên phạm vi rộng. Vì vậy thiết kế và cài đặt CSDL phân tán là phù hợp, đáp ứng mọi nhu cầu truy xuất và khai thác dữ liệu. Với sự phát triển hiện nay của công nghệ máy tính, các động cơ giảm bớt chi phí để có
các trung tâm máy tính tập trung lớn trở lên có vấn đề. Tuy nhiên, các động cơ thúc đẩy về tổ chức và kinh tế có thể là lý do quan trọng nhất để phát để phát triển CSDL phân tán.
1.2.2. Sự kết nối lẫn nhau của CSDL hiện tại
Các CSDL phân tán là giải pháp tự nhiên khi có nhiều CSDL đã tồn tại trong một tổ chức và cần phải thực hiện nhiều ứng dụng toàn cục hơn. Trong trường hợp này, CSDL được tạo từ dưới lên từ các CSDL cục bộ đã được tạo từ trước. Tiến trình này đòi hỏi cấu trúc lại các cơ sở dữ liệu cục bộ ở một mức nhất định. Tuy nhiên, việc tái cấu trúc này sẽ cần sự nỗ lực ít hơn so với việc tái tạo mới hoàn toàn một CSDL tập trung.
1.2.3. Sự lớn mạnh gia tăng
Khi một tổ chức lớn mạnh lên do có thêm các đơn vị tổ chức tương đối độc lập (các chi nhánh mới, các kho mới,…), thì cách tiếp cận CSDL phân tán hỗ trợ sự lớn mạnh tăng dần với một mức độ ảnh hưởng tối thiểu đến các đơn vị đã tồn tại. Với cách tiếp cận tập trung, quy mô ban đầu của hệ thống cần phải thận trọng để mở rộng trong tương lai, mà điều này cũng khó nhìn thấy trước và tốn kém nhiều cho việc thực hiện, hoặc sự lớn mạnh sẽ ảnh hưởng nhiều đến các ứng dụng mới và các ứng dụng đang tồn tại.
1.2.4. Giảm chi phí truyền thông
Trong thực tế, sử dụng một số ứng dụng mang tính cục bộ sẽ làm giảm chi phí truyền thông. Trong một CSDL phân tán về mặt địa lý, chẳng hạn như CSDL của ví dụ 1.1, rò ràng nhiều ứng dụng cục bộ làm giảm đi chi phí truyền thông so với CSDL tập trung. Do đó, việc tối ưu hóa hoá tính cục bộ của các ứng dụng là một trong các mục tiêu chính trong thiết kế CSDL phân tán.
1.2.5. Hiệu quả công việc
Vì có nhiều bộ xử lý độc lập, do đó hiệu xuất được nâng cao thông qua một cơ chế song song hóa mức độ cao. Nghiên cứu này có thể áp dụng cho bất kỳ hệ thống đa xử lý (multiprocesor system), chứ không chỉ áp dụng cho các CSDL phân tán. Chẳng hạn, cấu hình của ví dụ 1.3 cũng cho phép song song hoá, nhưng nó không được xem là một CSDL phân tán.
Tuy nhiên, các CSDL phân tán có ưu điểm trong trường hợp sự phân rã dữ liệu phản ánh các tiêu chí phụ thuộc ứng dụng, mà các tiêu chí này làm cực đại hoá tính cục bộ của ứng dụng . Bằng cách này, các bộ xử lý sẽ ít liên lạc với nhau hơn. Tải được dùng chung giữa các bộ xử lý khác nhau, và các hiện tượng thắt cổ chai nguy kịch, chẳng hạn như mạng truyền thông hoặc các dịch vụ chung của toàn bộ hệ thống, sẽ được tránh khỏi. Hiệu quả này là kết quả của khả năng xử lý tự trị đối với các ứng dụng cục bộ mà đã được nói đến trong định nghĩa của CSDL phân tán.