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

Gộp nhóm các giá trị lặp của các thuộc tính trong các mảnh của cơ sở dữ liệu phân tán

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 (1008.94 KB, 81 trang )

ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
-------------------------------------------------

Nguyễn Anh Dũng

GỘP NHÓM CÁC GIÁ TRỊ LẶP CỦA CÁC THUỘC TÍNH
TRONG CÁC MẢNH CỦA CƠ SỞ DỮ LIỆU PHÂN TÁN

Luận văn thạc sĩ khoa học máy tính

Thái Nguyên - 2015


ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
-------------------------------------------------

Nguyễn Anh Dũng

GỘP NHÓM CÁC GIÁ TRỊ LẶP CỦA CÁC THUỘC TÍNH TRONG
CÁC MẢNH CỦA 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Ỹ KHOA HỌC MÁY TÍNH

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

Thái Nguyên - 2015



i
LỜI CAM ĐOAN

Tôi xin cam đoan đây là công trình nghiên cứu của tôi, được xây dựng từ
những số liệu và kết quả thực tiễn khi tôi học tập tại trường Đại học Công
nghệ thông tin và Truyền thông Thái Nguyên và ứng dụng dựa trên số liệu
của UBND huyện Đan Phượng, chưa từng được công bố hay xuất bản trong
bất cứ công trình nào khác.
Thái Nguyên, tháng 10 năm 2015
Tác giả

Nguyễn Anh Dũng


ii
LỜI CẢM ƠN

Trước tiên tôi xin được cảm ơn thầy PGS. NCVC. TS. Lê Huy Thập,
người trực tiếp giảng dạy và là người hướng dẫn tôi thực hiện luận văn này.
Tôi cũng xin bày tỏ lòng biết ơn đến các thầy, cô giáo Viện Công nghệ thông
tin và Khoa Công nghệ thông tin - Đại học Thái Nguyên đã tận tình giảng dạy
và tạo điều kiện thuận lợi cho tôi trong suốt quá trình học tập .
Tôi xin cảm ơn lãnh đạo Phòng Văn hóa và Thông tin huyện Đan
Phượng, các anh chị đồng nghiệp đã tạo điều kiện cho tôi tham gia và hoàn
thành khóa học. Tôi cũng xin cảm ơn các bạn của tôi, những người luôn bên
cạnh động viên, giúp đỡ và đóng góp nhiều ý kiến thiết thực trong quá trình
học tập và thực hiện luận văn.
Cuối cùng tôi chân thành cảm ơn các thành viên trong gia đình tôi, đã luôn
hết mình yêu thương, dìu dắt tôi trong công việc và cuộc sống.

Thái Nguyên, tháng 10 năm 2015
Sinh viên thực hiện

Nguyễn Anh Dũng


iii
MỤC LỤC
LỜI CAM ĐOAN....................................................................................................i
LỜI CẢM ƠN .........................................................................................................ii
MỤC LỤC ............................................................................................................ iii
DANH MỤC BẢNG BIỂU ..................................................................................... v
DANH MỤC HÌNH ..............................................................................................vii
DANH MỤC CÁC CHỮ VIẾT TẮT ...................................................................viii
BẢNG DANH MỤC CÁC KÍ HIỆU ...................................................................... ix
LỜI NÓI ĐẦU ........................................................................................................ 1
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT...................................................................... 3
1.1. Logic ................................................................................................................ 3

1.1.1. Mệnh đề và các phép toán mệnh đề ...................................................... 3
1.1.2. Các phép toán trên mệnh đề.................................................................. 3
1.1.3. Các luật logic........................................................................................ 6
1.2. Cơ sở dữ liệu phân tán ...................................................................................... 9

1.2.1. Phân mảnh ngang ............................................................................... 12
1.2.2. Phân mảnh dọc ................................................................................... 16
1.2.3. Phân mảnh hỗn hợp ............................................................................ 17
CHƯƠNG 2: CÁC THUẬT TOÁN PHÂN MẢNH THEO CÁC GIÁ TRỊ LẶP
CỦA CÁC THUỘC TÍNH TRONG CƠ SỞ DỮ LIỆU PHÂN TÁN ................ 18
2.1. Miền giá trị thuộc tính và khái niệm giá trị lặp của thuộc tính ......................... 18


