Tải bản đầy đủ (.pdf) (79 trang)

Xử lý dữ liệu và bài toán cấp phát

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 (1.28 MB, 79 trang )

I

ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC CNTT VÀ TRUYỀN THÔNG

LẠI DƢƠNG QUANG

XƢ LÝ DỮ LIỆU VÀ BÀI TOÁN CẤP PHÁT

LUẬN VĂN THẠC SĨ: KHOA HỌC MÁY TÍNH

Thái Nguyên, tháng 6 năm 2015

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

II

ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC CNTT VÀ TRUYỀN THÔNG

LẠI DƢƠNG QUANG

XƢ LÝ DỮ LIỆU VÀ BÀI TOÁN CẤP PHÁT

Chuyên ngành: Khoa học máy tính
Mã số:
60 48 01 01

LUẬN VĂN THẠC SĨ: KHOA HỌC MÁY TÍNH


GV hƣớng dẫn: PGS. NCVC. TS Lê Huy Thập

Thái Nguyên, 2015

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

III

LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu do chính tôi thực hiện.
Các số liệu, kết quả nêu trong luận văn là trung thực và chƣa từng đƣợc ai công
bố trong bất kỳ công trình nào khác.
Thái Nguyên, Ngày 10 tháng 4 năm 2015
Tác giả

Lại Dƣơng Quang

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

IV

LỜI CẢM ƠN
Trƣớc hết em xin trân trọng gửi lời cảm ơn đến toàn thể các thầy cô giáo Trƣờng
Đại học Công nghệ thông tin và Truyền thông Thái Nguyên đã dạy dỗ chúng em
trong suốt quá trình học tập chƣơng trình cao học tại trƣờng.
Đặc biệt em xin bày tỏ lòng biết ơn sâu sắc tới thầy giáo PGS. NCVC. TS Lê

Huy Thập đã quan tâm, định hƣớng và đƣa ra những lời góp ý, chỉnh sửa quí báu
cho em trong quá trình làm luận văn tốt nghiệp
Thái Nguyên, Ngày 10 tháng 4 năm 2015

Học viên

Lại Dƣơng Quang

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

V

MỞ ĐẦU
Ngày nay, công nghệ thông tin (CNTT) đã trở thành một nhân tố không thể thiếu
trong mọi lĩnh vực của đời sống xã hội. Sự bùng nổ nhu cầu xây dựng các hệ thống
thông tin, mà trƣớc hết là các hệ thống thông tin quản lý đã thu hút sự quan tâm của
nhiều nhà khoa học. Các hệ thống cơ sở dữ liệu (CSDL) đã lần lƣợt xuất hiện. Các
hệ thống CSDL truyền thống đƣợc tập trung quản lý tại một trạm đơn lẻ, việc tính
toán, xử lý và lƣu trữ các tập dữ liệu trở lên đơn giản và dễ dàng.
Khi nhu cầu thu thập, lƣu trữ, xử lý và trao đổi thông tin ngày càng tăng, các hệ
thống xử lý tập trung đã bộc lộ nhiều nhƣợc điểm nhƣ: Khó khăn trong việc tăng
khả năng lƣu trữ thông tin, độ sẵn sàng phục vụ của CSDL không cao khi số ngƣời
sử dụng tăng, khả năng tính toán của các máy tính đơn lẻ đang dần tới giới hạn vật
lý, mô hình tổ chức lƣu trữ và xử lý dữ liệu không phù hợp cho các tổ chức có hoạt
động rộng lớn, đa quốc gia. Những nhƣợc điểm này đã đƣợc khắc phục khá nhiều
trong hệ thống phân tán. Những sản phẩm của hệ thống phân tán đã xuất hiện nhiều
trên thị trƣờng và từng bƣớc chứng minh tính ƣu việt của nó hơn hẳn các hệ thống
tập trung truyền thống.

Với nhu cầu phát triển mạnh mẽ của công tác quản lý các hệ phân tán và cơ sở dữ
liệu phân tán để giải quyết các bài toán ”quản lý” phức tạp đang tồn tại trong các
ngành kinh tế, xã hội và an ninh quốc phòng,.... Nhằm hỗ trợ cho vấn đề nêu trên thì
việc tính toán, lập trình cấp phát và xử lý dữ liệu cũng phát triển theo. Đặc biệt, việc
phân mảnh các quan hệ trong CSDL và chuyển chúng đến các nút trên mạng cũng
nhƣ việc cập nhật thông tin (truy cập và truy xuất,...) đến các mảnh ở các vị trí phân
tán đã trở thành một chủ đề mới mẻ và đƣợc nhiều ngành khoa học, các bộ môn
chuyên ngành nghiên cứu, ứng dụng. Chính vì vậy, tôi đã lựa chọn đề tài:
“Xử lý dữ liệu và bài toán cấp phát” để nghiên cứu thực hiện.
Luận văn đƣợc trình bày trong 3 chƣơng, có phần mở đầu, phần kết luận, phần
mục lục, phần tài liệu tham khảo. Các nội dung cơ bản của luận văn đƣợc trình bày
theo cấu trúc nhƣ sau:

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

VI

