ZODB

ZODB
Zope Object Database
Développeur Zope Corporation
Écrit en Python (langage)
Environnements Multiplate-forme
Type Base de données orientée objet
Licences Zope Public License
Site web www.zodb.org

La ZODB (Zope Object DataBase) est la base de données orientée objet du serveur d'applications Zope. Bien que Zope l'utilise comme système de fichiers, elle est néanmoins utilisable indépendamment de ce dernier pour stocker des objets Python par exemple.

À la différence d'une base de données relationnelle, une base de données orientée objet est hiérarchique, autrement dit, il s'agit d'une arborescence comme le système de fichiers d'un ordinateur :

       root
      /    \
 objet A   objet B


Il est bien sur possible d'utiliser des relations en donnant un identifiant aux objets qui en ont besoin et en gérant ça comme sur une base de données relationnelle avec un identifiant qui s'auto-incrémente à la création d'un objet.

En pratique

ZEO (Zope Entreprise Objects) sert à donner accès concurrentiel à la ZODB sur le réseau.

  • Pour installer la ZODB et ZEO avec setuptools : easy_install zodb3
  • Pour lancer un serveur ZEO :
 $ runzeo -a localhost:8080 -f /home/user/Data.fs
  • Puis pour configurer un client ZEO, créer un fichier zeo.conf :
 <zodb>
    <zeoclient>
    server localhost:8080
    </zeoclient>
 </zodb>
  • Ensuite, dans un script Python :
 import ZODB.config, transaction
 
 db = ZODB.config.databaseFromURL('/home/user/zeo.conf')
 conn = db.open()
 root = conn.root()
 
 #root est le dictionnaire racine qui contient tous les objets de la base
 
 root['variable'] = 'mon objet'
 
 transaction.commit() # enregistre les changements dans la ZODB

Il est conseillé d'utiliser des objets BTrees fournis avec la ZODB, un objet BTree est conteneur, un nœud de l'arborescence, un peu comme un dictionnaire ou une liste Python mais qui n'est pas chargé entièrement en mémoire quand on l'utilise. Par exemple :

 from BTrees.IOBTree import IOBTree
 
 root = IOBTree()
 root[0] = "Python"
 root[1] = "Zope"

print root n'affichera pas ['Python', Zope] mais quelque chose du genre : <BTrees.IOBTree.IOBTree object at 0x87ecb24>

L'intérêt se situe lorsque l'on possède des milliers d'occurrences dans la base de données, qui en plus sont souvent imbriquées les unes dans les autres :

 print root[1] # ne chargera pas en mémoire tout l'objet root mais juste l'occurrence numéro 1


Il existe plusieurs BTrees : OOBTree, IOBTree, OIBTree, IIBTree et IFBTree. La première lettre correspond à la clef et la seconde à la valeur, O pour Object, I pour Integer et F pour Float. Ainsi, IOBTree correspond à un BTree qu'on identifie avec un entier et qui peut contenir des objets.

Liens internes


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article ZODB de Wikipédia en français (auteurs)

Игры ⚽ Поможем написать курсовую

Regardez d'autres dictionnaires:

  • ZODB — Zope Object DataBase Тип Объектно ориентированная база данных Разработчик Zope Corporation и соавторы Написана на Python Операционная система Кроссплатформенное ПО Последняя версия 3.10.5 (19 ноября 2011 …   Википедия

  • ZODB — Die Zope Object Database (engl. für „Zope Objekt Datenbank“, auch ZODB) ist eine objektorientierte Datenbank, die vom Zope Webanwendungsserver dazu genutzt wird, Daten persistent zu speichern. Dafür werden Python Objekte direkt in die Datenbank… …   Deutsch Wikipedia

  • ZODB — abbr. ZOPE Object Database …   Dictionary of abbreviations

  • Zope Object Database — Infobox Software name = Zope Object Database caption = collapsible = yes developer = Zope Corporation status = latest release version = latest release date = latest preview version = latest preview date = operating system = Cross platform size =… …   Wikipedia

  • Zope Object Database — Desarrollador Zope Corporation http://www.zodb.org/ Información general Última versión estable 3.10.3 12 de abril de 2011 …   Wikipedia Español

  • Zope — 2 Интерфейс управления Zope в окне веб браузера. Тип Сервер приложений …   Википедия

  • Zope Object Database — Die Zope Object Database (engl. für „Zope Objekt Datenbank“, auch ZODB) ist eine objektorientierte Datenbank, die vom Zope Webanwendungsserver dazu genutzt wird, Daten persistent zu speichern. Dafür werden Python Objekte direkt in die Datenbank… …   Deutsch Wikipedia

  • Comparison of web application frameworks — This is a comparison of notable web application frameworks. Contents 1 General 1.1 Perl 1.2 PHP 1.3 Java 1.4 Python …   Wikipedia

  • Z Object Publishing Environment — Zope (Z Object Publishing Environment) ist ein objektorientierter, in der Programmiersprache Python geschriebener, freier Webanwendungs Server mit offenem Quelltext. Zope stellt eine Plattform für die Realisierung von Webanwendungen dar und… …   Deutsch Wikipedia

  • Сравнение каркасов веб-приложений — Это сравнительная таблица фреймворков веб приложений. Содержание 1 Фреймворки 1.1 ASP.NET 1.2 C++ 1.3 ColdFusion Markup Language (CFML) …   Википедия

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”