The incompatibility between client and server data environments seems to still be causing grief to programmers even though it is twenty years since relational databases first became in vogue. There are two resolutions that present themselves -- extend SQL so that it can do anything Perl can (I 'll dismiss that out of hand - others may have time to argue about it) or we can construct a DBMS for which Perl is its native language.

The immediate obstacles to the "Perl DBMS" that come to my mind are:

1) A DBMS has its own virtual memory system to cater for millions of rows in the same table that physical memory can't manage - Perl doesn't and has to rely on system virtual memory which has to be shared with other processes for the system not written in Perl, whereas an RDBMS is usually configured to get the whole machine for itself bar a bit left over for the comms software.

2) Relational data follows a fairly strict paradigm that enables anything to be joined to anything "automatically", whereas Perl data structures are hierarchical and even with modules such as Math::Combinatorics around to automate the join for Perl, it isn't obvious whether support for a join should be relational or hierarchical in a Perl DBMS implementation.

On the plus side, if stored procedures could be replaced by Perl modules, database programming would enter a new era!

Update: Re^3: A Perl DBMS? appears to be the latest stage of this debate that moves in the direction I had in mind.

-M

Free your mind


In reply to A Perl DBMS? by Moron

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.