CHƢƠNG 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN VÀ BÀI
TOÁN CẤP PHÁT.
1.1. Tổng quan về CSDL phân tán.
1.2. Bài toán cấp phát.
1.3. Kết luận chƣơng.
CHƢƠNG 2: XỬ LÝ DỮ LIỆU VÀ BÀI TOÁN CẤP PHÁT.
2.1. Thuật toán phân mảnh cơ sở dữ liệu.
2.1.1. Phân mảnh ngang.
2.1.2. Phân mảnh dọc.
2.1.3. Phân mảnh hỗn hợp.
2.2. Tính toán hàm mục tiêu và ràng buộc tại node mạng.

2.2.1. Hàm mục tiêu.
2.2.2. Ràng buộc.
2.3. Bài toán cấp phát dạng QHTT.
2.4. Kết luận chƣơng.
CHƢƠNG 3: CÀI ĐẶT VÀ ỨNG DỤNG TẠI CÔNG TY ĐẦU TƢ VÀ
THƢƠNG MẠI AN LỘC.
3.1. Khảo sát cơ sở dữ liệu của công ty đầu tƣ và thƣơng mại An Lộc và đƣa
ra yêu cầu của bài toán.
3.2. Xây dựng cơ sở dữ liệu phân tán.
3.3. Cài đặt và chạy chƣơng trình cấp phát.
3.4. Kết luận chƣơng.
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN CỦA ĐỀ TÀI.

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

VII

DANH MỤC HÌNH ẢNH
Hình 1.1: Hệ đa bộ xử lý có bộ nhớ chung ............................................................ 3
Hình 1.2: Hệ đa bộ xử lý có shared disk ................................................................ 3
Hình 1.3: Hệ đa bộ xử lý sở hữu cá nhân .............................................................. 3
Hình 1.4: CSDL đƣợc phân tán trên mạng ............................................................ 4
Hình 1.5: Phân mảnh hỗn hợp và tái thiết phân mảnh hỗn hợp ........................... 11
Hình 2.1: Phân mảnh hỗn hợp .............................................................................. 37
Hình 2.2: Truyền dữ liệu cho câu vấn tin ............................................................. 40
Hình 3.1: Giao diện ban đầu của bài toán ............................................................ 55
Hình 3.2: Giao diện sau khi tiến hành chọn số lƣợng máy trạm ......................... 56
Hình 3.3: Giao diện của quá trình chọn số lƣợng mảnh cơ sở dữ liệu ................. 57

Hình 3.4: Giao diện của quá trình chọn các mảnh cơ sở dữ liệu ......................... 58
Hình 3.5: Giao diện sau quá trình lựa chọn các mảnh cơ sở dữ liệu ................... 59
Hình 3.6: Giao diện lựa chọn các tham số từ file .txt có sẵn ............................... 60
Hình 3.7: Giao diện sau quá trình nhập các tham số ........................................... 61
Hình 3.8: Bảng kết quả của quá trình cấp phát .................................................... 62

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

VIII

DANH MỤC BẢNG BIỂU
Bảng 2.1: Quan hệ DuAn .......................................................................................... 25
Bảng 2.2: Quan hệ TraLuong ................................................................................... 26
Bảng 2.3: Mảnh dữ liệu (quan hệ) TraLuong1 .......................................................... 26
Bảng 2.4: Mảnh dữ liệu (quan hệ) TraLuong2 .......................................................... 27
Bảng 2.5: Phân hoạch ngang cho quan hệ DuAn: DuAnH1, DuAnH3, DuAnH4,
DuAnH6 .......................................................................................................................... 29
Bảng 3.1: Một số bản ghi của quan hệ Giao_Dich tiến hành phân mảnh ngang...... 51
Bảng 3.2: Bảng dữ liệu (quan hệ) của mảnh F1 ....................................................... 52
Bảng 3.3: Bảng dữ liệu (quan hệ) của mảnh F2 ...................................................... 53
Bảng 3.4: Bảng dữ liệu (quan hệ) của mảnh F3 ....................................................... 53
Bảng 3.5: Bảng dữ liệu (quan hệ) của mảnh F4 ....................................................... 53
Bảng 3.6: Bảng dữ liệu (quan hệ) của mảnh F5 ....................................................... 53
Bảng 3.7: Bảng dữ liệu (quan hệ) của mảnh F6 ....................................................... 53

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>


IX

DANH MỤC CÁC THUẬT NGỮ VIẾT TẮT
Thuật ngữ

Tên viết tắt

Cơ sở dữ liệu phân tán
Cơ sở dữ liệu
Dữ liệu

CSDLPT
CSDL
DL

Quy hoạch tuyến tính

QHTT

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

X

MỤC LỤC
LỜI CAM ĐOAN ............................................................................................................I
LỜI CẢM ƠN ................................................................................................................. II
MỞ ĐẦU ........................................................................................................................ III

DANH MỤC HÌNH ẢNH ............................................................................................. V
DANH MỤC BẢNG BIỂU ........................................................................................... VI
DANH MỤC CÁC THUẬT NGỮ VIẾT TẮT .............................................................VII
MỤC LỤC ................................................................................................................... VIII
CHƢƠNG 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU VÀ BÀI TOÁN CẤP PHÁT ....... 1

1.1.

Tổng quan về CSDL phân tán ................................................................1

1.1.1.

Xử lý phân tán ..................................................................................1

1.1.2.

Hệ cơ sở dữ liệu phân tán và hệ quản trị cơ sở dữ liệu phân tán .....4

1.1.3.

Một số yêu cầu của hệ cơ sở dữ liệu phân tán .................................5

1.1.4.

