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