Tải bản đầy đủ (.docx) (34 trang)

Cơ sở dữ liệu phân tán và ứng dụng thiết kế Web Service

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (684.69 KB, 34 trang )

ĐẠI HỌC QUỐC GIA TH ÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

BÀI THU HOẠCH
MÔN HỌC: CƠ SỞ DỮ LIỆU NÂNG CAO
Đề tài: Cơ sở dữ liệu phân tán và ứng dụng thiết
kế Web Service
Giảng viên hướng dẫn : PGS.TS ĐỖ PHÚC
Học viên thực hiện : NGUYỄN THỊ DIỆU ANH
MSHV : C1101064
TP HCM, tháng 07 năm 2012
Bài thu hoạch môn học “Cơ sở dữ liệu nâng cao” – CH 1101064 – T07.2012
MỤC LỤC
MỞ ĐẦU 3
I. TỔNG QUAN HỆ CƠ SỞ DỮ LIỆU PHÂN TÁN
1. Nền tảng phát triển 4
2. Khái niệm 8
II. KIẾN TRÚC HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU PHÂN TÁN
1. Kiến trúc cơ sở dữ liệu phân tán 11
2. Kiến trúc hệ quản trị cơ sở dữ liệu phân tán 12
III. LÀM VIỆC VỚI CƠ SỞ DỮ LIỆU PHÂN TÁN
1. Thiết kế hệ cơ sở dữ liệu phân tán 16
2. Kiểm soát dữ liệu ngữ nghĩa 25
3. Phân rã vấn tin 27
4. Cục bộ hóa dữ liệu 28
IV. DEMO ỨNG DỤNG
1. Mô tả bài toán 30
2. Demo chương trình 31
KẾT LUẬN 34
TÀI LIỆU THAM KHẢO 35
2


Bài thu hoạch môn học “Cơ sở dữ liệu nâng cao” – CH 1101064 – T07.2012
MỞ ĐẦU
Thuật ngữ “phân tán” được sử dụng trong một vài năm trở lại đây để chỉ việc xử lý
thông tin trên các thành phần hệ thống nằm tách biệt nhau, mỗi một hệ thống thực hiện
một nhiệm vụ xác định và được liên kết với nhau thông qua mạng máy tính.
Một thực tế đặt ra là sự phát triển ngày càng rộng lớn của các công ty, xí nghiệp, các
nhà sản xuất Hệ thống vừa phải đáp ứng phục vụ đầy đủ dữ liệu, nhưng cũng đòi hỏi
tính nhanh nhạy, chuẩn xác. Vì vậy, hệ thống phân tán nhằm giải quyết các bài toán mang
tính chất phức tạp dựa trên nguyên tắc kinh điển: “chia để trị”. Ý tưởng chung cho hệ
thống này là chia nhỏ thành các nhóm phần mềm, thực hiện xử lý trên các bộ phận khác
nhau nhưng có thể hoàn thành chung một tác vụ nào đó.
Có thể phân tán các thành phần khác nhau như phân tán dữ liệu, phân tán chức năng,
phân tán thiết bị xử lý và mức độ cao nhất là phân tán quyền điều khiển. Việc phân tán cái
gì sẽ ảnh hưởng tới toàn bộ quá trình thiết kế cấu trúc hệ thống và xử lý phân tán.
Trong phạm vi bài thu hoạch này, tôi xin trình bày những lý thuyết cơ bản nhất về xử
lý trong hệ cơ sở dữ liệu phân tán, ứng dụng để phát triển trên hệ thống quản lý khách sạn
qua Web service.
Cảm ơn Thầy PGS.TS Đỗ Phúc đã tận tình giảng dạy, truyền đạt những kiến thức sâu
rộng về các hệ cơ sở dữ liệu nâng cao, là nền tảng quan trọng cho tôi tìm tòi, học hỏi
thêm. Cảm ơn các Thầy Cô phụ trách phòng Sau đại học – Trường Đại học CNTT đã tạo
điều kiện tốt nhất cho lớp Cao học khóa 6 học tập, nghiên cứu.
3
Bài thu hoạch môn học “Cơ sở dữ liệu nâng cao” – CH 1101064 – T07.2012
I. TỔNG QUAN VỀ HỆ CƠ SỞ DỮ LIỆU PHÂN TÁN
1. Nền tảng phát triển
Hệ thống phân tán được phân tán được phát triển dựa trên hai hướng tiếp cận trong quá
trình xử lý dữ liệu: công nghệ cơ sở dữ liệu và công nghệ mạng máy tính. Hệ thống dữ
liệu truyền thống được định nghĩa và duy trì dữ liệu riêng biệt, còn hệ thống phân tán
chuyển sang mô hình định nghĩa và quản lý dữ liệu tập trung. Quá trình thay đổi mô hình
này làm cho dữ liệu có tính chất độc lập, các ứng dụng được giữ nguyên khi thay đổi cấu

trúc vật lý của thiết bị. Công nghệ mạng máy tính nhằm đảm bảo dù tách biệt trên các bộ
phận khác nhau nhưng các thành phần vẫn có thể kết nối và cùng thực hiện chung một loại
chức năng của hệ thống, đảm bảo tính thống nhất và toàn vẹn. Bây giờ chúng ta sẽ tìm
hiểu về những đặc trưng cơ bản của các lý thuyết nền tảng này.
a. Hệ quản trị cơ sở dữ liệu quan hệ:
Cơ sở dữ liệu quan hệ: là một tập hợp dữ liệu có cấu trúc liên quan đến các đối
tượng thực tế, được mô hình hóa dưới cấu trúc dạng các bảng. Một quan hệ R được định
nghĩa trên n tập D
1
, D
2
,

, D
n
là một tập gồm n bộ <d
1,
d
2,
…, d
n
> sao cho d
1
D
1
, d
2
D
2,


,
d
n
D
n

Một mô hình quan hệ có ba đặc trưng cơ bản:
 Cấu trúc dữ liệu được mô tả bằng các quan hệ, biểu diễn trên các bảng hai chiều với
