B trees B Caây Ch 4 B Trees Caáu truùc döõ lieäu trong boä nhôù ngoaøi B caây toång quaùt hoaù caây tìm kieám nhò phaân “Heä soá phaân nhaùnh” (branching factor) B caây laø caây tìm kieám caân baèng ñ[.]
B-Cây 22.9.2004 Ch 4: B-Trees Cấu trúc liệu nhớ ° ° ° B-cây tổng quát hoá tìm kiếm nhị phân – “Hệ số phân nhánh” (branching factor) B-cây tìm kiếm cân thiết kế để làm việc hữu hiệu nhớ (đóa cứng) – Bộ nhớ (main memory) – Bộ nhớ (secondary storage) ° Disk – Track – Page Thời gian chạy gồm – số truy cập vào đóa – thời gian CPU 22.9.2004 Ch 4: B-Trees Truy cập đóa ° ° Một nút B-cây thường chiếm nguyên disk page Hệ số phân nhánh tùy thuộc vào tỉ lệ kích thước khóa kích thước disk page 22.9.2004 Ch 4: B-Trees Các thao tác lên đóa ° ° Cho x trỏ đến đối tượng (ví dụ: nút B-cây) Đối tượng x có nhiều trường – Nếu x nằm nhớ chính, truy cập trường x thường lệ, ví dụ key[x], leaf [x], – Nếu x nằm đóa dùng DISK-READ(x) để đọc vào nhớ – Nếu x thay đổi dùng DISK-WRITE(x) để trữ vào đóa x trỏ đến đối tượng Cách làm việc tiêu biểu với đối tượng x DISK-READ(x) thao tác truy cập/thay đổi trường x DISK-WRITE(x) thao tác không thay đổi trường x 22.9.2004 Ch 4: B-Trees Hệ số phân nhánh ° Ví dụ B-cây mà: – nút có 1000 khóa, tức B-cây có hệ số phân nhánh 1001 root[T] nút 1000 khóa 1000 khóa 1001 nhánh 1000 1001 1000 22.9.2004 1000 1000 1001 1001 1000 1000 Ch 4: B-Trees 1001 nút 1.001.000 khóa 1.002.001 nút 1.002.001.000 khóa Định nghóa B-cây ° Một B-cây T có gốc, mà gốc root[T], có tính chất sau – Mỗi nút x có trường sau ° n[x], số lượng khóa chứa nút x ° khóa: có n[x] khóa, xếp theo thứ tự không giảm, tức key1[x] key2[x] keyn[x ][x] leaf [x], có trị bool TRUE x FALSE x nút – Mỗi nút x chứa n[x] trỏ c1 [x], c2 [x],…, cn[x ]+1[x] đến nút ° 22.9.2004 Ch 4: B-Trees Định nghóa B-cây (tiếp) Mô hình nút B-caây ] [1 x [x] i i y y ke ke x N W ci [x] 22.9.2004 Ch 4: B-Trees Định nghóa B-cây (tiếp) – Nếu ki khóa trữ có gốc ci [x] • k key [x] k key [x] k 1 2 n[x ] keyn[x ][x] kn[x ]+1 ] [1 x [x] i i y y ke ke N W x ci [x] ki 22.9.2004 Ch 4: B-Trees Định nghóa B-cây (tiếp) – Tất có độ sâu, chiều cao h – Có số nguyên t gọi bậc tối thiểu cho ° Mọi nút nút gốc phải có t khóa Nếu nút gốc phải có khóa ° Mổi nút chứa tối đa 2t khóa Một nút đầy chứa 2t khóa 22.9.2004 Ch 4: B-Trees Chiều cao B-cây Định lý Nếu n B-cây T với n khóa, chiều cao h, bậc tối thiểu t n 1 có h log t Chứng minh Có tối thiểu nút độ sâu 1, 2t nút độ sâu 2, , 2t h nút độ sâu h Vậy số khóa tối thiểu h i n 1 (t 1) 2t i 1 th 1 2(t 1) t1 2t h n 1 h t Do 22.9.2004 , từ suy định lý Ch 4: B-Trees 10 .. .Cấu trúc liệu nhớ ° ° ° B- cây tổng quát hoá tìm kiếm nhị phân – “Hệ số phân nhánh” (branching factor) B- cây tìm kiếm cân thiết kế để làm việc hữu hiệu nhớ (đóa cứng) – B? ?? nhớ (main... 4: B- Trees t1 t t 11 Các thao tác lên B- cây ° ° Các thao tác lên B- cây: – B- TREE-SEARCH – B- TREE-CREATE – B- TREE-INSERT – B- TREE-DELETE Trong thủ tục ta quy ước: – Gốc B- cây luôn nằm nhớ. .. nhớ (main memory) – B? ?? nhớ (secondary storage) ° Disk – Track – Page Thời gian chạy gồm – số truy cập vào đóa – thời gian CPU 22.9.2004 Ch 4: B- Trees Truy cập đóa ° ° Một nút B- cây thường chiếm