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

Thiết kế cơ sở dữ liệu vật lý và những điều chỉnh thiết kế. Ths. Phạm Hoàng Nhung

45 2 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

Thiết kế sở liệu vật lý điều chỉnh thiết kế Thiết kế sở liệu vật lý điều chỉnh thiết kế Bởi: Ths Phạm Hoàng Nhung Cách DBMS thực thi truy vấn cập nhật thông thường thước đo cuối để đánh giá phần thiết kế sở liệu DBA cải thiện khả thực thi cách xác định nút cổ chai trình thực điều chỉnh vài tham số DBMS (ví dụ, kích thước buffer pool tần số checkpointing) thêm phần cứng để loại bỏ nút cổ chai Tuy nhiên, bước để đạt hiệu thực thi lựa chọn thiết kế sở liệu tốt, nội dung chương Sau thiết kế lược đồ khái niệm lược đồ ngoài, tức là, tạo tập quan hệ khung nhìn với tập ràng buộc tham chiếu, tiến hành thiết kế sở liệu vật lý qua việc thiết kế lược đồ vật lý Vì yêu cầu người dùng thường thay đổi nên phần thiết kế phải điều chỉnh thường xuyên Chương tổ chức sau Phần cung cấp tổng quan thiết kế sở liệu vật lý điều chỉnh Phần quan trọng thiết kế sở liệu vật lý lựa chọn mục Chúng tơi trình bày phần hướng dẫn lựa chọn mục Phần Những hướng dẫn minh hoạ thơng qua số ví dụ phát triển thêm Phần Phần xem xét xem vấn đề phân cụm quan trọng cách cẩn thận; tiếp đến chúng tơi trình bày cách chọn mục phân cụm trả lời câu hỏi có nên lưu trữ giá trị quan hệ khác nằm cạnh hay không (lựa chọn số DBMS hỗ trợ) Phần tập trung vào giải thích việc lựa chọn mục tốt thực số truy vấn mà khơng cần phải tìm kiếm phần liệu thực Phần bàn cơng cụ giúp DBA tự động lựa chọn mục Phần nghiên cứu vấn đề việc điều chỉnh sở liệu Để điều chỉnh mục, có lẽ phải điều chỉnh lược đồ khái niệm tần số sử dụng truy vấn việc định nghĩa khung nhìn Chúng tơi trình bày cách điều chỉnh truy vấn định nghĩa khung nhìn Phần Chúng tơi trình bày tóm tắt ảnh hưởng truy cập tương tranh Phần 10 Phần 11 minh hoạ việc điều chỉnh ví dụ cửa hàng Internet Chúng tổng kết chương việc trình bày tiêu chuẩn 1/45 Thiết kế sở liệu vật lý điều chỉnh thiết kế giúp đánh giá DBMS Phần 12; tiêu chuẩn hỗ trợ đánh giá khả thực thi DBMS Giới thiệu thiết kế sở liệu vật lý Giống tất phần thiết kế sở liệu khác, thiết kế vật lý phải định hướng yếu tố tự nhiên liệu chức mà người dùng mong muốn sử dụng Cụ thể, phải hiểu luồng cơng việc điển hình mà sở liệu phải hỗ trợ, luồng công việc bao gồm truy vấn cập nhật liệu Người dùng có số yêu cầu việc tốc độ thực truy vấn việc cập nhật phải thực thi có giao dịch phải xử lý giây Biểu diễn luồng công việc yêu cầu thực thi người dùng sở để tiến hành thiết kế sở liệu vật lý Xác định nút cổ chai: Tất hệ thống thương mại cung cấp công cụ phù hợp dùng để điều chỉnh tham số hệ thống Những cơng cụ giúp xác định nút cổ chai đề xuất khía cạnh liên quan đến thiết kế sở liệu phần chương trình ứng dụng cần thiết giúp điều chỉnh việc thực thi Ví dụ, u cầu DBMS giám sát q trình thực sở liệu khoảng thời gian báo số lượng cụm quét, số trỏ mở, yêu cầu khoá, checkpoints, số buffer quét, thời gian đợi trung bình khoá, nhiều thống kê khác Trong Oracle, báo cáo chứa thơng tin đưa cách chạy script gọi UTLBSTAT.SQL để khởi động việc giám sát script UTLBSTAT.SQL để dừng việc Danh mục hệ thống chứa thông tin chi tiết bảng, phân bố giá trị mục khóa Một kế hoạch mà DBMS đưa nhằm thực truy vấn nhìn thấy hình với giá ước lượng phép toán Tuỳ vào nhà cung cấp, thơng số chi tiết khác nhau, tất sản phẩm DBMS phổ biến thị trường ngày cung cấp cơng cụ nói Để tạo thiết kế sở liệu vật lý tốt điều chỉnh cho hệ thống thực phù hợp với yêu cầu nảy sinh người dùng, người thiết kế phải hiểu công việc DBMS, đặc biệt công nghệ xử lý truy vấn mục mà hỗ trợ Nếu sở liệu có nhiều người sử dụng đồng thời, sở liệu phân tán, cơng việc trở nên phức tạp Chúng tơi trình bày ảnh hưởng tương tranh việc thiết kế sở liệu Phần 10 sở liệu phân tán Chương 22 Luồng công việc sở liệu Chìa khố để thiết kế vật lý tốt phải có biểu diễn xác luồng cơng việc mong muốn Biểu diễn luồng công việc bao gồm: 2/45 Thiết kế sở liệu vật lý điều chỉnh thiết kế Danh sách truy vấn (cùng với tần suất chúng) Danh cách cập nhật tần suất chúng Những đích cần đạt đến kiểu truy vấn cập nhật Với truy vấn luồng công việc, phải xác định: • Các quan hệ cần phải truy cập • Những thuộc tính phải giữ lại (trong mệnh đề SELECT) • Những thuộc tính phải lấy điều kiện kết nối (trong mệnh đề WHERE) Tương tự, với cập nhật luồng công việc, phải xác định: • Lựa chọn thuộc tính điều kiện nối (trong mệnh đề WHERE) • Kiểu cập nhật (INSERT, DELETE, UPDATE) quan hệ cập nhật • Với lệnh cập nhật, trường (cột) thay đổi Ghi nhớ truy vấn cập nhật có tham số, ví dụ thao tác ghi nợ tốn có tham số số tài khoản cụ thể người Việc cập nhật chứa thành phần truy vấn để tìm giá trị cần cập nhật Thành phần thực tốt thiết kế vật lý tốt có diện mục Mặt khác, cập nhật ln kéo theo cơng việc khác cập nhật mục chứa thuộc tính tính bị thay đổi Vì thế, truy vấn hưởng lợi từ diện mục mục lại làm tăng giảm tốc độ cập nhật Người thiết kế phải lưu ý đến điều tạo mục Các định thiết kế vật lý điều chỉnh Những định quan trong trình thiết kế sở liệu vật lý điều chỉnh sở liệu bao gồm: Lựa chọn mục tạo: • Những quan hệ mục trường kết hợp số trường để tạo mục khố tìm kiếm • Với mục, xác định xem nên phân cụm hay khơng phân cụm? Điều chỉnh lược đồ khái niệm: 3/45 Thiết kế sở liệu vật lý điều chỉnh thiết kế • Lựa chọn lược đồ chuẩn hố: Chúng ta có nhiều cách để phân rã lược đồ thành quan hệ dạng chuẩn mong muốn (BCNF 3NF) Quyết định chọn lược đồ dựa vào điều kiện q trình thực thi • Phi chuẩn hố: Để cải thiện tốc độ thực thi truy vấn, xem xét lại lược đồ phân rã đưa việc chuẩn hoá thiết kế lược đồ khái niệm • Phân tách theo chiều dọc: Tuỳ theo tình trạng tại, muốn quan hệ phân rã sâu nhằm cải thiện tốc độ thực truy vấn bao gồm vài thuộc tính • Khung nhìn: Chúng ta có lẽ muốn thêm vài khung nhìn để che giấu thay đổi lược đồ khái niệm Điều chỉnh truy vấn giao dịch: Các truy vấn thực cách liên tục giao dịch có lẽ cần viết lại để chạy nhanh Trong sở liệu phân tán song song bàn đến Chương 22, có số lựa chọn để xem xét phân chia quan hệ site khác lưu trữ nhiều site Sự cần thiết phải điều chỉnh sở liệu Những thông tin chi tiết luồng thực thi có lẽ khó có từ bắt đầu thiết kế Do đó, điều chỉnh sở liệu sau thiết kế phát triển việc làm quan trọng- phải cải tiến thiết kế ban đầu để đạt hiệu thực thi tốt Sự khác thiết kế sở liệu điều chỉnh sở liệu mang tính chất chủ quan Chúng ta coi kết trình thiết kế lược đồ khái niệm ban đầu, tập mục phân cụm tạo Bất kể thay đổi tới lược đồ khái niệm lựa chọn mục phân cụm coi chỉnh sửa Chúng ta coi vài điều chỉnh lược đồ khái niệm (và định thiết kế vật lý tạo điều chỉnh này) phần trình thiết kế vật lý Việc đánh giấu thiết kế hiệu chỉnh khơng quan trọng, trình bày lựa chọn mục điều chỉnh sở liệu không cần đề cập tới điều chỉnh thực Các dẫn để lựa chọn mục Khi xem xét mục nên tạo, danh sách truy vấn (bao gồm truy vấn phần thao tác cập nhật) Trước hết, quan hệ vài truy vấn truy cập đến xem ứng cử viên để đánh mục, việc lựa chọn thuộc tính làm mục tuỳ thuộc vào điều kiện xuất mệnh đề WHERE Sự diện mục thích hợp cải thiện đáng kể khả thực thi truy vấn, trình bày Chương 12 4/45 Thiết kế sở liệu vật lý điều chỉnh thiết kế Một cách tiếp cận để lựa chọn mục xem xét truy vấn quan trọng với truy vấn định sử dụng mục kế hoạch thực Sau cân nhắc xem liệu có kế hoạch thực tốt không bổ sung thêm số mục nữa; có, mục bổ sung ứng cử viên danh sách mục Nói chung, truy cập phạm vi hưởng lợi từ mục B+tree, truy cập so-sánh-chính-xác hưởng lợi từ mục băm Việc phân cụm có lợi cho truy vấn phạm vi, có lợi cho truy vấn so-sánh-chính-xác vài cổng vào liệu chứa giá trị khoá Tuy nhiên, trước thêm mục vào danh sách phải xem xét tác động thao tác cập nhật Như lưu ý phía trên, mục làm tăng tốc độ thành phần truy vấn câu lệnh cập nhật, tất mục có liên quan đến thuộc tính thay đổi phải cập nhật theo Vì thế, phải cân nhắc khả số phép toán cập nhật chịu tốc độ chậm để tăng tốc độ truy vấn khác Rõ ràng, để lựa chọn mục tốt cho luồng công việc yêu cầu phải có hiểu biết cơng nghệ mục tối ưu hoá truy vấn làm Những hướng dẫn sau lựa chọn mục tổng kết tranh luận chúng ta: Có nên mục (Hướng dẫn 1): Khơng nên xây dựng mục khơng phục vụ cho vài truy vấn – bao gồm truy vấn thành phần lệnh cập nhật - hưởng lợi từ Bất có thể, lựa chọn mục làm tăng tốc độ nhiều truy vấn Lựa chọn Khố tìm kiếm (Hướng dẫn 2): Các thuộc tính có mệnh đề WHERE ứng cử viên đánh mục • Điều kiện lọc so-sánh-chính-xác khuyên xem xét mục thuộc tính lọc, lý tưởng mục băm • Điều kiện lọc phạm vi khuyên xem xét mục B+tree (hoặc ISAM) thuộc tính lọc Một mục B+tree thường tốt mục ISAM Lựa chọn mục ISAM quan hệ thường xuyên cập nhật, để đơn giản thừa nhận mục B+tree ưu tiên lựa chọn trước mục ISAM Các khố tìm kiếm đa-thuộc-tính (Hướng dẫn 3): Các mục với khố tìm kiếm đa-thuộc-tính nên xem xét hai trường hợp sau: • Mệnh đề WHERE chứa điều kiện gồm nhiều thuộc tính quan hệ • Hệ thống cung cấp chiến lược đánh giá chỉ-chỉ-số (tức là, việc truy cập quan hệ tránh) truy vấn quan trọng (Trường hợp 5/45 Thiết kế sở liệu vật lý điều chỉnh thiết kế dẫn đến số thuộc tính nằm khố tìm kiếm chúng khơng xuất mệnh đề WHERE.) Khi khố tìm kiếm đa-thuộc-tính, truy vấn phạm vi phải thận trọng với thứ tự thuộc tính khố tìm kiếm để tương ứng với truy vấn Cân nhắc phân cụm (Hướng dẫn 4): Có nhiều mục phân cụm quan hệ, việc phân cụm ảnh hưởng lớn đến trình thực thi; lựa chọn mục phân cụm quan trọng • Các truy vấn phạm vi dường hưởng lợi nhiều từ việc phân cụm Nếu số truy vấn phạm vi đưa quan hệ đó, lấy tập thuộc tính khác nhau, xem xét điều kiện lọc truy vấn tần suất thực chúng luồng công việc để đến định mục phân cụm • Nếu mục dùng chiến lược đánh giá chỉ-chỉ-số, mục khơng cần phân cụm (Chỉ phân cụm mục sử dụng để truy cập giá trị quan hệ nằm phía dưới) Chỉ mục băm hay mục (Hướng dẫn 5): Chỉ mục B+tree thường tốt cho truy vấn miền truy vấn Chỉ mục băm tốt trường hợp sau: • Chỉ mục hy vọng hỗ trợ nối lặp lồng mục; quan hệ mục quan hệ phía trong, khố tìm kiếm chứa cột có tính kết nối • Luồng cơng việc có truy vấn quan trọng chứa thuộc tính khố tìm kiếm, khơng có truy vấn phạm vi Cân giá phải trả để trì mục (Hướng dẫn 6): Khi đưa định tạo mục, phải cân nhắc ảnh hưởng mục việc cập nhật luồng cơng việc • Nếu việc trì mục làm chậm phép tốn cập nhật thường xuyên phải xem xét để xố mục • Tuy nhiên, việc thêm mục làm tăng tốc độ thực phép cập nhật Ví dụ, mục Emloyee IDs làm tăng tốc độ việc tăng lương cho nhân viên (được xác định ID) Các ví dụ việc chọn mục Các ví dụ sau minh hoạ cách lựa chọn mục trình thiết kế sở liệu, tiếp tục với tranh luận Chương 8, nơi tập trung bàn lựa chọn mục truy vấn bảng đơn Lược đồ sử dụng ví dụ sau 6/45 Thiết kế sở liệu vật lý điều chỉnh thiết kế không biểu diễn cách chi tiết, chúng chứa tên thuộc tính Các thơng tin bổ sung biểu diễn cần thiết Hãy chúng tơi bắt đầu với ví dụ đơn giản: SELECT E.ename, D.mgr FROM Employees E, Departments D WHERE D.dname= ‘Toy’ AND E.dno=D.dno Các quan hệ đề cập truy vấn Employees Departments, hai điều kiện mệnh đề WHERE điều kiện Những hướng dẫn nghiên cứu khuyên nên xây dựng mục băm thuộc tính dname quan hệ Departments Nhưng cân nhắc đến điều kiện E.dno=D.dno, nên xây dựng mục (tất nhiên mục băm) thuộc tính dno Departments Employees (hoặc hai)? Thực chất muốn truy cập giá trị Departments sử dụng mục dname có vài giá trị thoả mãn điều kiện D.dname=‘Toy’ Với giá trị Departments thoả mãn, tìm giá trị tương ứng Employees việc sử dụng mục thuộc tính dno Employees Vì thế, nên xây dựng mục trường dno Employees (Ghi nhớ chẳng có ích lợi xây dựng mục trường dno Departments giá trị Departments truy cập sử dụng mục dname) Việc lựa chọn mục định hướng kế hoạch đánh giá truy vấn mà muốn sử dụng Quá trình lựa chọn kế hoạch đánh giá truy vấn thực với lựa chọn thiết kế vật lý tối ưu hố truy vấn thực hữu ích cho thiết kế vật lý Chúng kế hoạch tốt truy vấn Hình Xem xét thay đổi truy vấn này, giả sử mệnh đề WHERE sửa thành WHERE D.dname = ‘Toy’ AND E.dno=D.dno AND E.age=25 Hãy xem xét số kế hoạch khác Một kế hoạch tốt truy cập giá tri Departments thoả mãn điều kiện chọn dname, sau truy cập giá trị tương ứng Employees cách sử dụng mục trường dno; phép chọn age sau áp dụng theo kiểu on-the-fly Tuy nhiên, không thay đổi trước truy vấn này, không thực cần có mục trường dno Employees có mục trường age Trong trường hợp truy cập giá trị Departments thoả mãn điều kiện chọn dname (bằng việc sử dụng mục dname, phần trước), truy cập giá trị Employees thoả mãn điều kiện chọn age sử dụng mục age, kết nối tập giá trị lại Vì tập giá trị nối lại nhỏ, nên chúng nằm vừa nhớ việc xem xét cách thức kết nối khơng cịn quan trọng Kế hoạch dường không tốt kế hoạch sử dụng mục dno, lựa chọn hợp lý Vì thế, có mục age (đã sử dụng truy vấn luồng cơng việc), nên sử dụng mục 7/45 Thiết kế sở liệu vật lý điều chỉnh thiết kế Một kế hoạch đánh giá truy vấn lý tưởng Truy vấn có chứa điều kiện chọn phạm vi: SELECT E.ename, D.dname FROM Employees E, Departments D WHERE E.sal BETWEEN 10000 AND 20000 AND E.hobby='Stamps' AND E.dno=D.dno 10000 < E.sal AND E.sal < 20000 Người ta khuyến khích sử dụng phép toán BETWEEN để biểu diễn điều kiện phạm vi dễ dàng cho người dùng tối ưu hố Trở lại với ví dụ truy vấn này, hai điều kiện chọn quan hệ Employees Vì thế, dễ dành nhận kế hoạch tốt trường hợp Employees đóng vai trị quan hệ phía ngồi Departments quan hệ phía giống truy vấn trước, nên xây dựng mục băm thuộc tính dno Departments Nhưng mục Employees tốt nhất? Một mục B+tree thuộc tính sal phù hợp với phép chọn phạm vi, đặc biệt mục phân cụm Một mục băm thuộc tính hobby phù hợp với điều kiện chọn Nếu mục sẵn sàng, truy cập giá trị Employees cách sử dụng mục này, truy cập giá trị tương ứng Departments sử dụng mục dno, thực tất điều kiện chọn lại phép chiếu theo kiểu on-the-fly Nếu hai mục sẵn sàng, tối ưu hoá lựa chọn mục thích hợp để thực truy vấn, tức xem xét điều kiện chọn (điều kiện chọn phạm vi salary điều kiện chọn hobby) có giá trị thoả mãn Nói chung, mục thích hợp tuỳ thuộc vào liệu Nếu có người có salary nằm phạm vi cho có nhiều người có sở thích stamps mục B+tree lựa chọn tốt Ngược lại, mục băm hobby tốt 8/45 Thiết kế sở liệu vật lý điều chỉnh thiết kế Chỉ mục hoá phân cụm Các mục phân cụm trở nên đặc biệt quan trọng truy cập quan hệ phía nối lặp lồng mục Để hiểu mối quan hệ mục phân cụm liên kết, chúng tơi xem lại ví dụ chúng ta: SELECT E.ename, D.mgr FROM Employees E, Departments D WHERE D.dname= ‘Toy’ AND E.dno=D.dno Chúng ta kết luận kế hoạch tốt để thực truy vấn sử dụng mục dname để truy cập giá trị Departments thoả mãn điều kiện dname tìm giá trị tương ứng Employees sử dụng mục dno Các mục có nên phân cụm? Giả sử số lượng giá trị thoả mãn điều kiện D.dname= ‘Toy’ nhỏ, nên xây dựng mục phân cụm dname Mặc khác, Employees bảng phía nối lặp lồng mục dno khơng phải khố dự tuyển Trường hợp nên sử dụng mục phân cụm trường dno Employees Thực tế liên kết chứa phép chọn lặp lặp lại trường dno quan hệ phía trong, truy vấn kiểu khuyến khích tạo phân cụm trường dno kiểu truy vấn đơn giản trường hobby ví dụ trước (Tất nhiên, hai yếu tố liệu cần lấy (phép lọc) tần số truy vấn phải đưa vào xem xét.) Ví dụ tự ví dụ trước, minh hoạ mục phân cụm sử dụng liên kết sắp-xếp-trộn (sort-merge joins): SELECT E.ename, D.mgr FROM Employees E, Departments D WHERE E.hobby='Stamps' AND E.dno=D.dno Truy vấn khác với truy vấn trước chỗ điều kiện E.hobby = ‘Stamps’ thay D.dname ='Toy' Dựa giả thiết có vài nhân viên phịng ‘Toy’, lựa chọn mục phù hợp với phép nối lặp lồng mục với Departments quan hệ phía ngồi Bây giờ, chúng tơi giả sử có nhiều nhân viên có sở thích stamps Trong trường hợp này, phép lặp lồng khối nối sắp-xếp-trộn có lẽ hiệu Nối sắp-xếp-trộn sử dụng lợi mục phân cụm B+tree thuộc tính dno Departments để truy cập giá trị tránh phải xếp bảng Departments Lưu ý sử dụng mục khơng phân cụm khơng hiệu - tất giá trị truy cập, việc thực thao tác I/O giá trị dường phải trả giá đắt Nếu khơng có mục trường dno Employees, truy cập giá trị Employees (có thể sử dụng mục trường hobby, đặc biệt 9/45 Thiết kế sở liệu vật lý điều chỉnh thiết kế mục phân cụm), áp dụng phép lọc E.hobby='Stamps' theo kiểu on-the-fly, xếp giá trị thoả mãn theo trường dno Những tranh luận truy cập giá trị sử dụng mục đó, ảnh hưởng việc phân cụm phụ thuộc vào số lượng giá trị truy cập, tức là, số lượng giá trị thoả mãn điều kiên chọn thích hợp với mục Một mục không phân cụm tốt mục phân cụm phép chọn truy cập đến giá trị (ví dụ, phép chọn khoá dự tuyển) Khi số lượng giá trị truy cập tăng lên, sử dụng mục không phân cụm phải trả giá đắt vượt xa so với việc quét toàn quan hệ Việc quét truy cập toàn giá trị, trang truy cập xác lần, trang truy cập nhiều lần số lượng ghi bên sử dụng mục không phân cụm Nếu blocked I/O thực (như phổ biến), ưu điểm quét so với sử dụng mục không phân cụm tăng dần lên Chúng ta minh hoạ mối quan hệ số lượng giá trị truy cập biểu diễn tỷ lệ so với tổng số giá trị có quan hệ, giá phương pháp truy cập khác Hình Để đơn giản, giả sử truy vấn phép chọn quan hệ (Hình phản ánh giá việc viết kết quả; đường quét mặt phẳng.) Ảnh hưởng việc phân cụm Đồng-phân-cụm hai quan hệ Trong phần trình bày kiến trúc hệ thống sở liệu Chương 9, giải thích quan hệ lưu trữ file Mặc dù file thường chứa ghi quan hệ, vài hệ thống cho phép ghi nhiều quan hệ lưu file Với cách này, người dùng sở liệu 10/45 Thiết kế sở liệu vật lý điều chỉnh thiết kế Tiêu chuẩn đánh giá DBMS Phía xem xét cách cải thiện thiết kế sở liệu để đạt kết thực thi tốt Tuy nhiên, sở liệu lớn lên, DBMS khơng cịn khả cung cấp công cụ hỗ trợ thực thi tốt nữa, thiết kế tốt có thể, phải xem xét cách nâng cấp hệ thống chúng ta, cụ thể mua phần cứng nhanh bổ sung thêm nhớ Chúng ta cân nhắc khả chuyển sở liệu sang DBMS Khi đánh giá sản phẩm DBMS, khả thực thi vấn đề quan trọng DBMS tập hợp phầm mềm phức tạp, nhà cung cấp khác có chiến lược phát triển sản phẩm họ khác để nhắm vào thị trường Ví dụ, số hệ thống thiết kế để thực hiệu truy vấn phức tạp, hệ thống khác lại thiết kế để thực tốt giao dịch đơn giản Để hỗ trợ người dùng lựa chọn DBMS phù hợp với yêu cầu họ, vài tiêu chuẩn phát triển Nó bao gồm tiêu chuẩn để đo khả thực thi lớp ứng dụng (ví dụ, tiêu chuẩn TPC) tiêu chuẩn để đo hiệu thực thi DBMS dãy thao tác (ví dụ, Wisconsin benchmark) Tiêu chuẩn nên gọn nhẹ, dễ hiểu Chúng nên đo thực thi cực lớn (ví dụ, giao dịch giây hay gọi tps) tỷ lệ giá/thực thi (ví dụ $/tsp) cho luồng liệu điển hình miền ứng dụng Transaction Processing Council (TPC) tạo để định nghĩa tiêu chuẩn cho trình xử lý giao dịch hệ thống sở liệu Các tiêu chuẩn tiếng nhà nghiên cứu tổ chức công nghệ đề xuất Các Tiêu chuẩn nhà phát triển hệ thống đưa khơng hữu ích việc so sách hệ thống khác (mặc dù chúng hữu ích việc xác định hệ thống quản lý luồng công việc cụ thể tốt nào) Các tiêu chuẩn đánh giá DBMS tiếng Online Transaction Processing Benchmarks: TPC-A TPC-B tạo nên định nghĩa chuẩn độ đo tps $/tps TPC-A đo khả thực thi giá mạng máy tính cộng với DBMS, ngược lại TPC-B benchmark xem xét riêng DBMS Các tiêu chuẩn bao gồm giao dịch đơn giản để cập nhật ba ghi từ ba bảng khác nhau, thêm ghi vào bảng thứ tư Một số thơng tin chi tiết (ví dụ, giao dịch phân tán, phương thức kết nối trong, thuộc tính hệ thống) xác định cách nghiêm khắc, đảm bảo kết hệ thống khác so sánh đầy đủ TPC-C benchmark tập công việc phức tạp TPC-A TPCB Nó mơ hình hóa warehouse ghi lại mặt hàng cung cấp cho khách hàng bao gồm năm kiểu giao dịch Một giao dịch TPC-C đắt giao dịch TPC-A TPC-B, TPC-C tận dụng nhiều khả hệ thống, sử dụng mục phụ loại bỏ giao dịch khơng cịn sử dụng Nó 31/45 Thiết kế sở liệu vật lý điều chỉnh thiết kế thay hoàn toàn TPC-A TPC-B benchmark xử lý giao dịch chuẩn tắc Query Benchmarks: Wisconsin benchmark sử dụng rộng rãi để đo thực thi truy vấn đơn giản Set Query benchmark đo khả thực thi loạt truy vấn phức tạp hơn, AS3AP benchmark đo khả thực thi luồng công việc giao dịch hỗn hợp, truy vấn quan hệ hàm tiện ích TPC-D benchmark hỗ trợ dãy truy vấn SQL phức tạp dùng ứng dụng OLAP Council phát triển benchmark sử dụng cho truy vấn hỗ-trợ-ra-quyết-định phức tạp, bao gồm số truy vấn biểu diễn dễ dàng SQL Nó sử dụng để đo hệ thống OLAP, hệ thống trình bày Chương 25 Sequoia 2000 benchmark thiết kế để so sánh DBMS hỗ trợ hệ thống thông tin địa lý Object-Database Benchmarks: Benchmarks 001 007 đo khả thực thi hệ thống sở liệu hướng đối tượng Bucky benchmark đo khả thực thi hệ thống sở liệu hướng quan hệ (Chúng tơi trình bày hệ thống sở liệu hướng đối tượng Chương 23) Sử dụng Tiêu chuẩn Tiêu chuẩn nên sử dụng với hiểu biết tốt việc chúng thiết kế để đánh giá mơi trường ứng dụng sử dụng DBMS Khi bạn sử dụng tiêu chuẩn để định hướng việc lựa chọn DBMS cho ứng dụng mình, bạn nên ln ghi nhớ hướng dẫn sau: Ý nghĩa Benchmark đó? Một DBMS phần mềm phức tạp sử dụng hàng loạt ứng dụng Một benchmark nên có dãy cơng việc lựa chọn cẩn thận để phủ lên miền ứng dụng cụ thể kiểm tra tính DBMS quan trọng cho miền ứng dụng Benchmark phản chiếu luồng cơng việc bạn tốt nào? Xem xét luồng công việc bạn so sánh với benchmark Cung cấp nhiều trường hợp thử nghiệm cho benchmark (tức là, truy vấn yêu cầu cập nhật), thao tác tương đương với thao tác quan trọng luồng công việc bạn Đồng thời xem xét ngữ cảnh mà benchmark đánh giá Ví dụ, thời gian thực truy vấn độc lập có lẽ khác với thời gian thực chế độ đa người dùng: Một hệ thống có thời gian thực dài thao tác I/O thực chậm Trên luồng công việc đa người dùng, cung cấp đĩa đủ cho thực I/O song song, thời gian thực yêu cầu thấp 32/45 Thiết kế sở liệu vật lý điều chỉnh thiết kế Tạo benchmark bạn: Bạn tạo benchmark bạn làm chủ cách thay đổi benchmark chuẩn cách tinh tế thay công việc benchmark chuẩn công việc tương đương luồng công việc bạn Bài tập Xem xét lược đồ BCNF sau, phần sở liệu công ty (những thông tin không liên quan đến câu hỏi bị lược bỏ): Emp (eid, ename, addr, sal, age, yrs, deptid) Dept (did, dname, floor, budget) Giả sử bạn biết sáu truy vấn sau sáu truy vấn quan trọng lưu lượng cơng việc chúng có tần xuất xuất tầm quan trọng ngang • Liệt kê eid, ename, addr nhân viên độ tuổi người dùng nhập vào • Liệt kê eid, ename, addr nhân viên làm việc phịng người dùng nhập vào • Liệt kê eid addr nhân viên có tên người dùng nhập vào • Liệt kê lương trung bình nhân viên • Liệt kê lương trung bình nhân viên theo tuổi, tức với giá trị tuổi lưu sở liệu, liệt kê tuổi lương trung bình tương ứng với tuổi • Liệt kê tất thơng tin phòng, xếp theo thứ tự tầng Cho thông tin giả sử sáu truy vấn quan trọng lệnh cập nhật nào, thiết kế lược đồ vật lý cho sở liệu để lưu lượng công việc mong muốn thực hiệu Cụ thể, bạn định thuộc tính mục mục có phân cụm hay khơng phân cụm Giả sử có mục B+tree kiểu mục hỗ trợ DBMS khóa thuộc tính đơn hay đa-thuộc-tính Chỉ rõ thiết kế vật lý bạn việc xác định thuộc tính bạn đề nghị mục hóa qua B+tree phân cụm hay khơng phân cụm Thiết kế lại lược đồ vật lý giả sử tập truy vấn quan trọng thay tập truy vấn sau: • Liệt kê eid addr nhân viên người dùng nhập vào • Liệt kê lương lớn nhân viên • Liệt kê lương trung bình nhân viên theo phịng; tức với giá trị deptid, liệt kê deptid lương trung bình nhân viên phịng • Liệt kê tổng ngân sách (budget) tất phòng theo tầng; tức với tầng, liệt kê tầng tổng ngân sách tương ứng 33/45 Thiết kế sở liệu vật lý điều chỉnh thiết kế • Giả sử lưu lượng cơng việc điều chỉnh tự động công cụ điều chỉnh mục tự động Gạch đầu dịng bước mà thuật tóan điều chỉnh mục thực tập cấu hình ứng cử viên xem xét Câu trả lời với câu hỏi sau: • Nếu tạo mục B+tree ‘rậm rạp’ quan hệ Emp, thực quét chỉ-chỉ-số để trả lời truy vấn thứ năm Chỉ mục băm không phục vụ mục đích chúng ta, cổng vào liệu không xếp age! Nếu việc quét chỉ-chỉ-số không cho phép tạo mục phân cụm B+tree trường age Emp • Chúng ta nên tạo mục B+tree không phân cụm depid quan hệ Emp mục không phân cụm khác quan hệ Dept Sau đó, thực việc tìm kiếm chỉ-chỉ-số Dept sau lấy ghi Emp với depid thích hợp cho truy vấn thứ hai • Chúng ta nên tạo mục không phân cụm ename quan hệ Emp cho truy vấn thứ ba • Chúng ta muốn mục phân cụm B+tree ‘thưa thớt’ trường floor mục Dept để có phịng ứng với tầng theo thứ tự tầng cho truy vấn thứ sáu • Cuối cùng, mục không phân cụm ‘rậm rạp’ sal cho phép tính trung bình lương tất nhân viên sử dụng việc quét chỉ-chỉ-số Tuy nhiên, mục B+tree không phân cụm ‘rậm rạp’ tạo để hỗ trợ Truy vấn (5) sử dụng để tính lương trung bình tất nhân viên, tốt cho truy vấn giống sử dụng mục trường sal Vì khơng nên tạo mục riêng rẽ sal • Chúng ta nên tạo mục B+tree không phân cụm ename cho quan hệ Emp để tìm nhân viên với tên cụ thể cho truy vấn cách hiệu Đây kế hoạch chỉ-chỉsố • Một mục B+tree khơng phân cụm sal cho quan hệ Emp giúp tìm lương cao cho truy vấn thứ hai (Nó thực tốt mục băm hàm nhóm MAX-chúng ta đơn giản xuống trang phía phải mục B+tree) Đây khơng phải kế hoạch chỉ-chỉ-số • Chúng ta nên tạo mục B+tree không phân cụm quan hệ Emp để thực việc quét chỉ-chỉ-số tất nhân viên phịng Nếu kế hoạch chỉ-chỉ-số khơng hỗ trợ, mục B+tree phân cụm ‘thưa thớt’ deptid tốt Nó cho phép truy cập giá trị theo deptid 34/45 Thiết kế sở liệu vật lý điều chỉnh thiết kế • Chúng ta nên tạo mục không phân cụm ‘rậm rạp’ cho Dept Điều cho phép tính tổng ngân sách theo tầng sử dụng kế hoạch chỉ-chỉ-số Nếu kế hoạch chỉ-chỉ-số không hỗ trợ, nên tạo mục B+tree phân cụm ‘thưa thớt’ trường floor cho quan hệ Dept để tìm phịng tầng theo thứ tự tầng Xem xét lược đồ quan hệ BCNF sau, phần sở liệu trường đại học (những thông tin không liên quan đến câu hỏi bị lược bỏ): Prof(ssno, pname, office, age, sex, specialty, dept_did) Dept( did , dname, budget, num_majors, chair_ssno) Giả sử bạn biết năm truy vấn sau truy vấn thường gặp lưu lượng công việc trường đại học năm truy vấn có tần suất xuất tầm quan trọng ngang • Liệt kê pname, age, office giáo sư (professors) theo giới tính (sex) người dùng nhập vào (male female) có lĩnh vực nghiên cứu đặc biệt (specialty) người dùng nhập vào (ví dụ, “recursive query processing”).Giả sử trường đại học có nhiều nhóm nghiên cứu khác nhau, xảy khả có nhiều giáo sư có lĩnh vực nghiên cứu đặc biệt • Liệt kê tất thông tin môn giáo sư độ tuổi người dùng nhập vào • Liệt kê did, dname, chairperson name mơn có giá trị num_majors người dùng nhập vào • Liệt kê ngân quỹ thấp mơn • Liệt kê tất thông tin giáo sư người lãnh đạo môn Những truy vấn xảy thường xuyên nhiều so với lệnh cập nhật, bạn nên xây dựng mục làm tăng tốc độ truy vấn Tuy nhiên, bạn không nên xây dựng mục khơng cần thiết, lệnh cập nhật xảy (và bị chậm mục không cần thiết này) Bạn thiết kế lược đồ vật lý cho trường đại học để thực tốt lưu lượng cơng việc mong muốn Cụ thể, bạn định thuộc tính mục có phân cụm hay không phân cụm Giả sử mục B+tree mục băm kiểu mục hỗ trợ DBMS khóa thuộc tính đơn hay đa-thuộc-tính Chỉ rõ thiết kế vật lý bạn việc xác định thuộc tính nên mục hóa, với mục bạn rõ phân cụm hay khơng phân cụm nên B+tree mục băm 35/45 Thiết kế sở liệu vật lý điều chỉnh thiết kế Giả sử lưu lượng công việc điều chỉnh công cụ điều chỉnh mục tự động Gạch đầu dòng bước mà thuật tốn điều chỉnh mục thực tập cấu hình ứng cử viên xem xét Thiết kế lại lược đồ vật lý, giả sử năm truy vấn quan trọng thay truy vấn khác: • Liệt kê môn lĩnh vực nghiên cứu đặc biệt giáo sư mơn thực • Tìm mơn có num_majors thấp • Tìm giáo sư trẻ người lãnh đạo môn Dành cho độc giả Xem xét lược đồ BCNF sau, phần sở liệu công ty (những thông tin không liên quan đến câu hỏi bị lược bỏ): Project(pno, proj_name, proj_base_dept, proj_mgr, topic, budget) Manager(mid, mgr_name, mgr_dept, salary, age, sex) Ghi nhớ dự án thực vài phòng, người quản lý nhân viên vài phòng, người quản lý dự án khơng thiết phải nhân viên phịng thực dự án Giả sử bạn biết năm truy vấn sau năm truy vấn quan trọng năm truy vấn có tần xuất xuất tầm quan trọng ngang nhau: • Liệt kê mgr_name, age, salary người quản lý có giới tính người dùng nhập vào (male female) làm việc phịng Bạn giả sử rằng, có nhiều phịng phịng có người quản lý dự án • Liệt kê tên tất dự án với người quản lý độ tuổi người dùng nhập vào (ví dụ, tuổi nhỏ 30) • Liệt kê tên tất phòng mà người quản lý phòng quản lý dự án phịng thực • Liệt kê tên dự án có ngân sách thấp • Liệt kê tên tất người quản lý phòng Những truy vấn xảy thường xuyên nhiều so với lệnh cập nhật, bạn nên xây dựng mục làm tăng tốc độ truy vấn Tuy nhiên, bạn không nên xây dựng mục khơng cần thiết, lệnh cập nhật xảy (và bị chậm mục không cần thiết này) Bạn thiết kế lược đồ vật lý để thực tốt lưu lượng công việc mong muốn Cụ thể, bạn định thuộc tính mục mục có phân cụm hay không phân 36/45 Thiết kế sở liệu vật lý điều chỉnh thiết kế cụm Giả sử mục B+tree mục băm kiểu mục hỗ trợ DBMS khóa thuộc tính đơn hay đa-thuộc-tính Chỉ rõ thiết kế vật lý bạn việc xác định thuộc tính bạn đề nghị mục hóa, với mục bạn rõ phân cụm hay khơng phân cụm nên B+tree mục băm Giả sử lưu lượng công việc điều chỉnh công cụ điều chỉnh mục tự động Gạch đầu dịng bước mà thuật tốn điều chỉnh mục thực tập cấu hình ứng cử viên xem xét Thiết kế lại lược đồ vật lý, giả sử năm truy vấn quan trọng thay truy vấn khác: • Tìm tổng số ngân quỹ dự án quản lý người quản lý; tức là, liệt kê tất proj_mgr tổng số ngân quỹ dự án người quản lý quản lý tương ứng • Tìm tổng số ngân quỹ dự án quản lý người quản lý với người quản lý nằm độ tuổi người dùng nhập vào • Tìm số lượng người quản lý nam giới (male) • Tìm tuổi trung bình tất người quản lý Câu trả lời với câu hỏi sau: • Với truy vấn đầu tiên, nên tạo mục băm không phân cụm ‘rậm rạp’ mgr_dept cho quan hệ Manager Chúng ta bỏ qua sex khỏi khóa mục chọn, nhiên, việc có khơng phải trả chi phí đắt trường dường khơng cập nhật thường xun • Chúng ta nên tạo mục B+tree không phân cụm cho quan hệ Manager, mục băm không phân cụm cho quan hệ Project Chúng ta thực việc quét chỉ-chỉ-số để tìm tất nhà quản lý có tuổi nằm miền xác định, sau băm vào quan hệ Project để có tên dự án Nếu việc quét chỉ-chỉ-số không hỗ trợ, mục Manager nên mục phân cụm age • Với truy vấn thứ ba khơng cần mục Chúng ta quét tất managers sử dụng mục băm trên quan hệ Project để kiểm tra mgr_dept = proj_base_dept • Chúng ta tạo mục không phân cụm B+tree budget quan hệ Project sau xuống để tìm budget thấp cho truy vấn thứ tư 37/45 Thiết kế sở liệu vật lý điều chỉnh thiết kế • Với truy vấn thứ năm, nên tạo mục băm không phân cụm ‘rậm rạp’ pno quan hệ Project Chúng ta có proj_base_dept project cách sử dụng mục này, sau sử dụng mục băm mgr_dept để có người quản lý phòng Ghi nhớ mục Project cho phép thực việc quét chỉ-chỉ-số Project Tuy nhiên, có xác phịng với dự án (pno khóa) nên dường khơng nhanh đáng kể (Nó tiết kiệm I/O dự án.) • Với truy vấn đầu tiên, nên tạo mục B+tree không phân cụm cho quan hệ Project Việc quét chỉ-chỉ-số sau sử dụng để thực truy vấn Nếu việc quét chỉ-chỉ-số không hỗ trợ, mục phân cụm proj_mgr tốt • Nếu tạo mục B+tree phân cụm ‘thưa thớt’ cho quan hệ Manager, thực việc quét chỉ-chỉ-số mục để tìm ids người quản lý miền cho Sau đó, sử dụng việc quét chỉ-chỉ-số mục B+tree để tính tổng ngân sách dự án người quản lý phụ trách Nếu việc quét chỉ-chỉ-số không hỗ trợ, mục Manager mục B+tree phân cụm age • Một mục băm khơng phân cụm sex người quản lý theo sex cho phép tính số lượng người có giới tính male sử dụng thao tác quét chỉ-chỉ-số Nếu thao tác quét chỉ-chỉ-số không hỗ trợ, khơng có mục giúp để thực truy vấn thứ ba • Chúng ta nên tạo mục băm không phân cụm age cho truy vấn thứ tư Tất cần để làm tính trung bình tuổi (age) sử dụng việc quét chỉ-chỉ-số Nếu kế hoạch chỉ-chỉ-số khơng phép khơng có mục hỗ trợ Câu lạc Globetrotters tổ chức thành Hội (Chapter) Người đứng đầu (President) hội khơng đứng đầu hội khác, hội cung cấp cho người đứng đầu hội khoản lương Các hội chuyển đến địa điểm mới, người đứng đầu bầu lại (và khi) hội chuyển Dữ liệu lưu quan hệ G(C,S,L,P), C Chapter (Hội), S Salary (Lương), L Location (Địa điểm), P President (Người đứng đầu) Dạng truy vấn sau yêu cầu thường xuyên, bạn phải trả lời mà không cần thực kết nối: "Ai người đứng đầu hội X địa điểm Y?" Liệt kê danh sách FDs có G 38/45 Thiết kế sở liệu vật lý điều chỉnh thiết kế Quan hệ G có khóa dự tuyển nào? Quan hệ G dạng chuẩn nào? Thiết kế lược đồ sở liệu tốt cho câu lạc (Nhớ thiết kế bạn phải thực truy vấn trên!) Thiết kế bạn dạng chuẩn nào? Cung cấp ví dụ truy vấn chạy chậm lược đồ quan hệ G Có phân rã G thành quan hệ BCNF mà không kết nối bảo tồn phụ thuộc hàm khơng? Có lý tốt để chấp nhận quan hệ dạng chuẩn thấp 3NF khơng? Sử dụng ví dụ này, thêm ràng buộc cần thiết để minh họa câu trả lời bạn Dành cho độc giả Xem xét quan hệ dạng BCNF sau, quan hệ bao gồm mã sản phẩm, kiểu sản phẩm (ví dụ, bó), giá, số lượng có kho Parts (pid, pname, cost, num_avail) Bạn biết hai truy vấn sau quan trọng: • Tìm tổng số lượng có kho kiểu sản phẩm, ứng với tất kiểu • Liệt kê pids sản phẩm có giá cao Trình bày thiết kế vật lý bạn lựa chọn cho quan hệ Tức là, loại cấu trúc file dùng để lưu tập ghi Parts, bạn tạo mục nào? Giả sử sau khách hàng bạn phàn nàn khả thực thi hệ thống Vì bạn khơng có khả mua thêm phần cứng phần mềm mới, nên bạn phải cân nhắc để thiết kế lại lược đồ Bạn thiết kế lại lược đồ quan hệ, tổ chức file mục quan hệ Câu trả lời hai câu hỏi thay đổi hệ thống bạn không hỗ trợ mục có khóa tìm kiếm đa-thuộc-tính? Câu trả lời với câu hỏi sau: Cấu trúc heap file sử dụng cho quan hệ Parts Một mục B+tree không phân cụm ‘thưa thớt’ mục không phân cụm ‘thưa thớt’ tạo để thực hiệu truy vấn 39/45 Thiết kế sở liệu vật lý điều chỉnh thiết kế Vấn đề tối ưu hóa có lẽ khơng xem xét kế hoạch chỉ-chỉ-số, kế hoạch thực sử dụng lược đồ biểu diễn Vì thay việc tạo mục phân cụm Để làm điều phải phân vùng dọc quan hệ thành hai quan hệ Parts1(pid, cost) Parts2( pid, pname, num_avail) Nếu mục thân khơng thực hiện, thay sử dụng tổ chức file cho hai quan hệ chia tách này) Nếu khóa đa-thuộc-tính khơng phép có mục B+tree phân cụm cost pname hai quan hệ Xem xét quan hệ BCNF sau, hai quan hệ chứa thông tin nhân viên (Emp) phòng (Dept) nơi họ làm việc Emp(eid, sal, did) Dept(did, location, budget) Bạn nói hai truy vấn sau thực quan trọng: • Tìm địa điểm (location) nơi mà nhân viên làm việc • Kiểm tra xem ngân quỹ (budget) phịng có lớn lương nhân viên phịng khơng Trình bày thiết kế vật lý bạn lựa chọn cho quan hệ Tức là, loại cấu trúc file bạn lựa chọn để lưu tập ghi quan hệ này, bạn tạo mục nào? Giả sử sau khách hàng bạn phàn nàn khả thực thi hệ thống Vì bạn khơng có khả mua thêm phần cứng phần mềm mới, bạn phải cân nhắc để thiết kế lại lược đồ Bạn thiết kế lại lược đồ quan hệ, tổ chức file mục quan hệ Giả sử hệ thống sở liệu bạn không thực hiệu cấu trúc mục Bạn làm trường hợp Dành cho độc giả Xem xét quan hệ BCNF sau, hai quan hệ chứa thông tin nhân viên (Emp) phòng (Dept) nơi họ làm việc Dept ( did , dname, location, managerid) Emp ( eid , sal) Bạn nói hai truy vấn sau thực quan trọng: 40/45 Thiết kế sở liệu vật lý điều chỉnh thiết kế • Liệt kê tên (dname) mã người quản lý (managerid) phịng địa điểm người dùng nhập vào, kết xếp theo thứ tự tên phịng • Tìm lương (sal) trung bình nhân viên làm quản lý phịng địa điểm (location) người dùng nhập vào Bạn giả sử khơng có nhiều người quản lý phịng • Trình bày cấu trúc file mục bạn lựa chọn • Sau bạn nhận quan hệ thường xuyên cập nhật Vì mục làm chậm tốc độ lệnh cập nhật, bạn có nghĩ để cải thiện khả thực thi hệ thống bạn không sử dụng mục không? Câu trả lời với câu hỏi sau: Tổ chức heap file cho hai quan hệ hiệu tạo mục sau Đầu tiên, mục B+tree phân cụm cải thiện thực thi (chúng ta liệt kê tên nhà quản lý khơng có biểu diễn thuộc tính name) Chúng ta có mục băm eid quan hệ Emp để tăng tốc độ truy vấn thứ hai: tìm tất manageridstừ mục B+tree này, sau sử dụng mục băm để tìm lương (sal) họ Thiếu mục, sử dụng phân rã ngang cho quan hệ Dept Chúng ta thử với tổ chức file sắp, với quan hệ Dept dname Emp eid Với truy vấn sau, nguyên nhân khiến tối ưu hóa khơng tìm kế hoạch tốt Viết lại truy vấn để tìm kế hoạch thực tốt Các mục ràng buộc liệt kê trước truy vấn; giả sử lược đồ quan hệ phù hợp với thuộc tính đề cập đến truy vấn Một mục có thuộc tính age: SELECT E.dno FROM Employee E WHERE E.age=20 OR E.age=10 Một mục B+tree thuộc tính age: SELECT E.dno FROM Employee E 41/45 Thiết kế sở liệu vật lý điều chỉnh thiết kế WHERE E.age 100 AND E1.age = A.age CREATE VIEW MgrAge (dname, age) AS SELECT D.dname, E.age FROM Emp E, Dept D WHERE D.mgr = E.ename Trình bày trường hợp mà truy vấn thực tốt truy vấn thứ hai Trình bày trường hợp mà truy vấn thứ hai thực tốt truy vấn Bạn xây dựng truy vấn vượt trội hai truy vấn tất nhân viên kiếm $100000 có tuổi 35 40? Giải thích ngắn gọn Xem xét trường hợp có khơng có nhân viên có lương lớn 100000 Thì truy vấn thứ phần lồng không tính, ngược lại truy vấn thứ hai phép nối Emp MgrAge tính khơng kể đến số lượng nhân viên có lương lớn 100000 Cũng vậy, có mục dname, phần lồng truy vấn thứ hiệu Tuy nhiên, mục không ảnh hưởng tới khung nhìn truy vấn thứ hai sử dụng từ khung nhìn Trong trường hợp có số lượng lớn nhân viên có sal>100000 quan hệ Dept lớn, truy vấn phép nối Dept Emp tính cho giá trị Emp thỏa mãn điều kiện E1.sal > 100000, ngược lại phép nối tính lần 43/45 Thiết kế sở liệu vật lý điều chỉnh thiết kế Trong trường hợp này, phép chọn liên quan đến age có chi phí cao Vì có mục truy vấn sau thực tốt SELECT E1.ename FROM Emp E1 WHERE E1.age=35 AND E1.sal > 100 AND E1.age = ( SELECT E2.age FROM Emp E2, Dept D2 WHERE E1.dname = D2.dname AND D2.mgr = E2.ename) UNION SELECT E1.ename FROM Emp E1 WHERE E1.age = 40 AND E1.sal > 100 AND E1.age = ( SELECT E2.age FROM Emp E2, Dept D2 WHERE E1.dname = D2.dname AND D2.mgr = E2.ename) Các câu hỏi ôn tập Trả lời câu hỏi sau câu trả lời tìm phần liệt kê bên cạnh • Nêu thành phần luồng cơng việc? (Phần 1.1) • Những định cần phải đưa trình thiết kế vật lý? (Phần 1.2) • Trình bày sáu hướng dẫn mức-cao cho việc lựa chọn mục (Phần 2) • Khi nên tạo mục phân cụm? (Phần 4) • Đồng-phân-cụm gì, nên sử dụng nó? (Phần 4.1) • Kế hoạch chỉ-chỉ-số gì, tạo mục cho kế hoạch chỉchỉ-số nào? (Phần 5) • Vì điều chỉnh mục tự động vấn đề khó? Cho ví dụ (Phần 6.1) • Cung cấp ví dụ cho thuật tốn điều chỉnh mục tự động (Phần 6.2) • Vì điều chỉnh sở liệu quan trọng? (Phần 7) 44/45 Thiết kế sở liệu vật lý điều chỉnh thiết kế • Chúng ta điều chỉnh mục, lược đồ khái niệm, truy vấn khung nhìn nào? (Từ phần 7.1 tới 7.3) • Những lựa chọn việc điều chỉnh lược đồ khái niệm gì? Các cơng nghệ theo sau áp dụng chúng: chọn dạng chuẩn yếu hơn, phi chuẩn hóa, phân rã theo chiều dọc chiều ngang (Phần 8) • Những lựa chọn làm điều chỉnh mục khung nhìn? (Phần 9) • Ảnh hưởng khóa thực thi sở liệu? Chúng ta giảm tương tranh khóa hot spots nào? (Phần 10) • Vì có tiêu chuẩn? Bạn trình bày vài tiêu chuẩn phổ dụng? (Phần 12) Tài liệu tham khảo [658] bàn luận ban đầu thiết kế sở liệu vật lý [659] bàn chuẩn hóa quan sát phi chuẩn hóa cải thiện khả thực thi số truy vấn Các công cụ thiết kế vật lý IBM trình bày [272] Cơng cụ Microsoft Auto Admin thực lựa chọn mục tự động dựa theo luồng cơng việc trình bày số tài liệu [163, 164] DB2 Advisor trình bày [750] Các cách tiếp cận khác thiết kế sở liệu vật lý trình bày [146, 639] [679] xem xét việc điều chỉnh giao dịch, phần mà trình bày cách tóm tắt Những sách sau trình bày chi tiết thiết kế vật lý: chúng đề nghị đọc thêm [779] trình bày DB2 Shasha & Bonnet cung cấp thông tin chi tiết điều chỉnh sở liệu [104] [334] gồm số báo benchmarking có số phần mềm kèm theo Nó bao gồm báo AS3AP, Set Query, TPC-A, TPC-B, Wisconsin, tiêu chuẩn 001 viết người phát triển Bucky benchmark trình bày [132], tiêu chuẩn 007 trình bày [131], tiêu chuẩn TPC-D trình bày [739] Tiêu chuẩn Sequoia 2000 trình bày [720] 45/45 .. .Thiết kế sở liệu vật lý điều chỉnh thiết kế giúp đánh giá DBMS Phần 12; tiêu chuẩn hỗ trợ đánh giá khả thực thi DBMS Giới thiệu thiết kế sở liệu vật lý Giống tất phần thiết kế sở liệu khác, thiết. .. nhật Người thiết kế phải lưu ý đến điều tạo mục Các định thiết kế vật lý điều chỉnh Những định quan trong trình thiết kế sở liệu vật lý điều chỉnh sở liệu bao gồm: Lựa chọn mục tạo: • Những quan... định thiết kế vật lý tạo điều chỉnh này) phần trình thiết kế vật lý Việc đánh giấu thiết kế hiệu chỉnh không quan trọng, trình bày lựa chọn mục điều chỉnh sở liệu không cần đề cập tới điều chỉnh

Ngày đăng: 21/07/2022, 11:28

Xem thêm:

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w