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

Loại bỏ mẩu tin nhân bản thừa trong cơ sở dữ liệu quan hệ

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.61 KB, 72 trang )






ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ





CAO THỊ NHÂM




LOẠI BỎ MẨU TIN NHÂN BẢN THỪA
TRONG CƠ SỞ DỮ LIỆU QUAN HỆ










LUẬN VĂN THẠC SĨ











Hà Nội - 2009






ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ




Cao Thị Nhâm




LOẠI BỎ MẨU TIN NHÂN BẢN THỪA
TRONG CƠ SỞ DỮ LIỆU QUAN HỆ




Ngành: Công nghệ thông tin
Chuyên ngành: Công nghệ phần mềm
Mã số: 60 48 10



LUẬN VĂN THẠC SĨ


NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. Lê Huy Thập








Hà Nội - 2009


3


MỤC LỤC
LỜI CAM ĐOAN 1
LỜI CẢM ƠN 2
MỤC LỤC 3

DANH MỤC HÌNH VẼ 5
DANH MỤC BẢNG 6
HỆ THỐNG CÁC TỪ VIẾT TẮT 8
MỞ ĐẦU 9
Chương 1 CƠ SỞ LÝ THUYẾT 12
1.1 CƠ SỞ DỮ LIỆU QUAN HỆ 12
1.1.1 Khái niệm về CSDL quan hệ 12
1.1.2 Các phép toán đại số quan hệ 16
1.2 PHÂN MẢNH CƠ SỞ DỮ LIỆU QUAN HỆ 23
1.2.1 Khái quát về cơ sở dữ liệu phân tán 23
1.2.2 Các kiểu phân mảnh cơ sở dữ liệu 25
1.3 LÝ THUYẾT CHẮC CHẮN 29
1.3.1 Hệ số chắc chắn dành cho dữ kiện 29
1.3.2 Hệ số chắc chắc chắn dành cho luật 30
1.3.3 Các quy tắc tính toán trên CF 30
1.4 TỔNG KẾT CHƯƠNG 1 32
Chương 2 THUẬT TOÁN LOẠI BỎ MẨU TIN NHÂN BẢN THỪA TRONG
CSDL QUAN HỆ 33

2.1 TƯ TƯỞNG CỦA THUẬT TOÁN 33
2.2 TIÊU CHUẨN THẨM ĐỊNH BẢN GHI NHÂN BẢN THỪA 33
2.3 NỘI DUNG THUẬT TOÁN 35


4


2.3.1 Thuật toán xác định độ chắc chắn lặp cho từng bản ghi 35
2.3.2 Thuật toán loại bỏ bản ghi nhân bản thừa 36
2.3.3 Nhận xét thuật toán 38

2.4 TỔNG KẾT CHƯƠNG 2 39
Chương 3 ỨNG DỤNG THUẬT TOÁN 40
3.1 HỆ THỐNG LOẠI BỎ MẨU TIN NHÂN BẢN THỪA TRONG CSDL
QUAN HỆ 40

3.1.1 Mô tả bài toán 40
3.1.2 Yêu cầu đặt ra đối với hệ thống 40
3.1.3 Khả năng giải quyết bài toán 41
3.1.4 Sơ đồ hệ thống 42
3.2 THIẾT KẾ HỆ THỐNG LOẠI BỎ MẨU TIN NHÂN BẢN THỪA TRONG
CSDL QUAN HỆ 49

3.2.1 Xây dựng các lớp đối tượng 49
3.2.2 Biểu đồ tuần tự 59
3.3 KẾT QUẢ ỨNG DỤNG THUẬT TOÁN 61
3.3.1 Môi trường phát triển 61
3.3.2 Kết quả thực nghiệm 62
3.4 TỔNG KẾT CHƯƠNG 3 68
Chương 4 KẾT LUẬN & HƯỚNG PHÁT TRIỂN 69
4.1.1 Kết quả thu được trong quá trình nghiên cứu đề tài 69
4.1.2 Hướng phát triển 69
TÀI LIỆU THAM KHẢO 71



5


DANH MỤC HÌNH VẼ
Hình 1-1 Kiến trúc cơ sở dữ liệu phân tán 23

Hình 1-2 Phân mảnh hỗn hợp của quan hệ EMP 27
Hình 3-1 Các tầng xử lý của hệ thống 42
Hình 3-2 Luồng xử lý của hệ thống EDRS 44
Hình 3-3 Sơ đồ tương tác giữa các lớp trong hệ thống 51
Hình 3-4 Biểu đồ tuần tự của quá trình loại bỏ bản ghi nhân bản 59
Hình 3-5 Biểu đồ tuần tự của quá tình xử lý bản ghi nghi ngờ nhân bản 60
Hình 3-6 Biểu đồ tuần tự của quá trình thiết lập luật cho hệ thống 60



6


DANH MỤC BẢNG
Bảng 1-1 Quan hệ EMP 13
Bảng 1-2 Quan hệ EMP
1
14
Bảng 1-3 Quan hệ NHÂNVIÊN 17
Bảng 1-4 Kết quả phép chọn 17
Bảng 1-5 Kết quả phép chọn 18
Bảng 1-6 Kết quả của các phép toán tập hợp 19
Bảng 1-7 Tích Đề Các của hai quan hệ R và S 20
Bảng 1-8 Phép nối tê-ta hai quan hệ 21
Bảng 1-9 Phép nối tự nhiên hai quan hệ 22
Bảng 3-1 Ví dụ về tính toán hệ số chắc chắn 46
Bảng 3-2 Các lớp thuộc gói Rule Engine 49
Bảng 3-3 Các lớp thuộc gói Process 50
Bảng 3-4 Bảng thuộc tính của lớp clsRuleReader 52
Bảng 3-5 Bảng các phương thức của lớp clsRuleReader 52

