xử lý và tối ưu câu truy vấn

32 1.2K 18
xử lý và tối ưu câu truy vấ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

GT CSDL – Chương Xử lý tối ưu câu truy vấn CHƯƠNG XỬ LÝ VÀ TỐI ƯU CÂU TRUY VẤN Mục đích Trình bày bước xử lý câu truy vấn, tối ưu logic câu truy vấn tối ưu vật lý câu truy vấn Yêu cầu Sinh viên nắm kỹ thuật tối ưu câu truy vấn vận dụng thực truy vấn liệu SQL Server có ý thức tối ưu q trình câu truy vấn liệu khai phá liệu Quá trình xử lý tối ưu câu truy vấn Khi nhận câu hỏi người dùng, xử lí câu hỏi trước hết kiểm tra xem câu hỏi có viết cú pháp hay khơng, quan hệ thuộc tính câu hỏi có CSDL hay khơng Tiếp đó, câu hỏi chấp nhận, phương án thực thi (execution plan) cho câu hỏi phát sinh Một phương án thực thi câu hỏi xác định dãy bước cho việc định giá câu hỏi, bước ứng với phép toán đại số quan hệ với giải phương pháp dùng để định giá phép tốn Chẳng hạn, phép kết nối định giá phương pháp lặp lồng, xếp trộn, kết nối băm… Mục đích tối ưu hóa câu hỏi tìm phương án thực thi số tất phương án tương đương (theo nghĩa ln cho kết quả), có, định giá với chi phí nhỏ Trong hệ CSDL tập trung, chi phí cho việc định giá câu hỏi tổng chi phí nhỏ Trong hệ CSDL tập trung, chi phí cho việc định giá câu hỏi tổng chi phí I/O chi phí CPU Chi phí I/O (Vào/ra) việc truyền liệu nhớ nhớ thứ cấp (thường đĩa từ) phần lớn ứng dụng, liệu thường lớn chứa hết nhớ Với phần lớn thao tác CSDL, chi phí I/O chi phí có tính chi phối Để giảm chi phí I/O thường phải sử dụng cấu trúc liệu đặc biệt, B+ chẳng hạn Hình rõ bước khác việc xử lí câu hỏi viết ngôn ngữ hỏi bậc cao, chẳng hạn SQL NTD – Khoa Tin – ĐHSP Huế GT CSDL – Chương Xử lý tối ưu câu truy vấn SQL Query Parse query Query expression tree Select logical query plan Query optimization Logical query plan tree Select physical plan Physical query plan tree Execute plan Query Parse Parse tree Answer Convert Logical query plan Execute statistic s Apply laws Improve logical query plan Pi Pick the best Estimate result sizes {(P1, C1), (P2,C2) … } Estimate costs Logical query plan + sizes Consider physical plans {P1, P2, … } Hình NTD – Khoa Tin – ĐHSP Huế GT CSDL – Chương Xử lý tối ưu câu truy vấn Nói chung, số phương án thực thi tương đương câu hỏi cho trước lớn phụ thuộc vào số m phép toán (thao tác) câu hỏi số k phương pháp khác dùng để định giá phép tốn Khi đó, số phương án thực thi lên tới (m!).k.m Tập tất phương án thực thi tương đương khơng gian tìm kiếm cho tối ưu hóa câu hỏi Vì vậy, tốn tìm phương án thực thi tối ưu (tốt nhất) tốn khó, tốn nhiều thời gian, địi hỏi phải biết thơng tin tệp cài đặt sao, chí cần biết nội dung tệp Đó thơng tin thường khơng có sẵn đầy đủ thư mục hệ quản trị sở liệu (hệ QTCSDL) Do đó, tối ưu hóa câu hỏi nhiều trường hợp hiểu tìm phương án thực thi câu hỏi tương đối hiệu quả, gần với tối ưu Xét ví dụ sau, cho hai lược đồ quan hệ R(AB) S(CD) Giả sử ta có yêu cầu sau: “Đưa thuộc tính A thoả mãn điều kiện B=C D=100” Câu hỏi viết dạng ngôn ngữ đại số quan hệ sau: πA(σB=C and D=100(R × S)) Nếu đưa phép chọn D=100 vào bên phép tích Đề - các, được: πA(σB=C(R × σD=100(S))) sau chuyển phép chọn σB=C tích Đề - thành phép kết nối được: π A ( R  D =100 ( S ) σ B =C Có thể cịn nhiều cách khác nữa, vậy, câu hỏi có nhiều cách thực Vấn đề đặt là: Cần phải thao tác để giảm chi phí thời gian xử lý câu hỏi, đặc biệt cần thiết giảm đến mức truy xuất ngồi (tức thao tác với nhớ thứ cấp băng đĩa từ) Rõ ràng phép tính cuối đỡ tốn thời gian nhiều Cụ thể chọn quan hệ S có giá trị D = 100 số lấy toàn số quạn hệ S Số chọn xong từ S đem kết nối với quan hệ R Phép kết nối chọn thuộc R mà có giá trị B có giá trị C lấy Như chi phí thực tốt lấy tích Đề - R × S , chọn kết có giá trị B giá trị C Qua ví dụ đơn giản đủ thấy tối ưu hóa cần thiết Q trình tối ưu hóa câu hỏi thường chia làm hai pha: tối ưu hóa logic tối ưu hóa vật lí Tối ưu hóa logic cho phép viết lại câu hỏi dạng chuẩn tắc đơn giản tối ưu hóa mặt logic, cóc nghĩa khơng tính tới chi phí truy cập liệu Tối ưu hóa vật lí thực chọn thuật tốn tốt cho tốn tử mức thấp có tính tới kích thước liệu đường truy cập sẵn có Tối ưu hóa logic thực mức đại số quan hệ, tối ưu hóa vật lí cho phép, nói riêng, thiết lập giải Tối ưu hóa vật lí cần tới mơ hình chi phí để NTD – Khoa Tin – ĐHSP Huế GT CSDL – Chương Xử lý tối ưu câu truy vấn ước lượng chi phí phương án thực thi nhằm chọn phương án tối ưu hay gần tối ưu Phần lại chương tổ chức sau: Mục 2: Trình bày mục tiêu tối ưu hóa Mục Dành cho việc nghiên cứu phương pháp tối ưu hóa logic nhằm tìm câu hỏi đơn giản tương đương với câu hỏi cho sử dụng phương pháp heuristic cấu trúc lại đại số để xây dựng dạng chuẩn tắc Mục Nghiên cứu thuật tốn khác truy cập vật lí tới liệu bao gồm phép chọn, phép chiếu, phép kết nối Mục Mơ tả mơ hình chi phí Cuối tóm lược chương Một số phần chương trích dẫn [1] Các mục tiêu tối ưu hóa 2.1 Câu hỏi tĩnh câu hỏi động Trước hết tối ưu hóa cần phân biệt hai loại câu hỏi Câu hỏi tĩnh (Static query): câu hỏi SQL thường tích hợp vào chương trình ứng dụng mã lệnh thực biết cố định, thường thực nhiều lần Loại câu hỏi đáng tối ưu hóa việc tối ưu hóa thực lần biên dịch chương trình có chứa câu hỏi, để sau thực hàng nghìn, hàng vạn lần Câu hỏi SQL tham số hóa, giá trị truyền biến chương trình Vì vậy, tối ưu hóa phải có khả tối ưu hóa câu hỏi tham số hóa, chẳng hạn tân từ SO_LUONG = $x, x biến chương trình Câu hỏi động (Dynamic query): câu hỏi SQL thường thiết lập theo kiểu tương tác (trực tuyến) với mã trước, thường thực lần Với loại câu hỏi này, khơng nên tốn q nhiều thời gian vào việc tìm phương án thực thi tối ưu gần tối ưu câu hỏi thực lần thời gian để xử lí câu hỏi tổng thời gian tìm phương án tối ưu thời gian thực thi phương án 2.2 Phân tích câu hỏi Như rõ hình 1, đầu câu hỏi phân tích mặt cú pháp, kiểm tra tên quan hệ thuộc tính câu hỏi có lược đồ CSDL khơng, phân tích tính đắn điều kiện câu hỏi Tiếp đến, câu hỏi biến đổi dạng chuẩn tắc, dạng chuẩn hội hay chuẩn tuyển Từ câu hỏi phân tích, phần lớn hệ thống tạo sinh phép toán đại số quan hệ (chiếu, chọn, kết nối, hợp, hiệu, giao), mở rộng với phép tốn gộp phép xếp, gọi đại số hay quan hệ (đơi cịn gọi xử lí (processing tree)) Như vậy, đại số nhị phân biểu diễn câu hỏi nút biểu diễn quan hệ, nút trung gian biểu diễn phép toán đại số quan hệ, nút gốc biểu diễn kết câu hỏi, cung biểu diễn dòng liệu phép toán NTD – Khoa Tin – ĐHSP Huế GT CSDL – Chương Xử lý tối ưu câu truy vấn Cây đại số quan hệ tương tự nhị phân biểu diễn biểu thức mà bạn học phần cấu trúc nhị phân môn học Cấu trúc liệu Giải thuật Từ đại số, tạo sinh phương án thực thi cách dọc theo cây, từ tới gốc Một phép toán thực theo kiểu hướng tập (set oriented execution) bao gồm việc tính tập tất quan hệ đầu vào toán từ trước định giá tốn tử Như vậy, phép tốn O1 khơng dùng kết phép tốn O phép tốn O1 O2 thực song song Kiểu thực thích hợp cho thuật tốn có khả làm việc hiệu tập (trên sở phép xếp chẳng hạn) Một phép tốn thực theo kiểu hay kiểu đường ống (pipeline execution) Cụ thể khởi động phép tốn sớm có thể, có cho tốn hạng Đối với phép tốn ngơi, cần có đủ Như vậy, thực hai phép chọn liên kiểu đường ống, có nghĩa bắt đầu thực phép chọn thứ hai có (hay trang gồm số bộ) sinh phép chọn thứ Các phép tốn hai ngơi, phép hiệu r – s chẳng hạn, bắt đầu sau tính đầy đủ tốn hạng s Như vậy, kiểu đường ống có khả thực toán hạng 2.3 Các chức tối ưu hóa Bộ tối ưu hóa có mục tiêu tìm phương án thực thi tối ưu hóa Có thể định nghĩa phương án thực thi chương trình (có thể song song), phép tốn sơ cấp phải thực để định giá câu trả lời cho câu hỏi, thường thực làm hai giai đoạn: viết lại (rewriting) lên phương án (planning) Viết lại giai đoạn tối ưu hóa bao gồm biến đổi câu hỏi mặt logic để có biểu diễn chuẩn tắc Giai đoạn chứa đựng khía cạnh ngữ nghĩa tính tới ràng buộc tồn vẹn khía cạnh cú pháp, đưa điều kiện câu hỏi dạng chuẩn (hội hay chuyển) gán cho toán tử đại số thứ tự cố định Lên phương án giai đoạn tối ưu hóa bao gồm việc xếp lại toán tử đại số (đã thực giai đoạn viết lại), chọn thuật toán kiểu thực (hướng tập hay đường ống) Như giai đoạn viết lại tạo logic, giai đoạn lên phương án bổ sung giải để có phương án thực thi Đương nhiên, ta tìm cách tối ưu hóa thời gian trả lời, có nghĩa làm cực tiểu thời gian cần thiết cho việc thực thi câu hỏi Vấn tạo sinh tối ưu chọn thuật toán tốt để thực toán tử đại số xét toàn thể Muốn vậy, phải tối ưu hóa đồng thời: - Số vào/ra - Sự song song toán tử - Thời gian tính cần thiết (thời gian CPU) NTD – Khoa Tin – ĐHSP Huế GT CSDL – Chương Xử lý tối ưu câu truy vấn Việc tối ưu hóa thực phụ thuộc nói riêng vào thứ tự phép toán đại số dùng thuật tốn giữ lại Do đó, điều quan trọng thiết lập quy tắc cho phép từ ban đầu phát sinh tất phương án có thể, để sau chọn phương án với chi phí nhỏ Thực lớn, nên ta thường phải định nghĩa quy tắc heuristic để xác định gần tối ưu Tối ưu hóa logic hay phép viết lại Phép viết lại cho phép thu biểu diễn chuẩn tắc câu hỏi, dạng đại số phép tốn thứ tự điều kiện viết dạng chuẩn Phép viết lại bao gồm phép viết lại ngữ nghĩa phép viết lại cú pháp 3.1 Phân tích viết lại ngữ nghĩa Loại phân tích nhằm xác định tính đắn câu hỏi, tìm câu hỏi tương đương sở thao tác điều kiện câu hỏi nhờ vào ràng buộc tồn vẹn Để thực việc phân tích ngữ nghĩa câu hỏi, dùng đồ thị liên kết quan hệ (Relation connection graph), đồ thị kết nối, đồ thị liên kết thuộc tính (Attribute connection graph) Đồ thị liên kết quan hệ đồ thị đó: Một đỉnh kết hợp với xuất quan hệ Một phép kết nối biểu diễn cung giữ hai nút biểu diễn quan hệ kết nối Một phép chọn biểu diễn khuyên nút ứng với quan hệ phép chọn áp dụng Phép chiếu cuối biểu diễn cung từ nút quan hệ tới nút đặc biệt nút kết Đồ thị kết nối đồ thị liên kết quan hệ giữ lại nút cung biểu diễn phép kết nối chúng Đồ thị liên kết thuộc tính đồ thị đó: Một đỉnh kết hợp với thuộc tính hay tham chiếu (hay dẫn trỏ) Một phép kết nối biểu diễn cung thuộc tính tham gia Một phép chọn biểu diễn cung thuộc tính Đồ thị liên kết thuộc tính cho phép phát điều kiện câu hỏi có chứa mâu thuẫn, có chứa chu trình khơng thỏa mãn Nó cho phép phát câu hỏi tương đương với câu hỏi cho nhờ tính bắc cầu Hai hình vẽ theo thứ tự đồ thị liên kết quan hệ đồ thị liên kết thuộc tính câu hỏi nói ví dụ có biểu diễn SQL sau SELECT A FROM R, S WHERE R.B=S.C AND S.D=100 NTD – Khoa Tin – ĐHSP Huế GT CSDL – Chương Xử lý tối ưu câu truy vấn R S.D=100 S R.B=S.C A k q R S B D = 10 = S R R C B B Bây ta nói tính đắn câu hỏi Có thể phân biệt hai loại câu hỏi khơng đắn sau: Một câu hỏi phát biểu khơng chỉnh câu hỏi có chứa phần vơ ích: người viết câu hỏi rõ ràng quên phép kết nối câu hỏi Một câu hỏi chứa đựng mâu thuẫn khơng có thỏa được, với câu hỏi “Tìm số hiệu nhà cung cấp có cung cấp mặt hàng P2 với số lượng lớn 40 nhỏ 20” Sau hai kết quan trọng cho phép loại bỏ câu hỏi không đắn, trường hợp câu hỏi hội (khơng có phép hay là) với toán tử so sánh =, , ≤, ≥ a Một câu hỏi thường phát biểu không chỉnh đồ thị liên kết quan hệ khơng liên thơng [4] Thực vậy, đồ thị không nối với nút kết khơng tham gia vào kết b Một câu hỏi mâu thuẫn đồ thị liên kết thuộc tính bổ sung thêm cung so sánh tạo chu trình khơng thỏa [4] Thực vậy, khơng có thỏa tân từ chu trình, kiểu SO_LUONG < 20 SO_LUONG>40 Nhớ kỹ sư lập trình câu hỏi truy vấn mà người sử dụng nghiệp dư người truy vấn liệu kỹ sư lập trình có nhiệm vụ phân tích câu hỏi trước cho thực thi! Trong phần sau thấy vai trò đồ thị nói q trình cài đặt tối ưu câu truy vấn lớn 3.1.1 Các câu hỏi tương đương bắc cầu Trước hết ta cho định nghĩa xác câu hỏi tương đương (Equivalent queries) Định nghĩa NTD – Khoa Tin – ĐHSP Huế GT CSDL – Chương Xử lý tối ưu câu truy vấn Hai câu hỏi tương đương chúng cho kết với thể (ngoại diên) sở liệu Từ việc nghiên cứu đồ thị liên kết thuộc tính phát câu hỏi tương đương Thực vậy, cặp thuộc tính (A i, Bj) nối với đường từ A i tới Bj mà cạnh đường có nhãn đẳng thức, tính bắc cầu, phải có A i = Bj Khi chẳng hạn đồ thị liên kết ban đầu, thay đồ thị ta thu câu hỏi tương đương 6.3.1.2 Các câu hỏi tương đương suy từ ràng buộc toàn vẹn Một cách khác để tạo sinh câu hỏi tương đương sử dụng ràng buộc toàn vẹn [2,3] Bài toán đặt sau Cho câu hỏi thỏa điều kiện Q tập ràng buộc toàn vẹn I1, I2,…In Nếu Q mâu thuẫn với ràng buộc Ii, câu hỏi có câu trả lời rỗng Ngược lại, cần định giá điều kiện Q’ (đơn giản Q) cho: I1 ∧ I2 ∧… ∧In ∧ Q’→Q (Các kiến thức biểu diễn tri thức Trí tuệ nhân tạo giúp bạn Q’ đơn giản Q, I1 ∧ I2 ∧… ∧In∧ Q’→Q … gì) Ta minh họa phép biến đổi ngữ nghĩa qua số ví dụ đơn giản Xét sở liệu việc cung cấp hàng hóa, gồm quan hệ sau: S(S#, SNAME, CITY, STATUS) P(P#, PNAME, COLOR, ADDR, WEIGHT) SP(S#, P#, QTY) Với S#, P# mã số nhà cung cấp hàng hóa hàng hóa SNAME, PNAME lần lược tên nhà cung cấp tên mặt hàng CITY địa nhà cung cấp ADDR địa lưu trữ mặt hàng Trước hết xét biểu thức sau: ΠP# (SP  S) Phép kết nối phép kết nối tự nhiên thuộc tính S# thuộc tính chung hai quan hệ S SP Mặt khác S# khóa ngoại quan hệ SP khóa quan hệ S, suy quan hệ SP kết nối với quan hệ S đóng góp giá trị S# vào kết cuối Nói cách khác, nhờ vào ràng buộc toàn vẹn ta thấy biểu thức trên, phép kết nối không cần thiết biểu thức cho tương đương với biểu thức ΠP#(SP) Giả sử CSDL cung cấp hàng hóa ta thỏa ràng buộc “mọi mặt hàng màu đỏ phải lưu trữ Huế” Khi câu hỏi khác phức tạp như: “Tìm nhà cung cấp cung cấp mặt hàng màu đỏ có địa thành phố mặt hàng NTD – Khoa Tin – ĐHSP Huế GT CSDL – Chương Xử lý tối ưu câu truy vấn cung cấp” biến đổi thành câu hỏi tương đương đơn giản hơn: “Tìm nhà cung cấp Huế cung cấp mặt hàng màu đỏ” Gần đây, tối ưu hóa ngữ nghĩa phát triển ngữ cảnh hệ CSDL hướng đối tượng sematic web Các ràng buộc tương đương, kéo theo, tính khóa, ràng buộc bao hàm đặc biệt hữu ích để biến đổi làm đơn giản câu hỏi 3.2 Viết lại cú pháp cấu trúc lại đại số Đây kỹ thuật sở nhằm biến đổi đại số thay đổi thứ tự thưc phép tốn, dựa tính giao hóan kết hợp phép toán đại số quan hệ 3.2.1 Biểu thức tương đương Trong phần ta xem quan hệ tập ánh xạ từ tập thuộc tính U lên miền giá trị D (xem lại phần định nghĩa CSDL quan hệ - chương mơ hình CSDL quan hệ) Lúc biểu thức đại số quan hệ có hạng thức biến quan hệ R 1, R2 , ,Rn, quan hệ xác định từ k - quan hệ (r 1,r2, ,rn) ri quan hệ lược đồ Ri thay ri vào Ri đánh giá biểu thức Hai biểu thức E1 E2 gọi tương đương viết tắt E1≡E2 chúng biểu diễn ánh xạ, nghĩa thay quan hệ cho tên lược đồ tương ứng hai biểu thức cho kết Với cách hiểu tương đương ta đưa số qui tắc chuyển dịch đại số quan hệ thông thường sau 3.2.2 Các qui tắc liên quan tới phép kết nối phép tích Đề-các (1) Quy tắc giao hoán phép nối phép tích Đề - Với E1 E2 hai biểu thức quan hệ F biểu thức điều kiện E1 2 ≡ E 1 E E F F E1 ∗ E ≡ E ∗ E1 E1 × E ≡ E × E1 Lưu ý: Nếu hiểu quan hệ tập phép kết nối, phép tích Đề-các, phép kết nối tự nhiên khơng có tính giao hố, thứ tự thuộc tính quan hệ kết bị thay đổi (2) Quy tắc kết hợp phép kết nối phép tích Đề - (E1 2 ) 3 ≡ E1  3 ) E E (E E F F2 F F2 ( E1 ∗ E ) ∗ E ≡ E1 ∗ ( E ∗ E3 ) ( E1 × E ) × E3 ≡ E1 × ( E × E3 ) Các qui tắc liên quan đến phép chọn chiếu (3) Dãy phép chiếu Nếu dãy thuộc tính A1, ,An nằm dãy thuộc tính B1, ,Bm thì: Π A1 A2 ⋅⋅⋅ An (Π B B 2⋅⋅⋅ Bm NTD – Khoa Tin – ĐHSP Huế ( E )) ≡ Π A1 A2⋅⋅⋅ An ( E ) GT CSDL – Chương Xử lý tối ưu câu truy vấn (4) Dãy phép chọn σ F1 (σ F2 (Ε)) ≡ σ F1 ∧F2 (Ε) (5) Giao hoán phép chọn phép chiếu σ F (Π A1 A2⋅⋅⋅ An ( E )) ≡ Π AA2⋅⋅⋅ An1 (σ F ( E )) Nếu F liên quan đến thuộc tính B 1, ,Bm khơng nằm A1, ,An thì: Π A1 A Anσ F (Π A1 A2⋅⋅⋅ An B1 Bm ( E )) ≡ Π AA2⋅⋅⋅ An1 (σ F ( E )) (6) Giao hốn phép chọn phép tích Đề - Nếu tất thuộc tính F thuộc tính E1 thì: σ F ( E1 × E ) ≡ σ F ( E1 ) × E Nếu F = F1 ∧ F2 , với F1 liên quan với E1 F2 liên quan với E2, ta có σ F ( E × E ) ≡ σ F1 ( E1 ) × σ F2 ( E ) Nếu F1 liên quan với E1, F2 liên quan với E1 E2 σ F ( E × E ) ≡ σ F2 (σ F1 ( E ) × E ) (7) Giao hoán phép chọn phép hợp σ F ( E1 ∪ E ) ≡ σ F ( E1 ) ∪ σ F ( E ) (8) Giao hoán phép chọn phép hiệu σ F ( E1 − E ) ≡ σ F ( E1 ) − σ F ( E ) (9) Giao hoán phép chọn kết nối tự nhiên σ F ( E1 * E ) ≡ σ F ( E1 ) * σ F ( E ) (10) Giao hoán phép chiếu phép tích Đề A1, ,An tập thuộc tính bao gồm B1, ,Bm E1 C1, ,Ck E2 Π A1 ⋅⋅⋅ An ( E1 × E ) ≡ Π B1 ⋅⋅⋅Bm ( E1 ) × Π C1 ⋅⋅⋅Ck ( E ) (11) Giao hoán phép chiếu với phép hợp Π A1 ⋅⋅⋅ An ( E1 ∪ E ) ≡ Π A ⋅⋅⋅ A ( E1 ) ∪ Π A ⋅⋅⋅ A ( E ) n n Lưu ý phép chọn với phép giao; phép chiếu với phép hiệu lại khơng có tính giao hốn, cho phản ví du Phép chứng minh qui tắc tham khảo [5] 3.2.3 Tối ưu hóa sở đại số Sau chiến lược tối ưu hoá câu hỏi tổng quát [5] - Thực phép chọn sớm tốt Việc làm nhằm làm giảm số tham gia vào biểu thức, làm giảm kích cỡ kết trung gian, phí truy cập nhớ, lưu trữ - Tổ hợp số phép chọn với tích Đề - thành phép kết nối NTD – Khoa Tin – ĐHSP Huế 10 GT CSDL – Chương Xử lý tối ưu câu truy vấn Q4 Select TTU-TOA From TAU Where (TAU.TTU-TAU=’TN1’)or (TAU.TTU-TAU=’TN3’)or (TAU.TTU-TAU=’TN5’) 3.4 Dùng phép nửa nối để giảm kích thước quan hệ Nhắc lại định nghĩa phép nửa nối Định nghĩa: Cho hai quan hệ r xây dựng R(U1)và s S(U2) Phép nửa nối r s, ký hiệu r < s quan hệ lược đồ R gồm phép kết nối tự nhiên r*s chiếu lên R Tức là: r < s = {t: t∈ r ∗ s R} Hơn ta thấy: r < s= r *(s.R∩S) Như muốn liên kết hai quan hệ r, s quan hệ kết cần giữ lại thuộc tính r Ta cần sử dụng phép nửa nối r s, khơng cần đến phép nối Vì làm giảm kích thước quan hệ tham gia vào phép kết nối nhằm tăng tốc độ thực Ví dụ Ta có CSDL quản lý việc sản xuất uống rượu gồm sau: Uống(Ten, NR,SL) với Ten: Tên người uống; NR: Số hiệu rượu; SL: Số lượng Sảnxuất( SX, TênSX, Vùng) với SX: Mã người sản xuất; TenSX: Tên người sản xuất; Vùng: khu vực sản xuất rượu Rượu(NR, tên rượu, năm, độ) với năm: Năm sản xuất Hàng(NR, SX) Giả sử có câu hỏi:"Tìm tên người uống rượu sản xuất vùng Đá Bạc vào năm 2000, độ rượu nhỏ 45 độ" Với SQL câu trả lời sau: SELECT Uống.Tên FROM Uống, Sảnxuất, rượu, hàng WHERE (Rượu.Năm=2000) xuất.Vùng='Đá Bạc') and and (Sản xuất.SX=Hàng.SX) (Hàng.NR=Uống.NR) (Rượu.độ

Ngày đăng: 01/07/2014, 12:28

Từ khóa liên quan

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

Tài liệu liên quan