.19 Chiến lược thứ hai

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu tối ưu truy vấn trong cơ sở dữ liệu phân tán (Trang 32)

Chiến lược thứ nhất sử dụng sự kiện là các quan hệ NGUOIGUI và TAIKHOAN được phân mảnh theo cùng một cách để thực hiện song song các phép toán chọn và nối. Chiến lược thứ hai tập trung tất cả các dữ liệu tại vị trí lưu kết quả trước khi xử lý câu truy vấn.

Để đánh giá việc tiêu dùng tài nguyên của hai chiến lược này, chúng ta sử dụng một mô hình chi phí đơn giản sau. Chúng ta giả sử rằng thao tác truy xuất một bộ (tuple visit) được ký hiệu là tupvis, là một đơn vị và thao tác truyền một bộ (tuple transfer) tuptrans là 10 đơn vị. Đồng thời chúng ta cũng giả sử là các quan hệ TAIKHOAN và NGUOIGUI tương ứng có 400 và 1000 bộ, và có 20 chi nhánh có tên là trong quan hệ TAIKHOAN.

Cuối cùng chúng ta giả sử rằng các quan hệ TAIKHOAN và NGUOIGUI được nhóm cục bộ tương ứngtheo các thuộc tính TenChiNhanh và SoTaiKhoan. Vì vậy có thể truy xuất trực tiếp đến các bộ củaTAIKHOAN dựa trên giá trị của thuộc tính TenChiNhanh. Như vậy, chi phí của chiến lược các chiến lược sẽ được tính như sau:

Bảng 1.1 Chi phí của chiến lược 1

1. Thao tác tạo TAIKHOAN’ bằng cách chọn trên TAIKHOAN cần: _________________________________________(10+10)*tupvis 20

2. Truyền TAIKHOAN’đến vị trí NGUOIGUI cần: __(10+10)*tuptrans 200

3. Tạo NGUOIGUI’ bằng cách nối TAIKHOAN’ và NGUOIGUI cần:

____________________________________________(10+10)*tupvis*2 40

4. Truyền NGUOIGUI’ đến vị trí nhận kết quả cần___(10+10)*tuptrans 200

Tổng chi phíchiến lược 1 460

Bảng 1.2 Chi phí của chiến lược 2

Kết quả =

1. Truyền NGUOIGUIđến Kết quả cần____________400*tuptrans 4.000 2. Truyền TAIKHOANđến Kết quả cần:___________1000*tuptrans 10.000 3. Tạo TAIKHOAN’ bằng cách chọn trên SoTaiKhoan cần:

____________________________________________1000*tupvis 1.000

4. Nối NGUOIGUI và TAIKHOAN’ cần __________400*20*tupvis 8.000

Tổng chi phíchiến lược 2 23.000

Nhận xét đánh giá:

- Trong chiến lược thứ nhất, phép nối TAIKHOAN’ với NGUOIGUI(bước 3) tận dụng chỉ mục trên SoTaiKhoan của NGUOIGUI. Vì vậy, NGUOIGUI được truy cập chỉ mộtlần cho mỗi bộ của TAIKHOAN’. - Trong chiến lược thứ hai, phương thức truy cập tới các quan hệ

NGUOIGUI và TAIKHOAN dựa trên các thuộc tính TenChiNhanh và SoTaiKhoan bị mất tác dụng do việc truyền dữ liệu. Chiến lược thứ nhất tốt hơn so với chiến lược thứ hai 50 lần - “rất có ý nghĩa”. Khác biệt còn cao hơn nữa nếu chúng ta giả thiết là tốc độ truyền chậm hơn và/ hoặc mức độ phân mảnh cao hơn.Vì vậy chiến lược thứ nhất sẽ được lựa chọn.

CHƯƠNG 2. PHÂN TÍCH VÀ XÂY DỰNG CƠ SỞ DỮ LIỆU PHÂN TÁN

2.1 Phân tích bài toán

Công ty AP là đơn vị chuyên cung cấp các dịch vụ (Service Directory – SD): chăm sóc sức khỏe tại nhà; hỗ trợ người khuyết tật; dịch vụ cho thuê xe du lịch; chăm sóc xe tại nhà, ... công ty có nhiều tổ chức thành viên để thực hiện cung cấp các dịch vụ chuyên biệt (được gọi là Organisation). Mỗi tổ chức khác nhau sẽ cung cấp và quản lý nhiều dịch vụ khác nhau (được gọi là Service), một dịch vụ có thể do nhiểu tổ chức đồng thời cung cấp.