Bảng 3-6 Bảng thuộc tính của lớp clsRuleEngine 52
Bảng 3-7 Bảng các phương thức của lớp clsRuleEngine 53
Bảng 3-8 Bảng các phương thức của lớp clsExpressionEvaluator 54
Bảng 3-9 Bảng các phương thức của lớp clsProxy 55
Bảng 3-10 Bảng các thuộc tính của lớp clsDeduplicate 55
Bảng 3-11 Bảng các phương thức của lớp clsDeduplicate 56


7


Bảng 3-12 Bảng các thuộc tính của lớp clsDAO 56
Bảng 3-13 Bảng các phương thức của lớp clsDAO 57
Bảng 3-14 Bảng các phương thức của lớp clsInterface 57
Bảng 3-15 Bảng các phương thức của lớp clsSetting 58



8


HỆ THỐNG CÁC TỪ VIẾT TẮT

Kí hiệu viết tắt Tên tiếng Anh Ý nghĩa
EDRS
Eliminate duplicate record
system
Hệ thống loại bỏ mẩu tin nhân
bản thừa
CSDL


Cơ sở dữ liệu
CF
Certainty factor
Hệ số chắc chắn
FPE
False Positive Error
Tỉ lệ phán đoán sai
SK

Siêu khóa
Cardr
Cardinality - Row
Số bộ
CF
f

Certainty factor – Fact
Hệ số chắc chắn dùng cho dữ
kiện
CF
r

Certainty factor – Rule
Hệ số chắc chắn dùng cho luật
RC
Recall
Tỉ lệ phán đoán đúng




9


MỞ ĐẦU
Các ứng dụng làm việc với thông tin nói chung và hệ cơ sở dữ liệu lớn ngày càng
phát triển và đóng vai trò quan trọng trong mọi lĩnh vực ứng dụng và nghiên cứu. Đi đôi
với sự lớn mạnh của các hệ thống này là sự xuất hiện những dữ liệu “bẩn” và dữ liệu dị
thường. Dữ liệu dị thường và dữ liệu “bẩn” làm ảnh hưởng rấ
t nhiều tới hiệu quả xử lý
và độ chính xác của kết quả xử lý cũng như ảnh hưởng tới việc biểu diễn và phân tích
dữ liệu. Tệ hại hơn có thể làm hệ thống phần mềm trở nên vô giá trị.
Dữ liệu dị thường và dữ liệu “bẩn” xuất hiện trong dữ liệu thực là chuyện không
thể tránh khỏi, người ta ước tính dữ li
ệu dị thường và dữ liệu “bẩn” chiếm khoảng 5%.
Thực tế này dẫn tới xu hướng phát triển các phương pháp làm sạch dữ liệu. Không có
mô tả chung nào cho mục đích và cũng không có mô tả bao quát cho quá trình làm sạch
dữ liệu. Làm sạch dữ liệu đòi hỏi rất nhiều loại tri thức cũng như đòi hỏi có nhiều kiến
thức về việc xử lý và bảo trì dữ liệu. Mụ
c đích trước hết của làm sạch dữ liệu là loại bỏ
những nhân bản thừa trong tập hợp dữ liệu có sẵn.
Quá trình làm sạch dữ liệu khó có thể thực hiện được nếu không có sự tham gia
của các chuyên gia hay các kiến thức chuyên gia, vì việc loại bỏ dữ liệu dị thường và dữ
liệu “bẩn” cần phải có kiến thức chuyên gia về lĩnh vực đó. Quá trình làm sạch d
ữ liệu
là quá trình bán tự động. Nhưng nên xử lý tự động nhiều nhất có thể. Hiệu quả và sự
thành công của quá trình làm sạch dữ liệu phụ thuộc rất nhiều vào kiến thức chuyên gia
hiện có và những thông tin cần thiết để xác định và chỉnh sửa những dữ liệu dị thường.
Làm sạch dữ liệu là một thuật ngữ không rõ ràng và không có định nghĩa chính
xác. Nguyên nhân chính là vì mục đích chính của làm s

ạch dữ liệu là tìm ra “lỗi” trong
dữ liệu có sẵn, tuy nhiên thế nào là dữ liệu lỗi và thế nào là không lỗi thì phụ thuộc rất
nhiều vào từng lĩnh vực, khó có thể đưa ra một định nghĩa chung. Chính vì điều này,
nhiều phương pháp chỉ tập trung vào một phần nhỏ của kiến thức về lĩnh vực đang xét
bằng cách sử dụng một số thuật toán cũng như
áp dụng kinh nghiệm sẵn có.
Có nhiều phương pháp được áp dụng để làm sạch dữ liệu như phân tích cú pháp


10


(parsing), biến đổi dữ liệu (data transformation), tạo các ràng buộc về mặt dữ liệu
(Integrity constraint enforcement), phương pháp thống kê… Trong phạm vi luận văn
này tôi nghiên cứu phương pháp loại bỏ mẩu tin nhân bản thừa trong cơ sở dữ liệu dựa
vào hệ chuyên gia và hệ số chắc chắn(certainty factor). Đóng góp của đề tài là nghiên
cứu và xây dựng thuật toán loại bỏ mẩu tin thừa cho một quan hệ của cơ sở dữ li
ệu quan
hệ; xây dựng ứng dụng thực hiện ý đồ của giải thuật; bên cạnh đó là thực hiện kiểm thử
chương trình với một quan hệ có số lượng bản ghi từ 50 tới 300. Các nghiên cứu trong
luận văn này sẽ hữu ích cho các nghiên cứu ở mức cao hơn như loại bỏ mẩu tin thừa
cho một cơ sở dữ liệu quan hệ….
Cấu trúc luận v
ăn được trình bày như sau:
Chương 1: Cơ sở lý thuyết. Chương này trình bày về các kiến thức cơ sở dùng cho
thuật toán loại bỏ mẩu tin nhân bản thừa trong cơ sở dữ liệu quan hệ. Kiến thức cơ sở
gồm hai phần:
9 Cơ sở dữ liệu: Phần này là tóm tắt các kiến thức cơ bản về cơ sở dữ liệu quan hệ

