NoSQL-PL2SQL version 1.00
=========================

In a world full of oxymorons, NoSQL::PL2SQL requires both a relational 
database and the DBI SQL interface.

If your job is to sell software, then the underlying app is everything.  But 
for developers, the interface is the only thing that counts.  NoSQL::PL2SQL 
provides the best of both worlds:  A NoSQL interface that can take advantage 
of millions of existing RDB installations.

First, NoSQL::PL2SQL encapsulates the SQL and replaces it with... well, 
nothing.  Second, although NoSQL::PL2SQL uses RDB, there are no data schema 
definitions.  NoSQL::PL2SQL uses a "universal" schema, and a single table 
can store heterogenous (different, arbitrary, and/or indeterminate) data 
structures.  NoSQL is a somewhat vaguely defined technology.  But if these 
features sound appealing, I'll describe them in more detail, or start the 
installation and take the plunge.

The NoSQL::PL2SQL interface consists of 4 essential methods, and a handful 
of utilities.  The essentials are as follows:

  ## Define a data source
  $dsn = NoSQL::PL2SQL::DBI->new( $tablename ) ;
  $dsn->connect( $datasource, $login ) ;

  ## Create a new data source - run once during installation
  $dsn->loadschema() ;

  ## Tie an object to the datasource
  my $self = MyArbitraryClass->SQLObject( $dsn, $arbitrarydata ) ;
  my $id = $self->SQLObjectID() ;
  my $self = MyArbitraryClass->SQLObject( $dsn, $id ) ;

Once tied, any updates made to the $self object are automatically written 
to the $dsn RDB.

The "universal" table schema is predefined.  So there is no need to write 
or maintain a data schema for each object.  Moreover, because the table 
stores arbitrary data, a single table data source can be used to back 
multiple classes.

The distribution now includes a sample package:
  samples/pl2sql/comments.pl

This package defines the rudimentary BBS system that powers the pl2sql 
website:  http://pl2sql.tqis.com/

INSTALLATION

To install this module type the following:

   perl Makefile.PL
   make
   make test
   make install

DEPENDENCIES

This module requires these other modules and libraries:

  NoSQL::PL2SQL requires a database application.  As a minimum, try DBD::SQLite
  XML::Parser::Nodes

COPYRIGHT AND LICENCE

Put the correct copyright and licence information here.

Copyright (C) 2012 by Jim Schueler

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version 5.8.9 or,
at your option, any later version of Perl 5 you may have available.


