Conference News & Coverage
Sponsors

Diamond Sponsors

  • Fotango
  • Intel
  • Microsoft

Gold Sponsors

  • Dell Inc.
  • Hewlett Packard
  • IBM
  • Mozilla Corporation

Silver Sponsors

  • ActiveState
  • Autodesk
  • Google
  • Greenplum
  • Ingres
  • Novell, Inc.
  • NYTimes.com
  • OpSource
  • Rearden Commerce
  • SnapLogic
  • ThoughtWorks
  • Ticketmaster

Sponsors & Exhibitors

For information on exhibition and sponsorship opportunities at the convention, contact Sharon Cordesse

For Media Partnership opportunities, please contact Avila Reese

Download the OSCON Sponsor/Exhibitor Prospectus (PDF).

Conference News

To stay abreast of Conference news and to receive email notification when registration opens, please sign up here.

Press & Media

For media-related inquiries, contact Dawn Applegate at

Program Ideas

Drop us a line at and tell us who and/or what would make OSCON a must-attend event.

User Groups & Professional Associations

For user group and professional association related inquiries, contact Marsee Henon at

Tutorial

SQLAlchemy: Taming ORM with Python

Jonathan Ellis, Berkeley Data Systems

Track: Python
Date: Tuesday, July 24
Time: 1:30pm - 5:00pm
Location: D135

The SQLAlchemy philosophy is "SQL databases behave less and less like object collections the more size and performance start to matter; object collections behave less and less like tables and rows the more abstraction starts to matter." This tutorial will teach how SQLAlchemy allows you to use the full power and expresiveness of both object-oriented Python and your database.

Introduction

  • Data Mapper pattern vs. Active Record
  • Reusable constructs vs collections of special cases
  • Limitations you won't find in SA

Queries

  • Joins
  • Aliasing

Mapping to Python classes

  • one to many, many to many
  • back references
  • cascade options
  • inheritance

Sessions

  • session context
  • transactions
  • detatching, attaching objects

Advanced mapping & optimization

  • profiling queries
  • lazy / eager loading
  • identity map is not a cache
  • mapping function calls and subqueries
  • playing nice with in-db defaults and triggers
  • using ON DELETE CASCADE