Recently, I have been working on several large SQL projects, so when I was given the opportunity to write a review for theKompany.com’s Data Architect software (especially now that its little brother Rekall has being open sourced), I knew exactly which wretched projects to test it against; mine.
Before plunging into the details of my week-long tryst, I should reveal what Data Architect is. Data Architect is a cross-platform, database neutral, ERD (Entity Relationship Diagram) based, data modeling tool, which runs on Linux and Microsoft Windows. It also supports OS X, but unfortunately my wallet doesn’t, so I will have to limit this review to the former operating systems. Now that we have all the technobabble, acronyms and buzz words out of the way, let’s look at Data Architect.
No software review would be complete without blathering incessantly about, and basing the majority of the review on, the installer. In this case I’m afraid I must disappoint. On Microsoft Windows, the installer is a single, simple Microsoft Installer (.msi) file. You double-click on it and Data Architect, through the miracle of modern mouse-clicking technology, is quickly installed.
Installing Data Architect on Linux is slightly more challenging. Data Architect itself is quite easy, but you may need to install some other software as well, which I will mention in a moment.
The Data Architect CD includes RPM packages for the distributions that support them, and for everybody else, there is a single .tar.gz file that contains an install.sh script. For me, this part of the install worked flawlessly on Slackware 9.1.
Besides Data Architect, on Linux you must also install unixODBC and possibly a driver for your database (unixODBC includes a driver for PostgreSQL, for instance, but others you may have to build manually). unixODBC is available at http://www.unixodbc.org or if you are using Debian, it is obtainable through apt. I also found a Slackware package for it at http://www.linuxpackages.net, and SuSE Linux 9.0 ships with unixODBC installed by default.
The unixODBC part of the setup posed a slight challenge for me since I have never used it and was not familiar with the configuration process; in particular, which Driver and Setup library I needed to use. If you are planning to use PostgreSQL, and are unfamiliar with unixODBC, let me save you some time. The Driver library is “/usr/lib/libodbcspql.so” and the Setup library is “/usr/lib/libodbcpsqlS.so”.
Overall, the setup process was mind-numbingly easy on Windows, and should be fairly simple for an experienced user on Linux.
Before you can really begin using Data Architect, you must first configure the ODBC connection to your database. It is inside this configuration tool
I liked the fact that Data Architect includes a toolbar button for launching the ODBC configuration dialog too. It is quite convenient and makes the configuration process seem like it’s part of the Data Architect experience instead of a separate stroll out to some other utility. I realize that this is a small thing, but it demonstrates the effort that theKompany.com has put into making the user’s experience a complete and positive one.
Data Architect manages projects through what they call a workspace.
You should begin by creating a project, and then continue by creating physical models from within your project. You can choose to create a stand-alone physical model, but I don’t recommend doing so. Data Architect manages connections to the server through the project object, so if you create only a physical model, you will be unable to connect to your database server. After creating a project, you can right-click on the project in the browser window and select Add from the drop-down menu to add Physical models to your workspace.
A lot of my work involves internationalization engineering and developing localization tools, so for one of my tests, I created a simple database to handle the storing of English strings and multiple translated versions of those strings using Data Architect. Then, I populated a PostgreSQL database with those table definitions. Of course, such a database would be more complex than the screenshots
For those of you who have never used an ERD based tool, creating tables in Data Architect is a lot like using Dia or Visio to create network or program flow diagrams; as you can see from the Tables image.
There are two kinds of models that you create tables in; a physical model and a logical model. If you are in the planning phase of database design, Data Architect supports the creation of logical tables so you can see what your data will look like, and how your data tables will interact prior to settling on a database server. Once your plans have been stabilized and approved, Data Architect allows you to move your logical designs into physical models.
Of course, if you already know which database server you are going to use, you can create your design using a physical model. The benefits of doing so are that Data Architect incorporates the data types and other abilities of your particular database server into its design tools.
Of all the features I tested, I think the one I was most pleased with was the ability to “reverse engineer” a database and import it into a Data Architect workspace. I was able to easily and successfully import a large, complex database, alter a couple of tables, and update my database server with those changes with just a few mouse clicks.
I also tested Data Architect on the Northwind database that ships as an example with Microsoft SQL Server. Data Architect handled that test as well. I also used Data Architect to port a Microsoft SQL Server database over to PostgreSQL, and as with all my other tests, I was impressed with the results.
Another nice feature related to creating and importing tables is Data Architect’s validation abilities. As you create a complex database, it is possible to make mistakes. With the click of a button, Data Architect will validate your design and allow you to fix your mistakes prior to generating a physical database.
I was pleased with how customizable the Data Architect user interface is. Data Architect allows you to set the colors on any object, or text from one of the tool windows on the main screen. When I was working with my own databases, I found it quite useful to set the colors of each table or group of tables separately in order to visually group them on the screen; making my designs easier to read. Data Architect also has some alignment tools to make organizing your diagrams easy.
If I were going to offer any constructive criticism regarding the user interface (which I obviously am about to do), it would be that I couldn’t figure out what the “Project” combo-box did on the New dialog (of course that may be more a testament to my inability to manipulate simple mechanisms than anything else) and that nearly all of the toolbar button icons are quite green. I think disparate colors would make locating toolbar buttons a little easier.
One of the things that makes or breaks cross-platform software in my opinion is whether or not the software is visually and functionally consistent across the platforms it supports. I have to give Data Architect a top score in this area. As far as I could tell, the Linux and Windows versions were identical to each other.
Data Architect is a solid, stable and highly useful tool. It does exactly what it is supposed to do and it does it surprisingly well. I tested it on both Linux and Windows, and using PostgreSQL, MySQL, and Micrsoft SQL Server. It worked exactly as I expected in all of these scenarios.
If you are doing any database design or programming, I am confident you will find Data Architect to be an excellent addition to your library of tools. If you are interested, now is the time to buy. The download version is currently only $39.95, but this price will only last until the end of November. Thereafter, it will be $59.95, which is still a very good price for such a useful tool. If you are like me and tend to lose your downloaded software, CDs may also be purchased for around $15.00 more.