các phần tử là mục dữ liệu.
 Mô hình dữ liệu quan hệ đảm bảo được tính nhất quán dữ liệu, được chuẩn hóa và loại
bỏ các thành phần dư thừa, đảm bảo tính toàn vẹn.
 Cho phép thao tác trên quan hệ theo kiểu tập hợp, có thể tính toán trên các quy tắc
phép toán logic và đại số quan hệ.
Với cấu trúc dạng bảng, các cột của bảng tương ứng với các thuộc tính của quan hệ.
Mỗi thuộc tính phải được định nghĩa theo một kiểu dữ liệu nhất định nhằm đảm bảo thông
tin trong dữ liệu thống nhất.
4
Bài thu hoạch môn học “Cơ sở dữ liệu nâng cao” – CH 1101064 – T07.2012
Ví dụ: Cơ sở dữ liệu nhân viên phòng ban có 2 bảng như sau:
Bảng Nhan_vien gồm các thuộc tính: Ma_nhan_vien, Ten_nhan_vien,
Ma_phong_ban, He_so_luong, Chuc_vu
Bảng Phong_ban gồm các thuộc tính: Ma_phong_ban, Ten_phong_ban,
Truong_phong
Khóa: Mô hình dữ liệu quan hệ thao tác trên các bộ dựa vào khóa, ở ví dụ trên bảng
Nhan_vien sẽ có khóa là Ma_nhan_vien, bảng Phong_ban có khóa là Ma_phong_ban.
Khóa không được phép có giá trị rỗng và mỗi khóa sẽ xác định duy nhất một bộ của quan
hệ
Chuẩn hóa: Là quá trình thay thế từ một quan hệ đã cho sang một quan hệ mới đơn
giản hơn nhưng lại chặt chẽ. Việc chuẩn hóa là để tạo ra một cơ sở dữ liệu đầy đủ nhưng
loại bỏ hết các thành phần dư thừa, từ đó xử lý các dữ liệu nhanh và chính xác.

Quá trình chuẩn hóa giúp nhằm làm cho các lược đồ quan hệ không gặp phải những
vấn đề sau.
- Bất thường do dữ liệu lặp
- Bất thường khi cập nhật
- Bất thường khi chèn
- Bất thường khi xóa
Các quan hệ được chuẩn hóa dựa trên các dạng chuẩn 1NF, 2NF và 3NF, dạng chuẩn
được phân cấp và cấp sau tốt hơn cấp trước. Một trong những quy tắc chung để chuẩn hóa
là “phân rã”: các quan hệ được tách ra thành hai hoặc nhiều quan hệ con và biến đổi
chúng về các dạng chuẩn. Yêu cầu đặt ra là khi phân rã không được làm mất thông tin
giữa các quan hệ, vẫn đảm bảo sự liên kết đầy đủ như hệ thống ban đầu. Do vậy, người ta
đưa ra các quy trình được gọi là “phân rã không làm mất thông tin”.
Phụ thuộc hàm: là một ràng buộc giữa hai tập thuộc tính của lược đồ quan hệ. Giả sử
có quan hệ R(A1, A2, …, An) và X, Y là tập con của {A1, A2, …, An}. Ta nói Y phụ
thuộc hàm vào X, kí hiệu XY nếu mỗi giá trị X trong R xác định giá trị duy nhất của Y
trong R.
5
Bài thu hoạch môn học “Cơ sở dữ liệu nâng cao” – CH 1101064 – T07.2012
Quy tắc toàn vẹn: là các ràng buộc định nghĩa các trạng thái nhất quán của cơ sở dữ
liệu. Các ràng buộc toàn vẹn xuất phát từ những quy định hoặc điều kiện thực tế hoặc
trong quá trình mô hình hóa dữ liệu. Ràng buộc toàn vẹn nhằm đảm bảo tính nhất quán
của dữ liệu, nó đảm bảo cho dữ liệu không xảy ra mâu thuẫn hoặc lỗi, diễn tả đúng ngữ
nghĩa thực tế.
Đại số quan hệ: là một tập các phép toán trên các quan hệ, được xây dựng trên lý
thuyết tập hợp. Các phép toán cơ bản như: phép chiếu, phép chọn, phép hợp, phép giao,
phép kết, phép chia lấy thương, …
 Phép chọn: với R là quan hệ và F là điều kiện chọn
Các nhân viên có Ma_phong_ban là “TCHC”:
 Phép chiếu: với R là quan hệ và A, B, … là tập các thuộc tính của R. Lấy thông
tin tên nhân viên, chức vụ trong bảng Nhan_vien

Các phép toán khác của đại số quan hệ dựa trên nguyên tắc tính toán tập hợp và hai
phép toán chọn, chiếu cơ bản trên.
Hệ quản trị cơ sở dữ liệu quan hệ: là một thành phần phần mềm hỗ trợ mô hình quan
hệ và một ngôn ngữ quan hệ. Các chức năng của hệ quản trị cơ sở dữ liệu có thể đươc
phân thành các tầng như sau:
• Tầng giao diện: quản lý giao diện với ứng dụng, các chương trình ứng dụng cơ
sở dữ liệu được thực hiện trên các khung nhìn.
• Tầng điều khiển: chịu trách nhiệm điều khiển vấn tin bằng các đưa thêm các vị
từ toàn vẹn ngữ nghĩa và vị từ cấp quyền.
• Tầng xử lý vấn tin: chịu trách nhiệm ánh xạ câu vấn tin thành chuỗi thao tác đã
được tối ưu ở mức thấp hơn
• Tầng thực thi: hướng dẫn thực hiện các hoạch định truy xuất, bao gồm việc quản
lý giao dịch và việc đồng bộ hóa các phép toán đại số quan hệ
• Tầng truy xuất dữ liệu: quản lý cấu trúc dữ liệu dùng để cài đặt các quan hệ,
đồng thời quản lý các vùng đệm bằng cách lưu tạm các dữ liệu thường được truy
xuất đến nhiều nhất.
6
Bài thu hoạch môn học “Cơ sở dữ liệu nâng cao” – CH 1101064 – T07.2012
• Tầng duy trì nhất quán: chịu trách nhiệm điều khiển các hoạt động đồng thời và
ghi vào nhật ký cập nhật, cho phép khôi phục lại giao dịch, hệ thống, thiết bị sau
khi gặp sự cố.
b. Hệ thống mạng máy tính
Định nghĩa: là một tập các máy tính tự vận hành, được kết nối lại và có khả năng
trao đổi thông tin giữa chúng.
Các máy tính trên một mạng thường được gọi là node, host hoặc site (trạm),
được kết nối với nhau thông qua đường truyền. Các mạng máy tính là cơ sở hạ tầng
cho hệ thống phân tán.
Theo các lược đồ truyền thông vật lý và phương thức giao tiếp, mạng có thể có
hai loại cấu trúc như sau:
 Mạng kết nối điểm đến điểm (point – to – point network): bao gồm nhiều mối nối giữa

