Tiền tối ưu các các SQL chương trình nguồn

66 281 0
Tiền tối ưu các các SQL chương trình nguồn

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

i Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG NGUYỄN THỊ THU NGA TIỀN TỐI ƢU CÁC CÂU SQL TỪ CHƢƠNG TRÌNH NGUỒN LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH THÁI NGUYÊN - 2014 ii Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG NGUYỀN THỊ THU NGA TIỀN TỐI ƢU CÁC CÂU SQL TỪ CHƢƠNG TRÌNH NGUÔN Chuyên ngành: KHOA HỌC MÁY TÍNH Mã số : 60 48 01 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Giáo viên hƣớng dẫn: PGS.TS. LÊ HUY THẬP iii Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ LỜI CAM ĐOAN Tôi cam đoan đây là công trình nghiên cứu của riêng tôi. Các số liệu, kết quả nêu trong luận văn là trung thực và chƣa từng đƣợc ai công bố trong bất kỳ công trình nào khác. Qua đây em xin chân thành cảm ơn toàn thể các thầy cô trong khoa đào tạo sau đại học trƣờng Đại học Công nghệ Thông tin và Truyền thông và đặc biệt là Thầy PGS.TS. Lê Huy Thập, đã tạo điều kiện thuận lợi và hƣớng dẫn em để hoàn thành luận văn này. iv Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ MỤC LỤC LỜI CAM ĐOAN i MỤC LỤC iv DANH MỤC CÁC KÝ HIỆU vi DANH MỤC CÁC CHỮ VIẾT TẮT vi DANH MỤC BẢNG BIỂU viii DANH MỤC HÌNH ẢNH ix LỜI MỞ ĐẦU 1 CHƢƠNG 1: TỔNG QUAN VỀ NGÔN NGỮ SQL 3 1.1. Nghiên cứu ngôn ngữ SQL và một số dạng câu vấn tin SQL cơ bản 3 1.1.1. Giới thiệu ngôn ngữ SQL 3 1.1.2. Câu vấn tin SQL (Structured Query Language) 4 1.1.2.1. Thao tác với bảng. 4 1.1.2.2. Khối lệnh Select 5 1.1.2.3. Tìm kiếm theo câu hỏi đơn giản 6 1.1.2.4. Các hàm thƣ viện 8 1.1.2.5. Tìm nhờ mệnh đề GROUP BY 9 1.1.2.6. Tìm kiếm và câu hỏi phức tạp 10 1.2. Nghiên cứu thuật toán Ingres và System tập trung 12 1.2.1. Thuật toán Ingres 12 1.2.2. Thuật toán System 20 1.3. Kết luận chƣơng 25 CHƢƠNG 2: TIỀN TỐI ƢU CÁC CÂU SQL TỪ CHƢƠNG TRÌNH NGUỒN 26 2.1. Phƣơng pháp phân rã SQL 26 2.1.1 Phƣơng pháp phân rã SQL. 26 2.1.2 Những ƣu và nhƣợc điểm của phƣơng pháp phân rã SQL 32 2.1.3 Ứng dụng của phƣơng pháp phân rã SQL: 33 v Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 2.2. Phƣơng pháp thay thế SQL 34 2.2.1 Phƣơng pháp thay thế SQL 34 2.2.2 Những ƣu và nhƣợc điểm của của phƣơng pháp thay thế SQL 36 2.2.3 Ứng dụng của phƣơng pháp thay thế SQL 37 2.3. Thuật toán xử lý tiền tối ƣu câu SQL 37 2.4. Kết luận chƣơng 42 CHƢƠNG 3 CHƢƠNG TRÌNH THỬ NGHIỆM 43 3.1 Mô tả bài toán 43 3.2 Thử nghiệm tiền tối ƣu câu lệnh SQL 48 3.2.1 Xây dựng chƣơng trình thử nghiệm. 48 3.2.2. Thực hiện thử nghiệm. 49 KẾT LUẬN 56 HƢỚNG PHÁT TRIỂN 56 TÀI LIỆU THAM KHẢO 57 vi Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 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 DANH MỤC CÁC CHỮ VIẾT TẮT vii Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 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) OVQP One Variable Query processor (thể xử lý truy vấn một biến) ORQ Đơn quan hệ MRQ Đa quan hệ viii Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ DANH MỤC BẢNG BIỂU Bảng 1.1. Bảng nhân viên 15 Bảng 1.2.Bảng phân nhiệm 15 Bảng 1.3. Bảng dự án 15 Bảng 1.4. Bảng Trả lƣơng 16 Bảng 2.1. Số liệu của quan hệ DanhHieu 29 Bảng 2.2. Số liệu quan hệ ThamGiaCM 29 Bảng 2.3. Số liệu quan hệ KhenThuong 30 Bảng 2.2.1 Kết quả danh sách ngƣời nhận huân chƣơng 36 Bảng 2.2.2. Số liệu của quan hệ DanhHieu 39 Bảng 2.2.3 Số liệu quan hệ ThamGiaCM 39 Bảng 2.2.4. Số liệu quan hệ KhenThƣởng 40 Bảng 2.2.5 Kết quả sau khi thực hiện thuật toán tối ƣu 42 Bảng 3.1: Bảng sinh viên 44 Bảng 3.2: Bảng lớp 44 Bảng 3.3: Bảng môn học 45 Bảng 3.4: Bảng điểm 45 Bảng 3.5: Bảng điểm rèn luyện 45 Bảng 3.6: Bảng đối tƣợng 46 Bảng 3.7: Bảng gia đình 46 Bảng 3.8: Bảng học kỳ 46 Bảng 3.9: Bảng quan hệ 47 Bảng 3.10: Bảng thành viên gia đình 47 ix Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ DANH MỤC HÌNH ẢNH Hình 1.1. Đồ thị kết nối của câu truy vấn 23 Hình 1.2 Các thứ tự kết nối lựa chọn 24 Hình 3.1: Giao diện chính chƣơng trình 48 Hình 3.2: Giao diện phần chèn dữ liệu tự động 49 Hình 3.3: Thực hiện truy vấn lấy danh sách điểm sinh viên 50 Hình 3.4 Thực hiện truy vấn lấy danh sách điểm sinh viên sau khi tối ƣu SQL 52 Hình 3.5 Thực hiện truy vấn lấy thông tin sinh viên 53 Hình 3.6 Thực hiện truy vấn lấy thông tin sinh viên sau khi tối ƣu SQL 55 1 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ LỜI MỞ ĐẦU Trong tình hình hiện nay, các tổ chức, doanh nghiệp có nhiều chi nhánh và đặt ở nhiều nơi với khối lƣợng dữ liệu lớn và đa ngƣời dùng, thƣờng sử dụng cơ sở dữ liệu. Do đó các phần mềm máy tính hỗ trợ nghiệp vụ của các tổ chức, doanh nghiệp cũng phải đƣợc tổ chức và phân tán một cách hợp lý. Tuy nhiên, tốc độ xử lý của các phần mềm quản lý có dữ liệu lớn và nằm phân tán sẽ trở nên vô cùng chậm, không đáp ứng đƣợc các yêu cầu của ngƣời dùng. Điều này đòi hỏi các nhà phát triển phần mềm không những phải không ngừng xây dựng đƣợc những phần mềm lớn đa ngƣời dùng mà còn phải nghiên cứu và đƣa ra các giải pháp tối ƣu hóa câu lệnh, nhằm từng bƣớc nâng cao tốc độ xử lý và giảm giá thành của phần mềm. Qua tìm hiểu và nghiên cứu một số quy trình xây dựng phần mềm thì quá trình tối ƣu hóa câu lệnh của các hệ chƣơng trình rất có ý nghĩa vì kinh phí đầu tƣ của các tổ chức, doanh nghiệp cho các thiết bị phần cứng bƣớc đầu còn rất hạn chế. Cho nên giải pháp tối ƣu hóa đến từng câu lệnh càng trở nên quan trọng hơn. Điều này luôn có ý nghĩa lớn ngay cả khi các thiết bị phần cứng đáp ứng đƣợc yêu cầu. Nếu câu vấn tin SQL (Structured Query Language) đã đƣợc tối ƣu trƣớc khi thực hiện truy vấn sẽ nâng cao hiệu quả của chƣơng trình và tiết kiệm chi phí. Cũng chính vì vậy, học viên quyết định chọn đề tài “Tiền tối ưu các câu SQL từ chương trình nguồn”. Trong phạm vi luận văn của mình, học viên tìm hiểu câu lệnh truy vấn SQL, nghiên cứu phƣơng pháp tối ƣu câu SQL để nâng cao hiệu quả của chƣơng trình. Trong quá trình nghiên cứu học viên đã đề xuất phƣơng pháp phân rã và thay thế câu lệnh SQL. Câu truy vấn đã đƣợc tối ƣu sẽ nâng cao hiệu quả nếu nó thỏa mãn một số tiêu chuẩn cho trƣớc nào đó. Một số phƣơng pháp phân tích và tối ƣu hóa các câu truy vấn dạng SQL đã đƣợc một số tác giả trong và ngoài [...]... chƣơng trình nguồn các lệnh SQL để hỗ trợ tối ƣu hóa vấn tin là một vấn đề thời sự và cần thiết Trong khuôn khổ của luận văn các vấn đề sẽ lần lƣợt trình bày trong các chƣơng Chƣơng 1: Sẽ trình bày các kiến thức cơ bản về một số phần mềm tìm kiếm, tổng quan ngôn ngữ SQL, một số dạng câu vấn tin SQL, quá trình tối ƣu hóa Chƣơng 2: Sẽ trình bày các thuật toán tiền tối ƣu câu SQL từ chƣơng trình nguồn. .. tin SQL, quá trình tối ƣu hóa và ngôn ngữ lập trình bậc cao Trên đây là cơ sở lý thuyết nền tảng cho qua trình tối ƣu hóa vấn tin Chƣơng 2 sẽ trình bày các bƣớc phân rã và thay thế các câu SQL để nhằm mục đích tối ƣu hóa câu vấn tin Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 26 CHƢƠNG 2: TIỀN TỐI ƢU CÁC CÂU SQL TỪ CHƢƠNG TRÌNH NGUỒN Nếu câu vấn tin SQL đã đƣợc tối. .. tìm hết các câu vấn tin SQL trong chƣơng trình nguồn và xử lý nó theo nghĩa tối ƣu hóa thì chƣa đƣợc chỉ ra Dƣới đây sẽ trình bày phƣơng pháp tìm kiếm vét cạn trong chƣơng trình nguồn để tìm tất cả các câu SQL, sau đó tiền tối ƣu hóa tĩnh các câu vấn tin này bằng phƣơng pháp tách và thay thế sau đó ghi lại câu vấn tin đã xử lý vào vị trí cũ trong chƣơng trình nguồn 2.1 Phƣơng pháp phân rã SQL Phƣơng... mại hoá với tên SQL Tƣơng tự các ngôn ngữ bậc cao khác, SQL đƣợc xây dựng dựa trên các chữ cái, các chữ số, các ký tự (ký hiệu phép toán, và các ký tự đặc biệt) và một tập các từ khóa Ngôn ngữ SQL có thể sử dụng theo hai kiểu: kiểu trực tiếp và lập trình SQL trực tiếp cho phép thực hiện một truy vấn và nhận đƣợc kết quả ngay tức khắc SQL lập trình cho phép sử dụng SQL trong một chƣơng trình viết bằng... đƣợc công bố Tuy nhiên tất cả đều dựa trên giả thuyết các câu vấn tin dạng SQL đƣợc lấy trực tiếp từ một chƣơng trình nguồn hay ngƣời lập trình viết khi lập trình và tối ƣu hóa một cách thủ công Một vấn đề đặt ra là một chƣơng trình nguồn dạng tuần tự mà trong đó có nhiều lệnh SQL có thể thỏa mãn điều kiện song song hóa và chỉ đƣợc song song hóa và tối ƣu hóa bởi phƣơng pháp song song tự động Điều đó... dựng chƣơng trình demo tìm các câu vấn tin SQL từ một chƣơng trình nguồn Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 3 CHƢƠNG 1: TỔNG QUAN VỀ NGÔN NGỮ SQL 1.1 Nghiên cứu ngôn ngữ SQL và một số dạng câu vấn tin SQL cơ bản 1.1.1 Giới thiệu ngôn ngữ SQL Ngôn ngữ SQL (Structured Query Language) là ngôn ngữ truy vấn mang tính cấu trúc, đƣợc sử dụng trong hầu hết các hệ quản... viết bằng ngôn ngữ lập trình bậc cao khác (nhƣ C#, Java, ), hoặc viết các chƣơng trình con Ngôn ngữ SQL đƣợc chia thành ba nhóm:  Ngôn ngữ định nghĩa dữ liệu dùng để mô tả cấu trúc của cơ sở dữ liệu (các bảng, các khung nhìn, các thuộc tính, các chỉ mục, )  Ngôn ngữ thao tác dữ liệu cho phép thực hiện các thao tác trên cơ sở dữ liệu nhƣ: cập nhật cơ sở dữ liệu và truy vấn, lấy ra các thông tin từ cơ... tất cả các hoán vị khả hữu của các thứ tự nối (có n! hoán vị cho n quan hệ) và chọn ra chiến lƣợc truy Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 22 xuất tốt nhất cho câu vấn tin Các hoán vị đƣợc tạo ra bằng cách xây dựng động một cây các chiến lƣợt khác nhau, sau đó là các nối của ba quan hệ Điều này cứ tiếp tục cho đến khi các nối của n quan hệ đều đƣợc tối ƣu... của một câu lệnh SQL, tốc độ xử lý của hệ thống sẽ khác nhau, các truy vấn phức tạp sẽ cản trở rất nhiều đến khả năng truy xuất dữ liệu của ứng dụng Bằng cách kiểm tra và tối ƣu các câu truy vấn SQL, chúng ta có thể tối ƣu hóa và cải thiện hiệu suất làm việc của hệ thống Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 25 1.3 Kết luận chƣơng Chƣơng 1 trình bày những kiến... câu vấn tin SQL là: chuyển câu vấn tin đa quan hệ thành một tập các câu vấn tin đơn quan hệ nhằm ứng dụng đƣợc phƣơng pháp tối ƣu ORQ (Optimal Rilational Query – Truy vấn tối ƣu đơn quan hệ)[5] 2.1.1 Phương pháp phân rã SQL Để có thể dùng thể xử lí vấn tin ORQ từ câu vấn tin đa quan hệ trƣớc hết chúng ta cần phân rã câu vấn tin SQL (nếu có thể) để chọn ra các “mệnh đề chọn” nhằm làm giảm bớt các quan . định chọn đề tài Tiền tối ưu các câu SQL từ chương trình nguồn . Trong phạm vi luận văn của mình, học viên tìm hiểu câu lệnh truy vấn SQL, nghiên cứu phƣơng pháp tối ƣu câu SQL để nâng cao. thuyết các câu vấn tin dạng SQL đƣợc lấy trực tiếp từ một chƣơng trình nguồn hay ngƣời lập trình viết khi lập trình và tối ƣu hóa một cách thủ công. Một vấn đề đặt ra là một chƣơng trình nguồn. bày các kiến thức cơ bản về một số phần mềm tìm kiếm, tổng quan ngôn ngữ SQL, một số dạng câu vấn tin SQL, quá trình tối ƣu hóa. Chƣơng 2: Sẽ trình bày các thuật toán tiền tối ƣu câu SQL từ

Ngày đăng: 20/11/2014, 19:59

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan