PHÂN TÍCH THIẾT KẾ THUẬT TOÁN B-TREES

49 1.9K 10
PHÂN TÍCH THIẾT KẾ THUẬT TOÁN B-TREES

Đ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

11 PHÂN TÍCH THIẾT KẾ THUẬT TOÁN B-TREES Nhóm 7: Sử Minh Đạt Phan Nguyễn Ý Nhi Cung Nguyễn Phước Tài Trần Hữu Tấn Lê Thị Thanh Thủy GVHD: TS. HOÀNG QUANG 2 2 NỘI DUNG TRÌNH BÀY 1.Tổng quan: Trần Hữu Tấn 2. Định nghĩa: Cung Nguyễn Phước Tài 3.Thủ tục tìm kiếm, tạo: Lê Thị Thanh Thủy 4.Thủ tục chèn, tách: Sử Minh Đạt 5.Thủ tục xóa: Phan Nguyễn Ý Nhi 3 3 TỔNG QUAN - B-tree là cấu trúc dữ liệu phù hợp cho việc lưu trữ ngoài do R.Bayer và E.M.McCreight đưa ra năm 1972. - B-tree là cây tìm kiếm cân bằng. - B-tree tương tự như cây đỏ đen. 4 4 So sánh giữa B-tree và cây Đỏ Đen: - Giống nhau: + Cây cân bằng. + Cây có n nút đều có chiều cao là O(lg n). - Khác nhau: B-tree Cây Đỏ Đen Một nút có thể có một đến hàng ngàn nút con. Một nút có tối đa 2 nút con. TỔNG QUAN (tt) 5 5 TỔNG QUAN (tt) Thời gian tìm kiếm trên B-Tree rất nhanh, cho nên cây này thường được dùng để quản lý cơ sở dữ liệu và công cụ tìm kiếm như Google đều dùng B-Tree. - Sự quay của đĩa. - Sự chuyển động của cần điều khiển. Rãnh từTrục xoay Đầu đọc ghi Bề mặt đĩa Rãnh từ Cần điều khiển Một ổ đĩa từ thông thường. 6 6 TỔNG QUAN (tt) Có hai thao tác chính mà B-Tree thường sử dụng là: - Thao tác DISK-READ(x) để đọc đối tượng x vào bộ nhớ chính trước khi chúng ta yêu cầu những trường của nó. - Thao tác DISK-WRITE(x) được sử dụng để lưu trữ bất cứ thay đổi nào tác động đến các trường của đối tượng x. Vì trong hầu hết các hệ thống, thời gian thực thi của thuật toán cây B-tree được quyết định chính bởi số lượng các thao tác DISK-READ và DISK-WRITE được thực hiện, điều này cho thấy việc sử dụng những thao tác trên càng hiệu quả sẽ dẫn đến việc đọc và ghi thông tin càng nhiều. Vì vậy, một nút của B-tree thường có kích thước rộng bằng với toàn bộ một trang trên đĩa. Do đó số lượng nút con của nó có thể bị giới hạn bởi kích thước một trang trên đĩa. 7 VÍ DỤ MINH HỌA  Một B-Tree có khóa là các phụ âm tiếng anh. 7 root[T]: Con trỏ trỏ đến nút gốc. 8 ĐỊNH NGHĨA B-TREE  Một B-Tree có gốc T có các tính chất: – Một nút x trên cây có các trường sau: • n[x] : Số các khóa hiện tại được lưu tại nút x. • key i [x] : Một khóa thứ i được lưu tại nút x. (với 1<=i<j<=n[x], thì key i [x]<=key j [x]) • leaf[x] : nhận giá trị TRUE nếu x là nút lá, nhận giá trị FALSE nếu x không là nút lá (nút thường). 8 key 1 [x] key 2 [x] leaf[x]=false 9 TÍNH CHẤT B-TREE - Mỗi nút thường x chứa n[x] + 1 con trỏ: c 1 [x], c 2 [x], , c n[x]+1 [x] trỏ tới các nút con của nó. Các nút lá không có nút con do vậy trường c i của nó không được định nghĩa. 9 c 1 [x] c 2 [x] c 3 [x] 10 TÍNH CHẤT B TREE (tt) – Các khoá key i [x] tách thành các vùng khóa và được lưu trữ thành mỗi cây con tương ứng: nếu k i là một khoá bất kỳ được lưu trữ trong cây con có gốc là c i [x] thì k 1 ≤ key 1 [x] ≤ k 2 ≤ key 2 [x] ≤··· ≤ key n[x] [x] ≤ k n[x]+1 . – Tất cả các nút lá có cùng chiều cao h. 10 k 1 = C key 1 [x]=D [...]... 2t-1 khoá (được gọi nút đầy) 11 11 ĐỊNH LÝ  Nếu n ≥ 1 thì với bất kỳ B-Tree T n khóa, có mức tối thiểu t ≥ 2 thì có chiều cao: n +1 h ≤ log t ( ) 2 12 CÁC PHÉP TOÁN CƠ BẢN TRÊN B-TREE Trong phần này, ta trình bày các chi tiết của các phép toán B-TREE-SEARCH, B-TREE-CREATE, và B-TREE-INSERT Trong các thủ tục này, ta chấp nhận 2 quy ước:  Gốc của B-Tree luôn nằm trong bộ nhớ chính, để không bao giờ... nhiên, ta cần một DISK-WRITE của gốc, mỗi khi nút gốc thay đổi  Mọi nút được chuyền dưới dạng các tham số phải có sẵn một phép toán DISK-READ được thực hiện trên chúng 13 TÌM KIẾM KHÓA TRONG B-TREE Tìm kiếm trong một B-Tree cũng giống như tìm kiếm trong một cây tìm kiếm nhị phân, thay vì thực hiện rẽ nhánh “2-chiều” tại mỗi nút, ta thực hiện rẽ nhánh đa chiều theo số lượng các con của nút.Tại mỗi nút... chiều  B-TREE-SEARCH chấp nhận dưới dạng nhập liệu một biến trỏ đến nút gốc x của một cây con và một khóa k để tìm kiếm trong cây con đó  Như vậy lệnh gọi trên cùng có dạng B-TREESEARCH (root[T], k) Nếu k nằm trong B-Tree, B-TREESEARCH trả về cặp có thứ tự (y, i) bao gồm một nút y và một chỉ số i sao cho keyi[y] = k Ngược lại, giá trị NIL được trả về 14 TÌM KIẾM KHÓA TRONG B-TREE B-TREE-SEARCH(x,... hai thủ tục này dùng một thủ tục phụ ALLOCATENODE, phân bổ một trang đĩa sẽ được dùng làm một nút mới trong O(1) thời gian  Ta có thể mặc nhận một nút mà ALLOCATE-NODE tạo không yêu cầu DISK-READ 19 TẠO MỘT B-TREE TRỐNG B-TREE-CREATE(T) 1 xALLOCATE-NODE() 2 leaf [x]  TRUE 3 n[x]  0 4 DISK –WRITE(x) 5 root[T]  x → B-TREE-CREATE yêu cầu O(1) phép toán đĩa và O(1) thời gian CPU 20 CHÈN MỘT KHÓA VÀO . 11 PHÂN TÍCH THIẾT KẾ THUẬT TOÁN B-TREES Nhóm 7: Sử Minh Đạt Phan Nguyễn Ý Nhi Cung Nguyễn Phước Tài Trần Hữu. động đến các trường của đối tượng x. Vì trong hầu hết các hệ thống, thời gian thực thi của thuật toán cây B-tree được quyết định chính bởi số lượng các thao tác DISK-READ và DISK-WRITE được. 2 thì có chiều cao: ) 2 1 (log + ≤ n h t 13 CÁC PHÉP TOÁN CƠ BẢN TRÊN B-TREE.  Trong phần này, ta trình bày các chi tiết của các phép toán B-TREE-SEARCH, B-TREE-CREATE, và B-TREE-INSERT. Trong

Ngày đăng: 11/04/2015, 22:04

Mục lục

    VÍ DỤ MINH HỌA

    TÍNH CHẤT B TREE (tt)

    TÍNH CHẤT B-TREE (tt)

    TÌM KIẾM KHÓA TRONG B-TREE

    TẠO MỘT B-TREE TRỐNG

    CHÈN MỘT KHÓA VÀO B-TREE

    VÍ DỤ TÁCH MỘT NÚT ĐẦY

    TÁCH MỘT NÚT GỐC ĐẦY

    CHÈN MỘT KHÓA VÀO CÂY B

    VÍ DỤ CHÈN KHÓA k VÀO NÚT KHÔNG ĐẦY

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

Tài liệu liên quan