Alzabo - A data modelling tool and RDBMS-OO mapper


Alzabo documentation Contained in the Alzabo distribution.

Index


Code Index:

NAME

Top

Alzabo - A data modelling tool and RDBMS-OO mapper

SYNOPSIS

Top

  Cannot be summarized here.

DESCRIPTION

Top

What is Alzabo?

Alzabo is a suite of modules with two core functions. Its first use is as a data modelling tool. Through either a schema creation GUI, a perl program, or reverse engineering, you can create a set objects to represent a schema.

Its second function is as an RDBMS to object mapping system. Once you have created a schema, you can use the Alzabo::Runtime::Table|Alzabo::Runtime::Table and Alzabo::Runtime::Row|Alzabo::Runtime::Row classes to access its data. These classes offer a high level interface to common operations such as SQL SELECT, INSERT, DELETE, and UPDATE commands.

Because you can manipulate construct queries through object-oriented Perl, creating complex queries on the fly is much easier than it would be if you had to dynamically construct strings of SQL.

A higher level interface can be created through the use of the Alzabo::MethodMaker|Alzabo::MethodMaker module. This module takes a schema object and auto-generates useful methods based on the tables, columns, and relationships it finds in the module. The code is generates can be integrated with your own code quite easily.

To take it a step further, you could then aggregate a set of rows from different tables into a larger container object which could understand the logical relationship between these tables.

What to Read?

Alzabo has a lot of documentation. If you are primarily interested in using Alzabo as an RDBMS-OO wrapper, much of the documentation can be skipped. This assumes that you will create your schema via a schema creation GUI or via reverse engineering.

Here is the suggested reading order:

Introduction to Alzabo (Alzabo::Intro)

The RDBMS-specific documentation:

Alzabo and MySQL (Alzabo::MySQL)

Alzabo and PostgreSQL (Alzabo::PostgreSQL)

The Alzabo::Runtime::Schema docs - The most important parts here are those related to loading a schema and connecting to a database. Also be sure to read about the join()|Alzabo::Runtime::Schema/join method.

The Alzabo::Runtime::Table docs - This contains most of the methods used to fetch rows from the database, as well as the insert()|Alzabo::Runtime::Table/insert method.

The Alzabo::Runtime::Row docs - The row objects contain the methods used to update, delete, and retrieve data from the database.

The Alzabo::Runtime::RowCursor docs - A cursor object that returns only a single row.

The Alzabo::Runtime::JoinCursor docs - A cursor object that returns multiple rows at once.

The Alzabo::MethodMaker docs - One of the most useful parts of Alzabo. This module can be used to auto-generate methods based on the structure of your schema.

The Alzabo::Runtime::UniqueRowCache docs - This describes the simple caching system included with Alzabo.

The Alzabo::Debug docs - How to turn on various kinds of debugging output.

The Alzabo::Exceptions docs - Describes the nature of all the exceptions used in Alzabo.

The FAQ (Alzabo::FAQ).

The quick reference (Alzabo::QuickRef) - A quick reference for the various methods of the Alzabo objects.

SCRIPTS

Top

Alzabo comes with a few handy scripts in the eg/ directory of the distribution. These are:

* alzabo_grep

Given a regex and a schema name, this script will print out the table and column name for all columns which match the regex.

* alzabo_to_ascii

Given a schema name, this script will generate a set of simple ASCII tables for the schema.

SUPPORT

Top

The Alzabo docs are conveniently located online at http://www.alzabo.org/docs/.

There is also a mailing list. You can sign up at http://lists.sourceforge.net/lists/listinfo/alzabo-general.

Please don't email me directly. Use the list instead so others can see your questions.

COPYRIGHT

Top

AUTHOR

Top

Dave Rolsky, <autarch@urth.org>


Alzabo documentation Contained in the Alzabo distribution.

package Alzabo;

use Alzabo::Exceptions;

use Alzabo::Column;
use Alzabo::ColumnDefinition;
use Alzabo::ForeignKey;
use Alzabo::Index;
use Alzabo::Schema;
use Alzabo::Table;

use Alzabo::Config;
use Alzabo::Debug;

use vars qw($VERSION);

use 5.006;

$VERSION = '0.92';
$VERSION = eval $VERSION;


1;

__END__