.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Alzabo 3pm" .TH Alzabo 3pm "2015-05-24" "perl v5.20.2" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Alzabo \- A data modelling tool and RDBMS\-OO mapper .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& Cannot be summarized here. .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" .SS "What is Alzabo?" .IX Subsection "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 \s-1GUI,\s0 a perl program, or reverse engineering, you can create a set objects to represent a schema. .PP Its second function is as an \s-1RDBMS\s0 to object mapping system. Once you have created a schema, you can use the \&\f(CW\*(C`Alzabo::Runtime::Table\*(C'\fR and \&\f(CW\*(C`Alzabo::Runtime::Row\*(C'\fR classes to access its data. These classes offer a high level interface to common operations such as \s-1SQL \s0\f(CW\*(C`SELECT\*(C'\fR, \f(CW\*(C`INSERT\*(C'\fR, \f(CW\*(C`DELETE\*(C'\fR, and \f(CW\*(C`UPDATE\*(C'\fR commands. .PP 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 \s-1SQL.\s0 .PP A higher level interface can be created through the use of the \&\f(CW\*(C`Alzabo::MethodMaker\*(C'\fR 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. .PP 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. .SS "What to Read?" .IX Subsection "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 \s-1GUI\s0 or via reverse engineering. .PP Here is the suggested reading order: .PP Introduction to Alzabo .PP The RDBMS-specific documentation: .Sp .RS 4 Alzabo and MySQL .Sp Alzabo and PostgreSQL .RE .PP 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 \&\f(CW\*(C`join()\*(C'\fR method. .PP The Alzabo::Runtime::Table docs \- This contains most of the methods used to fetch rows from the database, as well as the \f(CW\*(C`insert()\*(C'\fR method. .PP The Alzabo::Runtime::Row docs \- The row objects contain the methods used to update, delete, and retrieve data from the database. .PP The Alzabo::Runtime::RowCursor docs \- A cursor object that returns only a single row. .PP The Alzabo::Runtime::JoinCursor docs \- A cursor object that returns multiple rows at once. .PP 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. .PP The Alzabo::Runtime::UniqueRowCache docs \- This describes the simple caching system included with Alzabo. .PP The Alzabo::Debug docs \- How to turn on various kinds of debugging output. .PP The Alzabo::Exceptions docs \- Describes the nature of all the exceptions used in Alzabo. .PP The \s-1FAQ\s0. .PP The quick reference \- A quick reference for the various methods of the Alzabo objects. .SH "SCRIPTS" .IX Header "SCRIPTS" Alzabo comes with a few handy scripts in the \fIeg/\fR directory of the distribution. These are: .IP "\(bu" 4 alzabo_grep .Sp Given a regex and a schema name, this script will print out the table and column name for all columns which match the regex. .IP "\(bu" 4 alzabo_to_ascii .Sp Given a schema name, this script will generate a set of simple \s-1ASCII\s0 tables for the schema. .SH "SUPPORT" .IX Header "SUPPORT" The Alzabo docs are conveniently located online at http://www.alzabo.org/docs/. .PP There is also a mailing list. You can sign up at http://lists.sourceforge.net/lists/listinfo/alzabo\-general. .PP Please don't email me directly. Use the list instead so others can see your questions. .SH "COPYRIGHT" .IX Header "COPYRIGHT" 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. .PP The full text of the license can be found in the \s-1LICENSE\s0 file included with this module. .SH "AUTHOR" .IX Header "AUTHOR" Dave Rolsky,