Presentation is loading. Please wait.

Presentation is loading. Please wait.

CPS216: Advanced Database Systems

Similar presentations


Presentation on theme: "CPS216: Advanced Database Systems"— Presentation transcript:

1 CPS216: Advanced Database Systems
Notes 06: Operators for Data Access (contd.) Shivnath Babu

2 Insertion in a B-Tree n = 2 49 15 36 49 Insert: 62

3 Insertion in a B-Tree n = 2 49 15 36 49 62 Insert: 62

4 Insertion in a B-Tree n = 2 49 15 36 49 62 Insert: 50

5 Insertion in a B-Tree n = 2 49 62 15 36 49 50 62 Insert: 50

6 Insertion in a B-Tree n = 2 49 62 15 36 49 50 62 Insert: 75

7 Insertion in a B-Tree n = 2 49 62 15 36 49 50 62 75 Insert: 75

8 Insertion

9 Insertion

10 Insertion

11 Insertion

12 Insertion

13 Insertion

14 Insertion

15 Insertion

16 Insertion

17 Insertion

18 Insertion

19 Insertion: Primitives
Inserting into a leaf node Splitting a leaf node Splitting an internal node Splitting root node

20 Inserting into a Leaf Node
58 54 57 60 62

21 Inserting into a Leaf Node
58 54 57 60 62

22 Inserting into a Leaf Node
58 54 57 58 60 62

23 Splitting a Leaf Node 61 54 66 54 57 58 60 62

24 Splitting a Leaf Node 61 54 66 54 57 58 60 62

25 Splitting a Leaf Node 61 54 66 54 57 58 60 61 62

26 Splitting a Leaf Node 59 61 54 66 54 57 58 60 61 62

27 Splitting a Leaf Node 61 54 59 66 54 57 58 60 61 62

28 Splitting an Internal Node
21 99 59 40 54 66 74 84 [54, 59) [ 59, 66) [66,74)

29 Splitting an Internal Node
21 99 59 40 54 66 74 84 [54, 59) [ 59, 66) [66,74)

30 Splitting an Internal Node
66 21 99 [66, 99) [21,66) 40 54 59 74 84 [54, 59) [ 59, 66) [66,74)

31 Splitting the Root 59 40 54 66 74 84 [54, 59) [ 59, 66) [66,74)

32 Splitting the Root 59 40 54 66 74 84 [54, 59) [ 59, 66) [66,74)

33 Splitting the Root 66 40 54 59 74 84 [54, 59) [ 59, 66) [66,74)

34 Deletion

35 Deletion redistribute

36 Deletion

37 Deletion - II

38 Deletion - II merge

39 Deletion - II

40 Deletion - II

41 Deletion - II

42 Deletion - II Not needed merge

43 Deletion - II

44 Deletion: Primitives Delete key from a leaf
Redistribute keys between sibling leaves Merge a leaf into its sibling Redistribute keys between two sibling internal nodes Merge an internal node into its sibling

45 Merge Leaf into Sibling
72 67 85 54 58 64 68 72 75

46 Merge Leaf into Sibling
72 67 85 54 58 64 68 75

47 Merge Leaf into Sibling
72 67 85 54 58 64 68 75

48 Merge Leaf into Sibling
72 85 54 58 64 68 75

49 Merge Internal Node into Sibling
59 41 48 52 63 74 [52, 59) [59,63)

50 Merge Internal Node into Sibling
59 41 48 52 59 63 [52, 59) [59,63)

51 B-Tree Roadmap B-Tree B-Tree variants Hash-based Indexes Recap
Insertion (recap) Deletion Construction Efficiency B-Tree variants Hash-based Indexes

52 How does insertion-based construction perform?
Question How does insertion-based construction perform?

53 B-Tree Construction Sort 48 57 41 15 75 21 62 34 81 11 97 13

54 B-Tree Construction 11 13 15 21 34 41 48 57 62 75 81 97 11 13 15 21 34 41 48 57 62 75 81 97 Scan

55 B-Tree Construction 21 48 75 11 13 15 21 34 41 48 57 62 75 81 97 Scan

56 Why is sort-based construction better than insertion-based one?
B-Tree Construction Why is sort-based construction better than insertion-based one?

57 Cost of B-Tree Operations
Height of B-Tree: H Assume no duplicates Question: what is the random I/O cost of: Insertion: Deletion: Equality search: Range Search:

58 Height of B-Tree Number of keys: N B-Tree parameter: n log N
Height ≈ log N = n log n In practice: 2-3 levels

59 Question: How do you pick parameter n?
Ignore inserts and deletes Optimize for equality searches Assume no duplicates

60 Roadmap B-Tree B-Tree variants Hash-based Indexes Sparse Index
Duplicate Keys Hash-based Indexes

61 Roadmap B-Tree B-Tree variants Hash-based Indexes Static Hash Table
Extensible Hash Table Linear Hash Table

62 Hash-Based Indexes Adaptations of main memory hash tables
Support equality searches No range searches

63 Indexing Problem (recap)
Index Keys record pointers a 1 2 i n A = val

64 Main Memory Hash Table buckets 32 48 (null) 1 key 2 10 (null) h (key)
48 (null) 1 key 2 10 (null) h (key) 3 27 75 (null) 4 h (key) = key % 8 5 21 (null) 6 7 55 (null)

65 Adapting to disk 1 Hash Bucket = 1 Block
All keys that hash to bucket stored in the block Intuition: keys in a bucket usually accessed together No need for linked lists of keys …

66 Adapting to Disk How do we handle this?

67 Adapting to disk 1 Hash Bucket = 1 Block
All keys that hash to bucket stored in the block Intuition: keys in a bucket usually accessed together No need for linked lists of keys … … but need linked list of blocks (overflow blocks)

68 Adapting to Disk

69 Adapting to disk Bucket Id  Disk Address mapping Contiguous blocks
Store mapping in main memory Too large? Dynamic  Linear and Extensible hash tables

70 Beware of claims that assume 1 I/O for hash tables and 3 I/Os for B-Tree!!


Download ppt "CPS216: Advanced Database Systems"

Similar presentations


Ads by Google