các cặp máy tính với nhau. Để chuyển từ nguồn tới đích, một gói có thể phải đi qua
các máy trung gian. Thường thì có thể có nhiều đường di chuyển có độ dài khác nhau
(từ máy nguồn tới máy đích với số lượng máy trung gian khác nhau). Thuật toán
để định tuyến đường truyền giữ vai trò quan trọng trong kỹ thuật này.
 Mạng quảng bá (broadcast network), hay còn gọi là mạng đa điểm (multi – point
network): bao gồm một kênh truyền thông được chia sẻ cho mọi máy trong mạng.
Mẩu thông tin truyền đi được gọi là “gói” (packet) chuyển đi bởi một máy bất kỳ sẽ
tới được tất cả các máy khác. Trong “gói” sẽ chứa phần thông tin địa chỉ mà nó muốn
gửi tới. Khi nhận “gói tin”, mỗi máy sẽ kiểm tra lại địa chỉ. Nếu như đúng với địa chỉ
thì được xử lý tiếp, không thì nó sẽ bỏ qua.
Mạng máy tính có những thành phần cơ bản như sau:
 Thiết bị đầu cuối: là các thiết bị có chức năng thu nhận tín hiệu lan truyền và kết
nối như máy tính, điện thoại di động, …
 Môi trường truyền: là các thiết bị vật lý cho phép thao tác truyền thông tin qua
nó như cáp, sóng điện từ, …
 Giao thức truyền thông (protocol): là các quy tắc quy định cách trao đổi thông
tin giữa các thực thể. Có những giao thức cơ bản như:
Mạng là nền tảng cho hệ thống phân tán bởi nó có những đặc trưng về việc lưu
trữ thông tin:
7
Mạng truyền
dữ liệu
Trạm 2
Trạm 3
Database
Trạm 1
Trạm 4
Database
Database
Database

Bài thu hoạch môn học “Cơ sở dữ liệu nâng cao” – CH 1101064 – T07.2012
• Chia sẻ tài nguyên
• Đảm bảo sự tin cậy và an toàn thông tin
• Tiết kiệm chi phí
• Cung cấp thông tin từ xa giữa các cá nhân
• Liên lạc trực tiếp và riêng tư
2. Khái niệm
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. Bao gồm một tập các node, mỗi node biểu diễn cho
một máy tính và thiết bị lưu trữ thứ cấp kèm theo. Một số cặp máy tính có thể nối với
nhau bằng các link, cho phép dữ liệu được gửi trực tiếp từ máy này sang máy khác theo
một trong hai chiều.
Để hiểu khái niệm trên ta tìm hiểu ý nghĩa của hai cụm từ: 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 với nhau.
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 nhiều trạm thuộc mạng máy tính, điều này giúp
chúng ta phân biệt CSDL phân tán với CSDL tập trung đơn lẻ.
Hệ quản trị cơ sở dữ liệu phân tán (Distributed DataBase System – DDBS): là một
hệ thống phần mềm cho phép quản lý các cơ sở dữ liệu phân tán và làm cho người
dùng không cảm thấy có sự “phân tán” trong quá trình sử dụng. Các tập tin phải được
liên đới logic, có cấu trúc và được truy xuất qua một giao diện chung.
8
Bài thu hoạch môn học “Cơ sở dữ liệu nâng cao” – CH 1101064 – T07.2012
Hình 1: Mô tả hệ cơ sở dữ liệu phân tán
Hệ cơ sở dữ liệu phân tán không thuần nhất: các cơ sở dữ liệu lưu trữ cục bộ ở các
nơi (Site) không dùng chung một hệ quản trị cơ sở dữ liệu.
Hệ cơ sở dữ liệu phân tán thuần nhất: các cơ sở dữ liệu lưu trữ 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.

Phân mảnh: là quá trình phân hoạch dữ liệu quan hệ và lưu mỗi phân hoạch tại một
vị trí khác nhau. Thông thường có hai cách phân hoạch: phân mảnh dọc và phân mảnh
ngang.
Nhân bản: là quá trình sao chép một phần dữ liệu vào các vị trí khác nhau trong hệ
thống phân tán.
Vô hình: là một trong những đặc trưng cơ bản của hệ thống phân tán. Người thiết kế
sẽ che dấu đi những cài đặt chi tiết, không cho người dùng nhìn thấy, chính vì thế khó
mà nhận biết được sự phân tán trong quá trình truy vấn dữ liệu. Một số loại vô hình
như vô hình kết mạng (vị trí, đặt tên, …), vô hình nhân bản làm cho người dùng không
phân biệt được giữa bản sao và bản chính, vô hình phân mảnh,…
9
Bài thu hoạch môn học “Cơ sở dữ liệu nâng cao” – CH 1101064 – T07.2012
II. KIẾN TRÚC HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU PHÂN TÁN
1. Kiến trúc cơ sở dữ liệu phân tán
Mô hình kiến trúc dưới đây không thể hiện chính xác chi tiết với mọi hệ cơ sở dữ
liệu phân tán, tuy nhiên các mức của dữ liệu phân tán được mô tả dễ hiểu và phù hợp
với đa số cách tổ chức dữ liệu phân tán nói chung.
- Sơ đồ tổng thể: định nghĩa tất cả dữ liệu được lưu trữ trong cơ sở dữ liệu phân
tán. Trong mô hình quan hệ, sơ đồ tổng thể bao gồm định nghĩa của các tập quan
hệ.
- Sơ đồ phân đoạn: mỗi quan hệ tổng thể có thể được phân chia thành các mảnh
riêng biệt (fragment). Sơ đồ phân đoạn biểu diễn ánh xạ một chiều của sự phân
chia này. Thông thường chúng ta có phân mảnh dọc hoặc phân mảnh ngang.
- Sơ đồ định vị: mỗi một đoạn/mảnh được xác định tại một vị trí vật lý trong mạng
một cách logic. Kiểu ánh xạ định nghĩa trong sơ đồ định vị quyết định một cơ sở
dữ liệu phân tán có dư thừa hay không?
- Sơ đồ ánh xạ địa phương: ánh xạ các ảnh vật lý và các đối tượng được lưu trữ tại
một trạm
2. Kiến trúc hệ quản trị cơ sở dữ liệu phân tán
10