2.1.2. Các giá trị lặp trong miền giá trị của thuộc tính .................................. 18
2.2. Các thuật toán phân mảnh theo các giá trị lặp của các thuộc tính .................. 21

2.2.1. Thuật toán phân mảnh dọc .................................................................. 21
2.2.2. Thuật toán phân mảnh ngang theo giá trị lặp và gộp nhóm theo tiêu
chuẩn giữ lại mảnh ngang. .............................................................. 42
2.2.3. Thuật toán phân mảnh hỗn hợp theo giá tri lặp ................................... 48


iv
2.2.4. Thuật toán tính size của mảnh ............................................................ 50
2.3. Gắn nhãn cho mảnh hỗn hợp……………………………………....……51
2.4. Kết luận chương ............................................................................................. 51
CHƯƠNG 3: ỨNG DỤNG QUẢN LÝ VẤN ĐỀ KINH DOANH TẠI HUYỆN
ĐAN PHƯỢNG ................................................................................................... 52
3.1. Thiết kế cơ sở dữ liệu quan hệ kinh doanh tại huyện Đan Phượng .................. 52
3.2. Mệnh đề phân mảnh các giá trị lặp lại của các thuộc tính theo các tiêu chí địa
điểm, hộ kinh doanh, loại hình kinh doanh, …....................................................... 55
3.3. Gộp nhóm các giá trị lặp của các thuộc tính trong các mảnh ngang................. 64
3.4. Kết luận chương ............................................................................................. 67
KẾT LUẬN ........................................................................................................... 68
HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI .................................................................. 69
TÀI LIỆU THAM KHẢO ..................................................................................... 70


v
DANH MỤC BẢNG BIỂU

Bảng 1.1: Bảng tổng hợp giá trị chân trị của các phép toán cơ bản .......................... 6

Bảng 1.2: Bảng quan hệ PROJ ............................................................................... 10
Bảng 1.3: Quan hệ được phân mảnh dọc PROJ1 .................................................... 11
Bảng 1.4: Quan hệ được phân mảnh dọc PROJ2 .................................................... 11
Bảng 1.5: Quan hệ được phân mảnh ngang với BUGGET ≤ 200 ........................... 11
Bảng 1.6: Quan hệ được phân mảnh ngang với BUGGET > 200 ........................... 12
Bảng 2.1. Quan hệ PhanNhiem .............................................................................. 19
Bảng 2.1.1. Miền giá trị khóa ................................................................................ 19
Bảng 2.1.2. Giá trị lặp ChucVu: Giám đốc ............................................................ 20
Bảng 2.1.3. Giá trị lặp ChucVu: Phân tích và thiết kế ............................................ 20
Bảng 2.1. 4. Giá trị lặp ChucVu: Kỹ sư ................................................................. 20
Bảng 2.1.5. Giá trị lặp ThoiGianLV: 24................................................................. 20
Bảng 2.1.6 Giá trị lặp ThoiGianLV: 48................................................................. 20
Bảng 2.1.7. Giá trị lặp (ChucVu , ThoiGianLV) ................................................. 21
Bảng 2.2.1. Mảnh dọc theo ThoiGianLV ............................................................... 21
Bảng 2.2.2. Mảnh dọc theo ChucVu ...................................................................... 22
Bảng 2.2.3. Mảnh dọc theo ThoiGianLV ............................................................... 23
Bảng 2.2.4. Mảnh dọc theo ChucVu ...................................................................... 24
Bảng 2.2.5. Toàn quan hệ PhanNhiem ................................................................... 24
Bảng 2.2.5’. Toàn quan hệ PhanNhiem.................................................................. 43
Bảng 2.2.6. Quan hệ PhanNhiem ........................................................................... 45
Bảng 2.2.7. Các mảnh ngang M21 .......................................................................... 47
Bảng 2.2.8. Quan hệ PhanNhiem ........................................................................... 47
Bảng 2.2.9. Mảnh ngang M11 ................................................................................. 47
Bảng 2.2.10. Quan hệ PhanNhiem ......................................................................... 48
Bảng 2.2.11. Mảnh ngang M12 ............................................................................... 48
Bảng 3.1: Dữ liệu của bảng Dang_Ky_KD ............................................................ 52
Bảng 3.2: Bảng kết quả của mảnh H1..................................................................... 56