Các đặc điểm của hệ CSDL phân tán.............................................13

1.1.5.

Kiến trúc hệ quản trị cơ sở dữ liệu phân ........................................14


1.2.

Bài toán cấp phát...................................................................................16

1.2.1.

Giới thiệu về bài toán cấp phát ......................................................16

1.2.2.

Mô tả bài toán cấp phát ..................................................................20

1.2.3.

Hàm mục tiêu (hàm chi phí) ..........................................................20

1.2.4.

Các ràng buộc.................................................................................21

1.3.

Kết luận chƣơng ....................................................................................22

CHƢƠNG 2: XỬ LÝ DỮ LIỆU VÀ BÀI TOÁN CẤP PHÁT ................................... 22

2.1.

Thuật toán phân mảnh cơ sở dữ liệu .....................................................22


2.1.1.

Thuật toán phân mảnh ngang nguyên thủy ....................................22

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

XI

2.1.2.

Phân mảnh dọc ...............................................................................30

2.1.3.

Phân mảnh hỗn hợp ........................................................................38

2.2.

Tính toán hàm mục tiêu và ràng buộc tại node mạng ...........................39

2.2.1.

Hàm mục tiêu .................................................................................39

2.2.2.

Ràng buộc ......................................................................................44


2.3.

Bài toán cấp phát dạng QHTT ..............................................................45

2.4.

Kết luận chƣơng ....................................................................................49

CHƢƠNG 3: CÀI ĐẶT VÀ ỨNG DỤNG TẠI CÔNG TY ĐẦU TƢ VÀ THƢƠNG
MẠI AN LỘC

3.1.

50

Khảo sát cơ sở dữ liệu của công ty đầu tƣ và thƣơng mại An Lộc và

đƣa ra yêu cầu của bài toán ...................................................................................50
3.1.1.

Mô tả hệ thống ...............................................................................50

3.1.2.

Yêu cầu của bài toán ......................................................................51

3.2.

Xây dựng cơ sở dữ liệu phân tán ..........................................................52


3.3.

Cài đặt và chạy chƣơng trình cấp phát..................................................58

3.4.

Kết luận chƣơng ....................................................................................66

KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN ...................................................................... 67
TÀI LIỆU THAM KHẢO ............................................................................................... 68

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

1

CHƢƠNG 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU VÀ BÀI
TOÁN CẤP PHÁT
1.1. Tổng quan về CSDL phân tán
Nguyên lý cơ bản của các hệ cơ sở dữ liệu phân tán (CSDLPT) đƣợc xây dựng
dựa trên sự hợp nhất của hai hƣớng tiếp cận lý thuyết các hệ cơ sở dữ liệu (CSDL)
và công nghệ mạng máy tính.
Động lực thúc đẩy sự phát triển mạnh mẽ của CSDLPT, nhu cầu tích hợp đa
dạng các loại dữ liệu (DL) nhằm cung cấp nhiều loại hình dịch vụ cho ngƣời sử
dụng. Thêm vào đó, với mục tiêu chia sẻ tài nguyên, khai thác, nâng cao khả năng
tích hợp và trao đổi tài nguyên mạng cũng thúc đẩy quá trình sử dụng các hệ thống
phân tán.
Nhu cầu thu thập, lƣu trữ, xử lý và trao đổi thông tin ngày càng tăng, các hệ
thống xử lý tập trung đã bộc lộ những nhƣợc điểm sau: [14][13]

- Tăng khả năng lƣu trữ thông tin là khó khăn, bởi bị giới hạn tối đa của
thiết bị nhớ.
- Độ sẵn sàng phục vụ của CSDL không cao khi số ngƣời sử dụng tăng.
- Khả năng tính toán của các máy tính đơn lẻ đang dần tới giới hạn vật lý.
- Mô hình tổ chức lƣu trữ, xử lý dữ liệu tập trung không phù hợp cho
những tổ chức kinh tế, xã hội có hoạt động rộng lớn, đa quốc gia.
1.1.1. Xử lý phân tán
Hệ xử lý phân tán hay còn gọi là hệ thống tính toán phân tán đó là một hệ thống
bao gồm một số đơn vị xử lý tự vận hành đƣợc liên kết thành mạng và hợp đồng
thực hiện các nhiệm vụ mà chúng đƣợc phân công. Các đơn vị xử lý có thể thực
hiện đƣợc các chƣơng trình tiền định trên đó.
Những đối tƣợng đƣợc phân tán:
- Các thiết bị xử lý, các chức năng xử lý: Các chức năng của hệ thống có
thể đƣợc chuyển giao cho các thành phần hệ thống.

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

2

- Dữ liệu: Dữ liệu đƣợc dùng bởi một số ứng dụng có thể đƣợc phân tán
tới một số vị trí xử lý.
- Quyền điều khiển: Quyền điều khiển một số nhiệm vụ cũng đƣợc phân
tán.
Phân loại các hệ thống phân tán:
Chúng ta có thể phân loại các hệ thống phân tán theo các tiêu chí sau đây
- Mức độ kết nối;
- Sự liên đới giữa các thành phần;
- Cấu trúc tƣơng giao;