Các tổ chức thành viên này sẽ được đặt tại các vị trí khác nhau trong một mạng máy tính. Tổ chức bao gồm các phòng ban (Department) chịu trách nhiệm riêng, mỗi phòng ban là một hoặc nhiều nhóm (Team) hoạt động hỗ trỡ lẫn nhau. Tại mỗi tổ chức sẽ thực hiện nhiệm vụ cung cấp dịch vụ tới khách hàng trong địa bàn khi có yêu cầu, ghi nhận lại các dịch vụ đã cung cấp để có thống kê khi cần thiết. Mỗi dịch vụ sẽ có một nhóm nhân viên phụ trách (được gọi là Contact), sẽ có một người chịu trách nhiệm chính trong nhóm đóng vai trò là nhóm trưởng (Team leader).

Hệ thống xây dựng sẽ giúp công ty quản lý thông tin về các dịch vụ mà các tổ chức thành viên đang cung cấp. Giúp trụ sở chính AP có thể có những thống kê báo cáo theo hoạch định. Ngoài ra hệ thống còn giúp AP quản lý các thông tin liên quan đến trạm mà các tổ chức được mở, thông tin về trụ sở quản lý và tài liệu hỗ trợ tổ chức.

Căn cứ mô tả bài toán có thể liệt kê các chức năng chính mà hệ thống cung cấp bao gồm:

 Quản lý các tổ chức tại mỗi chi nhánh của công ty.

 Quản lý các dịch vụ và chương trình dịch vụ mà tổ chức cung cấp.  Quản lý thông tin phòng ban, các nhóm và nhân viên mỗi nhóm.  Ghi nhận dịch vụ đã cung cấp.

 Tổng hợp dịch vụ cung cấp theo ngày.

 Thống kê nhân viên phụ trách của các tổ chức.  Tổng hợp dịch vụ đã tất toán.

Các tác nhân (Actor) tương tác với hệ thống và sử dụng hệ thống được mô tả trong Bảng 2.1.

Bảng 2.1Danh sách các Actor của hệ thống

Actor Tên actor Mô tả

A001 SuperUser Đóng vai trò là quản trị viên phía công ty có thể thực hiện các

thống kê báo cáo về tình hình cung cấp dịch vụ từ các tổ chức.

A002 NormalUser Người dùng phía công ty, là người có vai trò quản lý thông tin

tổ chức, dịch vụ.

Bảng 2.2 Danh sách các Use case của hệ thống

UC Name Description

UC001 Logon & Logout Cho phép người dùng đăng nhập vào và đăng xuất

khỏi hệ thống

UC002 Maintain Organisations Duy trì dữ liệu bên trong các tổ chức của hệ thống

UC003 Maintain Services Duy trì dữ liệu về các dịch vụ

UC004 Statistic Contact Thống kê tình hình nhân sự từ các tổ chức

UC005 Statistic Services Thống kê các dịch vụ đã cung cấp, dịch vụ do một

tổ chức/một nhóm đã cung cấp

UC006 Statistic Organisation Thống kê dữ liệu của mỗi tổ chức về nhân sự, dịch

vụ do

2.2Lược đồ quan niệm của cơ sở dữ liệu

Căn cứ đặc tả yêu cầu bài toán, xác định được các kiểu thực thể, thuộc tính và mối liên kết giữa các kiểu thực thể này (xem Hình 2.2), từ các kiểu thực thể này sẽ xác định được lược đồ cơ sở dữ liệu toàn cục của hệ thống.

2.3Lược đồ cơ sở dữ liệu toàn cục

Chuyển đổi từ lược đồ thực thể liên kết sang lược đồ cơ sở dữ liệu quan hệ toàn cục, dưới đây là diễn giải cho các bảng:

 Bảng “BusinessType”: Hình thức kinh doanh của tổ chức có thể là hỗ trợ hay cung cấp hoặc dịch vụ từ thiện, bảng này được thiết kế bao gồm các trường sau:

Bảng 2.3 Bảng loại hình kinh doanh

STT Tên trường Kiểu dữ liệu Mô tả