ng như các kiến thức về cơ sở dữ liệu phân tán. Đặc biệt, trong phần này luận văn

còn đề cập đến các kiểu phân mảnh trong cơ sở dữ liệu phân tán, kiến thức này là
nền tảng cho ý tưởng của thuật toán loại bỏ mẩu tin nhân bản thừa trong cơ sở dữ
liệu quan hệ.
9 Lý thuyết chắc chắn: Lý thuyết chắc chắn là kiến thức c
ơ sở giúp xây dựng thuật
toán loại bỏ mẩu tin nhân bản thừa. Nội dung cơ bản là nghiên cứu các luật và suy
luận dựa vào các hệ số chắc chắn thu thập được từ hệ các chuyên gia hoặc hệ
chuyên gia.
Chương 2: Thuật toán loại bỏ mẩu tin nhân bản thừa trong cơ sở dữ liệu quan hệ.
Chương này trình bày thuật toán nhận diện bản ghi nhân bản thừa trong cơ sở dữ li
ệu
quan hệ dựa vào kiến thức về cơ sở dữ liệu và lý thuyết chắc chắn ở Chương 1.
Chương 3: Ứng dụng thuật toán. Là phần phân tích yêu cầu, thiết kế và cài đặt hệ
thống loại bỏ mẩu tin nhân bản thừa trong cơ sở dữ liệu quan hệ. Bên cạnh đó luận văn


11


cũng đưa ra những kết quả kiểm thử trên dữ liệu thật để đi đến những đánh giá về hiệu
quả của thuật toán.
Chương 4. Kết luận và hướng phát triển. Kết luận, đánh giá những gì đã đạt được và
chưa làm được trong luận văn tốt nghiệp và nêu ra hướng phát triển của đề tài là nội
dung trình bày của chương này.


12


Chương 1 CƠ SỞ LÝ THUYẾT

1.1 CƠ SỞ DỮ LIỆU QUAN HỆ
Các cơ sở dữ liệu và các hệ quản trị cơ sở dữ liệu đã trở thành một thành phần chủ
yếu trong cuộc sống hàng ngày của xã hội hiện đại. Trong vòng một ngày con người có
thể có nhiều hoạt động cần có sự giao tiếp với cơ sở dữ liệu như: đến ngân hàng để rút
tiền và gửi tiền, đăng ký chỗ trên máy bay hoặc khách sạn, truy cập vào thư
viện đã tin
học hoá để tìm sách báo, đặt mua tạp chí ở một nhà xuất bản… Tại các ngân hàng, các
cửa hàng, người ta cũng cập nhật tự động việc quản lý tiền bạc, hàng hoá.
Tất cả các giao tiếp như trên được gọi là các ứng dụng của cơ sở dữ liệu truyền
thống. Trong các cơ sở dữ liệu truyền thống, hầu hết các thông tin được lưu giữ và truy
cập là văn bản hoặc số. Những năm gần đây, những tiến bộ về kỹ thuật đã đưa đến
những ứng dụng mới của cơ sở dữ liệu. Các cơ sở dữ liệu đa phương tiện bây giờ có thể
lưu trữ hình ảnh, phim và tiếng nói. Các hệ thống thông tin địa lý có thể lưu trữ và phân
tích các bản đồ, các dữ
liệu về thời tiết và các ảnh vệ tinh. Kho dữ liệu và các hệ thống
phân tích trực tuyến được sử dụng trong nhiều công ty để lấy ra và phân tích những
thông tin có lợi từ các cơ sở dữ liệu rất lớn nhằm đưa ra các quyết định. Các kỹ thuật cơ
sở dữ liệu động và thời gian thực được sử dụng trong việc kiểm tra các tiến trình công
nghiệp và sản xu
ất. Các kỹ thuật tìm kiếm cơ sở dữ liệu đang được áp dụng cho World
Wide Web để cung cấp việc tìm kiếm các thông tin cần thiết cho người sử dụng bằng
cách duyệt qua Internet.
Để hiểu được các cơ sở kỹ thuật của cơ sở dữ liệu chúng ta phải bắt đầu từ những
khái niệm cơ bản về cơ sở dữ liệu. Mục đích c
ủa chương này là định nghĩa cơ sở dữ liệu
quan hệ, các phép toán trên cơ sở dữ liệu quan hệ và cơ sở dữ liệu phân tán.
1.1.1 Khái niệm về CSDL quan hệ
Trong cơ sở dữ liệu quan hệ, dữ liệu được lưu trữ dưới dạng các bảng, gọi là các
quan hệ. Mỗi một dòng trong bảng biểu thị một sự kiện tương ứng với một thực thể



13


