CS 245: Database System Principles Notes 4: Indexing

Slides:



Advertisements
Similar presentations
Index tuning-- B+tree. overview Variation on B+tree: B-tree (no +) Idea: –Avoid duplicate keys –Have record pointers in non-leaf nodes.
Advertisements

Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Hash-Based Indexes Chapter 11.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Hash-Based Indexes Chapter 11.
Hashing and Indexing John Ortiz.
Chapter 11 (3 rd Edition) Hash-Based Indexes Xuemin COMP9315: Database Systems Implementation.
Dr. Kalpakis CMSC 661, Principles of Database Systems Index Structures [13]
Indexes. Primary Indexes Dense Indexes Pointer to every record of a sequential file, (ordered by search key). Can make sense because records may be much.
1 Advanced Database Technology Anna Östlin Pagh and Rasmus Pagh IT University of Copenhagen Spring 2004 March 4, 2004 INDEXING II Lecture based on [GUW,
CS4432: Database Systems II
Indexing Techniques. Advanced DatabasesIndexing Techniques2 The Problem What can we introduce to make search more efficient? –Indices! What is an index?
CS CS4432: Database Systems II Basic indexing.
1 CS143: Index. 2 Topics to Learn Important concepts –Dense index vs. sparse index –Primary index vs. secondary index (= clustering index vs. non-clustering.
CPSC-608 Database Systems Fall 2011 Instructor: Jianer Chen Office: HRBB 315C Phone: Notes #10.
CS 277 – Spring 2002Notes 41 CS 277: Database System Implementation Notes 4: Indexing Arthur Keller.
1 Advanced Database Technology Anna Östlin Pagh and Rasmus Pagh IT University of Copenhagen Spring 2004 February 19, 2004 INDEXING I Lecture based on [GUW,
CPSC-608 Database Systems Fall 2008 Instructor: Jianer Chen Office: HRBB 309B Phone: Notes #7.
1 Hash-Based Indexes Chapter Introduction  Hash-based indexes are best for equality selections. Cannot support range searches.  Static and dynamic.
CS 4432lecture #10 - indexing & hashing1 CS4432: Database Systems II Lecture #10 Professor Elke A. Rundensteiner.
CS 4432lecture #71 CS4432: Database Systems II Lecture #7 Professor Elke A. Rundensteiner.
CS 245Notes 41 CS 245: Database System Principles Notes 4: Indexing Hector Garcia-Molina.
1 Database Tuning Rasmus Pagh and S. Srinivasa Rao IT University of Copenhagen Spring 2007 February 8, 2007 Tree Indexes Lecture based on [RG, Chapter.
1 CS143: Index. 2 Topics to Learn Important concepts –Dense index vs. sparse index –Primary index vs. secondary index (= clustering index vs. non-clustering.
CS 255: Database System Principles slides: B-trees
Index tuning-- B+tree. overview © Dennis Shasha, Philippe Bonnet 2001 B+-Tree Locking Tree Traversal –Update, Read –Insert, Delete phantom problem: need.
1 CS232A: Database System Principles INDEXING. 2 Given condition on attribute find qualified records Attr = value Condition may also be Attr>value Attr>=value.
12.1 Chapter 12: Indexing and Hashing Spring 2009 Sections , , Problems , 12.7, 12.8, 12.13, 12.15,
Hashing and Hash-Based Index. Selection Queries Yes! Hashing  static hashing  dynamic hashing B+-tree is perfect, but.... to answer a selection query.
DBMS 2001Notes 4.1: B-Trees1 Principles of Database Management Systems 4.1: B-Trees Pekka Kilpeläinen (after Stanford CS245 slide originals by Hector Garcia-Molina,
Index Tuning Conventional index Secondary index To speed up queries on attributes not within primary key Primary index –Determine.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Hash-Based Indexes Chapter 11 Modified by Donghui Zhang Jan 30, 2006.
Introduction to Database, Fall 2004/Melikyan1 Hash-Based Indexes Chapter 10.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Indexed Sequential Access Method.
Database Management Systems, R. Ramakrishnan and J. Gehrke1 Hash-Based Indexes Chapter 10.
Index Tuning Conventional index. Overview.
Indexes. Primary Indexes Dense Indexes Pointer to every record of a sequential file, (ordered by search key). Can make sense because records may be much.
Marwan Al-Namari Hassan Al-Mathami. Indexing What is Indexing? Indexing is a mechanisms. Why we need to use Indexing? We used indexing to speed up access.
B+ tree & B tree Extracted from Garcia Molina
1 Chapter 12: Indexing and Hashing Indexing Indexing Basic Concepts Basic Concepts Ordered Indices Ordered Indices B+-Tree Index Files B+-Tree Index Files.
1 CSCE 520 Test 2 Info Indexing Modified from slides of Hector Garcia-Molina and Jeff Ullman.
CS4432: Database Systems II
1 Query Processing Part 3: B+Trees. 2 Dense and Sparse Indexes Advantage: - Simple - Index is sequential file good for scans Disadvantage: - Insertions.
1 Ullman et al. : Database System Principles Notes 4: Indexing.
Access Structures COMP3211 Advanced Databases Dr Nicholas Gibbins
COMP3017 Advanced Databases
Indexing and hashing.
CS 728 Advanced Database Systems Chapter 18
Azita Keshmiri CS 157B Ch 12 indexing and hashing
CS 245: Database System Principles Notes 4: Indexing
CS522 Advanced database Systems
Tree-Structured Indexes
Indexing ? Why ? Need to locate the actual records on disk without having to read the entire table into memory.
CS 245: Database System Principles Notes 4: Indexing
CS232A: Database System Principles INDEXING
COMP 430 Intro. to Database Systems
Hash-Based Indexes Chapter 11
Database Management Systems (CS 564)
Introduction to Database Systems
Yan Huang - CSCI5330 Database Implementation – Access Methods
(Slides by Hector Garcia-Molina,
B+-Trees and Static Hashing
CS222: Principles of Data Management Notes #8 Static Hashing, Extendible Hashing, Linear Hashing Instructor: Chen Li.
Hash-Based Indexes Chapter 10
CS222P: Principles of Data Management Notes #8 Static Hashing, Extendible Hashing, Linear Hashing Instructor: Chen Li.
Hash-Based Indexes Chapter 11
B+Tree Example n=3 Root
Database Systems (資料庫系統)
Database Design and Programming
Indexing 4/11/2019.
CS222/CS122C: Principles of Data Management UCI, Fall 2018 Notes #07 Static Hashing, Extendible Hashing, Linear Hashing Instructor: Chen Li.
Index Structures Chapter 13 of GUW September 16, 2019
Presentation transcript:

CS 245: Database System Principles Notes 4: Indexing Hector Garcia-Molina CS 245 Notes 4

Chapter 4 Indexing & Hashing value record ? value CS 245 Notes 4

Topics Conventional indexes B-trees Hashing schemes CS 245 Notes 4

Sequential File 20 10 40 30 60 50 80 70 100 90 CS 245 Notes 4

Sequential File Dense Index 10 20 30 40 50 60 70 80 90 100 10 20 30 40 110 120 100 90 CS 245 Notes 4

Sequential File Sparse Index 10 20 30 40 50 60 70 80 90 100 10 30 50 110 130 150 60 50 80 70 170 190 210 230 100 90 CS 245 Notes 4

Sequential File Sparse 2nd level 10 20 30 40 50 60 70 80 90 100 10 90 170 250 10 30 50 70 40 30 90 110 130 150 330 410 490 570 60 50 80 70 170 190 210 230 100 90 CS 245 Notes 4

{FILE,INDEX} may be contiguous or not (blocks chained) Comment: {FILE,INDEX} may be contiguous or not (blocks chained) CS 245 Notes 4

Question: Can we build a dense, 2nd level index for a dense index? CS 245 Notes 4

Notes on pointers: (1) Block pointer (sparse index) can be smaller than record pointer BP RP CS 245 Notes 4

Notes on pointers: (2) If file is contiguous, then we can omit pointers (i.e., compute them) CS 245 Notes 4

K1 K2 K3 K4 R1 say: R2 1024 B per block R3 R4 if we want K3 block: get it at offset (3-1)1024 = 2048 bytes R2 K2 K3 R3 K4 R4 CS 245 Notes 4

Sparse vs. Dense Tradeoff Sparse: Less index space per record can keep more of index in memory Dense: Can tell if any record exists without accessing file (Later: sparse better for insertions dense needed for secondary indexes) CS 245 Notes 4

Terms Index sequential file Search key (  primary key) Primary index (on Sequencing field) Secondary index Dense index (all Search Key values in) Sparse index Multi-level index CS 245 Notes 4

Next: Duplicate keys Deletion/Insertion Secondary indexes CS 245 Notes 4

Duplicate keys 10 20 10 30 20 30 45 40 CS 245 Notes 4

Dense index, one way to implement? Duplicate keys Dense index, one way to implement? 10 10 10 10 10 10 10 10 20 10 20 10 20 20 30 20 30 20 20 20 30 30 30 30 30 30 30 30 45 40 45 40 CS 245 Notes 4

Duplicate keys Dense index, better way? 10 10 20 20 30 30 40 45 10 20 CS 245 Notes 4

Duplicate keys Sparse index, one way? careful if looking for 20 or 30! 10 10 10 20 20 10 30 30 20 30 45 40 CS 245 Notes 4

place first new key from block Duplicate keys Sparse index, another way? place first new key from block 10 should this be 40? 10 20 30 20 10 30 30 20 30 45 40 CS 245 Notes 4

Duplicate values, primary index Summary Index may point to first instance of each value only File Index a a a . b CS 245 Notes 4

Deletion from sparse index 20 10 10 30 50 40 30 70 60 50 90 110 130 80 70 150 CS 245 Notes 4

Deletion from sparse index delete record 40 20 10 10 30 50 40 30 70 60 50 90 110 130 80 70 150 CS 245 Notes 4

Deletion from sparse index delete record 30 20 10 10 40 30 50 40 30 70 60 50 90 110 130 80 70 150 CS 245 Notes 4

Deletion from sparse index delete records 30 & 40 20 10 10 50 70 30 50 40 30 70 60 50 90 110 130 80 70 150 CS 245 Notes 4

Deletion from dense index 20 10 10 20 30 40 30 40 60 50 50 60 70 80 70 80 CS 245 Notes 4

Deletion from dense index delete record 30 20 10 10 20 40 40 30 30 40 40 60 50 50 60 70 80 70 80 CS 245 Notes 4

Insertion, sparse index case 20 10 10 30 40 30 60 50 40 60 CS 245 Notes 4

Insertion, sparse index case insert record 34 20 10 10 30 40 30 34 our lucky day! we have free space where we need it! 60 50 40 60 CS 245 Notes 4

Insertion, sparse index case insert record 15 20 10 15 20 30 10 30 40 30 60 50 40 Illustrated: Immediate reorganization Variation: insert new block (chained file) update index 60 CS 245 Notes 4

Insertion, sparse index case insert record 25 20 10 25 overflow blocks (reorganize later...) 10 30 40 30 60 50 40 60 CS 245 Notes 4

Insertion, dense index case Similar Often more expensive . . . CS 245 Notes 4

Secondary indexes 30 50 20 70 80 40 100 10 90 60 Sequence field CS 245 Notes 4

Secondary indexes does not make sense! Sparse index 30 50 20 70 80 40 Sequence field Sparse index does not make sense! 50 30 30 20 80 100 70 20 90 ... 40 80 10 100 60 90 CS 245 Notes 4

Secondary indexes Dense index sparse high level 30 50 20 70 80 40 100 Sequence field Dense index 10 20 30 40 50 60 70 ... 50 30 10 50 90 ... sparse high level 70 20 40 80 10 100 60 90 CS 245 Notes 4

With secondary indexes: Lowest level is dense Other levels are sparse Also: Pointers are record pointers (not block pointers; not computed) CS 245 Notes 4

Duplicate values & secondary indexes 10 20 40 20 40 10 40 10 40 30 CS 245 Notes 4

Duplicate values & secondary indexes one option... 10 20 10 20 Problem: excess overhead! disk space search time 40 20 20 30 40 40 10 40 10 40 ... 40 30 CS 245 Notes 4

Duplicate values & secondary indexes another option... 10 20 10 40 20 Problem: variable size records in index! 20 40 10 30 40 40 10 40 30 CS 245 Notes 4

Duplicate values & secondary indexes 10 20  10 20 30 40 40 20 40 10 50 60 ... 40 10  Another idea (suggested in class): Chain records with same key? 40 30   Problems: Need to add fields to records Need to follow chain to know records CS 245 Notes 4

Duplicate values & secondary indexes 10 20 10 20 30 40 40 20 50 60 ... 40 10 40 10 40 30 buckets CS 245 Notes 4

Why “bucket” idea is useful Indexes Records Name: primary EMP (name,dept,floor,...) Dept: secondary Floor: secondary CS 245 Notes 4

Query: Get employees in (Toy Dept) ^ (2nd floor) Dept. index EMP Floor index Toy 2nd  Intersect toy bucket and 2nd Floor bucket to get set of matching EMP’s CS 245 Notes 4

This idea used in text information retrieval Documents Inverted lists cat dog ...the cat is fat ... ...was raining cats and dogs... ...Fido the dog ... CS 245 Notes 4

IR QUERIES Find articles with “cat” and “dog” Find articles with “cat” or “dog” Find articles with “cat” and not “dog” Find articles with “cat” in title Find articles with “cat” and “dog” within 5 words CS 245 Notes 4

Common technique: more info in inverted list position location type d1 cat Title 5 Author 10 Abstract 57 d2 d3 dog Title 100 Title 12 CS 245 Notes 4

Size of a posting: 10-15 bits (compressed) Posting: an entry in inverted list. Represents occurrence of term in article Size of a list: 1 Rare words or (in postings) miss-spellings 106 Common words Size of a posting: 10-15 bits (compressed) CS 245 Notes 4

IR DISCUSSION Stop words Truncation Thesaurus Full text vs. Abstracts Vector model CS 245 Notes 4

Vector space model w1 w2 w3 w4 w5 w6 w7 … DOC = <1 0 0 1 1 0 0 …> Query= <0 0 1 1 0 0 0 …> PRODUCT = 1 + ……. = score CS 245 Notes 4

Tricks to weigh scores + normalize e.g.: Match on common word not as useful as match on rare words... CS 245 Notes 4

How to process V.S. Queries? w1 w2 w3 w4 w5 w6 … CS 245 Notes 4

Try Stanford Libraries Try Google, Yahoo, ... CS 245 Notes 4

Summary so far Conventional index Basic Ideas: sparse, dense, multi-level… Duplicate Keys Deletion/Insertion Secondary indexes Buckets of Postings List CS 245 Notes 4

Conventional indexes Advantage: - Simple - Index is sequential file good for scans Disadvantage: - Inserts expensive, and/or - Lose sequentiality & balance CS 245 Notes 4

Example Index (sequential) continuous free space 10 39 31 35 36 32 38 34 33 overflow area (not sequential) 20 30 40 50 60 70 80 90 CS 245 Notes 4

Outline: Conventional indexes B-Trees  NEXT Hashing schemes CS 245 Notes 4

NEXT: Another type of index Give up on sequentiality of index Try to get “balance” CS 245 Notes 4

B+Tree Example n=3 Root 100 120 150 180 30 3 5 11 120 130 180 200 30 35 100 101 110 150 156 179 CS 245 Notes 4

Sample non-leaf 57 81 95 to keys to keys to keys to keys < 57 57 k<81 81k<95 95 CS 245 Notes 4

Sample leaf node: From non-leaf node to next leaf in sequence 57 81 95 with key 57 with key 81 To record with key 85 CS 245 Notes 4

In textbook’s notation n=3 Leaf: Non-leaf: 30 35 30 35 30 30 CS 245 Notes 4

Size of nodes: n+1 pointers n keys (fixed) CS 245 Notes 4

Don’t want nodes to be too empty Use at least Non-leaf: (n+1)/2 pointers Leaf: (n+1)/2 pointers to data CS 245 Notes 4

n=3 Full node min. node Non-leaf Leaf 120 150 180 30 3 5 11 30 35 counts even if null CS 245 Notes 4

B+tree rules tree of order n (1) All leaves at same lowest level (balanced tree) (2) Pointers in leaves point to records except for “sequence pointer” CS 245 Notes 4

(3) Number of pointers/keys for B+tree Max Max Min Min ptrs keys ptrsdata keys Non-leaf (non-root) n+1 n (n+1)/2 (n+1)/2- 1 Leaf (non-root) n+1 n (n+1)/2 (n+1)/2 Root n+1 n 1 1 CS 245 Notes 4

Insert into B+tree (a) simple case (b) leaf overflow space available in leaf (b) leaf overflow (c) non-leaf overflow (d) new root CS 245 Notes 4

(a) Insert key = 32 n=3 100 30 3 5 11 30 31 32 CS 245 Notes 4

(a) Insert key = 7 n=3 100 30 7 3 5 11 30 31 3 5 7 CS 245 Notes 4

(c) Insert key = 160 n=3 100 160 120 150 180 180 150 156 179 180 200 160 179 CS 245 Notes 4

(d) New root, insert 45 n=3 30 new root 10 20 30 40 1 2 3 10 12 20 25 32 40 40 45 CS 245 Notes 4

Deletion from B+tree (a) Simple case - no example (b) Coalesce with neighbor (sibling) (c) Re-distribute keys (d) Cases (b) or (c) at non-leaf CS 245 Notes 4

n=4 (b) Coalesce with sibling Delete 50 10 40 100 40 10 20 30 40 50 CS 245 Notes 4

n=4 (c) Redistribute keys Delete 50 10 40 100 35 10 20 30 35 40 50 CS 245 Notes 4

n=4 (d) Non-leaf coalese Delete 37 new root 25 25 10 20 30 40 40 30 25 26 1 3 10 14 20 22 30 37 40 45 CS 245 Notes 4

B+tree deletions in practice Often, coalescing is not implemented Too hard and not worth it! CS 245 Notes 4

Comparison: B-trees vs. static indexed sequential file Ref #1: Held & Stonebraker “B-Trees Re-examined” CACM, Feb. 1978 CS 245 Notes 4

- Concurrency control harder in B-Trees - B-tree consumes more space Ref # 1 claims: - Concurrency control harder in B-Trees - B-tree consumes more space For their comparison: block = 512 bytes key = pointer = 4 bytes 4 data records per block CS 245 Notes 4

Example: 1 block static index 1 data block 127 keys (127+1)4 = 512 Bytes -> pointers in index implicit! up to 127 blocks k1 k2 k2 k3 k3 CS 245 Notes 4

Example: 1 block B-tree k1 k2 63 keys ... k63 63x(4+4)+8 = 512 Bytes 1 data block 63 keys 63x(4+4)+8 = 512 Bytes -> pointers needed in B-tree up to 63 blocks because index is blocks not contiguous k2 ... k2 k63 k3 - next CS 245 Notes 4

Size comparison Ref. #1 Static Index B-tree # data # data blocks height blocks height 2 -> 127 2 2 -> 63 2 128 -> 16,129 3 64 -> 3968 3 16,130 -> 2,048,383 4 3969 -> 250,047 4 250,048 -> 15,752,961 5 CS 245 Notes 4

Ref. #1 analysis claims For an 8,000 block file, after 32,000 inserts after 16,000 lookups  Static index saves enough accesses to allow for reorganization Ref. #1 conclusion Static index better!! CS 245 Notes 4

“Retrospective on a database system,” TODS, June 1980 Ref #2: M. Stonebraker, “Retrospective on a database system,” TODS, June 1980 Ref. #2 conclusion B-trees better!! CS 245 Notes 4

DBA does not know when to reorganize Ref. #2 conclusion B-trees better!! DBA does not know when to reorganize DBA does not know how full to load pages of new index CS 245 Notes 4

Ref. #2 conclusion B-trees better!! Buffering B-tree: has fixed buffer requirements Static index: must read several overflow blocks to be efficient (large & variable size buffers needed for this) CS 245 Notes 4

Speaking of buffering… Is LRU a good policy for B+tree buffers?  Of course not!  Should try to keep root in memory at all times (and perhaps some nodes from second level) CS 245 Notes 4

n is number of keys / node Interesting problem: For B+tree, how large should n be? … n is number of keys / node CS 245 Notes 4

Sample assumptions: (1) Time to read node from disk is (S+Tn) msec. (2) Once block in memory, use binary search to locate key: (a + b LOG2 n) msec. For some constants a,b; Assume a << S (3) Assume B+tree is full, i.e., # nodes to examine is LOGn N where N = # records CS 245 Notes 4

Can get: f(n) = time to find a record nopt n CS 245 Notes 4

 What happens to nopt as  FIND nopt by f’(n) = 0 Answer is nopt = “few hundred” (see homework for details)  What happens to nopt as Disk gets faster? CPU get faster? CS 245 Notes 4

Variation on B+tree: B-tree (no +) Idea: Avoid duplicate keys Have record pointers in non-leaf nodes CS 245 Notes 4

K1 P1 K2 P2 K3 P3 to record to record to record with K1 with K2 with K3 to keys to keys to keys to keys < K1 K1<x<K2 K2<x<k3 >k3 K1 P1 K2 P2 K3 P3 CS 245 Notes 4

B-tree example n=2 sequence pointers not useful now! 65 125 25 45 85 (but keep space for simplicity) 65 125 25 45 85 105 145 165 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 CS 245 Notes 4

Note on inserts Say we insert record with key = 25 Afterwards: 10 20 30 n=3 leaf 10 20 – 25 30 Afterwards: CS 245 Notes 4

So, for B-trees: MAX MIN Tree Rec Keys Tree Rec Keys Ptrs Ptrs Ptrs Ptrs Non-leaf non-root n+1 n n (n+1)/2 (n+1)/2-1 (n+1)/2-1 Leaf non-root 1 n n 1 (n+1)/2 (n+1)/2 Root non-leaf n+1 n n 2 1 1 Leaf 1 n n 1 1 1 CS 245 Notes 4

Tradeoffs:  B-trees have faster lookup than B+trees  in B-tree, non-leaf & leaf different sizes  in B-tree, deletion more complicated  B+trees preferred! CS 245 Notes 4

But note: If blocks are fixed size (due to disk and buffering restrictions) Then lookup for B+tree is actually better!! CS 245 Notes 4

- Blocks 100 bytes (just example) - Look at full 2 level tree - Pointers 4 bytes - Keys 4 bytes - Blocks 100 bytes (just example) - Look at full 2 level tree CS 245 Notes 4

Root has 8 keys + 8 record pointers + 9 son pointers B-tree: Root has 8 keys + 8 record pointers + 9 son pointers = 8x4 + 8x4 + 9x4 = 100 bytes Each of 9 sons: 12 rec. pointers (+12 keys) = 12x(4+4) + 4 = 100 bytes 2-level B-tree, Max # records = 12x9 + 8 = 116 CS 245 Notes 4

Root has 12 keys + 13 son pointers = 12x4 + 13x4 = 100 bytes B+tree: Root has 12 keys + 13 son pointers = 12x4 + 13x4 = 100 bytes Each of 13 sons: 12 rec. ptrs (+12 keys) = 12x(4 +4) + 4 = 100 bytes 2-level B+tree, Max # records = 13x12 = 156 CS 245 Notes 4

So... B+ B Conclusion: For fixed block size, 8 records ooooooooooooo ooooooooo 156 records 108 records Total = 116 B+ B Conclusion: For fixed block size, B+ tree is better because it is bushier CS 245 Notes 4

An Interesting Problem... What is a good index structure when: records tend to be inserted with keys that are larger than existing values? (e.g., banking records with growing data/time) we want to remove older data CS 245 Notes 4

One Solution: Multiple Indexes Example: I1, I2 day days indexed days indexed I1 I2 10 1,2,3,4,5 6,7,8,9,10 11 11,2,3,4,5 6,7,8,9,10 12 11,12,3,4,5 6,7,8,9,10 13 11,12,13,4,5 6,7,8,9,10 advantage: deletions/insertions from smaller index disadvantage: query multiple indexes CS 245 Notes 4

Another Solution (Wave Indexes) day I1 I2 I3 I4 10 1,2,3 4,5,6 7,8,9 10 11 1,2,3 4,5,6 7,8,9 10,11 12 1,2,3 4,5,6 7,8,9 10,11, 12 13 13 4,5,6 7,8,9 10,11, 12 14 13,14 4,5,6 7,8,9 10,11, 12 15 13,14,15 4,5,6 7,8,9 10,11, 12 16 13,14,15 16 7,8,9 10,11, 12 advantage: no deletions disadvantage: approximate windows CS 245 Notes 4

Outline/summary Conventional Indexes B trees Sparse vs. dense Primary vs. secondary B trees B+trees vs. B-trees B+trees vs. indexed sequential Hashing schemes --> Next CS 245 Notes 4