Interface¶
Access and CRUD operations in the various types of
databases are standardized in two objects: Connection
and Session
objects.
Constructors¶
Access to the database is made available through Connection
objects. The module must provide the following constructor for these:
>>> connection = Connection(*args, **kwargs)
The Connection
object allows you to access the database and operate directly at the database server level.
This object has a connect
method that returns a Session
object. It takes a number of parameters which are database dependent.
>>> session = connection.connect(*args, **kwargs)
With Session
object you can operate directly on the database data specified when creating the Connection
object.
Note
This division of objects allows you to have more flexibility in case you want to change databases. It is not necessary to create a new object to connect to a different database.
Globals¶
api_level
is a global variable to check compatibility with the names defined in this document. Currently the level is 1.0.
CONNECTION
is a global variable where to save a global Connection
object.
SESSION
is a global variable where to save a global Session
object.
Exceptions¶
All defined exceptions derive from the general exception Error
based on Exception
class, which tends not to be used directly.
>>> raise Error("Don't use this, but its subclasses!")
Name |
Base |
Description |
---|---|---|
|
|
Exception that is the base class of all other error exceptions. Use only for checks. |
|
|
Exception raised when an unspecified error occurred. |
|
|
Exception raised for errors that are related to the database connection. |
|
|
Exception raised for errors that are related to the database close connection. |
|
|
Exception raised for errors that are related to the database, generally. |
|
|
Exception raised for errors that are related to the creation of a database. |
|
|
Exception raised for errors that are related to the deletion of a database. |
|
|
Exception raised for errors that are related to the session, generally. |
|
|
Exception raised for errors that are related to the inserting data on a database session. |
|
|
Exception raised for errors that are related to the updating data on a database session. |
|
|
Exception raised for errors that are related to the deletion data on a database session. |
|
|
Exception raised for errors that are related to the closing database session. |
|
|
Exception raised for errors that are related to the finding data on a database session. |
|
|
Exception raised for errors that are related to the grant or revoke permission on a database. |
|
|
Exception raised for errors that are related to the selectors in general. |
|
|
Exception raised for errors that are related to the selectors attribute. |
The tree of exceptions:
Exception
|__Error
|__UnknownError
|__ConnectError
|__CloseError
|__DatabaseError
| |__DatabaseCreationError
| |__DatabaseDeletionError
|__SessionError
| |__SessionInsertingError
| |__SessionUpdatingError
| |__SessionDeletingError
| |__SessionClosingError
| |__SessionFindingError
| |__SessionACLError
|__SelectorError
|__SelectorAttributeError
Selectors¶
NOSQL databases do not use SQL syntax, or if they do, it is encapsulated in a shell or interpreter.
The selection queries will be driven through Selector
objects which will then be passed to the find
method of a Session
object.
>>> selector = Selector(*args, **kwargs)
>>> session.find(selector)
Note
A string representing the language of the selector can also be passed to the find method.