1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo môn học cơ sở dữ liệu nâng cao Đề tài tối Ưu hóa truy vấn

18 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Tối Ưu Hóa Truy Vấn
Tác giả Đặng Anh Phú-21CNTT2, Lê Thị Trà Giang -21CNTT2, Nguyễn Thị Linh Nhi -21CNT2, Nguyễn Minh Trí -21CNTT3, Võ Thị Thu Phương -21CNTT2
Người hướng dẫn TS. Lê Thị Thanh Bình
Trường học Đại Học Đà Nẵng
Chuyên ngành Cơ Sở Dữ Liệu Nâng Cao
Thể loại báo cáo
Năm xuất bản 2024
Thành phố Đà Nẵng
Định dạng
Số trang 18
Dung lượng 0,95 MB

Nội dung

Lý do chọn đề tài "Tối ưu hoá truy vấn" là vì tính quan trọng và ứng dụng rộng rãi của nó trong lĩnh vực cơ sở dữ liệu và hệ thống thông tin.. Nhiệm vụ của đề tài  Tìm hiểu và nghiên

Trang 1

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM

KHOA TIN HỌC

- -

BÁO CÁO MÔN HỌC

CƠ SỞ DỮ LIỆU NÂNG CAO

: Lê Thị Trà Giang -21CNTT2 : Nguyễn Thị Linh Nhi -21CNT2 : Nguyễn Minh Trí -21CNTT3 : Võ Thị Thu Phương -21CNTT2

Đà Nẵng, 2024

Trang 2

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

Đà Nẵng, Ngày … Tháng … Năm 2024

Giáo viên hướng dẫn

Trang 3

MỤC LỤC

Trang 4

LỜI CẢM ƠN

Trước tiên với tình cảm sau sắc và chân thành nhất, cho phép chúng em được bày tỏ lòng biết ơn đến tất cả thầy cô và nhà trường đã tạo điều kiện hổ trợ, giúp đở chúng em trong suốt quá trình học tập và nghiên cứu đề tài này Trong suốc thời gian từ khi học tập tại Trường Đại học Sư Phạm - Đại học Đà Nẵng đến nay Chúng em đã nhận được rất nhiều sự quan tâm, giúp đở của thầy cô và bạn bè

Với lòng biết ơn sâu sắc nhất, chúng em xin gửi đến quý Thầy Cô ở khoa Công Nghệ Thông Tin đã truyền đạt vốn kiến thức quý báu cho chúng em suốt thời gian học tập tại trường Nhờ có lời hướng dẫn, dạy bảo của các thầy cô nên để báo cáo của chúng em mới có thể hoàn thiện tốt đẹp

Một lần nữa, chúng em xin chân thành cảm ơn Cô TS Lê Thị Thanh Bình – người

đã trực tiếp giúp đở, quan tâm, hướng dẫn chúng em hoàn thành tốt bài báo cáo này trong thời gian qua

Bài báo cáo thực hiện trong khoản thời gian không nhiều bước đầu đi vào thực tế của chúng em còn hạn chế và còn nhiếu bỡ ngỡ nên không tránh khởi những thiếu sót Chúng em rất mong nhận được những ý kiến đóng góp quý báu của quý Thầy Cô để kiến thức của em chúng em trong lĩnh vực này được hoàn thiện hơn đồng thời có điều kiện bổ sung, nâng cao kiến thức của mình

Trang 5

MỞ ĐẦU

1 Lý do chọn đề tài

"Tối ưu hoá truy vấn" là vì tính quan trọng và ứng dụng rộng rãi của nó trong lĩnh vực cơ sở dữ liệu và hệ thống thông tin Việc tối ưu hoá truy vấn giúp cải thiện hiệu suất của các hệ thống cơ sở dữ liệu bằng cách giảm thời gian phản hồi của truy vấn và tăng khả năng đáp ứng của hệ thống Điều này mang lại lợi ích lớn cho người dùng cuối và giúp tiết kiệm tài nguyên máy chủ Nghiên cứu về tối ưu hoá truy vấn đòi hỏi phải áp dụng các kỹ thuật và thuật toán tiên tiến nhằm tối ưu hóa câu truy vấn SQL, lập chỉ mục hiệu quả, điều chỉnh truy vấn, và phân bố dữ liệu trong hệ thống phân tán Việc nghiên cứu và phát triển các phương pháp tối

ưu hoá truy vấn mang tính động lực cao, vì nó đưa ra những thách thức kỹ thuật thú vị và có thể ứng dụng rộng rãi trong thực tiễn Một đề tài về tối ưu hoá truy vấn cũng mở ra cơ hội nghiên cứu trong các lĩnh vực liên quan như học máy và khai phá dữ liệu, đặc biệt là khi áp dụng các phương pháp học sâu để tăng cường khả năng tự động hóa tối ưu hoá truy vấn Vì vậy, đề tài này không chỉ có tính thực tiễn mà còn là một lĩnh vực nghiên cứu đa dạng và hứa hẹn trong việc đóng góp vào sự tiến bộ của khoa học và công nghệ thông tin

Đó là lý do nhóm em quyết đi ̣nh cho ̣n đề tài “ TỐI ƯU HÓA TRUY VẤN” làm đề tài

CƠ SỞ DỮ LIỆU NÂNG CAO

2 Mục tiêu và nhiệm vụ của đề tài

2.1 Mục tiêu của đề tài

Mục tiêu của đề tài "Tối ưu hoá truy vấn" là nghiên cứu và áp dụng các kỹ thuật, thuật toán và phương pháp nhằm cải thiện hiệu suất của các truy vấn trong cơ sở dữ liệu Trong đề tài này, chúng ta sẽ tập trung vào việc tìm hiểu các kỹ thuật tối ưu hoá truy vấn hiện có và phát triển các phương pháp mới để đạt được những kết quả tốt hơn Mục tiêu chính bao gồm: Tìm hiểu và phân tích các kỹ thuật tối ưu hoá truy vấn đã được áp dụng trong lĩnh vực cơ sở dữ liệu Phát triển các thuật toán và phương pháp mới để cải thiện hiệu suất của các truy vấn SQL, bao gồm cải thiện thời gian phản hồi

và tối ưu hóa sử dụng tài nguyên hệ thống Thử nghiệm các phương pháp mới trên các tập dữ liệu thực tế để đánh giá hiệu quả và tính khả thi của chúng Đề xuất và áp dụng các giải pháp tối ưu hoá vào các ứng dụng thực tiễn để cải thiện trải nghiệm người

Trang 6

dùng và tăng cường hiệu suất của hệ thống cơ sở dữ liệu Kết quả của đề tài sẽ giúp nâng cao hiệu quả của các hệ thống cơ sở dữ liệu và ứng dụng, đáp ứng nhu cầu ngày càng tăng về khả năng xử lý và đáp ứng của các hệ thống thông tin hiện đại Đây là một lĩnh vực có tính ứng dụng cao và có tầm quan trọng đối với sự phát triển của công nghệ thông tin

2.2 Nhiệm vụ của đề tài

 Tìm hiểu và nghiên cứu các kỹ thuật tăng tốc truy vấn, Phân tích kế hoạch thực hiện truy vấn, Tối ưu hóa câu truy vấn SQL

 Phân tích và đánh giá biểu thức Đại số quan hệ, Đánh giá hiệu suất của các thao tác Đại số quan hệ

 Tìm hiểu các chiến lược tối ưu và tổng quát, Đánh giá hiệu suất của các thao tác Đại số quan hệ

3 Đối tượng và phạm vi nghiên cứu

3.1 Đối tượng nghiên cứu

 Tối ưu hóa câu truy vấn SQL trong cơ sở dữ liệu tập trung để giảm chi phí thực hiện

 Áp dụng lý thuyết tối ưu hóa vào lĩnh vực giáo dục, đào tạo để cải thiện hiệu quả và hiệu suất

3.2 Phạm vi nghiên cứu

vực cơ sở dữ liệu

trường cơ sở dữ liệu

4 Nhiệm vụ thực hiện của đề tài

4.1 Xây dựng cơ sở lý thuyết

4.2 Phân tích thực trạng của vấn đề nghiên cứu

4.3 Tiến hành Nghiên cứu

5 Phương pháp thực hiện

6 Kết quả của đề tài

6.1 Báo cáo đề tài

Trang 7

6.2 Sản phẩm

7 Bố cục của đề tài

Trang 8

Chương 1: Tổng Quan Về Cơ Sở Dữ Liệu Tập Trung

 Tổng quan về xử lý truy vấn trong cơ sở dữ liệu tập trung

 Chuyển đổi truy vấn sang biểu thức Đại số quan hệ để phân tích và thực hiện

1.1 Tổng quan về xử lý truy vấn trong cơ sở dữ liệu tập trung

• Xử lý một truy vấn bao gồm 3 bước chính:

- Phân tích và Biên dịch câu truy vấn: Trong bước này, hệ thống phải dịch câu truy vấn từ dạng ngôn ngữ bậc cao thành một ngôn ngữ biểu diễn dữ liệu bên trong để máy tính có thể thao tác trên đó Một biểu diễn bên trong thích hợp và

hỗ trợ cho bước tối ưu hóa tiếp theo là biểu diễn bằng ngôn ngữ đại số quan hệ – Tối ưu hóa câu truy vấn: Mục tiêu của bước tối ưu hóa là chọn ra một kế hoạch thực hiện câu truy vấn có chi phí thấp nhất

• Để thực hiện được điều này, trước tiên ta cần biến đối 1 biểu thức ĐSQH đầu vào thành một biểu thức ĐSQH tương đương nhưng có thể xử lý được 1 cách hiệu quả và ít tốn kém hơn Bước con đầu tiên này được gọi là tối ưu hóa đại số

• Tiếp theo đó, ta cần phải đặc tả các thuật toán đặc biệt tiến hành thực thì các phép toán, chọn 1 chỉ dẫn cụ thể nào đó để sử dụng

Các dữ liệu thống kê về CSDL sẽ giúp ta trong quá trình xem xét và lựa chọn

Ví dụ như

- Số bộ trong quan hẻ

Kích thước của một bó

Trang 9

- Số khối (block) chưa các bộ của quan hẻ

- Số bộ của quan hệ mà một khối có thể chưa

- Các thông tin về cơ chế truy nhập, chỉ dán trên quan hệ

• Chi phí cho việc thực hiện một truy vẫn được đo bởi chi phí sử dụng tài nguyên như việc truy cập đĩa, thời gian CPU dùng để thực hiện một truy vẫn

• Trong chương này, chúng ta sẽ tập trung vào việc đánh giá các biểu thức đại số quan hệ chứ không đi vào chi tiết việc tính toán chi phí cho việc thực hiện đánh giá một truy vän

Thực hiện đánh giá truy vấn: Từ một kế hoạch thực hiện có được do Trình tối ưu hóa cùng cấp, hệ thống sẽ tiến hành thực hiện các thao tác trên dữ liệu trong CSDL và đưa ra câu trả lời cho truy vẫn đó

Trang 10

1.2.Chuyển đổi truy vấn sang biểu thức Đại số quan hệ để phân tích

và thực hiện

Chương 2: Tối Ưu Hóa Truy Vấn

o QUERY TREE ( Cây truy vấn )

Trang 11

o Quy tắc Heuristic

o Thảo luận về ước lượng chi phí của các phương pháp thực hiện truy vấn

2.1.QUERY TREE ( Cây truy vấn )

Một cây truy vấn là một cấu trúc dữ liệu dạng cây tương ứng với một biểu thức đại số quan hệ Các quan hệ đầu vào của câu truy vấn được biểu diễn là các nút

lá của cây, các phép toán đại số quan hệ là các nút bên trong Quá trình thực hiện cây truy vấn bao gồm việc thực hiện một nút bên trong mỗi lần thực hiện các toán hạng của biểu thức quan hệ, sau đó thay thế nút bên trong đó bởi quan

hệ kết quả của phép toán Quá trình thực hiện kết thúc khi nút gốc được thực hiện và tạo ra quan hệ kết quả cho câu truy vấn