vi

Bảng 3.3: Bảng kết quả của mảnh H2..................................................................... 57
Bảng 3.4: Bảng kết quả của mảnh H3..................................................................... 58
Bảng 3.5: Bảng kết quả của mảnh H4..................................................................... 59
Bảng 3.6: Bảng kết quả của mảnh H5..................................................................... 61
Bảng 3.7: Bảng kết quả của mảnh H6..................................................................... 62
Bảng 3.8: Bảng kết quả của mảnh H7..................................................................... 63


vii
DANH MỤC HÌNH

Hình 1.1:Mô tả mối quan hệ giữa các quan hệ bởi các đường nối…………..14
Hình 1.2: Phân đoạn hỗn hợp …………………………………………….....17
Hình 2.1: Ma trận mẫu về giá trị sử dụng thuộc tính………………………..26
Hình 2.2: Ma trận liên đới thuộc tính…………………………………….....29
Hình 2.3: Tính toán ma trận liên đới CA…………………….……………...35
Hình 2.4: Định vị một điểm tách………………………….………………...37
Hình 3.1: Giao diện ban đầu của chương trình ……………………………...64
Hình 3.2: Giao diện sau quá trình chọn button “chonDB” ……………….....65
Hình 3.3: Giao diện sau khi chọn lựa xong bảng quan hệ …………………..65
Hình 3.4: Giao diện quá trình chọn thuộc tính lặp ……………………….....66
Hình 3.5: Kết quả quá trình phân mảnh ngang ……………………………...67
Hình 3.6: Giao diện dữ liệu của một mảnh ngang …………………………..67


viii
DANH MỤC CÁC CHỮ VIẾT TẮT

CSDL


Cở sở dữ liệu

CSDLPT

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

SQL

Structured Query Language (Ngôn ngữ truy vấn có cấu trúc)


ix
BẢNG DANH MỤC CÁC KÍ HIỆU

Π

Phép chiếu trong CSDL

*

Kết nối tự nhiên trong CSDL

Σ

Phép chọn trong CSDL


1
LỜI NÓI ĐẦU


1. Đặt vấn đề
Việc tiết kiệm không gian lưu trữ thông tin, rút ngắn thời gian truy
nhập dữ liệu và giảm chi phí xử lý thông tin, dữ liệu là mục đích của người
lập trình và người sử dụng.
Đề tài luận văn giải quyết vấn đề trên bằng cách đưa ra các thuật toán
để tách các bản ghi và các thuộc tính có các giá trị lặp lại với kích cỡ đủ lớn.
Việc tách ở đây thực sự là việc phân mảnh “hỗn hợp” các quan hệ trong cơ sở
dữ liệu phân tán. Mảnh có các giá trị lặp lại với kích cỡ đủ lớn được gán bí
danh, phần còn lại cũng chính là các mảnh. Khi cần cập nhật, chỉ cần tái thiết
lại mảnh ban đầu từ các mảnh đã phân rã và tham chiếu đến bí danh đã đặt để
lấy các giá trị lặp.
Các mảnh có giá trị lặp lại với kích cỡ đủ lớn sẽ làm giảm chi phí khi
truy cập/truy xuất, giảm chi phí lưu trữ, tăng tốc độ xử lý dữ liệu và giảm chi
phí truyền thông.
2. Đối tượng và phạm vi nghiên cứu
Cơ sở dữ liệu phân tán, các loại mảnh và phương pháp phân mảnh
trong CSDL phân tán.
3. Hướng nghiên cứu của đề tài
Phân mảnh các giá trị lặp của các thuộc tính bằng phương pháp phân
mảnh hỗn hợp và tìm ra các mảnh có hỗn hợp các kích thước đủ lớn.
Gán nhãn cho các mảnh hỗn hợp có kích thước thỏa mãn các điều kiện
cho trước
4. Những nội dung nghiên cứu chính
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:


2
5. Phương pháp nghiên cứu

Nghiên cứu kỹ các kiến thức, chủ đề có liên quan đến đề tài.
Nắm vững các các thuật toán.
6. Ý nghĩa khoa học của đề tài
Luận văn giúp cho việc tìm mảnh các dữ liệu trùng nhau, phân mảnh và
gán nhãn cho chúng nhằm tăng tốc độ truy nhập, giảm chi phí lưu trữ và
truyền trên mạng truyền dẫn.
- Chương 1: Cơ sở lý thuyết.
- Chương 2: Gộp nhóm các giá trị lặp của các thuộc tính trong cơ sở dữ liệu
phân tán.
- Chương 3: Ứng dụng quản lý vấn đề kinh doanh tại huyện Đan Phượng


3
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

1.1. Logic
1.1.1. Mệnh đề và các phép toán mệnh đề
Chúng ta chỉ xét đến các mệnh đề toán học, có nghĩa là một phát biểu
nào đó chỉ có hai giá trị: đúng hoặc sai, giá trị đúng (ký hiệu là 1 hoặc
True,…), sai (ký hiệu là 0 hoặc False). Giá trị của mệnh đề được gọi là chân
trị của mệnh đề đó.
Ví dụ 1.1: Các phát biểu sau đây là các mệnh đề.
1/ p = “2 là một số nguyên tố” là mệnh đề đúng nên chân trị của p là 1
2/ q = “5 là một số chẵn” là mệnh đề sai nên chân trị của q là 0
Trong việc khảo sát các mệnh đề, người ta còn phân ra làm hai loại là:
mệnh đề sơ cấp và mệnh đề phức hợp.
 Mệnh đề sơ cấp (mệnh đề đơn giản). Mệnh đề sơ cấp là các "nguyên
tử" theo nghĩa là nó không thể được phân tích thành mệnh đề nhỏ hơn.
Chẳng hạn ví dụ 1.1
 Mệnh đề phức hợp. Mệnh đề phức hợp là mệnh đề được tạo thành từ một

hay nhiều mệnh đề khác bằng cách sử dụng các liên kết logic như từ
"NOT" dùng trong việc phủ định một mệnh đề, các từ nối: "AND", "OR",
"", v.v....
Ví dụ 1.2: Mệnh đề sau đây là mệnh đề phức hợp.
E = “2 là một số nguyên tố” AND “5 là một số chẵn”
1.1.2. Các phép toán trên mệnh đề
Ðiều mà chúng ta quan tâm ở đây không phải là xác định tính đúng hoặc
sai của một mệnh đề sơ cấp. Bởi vì những mệnh đề này thường là những phát
biểu nói lên một ý tưởng nào đó trong một phạm vi chuyên môn nhất định.
Vấn đề mà ta quan tâm ở đây là làm thế nào để tính toán chân trị của các
mệnh đề phức hợp theo các mệnh đề sơ cấp cấu thành mệnh đề phức hợp đó


4
nhờ vào các phép toán logic.
Các phép toán logic được định nghĩa bằng bảng chân trị (truth table).
Bảng chân trị chỉ ra chân trị của mệnh đề phức hợp theo từng trường hợp của
các chân trị của các mệnh đề sơ cấp tạo thành mệnh đề phức hợp. Bảng chân
trị của các phép toán logic tất nhiên là phản ánh ngữ nghĩa tự nhiên của các từ
liên kết tương ứng.
Bảng chân trị không chỉ dùng để kê ra sự liên hệ chân trị giữa mệnh đề
phức hợp với chân trị của các mệnh đề sơ cấp cấu thành nó, mà bảng chân trị
còn được dùng với mục đích rộng hơn: liệt kê sự liên hệ chân trị giữa các
mệnh với các mệnh đề đơn giản hơn cấu thành chúng.
a) Phép phủ định
Cho p là một mệnh đề, chúng ta dùng ký hiệu p để chỉ mệnh đề phủ
định của mệnh đề p.
Ví dụ 1.3 : Nếu ta ký hiệu p là mệnh đề "5 < 3" thì p là ký hiệu cho mệnh
đề "5 ≥ 3". Trong trường hợp này p sai, p đúng. Ta có thể viết p = 0, p = 1.
b) Phép hội

