Zodb
Upcoming SlideShare
Loading in...5
×
 

Zodb

on

  • 1,395 views

"Un database ad oggetti scritto in Python (e C)". Presentation of zodb used in non-zope applications.

"Un database ad oggetti scritto in Python (e C)". Presentation of zodb used in non-zope applications.
Talk done at Pycon4 (2010)

Statistics

Views

Total Views
1,395
Slideshare-icon Views on SlideShare
1,390
Embed Views
5

Actions

Likes
0
Downloads
3
Comments
0

1 Embed 5

http://www.slideshare.net 5

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Zodb Zodb Presentation Transcript

    • ZODB Un database ad oggetti scritto in Python (e C) Riccardo Lemmi
    • Chi siamo Riccardo Lemmi Antonio Tirabasso Riccardo Lemmi
    • Tips Se devi usare un ORM allora usa lo ZODB Riccardo Lemmi
    • Cos'è lo ZODB ● È un database ad oggetti ● I dati vengono gestiti con lo stesso paradigma dell'applicazione: – Non si è legati allo storage: ● Nessun mapping ● Nessun 'glue code' – Codice più semplice, più robusto e più facile da testare Riccardo Lemmi
    • Cosa fornisce lo ZODB ● Persistenza oggetti – Tramite il modulo pickle ● Supporto transazioni – ACID: atomicity, consistency, isolation, durability ● Storage alternativi ● History/Undo – Se lo storage lo supporta ● Scalabilità: ZEO Riccardo Lemmi
    • Come funziona ● L'oggetto viene serializzato tramite il modulo pickle e vengono aggiunte informazioni sulla transazione ● ZODB si preoccupa di leggere e scrivere gli oggetti sullo storage ● ZODB si occupa della gestione della cache Riccardo Lemmi
    • Regole per scrivere classi "persistenti" ● Classi: – Persistent: gestito automaticamente ma se contiene riferimenti a: ● Integer, string, float, boolean: non si deve fare nulla ● List and dict: da gestire con l'attributo _p_changed Riccardo Lemmi
    • Regole per scrivere classi "persistenti" ● Le classi devono ereditare da Persistent – in caso contrario si generano serializzazioni multiple ● Per serializzare un oggetto è necessario connetterlo con un altro oggetto persistente – al limite la radice del DB ● Fai sempre un commit delle transazioni ● Se modifichi sotto-oggetti non-Persistent devi settare _p_changed a True. ● Usa PersistentList, PersistentMapping e BTree Riccardo Lemmi
    • L'esempio: l'albero genealogico Riccardo Lemmi
    • L'esempio: l'albero genealogico ● Inizializzazione zodb ● Operazioni – Creazione – Cancellazione – Aggiunta – Undo ● La ricerca – come si fa Riccardo Lemmi
    • Links ● http://www.zodb.org/overview.html ● http://faassen.n--tree.net/blog/view/weblog/2008/06/20/0 Riccardo Lemmi