Ví dụ 2: Xét lược đồ cơ sở dữ liệu quan hệ như sau:

NHANVIEN(MaNV,HoLot,Ten,Ngaysinh, GioiTinh, ChucVu, DiaChi,

HSLuong, Sophong)

PHONG BAN(SoPBan, TenPhongBan,DienThoai, MaQly, NgayBatDauQL)

DIA CHI PBAN( SoPBan , Diachi,)

DU AN( SoDuAn, TenDaAn, DiaChiDuAn,SoPhong)

THAM GIA(SNV, SDA, SoNgayCong)

THAN NHAN(MaNV, HoTenTN, Phai,NgaySinhTN, MoiQuanHe)

Với truy vấn Q1: Cho biết số dự án, số phòng ban, tên, địa chỉ và ngày sinh

người quản lí phòng ban của mọi dự án nằm ở“Stafford” Truy vấn Q1 tương

ứng với biểu thức đại số quan hệ:

Trang 12

Và tương ứng cới câu lệnh SQL như sau:

SELECT P.SoDuAn, P.SoPhong, E.Ten, E.DiaChi, E.NgaySinh

FROM DU AN AS P, PHONG BAN AS D, NHAN VIEN AS E

WHERE P.SoPhong = D.SoPBan AND

D.MaQly = E MaNV AND P.DiaChiDuAn

=”Stafford” ;

Hình 1(a) biểu diễn cây truy vấn của truy vấn Q1, có ba quan hệ DU AN,PHONG BAN và NHAN VIEN được thể hiện bởi các nút lá P, D và E Các phép đại số quan hệ của biểu thức được biểu diễn bởi các nút bên trong cây Khi cây truy vấn này được thực hiện, nút (1) phải bắt đầu thực hiện trước nút (2) bởi

vì một số bộ kết quả của phép (1) phải sẵn sàng trước khi chúng ta có thể bắt đầu thực hiện phép (2) Tươngtự, nút (2) phải bắt đầu thực hiện và tạo ra các kết quả trước khi nút (3) có thể bắt đầu thực hiện, …

vẽ lại

Trang 13

Vẽ lại

Hình 1(c): Đồ thị truy vấn của Q1

Sự biểu diễn bằng đồ thị truy vấn không cho biết thứ tự thực hiện trên các

phép toán, nó chỉ gồm một đồ thị đơn tương ứng với mỗi truy vấn Một số kĩ thuật tối ưu hoá đã dựa vào các đồ thị truy vấn, nhưng hầu hết chưa đưa ra thứ tự thực hiện các phép toán trên cây, trong khi đó việc tối ưu hoá câu truy vấn cần phải chỉ ra thứ tự thực hiện của các phép

o 2.2.Quy tắc Heuristic

Thông thường, một câu truy vấn có thể được biểu diễn sang nhiều biểu thức đại

số quan hệ khác nhau Phân tích câu truy vấn sẽ tạo ra một cây truy vấn ban đầu chuẩn ứng với truy vấn SQL mà không sử dụng bất cứ sự tối ưu hoá nào

Việc tối ưu hoá bao gồm các qui tắc tương đương giữa các biểu thức đại số quan

hệ mà có thể được áp dụng cho cây truy vấn ban đầu Tối ưu hóa câu truy vấn bằng các qui tắc heuristic chính là sử dụng các biểu thức tương đương này để chuyển cây truy vấn ban đầu thành cây truy vấn cuối cùng đã tối ưu

Ví dụ 3: Xét truy vấn Q2: Tìm tên của tất cả các nhân viên sinh sau 1957, làm việc trong dự án có tên là ‘Aquarius’ Truy vấn này có thể viết lại bằng SQL như sau:

SELECT Ten

FROM NHAN VIEN,THAM GIA,DU AN

WHER TenDuAn = ‘Aquarius’AND SoDuAn =SDA AND SNV =MaSV AND NgaySinh >#31/12/1977#;

Trang 14

Các bước chuyển đổi một cây truy vấn trong suốt quá trình tối ưu hóa bằng cách

sử dụng heuristic

VẼ LẠI 3 HÌNH

Trang 15

