Download ERW

Transcript
Preface
ERW is a system for managing complex (and possibly large) databases using a web
browser. Its original purpose was content management, that is, allowing easy maintenance of web site data organised in a database in a heterogeneous environment,
where little is known about client machines except that they will have a web browser.
ERW is based on a formal description of the database in a variant of the common
entity-relationship model (more precisely, of what it is usually called the extended
entity-relationship model). An XML-based language, ERL (Entity-Relationship
Language), is used to define formally a entity-relationship schema that provides a
conceptual description of the database.
From the ERL-based description, a Java™ preprocessing tool, ERtool, reifies the
schema, that is, it transforms the description based on entities and relationships in
a set of tables that suitably implement that description. Moreover, it generates a
graphical representation of the schema and documentation about the reification
process; this documentation allows you to understand exactly how the process was
carried out. And, last but not least, it generates a set of configuration files written in
PHP. These files, when fed into the provided run-time PHP environment, generate
a set of forms that allows easy editing of the database. A flexible customisation
process allows you to tune the forms to your needs.
Where is the difference with other web-based database administration tools? The
point is that ERW knows the abstract structure of the database, and thus can offer
a much more sophisticated interface to the user. In particular, the user never sees
an SQL table: rather, it is presented with relation-based operations such as “associate
this element to this element”. The run-time environment (using the configuration files
produced starting from the ERL file) will modify the database tables correspondingly.
Just to make a comparison, a tool like PHPmyAdmin is to ERW as a disassembler is to
a compiler/run-time environment. You can of course use PHPmyAdmin to do raw administration of the database tables generated by ERW, but the knowledge that ERW
has of the abstract structure of the entity-relationship schema gives it the possibility of interpreting the same tables in a deeper way. Of course, ERW can only edit
databases reified by ERtool, so it is less general.
These are not, however, the only advantages of using ERW. We list some of them:
•
ERW has support for a wide range of features of the extended entity-relationship
model, including multiple inheritance and multiple owners.
•
ERW is entirely based on international standards and open-source tools. Since every part of the system is known and documented, you are never left with an unusable bunch of data, or outdated form-generating scripts that no one remembers
how to modify. The system, moreover, is largely architecture independent.
•
ERW is free software distributed under the GNU General Public License1. However, applications built using ERW may be distributed under the license of your
choice (similarly to what happens to programs compiled with a free compiler).
•
ERW maintains referential and logical integrity of your database. That is to say, not
only editing cannot create dangling references, but also the cardinality constraints
you have imposed will be automatically enforced; for instance, if every document
must have an author, then it will be impossible to insert a new document without
associating it with an author.
•
ERW allows any number of users to access the database concurrently.
•
ERW uses the W3C DOM to offer a rich and intuitive graphical interface. This
interface comes at no cost once you have defined your entity-relationship schema
in ERL.
•
ERW supports gettext and UTF-8 everywhere: you can create forms and handle
content in any language.
vii