Bài thu hoạch môn học “Cơ sở dữ liệu nâng cao” – CH 1101064 – T07.2012
Dựa trên cơ sở dữ liệu phân tán, người ta lựa chọn các hệ quản trị cơ sở dữ liệu
tương ứng phù hợp với nhu cầu quản lý thông tin.
Kiến trúc của hệ thống mô tả các thành phần của nó và chức năng mỗi thành phần
tương ứng. Đối với hệ quản trị cơ sở dữ liệu phân tán, việc xác định thành phần hệ
thống có thể dựa vào những cách tiếp cận khác nhau:
- Phân chia theo thành phần vật lý: mỗi thành phần cung cấp một chức năng vận hành
nào đó, chúng tương tác qua lại theo một quy tắc, trật tự chung.
- Phân chia theo chức năng: mỗi nhóm người sử dụng sẽ được phân cấp các chức năng
tương ứng. Do vậy, giao diện cũng sẽ phân cấp để mô tả chính xác các chức năng mà
người dùng có quyền truy cập thông tin.
- Phân chia theo dữ liệu: các kiểu dữ liệu khác nhau được định nghĩa .
Các lựa chọn cài đặt một hệ quản trị cơ sở dữ liệu được tổ chức hệ thống theo các
đặc tính:
- Tính tự vận hành (tính tự trị): được hiểu là sự phân tán quyền điều khiển, là mức hộ
hoạt động độc lập của từng hệ quản trị cơ sở dữ liệu riêng lẻ. Tính tự vận hành được
biểu hiện qua chức năng của một số yếu tố, như sự trao đổi thông tin giữa các hệ thống
thành viên với nhau, thực hiện giao dịch độc lập hoặc không lập và có được phép sửa
đổi chúng hay không. Yêu cầu của hệ thống tự vận hành được xác định theo nhiều
cách:
• Thao tác cục bộ của hệ quản trị cơ sở dữ liệu riêng lẻ không bị ảnh hưởng khi
tham gia hoạt động hệ đa cơ sở dữ liệu.
• Các hệ quản trị CSDL xử lý và tối ưu truy vấn cũng không bị ảnh hưởng bởi thực
thi truy vấn toàn cục truy cấp nhiều hệ CSDL.
• Tính nhất quán của hệ thống hoặc thao tác không bị ảnh hưởng khi các hệ quản
trị CSDL riêng lẻ kết nối hay tách rời khỏi tập các CSDL.
Để xác định chiều của tính tự trị ta xem xét như sau:
• Tự trị thiết kế: mỗi hệ quản trị cơ sở dữ liệu riêng lẻ có thể sử dụng mô hình dữ
liệu và kỹ thuật quản lý giao dịch theo ý muốn.
11

Bài thu hoạch môn học “Cơ sở dữ liệu nâng cao” – CH 1101064 – T07.2012
• Tự trị truyền thông: mỗi hệ quản trị cơ sở dữ liệu riêng lẻ tùy ý đưa ra quyết định
của nó về loại thông tin mà nó cần cung cấp cho cac hệ quản trị CSDL khác hoặc
phần mềm điều khiển thực thi toàn cục.
• Tự trị thực thi: mỗi hệ quản trị CSDL có thể thực thi cac giao dịch được gửi tới
nó theo cách mà nó muốn
- Tính phân tán dữ liệu: là sự phân tán dữ liệu trên nhiều vị trí khác nhau. Người dùng
tiếp cận dữ liệu thông qua các khung nhìn. Thông thường có hai cách phân tán dữ liệu:
phân tán khách/ chủ và phân tán ngang hàng.
Phân tán khách/ chủ (client/ server): phân tán theo chức năng, cung cấp môi
trường ứng dụng và giao diện cho người sử dụng. Nhiệm vụ truyền thông được chia sẻ
giữa khách (client) và chủ (server).
Phân tán ngang hàng: đưnợc gọi là phân tán đầy đủ, không có sự khác biệt giữa
chức năng của client và server. Mỗi máy trong hệ thống mạng đều có chức năng đầy đủ
của hệ quản trị cơ sở dữ liệu và trao đổi thông tin giữa các máy khác để thực hiện truy
vấn và giao dịch.
- Tính hỗn hợp: xuất phát từ sự khác biệt về phần cứng, về giao thức mạng dẫn đến việc
quản lý dữ liệu của các site là khác nhau. Các mô hình dữ liệu khác nhau sinh ra tính
hốn hợp. Ngay cả trong cùng một mô hình dữ liệu, việc nhập liệu bởi những người
dùng khác nhau và ngôn ngữ truy vấn khác nhau cũng làm phát sinh tính hỗn hợp trong
hệ thống phân tán.
Từ những đặc tính trên, ta xem xét hệ khách/ chủ và hệ ngang hàng
• Hệ quản trị cơ sở dữ liệu phân tán khách/chủ: cung cấp hai lớp chức năng là server và
client nhằm tạo ra sự dễ dàng trong việc quản lý tính phức tạp của các hệ quản trị.
Hệ phân tán khách/chủ có nhiều ưu điểm vượt trội là xử lý dữ liệu tập trung,
phần lớn việc xử lý dữ liệu được thực hiện trên server. Điều này có nghĩa là tất cả mọi
việc xử lý và tối ưu hoá vấn tin, quản lý giao dịch được thực hiện tại server, trên đường
truyền chỉ có các gói tin yêu cầu và kết quả đáp ứng yêu cầu, như vậy sẽ giảm khối
lượng truyền tin trên mạng, tăng tốc độ xử lý dữ liệu của hệ thống.
12

