Estaba mirando la especificación de Indexed Database API (especificación del W3C desde el 2015), pero gracias al siguiente tutorial, me he enterado mucho mejor. Y aquí lo dejo.
A website can have one or more IndexedDB databases. Each database must have a unique name.
A database can contain one or more object stores. An object store, which is also uniquely identified by a name, is a collection of records. Each record has a key and a value. The value is an object that can have one or more properties or attributes. The key can be based on a key generator, derived by a key path, or explicitly set. A key generator automatically generates a unique sequential positive integer. A key path defines the path to the key value. It can be a single JavaScript identifier or multiple identifiers separated by periods.
The specification includes both an asynchronous and a synchronous API. The synchronous API is meant to be used within web workers. The asynchronous API uses requests and callbacks.
Brian Stewart — Using the HTML5 IndexedDB API