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

Tìm các câu SQL từ chương trình nguồn chuyển sang AQL và vẽ cây toán tử AQL

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.18 MB, 69 trang )

LỜI CẢM ƠN

Tôi xin gửi lời cảm ơn chân thành toàn thể các thầy cô trong khoa đào
tạo sau đại học trường ĐH Công nghệ thông tin và Truyền thông Thái
Nguyên và đặc biệt là PGS.TS. Lê Huy Thập đã tận tình chỉ dạy và giúp đỡ để
hoàn thành được luận văn này.

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 ĐH CNTT &
TT Thái Nguyên và ứng dụng dựa trên số liệu của công ty IMAX, 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.

ii


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

AQL

Algebraic Query Language (Ngôn ngữ vấn tin đại số)

CSDL

Cơ sở dữ liệu

CPU



Central Processing Unit (Bộ xử lý trung tâm)

OOP

Object Oriented Programming (Lập trình hướng đối tượng)

QEP

Query Executtion Plan (Chiến lược thực thi vấn tin)

SQL

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

iii


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


Phép giao



Phép hợp



Ký hiệu thuộc




Ký hiệu không thuộc

-

Phép trừ

X

Tích đề các
Phép nối

π

Phép chiếu

θ

Tê ta

*

Kết nối tự nhiên

>

Phép so sánh lớn hơn


<

Phép so sánh bé hơn

÷

Phép chia
Phép và
Phép hoặc



Tập rỗng

¬

Phủ định

=

Phép bằng



Lớn hơn hoặc bằng



Nhỏ hơn hoặc bằng


σ

Phép chọn

Π

Pi

iv


MỤC LỤC
LỜI CẢM ƠN.............................................................................................................. i
LỜI CAM ĐOAN ...................................................................................................... ii
DANH MỤC CÁC CHỮ VIẾT TẮT...................................................................... iii
BẢNG DANH MỤC CÁC KÍ HIỆU ...................................................................... iv
MỤC LỤC....................................................................................................................1
LỜI MỞ ĐẦU..............................................................................................................3
Chương 1 : TỔNG QUAN .........................................................................................4
1.1. Giới thiệu về một số phần mềm tìm kiếm cơ bản và một số hàm tìm
kiếm ..............................................................................................................................4
1.1.1. Một số công cụ tìm kiếm cơ bản .........................................................................5
1.1.2. Giới thiệu hàm tìm kiếm cơ bản trong các ngôn ngữ lập trình ...........................7
1.2. Tổng quan về cơ sở dữ liệu phân tán .................................................................9
1.2.1. Định nghĩa Hệ CSDL phân tán và hệ quản trị CSDL phân tán ..........................9
1.2.2. Một số dạng câu vấn tin SQL cơ bản ................................................................27
1.2.3.Định nghĩa AQL và cây toán tử .........................................................................29
1.3 Kết luận chương ..................................................................................................31
Chương 2: TÌM KIẾM CÂU SQL TỪ CHƯƠNG TRÌNH NGUỒN,
CHUYỂN SANG AQL VÀ VẼ CÂY TOÁN TỬ AQL ........................................33

2.1 Quá trình tối ưu hóa và một số thuật toán tối ưu vấn tin. ..............................33
2.1.1Quá trình tối ưu hóa. ...........................................................................................33
2.1.2. Giới thiệu một số tối ưu hóa câu vấn tin cơ sở dữ liệu phân tán ......................34
2.1.2.1. Thuật toán INGRES .......................................................................................35
2.1.2.2. Thuật toán System R* ....................................................................................38
2.1.2.3. Thuật toán SDD-1 ..........................................................................................42
2.2. Thuật toán tìm câu vấn tin SQL, tạo câu vấn tin AQL và vẽ cây toán tử....43
2.2.1.Thuật toán tìm câu vấn tin SQL từ chương trình nguồn ....................................44

1


2.2.2. Thuật toán chuyển đổi từ SQL sang AQL : CH_SQL_AQL. ..........................48
2.2.3.Thuật toán tạo cây AQL .....................................................................................50
2.2.4.Thuật toán vẽ cây toán tử ...................................................................................51
2.2.5.Ví dụ ...................................................................................................................53
2.3. Kết luận chương .................................................................................................54
Chương 3: CHƯƠNG TRÌNH ỨNG DỤNG .........................................................55
3.1.Tìm câu SQL từ chương trình quản lý hàng hóa tại công ty Imax ...............55
3.2.Chuyển lệnh SQL sang AQL .............................................................................59
3.3.Vẽ cây toán tử AQL ............................................................................................61
KẾT LUẬN ................................................................................................................62
HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI ..................................................................63
TÀI LIỆU THAM KHẢO........................................................................................64

2


LỜI MỞ ĐẦU
Nhu cầu quản lí dữ liệu trong lĩnh vực khoa học công nghệ ngày càng

cao và trở thành một thách thức lớn. Hệ thống xử lí phần cứng dần dần không
theo kịp nhu cầu trên do các nguồn dữ liệu trở lên khổng lồ. Các giải pháp
nhằm tăng tốc độ xử lí liên tục ra đời , trong số đó thì xử lí song song và phân
tán ngày càng được quan tâm nghiên cứu và ứng dụng để giải quyết các vấn
đề lớn và phức tạp.
Phạm vi nghiên cứu của luận văn này tập trung vào xử lí song song trên
một chương trình nguồn có nhiều lệnh SQL có thể thỏa mãn điều kiện song
song hóa và tối ưu hóa bới phương pháp song song tự động. Việc đó tiến hành
bằng cách tìm kiếm vét cạn các lệnh SQL sau đó chuyển sang AQL để tối ưu
hóa vấn tin. Các vấn đề lần lượt được trình bày trong các chương như sau :
 Chương 1 : giới thiệu về một số công cụ tìm kiếm, tổng quan cơ sở dữ