1 BusinessTypeID int Là trường khóa chính, chứa mã loại

2 BusinessTypeName nvarchar(50) Tên loại hình kinh doanh 3 BusinessTypeDes nvarchar(200) Trường chứa thông tin mô tả

 Bảng “County”: Bảng chứa thông tin về các Quận mà có tổ chức đặt tại đó và được thiết kế bao gồm các trườngsau:

Bảng 2.4 Bảng Quận/Huyện

STT Tên trường Kiểu dữ liệu Ý nghĩa

1 CountyID char(5) Là trường khóa chính chứa mã Quận

2 CountyName nvarchar(50) Tên Quận

3 CountyDes nvarchar(50) Trường chứa thông tin mô tả về Quận

 Bảng “Organisation”: Bảng chứa danh sách các tổ chức của AP trên tất cả các quậnvàđược thiết kế bao gồm các trường sau:

Bảng 2.5 Bảng tổ chức

STT Tên trường Kiểu dữ liệu Mô tả

1 OrgID varchar(15) Là trường khóa chính, chứa mã tổ chức

2 OrgName nvarchar(50) Tên tổ chức

3 OrgDescription nvarchar(200) Mô tả về tổ chức

4 OrgPhoneNumber varchar(50) Số điện thoại

5 Fax varchar(50) Số fax

định tổ chức thuộc Quận nào) 9 AddressDetail nvarchar(200) Chi tiết địa chỉ tổ chức

10 BusinessTypeID int Khóa chính của bảng BusinessType  Bảng “SrvInformation”: Bảng chứa thông tin server của mỗi tổ chức và

được thiết kế bao gồm các trường sau:

Bảng 2.6 Bảng thông tin server của mỗi tổ chức

STT Tên trường Kiểu dữ liệu Mô tả

1 SrvID varchar(15) Là trường khóa chính

2 OrgID varchar(15) Khóa chính của bảng tổ chức

3 IpAddress varchar(50) Địa chỉ Ip hoặc tên miền server của tổ chức

4 UserName varchar(50) Tên đăng nhập

5 PassWord varchar(50) Mật khẩu

 Bảng “Department”: Mổi tổ chức có nhiều phòng ban, bảng này chứa thông tin về phòng ban của các tổ chức và được thiết kế bao gồm các trường sau:

Bảng 2.7 Bảng phòng ban

STT Tên trường Kiểu dữ liệu Mô tả

1 DepartmentID varchar(15) Là trường khóa chính, chứa mã phòng ban

2 DepartmentName nvarchar(50) Tên phòng ban

3 OrgID varchar(15) Khóa chính của bảng tổ chức (nhằm xác định phòng ban thuộc tổ chức nào)

4 DepartmentDes nvarchar(100) Mô tả phòng ban

 Bảng “Team”: Mỗi phòng ban sẽ có các nhóm phụ trách một mảng riêng, bảng này chứa thông tin về các nhóm của các phòng ban

Bảng2.8 Bảng nhóm

STT Tên trường Kiểu dữ liệu Mô tả

1 TeamID varchar(15) Là cột khóa chính, chứa mã nhóm 2 TeamName nvarchar(50) Tên nhóm

3 DepartmentID varchar(15) Khóa chính của bảng phòng ban (nhằm xác định nhóm thuộc phòng ban nào)

4 TeamDes nvarchar(200) Mô tả nhóm

 Bảng “Contact”: Mỗi nhóm sẽ có một số người phụ trách cung cấp dịch vụ nhất định, bảng này chứa thông tin về người phụ trách của các nhóm

STT Tên trường Kiểu dữ liệu Mô tả

1 ContactID varchar(15) Là trường khóa chính, chứa mã người phụ

trách

2 ContactName nvarchar(50) Tên người phụ trách

3 BirthDate datetime Ngày sinh 4 Gender nvarchar(10) Giới tính

5 AddressDetail nvarchar(50) Địa chỉ

6 OfficePhone varchar(50) Điện thoại văn phòng 7 MobilePhone varchar(11) Điện thoại di động

8 HomePhone varchar(50) Điện thoại nhà riêng 9 EmailAddress varchar(50) Địa chỉ hòm thư điện tử

10 ContactTypeID int Khóa chính củabảngloại contact

