Đị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 đượcxây dựng dựa trên sự hợp nhất của hai hư
Trang 1ĐẠI HỌC THÁI NGUYÊN ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
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
ĐỖ QUANG VINH
THÁI NGUYÊN, 2015
Trang 2LỜ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 đàotạo sau đại học trường ĐH Công nghệ thông tin và Truyền thông TháiNguyê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
Trang 3LỜ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
Trang 4DANH 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)
Trang 5BẢNG DANH MỤC CÁC KÍ HIỆU
Phép giaoPhép hợp
Trang 6MỤC LỤCLỜI CẢM ƠN i LỜI CAM ĐOAN .
iv BẢNG DANH MỤC CÁC KÍ HIỆU .v MỤC LỤC 1
ĐẦ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
Chương 2: TÌM KIẾM CÂU SQL TỪ CHƯƠNG TRÌNH NGUỒN,
AQL 33
Trang 72.1 Quá trình tối ưu hóa và một số thuật toán tối ưu vấn tin .33
Trang 82.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 56
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 56
3.2.Chuyển lệnh SQL sang AQL 60
3.3.Vẽ cây toán tử AQL 62
KẾT LUẬN 63
HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 64
TÀI LIỆU THAM KHẢO 65
Trang 9LỜ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àngcao 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ôngtheo 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ápnhằm tăng tốc độ xử lí liên tục ra đời , trong số đó thì xử lí song song và phântá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ênmột chương trình nguồn có nhiều lệnh SQL có thể thỏa mãn điều kiện songsong hóa và tối ưu hóa bới phương pháp song song tự động Việc đó tiến hànhbằng cách tìm kiếm vét cạn các lệnh SQL sau đó chuyển sang AQL để tối ưuhó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ánchuyể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ế
Trang 10Chươ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ôngtin 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ụngcủ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.Tuynhiê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 địnhhướng, dù được trang bị công nghệ rất hiện đại nhưng công cụ tìm kiếmkhô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ếttrong trang web đó, đây là quá trình phát hiện các trang web mới, các liên kếtmớ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áctrang web và các trang liên quan đến một lĩnh vực nào đó
Trang 11⨝Bộ phận xử lí tính toán
Đâ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ạngtrang 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ựatrê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ủabạn
1.1.1 Một số công cụ tìm kiếm cơ bản
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à GoogleSpider xem xét trang web (định dạng HTML) nó lưu ý các từ bên trongtrang 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 đếnviệ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ệuquả 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ìnhkhông bao giờ kết thúc bởi vì các nhà quản trị trang web luôn thay đổi, cậpnhật thông tin trên website và điều đó có nghĩa các Spider sẽ liên tục thựchiệ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
Trang 12kế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ủangười dùng.
Trang 13lý (lấy theo IP t ruy cập của người truy cập) Ngoài ra, Google search cũng sửdụngc o o k i es v à tính năng lưu trữ thói quen tìm kiếm của người dùng (cá nhânhó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ườiViệt Tuy nhiên sau khi Việt Nam chuẩn hóa bảng mã unicode, nội dung webTiế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ănkhi đá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àomả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 c hí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
Trang 14Công cụ tìm kiếm tiếng Việt Cốc Cốc đang trong thế cạnh tranh vớiGoogle bằng cơ sở dữ liệu hơn 2,1 tỷ trang Web, trong đó số lượng dữ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 baogồ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ácgó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:
DataTable
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ínhcủ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 tinchi 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ếtcủ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ápphương thức Find như sau:
DataRow DataRowCollection.Find (object key)
Trang 16Ví dụ: cho một đoạn mã chương trình như sau:
myTable.PrimaryKey = new DataColumn[]
{my Table Columns[“CustomerID”]}
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ếmchuỗ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ỗitrong 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ếmtất cả) thì phương thức match() chỉ trả về giá trị đầu tiên
Trang 17Trong đó, 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);
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) đượcxâ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ở
Trang 18dữ 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íchhợ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
vụ cho người sử dụng Thêm vào đó, với mục tiêu chia sẻ tài nguyên, khaithác, nâng cao khả năng tích hợp và trao đổi tài nguyên mạng cũng thúc đẩyquá 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ốngtậ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êngbiệ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 đổicấu trúc lưu trữ và các chiến lược truy nhập dữ liệu của hệ thống
Trang 19Trong 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ốngphần mềm cho phép quản trị CSDLPT và làm cho sự phân tán đó là trongsuố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ácCSDL được phân bố trên mạng máy tính và có quan hệ với nhau về mặtlogic Đồng thời, cần có một cấu trúc giao diện chung để truy nhập dữ liệutrong hệ thống phân tán
Trang 20Sự 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àngmạ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ơ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àmgiả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ộtCSDLPT
⨝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 ứngdụng, cực đại hoá tính địa phương của ứng dụng Theo cách này tác động qualạ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ềnthô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
Trang 21h t t p : / / www l r c - tn
CSDLPT là sự tập hợp các dữ liệu thuộc cùng một hệ thống về mặtlogic 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:
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 đâynhờ 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áytính Những ứng dụng được xây dựng trên CSDLPT đã xuất hiện nhiềutrê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ậptrung
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ềukhiể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
Trang 22Điều khiển tập trung (Centralized Control) là một đặc điểm của CSDLtậ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
Trang 23-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áchnhiệ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ữngquyền độc lập riêng về CSDL cục bộ của mình mà người quản trị CSDL toàncụ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í đượcthự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 Độclậ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ậptrì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ị ảnhhưở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ácCSDL tập trung Tuy nhiên, một đặc điểm mới được đưa vào trong khái niệmthông thường của độc lập dữ liệu là sự trong suốt phân tán (DistributionTransparency) 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ữ
Trang 24liệ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ácchươ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ộtkiế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ềumứ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ếtkiệm vùng nhớ lưu trữ Các ứng dụng chia sẻ chung, truy xuất đến các tập tin
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ônglà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 hailoạ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úpcho 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í đượcnhâ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ấtnhiều ứng dụng chỉ đọc và có rất ít ứng dụng cập nhật Trong trường hợpngược lại thì sự nhân bản dữ liệu lại là một nhược điểm
Trang 25u e du v n /
Số hóa bởi Trung tâm Học liệu -
ĐHTN
⨝Độ 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ặctruyề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ụngvẫ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áiCSDL 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ờicác giao dịch của người sử dụng sẽ không vi phạm tính nhất quán của CSDLtrong khi hệ thống có lỗi Trong đó, các giao dịch phải thỏa mãn các quy tắctoà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:
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ý
để thực hiện song song liên truy vấn và truy vấn nội bộ Liên truy vấn songsong 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
Trang 26vấn song song là phương pháp tách một truy vấn đơn thành các truy vấncon và mỗi truy vấn con được thực hiện tại các trạm khác nhau, truy nhậpcá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ếmkhi cần sửa đổi trong các hệ thống lớn Việc mở rộng thường có thể được thựchiệ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:
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 đượccà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ácchương trình ứng dụng có sử dụng phần mềm CSDL Oracle để truy nhập tớiCSDL trên đĩa cứng của máy tính cá nhân đó
Trang 27⨝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áytính đóng vai trò của Server lưu trữ các file dữ liệu Mô hình File Servergiống với mô hình tập trung cóCSDL và các thành phần ứng dụng, phần mềmCSDL cài đặt trên các máy tính khác nhau Tuy nhiên, các thành phần ứngdụng và phần mềm CSDL có thể có cùng thiết kế để vận hành một môi trườngtập trung Hệ điều hành mạng có thể thực hiện cơ chế đồng thời cho phépnhiề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ềmCSDL, đượ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ớicá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ệugiữa hai hệ thống Tuy nhiên, phần mềm CSDL chạy trên hai hệ thống khôngcần biết rằng việc xử lý CSDL từ xa đang diễn ra vì người sử dụng tác độngtới chúng một cách độc lập
Trang 28⨝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ầnmềm này sẽ kết nối với phần mềm CSDL chạy trên Server Phần mềmCSDL trên Server sẽ truy nhập vào CSDL xử lý theo yêu cầu và gửi trả kếtquả cho máy Client
Mới nhìn, mô hình CSDL Client/Server có vẻ giống như mô hình FileServer, tuy nhiên mô hình Client/Server có rất nhiều thuận lợi hơn mô hìnhFile Server Với mô hình File Server, một giao tác cần truy nhập dữ liệu nhiềulầ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ụngtạ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ậnFile 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ảnghi để thoả mãn yêu cầu của người sử dụng Với cách tiếp cận CSDLClient/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ậpcá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ếtquả cuối cùng
Trong mô hình CSDL Client/Server, thường nói đến các phần mềmFront End Software và Back End Software Front End Software đượcchạ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 Clienttrong ứng dụng CSDL Client/Server và thực hiện các chức năng hướngtớ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:
Trang 29⨝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ằmtrê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ênnhiề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ạimộ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àmviệ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 địaphương đối với việc sử dụng CSDL
Hình 1.4: Mô hình Client – Server nhiều lớp
Trang 30d) Tính song song trong các hệ CSDLPT có thể nâng cao được hiệuquả truy nhập Tính chất này có thể lợi dụng để xử lý song song các câuhỏ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
so với tổ chức tập trung Độ trễ trong truy nhập từ xa có thể giảm do việcthực hiện địa phương hoá dữ liệu một cách hợp lý
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 CSDLkhông bị ảnh hưởng khi có sự cố xảy ra đối với một số trạm hoặc kênhtruyền sẽ không thể làm sụp đổ cả hệ thống
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
í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
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ựchiệ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:
nhau và được phân bố vật lý trên nhiều máy chủ của mạng máy tính
Trang 31h t t p : / / www l r c - tn
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áchkhác,CSDLPT là CSDL được phân tán một cách vật lý nhưng được thốngnhấ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ệcquả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
Trang 32Khả năng mở rộng với các hệ thống khác
nhau
Cung cấp khả năng điều khiển đồng thời và phục hồi các giao tác phântán
Trang 33Cách thứ nhất (hình 1.6) trình ứng dụng yêu cầu truy cập từ xa Yêu cầu nàyđược định tuyến tự động bởi DDBMS tới máy chủ chứa dữ liệu Được thựchiện tại máy chủ chứa CSDL và gửi lại kết quả về trạm yêu cầu Cách tiếp cậnnày được sử dụng cho truy cập từ xa, trong suốt phân tán có thể thực hiệnđược bằng việc cung cấp các file chung (global) và các truy nhập trước đó cóthể địa chỉ hoá một cách tự động tới các trạm ở xa.
Hình 1.7 chỉ ra một cách tiếp cận khác, chương trình phụ thực hiện tạicác trạm ở xa (người lập trình phải tự lập) và các kết quả trả lại cho chươngtrình ứng dụng
Hệ quản trị CSDLPT hỗ trợ cả hai cách tiếp cận trên Mỗi một cách tiếpcận đều có những thuận lợi và khó khăn riêng Giải pháp thứ nhất cung cấpkhả năng trong suốt phân tán cao hơn, trong khi giải pháp thứ hai có thể hiệuquả hơn nếu như có rất nhiều chương trình sử dụng cùng yêu cầu truy nhập
Trang 34Bởi vì, các chương trình phụ có thể thực hiện các yêu cầu từ các trạm ở xa vàtrả lại kết quả.
Hình 1.6: Truy cập CSDL từ xa
Hình 1.7: Truy cập từ xa bằng chương trình phụ
Mô hình kiến trúc hệ quản trị cơ sở dữ liệu phân tán
Có ba kiểu kiến trúc tham chiếu cho hệ quản trị CSDLPT: hệ ClientServer, hệ quản trị CSDLPTPeer-to-Peer và hệ đa CSDL
Các lựa chọn cài đặt một hệ quản trị CSDLđược tổ chức hệ thống theocác đặc tính: (1) tính tự trị, (2) tính phân tán, (3) tính hỗn hợp (không thuầnnhất) của hệ thống (Hình 1.8)
Trang 35Xác định chiều của tính tự trị như sau :
Tự trị thiết kế: Mỗi hệ quản trị CSDL riêng lẻ có thể sử dụng mô hình dữ liệu
và kỹ thuật quản lý giao dịch theo ý muốn
Tự trị truyền thông: Mỗi hệ quản trị CSDL riêng lẻ tuỳ ý đưa ra quyết định của
nó về loại thông tin mà nó cần cung cấp cho các hệ quản trị CSDL khác hoặcphần mềm điều khiển thực thi toàn cục của nó
Tự trị thực thi: Mỗi hệ quản trị CSDL có thể thực thi các giao dịch được gửitới nó theo bất kỳ cách nào mà nó muốn
⨝Tính phân tán dữ liệu
Tính phân tán dữ liệu đề cập đến dữ liệu trên nhiều vị trí vật lý khácnhau Người sử dụng nhìn dữ liệu bằng khung nhìn dữ liệu Có hai cáchphân tán dữ liệu: phân tán kiểu Client/Server và phân tán kiểu ngang hàng.Kết hợp với các tùy chọn không phân tán trục kiến trúc cho ba loại kiếntrúc khác nhau
Phân tán kiểu Client/Server ngày càng phổ biến Quản trị dữ liệu tại Server vàClient cung cấp môi trường ứng dụng và giao diện người sử dụng Nhiệm vụtruyền thông được chia sẻ giữa các Client và Server Hệ quản trị CSDL kiểuClient/Server
Trang 36là hệ phân tán chức năng Có nhiều cách xây dựng và mỗi cách cung cấp mộtmức độ phân tán khác nhau.
Trong kiểu ngang hàng không có sự khác biệt giữa chức năng Client và Server.Mỗi máy đều có đầy đủ chức năng của hệ quản trị CSDL và có thể trao đổithông tin với các máy khác để thực hiện các truy vấn và giao dịch Các hệthống này cũng được gọi là phân tán đầy đủ
⨝Tính hỗn hợp
Do sự khác biệt về phần cứng, các giang thức mạng và cách quản lý dữliệu có một số dạng hỗn hợp trong các hệ thống phân tán Sự khác biệt lớnnhất liên quan đến các mô hình dữ liệu, ngôn ngữ truy vấn và giao thức quản
lý giao dịch Biểu diễn dữ liệu khác nhau tạo ra sự hỗn hợp Tính hỗn hợptrong ngôn ngữ truy vấn không chỉ thể hiện qua các dạng truy nhập dữ liệutrong các mô hình dữ liệu khác nhau mà còn thể hiện trong cùng một mô hình
dữ liệu.Ngôn ngữ truy vấn khác nhau sử dụng cùng một mô hình dữ liệuthường chọn các phương pháp khác nhau để diễn tả các yêu cầu giống nhau,
ví dụ, DB2 sử dụng SQL, trong khi INGRES sử dụng QUEL
Các thành phần của một hệ quản trị cơ sở dữ liệu phân tán
Một hệ DBMS phân tán gồm 2 phần như trong hình 1.9 Bộ xử lý phíangười sử dụng (User Procesor), xử ly tất cả tương tác với người sử dụng và bộphận thứ 2 của DBMS phân tán là bộ phận xử lý dữ liệu (Data Processor) Bộ
xử lý phía người sử dụng bao gồm:
của người sử dụng khi họ gửi đến và định dạng dữ liệu kết quả để gửi nólại cho người sử dụng
2) Bộ kiểm soát dữ liệu ngữ nghĩa: sử dụng ràng buộc toàn vẹn vàxác thực, được định nghĩa như là một phần của lược đồ khái niệm cục
bộ, để kiểm tra xem truy vấn của người sử dụng có được xử lý hay
Trang 37của người sử dụng .Bộ giám sát thực thi cũng được gọi là bộ quản lýgiao dịch phân tán Việc thực thi truy vấn trong hệ phân tán, bộ giám sátthực thi tại một số trạm có thể, và thường, liên lạc với một bộ giám sátthực thi khác.
Phần thứ hai của hệ quản trị CSDLPT là bộ xử lý dữ liệu gồm ba thành phần:
1) Bộ tối ưu hoá truy vấn cục bộ hoạt động như là bộ chọn đườngdẫn truy nhập Chọn đường truy nhập tốt nhất vào bất kỳ mục dữ liệunào
2) Bộ quản lý khôi phục cục bộ có trách nhiệm đảm bảo duy trì tínhnhất quán trong CSDL cục bộ ngay cả khi có lỗi xảy ra
3) Bộ hỗ trợ thời gian thực thi truy nhập vào CSDL tùy vào cáclệnh trong lịch biểu được tạo ra bởi bộ tối ưu hóa truy vấn Bộ xử lý hỗtrợ thời gian thực thi là giao diện với hệ điều hành và chứa bộ quản lývùng đệm CSDL (buffer hoặc cache), có trách nhiệm quản lý vùng đệmcủa bộ nhớ chính và quản lý việc truy nhập dữ liệu
Trang 38Hình 1.9: Các thành phần của một hệ quản trị CSDLPT
1.2.2 Một số dạng câu vấn tin SQL cơ bản
SQL là một loại ngôn ngữ con dữ liệu quan hệ được xác nhận là rất mạnh.Phép toán cơ bản trong SQL là phép ánh xạ, được mô tả về cú pháp như làkhối SELECT - FROM - WHERE
Mệnh đề SELECT nghĩa là chọn các thuộc tính ra, hay còn gọi là thuộctính kết quả, nếu không chỉ ra thuộc tính thì dùng dấu * có nghĩa là tất cả cácthuộc tính của quan hệ đang được chỉ ra sau mệnh đề FROM Mạnh đềFROM để chỉ ra quan hệ cần cho việc xử lý Sau mệnh đề WHERE là mộtbiểu thức điều kiện lọc dữ liệu (hay còn gọi là biểu thức logic)
Chú ý: Từ đây về sau chúng ta đồng nhất: quan hệ với bảng, thuộc tính
với cột (column) hay trường (field), bộ (tupe) với bản ghi (record) hay hàng(row)