Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 69 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
69
Dung lượng
1,18 MB
Nội dung
LỜI CẢM ƠN Tôi xin gửi lời cảm ơn chân thành toàn thể thầy cô khoa đào tạo sau đại học trường ĐH Công nghệ thông tin Truyền thông Thái Nguyên đặc biệt PGS.TS Lê Huy Thập tận tình dạy giúp đỡ để hoàn thành luận văn i LỜI CAM ĐOAN Tôi xin cam đoan công trình nghiên cứu tôi, xây dựng từ số liệu kết thực tiễn học tập trường ĐH CNTT & TT Thái Nguyên ứng dụng dựa số liệu công ty IMAX, chưa công bố hay xuất công trình 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ở 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 đề Phép nối π Phép chiếu θ Tê ta * Kết nối tự nhiên > Phép so sánh lớn < Phép so sánh bé ÷ Phép chia Phép Phép Tập rỗng ¬ Phủ định = Phép ≥ Lớn ≤ Nhỏ σ 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 LỜI MỞ ĐẦU Chương : TỔNG QUAN 1.1 Giới thiệu số phần mềm tìm kiếm số hàm tìm kiếm 1.1.1 Một số công cụ tìm kiếm 1.1.2 Giới thiệu hàm tìm kiếm ngôn ngữ lập trình 1.2 Tổng quan sở liệu phân tán 1.2.1 Định nghĩa Hệ CSDL phân tán hệ quản trị CSDL phân tán 1.2.2 Một số dạng câu vấn tin SQL 27 1.2.3.Định nghĩa AQL 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 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 số tối ưu hóa câu vấn tin sở 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ẽ 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 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 AQL .50 2.2.4.Thuật toán vẽ 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 công ty Imax .55 3.2.Chuyển lệnh SQL sang AQL .59 3.3.Vẽ 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 LỜI MỞ ĐẦU Nhu cầu quản lí liệu lĩnh vực khoa học công nghệ ngày cao trở thành thách thức lớn Hệ thống xử lí phần cứng không theo kịp nhu cầu nguồn 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 đời , số xử lí song song phân tán ngày quan tâm nghiên cứu ứng dụng để giải vấn đề lớn phức tạp Phạm vi nghiên cứu luận văn tập trung vào xử lí song song chương trình nguồn có nhiều lệnh SQL thỏa mãn điều kiện song song hóa tối ưu hóa bới phương pháp song song tự động Việc tiến hành cách tìm kiếm vét cạn lệnh SQL sau chuyển sang AQL để tối ưu hóa vấn tin Các vấn đề trình bày chương sau : Chương : giới thiệu số công cụ tìm kiếm, tổng quan sở liệu (CSDL) phân tán, câu vấn tin SQL, toán tử Aql toán tử Chương : trình bày 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ẽ toán tử AQL Chương : tạo chương trình mẫu chạy thử dựa theo số liệu thực tế Chương : TỔNG QUAN 1.1 Giới thiệu số phần mềm tìm kiếm số hàm tìm kiếm Với việc phát triển ngày mạnh mạng truyền thông Internet, yêu cầu việc đáp ứng nhanh chóng khả lấy thông tin hữu ích từ mạng Các yêu cầu đặt cho nhà phát triển hệ thống tìm kiếm nhằm đáp ứng nhu cầu tìm hiểu thông tin qua cụm từ khóa nhập vào Các công cụ tìm kiếm dựa chương trình tự động ứng dụng điện toán đám mây nhằm lưu trữ lấy thông tin cách tốt nhất.Tuy nhiên điều công cụ tìm kiếm người, có khác người công cụ tìm kiếm việc đánh giá nội dung trang web Công cụ tìm kiếm nội dung theo định hướng, dù trang bị công nghệ đại công cụ tìm kiếm không đủ thông minh để cảm nhận vẻ đẹp mẫu thiết kế, thưởng thức âm thấy chuyển động video Công cụ tìm kiếm thu thập liệu trang web nhìn vào văn cụ thể để cố gắng hiểu trang web muốn nói vấn đề Công cụ tìm kiếm có phận : Bộ phận thu thập liệu Bộ phận thu thập liệu chương trình thu thập liệu cách từ trang web sang trang web khác để khám phá nội dung liên kết trang web đó, trình phát trang web mới, liên kết mới, liệu sử dụng để cập nhật cho phận lập mục Bộ phận lập mục Đây trình xây dựng sở liệu từ khóa , cụm từ , trang web trang liên quan đến lĩnh vực Bộ phận xử lí tính toán Đây trình tính toán nhằm cung cấp kết cho người tìm kiếm Bộ phận tính toán dựa yếu tố khác để phân loại xếp hạng trang web Các yếu tố có tầm quan trọng khác người đặt ra, yếu tố quan trọng để xếp hạng phân loại dựa chất lượng nội dung chất lượng liên kết đến trang web bạn 1.1.1 Một số công cụ tìm kiếm Google Cơ chế hoạt động Google : Đầu tiên phận thu thập liệu Google hay gọi Google Spider xem xét trang web (định dạng HTML) lưu ý từ bên trang web nơi tìm thấy từ Ví dụ từ xuất thẻ tiêu đề, thẻ miêu tả nhận định phần quan trọng có liên quan đến việc tìm kiếm người dụng sau Vì với website Google có nhiều phương pháp để index lại mục, liệt kê lại từ khóa cập nhật lại hệ thống tìm kiếm diễn nhanh hơn, hiệu hai Tiếp theo Google xây dựng mục, việc làm cho thông tin tìm thấy cách nhanh chóng Sau tìm thông tin trang web, Google Spider nhận việc tìm kiếm thông tin website trình không kết thúc nhà quản trị trang web thay đổi, cập nhật thông tin website điều có nghĩa Spider liên tục thực nhiệm vụ thu thập liệu Cuối Google xử lí, tính toán mã hóa thông tin để lưu trữ sở liệu Và có truy vấn tìm kiếm hệ thống trả kết có chứa nội dung hữu ích tương ứng với truy vấn tìm kiếm người dùng Google search cho phép người sử dụng khai báo trang web họ với máy chủ google, sau máy chủ xếp thời gian để tạo mục cho trang web khai báo.Việc xếp thứ tự kết tìm kiếm phụ thuộc vào thứ hạng theo phân cấp Google search nhờ tổng hợp phức tạp keyword, pagerank, sitemap Kết tìm kiếm phân loại theo đối tượng sử dụng khác nhau, phụ thuộc vào vị trí địa lý (lấy theo IP truy cập người truy cập) Ngoài ra, Google search sử dụngcookies tính lưu trữ thói quen tìm kiếm người dùng (cá nhân hóa kết tìm kiếm) để tạo kết tìm kiếm Nói chung, việc xếp hiển thị kết Google search phức tạp bí mật công nghệ mà nhờ Google chiếm lĩnh thị trường Một số công cụ tìm kiếm Việt Ở Việt Nam xuất nhiều công cụ tìm kiếm Socbay, Hoatieu, Vinaseek, Xalo, Timnhanh, Monava, phục vụ nhu cầu cho người Việt Tuy nhiên sau Việt Nam chuẩn hóa bảng mã unicode, nội dung web Tiếng Việt nhanh chóng thống 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 giới đồng thời tạo điều kiện cho công cụ nước không gặp phải khó khăn đánh mục nội dung Tiếng Việt Google nhanh chóng xác lập vị trí vững thị trường đánh bại đối thủ cạnh tranh công cụ tìm kiếm Việt có tiềm lực thua nhiều Gần thị trường Việt Nam xuất đơn vị tham gia vào mảng tìm kiếm Cốc Cốc Wada, bước đầu Cốc Cốc có kết tương đối khả quan Cốc Cốc thức công bố tháng năm 2013, sau tháng mắt thu hút gần tiệu lượt truy cập Cốc Cốc dự án lập lập trình viên tốt nghiệp ĐH Moscow – Liên bang Nga hỗ trợ Yandex , Mail.ru group Digital Sky Technologies Công cụ tìm kiếm tiếng Việt Cốc Cốc cạnh tranh với Google sở liệu 2,1 tỷ trang Web, số lượng Str = ““ Count = Repeat Str = Str & “(“ & Pop Count = Count +1 Until For i = To Count Str = Str & “)“ End for Push Into QueueVT_AQL End While Quá trình tạo câu vấn tin AQL đơn giản thành phần chúng xây dựng trình chuyển đổi ngôn ngữ SQL AQL Vấn đề lại đưa thêm dấu phân cách thành phần vào hợp lý cho kết tạo câu vấn tin AQL chuẩn lưu vào hàng đợi QueueVT_AQL Ví dụ minh họa mô tả phần 2.2.5 2.2.4.Thuật toán vẽ toán tử Sau xây dựng câu vấn tin dạng AQL ta tiến hành bước cuối thể vấn tin Quá trình trình xây dựng đồ họa nhằm miêu tả phép toán chiếu, chọn nối thuộc tính sở liệu hình Thuật toán dùng để vẽ toán tử có QueueVT_AQL Ý tưởng: Quá trình vẽ đơn giản, ta cần xây dựng ký hiệu miêu tả ý nghĩa phép toán cách thể giá trị có câu vấn tin AQL Tiến hành vẽ thành phần có sau dấu phân cách “(” để có câu vấn tin Mã giả: Thuật toán Ve_AQL(***) 51 Vào: QueueVT_AQL Ra: Cây toán tử Output (“Cần vẽ toán tử thứ k = “) Input k While (1) For i = To k -1 If QueueVT_AQL Pop Else Exit While End if End for Pop Into StrXau // Lấy câu AQL thứ k khỏi hàng đợi cho vào biến //StrXau StrXau = Right(StrXau, length (strXau) - l = length (strXau) For i = To l If strXau(i) = “(“ XauVe = Left(StrXau, i) Vẽ điểm gắn nhãn XauVe StrXau = Right(StrXau, l – i) l = length (strXau) Exit While End While Nội dung: Quá trình vẽ toán tử thể số bước sau: Lựa chọn câu vấn tin cần tiến hành vẽ toán tử Lấy câu vấn tin cần vẽ gán vào xâu Lấy thành phần sau dấu phân cách “(” tiến hành vẽ điểm gán nhãn XauVe cho Tiến hành hết câu vấn tin 52 Quá trình vẽ vấn tin AQL cần lưu ý đến biểu tượng miêu tả phép chiếu, chọn nối Quá trình thể phép toàn lấy phần 2.2.2 Tuy nhiên, phần cần thực chuẩn xác phép toán nhằm đưa kết xác Ví dụ minh họa thể phần cuối chương 2.2.5.Ví dụ Cho CSDL gồm quan hệ SP(MaSP, TenSP) DL(MaDL, TenDL) KD(MaSP, MaDL, TT) Trong SP – Sản phẩm: MaSP – Mã sản phẩm, TenSP – Tên sản phẩm DL – Đại lý: MaDL – Mã đại lý, TenDL – Tên đại lí KD – Kinh doanh: MaSP – Mã sản phẩm, MaDL – Mã đại lí, TT – Thanh toán Gỉa sử tệp chương trình nguồn có lệnh SQL: SELECT TenSP {Gốc } FROM WHERE SP , DL , KD KD.MaSP= SP.MaSP AND KD.MaDL = DL.MaDL AND TenSP “Sandisk 8Gb” AND TenDL = “IMAX” AND TT = “Công nợ “ Nghĩa là: Tìm tên sản phẩm thẻ nhớ loại Sandisk 8Gb bán đại lí IMAX hình thức chưa toán (Công nợ) a Sau áp dụng thuật toán (*) TimKiem_SQL (thuật toán trình bày phần 2.2.1) , hàng đợi QueueSQL có nội dung sau : SELECT TenSP FROM SP,DL,KD WHERE KD.MaSP= SP.MaSP AND KD.MaDL= DL.MaDL AND TenSP “Sandisk 8Gb” AND TenDL = “IMAX” AND TT= “Công nợ” 53 b Áp dụng tiếp thuật toán (**) CH_SQL_AQL tệp Tam.txt nhận có nội dung sau : “SELECT TenSP FROM SP,DL,KD WHERE KD.MaSP= SP.MaSP AND KD.MaDL= DL.MaDL AND TenSP “Sandisk 8Gb” AND TenDL = “IMAX” AND TT= “Công nợ”” Tiếp tục áp dụng thuật toán câu lệnh AQL là: TenSP(Công nợ(TenDL = ”IMAX”(TenSP ”Sandisk 8Gb ”(DL MaDL (KD MaSPSP))))) c Áp dụng thuật toán (***) Ve_AQL toán tử hình : TenSP Chiếu TenSP ”Sandisk 8Gb ” TenDL = ”IMAX” Chọn Công nợ MaDL DL MaSP KD SP Nối Hình2.1 Ví dụ toán tử 2.3 Kết luận chương Chương phương pháp tìm kiếm xâu dạng SQL chương trình nguồn, chuyển đổi quan hệ, phép toán quan hệ SQL sang phép toán đại số quan hệ AQL, xây dựng toán tử vẽ toán tử Từ tối ưu câu vấn tin AQL, mở rộng thuật toán chương thành thuật toán song song, dùng ngôn ngữ lập trình song song để thể chúng thủ tục hóa thuật toán trên, nhằm nâng cao hiệu nghiên cứu, giảng dạy ứng dụng 54 Chương 3: CHƯƠNG TRÌNH ỨNG DỤNG Sau trình nghiên cứu sở lý thuyết chương thuật toán chương 2, tiến hành thực xây dựng chương trình thử nghiệm ứng dụng cho việc xây dựng toán tử cho chương trình quản lý hàng hóa công ty Imax Chương trình thử nghiệm tiến hành tìm tất câu vấn tin SQL từ chương trình nguồn sau chuyển câu vấn tin SQL sang câu vấn tin AQL vẽ toán tử dạng AQL Dưới phần chương 3: 3.1.Tìm câu SQL từ chương trình quản lý hàng hóa công ty Imax Chương trình thử nghiệm tiến hành cài đặt môi trường visual studio 2013 file mã nguồn lưu file txt Quá trình thực chương trình thử nghiệm gồm bước sau: Chọn file mã nguồn cần tìm kiếm câu lệnh SQL Tìm kiếm hiển thị câu lệnh SQL Chuyển đổi tất câu lệnh SQL sang thành AQL Vẽ toán tử cho câu lệnh SQL Đầu tiên, ta tìm hiểu trình tìm câu lệnh SQL Trước tiên để tìm câu lệnh SQL từ chương trình quản lý hàng hóa công ty Imax ta cần xác định vấn đề có chương trình công ty Imax Giao diện công ty Imax thể website http://imax.com.vn Như sau: 55 Hình 3.1: Giao diện website công ty Imax Như trình bày mục 2.1, để tìm kiếm câu lệnh SQL có mã nguồn ta cần xác định đoạn mã nguồn cần tiến hành tìm kiếm câu lệnh SQL Các câu lệnh câu truy xuất tìm kiếm sản phẩm thỏa mãn yêu cầu xác định Trước tiến hành tìm kiếm, chương trình yêu cầu người sử dụng cần đưa đoạn mã nguồn vào file txt trước thực bước tìm kiếm sau Giao diện chương trình bắt đầu thực biểu diễn qua hình 3.2: 56 Hình 3.2: Giao diện chương trình thử nghiệm Chương trình thử nghiệm gồm phần chính: Phần menu: gồm chọn file mã nguồn vẽ toán tử Phần câu truy vấn SQL tìm Phần câu truy vấn AQL chuyển sang Sau chọn vào menu: ta có giao diện sau: 57 Hình 3.3: Giao diện chọn vào menu Sau lựa chọn vào menu ta tiến hành chọn lựa file mã nguồn chạy cho chương trình Ở đây, file mã nguồn lưu dạng file txt (hình 3.4) Hình 3.4: Giao diện chọn file liệu Sau lựa chọn tệp liêu, chương trình thực trình tìm kiếm câu lệnh SQL có file mã nguồn Giao diện trình tìm kiếm thể hình 3.5 sau: 58 Hình 3.5: Giao diện trình tìm kiếm câu lệnh SQL Đoạn mã thể trình tìm kiếm câu lệnh SQL chương trình thử nghiệm sau: 3.2.Chuyển lệnh SQL sang AQL Như trình bày mục 2.2, câu lệnh SQL chuyển sang câu lệnh AQL tương ứng nhờ thuật toán Chương trình thực hiên trình chuyển đổi cho câu lệnh SQL tất câu lệnh SQL Hình 3.6 thể trình chuyển đổi câu lệnh SQL 59 Hình 3.6: Quá trình chuyển đổi câu lệnh SQL sang AQL Và hình 3.7 thể giao diện trình chuyển đổi tất câu lệnh SQL: Hình 3.7: Giao diện trình chuyển tất lệnh SQL sang AQL 60 3.3.Vẽ toán tử AQL Sau trình chuyển đổi ta tiến hành vẽ toán tử cho câu lệnh AQL chọn lựa Giao diện minh họa thể hình: 61 KẾT LUẬN Với kiến thức lĩnh vực sở liệu phân tán, AQL nhiều hạn chế, luận văn tìm hiểu số vấn đề đặt từ toán chuyển đổi từ SQL sang AQL Tuy nhiên, luận văn cũngđã giải số vấn đề sau: Chương 1: Luận văn trình bày kiến thức sở liệu phân tán, định nghĩa kiến thức liên quan đến AQL Chương 2: Luận văn tiến hành tìm hiểu nội dung từ ý tưởng, mã giả đến vấn đề liên quan trình xây dựng hệ thống chuyển đổi SQL sang AQL vẽ toán tử cho câu lệnh AQL xácđịnh Chương 3: Luận văn tiến hành cài đặt thực nghiệm chương trìnhứng dụng thực tế công ty Imax Chương trình bày bước từ trình khảo sát đến tìm hiểu câu lệnh SQL liên cuối giao diện kết sau trình thử nghiệm 62 HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI Do hạn chế thời gian nghiên cứu kiến thức thu thập được, luận văn dừng lạitìm kiếm câu lệnh SQL từ file nguồn dạng text Mục tiêu hướng tới đề tài bao gồm: Xây dựng thêm chức để tìm kiếm câu lệnh SQL từ file nguồn có Xây dựng chức tìm kiếm câu vấn tin, quản lí câu vấn tin hệ sở liệu phân tán Tạo chế phát tự động câu SQL thực tối ưu hóa, song song hóa Tham khảo thêm kiến thức để khai thác xử lí câu AQL để có kết thú vị Xây dựng thêm chức giao diện tốt Tìm hiểu thêm ứng dụng khác toán có 63 TÀI LIỆU THAM KHẢO [1] Đoàn Văn Ban, Nguyễn Mậu Hân (2006), Xử lý song song phân tán, NXB Khoa học kỹ thuật [2] Đỗ Xuân Lôi (1996), Cấu trúc liệu giải thuật, NXB Khoa học Kỹ thuật [3] Lê Huy Thập (2010), Cơ sở lý thuyết song song, NXB Thông tin truyền thông [4] Lê Huy Thập (2008), Giáo trình Kỹ thuất lập trình, Tập 1, NXB Khoa học tự nhiên công nghệ [5] Lê Tiến Vương (2000), Nhập môn CSDL quan hệ, NXB Thống Kê [6] Lê Huy Thập, Giải toán toán tử đường ống ma trận đặc trưng, Tạp chí tin học điều khiển học, tập 27 số trang 107-118, tháng năm 2011 [7] Lê Huy Thập, Bảng câu vấn tin quan hệ xử lý câu vấn tin bảng , Kỷ yếu hội thảo Quốc gia lần 13, Hưng yên năm 2010, trang 29-40, NXB Khoa học kỹ thuật, 2011 [8] Lê Huy Thập, Loại bỏ mẩu tin nhân thừa sở liệu quan hệ, Kỷ yếu hội thảo Quốc gia Đại Lải, năm 2007, trang 219-227, NXB Khoa học kỹ thuật, 2008 [9] Lê Huy Thập, Giải toán toán tử đường ống ma trận đặc trưng, Tạp chí tin học điều khiển học, tập 27 số trang 107-118, tháng năm 2011 [10] Barry Wlkingson, Michael Allen (1999), Parallel Programming, Technique and Applications Using Netwworked Workstations and Parallel Computers, Prentice Hall New Jersey [11] Japan Information Processing Development Corporation, Central Academy of Information Technology (1978), Internal Design And Programming 64 [12] Kenneth H.Rosen, Toán rời rạc ứng dụng tin học, NXB Khoa học Kỹ thuật [13] Seyed H Roo (1999), Parallel processing and Parallel Algorithms, Theory and Coputation [14] M.Tamer Ozsu, Patrick Valduriez (1999), Nguyên lý hệ liệu phân tán, Trần Đức Quang biên dịch, NXB Thống kê [15] Seyed H Roo (1999), Parallel processing and Parallel Algorithms, Theory and Coputation [16] Michel Cosnard & Denis Trystram, Parallel Algorithms and Architectures, International Thomson Computer Press, 1995 [17] Kenneth H.Rosen, Toán rời rạc ứng dụng tin học, NXB Khoa học Kỹ thuật 65 ... vấn tin SQL 27 1.2.3.Định nghĩa AQL 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 ... Chương : trình bày 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ẽ toán tử AQL Chương : tạo chương trình mẫu chạy thử dựa theo số liệu thực tế Chương. .. 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ẽ 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