- Sự đồng bộ giữa các thành phần.
Tại sao phải phân tán:
- Nhằm thích ứng tốt hơn với việc phân bố rộng rãi của các công ty, xí
nghiệp.
- Nhiều ứng dụng công nghệ hiện đại cần đƣợc phân tán.
Lý do của việc xử lý phân tán:
Để thực hiện tốt hơn các bài toán lớn và phức tạp mà chúng gặp phải hiện nay
bằng cách sử dụng quy tắc ”Chia để trị”.
Các ƣu điểm cơ bản của xử lý phân tán:
- Tận dụng đƣợc sức mạnh tính toán xử lý song song bằng cách sử dụng
nhiều bộ xử lý đồng thời.
- Giải quyết bài toán theo từng nhóm hoạt động độc lập nên có thể kiểm
soát đƣợc chi phí phát triển phần mềm.
- Các hệ cơ sở dữ liệu phấn tán cũng có thể đƣợc xem xét để phân tán
nhằm mục đích xử lý hiệu quả hơn.
Một số hệ thống xử lý hay đƣợc dùng:

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

3

- Hệ thống đa bộ xử lý có bộ nhớ chung (hình 1.1)

Hình 1.1: Hệ đa bộ xử lý có bộ nhớ chung
- Hệ đa bộ xử lý chia sẻ đĩa (shared disk) (hình 1.2 )

Hình 1.2: Hệ đa bộ xử lý có shared disk
- Hệ đa bộ xử lý sở hữu cá nhân (hình1.3)


Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

4

Hình 1.3: Hệ đa bộ xử lý sở hữu cá nhân
Ghi chú:
Phân bố vật lý không nhất thiết là phải cách xa nhau về mặt địa lý; chúng có thể
ở trong cùng máy, một văn phòng,... Duy có điều là việc giao tiếp giữa chúng đƣợc
thực hiện trên mạng và mạng máy tính đƣợc xem là tài nguyên dùng chung duy
nhất.
1.1.2. Hệ cơ sở dữ liệu phân tán và hệ quản trị cơ sở dữ liệu phân tán
Hệ CSDL phân tán (Distributed Database System – DDBS) là một tập hợp dữ
liệu có liên đới logic và đƣợc phân bố trên các nút của một mạng máy tính.
Hệ quản trị CSDL phân tán (Distributed Database Management System –
DDBMS) là một hệ thống phần mềm cho phép quản lý các hệ CSDLPT và làm cho
việc phân tán trở nên vô hình đối với ngƣời sử dụng.
Nhƣ vậy hệ CSDLPT là một tập các tệp dữ liệu vừa có liên đới logic, vừa phải có
cùng cấu trúc và vừa phải đƣợc truy xuất qua một giao diện chung. Và phân bố vật
lý của các dữ liệu không phải là vấn đề quyết định.
Nhận xét:
Nếu CSDL nằm tại một nút mạng thì nó không phải là hệ CSDL phân tán, vì vấn
đề quản trị CSDL không khác với quản trị CSDL trong môi trƣờng tập trung kiểu
client/server của mạng.
Nếu một cơ sở dữ liệu đƣợc phân tán trên nhiều nút mạng, khi đó CSDL sẽ là cơ
sở dữ liệu phân tán (hình 1.4).

Số hóa bởi Trung tâm Học liệu - ĐHTN


/>

5

Hình 1.4: CSDL được phân tán trên mạng
1.1.3. Một số yêu cầu của hệ cơ sở dữ liệu phân tán
a. Yêu cầu phân mảnh, nhân bản và vô hình
Từ lý do xã hội và kinh tế xã hội phi tập trung, nên để có hiệu quả kinh tế ngƣời
ta phân mảnh, nhân bản, phân tán và xử lý chúng tại các vị trí khác nhau.
Ví dụ 1.1:
Một công ty máy tính, có các văn phòng ở Hà Nội , Hải Phòng, Nha Trang và
TP. Hồ Chí Minh, có một số dự án đƣợc thực hiện tại các địa điểm đó, và muốn
dùng CSDL để quản lý nhân công, quản lý dự án và các dữ liệu liên quan khác. Giả
sử CSDL là CSDL quan hệ , đƣợc cho bởi các quan hệ sau:
- Quan hệ nhân viên: NhanVien(MaNV, TenNV, TrinhDoCM)
Trong đó NhanVien là tên quan hệ nhân viên, MaNV là mã nhân viên - khóa
chính, TenNV là tên nhân viên, TrinhDoCM là trình độ chuyên môn.
- Quan hệ dự án: DuAn(MaDuAn, TenDuAn, NganSach)
Trong đó MaDuAn là mã số dự án - khóa chính, TenDuAn - tên dự án và
NganSach - ngân sách dự án.
- Quan hệ trả lƣơng: TraLuong(TrinhDoCM, Luong)
Trong đó TrinhDoCM là trình đọ chuyên môn - khóa chính, Luong - Tiền lƣơng.
- Quan hệ phân nhiệm: PhanNhiem(MaNV, MaDuAn, ThoiGianLV,
ChucVu)
Trong đó PhanNhiem là quan hệ phân công nhiệm vụ, MaNV - khóa ngoại,
MaDuAn - khóa ngoại, (MaNV, MaDuAn) - khóa chính, ThoiGianLV là thời gian
làm việc, ChucVu là chức vụ.
Yêu cầu phân mảnh CSDL
Giả sử công ty đƣợc phân tán các vị trí khác nhau nhƣ Hà Nội, Hải Phòng, Nha

Trang và TP. Hồ Chí Minh, nên công ty muốn để dữ liệu về các nhân viên các dự án
của vị trí nào đƣợc lƣu ở vị trí đó, do đó cần phải phân hoạch các quan hệ NhanVien

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

