This site will look much better in a browser that supports web standards, but it is accessible to any browser or Internet device.

The Open Source Zone


ERW

Project logo
Project Name ERW
Category Frameworks
Programming Language PHP
Project Home Page http://erw.dsi.unimi.it/
License(s) GPL
License URL(s) http://www.gnu.org/copyleft/gpl.html
Tags (edit) database design, entity-relationship, modeling, sql

ERW is a set of specifications and tools that makes it easy to create, modify and maintain via web a database described by an entity-relationship schema. Firstly, you describe the domain of interest using ERL, an XML-based language. Then ERW creates for you an SQL database, a set of customisable forms that edit the database, graphical layouts of the schema and documentation. Of course, ERW can be used for content management, in particular when your data is structured along complex relations.

In a way, ERW is a framework (in the object-oriented sense), as it provides a general infrastructure—you just have to "fill in the blanks" by describing the basic objects (entities and relationship) you want to manipulate.

The main limit of this approach (which is intrinsic to the framework idea) is that you cannot expect to add easily features that are not present in ERW (unless, of course, you are ready to work on the framework itself, which is overkill for a single application). For instance, if you do not like the way lists of entities are displayed, there is little you can do (albeit there are hooks that let you customise several parts of the overall behaviour). This, however, has also the effect of making all ERW-based applications look very similar: a user can easily shift from one to another.

Moreover, the limitations are overwhelmed by the advantages: you have to write no code. A description of an entity-relationship schema is sufficient to generate a complete application, or, as sometimes one says, ERW is able to perform a complete reification of the description. If you need to modify your schema, you just have to modify the description (migration of the database content, however, must be handled manually).

Many tools for database design let you generate SQL code starting from an entity-relationship schema: ERW goes much farther, and uses the ontological information contained in the abstract description to build a sophististicated user interface, which, combining HTML, CSS, the W3C DOM and ECMAScript (the standardized version of JavaScript), lets the user interact with the database much in the same way as using a dedicated client application.

ERW provides support for many sophisticated schema features, such as multiple inheritance, weak entities with multiple owners, enumerative types, abstract entities, relationships with attributes, etc. Moreover, it provides useful end-user features, such as authentication and authorisation (even row-based), customisable labels and filters, internationalisation, UTF-8 support and so on. Ensuring coherence in such a generic setting required a very precise semantics of a schema, which is fully described in the manual and allows one to access the database and modify it using other clients.

Another noteworthy feature is that ERW is architecture independent and entirely based on international standards and open-source tools. Moreover, ERW is free software distributed under the GNU General Public License. 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).

Edit project.

Report abuse.

Add similar projects.

Reviews

Be the first person to review this project!

User tips

Add a tip.

Related books

Add more books.


Last modified on 2007-08-01 14:07:37.13 (rel. 4).