1 / 17

Bài tập 14.14

Bài tập 14.14.

joyce
Download Presentation

Bài tập 14.14

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Bài tập 14.14 Cho một đĩa cứng với kích thước block là B = 512 byte. Một block pointer có kích thước P= 6 byte, và một record pointer có kích thước là PR = 7 byte. Cho một tập tin dữ liệu gồm 30000 bản ghi EMPLOYEE. Mỗi bản ghi gồm các mục tin sau: NAME (30 byte), SSN (9 byte), DEPARTMENTCODE (9 byte), ADDRESS (40 byte), PHONE (9 byte), BIRTHDATE (8 byte), SEX (1 byte), JOBCODE (4 byte), SALARY (4 byte). Thêm một byte vào một bản ghi dành cho deletion marker. a) Tính kích thước của mỗi bản ghi. Ans: R = 30 + 9 + 9 + 40 + 9 + 8 + 1 + 4 + 4 + 1 = 115 byte. b) Tính hệ số phân khổi bfr và số khối (block) b của tập tin dữ liệu EMPLOYEE. Ans: bfr = B/R = 512/115= 4 bản ghi mỗi block b = 30000/bfr = 30000/4 = 7500

  2. c) Giả sử tập tin dữ liệu sắp thứ tự theo thuộc tính khóa SSN và chúng ta muốn lập chỉ mục sơ cấp theo SSN.  Tính (i) hệ số phân khối của chỉ mục sơ cấp bfri Ans: Kích thước của mỗi phần tử (entry) trong chỉ mục là Ri = 9 + 6 = 15 Hệ số phân khối của chỉ mục là: : bfri= B/Ri= 512/15 = 34 phần tử mỗi block. Lưu ý hệ số phân khối của chỉ mục cũng là độ phân nhánh (fan-out) của chỉ mục đa mức.  Tính (ii) số phần tử (entry) của chỉ mục ở mức thứ nhất và số khối của chỉ mục mức thứ nhất. Ans: Số phần tử của chỉ mục ở mức thứ nhất bằng với số khối của tập tin dữ liệu, tức là 7500. Số khối của chỉ mục ở mức thứ nhất = 7500/bfri = 7500/ 34 = 221

  3.  Tính (iii) số mức cần thiết nếu chúng ta tổ chức chỉ mục thành một cấu trúc chỉ mục đa mức. Ans: Ta đã biết số khối của chỉ mục ở mức thứ nhất là 221, với độ phân nhánh là 34, số khối ở mức thứ hai của chỉ mục đa mức sẽ là 221/34  = 7 . Suy ra số khối ở mức kế tiếp của chỉ mục đa mức là 7/34  = 1 khối. Do đó mức ba là mức cao nhất của chỉ mục đa cấp và số mức cần thiết của cấu trúc chỉ mục đa mức x = 3.  Tính (iv) số khối cần thiết của cấu trúc chỉ mục đa mức. Ans: Mức ba chứa 1 khối gồm 34 phần tử mà sẽ có 34 block pointer , mỗi block pointer chỉ đến một block ở mức hai. Như vậy mức hai sẽ có 34 block. Mức hai chứa 34 block sẽ gồm 34* 34 block pointer chỉ đến 34*34 block ở mức một. Như vậy toàn chỉ mục đa mức có tổng cọng 1 + 34 + 34*34 = 1+ 34 + 1156 = 1191 khối.

  4.  Tính (v) số lần truy đạt khối cần thiết để khi dùng chỉ mục đa mức vừa nêu. Ans: Vì chỉ mục có ba mức nên cần tất cả 3 lần truy đạt khối.  Tính (vi) số lần truy đạt khối cần thiết để khi dùng chỉ mục sơ cấp để tìm kiếm và truy xuất một bản ghi từ tập tin dữ liệu khớp với một trị SSN cho trước. Ans: Nếu chỉ mục sơ cấp chỉ có một mức, ta sẽ dùng binary search và tốn log2bi truy đạt khối với bi là số khối của chỉ mục. Ở đây bi = 221 và log2(221) = 8 lần truy đạt khối để dò tìm trên chỉ mục sơ cấp. Để tìm kiếm một bản ghi trên tập tin dữ liệu, ta cần thêm một truy đạt khối nữa để tìm kiếm trên tập tin dữ liệu. Như vậy tốn tổng cọng 8+1 = 9 lần truy đạt khối. • Nếu chỉ mục sơ cấp là chỉ mục đa mức thì nó gồm 3 mức như ở câu (iii) thì sẽ tốn một lần truy đạt khối ở mỗi mức của chỉ mục và một lần truy đạt khối tại tập tin dữ liệu , tức là ta cần x +1 = 3 +1 = 4 lần truy đạt khối.

  5. d) Giả sử tập tin không được sắp thứ tự theo thuộc tính khóa SSN và chúng ta muốn xây dựng một chỉ mục thứ cấp theo SSN. Lập lại các tính toán ở phần c) cho chỉ mục thứ cấp và so sánh với chỉ mục sơ cấp.  Tính (i) hệ số phân khối của chỉ mục thứ cấp bfri Ans: Kích thước của mỗi phần tử (entry) trong chỉ mục là Ri = 9 + 6 = 15 Hệ số phân khối của chỉ mục là: : bfri= B/Ri= 512/15 = 34 phần tử mỗi block. Lưu ý hệ số phân khối của chỉ mục cũng là độ phân nhánh (fan-out) của chỉ mục đa mức.  Tính (ii) số phần tử (entry) của chỉ mục thứ cấp ở mức thứ nhất và số khối của chỉ mục thứ cấp ở mức thứ nhất. Ans: Chỉ mục thứ cấp này là một chỉ mục dày do lập chỉ mục trên thuộc tính khóa SSN. Do đó số phần tử của chỉ mục này ở mức thứ nhất bằng với số bản ghi của tập tin dữ liệu, tức là 30000. Số khối của chỉ mục ở mức thứ nhất = 30000/bfri = 3000/ 34 = 883

  6.  Tính (iii) số mức cần thiết nếu chúng ta tổ chức chỉ mục thứ cấp thành một cấu trúc chỉ mục đa mức. Ans: Ta đã biết số khối của chỉ mục ở cấp thứ nhất là 883, với độ phân nhánh là 34, số khối ở mức thứ hai của chỉ mục đa mức sẽ là 883/34  = 26 . Suy ra số khối ở mức kế tiếp của chỉ mục đa mức là 26/34  = 1 khối. Do đó mức ba là mức cao nhất của chỉ mục đa cấp và số mức cần thiết của cấu trúc chỉ mục đa mức x = 3.  Tính (iv) số khối cần thiết của cấu trúc chỉ mục đa mức. Ans: Mức ba chứa 1 khối gồm 34 phần tử mà sẽ có 34 block pointer , mỗi block pointer chỉ đến một block ở mức hai. Như vậy mức hai sẽ có 34 block. Mức hai chứa 34 block sẽ gồm 34* 34 block pointer chỉ đến 34*34 block ở mức một. Như vậy toàn chỉ mục đa mức có tổng cọng 1 + 34 + 34*34 = 1+ 34 + 1156 = 1191 khối. (Cũng bằng với trường hợp chỉ mục sơ cấp là đa mức)

  7.  Tính (v) số lần truy đạt khối cần thiết để khi dùng chỉ mục đa mức vừa nêu. Ans: Vì chỉ mục có ba mức nên cần tất cả 3 lần truy đạt khối. (Cũng bằng với trường hợp chỉ mục sơ cấp là đa mức)  Tính (vi) số lần truy đạt khối cần thiết để khi dùng chỉ mục sơ cấp để tìm kiếm và truy xuất một bản ghi từ tập tin dữ liệu khớp với một trị SSN cho trước. Ans: Nếu chỉ mục thứ cấp chỉ có một mức, ta sẽ tốn log2bi với bi là số khối của chỉ mục. Ở đây bi = 883 và log2(883) = 10 lần truy đạt khối. Và thêm một lần truy đạt khối để tìm đếm bản ghi tương ứng trên tập tin dữ liệu. Như vậy tổng cọng tốn 10+1 = 11 lần truy đạt khối. (Như vậy so với chỉ có 9 lần truy đạt khối nếu có chỉ mục sơ cấp trên SSN, thì sẽ tốn hơn 2 lần truy đạt khối) Nếu chỉ mục thứ cấp là chỉ mục đa mức thì nó gồm 3 mức như ở câu (iii) thì sẽ tốn một lần truy đạt khối ở mỗi mức của chỉ mục và một lần truy đạt khối tại tập tin dữ liệu , tức là ta cần tổn cọng x +1 = 3 +1 = 4 lần truy đạt khối. (Như vậy số lần truy đạt khối ở đây bằng với số lần truy đạt khối khi sử dụng chỉ mục sơ cấp đa mức).

  8. e) Giả sử tập tin không sắp thứ tự theo thuộc tính DEPARTMENTCODE và chúng ta muốn tạo một cấu trúc chỉ mục thứ cấp theo DEPARTMENTCODE theo lối dùng một mức trung gian để chứa các record pointer. Giả sử rằng chỉ có 1000 trị khác nhau cho DEPARTMENTCODE và các bản ghi của tập tin EMPLOYEE phân bố đều theo các trị này.  Tính (i) Hệ số phân khối của chỉ mục thứ cấp này. Ans: Kích thước của mỗi phần tử (entry) trong chỉ mục là Ri = 9 + 6 = 15 Hệ số phân khối của chỉ mục là: : bfri = B/Ri= 512/15 = 34 phần tử mỗi block.  Tính (ii) số block cần cho mức trung gian để chứa các record pointer. Ans: Số block ở mức trung gian sẽ bằng với số phần tử trong chỉ mục thứ cấp, tức bằng với số trị khác nhau của DEPARTMENTCODE, tức là 1000 block.

  9. Tính (iii) số phần tử (entry) của chỉ mục thứ cấp ở mức thứ nhất và số khối của chỉ mục thứ cấp ở mức thứ nhất. Ans: Số phần tử (entry) của chỉ mục thứ cấp ở mức thứ nhất bằng với số trị khác nhau của DEPARTMENTCODE, tức là 1000. Số khối của chỉ mục thứ cấp ở mức thứ nhất là 1000/bfri = 1000/34 = 30 block.  Tính (iv) số mức cần thiết nếu chúng ta tổ chức chỉ mục thứ cấp thành một cấu trúc chỉ mục đa mức. Ans: Ta đã biết số khối của chỉ mục ở mức thứ nhất là 30, với độ phân nhánh là 34, số khối ở mức thứ hai của chỉ mục đa mức sẽ là 30/34  = 1. Do đó mức hai là mức cao nhất của chỉ mục đa cấp và số mức cần thiết của cấu trúc chỉ mục đa mức x = 2.

  10.  Tính (v) số khối cần thiết của cấu trúc chỉ mục đa mức. Ans: Mức hai chứa 1 khối gồm 34 phần tử mà sẽ có 34 block pointer , mỗi block pointer này chỉ đến một block ở mức một. Như vậy mức một sẽ có 34 block. Như vậy toàn chỉ mục đa mức có tổng cọng 1 + 34 = 35 khối. Và cần thêm 1000 khối cho mức trung gian. Như vậy tốn tất cả 35 + 1000 = 1035 khối cho toàn cấu trúc chỉ mục thứ cấp. Tính (vi) số lần truy đạt khối cần thiết để khi dùng chỉ mục thứ cấp để tìm kiếm và truy xuất tất cả các bản ghi từ tập tin dữ liệu khớp với một trị DEPARTMENTCODE cho trước. Ans: Nếu có s bản ghi từ tập tin dữ liệu khớp với một trị DEPARTMENTCODE thì ta tốn x lần truy đạt khối khi duyệt qua chỉ mục cọng thêm 1 lần truy đạt khối cho mức trung gian và xấp xỉ s lần truy đạt khối để tìm tới các bản ghi khớp với trị DEPARTMENTCODE cần tìm mà phân bố đều trên toàn tập tin dữ liệu. Tức là x + 1+ s = 2 + 1+ s = 3+ s lần truy đạt khối.

  11. f) Giả sử tập tin sắp thứ tự theo thuộc tính DEPARTMENTCODE và chúng ta muốn tạo một cấu trúc chỉ mục cụm theo DEPARTMENTCODE mà dùng lối block anchor (mỗi trị mới của DEPARTMENTCODE bắt đầu một block mới trong tập tin dữ liệu).Giả sử rằng chỉ có 1000 trị khác nhau cho DEPARTMENTCODE và các bản ghi của tập tin EMPLOYEE phân bố đều theo các trị này.  Tính (i) Hệ số phân khối của chỉ mục thứ cấp này. Ans: Kích thước của mỗi phần tử (entry) trong chỉ mục là Ri = 9 + 6 = 15 Hệ số phân khối của chỉ mục là: : bfri= B/Ri= 512/15 = 34 phần tử mỗi block.  Tính (ii) số phần tử (entry) của chỉ mục cụm ở mức thứ nhất và số khối của chỉ mục cụm ở mức thứ nhất. Ans: Số phần tử (entry) của chỉ mục thứ cấp ở mức thứ nhất bằng với số trị khác nhau của DEPARTMENTCODE, tức là 1000. Số khối của chỉ mục thứ cấp ở mức thứ nhất là 1000/bfri  = 1000/34 = 30 block.

  12.  Tính (iii) số mức cần thiết nếu chúng ta tổ chức chỉ mục cụm thành một chỉ mục đa mức. Ans: Ta đã biết số khối của chỉ mục ở mức thứ nhất là 30, với độ phân nhánh là 34, số khối ở mức thứ hai của chỉ mục đa mức sẽ là 30/34  = 1 khối. Do đó mức hai là mức cao nhất của chỉ mục đa mức và số mức cần thiết của cấu trúc chỉ mục đa mức x = 2.  Tính (iv) số khối cần thiết của chỉ mục đa mức. Ans: Mức hai chứa 1 khối gồm 34 phần tử mà sẽ có 34 block pointer , mỗi block pointer này chỉ đến một block ở mức một. Như vậy mức một sẽ có 34 block. Và toàn chỉ mục đa mức có tổng cọng 1 + 34 = 35 khối.

  13.  Tính (v) số lần truy đạt khối cần thiết để khi dùng chỉ mục sơ cấp để tìm kiếm và truy xuất tất cả các bản ghi từ tập tin dữ liệu khớp với một trị DEPARTMENTCODE cho trước. Ans: Nếu có s bản ghi từ tập tin dữ liệu khớp với một trị DEPARTMENTCODE thì ta tốn x lần truy đạt khối khi duyệt qua chỉ mục và cọng thêm xấp xỉ s/bfr = s/4 lần truy đạt khối để tìm tới các bản ghi khớp với trị DEPARTMENTCODE cần tìm mà phân bố đều trên toàn tập tin dữ liệu. Tức là tổng cọng x + s/4 = 2 + s/4 lần truy đạt khối.

  14. g) Giả sử tập tin không sắp thứ tự theo thuộc tính khóa SSN và chúng ta muốn xây dựng một cấu trúc chỉ mục B+-tree trên thuộc tính SSN.  Tính (i) các bậc p và pleaf của cấu trúc B+-tree. Ans: Chỉ mục này là chỉ mục thứ cấp (dày) vì lập chỉ mục trên thuộc tính khóa.. Vì mục tin SSN có kích thước V = 9 byte, kích thước block B = 512 byte, một block pointer chiếm P = 6 byte và một record pointer chiếm Pr = 7 byte. Mỗi nút nội của B+-tree node có tối đa p tree pointer, và p -1 trị khóa tìm kiếm. Tất cả phải chứa gọn trong một block đĩa nếu mỗi nút nội của B+-tree tương ứng với một block trên đĩa. (p*P) + (p-1)*V ≤ B (p*6)+ (p-1)*9 ≤ 512 15*p ≤ 521 p ≤ 34 Ta chọn p = 34.

  15. Các nút là của B+-tree sẽ có cùng số những trị khóa và trị pointer như ở nút nội, ngoại trừ các pointers ở đây là các data pointer và các next pointer để liên kết với các nút lá khác. Do đó, bậc của nút là được tính như sau:: (pleaf*(Pr+V)+ P ≤ B (pleaf*(7+9))+ 6 ≤ 512 16*pleaf ≤ 506 pleaf ≤ 31. We choose pleaf = 31.  Tính (ii) số block mà ở mức lá cần, giả sử các block thường đầy ở khoảng 69%. Ans: Nếu các nút lá thường đầy khoảng 69% thì mỗi nút lá thường chứa khoảng 0.69*pleaf = 31*69% = 21 phần tử. Với số giá trị khác nhau của SSN là 30000. Ta cần tất cả 30000 phần tử ở mức lá. Do đó ta cần 30000/21 = 1429 nút lá. Nói cách khác, số khối mà ở mức là cần 1429 khối.

  16.  Tính (iii) số mức mà cấu trúc chỉ mục B+-tree cần, giả sử các nút nội đầy khoảng 69%. Ans: Nếu các nút nội thường đầy khoảng 69% thì mỗi nút nội thường chứa khoảng 0.69*p = 34*69% = 23 pointer và như vậy chứa khoảng 22 phần tử. Số nút ở mức nút nội trên nút lá nên là:  1429/23 = 63 Và số nút ở mức nút nội trên đó nữa nên là: 63/23 = 3 Và số nút nội ở mức trên cùng là: 3/23  = 1 Tóm lại cây B+ có bốn mức: Nút rễ: 1 nút chứa 3 pointer Mức 1: 3 nút nội Mức 2: 63 nút nội Mức 3: 1429 nút lá  Tính (iv) tổng số block cần có cấu trúc chỉ mục B+-tree nói trên: Ans: Tổng cọng là 1+ 3 + 63 + 1429 = 1496 block.

  17.  Tính (v) số lần truy đạt khối cần thiết để khi dùng chỉ mục thứ cấp B+-tree để tìm kiếm và truy xuất một bản ghi từ tập tin dữ liệu khớp với một trị SSN cho trước. Ans : Tốn tất cả 4 lần truy đạt khối trên cây B+ và một lần truy đạt khối để tìm tới bản ghi khớp với trị khóa SSN cần tìm. Tức là 4 + 1 = 5 lần truy đạt khối.

More Related