6

và DuAn và lƣu chúng taị các vị trí nhƣ đã yêu cầu. Quá trình làm này đƣợc gọi là
phân mảnh.
Yêu cầu nhân bản
Do yêu cầu về hiệu quả và độ tin cậy cho CSDL nên một phần dữ liệu đã đƣợc
phân mảnh ở trên cần phải đƣợc lƣu bản sao tại một số vị trí khác. Quá trình này
đƣợc gọi là nhân bản.
Do tính chất phân tán của công việc kinh doanh của công ty, ngƣời ta muốn đặt
dữ liệu về các nhân viên của văn phòng ở Hải Phòng đƣợc lƣu ở Hải Phòng, nhân
viên của văn phòng ở Hà Nội đƣợc lƣu ở Hà Nội v.v… Nhƣ vậy cần có một qúa
trình phân hoạch các quan hệ này và lƣu các phân hoạch đó tại các vị trí khác nhau.
Yêu cầu vấn tin vô hình
Ngƣời sử dụng đặt câu hỏi vấn tin nhƣ với CSDL tập trung tại một điểm nút nào
đó mà họ muốn.
Vô hình về độc lập dữ liệu là sự vô hình các chi tiết về cấu trúc lƣu trữ dữ liệu nó
là dạng vô hình cơ bản của hệ quản trị CSDL phân tán và CSDL tập trung.
Do định nghĩa CSDL nên thƣờng có hai mức độc lập là: mô tả cấu trúc logic của
dữ liệu và định nghĩa về cấu trúc vật lý. Vì vậy, chúng ta có thể nói đến hai loại độc
lập dữ liệu: mức logic thƣờng đƣợc xem là định nghĩa lƣợc đồ, còn mức vật lý đƣợc
gọi là mô tả dữ liệu vật lý.
- Độc lập dữ liệu về cấu trúc logic: Đó là tính độc lập của các ứng dụng
với những thay đổi trong cấu trúc logic của CSDL; tức là nếu có một

chƣơng trình ứng dụng nào đó truy xuất vào một tập con thuộc tính nào
đó của CSDL thì nó sẽ không bị ảnh hƣởng nếu ta thêm hoặc bớt một số
thuộc tính khác (không thuộc tập con thuộc tính trên) vào hoặc từ CSDL
đã cho.
- Độc lập dữ liệu về cấu trúc vật lý: là vô hình các chi tiết về cấu trúc lƣu
trữ dữ liệu. Ngƣời viết ứng dụng không cần quan tâm đến dữ liệu để ở

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

7

đâu (ổ đĩa, hay băng từ, nút mạng,… ) và cách truy xuất dữ liệu (ví dụ
tuần tự hay ngẫu nhiên).

Vô hình liên kết mạng
Ngƣời sử dụng đƣợc tách ra khỏi mọi chi tiết hoạt động của mạng, không biết có
sự hiển diện của mạng - nghĩa là ngƣời sử dụng không biết là mình đang làm việc
với CSDL tập trung hay phân tán. Vô hình liên kết mạng có thể đƣợc chia thành hai
loại:
- Vô hình vị trí: Vô hình vị trí là việc thực hiện một lệnh nào đó độc lập
với vị trí dữ liệu đƣợc lƣu trữ.
- Vô hình đặt tên: Vô hình đặt tên là ngƣời sử dụng dùng một tên duy nhất
đƣợc hệ thống đặt trƣớc cho mỗi đối tƣợng CSDL mà không cần biết ai
đặt tên đó và tên đó nằm ở đâu,... Nếu không có vô hình đặt tên ngƣời sử
dụng bị buộc phải gắn tên vị trí làm thành phần tên của tên đối tƣợng.
Chẳng hạn, HaiPhong, NhanVien, TenNV,…
Vô hình nhân bản
Vô hình nhân bản làm cho ngƣời sử dụng không thể biết họ đang làm việc với

các quan hệ (hoặc các mảnh) gốc hay với các bản sao.
Việc nhân bản sẽ làm tăng hiệu quả vì có thể làm giảm xung đột đƣờng truyền
khi truy cập vào cơ sở dữ liệu, giảm thời gian truyền dữ liệu và tăng độ an toàn và
bảo mật. Hơn nữa nếu một số máy lƣu dữ liệu có "hỏng hóc" thì các máy khác có
thể truy cập đến các nhân bản khác,…
Việc nhân bản gây ra nhiều khó khăn về cập nhật, vì khi một nhân bản có sự thay
đổi (xóa, sửa, thêm,…) thì các nhân bản khác kể cả bản gốc liệu có cập nhật kịp
thời hay không?
Việc có nhân bản hay không, bao nhiêu bản, lƣu trữ của bản sao tại nút nào là tùy
thuộc vào nhu cầu ứng dụng quyết định.
Vô hình phân mảnh (Fragmentation transparency)
Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

8

