HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------
TRẦN VĂN HIỂN
LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)
HÀ NỘI - 2016
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------
TRẦN VĂN HIỂN
NGHIÊN CỨU ÁP DỤNG MÔ HÌNH ĐỒNG BỘ
TRONG CƠ SỞ DỮ LIỆU PHÂN TÁN
Chuyên ngành : KHOA HỌC MÁY TÍNH
Mã số:
60.48.01.01
LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS. HÀ HẢI NAM
HÀ NỘI - 2016
Distributed DataBase
Cơ sở dữ liệu phân tán
TCP
Transmission Control Protocol
Giao thức mạng
QGIS
Quantum Geographic
Phần mềm hệ thống
Information System
thông tin địa lý
TCLN
Tổng cục Lâm nghiệp
FRMS Web
Forest Resource Monitoring
Hệ thống giám sát tài
Modul phần mềm hệ
Information System
thống thông tin địa lý
Module QGIS
PosgreSQL
Hệ quản trị CSDL
SOA
Service-Oriented Architecture
Kiến trúc định hướng
dịch vụ
SAN
Story Area Network
3
DANH MỤC CÁC BẢNG
Số liệu bảng
Tên bảng
Lược đồ quá trình thiết kế từ trên xuống
14
Hình 2.1
Phân mảnh ngang
21
Hình 2.2
Phân mảnh dọc
22
Hình 2.3
Mô hình triển khai đồng bộ
23
Hình 2.4
Phân mảnh hổn hợp
24
Hình 3.1
Cuối cùng, tôi xin cảm ơn cơ quan đã tạo điều kiện thuận lợi cho tôi trong
suốt quá trình học tập và nghiên cứu làm luận văn.
Xin chân thành cảm ơn!
5
MỤC LỤC
CHƯƠNG I ........................................................................................................................... 9
TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN .............................................................. 9
1.1
Giới thiệu về cơ sở dữ liệu phân tán ........................................................................ 9
1.1.
1 Các khái niệm về CSDL phân tán ........................................................................................... 9
1.1.2. Các lý do để sử dụng cơ sở dữ liệu phân tán? .............................................................................. 10
1.2. Các vấn đề cơ bản của cơ sở dữ liệu phân tán ............................................................ 11
1.2.1. Điều khiển tập trung ..................................................................................................................... 11
1.2.2. Độc lập dữ liệu ............................................................................................................................. 11
1.2.3. Giảm dư thừa dữ liệu .................................................................................................................... 12
1.2.4. Độ tin cậy qua các giao dịch phân tán .......................................................................................... 12
1.2.5. Cải thiện hiệu năng ....................................................................................................................... 12
1.2.6. Dễ dàng mở rộng hệ thống ........................................................................................................... 12
1.2.7. Tính toàn vẹn, phục hồi và điều khiển tương tranh ...................................................................... 12
1.3. Các vấn đề trong thiết kế hệ cơ sở dữ liệu phân tán ................................................... 13
CHƯƠNG II ........................................................................................................................ 16
Các kịch bản kiểm thử đồng bộ ............................................................................ 33
KẾT LUẬN .......................................................................................................................... 41
DANH MỤC CÁC TÀI LIỆU THAM KHẢO ................................................................... 42
7
MỞ ĐẦU
1. Tính cấp thiết của đề tài:
Với sự phát triển của ngành công nghệ thông tin, các giao dịch điện tử ngày
càng tăng về số lượng và đòi hỏi đảm bảo về chất lượng, đặc biệt trong các lĩnh vực
quan trọng như tài chính ngân hàng, chứng khoán, thương mại điện tử, đấu
giá...Việc xử lý thông tin của người dùng từ những dịch vụ trên phải đảm bảo thời
gian thực và không chấp nhận cho việc gián đoạn, có độ trễ cao hoặc thời gian chết.
Từ những yêu cầu thực tế, tính cấp thiết về một giải pháp đồng bộ dữ liệu. Các giải
pháp này phải đảm bảo đáp ứng yêu cầu của người dùng, của doanh nghiệp về mặt
kỹ thuật, dễ dàng triển khai và giá thành hợp lý.
Với mục đích, ý nghĩa nêu trên, tôi xin chọn Đề tài “Nghiên cứu áp dụng mô
hình đồng bộ trong cơ sở dữ liệu phân tán” để làm luận văn tốt nghiệp.
Nội dung của luận văn gồm có ba phần: Mở đầu, Nội dung và Kết luận. Trong
phần Nội dung có ba chương:
Chương 1: Tổng quan về cơ sở dữ liệu (CSDL) phân tán
Chương 2: Vai trò của đồng bộ cơ sở dữ liệu phân tán và các mô hình
Chương 3: Thử nghiệm và đánh giá
2. Mục đích nghiên cứu:
Nghiên cứu các mô hình đồng bộ cơ sở dữ liệu phân tán, từ đó đề xuất mô hình
áp dụng trong thực tiễn và tiến hành cài đặt, thử nghiệm và đánh giá.
3. Đối tượng và phạm vi nghiên cứu:
9
CHƯƠNG I
TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN
1.1 Giới thiệu về cơ sở dữ liệu phân tán
1.1. 1 Các khái niệm về CSDL phân tán
Cơ sở dữ liệu phân tán là một tập hợp nhiều cơ sở dữ liệu có liên đới logic và
được phân bổ trên một mạng máy tính. Trong khái niệm này có hai thuật ngữ quan
trọng trong các định nghĩa này là “liên đới logic” và “phân bố trên một mạng máy
tính”.
- Liên đới logic: Toàn bộ dữ liệu của cơ sở dữ liệu phân tán có một số các
thuộc tính ràng buộc chúng với nhau, điều này giúp chúng ta có thể phân biệt một
cơ sở dữ liệu phân tán với một tập hợp cơ sở dữ liệu cục bộ hoặc các tập tin lưu
trữ tại các vị trí khác nhau trong một mạng máy tính.
- Phân bổ trên một mạng máy tính: Toàn bộ dữ liệu của cơ sở dữ liệu phân tán
không được lưu trữ ở một nơi mà lưu trữ trên trạm thuộc mạng máy tính, điều này
giúp chúng ta phân biệt cơ sở dữ liệu phân tán và cơ sở dữ liệu tập trung đơn lẻ.
- Hệ quản trị cơ sở dữ liệu phân tán: Một hệ thống phần mềm cho phép quản
lý các hệ cơ sở dữ liệu phân tán và làm cho sự phân tán trở nên “trong suốt” đối
với người dùng.
- Hệ cơ sở dữ liệu phân tán: Được xây dựng dựa trên hai công nghệ cơ bản là
cơ sở dữ liệu và mạng máy tính. Một hệ cơ sở dữ liệu phân tán không phải là một
“tập hợp các tập tin” được lưu trữ riêng rẽ tại mỗi nút của một mạng máy tính. Để
tạo ra một hệ cơ sở dữ liệu phân tán các tập tin không chỉ có liên đới logic mà
chúng còn phải có cấu trúc và được truy xuất qua một giao diện chung.
- Hệ cơ sở dữ liệu phân tán thuần nhất: Các cơ sở dữ liệu cục bộ ở tất cả các
nơi (Site) đều dùng chung một hệ quản trị cơ sở dữ liệu.
- Hệ cơ sở dữ liệu phân tán không thuần nhất: Các cơ sở dữ liệu cục bộ ở các
nơi (Site) không dùng chung một hệ quản trị cơ sở dữ liệu.
trúc vật lý phức tạp để truy xuất hiệu quả.
1.2.1. Điều khiển tập trung
Toàn bộ dữ liệu được tập trung lại nhằm để tránh nhằm tránh sự dư thừa, đảm
bảo được tính độc lập của dữ liệu.
Dữ liệu được quản lý tập trung bởi người quản trị cơ sở dữ liệu. Chức năng cơ
bản là bảo đảm sự an toàn của dữ liệu. Vấn đề điều khiển tập trung không được
nhấn mạnh. Sự điều khiển được thực hiện theo một cấu trúc điều khiển phân cấp
bao gồm hai loại người quản trị cơ sở dữ liệu:
- Người quản trị Ccơ sở dữ liệu toàn cục;
- Người quản trị cơ sở dữ liệu địa phương – cục bộ.
Người quản trị cơ sở dữ liệu cục bộ cần phải có những quyền độc lập riêng về
cơ sở dữ liệu cục bộ của mình mà người quản trị cơ sở dữ liệu toàn cục hoàn toàn
không có quyền này. Đặc điểm này được gọi là sự độc lập vị trí. Từ sự độc lập vị
trí hoàn toàn đến sự điều khiển tập trung hoàn toàn.
1.2.2. Độc lập dữ liệu
Là tổ chức lưu trữ dữ liệu trong suốt đối với người lập trình ứng dụng.
Ưu điểm là các chương trình không bị ảnh hưởng bởi những thay đổi về tổ
chức lưu trữ vật lý của dữ liệu.
Tính đúng đắn của các chương trình ứng dụng không bị ảnh hưởng bởi sự di
chuyển dữ liệu từ một vị trí này đến vị trí khác.
12
1.2.3. Giảm dư thừa dữ liệu
Các cơ sở dữ liệu phân tán được dư thừa dữ liệu vì:
- Làm tăng tính cục bộ của các úng dụng. Các ứng dụng cục bộ được thực hiện
nhanh hơn, không cần phải truy xuất dữ liệu từ xa.
- Làm tăng tính sẵn sàng của hệ thống ứng dụng, nếu dữ liệu tại vị trí bị hỏng
được nhân bản tại các vị trí khác.
- Phân tán hệ quản trị cơ sở dữ liệu;
- Phân tán các chương trình ứng dụng chạy trên hệ quản trị cơ sở dữ liệu đó.
Sự phân tán của các phần mềm hệ thống quản lý cơ sở dữ liệu phân tán tồn tại
trong từng trạm lưu trữ dữ liệu.
Chúng ta biết rằng tổ chức các hệ phân tán có thể được nghiên cứu theo ba
chiều trực giao:
1. Mức độ chia sẻ.
2. Hành vi của các thành phần truy nhập.
3. Mức độ kiến thức trong hành vi của thành phần truy nhập.
Về mức độ chia sẻ, có 3 khả năng:
Một là, không chia sẻ: Mỗi ứng dụng và dữ liệu của nó thực hiện trên một
trạm và không có sự giao tiếp với các chương trình khác hoặc truy cập tới bất kỳ
các file dữ liệu nào ở các trạm khác;
Hai là, chia sẻ dữ liệu: Tất cả các chương trình được lặp lại tất cả các trạm
nhưng các file dữ liệu thì không được chia sẻ;
Ba là, chia sẻ chương trình và dữ liệu: Cả dữ liệu và các chương trình đều có
thể được chia sẻ, có nghĩa là một chương trình ở một trạm đã cho có thể yêu cầu
một dịch vụ từ một chương trình khác ở một trạm thứ hai mà trong đó trạm thứ hai
có thể phải truy cập file dữ liệu nằm trong trạm thứ ba.
Về hành vi của các thành phần truy nhập xác định hai khả năng. Các thành
phần truy nhập của các yêu cầu người sử dụng có thể là tĩnh, nghĩa là chúng không
đổi theo thời gian hoặc là động.
14
Về mức độ kiến thức trong hành vi của thành phần truy nhập. Đây là một khả
năng về lý thuyết, nhưng rất khó, nếu không muốn nói là không thể, thiết kế một hệ
thống quản lý cơ sở dữ liệu phân tán mà có thể thích ứng một cách hiệu quả với
trường hợp này. Một khía cạnh thực tế hơn là các nhà thiết kế có thông tin đầy đủ,
dưới lên sẽ thích hợp cho tình huống này. Khởi điểm của thiết kế từ dưới lên là các
lược đồ khái niệm cục bộ. Quá trình này sẽ bao gồm việc tích hợp các lược đồ cục
bộ thành khái niệm lược đồ toàn cục.
16
CHƯƠNG II
VAI TRÒ CỦA ĐỒNG BỘ CƠ SỞ DỮ LIỆU PHÂN TÁN VÀ
CÁC MÔ HÌNH ỨNG DỤNG
2.1 Giới thiệu bài toán đồng bộ
Đồng bộ hóa dữ liệu là một quá trình của việc thiết lập sự thống nhất giữa các
hệ thống và cập nhật liên tục duy trì tính nhất quán trong hệ thống. Từ ‘liên tục’ cần
được nhấn mạnh ở đây là đồng bộ hóa dữ liệu không nên được xem là một nhiệm
vụ một lần. Nó thực sự là một quá trình mà cần phải được lên kế hoạch, sở hữu,
quản lý, lên kế hoạch và kiểm soát.
Có hai kịch bản đưa ra cho việc đồng bộ hóa dữ liệu đối với một doanh
nghiệp:
Một là, thường việc chia sẻ cùng một dữ liệu: Dữ liệu khách hàng, dữ liệu sản
phẩm, dữ liệu nhân viên, hệ thống hỗ trợ khách hàng, hệ thống thanh toán và hóa
đơn... Để đảm bảo cho quá trình sản xuất của công ty có thể kiểm tra, mỗi hoạt động
cần phải đăng nhập đúng. Mặc dù một số ứng dụng trên hệ thống sử dụng cùng dữ
liệu, các dữ liệu đó cần phải được đồng bộ với các hệ thống khác.
Hai là, với sự phát triển của Internet và gia tăng việc kinh doanh quốc tế,
nhiều doanh nghiệp lựa chọn để phân phối các hệ thống của họ về mặt địa lý nhằm
giảm độ trễ và chi phí của việc sử dụng mạng lưới và tăng độ tin cậy (giảm nguy cơ
như thiên tai...ảnh hưởng đến vị trí). Các hệ thống ở tất cả các điểm địa điểm cần
phải có một dữ liệu mặc dù dữ liệu tại mỗi địa điểm đó được sửa đổi nhưng dữ liệu
cần phải được đồng bộ trên tất cả các địa điểm.
Quá trình đồng bộ dữ liệu được theo dõi và đánh giá đáp ứng nhu cầu của
phương pháp phân mảnh tạo ra các đơn vị cấp phát dữ liệu khác nhau.
2.2.2. Lý do phân mảnh dữ liệu
Trong thiết kế cơ sở dữ liệu phân tán cần phải thực hiện phân mảnh dữ liệu vì:
- Trong các hệ quản trị cơ sở dữ liệu, các quan hệ được lưu trữ dưới dạng bảng
2 chiều. Các thao tác đối với cơ sở dữ liệu được thực hiện trên các bảng. Tuy nhiên
trong thực tế, các ứng dụng chỉ yêu cầu thao tác trên các tập con của các quan hệ là
khung nhìn dữ liệu của người sử dụng. Vì vậy, việc xem tập con của quan hệ là đơn
vị truy xuất thông tin để phân tán dữ liệu là hợp lý.
18
- Việc phân rã một quan hệ thành nhiều mảnh, mỗi mảnh được xử lý như một
đơn vị dữ liệu, sẽ cho phép thực hiện nhiều giao dịch đồng thời. Đồng thời, việc
phân mảnh các quan hệ cũng cho phép thực hiện song song một câu vấn tin bằng
cách chia nó thành một tập các câu vấn tin con hoạt tác trên các mảnh. Vì thế, việc
phân mảnh sẽ làm tăng mức độ hoạt động đồng thời và tăng lưu lượng hoạt động
của hệ thống.
Tuy nhiên, việc phân mảnh chỉ có ưu điểm hoàn toàn mà nó còn thể hiện một
số hạn chế nhất định, như:
- Nếu ứng dụng có những yêu cầu “xung đột” ngăn cản phân rã thành các
mảnh được sử dụng độc quyền.
- Những ứng dụng có các khung nhìn được định nghĩa trên nhiều mảnh khác
nhau sẽ làm giảm hiệu suất hoạt động của hệ thống, làm tăng chi phí truy xuất dữ
liệu đến các mảnh và tăng chi phí kết nối các mảnh.
2.2.3. Các kiểu phân mảnh
Các quan hệ cơ sở dữ liệu thường được biểu diễn dưới dạng bảng. Việc phân
mảnh một quan hệ thành nhiều quan hệ con khác nhau theo các cách khác nhau, sẽ
R=∇Ri, ∀Ri∈FR . Toán tử ∇ thay đổi tùy theo từng loại phân mảnh. Khả năng phục
hồi quan hệ từ các mảnh sẽ đảm bảo bảo toàn các phụ thuộc.
Quy tắc 3: Tính tách biệt
Nếu các quan hệ R được phân rã ngang thành các mảnh Ri, i=1,....n và mục dữ
liệu di nằm trong một mảnh Ri thì nó sẽ không nằm trong mảnh Rk, (k#j). Quy tắc
này đảm bảo các mảnh phân rã rời nhau. Trong trường hợp phân mảnh dọc, khóa
chính của quan hệ phải được lập lại trong tất cả các mảnh. Vì thế tính tách biệt
trong phân mảnh dọc được hiểu không liên quan gì đến khóa chính của quan hệ.
2.2.5. Các phương án phân phối
Giả sử cơ sở dữ liệu được phân mảnh, người ta cần phải quyết định sự phân
phối các phân mảnh này tới các trạm khác nhau trên mạng. Khi dữ liệu được phân
phối, có thể không nhân bản hoặc có thể được nhân bản. Không nhân bản, thường
được gọi là cơ sở dữ liệu phân hoạch, các mảnh chỉ được phân phối trên các trạm và
không có bản sao nào trên mạng. Trong trường hợp nhân bản hoặc toàn bộ cơ sở dữ
liệu đều có ở trên tất cả các từng trạm (cơ sở dữ liệu được nhân bản đầy đủ), hoặc
các mảnh của cơ sở dữ liệu được phân tán tới các trạm bằng cách các mảnh sao
được đặt trên nhiều trạm (cơ sở dữ liệu được nhân bản từng phần). Một số các bản
sao của mảnh có thể là đầu vào cho thuật toán phân phối hoặc quyết định giá trị của
biến được xác đinh bởi thuật toán.
Nhân bản làm tăng độ tin cậy và tăng hiệu quả của các câu vấn tin chỉ đọc
(Read-only Query). Đặc biệt, có thể truy xuất cơ sở dữ liệu khi gặp sự cố. Hơn nữa,
các câu truy vấn đọc truy xuất đến cùng một mục dữ liệu có thể cho thực hiện song
song vì các bản sao có mặt tại nhiều vị trí.
20
Nhân bản hoàn
Rất cao
Cao
Thấp
Tính thực tế
Có thể áp dụng
Thực tế
Có thể áp dụng
Bảng 2.1: So sánh các phương pháp nhân bản.
Như hình 2.1 so sánh ba cách nhân bản theo một số chức năng của hệ quản trị
cơ sở dữ liệu phân tán.
Việc cấp phát dữ liệu phải được thực hiện sao cho thỏa mãn hai yêu cầu sau:
- Chi phí thấp nhất;
- Hiệu năng lớn nhất: Giảm thiểu thời gian đáp ứng và tăng tối đa lưu lượng hệ
thống tại mỗi vị trí.
2.2.6. Thông tin yêu cầu
Một khía cạnh của thiết kế phân tán là có quá nhiều nhân tố tạo thành một
thiết kế tối ưu. Tổ chức logic của cơ sở dữ liệu, vị trí của các ứng dụng, các tính
chất truy nhập của ứng dụng tới cơ sở dữ liệu, và các tính chất của hệ thống máy
tính tại từng trạm, tất cả đều có ảnh hưởng tới các quyết định phân phối. Điều này
làm nó trở nên rất phức tạp tạo thành một vấn đề phân phối. Thông tin cần cho thiết
kế phân tán có thể được chia làm 4 mục:
- Thông tin cơ sở dữ liệu.
Là chia cơ sở dữ liệu thành các cơ sở dữ liệu con gồm một tập hợp các thuộc
tính cùng với các giá trị của chúng có trong tập các thuộc tính của cơ sở dữ liệu đã
cho. Thực chất phân mảnh dọc quan hệ R sinh ra các mảnh R1, R2..., Rr, sao cho
mỗi mảnh chứa một tập con các thuộc tính của quan hệ R và khóa của nó. Mục đích
của phân mảnh dọc là phân chia quan hệ R thành các quan hệ nhỏ hơn để có nhiều
ứng dụng có thể chỉ cần thực hiện trên một mảnh. Mảnh tối ưu là mảnh sinh ra một
lược đồ phân mảnh cho phép giảm tối thiểu thời gian thực hiện của ứng dụng trên
mảnh đó.
Mỗi
phân
mảnh chứa một
số thuộc tính
của quan hệ.
Có thể dùng
phép
chiếu
trong ĐSQH
Hình 2.2: Phân mảnh dọc
Kỹ thuật phân mảnh dọc phức tạo hơn so với kỹ thuật phân mảnh ngang vì số
lựa chọn phân hoạch rất lớn.
2.2.9. Đồng bộ phân mảnh ngang/dọc
Giả sử R là một quan hệ được phân mảnh thành các mảnh:
23
{ F1, F2......,Fi} i=1,.....n
Fi: Các thay đổi dữ liệu hiện tại K được
đồng bộ tới Fk và ngược lại.
2.2.11. Phân mảnh hỗn hợp
Trong đa số các trưởng hợp, phân mảnh ngang hoặc phân mảnh dọc đơn giản
cho một lược đồ cơ sở dữ liệu không đủ đáp ứng các yêu cầu từ ứng dụng. Trong
trường hợp đó phân mảnh dọc có thể thực hiện sau một số mảnh ngang hoặc ngược
lại, sinh ra một lối phân hoạch có cấu trúc cây. Bởi vậy, hai chiến lược này được áp
dụng lần lượt, chọn lựa này được gọi là phân mảnh hỗn hợp.