Bài thu hoạch môn học “Cơ sở dữ liệu nâng cao” – CH 1101064 – T07.2012
Hình 3: Mô hình khách/ chủ
Kiến trúc Client/ Server đơn giản là một server truy cập bởi nhiều client. Sự
khác biệt quan trọng của hệ thống này với cơ sở dữ liệu tập trung là CSDL chỉ được
lưu trên server và có phần mềm quản lý nó, do đó cách thức giao dịch và quản lý bộ
nhớ cache là khác nhau.
Kiến trúc nhiều server trong hệ thống được gọi là đa client – đa server. Với loại
này có hai chiến lược quản lý: hoặc là client quản lý kết nối nó tới server hoặc nó chỉ
biết server chủ và liên lạc với các server khác qua server chủ khi có yêu cầu.
• Hệ quản trị CSDL phân tán ngang hàng: cần phải có một định nghĩa nội tại riêng cho
mỗi vị trí, được gọi là lược đồ nội tại cục bộ LIS (local internal schema). Dữ liệu phân
tán thường được phân tán và nhân bản trên các vị trí khác nhau, vì vậy cần mô tả tổ
chức dữ liệu vật lý trên mọi vị trí. Kiến trúc của hệ cơ sở dữ liệu phân tán có ba mức:
nhiều khung nhìn dữ liệu khác nhau trong mức lược đồ ngoài, một mô hình duy nhất
mô tả khái niệm tàn cục, và nhiều mô hình khái niệm cục bộ tương ứng với lược đồ cục
bộ trên mỗi vị trí.
13
Bài thu hoạch môn học “Cơ sở dữ liệu nâng cao” – CH 1101064 – T07.2012
Hình 4: Mô hình kiến trúc hệ phân tán ngang hàng
III. LÀM VIỆC VỚI CƠ SỞ DỮ LIỆU PHÂN TÁN
1. Thiết kế cơ sở dữ liệu phân tán
Các cơ sở dữ liệu phân tán thường được thiết kế theo hướng top – down. Việc đầu
tiên cần thực hiện là phân mảnh. Mục đích của việc phân mảnh là tạo ra các đơn vị cấp
14
Bài thu hoạch môn học “Cơ sở dữ liệu nâng cao” – CH 1101064 – T07.2012
phát logic, sao cho chi phí thực hiện truy vấn thông tin là thấp nhất. Các bộ hoặc các
thuộc tính của quan hệ không thể xem như là một đơn vị cấp phát vì nó sẽ làm hệ thống
trở nên phức tạp hơn. Thiết kế phân mảnh bằng cách nhóm một số bộ được gọi là phân
mảnh ngang, hoặc nhóm một số thuộc tính được gọi là phân mảnh dọc. Các mảnh được
hình thành tạo ra các đơn vị cấp phát dữ liệu khác nhau.

a. Quy tắc phân mảnh: để đảm bảo cơ sở dữ liệu khi phân mảnh không thay đổi về ngữ
nghĩa.
-Tính đầy đủ: Quan hệ R được phân rã thành các mảnh R1, R2, , Rn thì mỗi mịc dữ liệu
có trong quan hệ R sẽ chứa trong ít nhất một mảnh Ri (i = 1 n). Quy tắc này đảm bảo
dữ liệu trong R được ánh xạ hoàn toàn vào các mảnh và không bị mất.
-Tính phục hồi: nếu một quan hệ R được phân rã thành cách mảnh
R1, R2, …, Rn thì khi đó 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 hoàn toàn các phụ
thuộc.
-Tính tách biệt: nếu 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). 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 phải được lặp lại trong tất cả các mảnh. Do đó tính tách biệt trong phân
mảnh dọc được hiểu là không liên quan tới khóa chính của quan hệ
b. Phân mảnh ngang: là việc phân 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 phụ thuộc vào điều kiện ràng buộc
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.
Phân mảnh ngang cơ sở được định nghĩa bằng phép chọn trên quan hệ đích của lược
đồ cơ sở dữ liệu: Ri = , I = 1 n. Trong đó Fi là biểu thức đại số quan hệ, nếu Fi là dạng
chuẩn hội thì nó là vị từ hội sơ cấp m
i
Ví dụ: xét quan hệ PROJ
15
Bài thu hoạch môn học “Cơ sở dữ liệu nâng cao” – CH 1101064 – T07.2012
F1: = {Budget <= 200.000} và F2: = {Budget > 200.000}
Khi đó quan hệ PROJ được phân rã thành các mảnh ngang PROJ1 và PROJ2 như
sau:
- PROJ1 = σBUDGET≤200000(PROJ)
- PROJ2 = σBUDGET>200000(PROJ)