Vô hình phân mảnh làm cho ngƣời sử dụng không cần tham gia vào việc phân
mảnh và không thể biết họ đang làm việc với CSDL gốc hay với các mảnh đã đƣợc
phân mảnh từ CSDL gốc.
Khi CSDL đƣợc phân mảnh, phải có cách xử lý các câu vấn tin của ngƣời sử
dụng, các truy vấn này phải đƣợc thực hiện trên các mảnh. Tức là phải dịch câu truy
vấn toàn cục thành nhiều câu truy vấn theo các mảnh. Nhƣ vậy vấn đề vô hình phân
mảnh là kéo theo vấn đề vô hình xử lý các câu truy vấn.
b. Kỹ thuật phân mảnh
Thiết kế phân mảnh dữ liệu là công việc đầu tiên phải thực hiện. Mục đích của
việc phân mảnh dữ liệu là tạo ra các đơn vị cấp 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ể đƣợc xem nhƣ một đơn vị cấp phát, vì sẽ làm cho việc cấp phát trở lên phức tạp
hơn. Thiết kế phân mảnh bằng cách nhóm một số bộ trong trƣờng hợp phân mảnh

ngang hay nhóm các thuộc tính trong trƣờng hợp phân mảnh dọc có cùng đặc tính
theo quan điểm cấp phát. Các mảnh hình thành bằng các 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.
Các quy tắc phân mảnh
Các nguyên tắc để đảm bảo cơ sở dữ liệu khi phân mảnh sẽ đảm bảo tính không
thay đổi về ngữ nghĩa. Dƣới đây là ba qui tắc phải tuân thủ khi phân mảnh cơ sở dữ
liệu quan hệ.
1. 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ẽ đƣợc chứa trong ít nhất một mảnh R i (i=1,..,n).
Quy tắc này đảm bảo cho các mục dữ liệu trong R đƣợc ánh xạ hoàn toàn vào các
mảnh và không bị mất. Mục dữ liệu có thể hiểu là bộ trong phân mảnh ngang và
thuộc tính trong phân mảnh dọc.
2. Tính phục hồi: Nếu một quan hệ R đƣợc phân rã thành các mảnh R1, R2,…,Rn.
Khi đó nếu gọi FR là tập các mảnh thì:
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.
Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

9

3. 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,
(i≠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 của quan hệ phải có mặt 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 gì đến khóa chính của
quan hệ.
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. Và 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ƣơng pháp phân mảnh ngang là:
- Phân mảnh ngang nguyên thủy: Là phân mảnh ngang đƣợc thực hiện trên
các mệnh đề 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 mệnh
đề của quan hệ khác.
Phân mảnh ngang nguyên thủy:
Phân mảnh ngang nguyên thuỷ là phân rã một quan h ệ thành các tập gồm các bộ
dƣ̣a trên các mệnh đề đƣơ ̣c định nghĩa trên quan hệ đó . Phân mảnh ngang nguyên
thuỷ đƣơ ̣c định nghĩa bằng một thuật toán chọn trên các quan hệ nguồn của một
lƣơ ̣c đồ CSDL. Mảnh ngang R i bao gồm các bộ của R đƣơ ̣c chọn ra theo công thức:

Ri   Fi ( R) với 1≤ i ≤z.
Trong đó, Fi là công thức chọn đƣơ ̣c sƣ̉ dụng để có đƣơ ̣c mảnh R

i.

Chú ý rằng

chúng ta xét Fi có dạng chuẩn hội, nó là một mệnh đề hội sơ cấp (mi).
Tái thiết phân mảnh ngang nguyên thủy là toán tử hợp

 . Chẳng hạn:

z

R   Ri

i 1

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

10

Phân mảnh ngang dẫn xuất:
Phân mảnh ngang dẫn xuất là phân mảnh một quan hệ dƣ̣a vào các mệnh đề đƣơ ̣c
định nghĩa trên quan hệ chủ

(Parent). Phân mảnh ngang dẫn xuất là phân mảnh

ngang trên quan hệ đích của một đƣờng nố i dƣ̣a theo phép toán chọn trên quan hệ
nguồn của đƣờng nố i đó.
Nếu cho trƣớc mộtđƣờng nố i L, trong đó Nguon(L) = S và Dich (L) = R, các mảnh
ngang dẫn xuất của R đƣơ ̣c định nghĩa: là

Ri  R

Si

với

1 i   .

Trong đó,  là số lƣợng các mảnh ngang đƣợc định nghĩa trên R, và

Si   Fi (S ) với Fi là công thức định nghĩa mảnh ngang nguyên thủy Si.

Muố n thƣ̣c hiện phân mảnh ngang dẫn xuất , chúng ta cần ba thông tin vào là : tập
các mảnh của quan hệ nguồn , quan hệ đích và tập các mệnh đề nố i nƣ̉a giƣ̃a nguồn
và đích.
Một số vấn đề phức tạp cần phải chú ý:
Trong lƣơ ̣c đồ CSDL, chúng ta hãy gặp nhiều đƣờng nố i đến một quan hệ R. Nhƣ
thế có thể có nhiều cách phân mảnh ngang dẫn xuất cho R . Quyết định chọn cách
phân mảnh nào cần dƣ̣a trên hai tiêu chuẩn:
(1) Phân mảnh có đặc tính nố i tố t hơn.
(2) Phân mảnh đƣơ ̣c sƣ̉ dụng trong nhiều ứng dụng hơn.
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,…, Ak}. Khi đó phân
mảnh dọc quan hệ R sinh ra các mảnh R 1, R2,, …, Rk sao cho mỗi mảnh là một quan
hệ Ri với tập thuộc tính của nó là Ωi (i = 1,k) là tập con của tập thuộc tính Ω cuả
k

