=================
 Schevo Glossary
=================


database
========


database navigator
==================

An application that allows use browsing, searching, and updating any
Schevo database without additional GUI code.

Typically, a database navigator makes use of a reusable widget library
that allows developers to create custom applications using the same
widgets that the database navigator uses.


data set
========

.. _data sets: #data-set


default key
===========


engine
======


entity
======

.. _entities: #entity

An instance of an `entity class`_.


entity class
============


evolve
======

.. _evolves: #evolve


execute
=======

.. _executing: #execute


extension method
================


extension namespace
===================


extent
======

A collection of entities_ all conforming to the same `entity class`_,
along with information reflecting that entity class and the extent's
role as a collection.

An extent has a `q namespace`_, a `t namespace`_, and an `x namespace`_.


f namespace
===========

Abbreviation for `field class namespace`_ (in the case of the `f`
attribute of an extent_) or for `field namespace`_ (in the case of the
`f` attribute of an entity_, transaction_, or view_).


field
=====


field class
===========


field class namespace
=====================


field namespace
===============


field value
===========

.. _field values: #field-value


index
=====


index spec
==========

.. _index specs: #index-spec

An *n*-tuple containing the one or more field_ names that are used in
an index_ maintained for an extent_.


initial data set
================

A `data set`_ that is loaded into an `open database`_ when a database_
is initially created, and that typically contains data required for
the database to function properly.


key
===


key spec
========

.. _key specs: #key-spec

An *n*-tuple containing the one or more field_ names that are used in
a key_ maintained for an extent_.


label
=====


OID
===

An integer object identifier used internally.


open database
=============

.. _open databases: #open-database


pack
====

To reorganize the on-disk representation of a database_ to reduce
memory pressure of `open databases`_ and reduce the time it takes to
open a database.


plural label
============


q namespace
===========

Abbreviation of `query namespace`_.


query namespace
===============


relationship
============

.. _relationships: #relationships

A 2-tuple containing an `entity class`_ name and a field_ name, where
a `field value`_ for that field_ on an entity_ of that type *may*
refer to entities_ in a particular extent_.


sample data set
===============

A `data set`_ that is loaded into an `open database`_ upon request,
and that typically contains sample data used for testing or
demonstration purposes.


schema
======


schema body
===========


schema package
==============


schema source
=============


schema version
==============

The current version of the `schema source`_ used by a database_.

A database begins at version ``0``, when it does not yet have a
schema_ associated with it.

Once the engine_ successfully processes the first version of the
schema, it sets the database version to ``1``.

Once the engine successfully evolves_ a database to a succeeding
version of the schema, it increments the database version accordingly.


storage backend
===============


t namespace
===========

Abbreviation of `transaction namespace`_.


transaction
===========

.. _transactions: #transaction


transaction method
==================

A method attached to a database_, extent_, entity_, or view_ that
returns a transaction_ when called.

Transaction methods, to facilitate dynamic usage, *must not require*
any arguments. They *may accept* arguments to facilitate programmatic
usage.


transaction namespace
=====================


v namespace
===========

Abbreviation of `view namespace`_.


view
====


view method
===========


view namespace
==============


x namespace
===========

Abbreviation of `extension namespace`_.