Vị từ đơn giản có tính đầy đủ (Completeness) và tính cực tiểu (Minimality): Tập các
vị từ đơn giản Pr là đầy đủ khi và chỉ khi xác suất truy nhập bởi mỗi ứng dụng tới bộ
bất kỳ của một mảnh hội sơ cấp bất kỳ được định nghĩa theo Pr là như nhau. Vị từ đầy
đủ sẽ đảm bảo cho các mảnh thoả mãn các vị từ sơ cấp, nhất quán về mặt logic. Đồng
nhất về mặt thống kê theo cách ứng dụng truy nhập. Vì vậy, sử dụng một tập vị từ đầy
đủ làm cơ sở cho việc phân mảnh ngang cơ sở.
Đặc tính thứ hai của tập các vị từ có tính cực tiểu. Nếu một vị từ f phân mảnh thành
các mảnh nhỏ hơn f1 và f2, thì phải có ít nhất một ứng dụng truy nhập đến f1 và f2 theo
các cánh khác nhau. Khi đó nói rằng vị từ đơn giản f có tính liên đới (Relevant), ảnh
hưởng đến việc xác định một phân mảnh. Nếu tất cả các vị từ của tập Pr đều có liên đới
thì tập Pr được gọi là cực tiểu.
Thuật toán COM_MIN tạo ra một tập đầy đủ và cực tiểu các vị từ Pr’ từ một tập các
vị từ đơn giản Pr cho trước theo quy tắc: một quan hệ hoặc một mảnh được phân hoạch
thành ít nhất hai phần và chúng được truy cập khác nhau bởi một ứng dụng. Mảnh fi
được định nghĩa theo một vị từ hội sơ cấp trên Pr’, quy ước là fi của Pr’. Thuật toán
COM_MIN:
Input: R là quan hệ cần phân mảnh ngang cơ sở. Pr là tập các vị từ đơn giản
Output: Pr’ là tập các vị từ đơn giản.
Khai báo: F là tập các mảnh hội sơ cấp.
Begin
Tìm một vị từ pi ∈ Pr sao cho pi phân hoạch R theo qui tắc
Pr’ ← pi
16
Bài thu hoạch môn học “Cơ sở dữ liệu nâng cao” – CH 1101064 – T07.2012
Pr ← Pr – pi
F ← fi {fi là mảnh hội sơ cấp theo pi }
do
begin
Tìm một pj∈Pr sao cho pj phân hoạch một mảnh fk của Pr’ theo qui tắc
Pr’ ← Pr’ ∪ pj

Pr ← Pr - pj
F ← F ∪ fi
If ∃pk ∈ Pr’, một vị từ không có liên đới
then
begin
Pr’ ← Pr’ - pk
F ← F - pk
end-if
end-begin
until Pr đầy đủ
End. { COM_MIN}
Có 2 loại phân mảnh ngang là phân mảnh ngang nguyên thủy và phân mảnh ngang
dẫn xuất.
- 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ệ đó. Thuật toán phân mảnh ngang nguyên thủy:
- Thuật toán: PHORIZONTAL
Input: R là quan hệ cần phân mảnh ngang cơ sở.
Pr là tập các vị từ đơn giản
Output: M là tập các vị từ hội sơ cấp
Begin
Pr’ ← COM_MIN(R, Pr)
17
Bài thu hoạch môn học “Cơ sở dữ liệu nâng cao” – CH 1101064 – T07.2012
Xác định tập M các vị từ hội sơ cấp
Xác định tập I các phép kéo theo giữa các pi ∈ Pr’
For mỗi mi ∈ M do
If m
i
mâu thuẫn với I then
M ← M – m

i
End_if
End_for
End. {PHORIZONTAL}
Ví dụ: Phân hoạch quan hệ PAY thành hai mảnh P1 và P2
P1: Tập các bộ có Sal <= 30000 ( (PAY))
P2: Tập các bộ có Sal > 30000 ( (PAY))
P1 P2
Title Sal Title Sal
Mech. Eng 27000 Elect. Eng 40000
Programmer 24000 Syst. Anal 34000
- 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.
Mục tiêu của phân mảnh ngang dẫn xuất là phân chia các quan hệ thành các mảnh của
quan hệ chủ được định nghĩa trên các thuộc tính của quan hệ thành viên. Vì vậy liên kết
giữa quan hệ chủ và quan hệ thành viên được định nghĩa như là phép nối bằng (equijoin)
hay nối nửa (semijoin)
Cho một đường nối L trong đó Owner(L) = S và Member(L) = R. Phân mảnh ngang
dẫn xuất của R được định nghĩa như sau:
Ri = R α S
i
(1 ≤ i ≤ k) trong đó k là số mảnh
S
i
= (S) Fi là biểu thức định nghĩa mảnh ngang nguyên thuỷ Si
Cho Owner(L) = PAY và Member(L) = EMP. Nhóm các kỹ sư (Engineer) thành hai
nhóm theo lương SAL≤30000 và SAL>30000.
18
Bài thu hoạch môn học “Cơ sở dữ liệu nâng cao” – CH 1101064 – T07.2012
PAY1 = (PAY)
PAY2 = (PAY)

Hai mảnh EMP1 và EMP2 được định nghĩa như sau:
EMP1 = EMP ∝ PAY1
EMP2 = EMP ∝ PAY2
PAY1 PAY2
Title Sal Title Sal
Mech. Eng 27000 Elect. Eng 40000
Programmer 24000 Syst. Anal 34000
EMP1 EMP2
ENO Ename Title ENO Ename Title
E3 A. Lee Mech. Eng E1 J. Doe Elect. Eng
E4 J. Miller Programme
r
E2 M. Smith Syst. Anal
E6 R. David Mech. Eng E5 J. Jones Syst. Anal
c. Phân mảnh dọc:
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à khoá của nó. 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 đó. Để có được các lời giải tối
ưu cho bài toán phân mảnh dọc, phải sử dụng hai phương pháp Heuristic cho phân mảnh
dọc các quan hệ toàn cục:
1. Nhóm thuộc tính: bắt đầu gán mỗi thuộc tính cho một mảnh và trong mỗi bước,
nối một số mảnh lại với nhau cho đến khi thỏa điều kiện.
2. Tách mảnh bắt đầu bằng một quan hệ và quyết định cách phân chia dựa trên hành
vi truy nhập của các ứng dụng trên các thuộc tính
Việc nhân bản các thuộc tính khóa tại mỗi trạm sẽ bảo đảm tính toàn vẹn ngữ nghĩa
và làm giảm đi quá trình trao đổi dữ liệu.
19
Bài thu hoạch môn học “Cơ sở dữ liệu nâng cao” – CH 1101064 – T07.2012

