Tangram is an object-relational mapper: it makes objects persist in
conventional relational databases, in effect letting you use RDBMSes
as if they were object databases.
Tangram supports inheritance (including multiple inheritance),
polymorphism, object identity, relationships (including collections),
load-on-demand, etc. It also gives access to the powerful query
facilities found in RDBMSes via an intuitive object syntax.
In my talk I will first present the issues involved in
object-relational mapping. I will explain how one can implement OO
concepts like inheritance on top of relational concepts.
In the second part I will explain how these issues are solved by
Tangram, and how you use the module to essentially rid yourself of any
persistence concerns. At that point I will give a live demonstration.
Finally I will explain the more interesting Perl techniques that make it
possible to build object persistence in a manner that is both
orthogonal and efficient (e.g. ties, dynamic code generation, weak
references, etc). I will trace in the most interesting parts of the
demo.