Phép "hội", ký hiệu là ^ , cho p và q là hai mệnh đề, viết là p  q là phép
toán chỉ chân trị đúng ki và chỉ khi cả p và q đều đúng.
Ví dụ 1.4: Cho các mệnh đề
p = "5 > -7",
q = "2721 là một số nguyên tố",
r = "một tam giác đều cũng là một tam giác cân".
Khi đó ta có :

p  q = 0 ( p  q sai, tức là có chân trị bằng 0, vì p = 1 và q = 0),
p  r = 1 ( p  r đúng, tức là có chân trị bằng 1, vì p = 1 và r = 1).
c) Phép tuyển
Cho p và q là hai mệnh đề. Ta ký hiệu mệnh đề "p tuyển với q" là p  q .


5
Chân trị của mệnh đề này chỉ sai khi và chỉ khi cả p và q đều sai.
Ví dụ 1.5: Cho các mệnh đề
p = "5 > 7",
q = "2721 là một số nguyên tố",
r = "một tam giác đều cũng là một tam giác cân".
Khi đó ta có :
p  q = 0,

p  r = 1.

d) Phép kéo theo
Phép kéo theo, ký hiệu bởi → , được đưa ra để mô hình cho loại phát
biểu điều kiện có dạng : "nếu . . . thì . . .". Cho p và q là 2 mệnh đề, ta sẽ viết
p → q để diễn đạt phát biểu "nếu p thì q". Kết quả phép toán kéo theo → được
cho trong bảng 1.1.

Mệnh đề p → q, được đọc là "nếu p thì q.
e) Phép kéo theo hai chiều
Phép kéo theo 2 chiều hay phép tương đương, ký hiệu bởi ↔, được đưa
ra để mô hình cho loại phát biểu điều kiện hai chiều có dạng : ". . . nếu và chỉ
nếu . . .". Cho p và q là 2 mệnh đề, ta viết p ↔q để diễn đạt phát biểu "p nếu
và chỉ nếu q". Phép toán tương đương ↔ được định nghĩa trong bảng tổng
hợp các giá trị chân trị 1.1 bên dưới.
Mệnh đề p ↔ q, được đọc là "p nếu và chỉ nếu q", còn được phát biểu
dưới các dạng khác sau đây:
"p khi và chỉ khi q".
"p là điều kiện cần và đủ cho q".
Mệnh đề p ↔q có chân trị đúng (=1) trong các trường hợp p và q có
cùng chân trị.


6
Bảng 1.1: Bảng tổng hợp giá trị chân trị của các phép toán cơ bản
P

q

p

pq

0

0

1


0

1

1
1

pq

pq

pq

0

0

1

1

1

0

1

1


0

0

0

0

1

0

0

1

0

1

1

1

1

f) Độ ưu tiên của các toán tử logic
Tương tự như đối với các phép toán số học, để tránh phải dùng nhiều dấu
ngoặc trong các biểu thức logic, ta đưa ra một thứ tự ưu tiên trong việc tính
toán. Ở trên ta có 5 toán tử logic:


 (không) ,  (và),  (hay), →(kéo theo),

↔ (tương đương)

 ưu tiên mức 1 (cao nhất)
 ,  ưu tiên mức 2 (thấp hơn)
→, ↔ ưu tiên mức 3 (thấp nhất)
trong đó, các toán tử liệt kê trên cùng dòng có cùng độ ưu tiên.
Ví dụ 1.6:
1. p  q có nghĩa là ((p)  q) .
2. p  q  r  s có nghĩa là (((p )  q )  ( r  s )) .
3. p  q  r là nhập nhằng. Cần phải dùng các dấu ngoặc để chỉ rõ
nghĩa.
1.1.3. Các luật logic
Các luật logic là cơ sở để ta thực hiện các biến đổi trên một biểu thức logic
để có được một biểu thức logic mới tương đương logic với biểu thức logic có
trước. Mỗi biểu thức logic cho ta một sự khẳng định về sự tương đương của 2
biểu thức logic. Ta sẽ sử dụng các qui tắc thay thế và các luật logic đã biết để
thực hiện các phép biến đổi tương đương trên các biêu thức logic.
Dưới đây, chúng ta sẽ liệt kê ra một số luật logic thường được sử dụng


