This is a guest editorial from Phil Factor as Steve is on Sabbatical.
The work of designing and building SQL Server databases has become progressively less visual in its nature. It’s an odd trend, since you’d think that the reverse would be the case now it is so much easier to implement graphical tools.
For me, databases are intensely visual things, and in my mind’s eye, I see data, its relationships, and its processes diagrammatically. I suspect it is the same for many of us. SQL Server inherited a toolset from MS Access that included a query builder, table builder and Entity-relationship diagramming tool. It was there in Enterprise Manager, and it is still there in SSMS, almost the same as ever.
The graphical tools provided by Microsoft just haven’t kept pace. The MSQuery ODBC graphical query-building tool looks very much the way it did in the early nineties, still shipped in Excel 2013. We have a table-building tool that is easy to forget about in SSMS, and one for Views, which is quite useful for queries, but no query builder. There is a whole lot more that would be easy to do. David Poole recently showed how easy it is to show the shortest chain of relationships between two tables, and the dependency map of the tables in a database.
What about mapping the dependencies on any object, such as a procedure? How about representing the permissions on objects, particularly schemas? What about representing a map of all the central management servers according to SQL Server version, role, network etc? How about a decent execution plan viewer that scales better?
Perhaps the problem is that visual tools are equated with novice tools in the current programmer-snobbery. It is suddenly cool to have screens full of text. Where the previous generations escaped the drudgery of ForTran, PL/1 and Cobol with the novelty of Visual Basic and Delphi, where we learned to stich applications together visually it now is no longer fashionable. The kids like text. SSMS, Visio, and VS have all ‘dropped the ball’ as far as data modelling goes.
OK, there are plenty of UML diagramming tools around, and loads of drawing packages that allow you to hand-draw ER Diagrams, but finding something that can be used to generate build-scripts for, or reverse-engineer from, databases? Fine if you have a fat wallet (and I’ve used several at work) but is there anything good that you’re using that is useful for the rest of us?