liệu (CSDL) phân tán, câu vấn tin SQL, toán tử Aql và cây toán tử.
 Chương 2 : trình bày các thuật toán tìm câu vấn tin SQL, thuật toán
chuyển đổi câu vấn tin SQL sang AQL, thuật toán vẽ cây toán tử AQL
 Chương 3 : tạo chương trình mẫu và chạy thử dựa theo số liệu thực tế

3


Chương 1 : TỔNG QUAN
1.1. Giới thiệu về một số phần mềm tìm kiếm cơ bản và một số hàm
tìm kiếm
Với việc phát triển càng ngày càng mạnh của mạng truyền thông và
Internet, các yêu cầu về việc đáp ứng nhanh chóng khả năng lấy được thông
tin hữu ích từ mạng. Các yêu cầu này đặt ra cho các nhà phát triển các hệ
thống tìm kiếm nhằm đáp ứng nhu cầu tìm hiểu thông tin qua các cụm từ khóa
được nhập vào.
Các công cụ tìm kiếm dựa trên chương trình tự động và các ứng dụng
của điện toán đám mây nhằm lưu trữ và lấy thông tin một cách tốt nhất.Tuy
nhiên một điều cơ bản đó là công cụ tìm kiếm không phải con người, chính vì

thế có sự khác nhau căn bản giữa con người và công cụ tìm kiếm trong việc
đánh giá nội dung của một trang web. Công cụ tìm kiếm nội dung theo định
hướng, dù được trang bị công nghệ rất hiện đại nhưng công cụ tìm kiếm
không đủ thông minh để có thể cảm nhận vẻ đẹp của một mẫu thiết kế,
thưởng thức âm thanh hoặc thấy được sự chuyển động của một video nào đó.
Công cụ tìm kiếm thu thập dữ liệu của trang web nó chỉ nhìn vào các văn bản
cụ thể để cố gắng hiểu trang web này đang muốn nói về vấn đề gì.
Công cụ tìm kiếm có 3 bộ phận chính :
 Bộ phận thu thập dữ liệu
Bộ phận thu thập dữ liệu là một chương trình thu thập dữ liệu bằng cách đi
từ trang web này sang trang web khác để khám phá nội dung và các liên kết
trong trang web đó, đây là quá trình phát hiện các trang web mới, các liên kết
mới, dữ liệu này sử dụng để cập nhật cho bộ phận lập chỉ mục.
 Bộ phận lập chỉ mục
Đây là quá trình xây dựng cơ sở dữ liệu của các từ khóa , cụm từ , các
trang web và các trang liên quan đến một lĩnh vực nào đó.
 Bộ phận xử lí tính toán
4


Đây là quá trình tính toán nhằm cung cấp các kết quả cho người tìm kiếm. Bộ
phận tính toán sẽ dựa trên các yếu tố khác nhau để phân loại và xếp hạng trang
web. Các yếu tố này có tầm quan trọng khác nhau và do con người đặt ra, một
trong những yếu tố quan trọng nhất để xếp hạng và phân loại là dựa trên chất
lượng nội dung và chất lượng của những liên kết đến trang web của bạn.
1.1.1. Một số công cụ tìm kiếm cơ bản
 Google
Cơ chế hoạt động của Google :
Đầu tiên bộ phận thu thập dữ liệu của Google hay còn gọi là Google
Spider xem xét trang web (định dạng HTML) nó lưu ý các từ bên trong

trang web nơi nó tìm thấy các từ đó. Ví dụ các từ xuất hiện trong các thẻ
tiêu đề, thẻ miêu tả... nó nhận định đây là phần quan trọng có liên quan đến
việc tìm kiếm của người dụng sau này. Vì thế với mỗi website thì Google
có nhiều phương pháp để index lại chỉ mục, liệt kê lại các từ khóa chính và
có thể được cập nhật lại để cho hệ thống tìm kiếm diễn ra nhanh hơn, hiệu
quả hơn hoặc cả hai.
Tiếp theo Google sẽ xây dựng chỉ mục, việc này làm cho các thông tin
được tìm thấy một cách nhanh chóng. Sau khi tìm thông tin trên trang web,
Google Spider nhận ra rằng việc tìm kiếm thông tin trên website là quá trình
không bao giờ kết thúc bởi vì các nhà quản trị trang web luôn thay đổi, cập
nhật thông tin trên website và điều đó có nghĩa các Spider sẽ liên tục thực
hiện nhiệm vụ thu thập dữ liệu.
Cuối cùng Google sẽ xử lí, tính toán và mã hóa thông tin để lưu trữ
trong cơ sở dữ liệu. Và khi có một truy vấn tìm kiếm thì hệ thống sẽ trả về các
kết quả có chứa nội dung hữu ích tương ứng với các truy vấn tìm kiếm của
người dùng.
Google search cũng cho phép người sử dụng khai báo trang web của họ
với máy chủ của google, sau đó các máy chủ này sẽ sắp xếp thời gian để tạo
5