Thông tin cần thiết để phân mảnh dọc:
• Ma trận giá trị sử dụng thuộc tính:
Gọi Q={q1, q2, , qq} là tập các câu vấn tin của người dùng hay còn gọi là các ứng
dụng của người sử dụng., sẽ thực hiện trên quan hệ R(A1, A2,…,An). Khi đó ma trận giá
trị sử dụng thuộc tính có q hàng và n cột. Các phần tử được ký hiệu là giá trị câu vấn tin qi
i=1 q sử dụng thuộc tính Aj , j=1 n, ký hiệu là use(qi, Aj) được định nghĩa như sau:
Use (q
i,
A
j
) = (i = 1 q, j = 1 n)
Use (q
i,
A
j
) = 1 nếu Aj được vấn tin qi tham chiếu, và = 0 nếu ngược lại.
A
1
A
2
A
3
q
1
0 1 1
q
2
0 1 0
q
3

1 0 0
• Ma trận hấp dẫn của thuộc tính: các thông tin cho phân mảnh dọc có mối quan hệ mật thiết
với các ứng dụng. Các thuộc tính thường được truy nhập chung với nhau, cần phải định
nghĩa một giá trị để chỉ ra mức độ liên hệ giữa các thuộc tính, được gọi là sự hấp dẫn
(Affinity) của thuộc tính.
Số đo hấp dẫn giữa hai thuộc tính Ai, Aj của quan hệ R(A1,A2,…,An) ứng với tập
ứng dụng Q={q1,q2,…,qq} được định nghĩa như sau:
aff (A
i
, A
j
) = (i = 1, , q)
A
1
A
2
A
3
A
4
A
1
45 0 45 0
A
2
0 80 5 75
A
3
45 5 53 3
A

4
0 75 3 78
• Thuật toán gom nhóm:
Thuật toán năng lượng nối BEA (Bond Energy Algorithm) nhóm các thuộc tính của
một quan hệ dựa trên các giá trị hấp dẫn thuộc tính trong ma trận AA. Thuật toán hoán
20
Bài thu hoạch môn học “Cơ sở dữ liệu nâng cao” – CH 1101064 – T07.2012
hoán vị các hàng và các cột của ma trận hấp dẫn thuộc tính AA, sao cho số đo hấp dẫn
chung AM là lớn nhất (Global Affinity Measure). Kết quả sẽ là một ma trận gọi là ma trận
hấp dẫn tụ CA (Cluster Affinity). Thuật toán gồm 3 bước :
Bước 1: Đặt cố định một cột của AA vào trong CA. Thuật toán chọn cột 1.
Bước 2: Giả sử có i cột đã được thực hiện và đặt vào CA. Lấy lần lượt một trong (n-
i) cột còn lại và thử đặt vào (i+1) vị trí còn lại trong ma trận CA .Ssao cho số đo hấp dẫn
chung AM (Global Affinity Measure) tại vị trí đó là lớn nhất. Thuật toán tiếp tục cho đến
khi không còn cột nào để đặt.
Bước 3: Cuối cùng là sắp thứ tự hàng. Khi thứ tự cột đã đựợc xác định thì các hàng
cũng cần phải sắp xếp vị trí phù hợp với các vị trí tương đối của các cột.
Thuật toán BEA (Thuật toán năng lượng nối)
Input: AA:ma trận hấp dẫn thuộc tính
Output: CA : Ma trận hấp dẫn tụ nhóm
Begin
{Khởi tạo , nhớ rằng AA là ma trận n x n}
CA(.,1)←AA(.,1)
CA(.,2)←AA(.,2)
index ← 3
While index <= n do { chọn vị trí tốt nhất cho thuộc tính AAindex}
Begin
For i From 1 to index-1 by 1 do
Tính cont(Ai-1,Aindex,Ai )
End-for

Tính cont(Aindex-1,Aindex,Aindex+1) {Điều kiện biên}
loc←vị trí được đặt bởi giá trị cont lớn nhất
For j From index To loc By -1
Do
21
Bài thu hoạch môn học “Cơ sở dữ liệu nâng cao” – CH 1101064 – T07.2012
CA(.,j) ←AA(.,j-1)
End-for
CA(.,loc) ←AA(.,index)
index←index+1
End-While
End {BEA}
Cầu nối (Bond) giữa 2 thuộc tính Ax và Ay định nghĩa như sau:
bond (Ai, Aj) =
Đóng góp thực (Net contribution) cho số đo hấp dẫn chung khi đặt thuộc tính Ak vào
giữa Ai và Aj là:
cont(Ai, Ak, Aj) = 2*bond(Ai, Ak) + 2*bond(Ak, Aj) – 2*bond(Ai, Aj)
Sau khi tính cont tất cả vị trí Ak có thể chèn, giá trị cont nào lớn nhất thì ta sẽ lựa
chọn. Lặp lại quá trình cho đến khi tất cả các thuộc tính đều được xếp vào vị trí trên ma
trận ái lực.
Ví dụ, ma trận AA trên sau khi biến đổi về ma trận CA
A
1
A
3
A
2
A
4
A

1
45 45 0 0
A
3
45 53 5 3
A
2
0 5 80 75
A
4
0 3 75 78
• Thuật toán phân mảnh:
Ký hiệu Q = {q1, q2, , qn} là tập các ứng dụng. Khi đó
AQ(qi) = {Aj| use (qi, Aj)} : Tập các thuộc tính tương ứng được ứng dụng qi truy
cập.
TQ = {qi | AQ(qi) TA} : Tập các ứng dụng truy cập trên thuộc tính TA
BQ = {qi | AQ(qi) BA} : Tập các ứng dụng truy cập trên thuộc tính BA
OQ = Q – {TQ BQ}
22
Bài thu hoạch môn học “Cơ sở dữ liệu nâng cao” – CH 1101064 – T07.2012
Nếu bậc của ma trận là n thì có n-1 vị trí có thể làm điểm chia dọc trên đường chéo
ma trận CA. Vị trí tốt nhát để phân chia là vị trí tạo ra TQ và BQ sao cho tổng truy cập
từng mảnh là tối đa và tổng truy cập tới hai mảnh là tối thiểu.
CTQ =
CBQ =
COQ =
Tổng = CTQ*CBQ – COQ
2
Nếu vị trí nào có giá trị tổng lớn nhất thì ta chọn vị trí đó.
23