Chương 3: Tối Ưu Hóa Trong Quá Trình Viết Truy Vấn

việc sử dụng điều kiện WHERE hay HAVING

WHERE hay HAVING

Trang 16

Về bản chất, điều kiện trong mệnh đề WHERE và trong mệnh đề HAVING là hoàn toàn khác nhau Tuy nhiên, trong một số trường hợp, điều kiện có thể được đặt trong WHERE hoặc HAVING là tương đương Khi đó, nên đặt điều kiện trong mệnh đề WHERE Xét hai truy vấn tương đương SQL 4.64 và SQL 4.65 tính tổng số tiền mỗi hoá đơn thuộc về khách hàng 'KI' trong năm 2014

VD1 Tối ưu hoá truy vấn: Điều kiện trong WHERE

SUM(CT_XUAT.SoLuong * CT_XUAT.DonGia) AS TongSoTien

FROM CT_XUAT INNER JOIN HD_XUAT ON CT_XUAT.MaHDX = HD_XUAT.MaHDX

HD_XUAT.NgayHD

VD1 Tối ưu hoá truy vấn: Điều kiện trong HAVING

SUM(CT_XUAT.SoLuong * CT_XUAT.DonGia) AS TongSoTien

HD_XUAT.MaHDX

WHERE MONTH (HD_XUAT.NgayHD) = 8 AND YEAR (HD_XUAT.NgayHD)=

2014

GROUP BY HD_XUAT.MaHDX, HD_XUAT.NgayHD, HD_XUAT.MaKH HAVING HD_XUAT.MaKH = ‘K1’

Cần chú ý rằng việc thêm HD XUAT MaKH vào mệnh đề GROUP BY trong truy vấn SQL VD2 không ảnh hưởng đến kết quả thực thi truy vấn, bởi vì nó không làm thay đổi các nhóm bản ghi Mối quan hệ giữa khách hàng và hoá đơn

là một – nhiều, khi đã nhóm theo MaHDX thì việc nhóm theo MaKH không còn

Trang 17

ý nghĩa nữa, nhưng SQL bắt buộc một khi biểu thức tham gia vào HAVING thì hoặc phải có mặt trong mệnh đề GROUP BY, hoặc phải là hàm gộp

Truy vấn SQL VD1 được thực thi theo các bước: i) Áp dụng điều kiện trong mệnh đề WHERE để lọc các bản ghi từ HD XUAT; ii) nổi với bảng CT XUẤT; iii) nhóm các bản ghi theo HD XUAT.MaHDX, HD XUAT.NgayHD; iv) thực hiện mệnh đề SELECT cho mỗi nhóm Truy vấn SQL VD2 được thực thi theo các bước: a) Áp dụng điều kiện trong mệnh đề WHERE để lọc các bản ghi từ HD_XUAT; b) nối với bảng CT XUAT; c) nhóm các bản ghi theo HD_XUAT.MaHDX, HD_XUAT.NgayHD; d) tính toán các biểu thức trong mệnh đề SELECT và HAVING cho mỗi nhóm: e) áp dụng điều kiện trong mệnh

đề HAVING

Sự khác nhau trong kế hoạch thực thi hai truy vấn SQL VD1 và SQL VD2 ở chỗ

áp dụng điều kiện HD_XUAT.MaKH = 'K1' trước (SQL VD1) hay sau (SQL VD2) khi xử lý kết nối, gộp nhóm, tính toán cho mỗi nhóm Nói cách khác, SQL VD1 chỉ chọn các bản ghi liên quan đến các hoả đơn xuất thuộc khách hàng có mã “M1' từ các bảng, sau đó thực hiện các tỉnh toán; SQL VD2 chọn tất

cả các bản ghi liên quan đến tất cả các hoá đơn thuộc tất cả khách hàng, thực hiện tính toán cho từng hoá đơn, sau đó loại bỏ những hoá đơn nào không thuộc khách hàng có mã “MI” Rõ ràng, truy vấn SQL VD1 là tối ưu so với SQL VD2

Trang 18

o Thứ tự thực thi các phép nối

Ngày đăng: 15/12/2024, 20:45

w