chỉ mục cho các trang web được khai báo.Việc sắp xếp thứ tự kết quả tìm
kiếm phụ thuộc vào thứ hạng của nó theo phân cấp của Google search nhờ
tổng hợp phức tạp keyword, pagerank, sitemap.... Kết quả tìm kiếm cũng
được phân loại theo đối tượng sử dụng khác nhau, nó phụ thuộc vào vị trí địa
lý (lấy theo IP truy cập của người truy cập). Ngoài ra, Google search cũng sử
dụngcookies và tính năng lưu trữ thói quen tìm kiếm của người dùng (cá nhân
hóa kết quả tìm kiếm) để tạo ra kết quả tìm kiếm. Nói chung, việc sắp xếp và
hiển thị kết quả của Google search khá phức tạp và nó là bí mật công nghệ mà
nhờ đó Google có thể chiếm lĩnh thị trường.

 Một số công cụ tìm kiếm Việt
Ở Việt Nam đã từng xuất hiện khá nhiều công cụ tìm kiếm như Socbay,
Hoatieu, Vinaseek, Xalo, Timnhanh, Monava, ... phục vụ nhu cầu cho người
Việt. Tuy nhiên sau khi Việt Nam chuẩn hóa bảng mã unicode, nội dung web
Tiếng Việt nhanh chóng được thống nhất và lượng thông tin Tiếng Việt bùng
nổ nhanh chóng, Unicode giúp Tiếng Việt tiến bước hội nhập với thế giới
đồng thời tạo điều kiện cho các công cụ nước ngoài không gặp phải khó khăn
khi đánh chỉ mục nội dung Tiếng Việt nữa. Google nhanh chóng xác lập vị trí
vững chắc trên thị trường và đánh bại các đối thủ cạnh tranh là các công cụ
tìm kiếm Việt có tiềm lực thua kém rất nhiều.
Gần đây thị trường Việt Nam mới xuất hiện 2 đơn vị tham gia vào
mảng tìm kiếm là Cốc Cốc và Wada, bước đầu Cốc Cốc đã có kết quả
tương đối khả quan. Cốc Cốc chính thức được công bố tháng 4 năm 2013,
sau 2 tháng ra mắt đã thu hút gần 2 tiệu lượt truy cập. Cốc Cốc là một dự
án lập bởi 3 lập trình viên tốt nghiệp ĐH Moscow – Liên bang Nga và
được hỗ trợ bởi Yandex , Mail.ru group và Digital Sky Technologies.
Công cụ tìm kiếm tiếng Việt Cốc Cốc đang trong thế cạnh tranh với
Google bằng cơ sở dữ liệu hơn 2,1 tỷ trang Web, trong đó số lượng dữ

6


liệu từ tên miền ".vn", ".com.vn" nhiều gấp hai lần so với Google, riêng
về tìm kiếm địa điểm thì cơ sở dữ liệu địa điểm đồ sộ của Cốc Cốc bao
gồm hơn nửa triệu địa điểm tại 171 thành phố và thị xã trên khắp lãnh thổ
Việt Nam. Cơ sở dữ liệu này cũng bao gồm ảnh chụp theo công nghệ
panorama cho phép người dùng có thể quan sát một địa điểm từ tất cả các
góc nhìn. Cốc Cốc sở hữu lợi thế cạnh tranh ở khả năng phân tích xử lý
ngôn ngữ tiếng Việt với các đặc điểm riêng như dấu, âm tiết, từ đồng âm,
phân tách từ ngữ và các từ viết tắt.

1.1.2. Giới thiệu hàm tìm kiếm cơ bản trong các ngôn ngữ lập trình
 Hàm tìm kiếm trong ngôn ngữ C#
Trong ngôn ngữ C# có một số phương thức tìm kiếm cơ bản như find,
like,… Trong phần này của luận văn sẽ giới thiệu một số phương thức trên và
ví dụ minh họa của chúng:
Tìm kiếm trong DataTable
Tìm kiếm trong DataView
 Tìm kiếm trong DataTable
Tìm kiếm một bản ghi: là lấy thông tin chi tiết của 1 ID hay khóa chính
của chúng nhằm xác định chính xác bản ghi muốn tìm. Ví dụ, tìm thông tin
chi tiết của một khách hàng có mã khách hàng cho trước, tìm thông tin chi tiết
của hóa đơn có mã hóa đơn cho trước.
DataTable sử dụng phương thức Find của DataTable.Rows. Cú pháp
phương thức Find như sau:
DataRow DataRowCollection.Find (object key)
Chú ý: Hàm Find tìm giá trị key chỉ trên cột khóa chính vì vậy bảng
cần phải có khóa chính
Ví dụ: cho một đoạn mã chương trình như sau:
myTable.PrimaryKey = new DataColumn[]
{my Table. Columns[“CustomerID”]}
7


String s = “primaryKeyValue”;
DataRow foundRow = myTable.Rows.Find (s);
If (foundRow != null)
MessageBox.Show (foundrow[1].ToString());
Else
MessageBox.Show (“A row with the primaryKey of” + s +”
could not be found” );

Thực hiện tìm kiếm theo giá trị khóa chính của các bản ghi.
 Tìm kiếm trong DataView