hoặc một liên kết của thế giới thực. Tên bảng và tên cột dùng để giải thích ý nghĩa của
các giá trị trong mỗi hàng. Mọi giá trị trong cùng một cột có cùng một kiểu dữ liệu.
Theo thuật ngữ mô hình quan hệ hình thức, mỗi hàng được gọi là một bộ, mỗi cột
được gọi là thuộc tính và bảng được gọi là một quan hệ. Số lượng các thuộc tính có
trong một quan hệ gọi là mứ
c(grade), số lượng các bộ gọi là lực lượng(cardinality) của
quan hệ đó.
Để hiểu rõ hơn các khái niệm nêu trên chúng ta xét ví dụ sau đây:
Bảng 1-1 biểu diễn quan hệ EMP (NHÂN VIÊN) gồm 4 thuộc tính: EMPNUM
(Mã số nhân viên), NAME (Tên nhân viên), AGE (Tuổi), DEPTNUM (Mã số phòng
ban) và 5 bộ, ví dụ (18, Mary, 31, 1) là một bộ. Quan hệ này có 4 thuộc tính do vậy mức
của quan hệ này là 4 và lực lượng của quan hệ này là 5.
EMPNUM NAME AGE DEPTNUM
3 Jones 23 1
7 Smith 45 2
11 Bob 18 1
15 Jane 27 3
18 Mary 31 1
Bảng 1-1 Quan hệ EMP
Một lược đồ quan hệ được tạo nên từ tên một quan hệ và danh sách các thuộc tính
của nó, kí hiêu một lược đồ quan hệ như sau: <Tên quan hệ>(<danh sách các thuộc
tính>). Ví dụ: EMP(EMPNUM, NAME, AGE, DEPTNUM) là lược đồ quan hệ của
quan hệ EMP ở trên.
Tập hợp các giá trị có thể có của một thuộc tính gọi là miền của thuộc tính. Ví dụ,
EMPNUM lấy giá trị từ miền mã số nhân viên, là các số nguyên dương, AGE có miền
giá trị từ tu

ổi, giá trị từ 0 tới 100. Có thể tồn tại những giá trị giống nhau giữa hai miền
nhưng về bản chất nó thuộc về hai miền hoàn toàn khác nhau, do vậy không thể so sánh
các giá trị của những miền khác nhau. Ví dụ, thật vô nghĩa khi so sánh tuổi với mã số
nhân viên.


14


Một số khía cạnh quan trọng định nghĩa cơ sở dữ liệu quan hệ:
9 Không bao giờ có hai bản ghi giống hệt nhau trong một quan hệ.
9 Không có quy định về thứ tự các bản ghi trong một quan hệ. Một quan hệ được
định nghĩa như một tập hợp các bộ. Các phần tử trong một tập hợp không có thứ tự,
vì vậy các bộ trong một quan hệ không có một thứ
tự cụ thể.
Trong thực tế, không phải tất cả hệ quản trị cơ sở dữ liệu quan hệ nào cũng tuân
thủ chặt chẽ quy định này. Vì vậy, trong một số hệ quan trị cở sở dữ liệu vẫn tồn tại các
bản ghi nhân bản và vẫn đưa ra một thứ tự sắp xếp ngầm nào đó để thuận tiện trong quá
trình xử lý.
Người ta cũng đưa ra một định nghĩa khác về quan hệ dựa trên khái niệm về miền.
Trong định nghĩa này, người ta cho tập hợp các miền D
1
, D
2
,…, D
n
có gán thứ tự ưu tiên,
quan hệ mức n của các miền này là tập con của tích Đề Các của chúng. Chính xác hơn,
quan hệ R là tập hợp các bản ghi có thứ tự (d
1

, d
2
,…, d
n
) trong đó d
1
thuộc miền D
1
, d
2

thuộc miền D
2
,…, d
n
thuộc miền D
n
. Định nghĩa này rất hữu dụng trong việc phân tích
các tính chất của mô hình quan hệ và đại số.
Trong tài liệu này, chúng ta coi thứ tự các cột trong một quan hệ là không quan
trọng. Điều này có nghĩa chúng ta coi quan hệ là ánh xạ từ tập tên của các thuộc tính tới
tập giá trị tương ứng. Vì vậy, quan hệ EMP
1
dưới đây cũng giống quan hệ EMP ở hình
1-1.
EMPNUM AGE DEPTNUM NAME
3 23 1 Jones
7 45 2 Smith
11 18 1 Bob
15 27 3 Jane

18 31 1 Mary
Bảng 1-2 Quan hệ EMP
1




15


1.1.1.1 Khóa
Một quan hệ được định nghĩa như một tập hợp các bộ. Theo định nghĩa, các phần
tử của một tập hợp là khác nhau, vì vậy, mọi bộ trong một quan hệ phải khác nhau. Điều
đó có nghĩa là không có hai bộ có cùng một tổ hợp giá trị cho tất cả các thuộc tính của
chúng. Thông thường, tồn tại tập con của các thuộc tính của một quan hệ có tính chất:
không có hai b
ộ nào có cùng một tổ hợp giá trị cho các thuộc tính của nó. Giả sử chúng
ta ký hiệu tập con như vậy là SK, khi đó với hai bộ khác nhau bất t
1
và t
2
trong quan hệ
R chúng ta có ràng buộc là t
1
[SK] # t
2
[SK].
Tập hợp SK như vậy gọi là siêu khóa của lược đồ quan hệ R. Mỗi quan hệ có ít
nhất một siêu khóa mặc định, đó là tập hợp tất cả các thuộc tính của nó. Một khóa K của
lược đồ quan hệ R là một siêu khóa của R với tính chất nếu bỏ đi bất kì thuộc tính nào

