title: Zope Object Database
text: # Zope Object Database
  
  La Zope Object Database (ZODB) es una base de datos orientada a objetos para almacenar de forma transparente y persistente objetos en el lenguaje de programación Python. Se incluye como parte de Zope, un Servidor de aplicaciones Web, pero también puede ser utilizado independientemente de Zope.
  
  # Zope Object Database
  ## Características
  
  Las características de la ZODB se incluyen: transacciones, historial/deshacer, almacenamiento conectable de forma transparente, almacenamiento en caché, control de concurrencia multiversión (multiversion concurrency control - MVCC), y la escalabilidad a través de una red (usando ZEO).
  
  # Zope Object Database
  ## Historia
  
  * Creado por Zope Corporation a finales de los años 1990.
  * Inicio como un simple sistema de persistencia de Objetos (Persistent Object System - POS) durante el desarrollo de Principia (el cual posteriormente sería Zope)
  * ZODB 3 fue renombrada cuando un cambio significante de la arquitectura fue publicado.
  * ZODB 4 fue un proyecto de corta duración para volver a poner re-implementar todo el paquete de ZODB 3 usando 100% Python.
  
  # Zope Object Database
  ## ZEO
  
  ZEO (Zope Enterprise Objects) es una implementación de almacenamiento de ZODB que permite varios procesos de clientes a la persistencia de objetos en un único servidor ZEO. Esto permite la escalabilidad transparente, pero el servidor ZEO es todavía un punto único de fallo.
  
  # Zope Object Database
  ## Almacenes de datos basado en conectores
  
  * FileStorage - Permite que un único proceso de Python para hablar con un archivo en el disco.
  * BlobStorage - Permite a los grandes datos binarios ser gestionado por la ZODB, pero separado de su habitual base de datos FileStorage, es decir Data.fs. Esto tiene varias ventajas, la más importante un archivo Data.fs mucho más pequeños y un mejor rendimiento tanto en CPU, así como de la memoria.
  * RelStorage - Permite el almacenamiento de respaldo persistencia para ser un RDBMS.
  * NetworkStorage (también conocido como ZEO) - Permite cargar varios procesos de Python y almacenar instancias persistentes al mismo tiempo.
  * DirectoryStorage - Cada dato persistente se almacena como un archivo separado en el sistema de archivos. Al igual que en FSFS en Subversion.
  * DemoStorage - Un fondo en memoria para el almacenamiento persistente. Proporcione un ejemplo de implementación de un almacenamiento completo sin distraer información acerca del almacenamiento, este tipo de almacenamiento es volátil lo cual es útil para dar demostraciones.
  * BDBStorage - que utiliza Berkeley DB back-end. Ahora abandonada.
  
  # Zope Object Database
  ## Tecnologías de conmutación por error
  
  * Servicios de replicación de Zope (ZRS) - Un producto que elimina el punto único de fallo, proporcionando copia de seguridad en caliente de las escrituras y lecturas de equilibrado de carga.
  * ZEORaid - Una solución de código abierto que proporciona un servidor proxy de red que distribuye el almacenamiento de objetos y la recuperación a través de una serie de servidores de red.
  * RelStorage - usa las tecnologías RDBMS así de esta forma se evitas la necesidad de servidor [ZODB#ZEO ZEO].
  * NEO - Distribuido (tolerancia a fallos, equilibrio de carga) la aplicación de almacenamiento. No está listo para su uso en producción todavía (a partir de 01/2011).