Một số phương thức tìm kiếm có trong DataView như sau:
Int Find (object): Trả về chỉ số dòng thỏa mãn điều kiện tìm kiếm.
DataRowView[] FindRows(object hay object[]): Trả về 1 số DataRowView thỏa
mãn điều kiện tìm kiếm.
 Một số hàm tìm kiếm có trong ngôn ngữ Java
Trong phần này, luận văn giới thiệu một số phương thức tìm kiếm
chuỗi trong ngôn ngữ javaScript
 Phương thức tìm kiếm chuỗi match():
Ví dụ:
var str = "The rain in SPAIN stays mainly in the plain";
var res = str.match(/ain/g);
kết quả trả về là các chuỗi “ain”,” ain”, “ain”
Định nghĩa và cách sử dụng: Phương pháp match() tìm kiếm một chuỗi
trong một chuỗi khác. Các giá trị được trả về được thể hiện như một mảng.
Lưu ý: nếu các tham số lựa chọn không bao gồm thay đổi g (tìm kiếm
tất cả) thì phương thức match() chỉ trả về giá trị đầu tiên.
Phương thức này trả về null nếu không có giá trị phù hợp được tìm thấy.
 Phương thức search():
Phương thức search() tìm kiếm các giá trị chuỗi giữa các biểu thức và

8


đối tượng chuỗi được xác định trước.
Cú pháp: str.search(regexp)
Trong đó, str là chuỗi và regexp là biểu thức.
Nếu quá trình tìm kiếm thành công, phương thức search() trả về chỉ số
của vị trí đầu tiên tìm được ngược lại là giá trị -1.

Ví dụ:
function testinput(re, str) {
var midstring;
if (str.search(re) != -1) {
midstring = ' contains ';
} else {
midstring = ' does not contain ';
}
console.log(str + midstring + re);
}
Ví dụ minh họa phương thức search. Ví dụ thể hiện giá trị được trả về
nếu tồn tại “re” trong chuỗi “str”. nếu tồn tại thì midstring được gán là
‘contains’ và kết quả trả về là ‘str contains re’ còn ngược lại là ‘str not
contains re’
1.2. Tổng quan về cơ sở dữ liệu phân tán
1.2.1. Định nghĩa Hệ CSDL phân tán và hệ quản trị CSDL phân
tán
 Hệ cơ sở dữ liệu 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 nhanh trong 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 đa dạng các loại hình dịch

9


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 :
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.
Những nhược điểm này được khắc phục trong hệ thống phân tán. Chính
vì vậy, xu thế tất yêu các hệ thống phân tán sẽ thay thế dần cho các hệ thống
tập trung truyền thống.
Các hệ CSDL phát triển từ mô hình xử lý dữ liệu sang mô hình xử lý
tập trung. Trong đó, mỗi ứng dụng định nghĩa một hay nhiều tệp dữ liệu riêng
biệt của chúng (hình 1.1). Từ đó, các hệ ứng dụng bất biên đối với sự thay đổi
cấu trúc lưu trữ và các chiến lược truy nhập dữ liệu của hệ thống.

Hình 1.1: Xử lý dữ liệu truyền thống
10


Hình 1.2: Xử lý CSDL
Trong ngữ cảnh xử lý phân tán, hệ CSDLPT có thể được xem như công
cụ giúp quá trình xử lý dữ liệu dễ dàng và hiệu quả hơn. Khái niệm hệ
CSDLPT bao gồm khái niệm CSDLPT và hệ quản trị CSDLPT.
CSDLPT là một tập các CSDL có quan hệ với nhau về mặt logic và
được phân bố trên một mạng máy tính. Hệ quản trị CSDLPT là hệ thống
phần mềm cho phép quản trị CSDLPT và làm cho sự phân tán đó là trong
suốt đối với người sử dụng.Trong mô hình CSDLPT bản thân CSDL có ở
trên nhiều máy tính khác nhau. Như vậy, đặc trưng của CSDLPT là các
CSDL được phân bố trên mạng máy tính và có quan hệ với nhau về mặt
logic. Đồng thời, cần có một cấu trúc giao diện chung để truy nhập dữ liệu

trong hệ thống phân tán.
 Sự cần thiết của hệ cơ sở dữ liệu phân tán
Trong những năm gần đây, công nghệ CSDLPT phát triển ngày càng
mạnh mẽ và thể hiện sự quan trọng của nó trong lĩnh vực công nghệ thông tin.
Một số nguyên nhân thúc đẩy sự phát triển của các hệ CSDLPT:
 Sự phát triển của các cơ cấu tổ chức
Cùng với sự phát triển cuả xã hội, nhiều cơ quan, xí nghiệp có cơ cấu tổ
chức không tập trung, hoạt động phân tán trên phạm vi rộng. Vì vậy thiết kế
và cài đặt CSDLPT là phù hợp, đáp ứng mọi nhu cầu truy xuất và khai thác
dữ liệu. Cùng với sự phát triển của công nghệ viễn thông, tin học, động cơ

11


thúc đẩy kinh tế, việc tổ chức các trung tâm máy tính lớn và tập trung trở
thành vấn đề cần nghiên cứu.
Cơ cấu tổ chức và vấn đề kinh tế là một trong những nguyên nhân quan
trọng nhất của sự phát triển CSDLPT.
 Giảm chi phí truyền thông
