About Xplain

Xplain is a beautifully orthogonal database manipulation and query language. Orthogonal means that with Xplain there is usually only one solution, not dozens like in SQL. Xplain straight-forwardly supports aggregation and generalization. Or in other words, it supports has-a and is-a relations, the only possible relations. Because it supports is-a relations, it is a very natural component in an object-oriented environment.

Xplain also has a graphical side. Data models created in Xplain are far more readable than data models drawn with ER based tools. I use Xplain data models a lot in my consultancy businesses. Clients usually don't even have an ER model, and even if they have, are you able to understand it in a short time? ER models have to be studied very, very hard to understand them. I always draw the data model in Xplain (or a more of less equivalent if the database doesn't make sense) and are able to understand it very quickly. Or even better, to propose a better design.

Its my experience that if you use Xplain, you will create far better than average data models, and you get normalization for free. Of course, a few words of praise, don't tell you anything real. Take a look at the tribute website to Xplain's inventor Johan ter Bekke (1946-2004). Or read the manual of my Xplain to SQL convertor (see below) for a short introduction to Xplain.

The only drawback of Xplain is that there isn't really a product that supports it directly (There is an Xplain product, but it's a proprietary, single-tier system). Therefore, the last 6 years, I've written various Xplain to SQL transformators. My current converter is called xplain2sql (how surprisingly), and its latest release can be downloaded from this site.

You can join the Xplain discussion group at http://groups.yahoo.com/group/Xplain.


Xplain2sql converts Xplain statements to SQL statements. More about this tool can be found in:


Because I frequently use semantic data base models in the documentation and designs I create, I had a need for a tool which let make create diagrams quickly. I've written a simple tool for this. It outputs a LaTeX picture environment and MetaPost. Buried in the source is also Postscript output. If you don't use ConTeXt or LaTeX for your document production, this tool is probably of little use to you.

You can download the Win32 executable or the Delphi sources.

Use the menu to put types on the diagram. You can't put a base on the diagram. Right click with your mouse to either change the name or connect it to another type.

This is a quick and dirty tool, so save your diagrams often and make backup copies. I've never experienced diagram corruption myself, but you can't be too sure of this hack. Known bugs are screen updating problems and a `Index out of bounds' message.

Emacs xplain-mode

I've created an Emacs Xplain mode: xplain-mode.el. This brings you Xplain aware editing with syntax high-lighting.