Bài thu hoạch môn học “Cơ sở dữ liệu nâng cao” – CH 1101064 – T07.2012
2. Kiểm soát dữ liệu ngữ nghĩa
Cơ sở dữ liệu không chỉ tập trung ở một nơi mà phân tán trên nhiều site khác nhau.
Khi có một yêu cầu về cập nhật dữ liệu, làm thế nào để dữ liệu vẫn đảm bảo được tính
nhất quán và toàn vẹn dữ liệu. Định nghĩa các quy tắc nhằm kiểm soát các thao tác dữ liệu
là một trong những yêu cầu quan trọng của một hệ quản trị cơ sở dữ liệu tập trung hay
phân tán. Kiểm soát dữ liệu ngữ nghĩa bao gồm:
• Quản lý khung nhìn:
Một khung nhìn dữ liệu là một cửa sổ động theo nghĩa là nó phản ánh các hoạt động
cập nhật trên cơ sở dữ liệu, là một quan hệ ảo được định nghĩa như là một kết quả truy vấn
trên quan hệ cơ sở hoặc trên các quan hệ trung gian. Quản lý khung nhìn có tác dụng bảo
đảm được tính an toàn dữ liệu. Nó cung cấp một cách nhìn tổng quát và trực diện nhất về
các thao tác được thực hiện trên CSDL. Người sử dụng chỉ được phép truy nhập CSDL
qua khung nhìn, không thể nhìn thấy hoặc không thể thao tác trên các dữ liệu ẩn.
Trong các hệ thống phân tán, các quan hệ cơ sở dẫn xuất là các mảnh quan hệ được
lưu trữ trên các vị trí khác nhau. Vì vậy định nghĩa khung nhìn, tên khung nhìn , cấu trúc
của khung nhìn và câu truy vấn truy xuất của các mảnh được sử dụng làm các quan hệ cơ
sở trong các ứng dụng phải được lưu trữ trong các thư mục mô tả quan hệ cơ sở. Phụ
thuộc vào mức độ tự trị của vị trí, các định nghĩa khung nhìn có thể tập trung tại một vị trí,
hoặc được nhân bản một phần hoặc toàn bộ. Trong các trường hợp, thông tin liên kết
khung nhìn với vị trí định nghĩa của nó phải được nhân bản. Nếu định nghĩa khung nhìn
không có tại vị trí của câu truy vấn thì phải truy xuất từ xa đến vị trí có định nghĩa khung
nhìn.
Khung nhìn trong các hệ thống phân tán được dẫn xuất từ các quan hệ phân tán, vì
vậy có thể có chi phí cao khi ước lượng. Một khung nhìn có trhể có nhiều người cùng sử
dụng, vì vậy cần đưa ra các giải pháp nhằm tối ưu hoá dẫn xuất khung nhìn.
24
Bài thu hoạch môn học “Cơ sở dữ liệu nâng cao” – CH 1101064 – T07.2012
• Đảm bảo an toàn, bảo mật dữ liệu:
An toàn dữ liệu là nhiệm vụ quan trọng của các hệ thống cơ sở dữ liệu, nhằm bảo vệ

dữ liệu không bị truy xuất “bất hợp pháp”. An toàn dữ liệu bao gồm 2 vấn đề:
Bảo vệ dữ liệu: nhằm tránh những người không được quyền hiểu được nội dung vật
lý của dữ liệu Phương pháp sử dụng thông dụng nhất là mã hoá dữ liệu.
Biện pháp kiểm soát cấp quyền: nhằm đảm bảo rằng chỉ những người sử dụng được
phép mới có thể được thực hiện các thao tác được phép trên cơ sở dữ liệu. Cấp quyền truy
xuất cơ sở dữ liệu cho người sử dụng là người quản trị cơ sở dữ liệu. Người sử dụng khác
nhau được cấp các quyền khác nhau dưới sự kiểm soát của hệ thống. Từ các giải pháp
kiểm soát cấp quyền.trong các hệ thống tập trung có thể đề xuất các giải pháp kiểm soát
cấp quyền phân tán
• Kiểm soát tính toàn vẹn ngữ nghĩa.
Một vấn đề quan trọng và khó khăn cho một hệ CSDL là bảo đảm được tính nhất
quán cơ sở dữ liệu (Databasse Consistency). Một trạng thái CSDL được gọi là nhất quán
nếu nó thỏa một tập các ràng buộc, được gọi là ràng buộc toàn vẹn ngữ nghĩa (Semantic
Integrity Constrsint). Đảm bảo tính nhất quán của CSDL, kiểm soát toàn vẹn ngữ nghĩa
bằng cách loại bỏ hoặc hoá giải các trình cập nhật làm cho CSDL không nhất quán. CSDL
đã cập nhật nghĩa là đã thỏa tập các ràng buộc toàn vẹn.
Có hai loại ràng buộc toàn vẹn: ràng buộc cấu trúc ( Structural Constraint) và ràng
buộc hành vi (Behavioral Constraint). Ràng buộc cấu trúc mô tả những đặc tính ngữ nghĩa
cơ bản của mô hình. Ví dụ như ràng buộc khóa trong mô hình quan hệ, hoặc các liên kết
một-nhiều giữa các đối tượng trong mô hình mạng. Ngược lại, ràng buộc hành vi mô tả
mối liên kết giữa các đối tượng, như khái niệm phụ thuộc hàm trong mô hình quan hệ.
Vấn đề chủ yếu của kiểm soát toàn vẹn phân tán là chi phí truyền và chi phí xử lý ép
buộc thi hành các phán đoán phân tán. Hai vấn đề chính trong thiết kế một tiểu hệ thống
toàn vẹn phân tán là định nghĩa các phán đoán phân tán và các thuật toán ép buộc nhằm hạ
thấp tối đa chi phí kiểm tra toàn vẹn phân tán.
25

×