11 TeamID varchar(15) Khóa chính của bảng nhóm (nhằm xác định

nhân viên nhóm nào) 12 JobTitle nvarchar(100) Mô tả công việc

13 Salary float Mức lương cơ bản

14 Allowance float Phụ cấp

15 IsActive bit Trạng thái (1: Hoạt động; 0: Đang/Đã nghỉ)

 Bảng “ContactType”: Bảng này chứa thông tin về loại contact

Bảng 2.10 Bảng loại contact

STT Tên trường Kiểu dữ liệu Ý nghĩa

1 ContactTypeID int Là trường khóa chính chứa mã loại

contact 2 ContactTypeName nvarchar(50) Tên loại

3 ContactTypeDes nvarchar(200) Mô tả

 Bảng “ServiceType”: Bảng thông tin về các dịch vụ mà tổ chức cung cấp và được thiết kế bao gồm các trường sau:

Bảng 2.11 Bảng loại dịch vụ

STT Tên trường Kiểu dữ liệu Ý nghĩa

1 ServiceTypeID varchar(15) Là cột khóa chính chứa mã loại dịch vụ

2 ServiceTypeName nvarchar(50) Tên loại dịch vụ

3 ServiceTypeDes nvarchar(500) Mô tả loại dịch vụ

 Bảng “UnitPrice”: Bảng chứa thông tin về đơn vị giá cung cấp dịch vụ

2 UnitPriceName nvarchar(50) Đơn vị giá

3 UnitPriceDes nvarchar(50) Mô tả

 Bảng “Services”: Bảng chứa thông tin chi tiết về dịch vụ, một loại dịch vụ có thể có nhiều dịch vụ tương ứng với các thông tin chi tiết khác nhau

Bảng 2.13 Bảng dịch vụ

STT Tên trường Kiểu dữ liệu Ý nghĩa

1 ServiceID varchar(15) Là trường khóa chính chứa mã dịch vụ

2 ServiceName nvarchar(50) Tên dịch vụ

3 ServiceDes nvarchar(200) Mô tả dịch vụ

4 ServiceTypeID varchar(15) Khóa chính của loại dịch vụ (nhằm xác định dịch vụ này thuộc loại dịch vụ nào) 5 TeamID varchar(15) Khóa chính của bảng nhóm (nhằm xác định

nhóm phụ trách cung cấp) 6 ServicePrice float Đơn giá dịch vụ

7 UnitPriceID int Khóa chính của bảng đơn vị giá

8 IsActive int Dịch vụ đã được kích hoạt chưa

9 ProvideAmount int Số lượng có thể cung cấp tại cùng một thời điểm

10 Provided int Số lượng đã cung cấp tại thời điểm hiện tại

 Bảng “ServiceRecord”: Bảng này ghi nhận toàn bộ thông tin về việc cung cấp dịch vụ tại mỗi tổ chức

Bảng 2.14 Bảng ghi nhận dịch vụ đã cung cấp cho khách hàng

STT Tên trường Kiểu dữ liệu Ý nghĩa

1 ServiceRecordID varchar(15) Là trường khóa chính chứa mã ghi nhận dịch vụ

2 ServiceID varchar(15) Khóa chính của bảng dịch vụ (nhằm xác định dịch vụ cung cấp là dịch vụ

nào)

3 ContactID varchar(15) Khóa chính của bảng contact (nhằm xác định cán bộ phụ trách là ai)

4 Responsibility bit Trách nhiệm người phụ trách

5 ServiceRecordDes nvarchar(500) Mô tả ghi nhận dịch vụ

6 ServiceStartExpected datetime Ngày hiệu lực

7 StartDate datetime Ngày bắt đầu

8 EndDate datetime Ngày kết thúc

9 RecordDate date Ngày ghi nhận

10 ServiceExtendable bit Dịch vụ có bị gia hạn hay không

2.4 Thiết kế phân tán cơ sở dữ liệu cho hệ thống

2.4.1 Thực trạng

Yêu cầu thực tế của bài toán cho thấy, công ty AP có nhiều tổ chức khác nhau. Các tổ chức này được đặt tại các Quậnkhác nhau trên địa bàn TP Hà Nội, mỗi tổ chức này chịu trách nhiệm cung cấp một số dịch vụ mà công ty đang kinh doanh.