ra khỏi K thì sẽ còn lại một tập K không phải là siêu khóa của R. Như vậy, một khóa là
một siêu khóa tố
i thiểu, nghĩa là đó là một siêu khóa mà ta không thể vứt bỏ thuộc tính
nào rời khỏi nó mà vẫn giữ được ràng buộc về tính duy nhất.
Tính chất quan trọng của khóa là duy nhất về mặt ngữ nghĩa, chúng ta không coi
một thuộc tính là khóa chỉ vì nó thỉnh thoảng mới định danh cho một bản ghi nào đó.
Trong bảng 1-1, EMPNUM(mã số nhân viên) là khóa của quan hệ EMP, bởi vì không
có hai bộ nhân viên có cùng một giá trị cho EMPNUM(mã số nhân viên). Mọi tập hợp
thuộc tính có ch
ứa EMPNUM(mã số nhân viên), ví dụ {EMPNUM, AGE}, đều là một
siêu khóa. Tuy nhiên, siêu khóa {EMPNUM, AGE} không phải là khóa vì nếu bỏ thuộc
tính AGE đi thì nó vẫn còn là một siêu khóa.
Một khóa được xác định từ ý nghĩa của thuộc tính và tính chất là bất biến, tính
chất đó phải thỏa mãn khi chúng ta chèn một bộ mới vào quan hệ. Ví dụ: chúng ta
không thể và không được chỉ định thuộc tính NAME(Tên nhân viên) làm khóa vì không
có gì đảm bảo rằng không tồn tại hai nhân viên có cùng họ tên.
Nói chung, một lược đồ quan hệ có thể có nhi
ều hơn một khóa. Trong trường hợp
đó, mỗi khóa được gọi là một khóa dự tuyển. Thông thường ta phải chỉ định một trong


16


các khóa dự tuyển làm khóa chính của quan hệ. Khóa chính là một khóa dự tuyển mà
các giá trị của chúng được dùng để xác định các bộ trong quan hệ.
Chú ý rằng, khi một lược đồ quan hệ có nhiều khóa dự tuyển thì việc lựa chọn
khóa chính là tùy ý, tuy nhiên tốt nhất là chọn khóa chính gồm một thuộc tính hoặc có
số thuộc tính ít nhất.
1.1.2 Các phép toán đại số quan hệ

Ngoài việc định nghĩa cấu trúc cơ sở dữ liệu và các ràng buộc, một mô hình dữ
liệu phải chứa một tập hợp các phép toán để thao tác dữ liệu. Tập hợp cơ sở các phép
toán mô hình quan hệ tạo nên đại số quan hệ. Các phép toán này giúp cho người sử
dụng xác định rõ yêu cầu lấy tin cơ bản. Kết quả của phép lấy tin là một quan hệ mới,
có thể được tạo ra từ m
ột hoặc nhiều quan hệ.
Các phép toán quan hệ đại số chia làm hai nhóm. Một nhóm bao gồm các phép
toán tập hợp lấy từ lý thuyết tập hợp toán học. Các phép toán đó là phép hợp, phép giao,
phép trừ tập hợp và phép tích Đề Các. Nhóm kia bao gồm những phép toán được xây
dựng đặc biệt cho các cơ sở dữ liệu quan hệ. Các phép toán đó là phép chiếu, phép chọn,
phép nối và một số phép khác.
1.1.2.1 Phép chọn
Phép chọn được sử dụng để ch
ọn ra một tập hợp các bộ thỏa mãn điều kiện chọn
từ một quan hệ. Ta có thể xem phép chọn như bộ lọc, nó chỉ giữ lại những bộ thỏa mãn
điều kiện đặt ra.
Phép chọn được kí hiệu như sau:
σ
< điều kiện chọn>
( R)
Trong đó σ được dùng để kí hiệu phép chọn, <điều kiện chọn> là một biểu thức
logic được chỉ ra trên các thuộc tính của R. Chú ý rằng R nói chung là một biểu thức đại
số quan hệ. Kết quả của một biểu thức đại số quan hệ là một quan hệ. Biểu thức đơn
giản nhất chính là tên của một quan hệ của một cơ sở dữ liệu. Quan hệ kết qu
ả của phép


17



chọn có cùng thuộc tính như R.
Ví dụ: Ta xét quan hệ NHÂNVIÊN như sau
MãNV TênNV Lương
01 David 2000
02 Mary 3500
04 John 1200
05 Cathy 5600
Bảng 1-3 Quan hệ NHÂNVIÊN
Để chọn ra các bộ NHÂNVIÊN có lương lớn hơn 2000 ta viết như sau:
σ
< Lương > 2000>
( NHÂNVIÊN)
Kết quả trả về như dưới đây:
MãNV TênNV Lương
02 Mary 3500
05 Cathy 5600
Bảng 1-4 Kết quả phép chọn
Biểu thức logic chỉ ra trong <điều kiện chọn> được tạo nên từ một số hạng mục có
dạng :
<tên thuộc tính> <phép so sánh> <giá trị hằng>
hoặc <tên thuộc tính> <phép so sánh> <tên thuộc tính>
trong đó <tên thuộc tính> là tên của một thuộc tính trong R, <phép so sánh> là
một trong các phép toán so sánh {<, >, ≤, ≥, ≠, =}, <giá trị hằng> là một giá trị hằng từ
miền giá trị của thuộc tính. Các hạng mục có thể được nối với nhau bằng các phép toán
logic AND, OR, NOT để tạo ra một điều kiện chọn chung.
Phép chọn là phép toán có tính chất giao hoán, nghĩa là :
σ
< điều kiện chọn 1>
( σ
< điều kiện chọn 2>

( R)) = σ
< điều kiện chọn 2>
( σ
< điều kiện chọn 1>
( R))


18


