OSCON 2008 Session Proposal
by Darren Duncan, Founder, Muldis Data Systems
submitted for consideration on 2008 February 3
accepted for presenting on 2008 July 23 (Wed), 17:20-18:05, room D137/138

-----------------

Proposal Title:

    Muldis D - Portable Databases At Full Power

Description (brief overview for marketing purposes):

    How would you like to have a full-featured object-relational DBMS
    integrated right into your development environment? One that
    understands OOP, implements all of the relational operators, and
    greatly shortens development time? That gets you away from the tyranny
    of SQL so you can focus on what you really know? Introducing Muldis D,
    an industrial strength language with fully integrated ORDBMS.

Topics:

    Databases

Session Type:

    45 minute conference session

Abstract:

    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 I consider 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, updateable views, and updateable
    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.

Audience Level:

    Intermediate

Additional Notes:

    I credit David Wheeler for writing most of the brief marketing
    description in the final version of this proposal.

    If actually seeing the topical projects makes a difference to your
    proposal selection process, they are at
    http://search.cpan.org/dist/Muldis-D/ (language spec) and
    http://search.cpan.org/dist/Muldis-Rosetta/ (Perl 5 impl) respectively.
    I didn't know whether to put those urls in the Abstract or not, so
    they are here instead.

    This session is arguably both in the Databases and Perl topics; while I
    chose Databases as the single most relevant, feel free to move it over
    if you have too many Databases sessions and not enough Perl sessions.

Speaker Biography:

    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.

-----------------
