ISO lightweight OO-RDBMS in Perl

K

kj

I have 4 or 5 personal coding projects in my to-do list, all of
which feature simple relational databases (e.g. a catalog of TV
show episodes on tape; a catalog of all my books; a catalog of all
my CDs; a catalog of xeroxed/printed journal articles archive;
etc.) Therefore, I'm looking CPAN modules to facilitate the process
of creating, querying, updating, and maintaining *persistent* tables
of Perl objects.

The applications I have in mind have pretty light requirements.
The tables may be relationally linked, so their management should
preserve the integrity of the relational schema. But, they will
interact with a single user at a time; security is not a big issue;
nor is transaction management; performance demands are light, since
no table would be bigger than a few hundred records.

I have run across modules in CPAN (e.g. ObjStore or DB::Objects)
that at first glance seem as though they *may* be suitable to this
task, but I can't tell from the documentation exactly how adequate
they are. Therefore, I would appreciate recommendations from
*users* of modules like what I describe above.

Note: I'm *not* interested in Perl interfaces to standard RDBMSs
like MySQL or Oracle.

Thanks!

kj
 
A

A. Sinan Unur

kj said:
Note: I'm *not* interested in Perl interfaces to standard RDBMSs
like MySQL or Oracle.

I am not sure if you'll appreciate this, but I will recommend SQLite
coupled with Class::DBI. At the very least, read the docs for Class::DBI
for examples of how to use that module to solve problems similar to yours.

Sinan.
 
J

James Willmore

I have 4 or 5 personal coding projects in my to-do list, all of which
feature simple relational databases (e.g. a catalog of TV show episodes
on tape; a catalog of all my books; a catalog of all my CDs; a catalog
of xeroxed/printed journal articles archive; etc.) Therefore, I'm
looking CPAN modules to facilitate the process of creating, querying,
updating, and maintaining *persistent* tables of Perl objects.

The applications I have in mind have pretty light requirements. The
tables may be relationally linked, so their management should preserve
the integrity of the relational schema. But, they will interact with a
single user at a time; security is not a big issue; nor is transaction
management; performance demands are light, since no table would be
bigger than a few hundred records.

I have run across modules in CPAN (e.g. ObjStore or DB::Objects) that at
first glance seem as though they *may* be suitable to this task, but I
can't tell from the documentation exactly how adequate they are.
Therefore, I would appreciate recommendations from *users* of modules
like what I describe above.

Note: I'm *not* interested in Perl interfaces to standard RDBMSs like
MySQL or Oracle.

You may want to look over DBD::AnyData. It allows you to have in memory
access to a variety of data sources (RDBMS or "flat file" or even XML).
You could also use DBD::SQLite and DBD::Sprite. Or, if on a Windows box,
you could use DBD::Excel.

HTH

--
Jim

Copyright notice: all code written by the author in this post is
released under the GPL. http://www.gnu.org/licenses/gpl.txt
for more information.

a fortune quote ...
"... After all, all he did was string together a lot of old,
well-known quotations." -- H. L. Mencken, on Shakespeare
 
B

Bob Walton

kj said:
I have 4 or 5 personal coding projects in my to-do list, all of
which feature simple relational databases (e.g. a catalog of TV
show episodes on tape; a catalog of all my books; a catalog of all
my CDs; a catalog of xeroxed/printed journal articles archive;
etc.) Therefore, I'm looking CPAN modules to facilitate the process
of creating, querying, updating, and maintaining *persistent* tables
of Perl objects.

The applications I have in mind have pretty light requirements.
The tables may be relationally linked, so their management should
preserve the integrity of the relational schema. But, they will
interact with a single user at a time; security is not a big issue;
nor is transaction management; performance demands are light, since
no table would be bigger than a few hundred records.
....


Check out the DBI module with DBD::CSV. It gives you SQL on a
collection of comma-separated-value files, in which each file is a table
of a "database". Slow, but it works fine on small sets of data, and is
ultra simple to set up and use. I'm not sure, but it may be part of the
standard distribution these days. DBD::RAM is another possibility.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,057
Latest member
KetoBeezACVGummies

Latest Threads

Top