For information on exhibition and sponsorship opportunities at the conference, contact Sharon Cordesse at email@example.com.
For media-related inquiries, contact Maureen Jennings at firstname.lastname@example.org.
To stay abreast of conference news and to receive email notification when registration opens, please sign up for the OSCON newsletter (login required).
View a complete list of OSCON 2008 Contacts
This session introduces Muldis D, an industrial-strength programming language with fully integrated database functionality, and shows how to use the Muldis Rosetta database access framework for Perl. The session will focus on a few of the features that Ducan considers the most interesting and unique, and ways users can solve their common database-using problems.
Muldis D provides access to the entire relational model of data, including arbitrarily complex user-defined scalar and collection data types, stored routines, constraints, updatable views, and updatable system catalogs. You can select both parent and child records together in a single query, without redundancy (child records are in collection values in parent records). You can treat multiple databases as if they were parts of a single database, making cross-database queries easy. The language is cleaner and more rigorously defined than SQL, so it should be easier to write code that is reliable, portable, easy to understand, and is easier to auto-optimize or auto-parallelize.
Muldis Rosetta is a database access framework in native Perl 5 and Perl 6 versions (for Perl 6 it is also the first database tool). It presents databases to Perl applications as shared libraries of routines and data that can be used and updated. The normal way for Perl code to use a database with Muldis Rosetta is to invoke the database’s stored routines (and prepared statements) as if those were Perl routines, with data being inserted and retrieved via the routine parameters.
Muldis Rosetta is designed for strong inter-DBMS portability, and provides a deeper abstraction than the Perl DBI, such that a Perl application will see all DBMSs as having the same query language (Muldis D by default), rather than them having highly incompatible dialects of SQL. But while most database abstractors or ORMs treat every DBMS as a stupid data store—a strategy that can result in the user getting fewer features and poorer performance than the original DBMS provided—Muldis Rosetta differentiates DBMSs according to their capability, and optimally leverages their built-in features where at all possible, only emulating missing features in Perl as a last resort.
Unlike other tools, Muldis Rosetta features the ability to translate SQL-stored procedures (and by extension most other SQL features). Muldis Rosetta also includes a full-featured DBMS natively in Perl, and user queries are compiled into Perl code rather than SQL for execution; this allows database-using projects (and Muldis Rosetta itself) to be fully tested or demonstrated in the absence of a normal DBMS, easing their development.
Muldis D is intended to qualify as a “D” language as defined by “Databases, Types, and The Relational Model: The Third Manifesto” (TTM), a formal proposal for a solid foundation for data and database management systems, written by Christopher J. Date (who also wrote “Database in Depth”) and Hugh Darwen. Several other “D” languages exist, including the teaching language “Tutorial D”, but Muldis D is arguably the first one that is actually practical for industrial use.
Darren Duncan is a developer of applications and databases, has written several CPAN modules, and participates in Perl 6 language development. Darren’s life’s work is to build consumer-useable ontological database solutions for accurately organizing and easily sharing the world’s knowledge over the long term, particularly scientific, historical, and genealogical knowledge. Darren is interested in general information management and epistemology.