i
LỜI CAM ĐOAN
Tôi xin cam đoan, kết quả của luận văn hoàn toàn là kết quả của tự bản thân
tôi tìm hiểu, nghiên cứu. Các tài liệu tham khảo được trích dẫn và chú thích đầy đủ.
Thái Nguyên, ngày 11 tháng 4 năm 2016
Học viên
Vũ Đức Mạnh
ii
MỤC LỤC
MỞ ĐẦU .................................................................................................................... 1
1. Lý do chọn đề tài ...................................................................................................1
2. Mục đích của đề tài ...............................................................................................1
3. Đối tượng và phạm vi nghiên cứu .......................................................................1
4. Phương pháp nghiên cứu .....................................................................................2
5. Các kết quả dự kiến đạt được ..............................................................................2
Chương 1: KHÁI QUÁT VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN ............................... 3
1.1. Cơ sở dữ liệu phân tán ......................................................................................3
1.1.1. Khái niệm ...................................................................................................3
1.1.2. Hệ quản trị cơ sở dữ liệu phân tán ..........................................................4
1.1.3. Ưu điểm của CSDL phân tán ...................................................................4
1.1.4. Nhược điểm của CSDL phân tán .............................................................5
1.2. Đặc điểm của cơ sở dữ liệu phân tán ...............................................................5
1.2.1. Chia sẻ tài nguyên .....................................................................................5
1.2.2. Tính mở ......................................................................................................6
1.2.3. Khả năng song song ..................................................................................6
2.1.2.6. Giao hoán phép chiếu với phép toán hai ngôi. ..................................23
2.2. Quá trình xử lý truy vấn .................................................................................23
2.2.1. Phân rã truy vấn .....................................................................................24
2.2.1.1. Chuẩn hóa câu truy vấn .....................................................................25
2.2.1.2. Phân tích ............................................................................................26
2.2.1.3. Loại bỏ dư thừa ..................................................................................28
2.2.1.4. Viết lại ................................................................................................29
2.2.2. Cục bộ hóa dữ liệu phân tán ..................................................................31
2.2.2.1. Rút gọn cho phân mảnh ngang nguyên thủy .....................................32
2.2.2.2. Rút gọn cho phân mảnh ngang dẫn xuất ...........................................34
2.2.2.3. Rút gọn cho phân mảnh dọc. .............................................................36
2.2.2.4. Rút gọn cho phân mảnh hỗn hợp .......................................................37
2.2.3. Tối ưu hóa toàn cục ................................................................................38
2.2.4. Tối ưu hóa cục bộ ....................................................................................38
iv
2.3. Tối ưu hóa truy vấn phân tán .........................................................................38
2.3.1. Không gian tìm kiếm ...............................................................................39
2.3.2. Chiến lược tìm kiếm ................................................................................40
2.3.3. Mô hình chi phí .......................................................................................41
2.3.4. Thứ tự kết nối ..........................................................................................45
2.4. Các thuật toán tối ưu hóa truy vấn phân tán ...............................................47
2.4.1. Thuật toán INGRES phân tán ................................................................48
2.4.2. Thuật toán R* ..........................................................................................53
2.4.3. Thuật toán DP - ACO ..............................................................................57
2.4.3.1. Thuật toán tối ưu đàn kiến (ACO Metaheuristic)[10] .......................57
2.4.3.2. Quy hoạch động (DP)[5] ...................................................................59
2.4.3.3. Kết hợp thuật toán tối ưu đàn kiến và quy hoạch động để tối ưu hóa
2
DBMS (Database Management System)
Hệ quản trị cơ sở dữ liệu
3
DDBMS (Distributed Database
Management System)
Hệ quản trị cơ sở dữ liệu phân tán
4
DP (Dynamic Programming)
Quy hoạch động
5
ACO (Ant Colony Optimization)
Tối ưu đàn kiến
6
PT (Processing tree)
Hình 2.2. Sơ đồ truy trình xử lý truy vấn ................................................................ 24
Hình 2.3. Đồ thị truy vấn và Đồ thị nối ................................................................... 27
Hình 2.4. Đồ thị truy vấn và Đồ thị nối với câu truy vấn sai ngữ nghĩa .................. 28
Hình 2.5. Cây đại số quan hệ ................................................................................... 30
Hình 2.6. Cây đại số quan hệ sau khi tái cấu trúc ................................................... 31
Hình 2.7. Câu truy vấn gốc ...................................................................................... 33
Hình 2.8. Câu truy vấn đã rút gọn ........................................................................... 33
Hình 2.9. Rút gọn phân mảnh ngang với phép nối .................................................. 34
Hình 2.10. Rút gọn cho phân mảnh ngang dẫn xuất ............................................... 36
Hình 2.11. Rút gọn phân mảnh dọc.......................................................................... 37
Hình 2.12. Rút gọn phân mảnh hỗn hợp .................................................................. 38
Hình 2.13. Quá trình xử lý truy vấn tối ưu ............................................................... 39
Hình 2.14. Các cây nối ............................................................................................. 40
Hình 2.15. Đồ thị minh họa tổng chi phí và thời gian trả lời ..........................42
Hình 2.16. Truyền các toán hạng trong phép toán hai ngôi ............................46
Hình 2.17. Đồ thị nối của truy vấn phân tán ............................................................ 46
Hình 2.18. Đồ thị nối của truy vấn q1 ...................................................................... 55
Hình 2.19. Các thứ tự kết nối ................................................................................... 57
Hình 2.20. Quá trình quyết định đường đi của đàn kiến .......................................... 58
Hình 3.1. Mối quan hệ giữa các bảng dữ liệu .......................................................... 66
Hình 3.2. Kết quả thực hiện câu truy vấn tại trạm 1 ................................................ 68
Hình 3.3. Kết quả thực hiện câu truy vấn tại trạm 2 ................................................ 69
Hình 3.4. Kết quả thực hiện câu truy vấn tại trạm 3 ................................................ 71
1
MỞ ĐẦU
1. Lý do chọn đề tài
Sở Giáo dục và Đào tạo (GD&ĐT) tỉnh Yên Bái hiện đang quản lý trực tiếp 9
3
Chương 1
KHÁI QUÁT VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN
1.1. Cơ sở dữ liệu phân tán
1.1.1. Khái niệm
Cơ sở dữ liệu (CSDL) phân tán là một tập dữ liệu có quan hệ logic với nhau,
được phân bố trên các máy tính của một mạng máy tính [1]. Trong mô hình cơ sở
dữ liệu phân tán, các quan hệ được cài đặt trên nhiều vị trí (site) khác nhau. Như
vậy, đặc trưng của CSDL phân tán là các CSDL được phân tán trên mạng máy tính
và có mối quan hệ với nhau về mặt logic. Khái niệm CSDL phân tán nhấn mạnh hai
khía cạnh:
- Tính chất phân tán: Toàn bộ dữ liệu của CSDL phân tán không nằm ở một
nơi mà nằm trên nhiều trạm thuộc mạng máy tính. Vì vậy có thể phân biệt một
CSDL phân tán với một CSDL tập trung
- Quan hệ logic: Dữ liệu có các tính chất phụ thuộc, ràng buộc lẫn nhau. Như
vậy có thể phân biệt một CSDL phân tán với các CSDL địa phương (Local) hoặc
các tệp dữ liệu được lưu trữ trên các vị trí khác nhau.
Ở mức phần cứng vật lý, những nhân tố chính sau là để phân biệt một hệ
CSDL phân tán với hệ CSDL tập trung:
- Có nhiều máy tính được gọi là các trạm hay các nút.
- Các trạm này phải được kết nối bởi một kiểu mạng truyền thông để truyền dữ
liệu và những câu lệnh giữa các trạm với nhau, như Hình 1.1.
Trạm 1
Trạm 2
DB
- DDBMS không đồng nhất: Là DBMS mà có ít nhất một nút không cùng loại
DBMS với DBMS ở các nút còn lại.
1.1.3. Ưu điểm của CSDL phân tán
Lợi ích cơ bản nhất của CSDL phân tán là dữ liệu của các CSDL vật lý riêng
biệt được tích hợp logic với nhau làm cho nhiều người sử dụng trên mạng có thể
truy nhập được.
Cho phép quản lý dữ liệu theo nhiều mức trong suốt: DBMS phải được trong
suốt phân tán theo nghĩa làm cho người sử dụng không cần biết vị trí của dữ liệu và
không cần biết sự phức tạp truy cập qua mạng.
Tăng độ tin cậy và khả năng sẵn sàng: Độ tin cậy là khả năng hệ thống đang
làm việc (không bị ngừng) tại một thời điểm nào đó, tính sẵn sàng là khả năng hệ
thống tiếp tục làm việc trong một khoảng thời gian nào đó. Khi CSDL phân tán trên
một vài trạm, một trạm có thể có sự cố trong khi các trạm khác vẫn có thể hoạt động
hoặc sử dụng các thành phần khác của CSDL, chỉ trên trạm bị sự cố, dữ liệu và ứng
dụng không thể truy cập được. Để nâng cao độ tin cậy và tính sẵn sàng, có thể áp
dụng cơ chế tạo bản sao trên nhiều trạm [2].
5
Cải thiện hiệu năng: Một DDBMS, phân mảnh CSDL có thể làm cho dữ liệu
được lưu trữ tại gần nơi sử dụng nhất. Dữ liệu được lưu trữ cục bộ làm giảm cạnh
tranh CPU, giảm các phục vụ I/O và giảm tương tranh truy nhập trên mạng. Dữ liệu
được phân tán tại các trạm nên dung lượng dữ liệu cục bộ sẽ nhỏ hơn, các xử lý giao
tác và truy vấn cục bộ sẽ được thực hiện tốt hơn. Hơn nữa, trên mỗi trạm có ít các
giao tác hơn số giao tác trên CSDL tập trung, vì vậy cũng tăng hiệu suất hệ thống.
Dễ dàng mở rộng hệ thống và phân chia tài nguyên: Việc thêm CSDL mới,
tăng kích cỡ CSDL hoặc thêm bộ xử lý trong môi trường phân tán là dễ hơn vì cũng
chỉ như là thêm các CSDL thành phần.
1.1.4. Nhược điểm của CSDL phân tán
bị ngoại vi, bộ nhớ, các giao diện truyền thông, ...) và các phần mềm (các mô hình
hệ điều hành, các giao thức truyền tin, các dịch vụ chung tài nguyên, ...)
Một hệ phân tán có tính mở là hệ có thể được tạo ra từ nhiều loại phần cứng và
phần mềm của nhiều nhà cung cấp khác nhau theo một tiêu chuẩn chung.
Tính mở của hệ phân tán được xem xét theo mức độ bổ sung các dịch vụ dùng
chung tài nguyên mà không phá hỏng hay nhân đôi các dịch vụ đang tồn tại. Tính
mở được hoàn thiện bằng cách xác định hay phân định rõ các giao diện chính của
một hệ và làm cho nó tương thích với các nhà phát triển phần mềm.
Tính mở của hệ phân tán dựa trên việc cung cấp cơ chế truyền thông giữa các
tiến trình và công khai các giao diện dùng để truy cập các tài nguyên chung.
1.2.3. Khả năng song song
Hệ phân tán hoạt động trên một mạng truyền thông có nhiều máy tính, mỗi
máy có thể có một hay nhiều CPU. Trong cùng một thời điểm nếu có N tiến trình
cùng tồn tại, ta nói chúng thực hiện đồng thời. Việc thực hiện tiến trình theo cơ chế
phân chia thời gian (một CPU) hay song song (nhiều CPU).
Khả năng làm việc song song trong hệ phân tán được thực hiện do:
- Nhiều người sử dụng đồng thời đưa ra các lệnh hay tương tác với các chương
trình ứng dụng.
Nhiều tiến trình Server chạy đồng thời, mỗi tiến trình đáp ứng các yêu cầu từ
các tiến trình Client khác.
1.2.4. Khả năng mở rộng
Hệ phân tán có khả năng hoạt động tốt và hiệu quả ở nhiều mức khác nhau.
Một hệ phân tán nhỏ nhất có thể hoạt động chỉ cần hai trạm làm việc và một File
Server. Các hệ lớn hơn có thể có hàng nghìn máy tính.
7
Khả năng mở rộng được đặc trưng bởi tính không thay đổi phần mềm hệ thống
và phần mềm ứng dụng khi hệ được mở rộng. Điều này chỉ đạt được mức độ nào đó
8
- Người sử dụng không cần biết dữ liệu đã được phân mảnh như thế nào, các
bản sao dữ liệu để ở đâu, vị trí vật lý lưu trữ dữ liệu ở đâu.
- Trong suốt phân tán thể hiện:
+ Trong suốt vị trí: Người dùng không cần biết về vị trí vật lý của dữ liệu mà
có quyền truy cập đến CSDL tại bất cứ vị trí nào. Các thao tác để lấy hoặc cập nhật
một dữ liệu từ xa được tự động thực hiện bởi hệ thống tại điểm đưa ra yêu cầu. Tính
trong suốt về vị trí rất hữu ích, nó cho phép người dùng bỏ qua các bản sao dữ liệu
đã tồn tại ở mỗi vị trí. Do đó có thể di chuyển một bản sao dữ liệu từ một vị trí này
đến một vị trí khác và cho phép tạo các bản sao mới mà không ảnh hưởng tới các
ứng dụng.
+ Trong suốt tên: Khi một đối tượng đã được đặt tên thì có thể truy nhập chính
xác không cần đặc tả thêm.
+ Trong suốt bản sao: Sự nhân bản là quá trình sao chép và duy trì dữ liệu
trong hệ CSDL phân tán. Cùng một dữ liệu (được lưu trữ vật lý tại một vị trí) có thể
sử dụng được trên nhiều vị trí khác nhau. Các bản sao có thể được lưu trữ trên nhiều
trạm làm tăng hiệu suất, độ tin cậy và tính sẵn sàng của hệ thống. Các ứng dụng có
thể truy nhập dữ liệu tại các trạm mà không cần phải truy cập từ xa giảm truyền tải
trên mạng lớn. Hệ thống cho phép tiếp tục thực hiện nếu như các trạm từ xa có sự
cố. Trong suốt bản sao đảm bảo người dùng không biết đó là các bản sao vì dữ liệu
luôn được cập nhật và đồng bộ với dữ liệu gốc.
+ Trong suốt phân mảnh: Một quan hệ trong CSDL phân tán có thể phân mảnh
ngang hoặc phân mảnh dọc nghĩa là được tách thành các bộ dữ liệu hoặc các quan
hệ con và lưu trữ trên nhiều trạm khác nhau. Trong suốt phân mảnh cho phép người
sử dụng không cần biết có sự phân mảnh, các truy vấn dữ liệu vẫn được viết như
CSDL tập trung.
1.3.2. Trong suốt giao dịch
CSDL phân tán cho phép một giao dịch có thể cập nhật, sửa đổi dữ liệu trên
- Lược đồ định vị: Các mảnh là các phần logic của quan hệ tổng thể được định
vị vật lý trên một hoặc nhiều vị trí trên mạng. Lược đồ định vị định nghĩa mảnh nào
định vị tại các vị trí nào. Kiểu ánh xạ được định nghĩa trong lược đồ định vị quyết
định CSDL phân tán là dư thừa hay không.
- Lược đồ ánh xạ cục bộ: Ánh xạ các ảnh vật lý và các đối tượng được lưu trữ
tại một trạm (tất cả các mảnh của một quan hệ tổng thể trên cùng một vị trí tạo ra
một ảnh vật lý).
10
Lược đồ
tổng thể
Lược đồ
phân mảnh
Lược đồ
định vị
Lược đồ ánh
xạ cục bộ 1
Lược đồ ánh
xạ cục bộ 2
DBMS 1
DBMS 2
1.5.1. Phân mảnh dữ liệu
Sự phân mảnh là chia dữ liệu trong các bảng dữ liệu thành các bộ hoặc các
bảng dữ liệu con. Có ba kiểu phân mảnh một quan hệ tổng thể: Phân mảnh ngang,
phân mảnh dọc và phân mảnh hỗn hợp [2].
Một sự phân mảnh là đúng đắn nếu tuân thủ 3 quy tắc sau:
- Tính đầy đủ: Tất cả dữ liệu của quan hệ tổng thể phải được ánh xạ tới các
mảnh, có nghĩa là mỗi phần tử dữ liệu thuộc quan hệ tổng thể phải thuộc một hay
nhiều mảnh của nó.
- Tính phục hồi: Luôn có thể xây dựng lại được quan hệ tổng thể từ các mảnh
đã có.
- Tính tách biệt: Nếu quan hệ R được phân mảnh ngang thành các mảnh R i
(i=1, 2, …, n) và mục dữ liệu dj nằm trong một mảnh Ri thì nó sẽ không nằm trong
mảnh Rk (k≠i). 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ì
vậy, tính tách biệt trong phân mảnh dọc được hiểu không liên quan đến khóa chính
của quan hệ.
1.5.1.1. Phương pháp phân mảnh ngang
Phân mảnh ngang chính là việc chia quan hệ thành nhiều các nhóm bộ. Kết
quả của quá trình phân mảnh ngang là các quan hệ con, số lượng quan hệ con phụ
thuộc vào điều kiện ràng buộc của các thuộc tính. Các bộ trong các quan hệ con là
tách biệt nhau. Phân mảnh ngang thực chất là phép chọn quan hệ thỏa mãn một
biểu thức điều kiện cho trước.
Có hai loại phân mảnh ngang:
- Phân mảnh ngang nguyên thủy: Là phân mảnh ngang được thực hiện trên
các vị từ của chính quan hệ đó.
- Phân mảnh ngang dẫn xuất: Là phân rã một quan hệ dựa trên các vị từ của
quan hệ khác.
a. Phân mảnh ngang nguyên thủy: Được định nghĩa bằng một phép toán chọn
trên các quan hệ đích của một lược đồ của CSDL. Vì thế, cho biết quan hệ R, các
P3
CAD/CAM
250000
TP HN
P4
Bảo dưỡng
310000
TP ĐN
Chúng ta có thể định nghĩa các mảnh ngang dựa vào vị trí dự án. Khi đó các
mảnh thu được được trình bày như sau: DA 1 = σĐịa điểm = “TP HCM” (DA)
DA2 = σĐịa điểm = “TP HN” (DA)
DA3 = σĐịa điểm ="TP ĐN” (DA)
Từ đây ta chia được các mảnh ngang sau:
DA1
MDA
TênDA
Ngân sách
Địa điểm
TP HN
MDA
TênDA
Ngân sách
Địa điểm
P4
thiết bị đo đạc
310000
TP ĐN
DA2
DA3
Một đặc tính quan trọng của các vị từ đơn giản (ví dụ: ngân sách >150000 là
một vị từ đơn giản) là tính đầy đủ và tính cực tiểu [1].
b. Phân mảnh ngang dẫn xuất
Phân mảnh ngang dẫn xuất được định nghĩa trên một quan hệ thành viên của
đường nối dựa theo phép toán chọn trên quan hệ đích của đường nối đó.
Phân tích
E3
Đức
Kỹ sư cơ khí
CT
Chức vụ, Lương
L1
NV
E4
Tuấn
Lập trình viên
E5
Hoa
Phân tích hệ thống
E6
Thành
Trong đó:
CT1 = Lương
3.000
(CT)
CT2
Lương
Chức vụ
Lương
Kỹ sư cơ khí
2.700
Kỹ sư điện
4.000
Lập trình viên
2.400
Phân tích hệ thống
Kỹ sư cơ khí
E2
Hoàng
Phân tích hệ thống
E4
Tuấn
Lập trình viên
E5
Hoa
Phân tích hệ thống
E7
Công
Kỹ sư cơ khí
E6
Thành
Với phân mảnh ngang nguyên thuỷ, tính tách rời sẽ được đảm bảo miễn là các
vị từ hội sơ cấp xác định phân mảnh có tính loại trừ tương hỗ (mutually exclusive).
15
Với phân mảnh dẫn xuất, tính tách rời có thể đảm bảo nếu đồ thị nối thuộc
loại đơn giản.
1.5.1.2. Phương pháp phân mảnh dọc
a. Khái niệm phân mảnh dọc
Cho R là một quan hệ trên tập các thuộc tính = {A1, A2,…,An}. Khi đó phân
mảnh dọc quan hệ R sinh ra các mảnh R1, R2, ..., Rr, sao cho mỗi mảnh là một quan
hệ chứa một tập con các thuộc tính của quan hệ R và khoá của nó, tức là sẽ được
phân mảnh sao cho = 1 2 3 … k; trong đó Ri là mảnh quan hệ trên
các thuộc tính i, i=1..k. Mục đích của phân mảnh dọc là phân chia quan hệ R
thành tập 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 đó. Kí hiệu Ri = ПATTRi R, trong
đó ATTRi là tập con các thuộc tính của R
b. Các quy tắc trong phân mảnh dọc
Một phân mảnh dọc là đúng đắn nếu thỏa mãn ba quy tắc sau:
- Tính đầy đủ: Nếu một thuộc tính xuất hiện trong một quan hệ tổng thể thì
nó cũng phải xuất hiện trong một mảnh dọc nào đó.
- Tính phục hồi: Cần phải thêm vào mỗi mảnh khoá chính, do đó việc xây
dựng lại được là nhờ vào phép kết nối các mảnh dọc theo các thuộc tính chung.
- Tính tách biệt: Ít nhất khoá phải được lặp lại trên tất cả các mảnh để đảm
bảo cho phép xây dựng lại, nên ở đây không thể xem là rời nhau hoàn toàn được.
Ví dụ 1.5: Xét quan hệ sau:
NHANVIEN (MNV, TENNV, CHUCVU, DONVICONGTAC, LUONG)
Ta tách quan hệ NHANVIEN thành hai quan hệ NV1 và NV2 ; trong đó:
tách biệt trong phân mảnh ngang vì có ít nhất khoá phải được lặp lại trên tất cả
các mảnh để cho phép xây dựng lại được đảm bảo.
1.5.1.3. Phương pháp 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 đồ CSDL không đủ đáp ứng các yêu cầu từ người sử 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 như Hình 1.5. Bởi vì hai chiến lược
này được áp dụng lần lượt nên chọn lựa này được gọi là phân mảnh hỗn hợp.
R
H
H
R1
V
R11
R2
V
R12
V
V
R21
R22
R23
khi các mảnh lá và mảnh trung gian cũng tách biệt.
18
R11
R12
R21 R22 R23
Hình 1.5. Tái xây dựng phân mảnh hỗn hợp
1.5.2. Nhân bản dữ liệu
Các chiến lược nhân bản dữ liệu:
a. Nhân bản dữ liệu đầy đủ: Toàn bộ CSDL sẽ được tạo trên tất cả mỗi trạm.
Ưu điểm: Điều này sẽ cải thiện tính sẵn sàng cao nhất vì nếu sự cố trên trạm
này thì vẫn có dữ liệu trên trạm khác và cải thiện hiệu năng lấy dữ liệu trên mạng
cho các truy vấn toàn bộ vì dữ liệu sẽ được lấy từ các trạm cục bộ.
Nhược điểm: Các thao tác cập nhập dữ liệu rất chậm vì phải sao chép, đồng bộ
dữ liệu cho mọi trạm. Kỹ thuật điều khiển tương tranh và phục hồi sẽ phức tạp hơn.
b. Không có nhân bản dữ liệu: Mỗi phân mảnh chỉ được lưu trữ trên một
trạm, phương án này còn được gọi là định vị không dư thừa dữ liệu. Trong
trường hợp này các phân đoạn phải tách rời nhau để tránh lặp bản ghi giống nhau
cho các phân mảnh ngang và phân mảnh hỗn hợp.
c. Nhân bản dữ liệu từng phần: Một vài phân mảnh có thể được tạo bản sao và có
thể một số phân mảnh sẽ không có bản sao. Việc tạo bản sao này rất có tác dụng cho
các nhân viên làm việc di động, tại các nơi xa trung tâm dữ liệu, có thể tạo ra bản sao
dữ liệu trên laptop của mình và theo chu kỳ đồng bộ dữ liệu với CSDL trên server.