quan hệ R và khóa của nó. Tức là Ω sẽ có dạng:   i , trong đó Ri là mảnh
i1

quan hệ trên các thuộc tính Ωi, (i = 1,k) . Tái thiết phân mảnh dọc là phép nối.
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
Số hóa bởi Trung tâm Học liệu - ĐHTN



, điều này làm

/>

11


giảm đáng kể chi phí . Mảnh tối ƣu là mảnh sinh ra một lƣợc đồ phân mảnh cho
phép giảm thiểu thời gian thƣ̣c hiện của ứng dụng trên mảnh đó .
Kỹ thuật phân mảnh dọc p hức tạp hơn phân mảnh ngang , vì số lƣ̣a chọn phân
hoạch rất lớn . Trong trƣờng hơ ̣p có m = n\{khóa} là thuộc tính không phải khóa
chính, thì số mảnh có thể là m m.
Để có đƣơ ̣c lời giải tố i ƣu cho bài toán phân mảnh dọc rất khó , không hiệu quả .
Vì vậy thƣờng hay sƣ̉ dụng các phƣơng pháp Heuristic cho phân mảnh dọc các quan
hệ toàn cục. Có hai phƣơng pháp Heuristic:
a. 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 mãn điều kiện phân mảnh.
b. Tách mảnh: bắt đầu bằng một quan hệ và quyết định cách phân chia quan hệ
dƣ̣a trên hành vi truy xuất của các ứng dụng trên các thuộc tính . Ở đây chúng ta chỉ
xem xét kỹ thuật tách mảnh vì nó thích hơ ̣p với phƣơng pháp thiết kế

CSDLPT từ

trên xuố ng.
Việc nhân bản các thuộc tính khóa của quan hệ toàn cục trong các mảnh là một
đặc trƣng của phƣơng pháp phân mảnh dọc cho phép khôi phục quan hệ toàn cục và
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. Vì vậy,

phƣơng pháp phân mảnh dọc chỉ đề cập đến các thuộc tính không khóa .
Phân mảnh hỗn hợp
Trong thực tế, hầu hết các trƣờng hợp phân mảnh ngang hay phân mảnh dọc đơn
giản của CSDL không thoả mãn yêu cầu ngƣời sử dụng. Thƣờng CSDL đƣợc phân
mảnh dọc sau đó phân mảnh ngang hoặc ngƣợc lại, tạo ra sự phân chia theo cấu trúc
cây (Hình 1.5). Chiến lƣợc phân mảnh này gọi là phân mảnh hỗn hợp, hay phân

mảnh trộn, hay phân mảnh lồng.


R
H

H

R1
V

H
R2

V

V

R21 VR22
R12
Phân mảnh hỗn hợp
Số hóa bởi Trung tâm Học liệu - ĐHTN
R11

H

V
R23

V

R1
1

V

V

R2 VR2
R1
Tái thiết các mảnh
1
2

V
R2
3

2
/>
hỗn hợp


12

Hình 1.5: Phân mảnh hỗn hợp và tái thiết phân mảnh hỗn hợp
Tính đúng đắn của phân mảnh hỗn hợp đƣợc đảm bảo, vì chiến lƣợc phân mảnh
này dựa theo phân mảnh ngang và phân mảnh dọc, đảm bảo tính đúng đắn nhƣ đã
trình bày. Để tái thiết phân mảnh hỗn hợp ngƣời ta dùng các phép toán nối sau đó là
hợp hoặc ngƣợc lại (ngƣợc với trạng thái phân mảnh) (Hình 1.5). Phân mảnh hỗn
hợp đầy đủ nếu các mảnh lá và các mảnh trung gian là đầy đủ.Tƣơng tự, có thể

kiểm tra tính tách biệt của chiến lƣợc phân mảnh hỗn hợp. Tính tách biệt đƣợc đảm
bảo khi các mảnh lá và mảnh trung gian cũng tách biệt.
c. Yêu cầu độ tin cậy qua các giao dịch phân tán
Một giao dịch là một đơn vị tính toán cơ bản, nhất quán và tin cậy đƣợc, bao gồm
một loạt các thao tác CSDL. Một giao dịch sẽ biến đổi CSDL từ trạng thái nhất
quán này sang trạng thái nhất quán khác ngay cả khi có nhiều hơn một giao dịch
đƣợc thực hiện đồng thời và ngay cả khi có sự cố xẩy ra. Nhƣ vậy nếu hệ quản trị
CSDLPT đƣợc hỗ trợ đầy đủ cho giao dịch nó sẽ đảm bảo cho việc thực hiện đồng
thời các giao dịch và sẽ không vi phạm tính nhất quán của CSDL khi có sự cố hệ
thống với điều kiện là các giao dịch đều hợp lệ, tức là đảm bảo tính toàn vẹn đƣợc
đặc tả trên CSDL đã cho.
Ví dụ khi tăng lƣơng cho tất cả các nhân viên của công ty Điện - Toán. Chúng ta
muốn việc thực hiện này chỉ xảy ra trong phạm vi giao dịch, hoặc nếu có sự cố khi
đang thực hiện câu truy vấn cập nhật tăng lƣơng trên, chúng ta muốn hệ quản trị
CSDL phân tán sẽ tự xác định nơi chƣơng trình phải dừng lại, để khi thực hiện trở
lại nó phải biết nơi phải tiếp tục.
Một ví dụ khác là: một ngƣời sử dụng đang thực hiện câu truy vấn tính lƣơng
trung bình của các nhân viên trong khi các hoạt động cập nhật dữ liệu đang đƣợc
tiến hành vì thế kết quả tính toán có thể sai.
Vậy thì, để tránh sai sót, hệ quản trị CSDL phân tán phải có khả năng đồng bộ
hóa việc thực hiện các thao tác đồng thời.

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