Vấn đề đặt ra là, dữ liệu về các hoạt động cung cấp dịch vụ của mỗi tổ chức không thể tập trung tại một Quận nào, điều đó sẽ ảnh hưởng rất nhiều đến tốc độ truy vấn và hiệu suất hoạt động của hệ thống vì mỗi lần truy xuất đến CSDL sẽ phụ thuộc vào mạng internet, băng thông mạng hoặc nhiều tổ chức khác nhau sẽ cùng truy xuất một lúc đến máy chủ cơ sở dữ liệu trung tâm làm giảm hiệu suất hoạt động.

Hình 2.4 Mô hình cơ sở dữ liệu tập trung

Ưu điểm: Dữ liệu được bảo mật an toàn, dễ sao lưu và diệt virus. Chi phí các

thiết bị thấp.

Khuyết điểm: Khó đáp ứng được các yêu cầu của ứng dụng vì các cơ sở nằm ở

rất xa nhau. Tốc độ truy xuất chậm.

2.4.2 Giải pháp

Căn cứ các tiêu chí chọn vị trí đặt cơ sở dữ liệu tiện lợi nhất và nhằmgiải quyết vấn đề đặt ra cho hệ thống như đã nêu ở trên, đồng thời tăng tốc độ truy vấn. CSDL sẽ được thiết kế phân tán tại chính các tổ chức hay còn gọi là các trạm. Các trạmhoạt động độc lập, các công việc được tách nhỏ và giao riêng cho từng tổ chức thay vì tập trung xử lý trên máy trung tâm. Tuy dữ liệu được xử lý và lưu trữ tại máy cục bộ nhưng các trạm này được nối mạng với nhau nên chúng có thể trao đổi dữ liệu và dịch vụ.

Các tiêu chí có thể kể đến là:

 Tần xuất sử dụng cơ sở dữ liệu  Số lần liên kết cơ sở dữ liệu

 Các tham chiếu đến cơ sở dữ liệu để cập nhật, đọc hay thay đổi dữ liệu. Tại mỗi tổ chức, sẽ chủ động ghi nhận và quản lý các dịch vụ mà tổ chức mình

Tổ chức 3

Xử lý cho tất cả

các trạm đầu cuối

cung cấp. Tại trụ sở chính công ty AP, dữ liệu hoạt động của mỗi tổ chức sẽ được tổng hợp vào cuối mỗingày dưới sự kiểm soát của lãnh đạo công ty, nhân viên tại trụ sở chính.

Dựa vào những tiêu chí trên và tính chất của hệ thống SD có thể thiết kế hệ thống với bacơ sở dữ liệu như nhau:

Cơ sở dữ liệu thứ nhất: là phía các tổ chức được đặt (phía các Quận), cơ

sở dữ liệu này sẽ giúp các tổ chức kiểm soát hoạt động kinh doanh của mình.

Cơ sở dữ liệu thứ hai quản lý chung (General Managerment - GM):

đặt tại một trạm nhằm quản lý các thông tin về các tổ chức

Cơ sở dữ liệu trung tâm AP: bao gồm lãnh đạo AP và nhân viên tại trụ

sở chính.Có thể đọc tất cả thông tin trong CSDL này và chỉ có quyền sửa đổi với phần báo cáo. Sẽ có bản sao lặp lại thông tin cơ sở dữ liệu thứ nhất.

Hình 2.5 Mô hình CSDL phân tán cho ứng dụng

2.4.3 Phân mảnh cơ sở dữ liệu

Theo yêu cầu của bài toán đặt ra và mô hình dữ liệu quan hệ, tôi sẽ thực hiện phân mảnh ngang để xử lý bài toán, cụ thể như sau:

 Bảng Departmentvới 6 bộ dữ liệu riêng tương ứng 6 trạm như sau: Department1= " " (Department)

Department2= " " (Department) Department3= " " (Department) Department4= " " (Department)

Dựa vào tập nối vị từ giữa các quan hệ trong cơ sở dữ liệu (xem Hình 2.3): Department.DepartmentID = Team. DepartmentID

Team.TeamID = Contact.TeamID

Tương ứng sẽ có 6 mảnh chobảngTeam và Contactnhư sau: Team1 = Team ⋉Department1

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu tối ưu truy vấn trong cơ sở dữ liệu phân tán (Trang 32)

Tải bản đầy đủ (PDF)

(71 trang)