Trong thực tế, sử dụng một số ứng dụng mang tính địa phương sẽ làm
giảm chi phí truyền thông. Bởi vậy, việc tối ưu hoá tính địa phương của các
ứng dụng là một trong những mục tiêu chính của việc thiết kế và cài đặt một
CSDLPT.
 Hiệu quả công việc
Sự tồn tại một số hệ thống xử lý điạ phương đạt được thông qua việc
xử lý song song. Vấn đề này có thể thích hợp với một hệ đa xử lý. CSDLPT
có thuận lợi trong phân tích dữ liệu phản ánh điều kiện phụ thuộc của các ứng
dụng, cực đại hoá tính địa phương của ứng dụng. Theo cách này tác động qua
lại giữa các bộ xử lý được làm cực tiểu. Công việc được phân chia giữa các
bộ xử lý khác nhau và tránh được các tắc nghẽn thông tin trên mạng truyền

thông hoặc các dịch vụ chung của toàn hệ thống. Sự phân tán dữ liệu phản
ánh hiệu quả làm tăng tính địa phương của các ứng dụng.
 Độ tin cậy và tính sẵn sàng
Cách tiếp cận CSDLPT cho phép truy nhập độ tin cậy và tính sẵn sàng
cao hơn. Tuy nhiên, để đạt được mục đích đó là vấn đề không đơn giản đòi
hỏi kỹ thuật phức tạp. Những lỗi xuất hiện trong một CSDLPT có thể xảy ra
nhiều hơn do số các thành phần cấu thành lớn hơn. Tuy nhiên ảnh hưởng của
lỗi chỉ ảnh hưởng tới các ứng dụng sử dụng các site lỗi. Vì vậy, sự hỏng hóc
của toàn hệ thống hiếm khi xảy ra.
CSDLPT là sự tập hợp các dữ liệu thuộc cùng một hệ thống về mặt
logic nhưng phân bố trên các site của mạng máy tính. Công nghệ CSDLPT là
sự kết hợp giữa hai vấn đề phân tán và hợp nhất:
12


Phân tán : phân tán dữ liệu trên các site của mạng
Hợp nhất : hợp nhất về mặt logic các dữ liệu phân tán sao cho chúng xuất hiện với
người sử dụng giống như với CSDL tập trung duy nhất.
Công nghệ CSDLPT mới thực sự phát triển trong những năm gần đây nhờ
sự phát triển của kỹ thuật tính toán, kỹ thuật truyền thông và mạng máy tính.
Những ứng dụng được xây dựng trên CSDLPT đã 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ó so với CSDL tập trung.
 Các đặc điểm của cơ sở dữ liệu phân tán
CSDL phân tán không đơn giản là sự phân bố của các CSDL bởi vì
CSDLPT có nhiều đặc điểm khác biệt so với CSDL tập trung truyền thống.
Phần này so sánh CSDLPT với CSDL tập trung ở một số đặc điểm: điều
khiển tập trung, sự độc lập dữ liệu, sự giảm dư thừa dữ liệu, các cấu trúc vật
lý phức tạp để truy xuất hiệu quả.
 Điều khiển tập trung
Điều khiển tập trung (Centralized Control) là một đặc điểm của CSDL

tập trung, toàn bộ dữ liệu được tập trung lại nhằm để tránh sự dư thừa dữ liệu,
đảm bảo được tính độc lập của dữ liệu. Dữ liệu được quản lý tập trung bởi
người quản trị CSDL. Chức năng cơ bản của người quản trị CSDL (DBA Database Administrator) là bảo đảm sự an toàn của dữ liệu. Trong các
CSDLPT vấn đề điều khiển tập trung không được nhấn mạnh. Nói chung,
trong các CSDLPT , sự điều khiển được thực hiện theo một cấu trúc điều
khiển phân cấp bao gồm hai loại người quản trị CSDL:
Người quản trị CSDL toàn cục (Global Database Administrator) là người có trách
nhiệm chính về toàn bộ CSDLPT
Người quản trị CSDL cục bộ (Local Database Administrator) là người có trách
nhiệm về CSDL cục bộ của họ.
Tuy nhiên, những người quản trị CSDL cục bộ cần phải có những
quyền độc lập riêng về CSDL cục bộ của mình mà người quản trị CSDL toàn
13


cục hoàn toàn không có những quyền này và sự phối hợp giữa các vị trí được
thực hiện bởi chính những người quản trị cục bộ. Đặc điểm này được gọi là sự
độc lập vị trí. Các CSDLPT có thể khác nhau rất nhiều về mức độ độc lập vị
trí. Từ sự độc lập vị trí hoàn toàn (không có người quản trị CSDL tập trung)
đến sự điều khiển tập trung hoàn toàn.
 Độc lập dữ liệu
Độc lập dữ liệu (Data Independence) là một đặc điểm của CSDL. Độc
lập dữ liệu có nghĩa là tổ chức lưu trữ dữ liệu là trong suốt đối với người lập
trình ứng dụng. Ưu điểm của độc lập dữ liệu là các chương trình không bị ảnh
hưởng bởi những thay đổi về tổ chức lưu trữ vật lý của dữ liệu.
Trong các hệ CSDLPT, độc lập dữ liệu cũng quan trọng như trong các
CSDL tập trung. Tuy nhiên, một đặc điểm mới được đưa vào trong khái niệm
thông thường của độc lập dữ liệu là sự trong suốt phân tán (Distribution
Transparency). Nhờ sự trong suốt phân tán mà các chương trình ứng dụng có
thể được viết giống như trong CSDL không được phân tán. Vì vậy, tính đúng