13

d. Yêu cầu nâng cao hiệu năng
Hiệu năng của hệ quản trị CSDL phân tán sẽ đƣợc nâng cao dựa vào hai điều

kiện:
- Một hệ quản trị CSDL phân tán có khả năng phân mảnh CSDL mức khái
niệm và cho phép dữ liệu đƣợc lƣu trữ ở gần nơi sử dụng nhất. Nếu hệ
quản trị CSDL phân tán có tính chất này sẽ cho hai ƣu điểm nổi bật:
1. Vì mỗi trạm chỉ xử lý một phần CSDL, tranh chấp về CPU và các dịch
vụ I/O không nghiêm trọng nhƣ CSDL tập trung.
2. Cục bộ hóa dữ liệu làm giảm thiểu các chậm trễ do truy xuất dữ liệu ở
xa trong WAN (Wide Area Network) phải qua truyền thông nhƣ: vệ tinh,
viba,…
- Tính song song của các hệ thống phân tán có thể đƣợc khai thác để thực
hiện song song liên truy vấn và truy vấn nội bộ. Liên truy vấn song song
là khả năng thực hiện nhiều truy vấn tại cùng thời điểm, còn nội truy vấn
song song là phƣơng pháp tách một truy vấn đơn thành các truy vấn con
và mỗi truy vấn con đƣợc thực hiện tại các trạm khác nhau, truy nhập các
phần khác nhau của CSDL phân tán.
1.1.4. Các đặc điểm của hệ CSDL phân tán
- Phức tạp: Các vấn đề của hệ CSDL phán tán phức tạp hơn so với các tập
trung vì chúng không những có cả những vấn đề của môi trƣờng tập
trung mà còn có cả hàng loạt những vấn để mới chƣa đƣợc giải quyết của
CSDL phân tán.
- Chi phí cao: Các hệ phân tán đòi hỏi phải có thêm các thiết bị mới (thiết
bị truyền thông chẳng hạn) và nhƣ thế làm tăng chi phí phần cứng. Tuy
nhiên hiện nay giá thành của thiết bị ngày càng giảm làm cho điều này
trở thành một yếu tố không còn quan trọng. Phần chi phí đáng kế nằm ở
chỗ nó cần phải có các phần mềm và phƣơng pháp truyền thông phức tạp
hơn. Ngoài ra còn cần chi phí về nhân lực. Khi các thiết bị đƣợc xây

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>


14

dựng ở nhiều vị trí khác nhau, đòi hỏi phải có ngƣời điều hành và quán
lý.
- Quyền điều khiển bị phân tán: Điểm này đã đƣợc nêu ra tƣởng nhƣ là
một ƣu điểm của các hệ CSDL phân tán. Tuy nhiên, không may là sự
phân tán lại gây ra khó khăn về đồng bộ hóa. Việc điều khiến phân tán có
thể trở thành một gánh nặng nếu không có những chiến lƣợc phù hợp để
giải quyết chúng.
- Tính an ninh: Trong hệ CSDL phân tán, môi trƣờng mạng kèm theo sẽ có
các yêu cầu an ninh của riêng chúng. Vì vậy, vấn đề an ninh trong các hệ
CSDL phân tán rõ ràng là phức tạp hơn so với các hệ tập trung.
1.1.5. Kiến trúc hệ quản trị cơ sở dữ liệu phân tán
Kiến trúc của một hệ thống xác định cấu trúc của nó. Tức là các thành phần của
hệ thống đƣợc xác định, chức năng của mỗi thành phần đƣợc mô tả, các mối quan
hệ trung gian và tƣơng tác giữa các thành phần này đƣợc định nghĩa, điều này cũng
đúng cho các hệ thống phần cứng và cho các hệ phần mềm.
Đặc tả về kiến trúc cho các hệ phần mềm đòi hỏi phải xác định rất nhiều đơn thể
với các giao diện và các mối quan hệ trung gian qua dữ liệu và dòng điều khiển
xuyên suốt hệ thống đó. Trên quan điểm công nghệ phần mềm, công việc phát triển
các đơn thể riêng rẽ đƣợc gọi là lập trình vi mô, việc tích hợp các đơn thể vào một
hệ thống đơn hoàn chỉnh đƣợc xem là lập trình vĩ mô.
Mục tiêu của kiến trúc là xây dựng các hệ quản trị CSDL phân tán có khả năng
cung cấp đƣợc các chức năng nhƣ: vô hình, độ tin cậy của các giao dịch phân tán,
hiệu quả và đặc tính mở rộng, v.v…
Tiêu chuẩn hóa hệ quản trị CSDL
Tiêu chuẩn hóa hệ quản trị CSDL phân tán có liên quan chặt chẽ với mô hình
tham chiếu. Nó là bộ khung khái niệm mà mục đích là phân chia công việc tiêu
chuẩn hóa thành các phần dễ quản lý và trình bày. Mô hình tham chiếu (chính là

kiến trúc hệ thống) có thể đƣợc mô tả với ba cách tiếp cận sau:

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

×