7
trong lập luận và chứng minh. Các luật nầy có thể được suy ra trực tiếp từ các
bảng chân trị của các biểu thức logic.
a) Các luật về phép phủ định
 p  p
 1  0
 0  1

b) Luật giao hoán


pq  q p

 pq  q p
c) Luật kết hợp


p  (q  r )  (q  p)  r

 p  (q  r )  (q  p)  r
d) Luật phân bố


p  (q  r )  ( p  q )  ( p  r )

 p  (q  r )  ( p  q )  ( p  r )
e) Luật De Morgan
 ( p  q )   p  p
 ( p  q )   p  p
f) Luật về phần tử bù


p  p  1

 p  p  0
g) Luật kéo theo
 p  q  p  q
h) Luật tương đương

 p  q  ( p  q )  (q  p )
i) Các luật đơn giản của phép tuyển


p  p  p (tính lũy đẳng của phép tuyển)


8


p  1  1 (luật thống trị)

 p  0  0 (luật trung hòa)
 p  ( p  q )  p (luật hấp thụ)
j) Các luật đơn giản của phép hội


p  p  p (tính lũy đẳng của phép hội)



p  1  p (luật trung hòa)



p  0  0 (Luật thống trị)

 p  ( p  q)  p (Luật hấp thụ)
Những luật trên được chọn lựa để làm cơ sở cho chúng ta thực hiện các
biến đổi logic, suy luận và chứng minh. Tất nhiên là còn nhiều luật logic khác

mà ta không liệt kê ra ở đây.
Mệnh đề chuẩn hội
Dạng chuẩn tắc (chính tắc) của 1 biểu thức là biểu diễn biểu thức về
dạng đơn giản, chỉ bao gồm các phép toán phủ định, hội tuyển của các
mệnh đề.
Giả sử p1, p2, … , pn là các biến mệnh đề. Một biểu thức logic F theo các
biến mệnh đề p1, p2,… , pn được gọi là một biểu thức tuyển cơ bản (tuyển sơ
cấp) nếu nó có dạng sau:

F  q1  q2  ...qn với q j  p j hoặc q j  p j (j = 1, 2, …, n)
Ví dụ 1.7: x  y  z là một biểu thức tuyển cơ bản theo 3 biến mệnh đề
x, y, z. Biểu thức logic E(p1, p2, … , pn) theo các biến mệnh đề p1, p2, … , pn
được nói là có dạng chuẩn hội khi E có dạng:

E  E1  E2  ....  En
Trong đó mỗi biểu thức con Ei đều có dạng chính tắc tuyển theo các biến
p1, p2, … , pn.


9
Ví dụ 1.8: Các biểu thức sau đây có dạng chuẩn tắc hội (chính tắc hội):

E ( x, y, z )  (x  y  z )  ( x  y  z )  ( x  y  z )
F ( p1 , p2 , p3 , p4 )  ( p1  p2  p3  p4 )  ( p1  p2  p3  p4 )
Định lý 1.1:
Mọi biểu thức logic E(p1, p2, … , pn) đều có thể viết dưới dạng chính tắc
hội duy nhất, không kể sự sai khác về thứ tự trước sau của các biểu thức tuyển
cơ bản trong phép hội). Nói một cách khác, ta có duy nhất một tập hợp các
biểu thức tuyển cơ bản {E1, E2, … , Em} sao cho biểu thức E(p1, p2, … , pn)
tương đương logic với biêu thức E1  E2  ...  Em . [15]