đắn của các chương trình ứng dụng không bị ảnh hưởng bởi sự di chuyển dữ
liệu từ một vị trí này đến một vị trí khác. Tuy nhiên, tốc độ thực hiện của các
chương trình ứng dụng thì bị ảnh hưởng.
Độc lập dữ liệu trong CSDL tập trung được thể hiện thông qua một
kiến trúc nhiều mức. Các mức này có những mô tả khác nhau về dữ liệu và
những ánh xạ biến đổi giữa các mức. Sự trong suốt phân tán trong CSDLPT
được thể hiện bằng cách bổ sung thêm các mức trong suốt vào kiến trúc nhiều
mức của CSDL tập trung.
 Giảm dư thừa dữ liệu
Trong các CSDL tập trung, sự dư thừa dữ liệu được giảm thiểu, vì tránh sự
không nhất quán giữa nhiều bản sao bằng cách chỉ có một bản sao và tiết kiệm
vùng nhớ lưu trữ. Các ứng dụng chia sẻ chung, truy xuất đến các tập tin dữ liệu.

14


Tuy nhiên, trong các CSDLPT, sự dư thừa dữ liệu là một đặc điểm cần
thiết.Vì các lý do sau:
Làm tăng tính cục bộ của các ứng dụng nếu dữ liệu được nhân bản tại tất cả các vị
trí mà ứng dụng cần dữ liệu này. Khi đó, các ứng dụng cục bộ được thực hiện
nhanh hơn vì không cần phải truy xuất dữ liệu từ xa.
Làm tăng tính sẵn sàng của hệ thống ứng dụng.Vì một vị trí có sự cố sẽ không làm
ngưng sự thực hiện của các ứng dụng ở những vị trí khác nếu dữ liệu tại vị trí bị
hỏng được nhân bản tại các vị trí khác.
Tuy nhiên, sự nhân bản dữ liệu cần phải xem xét kỹ lưỡng dựa vào hai
loại ứng dụng cơ bản: ứng dụng chỉ đọc và cập nhật. Sự nhân bản dữ liệu giúp
cho các ứng dụng chỉ đọc được thực hiện nhanh hơn, nhưng nó làm cho các
ứng dụng cập bị thực hiện lâu hơn vì phải cập nhật dữ liệu tại các vị trí được
nhân bản.
Như vậy, sự nhân bản dữ liệu sẽ là một ưu điểm nếu hệ thống có rất

nhiều ứng dụng chỉ đọc và có rất ít ứng dụng cập nhật. Trong trường hợp
ngược lại thì sự nhân bản dữ liệu lại là một nhược điểm.
 Độ tin cậy qua các giao dịch phân tán
Hệ quản trị CSDLPT cải thiện độ tin cậy qua các giao dịch phân tán.
Do quá trình nhân bản hạn chế các lỗi tại vị trí riêng lẻ, trạm riêng hoặc
truyền thông. Từ đó, chỉ có một hoặc một số trạm hỏng hóc không đủ để phá
vỡ toàn hệ thống. Điều này có nghĩa là, khi có hỏng hóc thì người sử dụng
vẫn có thể truy nhập được tới những phần khác trong CSDLPT.
Một chuỗi các thao tác CSDL được thực hiện nhằm chuyển trạng thái
CSDL nhất quán này sang trạng thái CSDL nhất quán khác là một giao dịch. Giao
dịch là một đơn vị tính toán cơ bản, nhất quán và tin cậy. Các giao dịch có thể
được thực hiện đồng thời ngay cả khi có lỗi xảy ra. Vì vậy,hệ quản trị CSDL phải
hỗ trợ đầy đủ cho giao dịch đảm bảo rằng việc thực thi đồng thời các giao dịch

15


của người sử dụng sẽ không vi phạm tính nhất quán của CSDL trong khi hệ thống
có lỗi. Trong đó, các giao dịch phải thỏa mãn các quy tắc toàn vẹn của CSDL.
 Cải tiến hiệu năng
Hiệu năng của CSDLPT được cải tiến dựa vào hai điểm:
a) Hệ quản trị CSDLPTcó khả năng phân mảnh CSDL khái niệm và

cho phép cục bộ hoá dữ liệu. Có hai ưu điểm nổi bật:
Vì mỗi trạm chỉ xử lý một phần CSDL, sự tranh chấp về CPU và các dịch vụ vào/ra
không nghiêm trọng như trong các hệ CSDL tập trung.
Tính cục bộ làm giảm trễ truy nhập từ xa thường gặp trên các mạng diện rộng.
Hầu hết các hệ CSDLPT được cấu trúc nhằm tận dụng tối đa những ưu
điểm của tính cục bộ dữ liệu. Lợi ích đầy đủ của việc giảm tranh chấp và
giảm chi phí truyền chỉ có thể có được bằng cách phân mảnh và phân tán dữ

liệu hợp lý.
b) 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 CSDLPT.
 Dễ dàng mở rộng hệ thống
