# Tables

A table is an unordered collection of records. Each record consists of a key-value pair. Within the same table, keys are unique. That is only one record in the table may have a certain key. Values do not have to be unique.

## Table operations

A table supports a subset of the following operators (though sometimes it may be combined in design)

* initialize - Table is initialized to an empty table
* isEmpty - tests if table is empty
* isFull - tests if table is full
* insert - add  a new item with key:value to the table
* delete - given a key remove the record with a matching key
* update - given a key:value pair change the record in table with matching key to the value
* find - given a key find the record
* enumerate - process/list/count all items in the table