Chứng minh:
Có thể dễ dàng nhận thấy, áp dụng tập các luật trong mục 1.1.3 ta có thể
biến các biểu thức bất kỳ thành dạng tuyển của các biểu thức hội. Từ đó, ta
có điều phải chứng minh.
1.2. Cơ sở dữ liệu phân tán
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.
Phần lớn các hệ cơ sở dữ liệu phân tán được thiết kế theo hướng từ trên
xuống (Top-Down). 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.
Trong thiết kế CSDL phân tán, cần thiết phải thực hiện phân mảnh dữ
liệu vì những lý do sau đây:
- Trong các hệ quản trị CSDL, các quan hệ được lưu trữ dưới dạng các
bảng 2 chiều. Các thao tác đối với CSDL đượ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ý.
- Việc phân rã một quan hệ thành nhiều mảnh, mỗi mảnh được xử lý như


10
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 không phải việc phân mảnh chỉ có ưu điểm hoàn toàn, mà nó
cũng thể hiện những 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
- Việc kiểm soát ngữ nghĩa, đặc biệt là vấn đề kiểm tra tính toàn vẹn sẽ
khó khăn hơn
Có hai kiểu phân mảnh tương ứng với việc chia quan hệ theo chiều dọc và
chia quan hệ theo chiều ngang.
Trong luận văn ta sử dụng một bảng quan hệ của cơ sở dữ liệu làm ví dụ
là bảng cơ sở dữ liệu về nhân viện PROJ như sau:
Bảng 1.2: Bảng quan hệ PROJ
PNO

PNAME

BUDGET

LOG

P1

Lập trình

150

Vinh

P2

Kế toán


135

Hà Nội

P3

Thư ký

250

Hà Nội

P4

Giám đốc

310

Hài Phòng

Phân mảnh theo chiều dọc: Các quan hệ được chia theo chiều dọc. Nghĩa là
thiết lập một quan hệ mới chỉ có một số thuộc tính từ quan hệ gốc. Thực chất
đây là phép chiếu trên tập con các thuộc tính của quan hệ.
Ví dụ 1.9:
Tách dọc quan hệ PROJ thành 2 quan hệ PROJ1 và PROJ2 như sau:
π PNO,PNAME,LOG (PROJ) và π PNO,BUDGET (PROJ)


11

Bảng 1.3: Quan hệ được phân mảnh dọc PROJ1
PNO

BUDGET

P1

150

P2

135

P3

250

P4

310

Bảng 1.4: Quan hệ được phân mảnh dọc PROJ2
PNO

PNAME

LOG

P1


Lập trình

Vinh

P2

Kế toán

Hà Nội

P3

Thư ký

Hà Nội

P4

Giám đốc

Hài Phòng

Chú ý: Vì tái thiết các quan hệ dựa vào phép nối nên bất kỳ mảnh dọc nào
cũng có các trường khóa tham gia.
Phân mảnh ngang: Quan hệ được chia theo chiều ngang. Thực chất đây là
phép chọn trongquan hệ. Chọn những bộ của quan hệ thỏa mãn một biểu thức
điều kiên cho trước.
Ví dụ 1.10: Tách ngang quan hệ PROJ thành 2 quan hệ PROJ1 và PROJ2 thoả
theo điều kiện là BUDGET ≤ 200 và BUDGET > 200 như sau:
σ BUDGET ≤ 200 (PROJ)

σ BUDGET > 200 (PROJ)
Bảng 1.5: Quan hệ được phân mảnh ngang với BUGGET ≤ 200
PNO

PNAME

BUDGET

P1

Lập trình

150

P2

Kế toán

135


12
Bảng 1.6: Quan hệ được phân mảnh ngang với BUGGET > 200
PNO

PNAME

BUDGET

P3


Thư ký

250

P4

Giám đốc

310

