The Zope Object Database (ZODB) is an object-oriented DBMS library for storing Python objects. ZODB aims to provide a transparent way for Python programmers to make their data persistent. It is completely written by Python, and only provides Python API. It does not support other programming languages. ZODB stores data as objects, and the relationship between objects are automatically maintained by Python object references. As a result, ZODB allows programmers to manage data structures with complicate relationships. The storage layer of ZODB is pluggable, and there are three main implementations: ZOE, NOE, and RelStorage. ZOE is a single-server client-server framework using file storage; NOE extends ZOE to distributed-server client-server storage; RelStorage stores objects in a relational database, such as MySQL, PostgreSQL, and Oracle. ZODB uses aggressive caching. As a result, it is not suitable for tasks with heavy writes. Also, ZODB is designed for mapping access through keys and attributes of objects, which means that it does not support queries containing joins and advanced search.