PyORQ (Python Object Relational binding with Queries) implements persistence for Python objects using a relational database (RDBMS, e.g. PostgreSQL MySQL) for storage.
The innovative aspect of PyORQ is the use of Python expressions to denote queries which can be automatically translated into SQL and then be executed by the backend. This leverages the full search capabilities of RDBMSs in an object-oriented programming environment. Contrary to other object-relational Python-SQL mappings, the user needs no knowledge of SQL to search the database.
- A notation for describing persistent objects, based on Python properties.
- Automatic creation of tables, based on the persistent object definition.
- A native Python notation to describe queries.
- Full support for Object Oriented programming (inheritance and encapsulation).
- Persistent objects may refer to other persistent objects and queries understand this.
- References to objects of a particular type may also refer to subclasses of that type.
- Queries on a type, may return subclasses of that type.
- Interfaces to several SQL backends.