1.1.2.2 Phép chiếu
Nếu ta coi quan hệ như một bảng thì phép chọn chọn một số hàng của bảng thỏa
mãn điều kiện chọn và bỏ qua các hàng không thỏa mãn điều kiện chọn. Phép chiếu là
phép toán chọn một số cột của bảng. Nếu chúng ta chỉ quan tâm đến một số thuộc tính
trong quan hệ, chúng ta dùng phép chiếu để chiếu lên các thuộc tính đó. Phép chiếu
được kí hiệu là:
π
<danh sách các thuộc tính>
( R)
Trong đó π là kí hiệu dùng để biểu diễn phép chiếu và <danh sách thuộc tính> là
một danh sách con các thuộc tính của quan hệ R. Nói chung R là một biểu thức đại số
quan hệ. Trường hợp đơn giản nhất nó là tên một quan hệ của cơ sở dữ liệu. Kết quả
của phép chiếu là một quan hệ chỉ có các thuộc tính nằm trong <danh sách các thuộc
tính> và có cùng thứ tự như thứ tự của chúng trong danh sách.
Nếu <danh sách các thuộc tính> không bao gồm thuộ
c tính khóa của R thì quan hệ
kết quả có thể có những bộ trùng nhau.
Phép chiếu không có tính chất giao hoán.
Ví dụ: Ta xét quan hệ NHÂNVIÊN như bảng 1-3.
Phép chiếu

π
<TênNV, Lương>
( NHÂNVIÊN) có kết quả như sau:
TênNV Lương
David 2000
Mary 3500
John 1200
Cathy 5600
Bảng 1-5 Kết quả phép chọn
1.1.2.3 Các phép toán lý thuyết tập hợp
Nhóm tiếp theo của các phép toán đại số quan hệ là các phép toán toán học thông


19


thường trên các tập hợp. Đó là các phép giao, hợp và trừ tập hợp. Các phép toán này là
phép toán hai ngôi, nghĩa là mỗi phép toán được áp dụng cho hai tập hợp. Khi áp dụng
phép toán này cho cơ sở dữ liệu quan hệ, hai quan hệ tham gia vào một trong phép toán
trên phải có kiểu của các bộ như nhau, hay nói cách khác, chúng phải có cùng một cấu
trúc. Điều đó có nghĩa là, hai quan hệ có cùng số các thuộc tính và mỗi cặp thuộc tính
tương ứng có cùng miền giá trị.
Các phép toán được định nghĩa nh
ư sau :
Phép hợp: Hợp của hai quan hệ R và S, kí hiệu là R ∪ S, cho kết quả là một quan
hệ chứa tất cả các bộ có trong R hoặc trong S hoặc trong cả hai. Các bộ trùng lặp bị loại
bỏ.
Phép giao: Giao của hai quan hệ R và S, kí hiệu là R ∩ S, cho kết quả là một quan
hệ chứa tất cả các bộ có trong cả hai quan hệ R và S.
Phép trừ quan hệ. Phép trừ quan hệ R và S, được kí hiệu là R – S, cho kết quả là

một quan h
ệ chứa tất cả các bộ có trong R nhưng không có trong S.
Ví dụ:
R HọTên Tuổi GiớiTính
AA 20 Nam
BB 18 Nữ
CC 21 Nam
DD 25 Nữ

S HọTên Tuổi GiớiTính
BB 18 Nữ
EE 20 Nam
DD 25 Nữ
FF 21 Nam


R∪S
HọTên Tuổi GiớiTính
AA 20 Nam
BB 18 Nữ
CC 21 Nam
DD 25 Nữ
EE 20 Nam
FF 21 Nam

R∩S
HọTên Tuổi GiớiTính
BB 18 Nữ
DD 25 Nữ


R-S HọTên Tuổi GiớiTính
AA 20 Nam
CC 21 Nam

Bảng 1-6 Kết quả của các phép toán tập hợp


20


Các phép toán hợp và giao có tính chất giao hoán, nghĩa là :
R ∪ S = S ∪ R và R ∩ S = S ∩ R
Các phép toán trên cũng có tính chất kết hợp, nghĩa là :
R ∪ (S ∪ T) = (R ∪ S) ∪ T và R ∩ (S ∩ T) = (R ∩ S) ∩ T
Phép trừ tập hợp không có tính chất giao hoán.
Ngoài các phép toán trên, còn một phép toán gọi là tích Đề Các. Tích Đề Các còn
gọi là tích hỗn hợp(cross product), được kí hiệu là ×. Đó cũng là phép toán hai ngôi
nhưng quan hệ mà nó áp dụng trên đó không phải là tương thích đồng nhất. Phép toán
này được sử d
ụng để nối các bộ của hai quan hệ vào một kiểu kết hợp. Kết quả của
R(A
1
, A
2
, , A
n
) × S(B
1
, B
2

, , B
m
)
là một quan hệ Q với n + m thuộc tính Q(A
1
, A
2
, , A
n
, B
1
, B
2
, , B
m
). Quan hệ Q có
các bộ được tạo thành do sự kết hợp một bộ của R và một bộ của S.
Ví dụ, xét hai quan hệ sau :
R A
1
A
2

aa bb
ab ac

S B
1

cc

dd


R×S
A
1
A
2
B
1

aa bb cc
ab ac cc
aa bb dd
ab ac dd

Bảng 1-7 Tích Đề Các của hai quan hệ R và S
1.1.2.4 Phép nối
Phép nối được kí hiệu là và được dùng để kết hợp các bộ có liên hệ với
nhau từ hai quan hệ thành một bộ. Phép toán này rất quan trọng đối với cơ sở dữ liệu


21


quan hệ có nhiều bảng bởi vì nó cho phép ta xử lý các mối liên kết giữa các quan hệ.
Dạng tổng quát của phép nối trên hai quan hệ R(A
1
, A
2

,…,A
n
) và S(B
1
,B
2
,…, B
m
) là
R S
< Điều kiện nối>
Kết quả của phép nối là một quan hệ Q(A
1
,A
2
,…,A
n
,B
1
,B
2
,…,B
m
) có n+m thuộc
tính. Mỗi bộ của Q là một sự kết nối giữa một bộ của R và một bộ của S khi chúng thoả
mãn điều kiện nối. Sự khác nhau giữa tích Đề Các và phép nối là ở chỗ trong phép nối,
chỉ có các bộ thoả mãn điều kiện nối mới xuất hiện trong kết quả, trong khi đó trong
tích Đề Các mọi tổ hợp của các bộ đều có trong kết qu
ả. Điều kiện nối được chỉ ra trên
các thuộc tính của hai quan hệ R và S và được tính toán cho mỗi tổ hợp các bộ. Mọi tổ

