ANN: Schevo 3.0-beta1 released

Matthew Scott mscott at
Wed Nov 2 19:15:20 CET 2005

 Schevo 3.0-beta1

 Release Announcement

Also available at

What's new in version 3.0-beta1?

* Initial release of Schevo 3.0 series.

Get Schevo!

See the `Schevo website`_ for more information, or go ahead and `get
started with Schevo`_.

.. _Schevo website:

.. _get started with Schevo:

What is Schevo?

Schevo is a next-generation DBMS that focuses on the following:

- **Database Integrity**: Schevo is designed from the ground up to
  protect your data.  All changes to a Schevo database must be done
  using transactions, and Schevo ensures that those transactions
  always leave the database in a consistent state.

- **Rapid Development**: Schevo includes features to make it easy and
  fun to create even the most complex of databases.  Not only is the
  schema syntax easy to write and understand, you can also quickly
  place initial values in your schema that are required by your
  database, and use the same syntax to create sets of sample data to
  use during development.

- **User Interface Generation**: Schevo provides user interface
  toolkits that take advantage of the richness of the database schema.
  You can use the full-featured Schevo Navigator to interact with your
  database without writing a single line of code outside of your
  database schema.  A PyQt-based toolkit is already available, and
  TurboGears and NuFox toolkits are in the works.

- **Rich Schema Definition**: The schema for a Schevo database is
  written in concise, easy-to-read Python code.  Not only does the
  schema describe how information in the database is structured, but
  also defines all transactions and rules that ensure database

- **Assisted Schema Evolution**: Once a Schevo database is deployed
  and is used to store valuable data, you will inevitably make further
  changes to the structure of the database.  Schevo assists you in
  this task and makes it easy to restructure a database and facilitate
  the migration of data from one schema version to the next.

Why use Schevo?

The main problem that Schevo was designed to address is that
Relational databases, which use Structured Query Language (SQL), do
not match well with object-oriented programming languages, such as
Java, Python and Ruby.  This situation has been labeled the
"object-relational impedance mismatch" problem, and it is a
significant barrier to the rapid development and evolution of database

Because of this mismatch, database applications tend to have three
distinct layers of code: SQL within the database, object-oriented code
within the application, and an object-relational mapping (ORM) layer
to mediate between the SQL and the object language.  These extra
layers add additional complexity and inflexibility to what are already
complex and inflexible databases.  Schevo eliminates these extra

Schevo solves the object-relational impedance mismatch problem by
combining relational features with the object-oriented programming
language Python.  A database schema defined in Schevo results in a
database that enforces the same integrity constraints supported by the
Relational model, with the added benefit of Python objects.

The benefit of this is that application developers can create their
entire application using the full power of the Python language without
having to introduce another language (SQL) that has its own language
constructs, its own datatypes, and a limited set of behavior.
Instead, a Schevo database stores Schevo objects which use native
Python datatypes and include any behavior defined for those objects.
In addition, Schevo objects contain a great deal of metadata that is
available for introspection to support the development of rich user
interfaces with a minimal amount of code.

In fact, Schevo includes a GUI Navigator that can display a fully
interactive interface into any Schevo database.  The Navigator is
constructed on-the-fly based solely on the metadata available within
the Schevo database file.  The Navigator allows you to display,
create, update, and delete any object within the database, within the
rules and constraints defined for that database.

Matthew R. Scott

More information about the Python-announce-list mailing list