Home

ZODB

ZODB, short for Zope Object Database, is a native object database for Python. It stores Python objects directly rather than mapping them to rows in a relational database. This makes it well suited for applications that manage complex, interconnected object graphs, and it has been widely used in Zope-based projects such as Plone. ZODB can be used standalone or as part of larger web frameworks.

Core features include persistent objects, transactions, and ACID guarantees. Objects are instances of persistent classes or

Storage backends include FileStorage for on-disk storage, ZEO for client-server configurations that let multiple processes or

Usage typically involves connecting to a ZODB database, obtaining the root object, and creating or modifying

ZODB has a long association with Zope and Plone and is widely used in Python-based applications that

wrapped
in
persistent
containers,
and
changes
are
recorded
via
a
transaction
manager
with
two-phase
commit
to
ensure
atomicity.
ZODB
uses
an
in-memory
cache
for
performance
and
supports
multi-version
concurrency
control
to
allow
concurrent
readers.
machines
access
the
same
database,
and
RelStorage
which
writes
to
relational
databases
such
as
PostgreSQL,
MySQL,
or
SQLite.
Blob
storage
is
available
via
the
ZODB
blob
extension
for
large
binary
data.
persistent
objects.
Changes
are
made
within
a
transaction
and
committed
with
the
transaction
module;
reads
occur
through
persistent
references.
The
database
exposes
the
object
graph
directly
to
Python
code,
without
requiring
SQL.
require
complex
data
models.
It
is
not
always
the
best
choice
for
applications
requiring
ad-hoc
SQL
queries
or
simple
relational
schemas.
The
project
remains
active
with
ongoing
development
of
new
backends
and
features.