Alzabo - A data modelling tool and RDBMS-OO mapper
Cannot be summarized here.
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 and 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.
Alzabo::Runtime::Table
Alzabo::Runtime::Row
SELECT
INSERT
DELETE
UPDATE
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 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.
Alzabo::MethodMaker
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.
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
The RDBMS-specific documentation:
Alzabo and MySQL
Alzabo and 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() method.
join()
The Alzabo::Runtime::Table docs - This contains most of the methods used to fetch rows from the database, as well as the insert() method.
insert()
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.
The quick reference - A quick reference for the various methods of the Alzabo objects.
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.
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 (c) 2000-2003 David Rolsky. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
The full text of the license can be found in the LICENSE file included with this module.
Dave Rolsky, <autarch@urth.org>
To install Alzabo, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Alzabo
CPAN shell
perl -MCPAN -e shell install Alzabo
For more information on module installation, please visit the detailed CPAN module installation guide.