Each database has a set of . The set of object stores can be changed, but only using an , i.e. in response to an event. When a new database is created it doesn’t contain any .

    An object store has a list of records which hold the data stored in the object store. Each record consists of a and a value. The list is sorted according to key in order. There can never be multiple records in a given object store with the same key.

    An object store has a name, which is a . At any one time, the name is unique within the database to which it belongs.

    An optionally has a key generator.

    An object store can derive a for a record from one of three sources:

    2.2.1. Object store handle

    Script does not interact with directly. Instead, within a transaction, script has indirect access via an object store handle.

    An has an associated object store and an associated transaction. Multiple handles may be associated with the same object store in different , but there must be only one object store handle associated with a particular within a transaction.

    An has a name, which is initialized to the name of the associated when the object store handle is created. The name will remain constant except when an is running.