 The hashing scheme used is a form of extendible hashing, so that the hashing scheme expands as new buckets are added to the database, meaning that, when nearly empty, the database starts with one bucket, which is then split when it becomes full.The two resulting child buckets will themselves split when they become full, so the database grows as keys are added.The "dbm" library and its derivatives are pre-relational databases they manage associative arrays, implemented as on-disk hash tables.