hợp bộ mà điều kiện nối là đúng được chứa trong quan hệ kết quả Q như là một bộ đơn.
Một điều kiện nối tổng quát có dạng
<điều kiện> AND <điều kiện> AND … AND <điều kiệ
n>
trong đó mỗi điều kiện có dạng A
i
θ B
j
, A
i
là một thuộc tính của R, B
j
là một thuộc
tính của S, A
i
và B
j
có cùng miền và θ là một trong các dấu phép toán so sánh {<, <=, =,
>=, >, ≠}. Một phép toán nối với điều kiện tổng quát như vậy gọi là một phép nối tê-ta.
Các bộ có các thuộc tính nối là null không xuất hiện trong kết quả. Theo nghĩa đó, phép
toán không nhất thiết phải xử lý mọi thông tin trong các quan hệ tham gia. Ví dụ :
R A
1
A
2

aa bb
ab ac
ad null


S B
1
B
2

bb gg
dd hh
ac ff


R S A
1
A
2
B
1
B
2

<A
2
=B
1
> aa bb bb gg
ab ac ac hh

Bảng 1-8 Phép nối tê-ta hai quan hệ
Phần lớn các phép nối chỉ cho phép các điều kiện nối với các so sánh bằng. Những



22


phép nối chỉ sử dụng phép so sánh bằng được gọi là nối bằng (equi join). Ví dụ trong
bảng 1-8 là một phép nối bằng. Chú ý rằng trong kết quả của phép nối bằng chúng ta
thấy luôn luôn có một hoặc nhiều cặp thuộc tính có các giá trị như nhau trong mỗi bộ.
Việc có các cặp thuộc tính có giá trị như nhau là thừa, vì vậy người ta đề nghị một phép
nối mới gọi là nối tự nhiên, ký hiệu là *. Phép nối t
ự nhiên nhằm loại bỏ thuộc tính thứ
hai (thuộc tính thừa) trong điều kiện nối bằng. Định nghĩa chuẩn của nối tự nhiên đòi
hỏi hai thuộc tính nối (hoặc mỗi cặp thuộc tính nối) phải có tên như nhau trong cả hai
quan hệ. Nếu các thuộc tính đó không cùng tên thì trước khi nối phải áp dụng phép toán
đặt lại tên. Ví dụ, ta cần nối tự nhiên hai quan hệ R(A
1
,A
2
) và S(B
1
,B
2
) như trong ví dụ
trên. Để có thể thực hiện được phép nối tự nhiên với điều kiện so sánh bằng, ta phải đổi
tên thuộc tính B
1
thành A
2
.
Phép nối sẽ có kết quả như sau :
R*S A
1

A
2
B
2

aa bb gg
ab ac hh

Bảng 1-9 Phép nối tự nhiên hai quan hệ
Chú ý rằng nếu không có một tổ hợp các bộ nào thoả mãn điều kiện nối thì kết
quả của một phép nối là một quan hệ rỗng không chứa bộ nào. Nói chung, nếu R có n
R

bộ và S có n
S
bộ thì kết quả của phép nối R với S sẽ có số các bộ lớn hơn 0 và nhỏ hơn
n
R
.n
S
. Cỡ của một kết quả nối chia cho cỡ cực đại n
R
.n
S
tạo nên một tỷ lệ gọi là chọn lựa
nối, đó là một tính chất của mỗi điều kiện nối. Nếu không có điều kiện nối, mọi tổ hợp
các bộ sẽ được chọn và phép nối trở thành một tích Đề Các.
Phép nối được sử dụng để kết hợp các dữ liệu từ nhiều quan hệ sao cho các thông
tin có liên hệ với nhau có thể
được biểu diễn trong một bảng. Đôi khi phép nối được áp

dụng nối một bảng với chính nó. Chúng ta có thể áp dụng phép nối tự nhiên và nối bằng
để nối nhiều bảng với nhau. Nếu ta nối n bảng với nhau thì phải chỉ ra n-1 điều kiện nối.



23


1.2 PHÂN MẢNH CƠ SỞ DỮ LIỆU QUAN HỆ
1.2.1 Khái quát về cơ sở dữ liệu phân tán
Hình dưới đây thể hiện kiến trúc một cơ sở dữ liệu quan hệ. Kiến trúc này không
phải lúc nào cũng được triển khai trong mọi cơ sở dữ liệu nhưng các cấp độ của nó là
các khái niệm cơ bản để chúng ta hiểu được kiến trúc của cơ sở dữ liệu phân tán.

Hình 1-1 Kiến trúc cơ sở dữ liệu phân tán
Mức trên cùng của hình 1-1 là lược đồ toàn cục. Lược đồ toàn cục định nghĩa toàn
bộ dữ liệu có trong cơ sở dữ liệu phân tán. Vì vậy, lược đồ toàn cục định nghĩa một cách
chính xác nhất một cơ sở dữ liệu lúc chưa phân tán. Trong tài liệu này chúng ta sử dụng
mô hình quan hệ để mô tả cơ sở dữ liệu phân tán. Khi đó, lược đồ toàn cục bao gồm tập
hợp các quan h
ệ toàn cục.
Mỗi quan hệ toàn cục có thể được chia thành nhiều phần không giao nhau, người
Global schema
Fragement schema
Allocation schema
Local
mapping
schema 1
DMS of
site 1