Trong môi trường phân tán, dễ dàng tăng kích thước dữ liệu và hiếm
khi cần sửa đổi trong các hệ thống lớn. Việc mở rộng thường có thể được thực
hiện bằng cách tăng khả năng lưu trữ và xử lý của mạng. Rõ ràng là không thể
có được sự gia tăng “khả năng” một cách tuyến tính do phụ thuộc vào chi phí
phân tán. Tuy nhiên, vẫn có thể có những cải tiến có ý nghĩa. Khả năng mở
rộng hệ thống dễ dàng mang tính kinh tế, chi phí giảm.
 Các mô hình cơ sở dữ liệu Client/Server
Nhìn chung mọi ứng dụng CSDL bao gồm các phần:
16


Thành phần xử lý ứng dụng (Application Processing Components)
Thành phần phần mềm CSDL (Database Software Componets)
Bản thân CSDL (The Database Ifself)
Có 5 mô hình kiến trúc vật lý về truy nhập dữ liệu
Mô hình CSDL tập trung (Centralized database model)
Mô hình CSDL theo kiểu file - server (File - server database model)
Mô hình xử lý từng phần CSDL (Database extract processing model)
Mô hình CSDL Client/Server (Client/Server database model)
Mô hình CSDLPT (Distributed database model)
 Mô hình cơ sở dữ liệu tập trung

Trong mô hình này, các ứng dụng, hệ quản trị CSDL và CSDL được
cài đặt trên cùng một bộ xử lý. Ví dụ trên máy tính cá nhân có thể chạy các
chương trình ứng dụng có sử dụng phần mềm CSDL Oracle để truy nhập tới
CSDL trên đĩa cứng của máy tính cá nhân đó.
Mô hình xử lý tập trung phù hợp với hầu hết công việc của nhiều tổ chức,
doanh nghiệp...Ví dụ một bộ xử lý mainframe chạy phần mềm CSDL IMS hoặc
DB2 của IBM có thể cung cấp cho các trạm làm việc ở các vị trí phân tán truy
nhập nhanh chóng tới CSDL trung tâm. Tuy nhiên, trong rất nhiều hệ thống, cả 3
thành phần của ứng dụng CSDL đều thực hiện trên cùng một máy mainframe do
vậy cấu hình này cũng thích hợp với mô hình tập trung.
 Mô hình cơ sở dữ liệu theo kiểu File Server
Trong mô hình CSDL theo kiểu File Server, các thành phần ứng dụng
và phần mềm CSDL ở trên một hệ thống máy tính và các File dữ liệu vật lý
CSDL cài đặt trên hệ thống máy tính khác. Một cấu hình như vậy thường
được dùng trong môi trường cục bộ, trong đó một hoặc nhiều hệ thống máy
tính đóng vai trò của Server lưu trữ các file dữ liệu. Mô hình File Server
giống với mô hình tập trung cóCSDL và các thành phần ứng dụng, phần mềm
CSDL cài đặt trên các máy tính khác nhau. Tuy nhiên, các thành phần ứng
17


dụng và phần mềm CSDL có thể có cùng thiết kế để vận hành một môi trường
tập trung. Hệ điều hành mạng có thể thực hiện cơ chế đồng thời cho phép
nhiều người sử dụng cuối có thể truy nhập vào cùng CSDL.
 Mô hình xử lý từng phần cơ sở dữ liệu
Mô hình trong đó một CSDL ở xa có thể được truy nhập bởi phần mềm
CSDL, được gọi là xử lý dữ liệu từng phần. Với mô hình này, người sử dụng
có thể tại một máy tính cá nhân kết nối truy nhập, khai thác CSDL ở xa. Với
cách tiếp cận này, người sử dụng phải biết chắc chắn là dữ liệu nằm ở đâu và
làm như thế nào để truy nhập dữ liệu. Phần mềm ứng dụng cần phải có trên cả

hai hệ thống máy tính để kiểm soát sự truy nhập dữ liệu và chuyển dữ liệu
giữa hai hệ thống. Tuy nhiên, phần mềm CSDL chạy trên hai hệ thống không
cần biết rằng việc xử lý CSDL từ xa đang diễn ra vì người sử dụng tác động
tới chúng một cách độc lập.
 Mô hình cơ sở dữ liệu Client/Server
Trong mô hình CSDL Client/Server, CSDL được cài đặt trên Server,
các ứng dụng trên các máy Client và phần mềm CSDL được cài đặt trên cả
Client lẫn Server. Trong mô hình này, các thành phần xử lý ứng dụng trên
hệ thống Client đưa ra yêu cầu cho phần mềm CSDL trên máy client, phần
mềm này sẽ kết nối với phần mềm CSDL chạy trên Server. Phần mềm
CSDL trên Server sẽ truy nhập vào CSDL xử lý theo yêu cầu và gửi trả kết
quả cho máy Client.
Mới nhìn, mô hình CSDL Client/Server có vẻ giống như mô hình File
Server, tuy nhiên mô hình Client/Server có rất nhiều thuận lợi hơn mô hình
File Server. Với mô hình File Server, một giao tác cần truy nhập dữ liệu nhiều
lần có thể gây ra tắc nghẽn lưu lượng truyền trên mạng. Giả sử người sử dụng
tạo ra một vấn tin để lấy dữ liệu tổng số từ 1000 bản ghi, với cách tiếp cận
File Server, nội dung của 1000 bản ghi phải được lưu chuyển trên mạng, vì
phần mềm CSDL chạy trên máy của người sử dụng phải truy nhập từng bản
18


