<aside> 💡 Design Decisions

#1: Hash Function

#2: Hashing Scheme

1. Hash Functions


We do not want to use a cryptographic hash function for DBMS hash tables. We want something that is fast and ****has a low collision rate.

Untitled

2. Static Hashing Schemes


2.1 Linear Probe Hashing

Single giant table of slots. Resolve collisions by linearly searching for the next free slot in the table.

<aside> 💡 Deletion

  1. Tombstone → Put a tombstone at the place where an entry was deleted → a waste of space
  2. Movement → Move other entries to fill up the space → quite complicated, need to be careful </aside>

<aside> 💡 Non-Unique Keys

  1. Seperate Linked List → Store values in separate storage area for each key
  2. Redundant Keys → Store duplicate keys entries together in the hash table </aside>