1. Trang chủ
  2. » Thể loại khác

Xử lý truy vấn và quản lý giao tác trong cơ sở dữ liệu : Luận văn ThS Công nghệ thông tin: 1.01.10

83 49 0

Đ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

Định dạng
Số trang 83
Dung lượng 1,34 MB

Nội dung

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Đào Thị Thu Vân XỬ LÝ TRUY VẤN VÀ QUẢN LÝ GIAO TÁC LUẬN VĂN THẠC SĨ Hà Nội - 2005 MỤC LỤC MỞ ĐẦU CHƢƠNG XỬ LÝ VÀ TỐI ƢU TRUY VẤN 1.1 Chuyển truy vấn SQL thành đại số quan hệ 1.2 Các thuật toán thực phép toán truy vấn 1.2.1 Sắp xếp 1.2.2 Thực thi phép chọn (SELECT) 11 1.2.3 Thực thi phép nối (JOIN) 15 1.2.4 Thực thi phép chiếu phép toán tập hợp 21 1.2.5 Thực thi phép toán kết hợp 23 1.2.6 Thực thi phép nối - Outer Join 24 1.2.7 Các phép toán kết hợp sử dụng đƣờng ống 25 1.3 Sử dụng luật dự đoán tối ƣu truy vấn 26 1.3.1 Các ký hiệu với truy vấn đồ thị truy vấn 26 1.3.2 Tối ƣu kinh nghiệm truy vấn 30 1.3.3 Chuyển truy vấn thành phƣơng án thực thi truy vấn 37 1.4 Sử dụng ƣớc lƣợng chọn lọc ƣớc lƣợng chi phí tối ƣu truy vấn 38 1.4.1 Các thành phần chi phí cho việc thực thi truy vấn 39 1.4.2 Thông tin danh mục sử dụng hàm giá 40 1.4.3 Ví dụ hàm giá phép SELECT 41 1.4.4 Ví dụ hàm giá phép JOIN 43 1.4.5 Các truy vấn có quan hệ thứ tự nối phức tạp 46 1.4.6 Ví dụ minh hoạ cho việc tối ƣu truy vấn dựa giá 48 1.5 Tối ƣu truy vấn ngữ nghĩa 51 1.6 Tổng kết 51 CHƢƠNG XỬ LÝ GIAO TÁC 53 2.1 Giới thiệu xử lý giao tác 53 2.1.1 Hệ thống đơn ngƣời dùng - hệ thống đa ngƣời dùng 53 2.1.2 Các giao tác, thao tác đọc - ghi vùng đệm DBMS 54 2.1.3 Tại điều khiển đồng thời cần thiết 56 2.1.4 Tại khôi phục cần thiết 59 2.2 Các khái niệm hệ thống giao tác 61 2.2.1 Các trạng thái giao tác phép toán bổ xung 61 2.2.2 File log hệ thống 62 2.2.3 Điểm xác nhận giao tác 63 2.3 Các đặc tính mong muốn giao tác 64 2.4 Lịch biểu khôi phục 64 2.4.1 Lịch biểu giao tác 65 2.4.2 Miêu tả đặc tính lịch biểu dựa việc khơi phục 66 2.5 Xếp thứ tự lịch biểu 68 2.5.1 Các lịch biểu theo thứ tự, không theo thứ tự lịch biểu có thứ tự xung đột 68 2.5.2 Kiểm tra thứ tự xung đột lịch biểu 72 2.5.3 Sử dụng tính thứ tự 77 2.5.4 Tƣơng đƣơng khung nhìn trật tự khung nhìn 78 2.5.5 Các kiểu tƣơng đƣơng khác lịch biểu 79 2.6 Tổng kết 79 KẾT LUẬN 81 TÀI LIỆU THAM KHẢO 82 MỞ ĐẦU Khi liệu đƣợc lƣu trữ máy tính việc sử dụng nhƣ để có hiệu thách thức ngƣời sử dụng Để khai thác sở liệu tốt cần phải có hệ quản trị sở liệu tốt Việc xử lý truy vấn, quản lý giao tác hai chức quan trọng hệ quản trị sở liệu Tìm hiểu lý thuyết thực tiễn hai chức có ý nghĩa việc xây dựng hệ quản trị sở liệu Thông qua việc nghiên cứu số tài liệu khoa học có liên quan, luận văn sâu tìm hiểu vấn đề với đề tài “xử lý truy vấn quản lý giao tác” Luận văn bao gồm hai chƣơng: Chƣơng 1: Xử lý tối ƣu truy vấn Một truy vấn sở liệu biểu thức đại số quan hệ, thực loạt thao tác sở liệu quan hệ để lấy thông tin cần thiết cho việc quản lý Nghiên cứu xử lý tối ƣu truy vấn nghiên cứu thuật toán thực phép toán đại số quan hệ nhƣ tìm cách thực biểu thức đại số quan hệ theo trật tự để có câu trả lời nhanh Chƣơng 2: Quản lý giao tác Quản lý giao tác cần thiết, đặc biệt giao tác xẩy đồng thời có cạnh tranh số khoản mục liệu sở liệu, tính qn khơng cịn đƣợc bảo tồn Do hệ thống cần điều khiển tƣơng tác giao tác đồng thời Do kinh nghiệm làm việc với sở liệu cịn ít, chắn luận văn cịn nhiều thiếu sót Chúng tơi chân thành mong đƣợc thầy, cơ, bạn bè đóng góp ý kiến CHƢƠNG XỬ LÝ VÀ TỐI ƯU TRUY VẤN Trong chƣơng trình bầy kỹ thuật mà hệ quản trị sở liệu (DBMS) sử dụng để xử lý, tối ƣu hoá thực thi truy vấn bậc cao Một truy vấn đƣợc trình bầy ngôn ngữ bậc cao, nhƣ SQL, phải đƣợc kiểm tra, phân tích xác nhận tính hợp lệ Bộ quét xác định dấu hiệu ngơn ngữ, nhƣ từ khóa SQL, tên thuộc tính tên quan hệ nội dung câu truy vấn, phân tích kiểm tra cú pháp truy vấn để xác định xem có đƣợc trình bầy phù hợp với luật cú pháp ngôn ngữ truy vấn hay không Một truy vấn phải đƣợc xác nhận tính hợp lệ cách kiểm tra tất tên quan hệ thuộc tính hợp lệ, tên có ý nghĩa lƣu đồ sở liệu cụ thể đƣợc truy vấn Sau biểu diễn bên truy vấn đƣợc tạo ra, thƣờng nhƣ cấu trúc liệu gọi truy vấn Cũng biểu diễn truy vấn cách sử dụng cấu trúc liệu đồ thị gọi đồ thị truy vấn Sau DBMS phải đƣa chiến lƣợc thực để lấy kết truy vấn từ file sở liệu Một truy vấn thƣờng có nhiều chiến lƣợc thực hiện, trình chọn chiến lƣợc phù hợp để xử lý truy vấn gọi tối ƣu truy vấn [1, 3, 4, 5, 6, 7] Hình 1.1 thể bƣớc khác việc xử lý truy vấn bậc cao Bộ tối ƣu truy vấn có nhiệm vụ tạo phƣơng án thực tạo mã tạo chƣơng trình để thực phƣơng án Bộ xử lý sở liệu thời gian chạy có nhiệm vụ chạy chƣơng trình truy vấn kiểu thơng dịch biên dịch để tạo kết truy vấn Nếu có lỗi chạy chƣơng trình đƣợc tạo xử lý sở liệu thời gian chạy sinh thông báo lỗi Thuật ngữ tối ƣu đƣợc sử dụng khơng xác vài trƣờng hợp, phƣơng án thực đƣợc lựa chọn chiến lƣợc tốt nhất, chiến lƣợc hiệu hợp lý cho việc thực truy vấn Việc tìm chiến lƣợc tốt thƣờng phải nhiều thời gian, ngoại trừ truy vấn đơn giản, yêu cầu thông tin việc file đƣợc cài đặt nhƣ nội dung file, thơng tin khơng có từ điển hệ quản trị sở liệu Vì vậy, lập kế hoạch chiến lƣợc thực xác tối ƣu truy vấn Truy vấn viết ngôn ngữ bậc cao Scanning, parsing, validating Dạng biểu diễn bên Query Optimiser Phương án thực Query Code Generator Chương trình thực truy vấn Runtime Database Processor Kết truy vấn Hình 1.1 Các bước điển hình xử lý truy vấn bậc cao 1.1 Chuyển truy vấn SQL thành đại số quan hệ Một truy vấn SQL chuyển đổi thành biểu thức đại số quan hệ mở rộng tƣơng đƣơng, đƣợc biểu diễn nhƣ cấu trúc liệu truy vấn, sau đƣợc tối ƣu Thông thƣờng truy vấn SQL đƣợc phân tích thành khối truy vấn, tạo nên đơn vị sở mà chuyển đổi thành phép toán đại số đƣợc tối ƣu Một khối truy vấn chứa biểu thức SELECT – FROM – WHERE đơn có mệnh đề Group by Having chúng phần biểu thức Vì truy vấn đƣợc lồng bên truy vấn đƣợc xác định nhƣ khối truy vấn riêng rẽ [6] Xét quan hệ sau: EMPLOYEE, DEPARTMENT, WORKS-ON PROJECT EMPLOYEE FNAME LNAME SSN ADDESS BDATE SEX SALAR Y DNO DEPARTMENT DNAME DNUMBER MGRSSN MGRSTARTDATE PROJECT PNAME PNUMBER PLOCATION DNUM WORKS-ON ESSN PNO HOURS Bảng 1.1 Các quan hệ Trong đó: Quan hệ EMPLOYEE chứa thuộc tính nhân viên: FNAME: tên nhân viên LNAME: họ tên đệm nhân viên SSN: mã nhân viên BDATE: ngày sinh nhân viên ADDESS: địa nhân viên SEX: giới tính nhân viên SALARY: mức lƣơng nhân viên DNO: mã số phòng ban mà nhân viên làm việc Quan hệ DEPARTMENT chứa thơng tin phòng ban: DNAME: tên phòng ban DNUMBER: mã số phòng ban MGRSSN: mã số ngƣời quản lý phòng MGRSTARTDATE: ngày bắt đầu làm quản lý ngƣời quản lý phòng ban Quan hệ PROJECT chứa thông tin dự án: PNAME: tên dự án PNUMBER: mã số dự án PLOCATION: nơi thực dự án DNUM: mã số phòng thực dự án Quan hệ WORKS-ON chứa thông tin thời gian làm việc nhân viên: ESSN: mã số nhân viên PNO: mã số dự án mà nhân viên tham gia HOURS: số mà nhân viên thực Xét truy vấn SQL sau quan hệ EMPLOYEE bảng 1.1 SELECT LNAME, FNAME FROM EMPLOYEE WHERE SALARY > (SELECT MAX(SALARY) FROM EMPLOYEE WHERE DNO=5); Truy vấn chứa truy vấn lồng bên đƣợc tách thành khối: Khối là: SELECT MAX (SALARY) FROM EMPLOYEE WHERE DNO=5 Và khối là: SELECT LNAME, FNAME FROM EMPLOYEE WHERE SALARY > c Với c biểu diễn kết khối trả lại Khối đƣợc chuyển thành biểu thức quan hệ mở rộng nhƣ sau: FMAX SALARY(DNO=5(EMPLOYEE)) Và khối đƣợc chuyển sang biểu thức quan hệ nhƣ sau: LNAME, FNAME(SALARY>C (EMPLOYEE)) Sau tối ƣu truy vấn chọn phƣơng án thực cho khối Chú ý ví dụ khối cần thực lần để đƣa lƣơng lớn nhất, sau khối sử dụng lƣơng lớn nhƣ số c Truy vấn gọi truy vấn lồng không liên kết Việc tối ƣu truy vấn lồng liên kết khó khăn nhiều [1, 5] 1.2 Các thuật toán thực phép toán truy vấn Một hệ quản trị sở liệu (RDBMS) phải có thuật tốn để thực kiểu phép tốn quan hệ khác xuất chiến lƣợc thực truy vấn Các phép toán bao gồm phép toán đại số quan hệ mở rộng, tổ hợp phép toán Với phép toán (hoặc tổ hợp phép tốn) nhƣ thế, thƣờng phải có sẵn nhiều thuật tốn để thực [1, 5, 6, 8] 1.2.1 Sắp xếp Sắp xếp thuật toán đƣợc sử dụng xử lý truy vấn Ví dụ, truy vấn SQL mệnh đề Order by, kết truy vấn phải đƣợc xếp Sắp xếp phận then chốt thuật toán đƣợc sử dụng cho phép nối (Join) phép toán khác nhƣ phép hợp (Union), phép giao (Intersection) thuật toán loại bỏ ghi trùng phép chiếu (Project) truy vấn SQL tuỳ chọn Distinct mệnh đề Select Sắp xếp ngồi đề cập đến thuật tốn xếp phù hợp với file lớn đƣợc lƣu trữ đĩa mà khơng xếp vào nhớ chính, ví dụ hầu hết file sở liệu Thuật tốn xếp ngồi thƣờng sử dụng chiến lƣợc xếp trộn, bắt đầu việc xếp file nhỏ, gọi run, file sau trộn run đƣợc xếp tạo nên file lớn file lại đƣợc trộn với Giống nhƣ thuật tốn khác, thuật tốn xếp trộn địi hỏi khơng gian phịng đợi (buffer space) nhớ chính, việc xếp trộn run đƣợc thực Thuật toán đƣợc đƣa hình 1.2 gồm hai giai đoạn: (1) giai đoạn xếp, (2) giai đoạn trộn Trong giai đoạn xếp, run file đặt vừa vào đệm có sẵn đƣợc đọc vào nhớ đƣợc xếp cách dùng thuật toán xếp đƣợc ghi trở lại vào đĩa nhƣ file đƣợc xếp tạm thời Kích cỡ run số lƣợng run ban đầu (n R) đƣợc khối file (b) khơng gian phịng đợi có sẵn (nB) Ví dụ: nB=5 khối b=1024 khối nR=(b/nB) 205 run ban đầu Mỗi run có cỡ khối (ngoại trừ run cuối có khối) Vì vậy, sau pha xếp, 205 run đƣợc xếp nhƣ file đĩa [1,6] set i  1; j  b; kN ; m  (j/k); while (i T2), Y(T2 -> T1) Y,Z Y Chu trình 2: X (T1 -> T2), YZ(T2 -> T3), T3 Y(T3 -> T1) (e) T1 X,Y T2 Lịch biểu có thứ tự tương đương: Y T3 -> T1 -> T2 Y,Z T3 (f) T2 T1 Lịch biểu có thứ tự tương đương: T3 -> T1 -> T2 76 T3 T3 -> T2 -> T1 2.5.3 Sử dụng tính thứ tự Một lịch biểu theo thứ tự xung đột khác so với lịch biểu có thứ tự, nhiên lịch biểu theo thứ tự thể việc xử lý khơng hiệu khơng cho phép có đan xen thao tác từ giao tác khác Điều dẫn tới hiệu sử dụng CPU thấp giao tác thực thao tác I/O, chờ giao tác khác kết thúc làm chậm việc xử lý Một lịch biểu theo thứ tự xung đột có lợi thực thi đồng thời nhƣng đảm bảo tính đắn Việc đan xen thao tác từ giao tác đồng thời đƣợc xác định lập lịch hệ điều hành Bộ lập lịch hệ điều hành định rõ nguồn tài nguyên cho tất trình Các nhân tố nhƣ hệ thống, thời gian xem xét giao tác, quyền ƣu tiên q trình góp phần vào thứ tự thao tác lịch biểu Do đó, khó xác định làm để thao tác lịch biểu đƣợc xen kẽ trƣớc đảm bảo thứ tự xung đột Vấn đề giao tác đƣợc chấp nhận cách liên tục lên hệ thống, khó xác định đƣợc lịch biểu đƣợc bắt đầu kết thúc Tính đƣợc áp dụng để giải vấn đề việc xem xét phƣơng án xác nhận lịch biểu S Phƣơng án xác nhận C(S) lịch biểu S bao gồm thao tác S thuộc giao tác xác nhận Nhƣ định nghĩa lịch biểu S đƣợc xem có thứ 77 tự xung đột phƣơng án xác nhận C(S) S tƣơng đƣơng với số lịch biểu theo thứ tự, giao tác xác nhận đƣợc DBMS đảm bảo 2.5.4 Tương đương khung nhìn trật tự khung nhìn Hai lịch biểu S S‟ đƣợc gọi tƣơng đƣơng khung nhìn thoả mãn điều kiện sau [1, 4, 6]: Hai lịch biểu có tập giao tác chúng bao gồm thao tác giao tác Đối với thao tác ri(X) Ti S, đọc giá trị X đầu tiên, đọc giá trị X đƣợc ghi thao tác w j(X) Tj Nếu thao tác wk(Y) Tk thao tác cuối ghi mục Y S, wk(Y) Tk phải thao tác cuối ghi mục Y S‟ Tƣơng đƣơng khung nhìn thao tác “read” giao tác cho kết giống thao tác “write” trƣớc phải đƣa kết giống Do thao tác đọc đƣợc coi tƣơng đƣơng khung nhìn Điều kiện đảm bảo thao tác ghi cuối mục liệu nhƣ lịch biểu, trạng thái sở liệu nhƣ thời điểm kết thúc lịch biểu Một lịch biểu S theo thứ tự khung nhìn khung nhìn tƣơng đƣơng với lịch biểu có thứ tự Các định nghĩa thứ tự xung đột thứ tự khung nhìn tƣơng tự thao tác “write” bị ràng buộc toàn giao tác lịch biểu Tính tốn giá trị X hàm f(X) dựa vào giá trị cũ X đƣợc đọc từ sở liệu Tuy nhiên, định nghĩa thứ tự khung nhìn khắt khe so với thứ tự xung đột thao tác “write” khơng bị ràng buộc độc lập với giá trị cũ từ sở liệu Đây đƣợc gọi thao tác ghi ẩn, đƣợc minh họa lịch biểu Sg dƣới giao tác T1: r1(X); w1(X); T2: w2(X); T3: w3(X): Sg: r1(X); w2(X); w1(X); w3(X); c1; c2; c3; 78 Lịch biểu Sg theo thứ tự khung nhìn, tƣơng đƣơng khung nhìn với lịch biểu chứa T1, T2, T3 Tuy nhiên Sg khơng theo thứ tự xung đột, khơng tƣơng đƣơng xung đột với lịch biểu có thứ tự Nhƣ lịch biểu theo thứ tự xung đột theo thứ tự khung nhìn nhƣng ngƣợc lại khơng đúng, nhƣ ví dụ 2.5.5 Các kiểu tương đương khác lịch biểu Thứ tự lịch biểu đƣợc xem cứng nhắc để đảm bảo xác việc thực thi đồng thời Một số ứng dụng đƣa lịch biểu mà thỏa mãn điều kiện khắt khe so với thứ tự xung đột thứ tự khung nhìn Ví dụ giao tác áp dụng để gửi tiền rút tiền với giá trị số dƣ tài khoản ngân hàng Ý nghĩa thao tác nợ - có cập nhật trừ thêm vào giá trị liệu Bởi phép cộng trừ giao hốn nên đƣa lịch biểu mà chúng không theo thứ tự Xét giao tác sau, giao tác đƣợc sử dụng để chuyển lƣợng tiền tài khoản: T1: r1(X); X:=X-10; w1(X); r1(Y); Y:=Y+10; w1(Y); T2: r2(Y); Y:=Y-20; w2(Y); r2(X); X:=X+20; w2(X); Và lịch biểu không theo thứ tự Sh giao tác sau: Sh: r1(X); w1(X); r2(Y); w2(Y); r1(Y); w1(Y); r2(X); w2(X); Thứ tự thực thi thao tác không quan trọng miễn thao tác (đọc, cập nhật, ghi) đƣợc thực liên tiếp giao tác đặc biệt Ti mục riêng biệt I mà không bị gián đoạn thao tác xung đột Do đó, lịch biểu Sh đƣợc xem chí khơng theo thứ tự [6] 2.6 Tổng kết Trong chƣơng trình bầy việc xử lý giao tác Đó khái niệm giao tác sở liệu thao tác liên quan đến xử lý giao tác Và so sánh hệ thống đơn ngƣời dùng với hệ thống đa ngƣời dùng, sau đƣa ví dụ việc làm để thực thi giao tác đồng thời hệ thống đa ngƣời dùng dẫn đến kết giá trị sở liệu 79 xác Đồng thời trình bầy kiểu lỗi khác xảy thực thi giao tác Sau giới thiệu trạng thái mà giao tác phải có thực thi, thảo luận số khái niệm đƣợc sử dụng khôi phục phƣơng pháp điều khiển đồng thời File log hệ thống lƣu vết lần truy nhập sở liệu, hệ thống sử dụng thông tin đề khôi phục gặp lỗi Một giao tác tiếp tục tiến tới điểm xác nhận gặp lỗi phải khơi phục lại sau Một giao tác xác nhận có thay đổi đƣợc ghi sở liệu Và nhìn tổng quan tính chất mong muốn giao tác Tiếp định nghĩa lịch biểu nhƣ thứ tự thực thi thao tác số giao tác với khả xen kẽ miêu tả đặc tính lịch biểu Định nghĩa tƣơng đƣơng lịch biểu nhƣ khái niệm tƣơng đƣơng xung đột tƣơng đƣơng khung nhìn 80 KẾT LUẬN Trong luận văn này, với mục đích nghiên cứu xử lý truy vấn quản lý giao tác, chúng tơi hồn thành phần việc sau: Tìm hiểu kiến thức sở liệu Nghiên cứu sâu xử lý truy vấn quản lý giao tác Tìm hiểu ngơn ngữ SQL để sử dụng cho ví dụ minh hoạ Nhƣ trình bầy luận văn, thực truy vấn thực loạt thao tác sở liệu để lấy thơng tin cần thiết Trong q trình thực cần sử dụng số thuật toán nhƣ xếp, thực thi phép chiếu, phép chọn, phép nối Nếu phép tốn khơng đƣợc sử dụng tốt dẫn đến tốn nhiều thời gian xử lý không gian lƣu trữ Để khắc phục đƣợc hạn chế trƣớc hết cần nghiên cứu kỹ sở liệu để đƣa định xem truy vấn nên đƣợc tối ƣu hoá kinh nghiệm hay sử dụng hàm giá tối ƣu nghữ nghĩa Hệ thống đa ngƣời dùng cho phép nhiều ngƣời truy cập đến sở liệu Đây ƣu điểm, song nhƣợc điểm có giao tác thực xen kẽ truy nhập đến khoản mục liệu dẫn đến kết khơng xác Để khắc phục điều cần thiết phải có điều khiển đồng thời giao tác Lịch biểu tƣơng đƣơng khung nhìn, tƣơng đƣơng xung đột, cho kết Những trình bầy luận văn nhỏ khả cịn hạn chế nên chúng tơi khơng tránh khỏ sai sót Mong đƣợc thầy bạn bè đóng góp ý kiến để luận văn đƣợc hoàn thiện Trong thời gian tới, chúng tơi tiếp tục nghiên cứu hồn thiện để có đƣợc ứng dụng cụ thể sử dụng thực tế 81 TÀI LIỆU THAM KHẢO Tài liệu tiếng Việt: [1] Nguyễn Kim Anh, Nguyên lý hệ sở liệu, NXB ĐH Quốc Gia Hà Nội, 2004 [2] Trần Tiến Dũng, Giáo trình lý thuyết thực hành ORACLE, NXB Giáo Dục, 2000 [3] Phạm Hữu Khang, SQL Server 2000, NXB Giáo Dục, 2002 [4] Trần Đức Quang, Hồ Thuần, Nguyên lý hệ sở liệu sở tri thức, NXB Thống Kê, 1998 [5] Lê Tiến Vƣơng, Nhập môn sở liệu quan hệ, NXB Khoa Học Kỹ Thuật, 1996 Tài liệu tiếng Anh: [6] Elmasri, Navathe, Fundamentals of Database systems [7] Jarke, M and J.Koch (1984) Query optimization in database systems, Computing surveys 16:2,pp.1 11-152 [8] Keller, A (1985), Algorithms for transtating view updates into database for view involving selections, projections and joins, Pro., Fourth ACM Symp on Principles of Database Systems, pp 154163 [9] Swami, A and A Gupta (1988), Optimizing large join queries, ACM SIGMOD Intl Conf on Management of Data, pp 8-17 82

Ngày đăng: 23/09/2020, 21:42

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w