Skip to main content

Database Schema Viewer: What do you like to see added?

Posted by mkarg on February 28, 2010 at 6:09 AM PST

For meanwhile more than 25 years I am writing computer programs. More than a decade I spent with programs accessing databases, virtually always relational ones. I soon learned that this is rather hard work. Not only that you need to know about the theory behind RDBMS iself, but also you need to know the technical APIs (like ODBC, ADO, RDO, JDBC, JDO, JPA, CMP, ...), the structure of the database itself ("Schema": table names, keys, data types, etc.) and it's management system (like Oracle, Microsoft, Sybase, etc.). And certainly there are lots of tools. I've seen come-and-go so much different tools, all of them blown with lots of never used features. Each different to use and to install.

What I always missed, as a coder, was some "small" solution. I just wanted to look up the tables, the names of the columns, the data types. I don't needed a graphical map ("ER diagram"). Just something that I can quickly start to peek into the schema. But almost all of the tools I had, where just too heavyweight. They needed endless to start, or had been buggy, or you needed much too much mouse clicks to get to your information. My dream was to have something like a type or cat command, which just prints some information, without further stuff around it. So I checked the web and noticed that there was not so much in that direction, actually. So I started some experiments months back and what I came up with short time later was a database scanner: A CLI tool scanning a database once, giving the result as a XML print on the console. Cool, finally I had my quick-one-shot-solution, and it didn't cost a buck. Great!

I used it a lot in different projects and actually it turned out that it was really handy, since I could just go to the command line to get a schema overview in a few seconds. No installation. No bloated IDEs. Just text based "database source code", just as I always liked it to be (don't all we hardcore coders love command lines and code-centric tools?). But one day a friend told me that it would be smart if the file could be saved to disk so he can look at it offline later, and that there would be something like a tree-like viewer since it's just easier to browse through the schema by clicking in the tree instead of looking at XML nodes. Well, I didn't liked the idea first, but after I finished a prototype and tried it for some days, I actually had to confess that he was right: It was just fun to double click the pre-scanned schema file and see the structure of the schema in nice GUI tree instead of a XML text file. It was just handy to carry around the file, or send it to partners, which had no idea of the XML syntax but just used XSLT or my GUI based tree viewer to inspect it - without the need for expensive, proprietary team-based modelling tools. We even stored the XML in SVN to see the differences in versions and branches: We now had been able to see an actual history of database changes just by storing the XML schema instead of binary models or proprietary table definition scripts. And all with a really small tool utilizing some JDBC metadata commands and a bit of abstraction and JAXB ontop of it: Java is just great!

As it turned out that more and more people liked to try my tool when I told about it at the afterwork parties, I saw the need to really publish it instead of just giving it to friends on their USB stick, so I set up the possibility to download it from my persoanl WebSite Head Crashing Informatics for evaluation purposes. As some of them had been really persistent about getting personal help, I abstained from Open Source at the first place (actually I am planning to open source it when I find the time to set up that) and set up a commercial offer for just around nine Euros (a price nobody really cares about as daily lunch is more expensive). As the evaluation is not limited any way (you can use all features virtually endless but there is neither liability nor support) I should actually call it "Free Edition".

So next step before thinking of publishing as open source, I first like to enrich it with more features. There is my private faviourites list already, but maybe my wishes are not so essential than yours. So here is what I'd like to get from you: Please download it, try it out in daily use, and tell me what you think about it. Is it useful? Small and fast enough? What would you liek to see in the next (or any following) release? What is essential, what is optional? Are there any bugs? What databases did you try (currently I know it is running on Oracle, Sybase and Microsoft)? What about the price? Too much or ok for you (maybe you like to order now before the price will raise)? Like to have an unsupported free edition instead of the nine euro supported one? Test it and send all your comments to me by email!

Cheers!
Markus


Note: An overview of all my recently published blog entries and printed articles (and more stuff) can be found on my private WebSite Head Crashing Informatics (http://www.headcrashing.eu).

Comments

Squirrel ?

Hi Markus, hmm well all the features you claim for your leight weight db scanner are already there...see http://squirrel-sql.sourceforge.net/ You can see the schema in a tree view, look at all the columns and their attributes. You can browse the content with sql and so on. You can even write a plugin to export the schema to xml, so you can have the working chain there that you described ("versionizing" and so on). And there is no installation for squirrel...and its free. You can use it with any JDBC driver for any database out there. So i would like to see your db scanner also as a plugin for squirrel...as a feature wish :) Greetings, Lian

Squirrel is too big

Looking at all the menus and plugin possibilities, Squirrel looks to me like SQL-IDE. Exactly what I didn't want to get. And writing something to get my features obviously is not the same than having my features out of the box. Certainly I could add my features into Squirrel. But why should I?