ghi để thoả mãn yêu cầu của người sử dụng. Với cách tiếp cận CSDL
Client/Server, chỉ có lời vấn tin khởi động ban đầu và kết quả cuối cùng cần
đưa lên mạng, phần mềm CSDL chạy trên máy lưu giữ CSDL sẽ truy nhập
các bản ghi cần thiết, xử lý chúng và gọi các thủ tục cần thiết để đưa ra kết
quả cuối cùng.
Trong mô hình CSDL Client/Server, thường nói đến các phần mềm
Front End Software và Back End Software. Front End Software được
chạy trên thiết bị truy nhập đầu cuối hoặc trên các Workstation, nhằm

đáp ứng các yêu cầu xử lý đơn lẻ riêng biệt. Nó đóng vai trò của Client
trong ứng dụng CSDL Client/Server và thực hiện các chức năng hướng
tới nhu cầu của người sử dụng. Minh họa mô hình Client/Server được thể
hiện tại hình 1.3:

Hình 1.3: Mô hình CSDL Client/Server
 Mô hình cơ sở dữ liệu phân tán
Cả hai mô hình File Server và Client/Server đều giả định là dữ liệu nằm
trên một bộ xử lý và chương trình ứng dụng truy nhập dữ liệu nằm trên một
bộ xử lý khác, còn mô hình CSDLPT lại giả định bản thân CSDL có ở trên
nhiều máy khác nhau.
 Lợi ích của phân tán dữ liệu trên mạng
c) Việc phân tán dữ liệu tạo cho CSDL có tính tự trị địa phương. Tại
một site, dữ liệu được chia sẻ bởi một nhóm người sử dụng tại nơi họ làm
19


việc và như vậy dữ liệu được kiểm soát cục bộ, phù hợp đối với những tổ
chức phân bố tập trung. Cho phép thiết lập và bắt buộc sách lược địa
phương đối với việc sử dụng CSDL.

Hình 1.4: Mô hình Client – Server nhiều lớp
d) Tính song song trong các hệ CSDLPT có thể nâng cao được hiệu

quả truy nhập. Tính chất này có thể lợi dụng để xử lý song song các câu
hỏi. Có hai dạng:
Câu hỏi đồng thời phát sinh tại các trạm khác nhau.
Câu hỏi có thể được phân rã thành những câu hỏi thành phần được thực hiện song
song tại các trạm khác nhau.
e) Trong tổ chức phân tán, tương tranh dịch vụ, CPU, vào/ra ít hơn


so với tổ chức tập trung. Độ trễ trong truy nhập từ xa có thể giảm do việc
thực hiện địa phương hoá dữ liệu một cách hợp lý.
f) Độ tin cậy và tính sẵn sàng được nâng cao trong tổ chức phân tán,

là một trong những mục tiêu cơ bản của tổ chức dữ liệu phân tán. Việc tổ
chức sao chép dữ liệu cũng có thể đảm bảo cho việc truy nhập CSDL
không bị ảnh hưởng khi có sự cố xảy ra đối với một số trạm hoặc kênh
truyền sẽ không thể làm sụp đổ cả hệ thống.
g) Tổ chức dữ liệu phân tán đem lại hiệu quả kinh tế cao hơn so với

tổ chức tập trung. Việc trang bị một hệ thống máy tính nhỏ sẽ có giá thành
20


ít hơn so với một hệ thống máy tính lớn cho cùng một mục đích ứng dụng.
Hơn nữa, việc truyền thông các dữ liệu nhỏ sẽ tiết kiệm chi phí cũng như
thời gian hơn nhiều so với việc truyền thông một dữ liệu lớn.
h) Khả năng mở rộng hệ thống và phân chia tài nguyên. Việc mở

rộng khả năng cho một hệ xử lý phân tán là dễ dàng hơn và cho phép thực
hiện tốt hơn.
 Tổng quan về hệ quản trị cơ sở dữ liệu phân tán
CSDLPT có thể được định nghĩa:
i)

CSDLPT là một bộ sưu tập các loại dữ liệu có liên kết logic với

nhau và được phân bố vật lý trên nhiều máy chủ của mạng máy tính.
j)


Định nghĩa này nhấn mạnh hai khía cạnh quan trọng của

CSDLPT:
Tính phân tán: thực tế dữ liệu không cư trú trên cùng một site, vì vậy có thể phân
biệt một CSDLPT với CSDL tập trung (CSDLTT).
Sự tương quan logic: các loại dữ liệu có một số tính chất ràng buộc lẫn nhau, như
vậy có thể phân biệt CSDLPT với tập các CSDL địa phương hoặc với các tệp lưu
trữ trên các site khác nhau.
Hệ quản trị CSDLPT là hệ thống phần mềm cho phép quản trị CSDLPT
và làm cho sự phân tán đó là trong suốt đối với người sử dụng. Nói cách
khác,CSDLPT là CSDL được phân tán một cách vật lý nhưng được thống
nhất tổ chức như là một CSDL duy nhất.
Như vậy sự phân tán dữ liệu là trong suốt đối với người sử dụng. Việc
quản lý các dữ liệu phân tán đòi hỏi mỗi trạm (site) cài đặt các thành phần hệ
thống sau :
Thành phần quản trị CSDL (Database Management DM)
Thành phần truyền dữ liệu (Data Communication DC)
Từ điển dữ liệu (Data Dictionary DD): thông tin về sự phân tán dữ liệu trên mạng

21


×