Các quy tắc phân mảnh
Ta phải tuân thủ ba qui tắc 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 Ri
(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 đó:
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 khi cần khôi phục
dữ liệu mỗi khi cần thiết. Với các kỹ thuật khác nhau thì việc khôi phục dữ
liệu cũng cần được tiến hành khác nhau
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ụcdữ 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ì 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ệ.

1.2.1. Phân mảnh ngang
1.2.1.1. Giới thiệu
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.


13
Thông tin về CSDL cần thiết cho phân mảnh ngang. Thông tin về CSDL
là thông tin về lược đồ khái niệm toàn cục của CSDL. Tức là chúng ta cần
biết được cách mà quan hệ con sẽ hợp lại với nhau như thế nào. Trong mô
hình quan hệ, các liên kết giữa các thực thể cũng được biểu thị bằng quan hệ.
Với mục đích thiết kế phân tán, các mối liên kết cũng được mô hình hóa theo
kiểu mô hình quan hệ. Theo cách này, chúng ta sẽ vẽ một đường nối có hướng
từ quan hệ Parent đến quan hệ Child.
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.
1.2.1.2. Thông tin cần thiết của phân mảnh ngang
Thông tin về CSDL có liên quan tới lược đồ khái niệm toàn cục. Trong mô
hình quan hệ, các mối quan hệ giữa các thực thể được mô tả như là những quan
hệ. Trong mô hình quan hệ thực thể (ER), các mối liên hệ giữa các đối tượng
CSDL được mô tả rõ ràng. Nhìn chung mối quan hệ giữa các đối tượng trong
CSDL thường mô tả bằng các mối quan hệ một - một, một - nhiều và mối quan hệ
nhiều - nhiều. Với mục đích cho thiết kế, đường nối (Link) có hướng giữa các
quan hệ được sử dụng cho việc biểu diễn bởi thao tác nối bằng (Equijoin).

Ví dụ 1.11: Giả sử có một quan hệ với các bảng quan hệ như sau: PAY,
EMP, PROJ và ASG. Trong đó:
PAY: bảng quan hệ chức vụ
EMP: bảng quan hệ nhân viên
PROJ: bảng quan hệ công việc
ASG: bảng quan hệ kết hợp
Trong đó, mỗi một chức vụ (Title) có nhiều nhiều nhân viên (Employee)
giữ chức vụ đó. Đây là mối quan hệ môt - nhiều được biểu diễn bằng một
đường nối có hướng L1 trỏ từ quan hệ PAY đến EMP. Mối quan hệ nhiều nhiều được trỏ từ các quan hệ EMP và PROJ đến quan hệ ASG được biểu
diễn bằng hai đường nối L2 và L3 (hình 1.1).


14

Hình 1.1:Mô tả mối quan hệ giữa các quan hệ bởi các đường nối
Quan hệ tại điểm cuối của đường nối được gọi là quan hệ chủ (quan hệ đích)
và các quan hệ tại điểm đầu được gọi là các quan hệ thành viên (quan hệ nguồn).
Thông tin về ứng dụng: Để thực hiện phân mảnh, cần phải có thông tin định
tính và thông tin định lượng. Thông tin định tính hướng dẫn cho hoạt động phân
mảnh, thông tin định lượng chủ yếu sử dụng trong các mô hình cấp phát. Thông
tin định tính cơ bản gồm các mệnh đề dùng trong câu truy vấn. Sau đây là các
định nghĩa về mệnh đề đơn giản và mệnh đề hội sơ cấp như sau:
Cho quan hệ R(A1, A2,..,An), trong đó Ai là thuộc tính được định nghĩa
trên một miền Di , một mệnh đề đơn giản Pj được định nghĩa trên R có dạng:
Pj: Ai θ Value
Trong đó θ thuộc {=, <, ≠, ≤, >, ≥} và Value được chọn từ miền Ai
(Value thuộc Di).
Chúng ta sử dụng Pri để biểu thị tập tất cả các mệnh đề đơn giản được
định nghĩa trên quan hệ Ri. Các phần tử của Pri được ký hiệu là pij.
Ví dụ 1.12: Cho quan hệ PROJ

PNAME = “Maintenance”
BUDGET ≤ 200000là các mệnh đề đơn giản.
Trong thực tế các câu truy vấn là tổ hợp của rất nhiều mệnh đề đơn giản.
Mỗi tổ hợp được gọi là một mệnh đề hội sơ cấp. Cho tập Pri = {pi1, pi2, ....,


×