Local
database
at site 1
Local
mapping
schema 2
DMS of
site 2
Local
database
at site 2
(Other sites)
Site
independent
schemas


24


ta gọi là phân mảnh. Có nhiều cách để thực hiện phân mảnh một quan hệ toàn cục, ví
dụ: phân mảnh ngang, phân mảnh dọc, phân mảnh hỗn hợp… Sự khớp nhau giữa lược
đồ toàn cục và các phân mảnh gọi là lược đồ phân mảnh. Quan hệ này là một-nhiều -
một quan hệ toàn cục có nhiều phân mảnh nhưng một phân mảnh chỉ thuộc về một quan
hệ toàn cục mà thôi. Các phân mảnh được gọi tên bằ
ng tên quan hệ toàn cục cộng thêm
chỉ số kèm sau, ví dụ R
i
chỉ các phân mảnh của quan hệ toàn cục R.
Phân mảnh là thành phần logic của quan hệ toàn cục, chúng được lưu trữ vật lý tại

một hoặc nhiều nơi khác nhau. Lược đồ phân bố(allocation schema) định nghĩa vị trí
lưu trữ phân mảnh. Kiểu phân bố phân mảnh quy định cơ sở dữ liệu có dư thừa hay
không bị dư thừa. Tất cả phân mảnh thuộc về cùng một một quan h
ệ toàn cục R và lưu
trữ tại vị trí j tạo thành hình ảnh vật lý của quan hệ toàn cục R tại vị trí j. Vì vậy chúng
ta có quan hệ một-một giữa hình ảnh vật lý và cặp đôi quan hệ toàn cục-vị trí, hình ảnh
vật lý được kí hiệu bằng tên quan hệ toàn cục cộng với số thứ tự của vị trí. Để phân biệt
các phân mảnh với nhau ta sử dụng số
mũ, ví dụ: R
j
là hình ảnh vật lý của quan hệ toàn
cục R tại vị trí j.
Quay trở lại kiến trúc cơ sở dữ liệu phân tán ở trên, ta thấy ba cấp độ trên cùng
mối quan hệ giữa các đối tượng không phụ thuộc vào mô hình dữ liệu của hệ quản trị cơ
sở dữ liệu. Tại mức thấp hơn, cần phải ghép giữa hình ảnh vật lý với đối tượng t
ương
ứng trong hệ quản trị cơ sở dữ liệu địa phương.
Mô hình ở trên mô tả rất cơ bản kiến trúc của một cơ sở dữ liệu phân tán. Mục
đích chính của mô hình này là: phân mảnh dữ liệu, lưu trữ, kiểm soát dư thừa dữ liệu và
độc lập với các hệ quản trị cơ sở dữ liệu địa phương.
1. Tách biệ
t khái niệm phân mảnh dữ liệu và lưu trữ dữ liệu. Sự tách biệt này giúp
chúng ta phân biệt được hai mức độ trong suốt trong phân tán dữ liệu: trong suốt
phân mảnh và trong suốt về mặt lưu trữ. Trong suốt phân mảnh là mức độ cao nhất.
Ở mức độ này người dùng hoặc các chương trình ứng dụng sử dụng cơ sở dữ liệu
phân tán như đang sử dụng cơ s
ở dữ liệu tập trung. Trong suốt về mặt lưu trữ ở mức
độ thấp hơn. Mức độ này đòi hỏi người dùng hay các chương trình ứng dụng phải



25


làm việc với các phân mảnh, tuy nhiên họ không biết các phân mảnh này đang được
lưu trữ tại vị trí nào.
2. Kiểm soát dữ thừa dữ liệu một cách tường minh. Mô hình này giúp cho việc kiểm
soát dư thừa dữ liệu một cách tường minh ở mức độ phân mảnh.
3. Độc lập với các hệ quản trị cở sở dữ liệu địa phương. Chức năng này cho phép
chúng ta nghiên c
ứu một số vấn đề của quản trị cơ sở dữ liệu phân tán mà không cần
phải tìm hiểu mô hình dữ liệu cụ thể của hệ quản trị cơ sở dữ liệu địa phương.
1.2.2 Các kiểu phân mảnh cơ sở dữ liệu
Phân chia quan hệ toàn cục thành các phân mảnh có thể thực hiện theo hai cách cơ
bản: phân mảnh ngang và phân mảnh dọc. Trong thực tế sự phân mảnh có thể kết hợp
cả hai loại phân mảnh, gọi là phân mảnh hỗn hợp.
Khi phân mảnh cơ sở dữ liệu cần tuân thủ một số quy tắc liệt kê dưới đây. Các quy tắc
này nhằm đảm bảo tính nhất quán của cơ sở dữ liệu,
đặc biệt về ngữ nghĩa của dữ liệu.
1. Tính đầy đủ. Tất cả dữ liệu trong quan hệ toàn cục phải tương ứng với các phân
mảnh. Không bao giờ xảy ra trường hợp một bản ghi thuộc vào quan hệ toàn cục
nhưng không thuộc phân mảnh nào.
2. Tính tái thiết được. Bao giờ cũng phải xây dựng được quan hệ toàn cục từ những
phân mảnh củ
a nó.
3. Tính tách biệt. Các phân mảnh không được giao nhau, vì thế dữ liệu nhân bản có thể
được kiểm soát ở cấp độ lưu trữ. Quy tắc này có tác dụng chủ yếu đối với phân
mảnh ngang, phân mảnh dọc có thể không nhất thiết tuân theo quy tắc này.
Sau đây chúng ta xem xét các loại phân mảnh.
1.2.2.1 Phân mảnh ngang
Phân mảnh ngang là cách chia các bản ghi của một quan hệ toàn cục thành các tập

con, các tập con này có cùng tính chất. Có thể biểu diễn phân mả
ng ngang bằng phép

×