The Best Data Modeler is a Lazy Data Modeler – #tsql2sday Post
Special note: This post is part of TSQL Tuesday , a special blog posting monthly event based on a SQL Server/data topic chosen by one blogger. I’d love to see more data architects be part of the blog conversations.
I frequently hear from project team members that they’ve never used the automation features of their data modeling tools. Some of the reasons they give:
- I’m not a programmer. It is not fair to expect me to to know how to program in order to use these tools.
- I have no idea how to use it and don’t have the time to find out
- Nothing I do can be automated; it’s all one-off tasks
- You can automate some of my work???
I think if you are giving these reasons without even trying, you a missing out on one of the niftiest features of your tools.
I’m not a Programmer
Great! Neither am I. The good news is that many tools don’t require you to have full blown programmer skills in order to automate data modeling tasks. They have macro-like languages that require a bit of logic skills, but not much more. For instance, Embarcadero ER/Studio XE uses a macro language called Sax Basic that is very similar to VBscript. I’m lucky in that I used BASIC early in my career and am generally familiar with the language. The toughest part is learning the functions, objects, and properties that are specific to ER/Studio, but thankfully there is a built in Help system that does a half decent job of helping you use them.
I Have No Idea How to Use It
That’s okay, because I don’t start with a blank macro when I go to automate a task; I just start with an existing one that is close to the same thing and tailor it to what I need to do. I needed to export some meta data from my model to Excel, so I opened an existing macro that exported a bunch of data and tailored it to include the data I wanted, in the format I wanted it.
We host a mailing list/forum just for macros and automation of data modeling tools in our InfoAdvisors User Discussion Groups. There are sample models that others have tailored and community members who are willing to help you through a tough part. Also, most vendors have similar resources on their websites.
Nothing I Do Can Be Automated
I think you must be spending a huge amount of time clicking and waiting when you could be pushing a button and doing something else like grabbing a cup of coffee or answering a question on a forum…or even helping out a team member. For instance, some of the macros that have been posted to our communities are:
ER/Studio Exporting All a Model’s Submodels as Images
ER/Studio Macro to Convert 1 Datatype to another Datatype
ER/Studio Macro to Add all Entities from a Model to It’s Submodel
ER/Studio Macro to Print PDFs of all Submodels Completely Unattended
ERwin Macro to Generate DDL for a DBMS not Currently Supported
Most of the macros I write tend to be to make some boring aspects of my job less boring by allowing me to do something else. This means printing out my entire model, exporting images, making mass updates, etc. If it has an algorithm that I can automate, I’m going to invest 15-20 minutes so that I don’t have to spend hours or even hundreds of hours over the course of a project doing those non-architecture tasks.
Another major use of automation I do is for setting properties for my DBAs. Their standards and preferences should be automatable. How FKs are named, how indexes should be names, which datatypes should be used, etc. The fact that I can run a quick macro to do these and keep my DBAs happy, well, that’s priceless. They love me for it <crickets, crickets>…well they should love me for it.
You can Automate Some of my Work???
Yes. Not really the analytical parts, but some of the more mundane, boring, "change all these but not those" tasks. Sure, finding and tailoring a macro takes time, but it is so worth it the next time you push a button, wander off to the coffee room to refill your 31 oz. Trenta cup with high-octane coffee. Managers really don’t want you spending times on tasks that nearly anyone with mouse skills could do. By using macros and APIs, you can add significant hours of productivity to your day. Let’s also admit that computers are generally better at doing mass changes more accurately than we are.
So let’s summarize:
- Automating boring tasks makes you happier.
- Happier Data Architects are better Data Architects
- Automated recurring, boring tasks make bosses happier
- Automating tasks makes for more accurate work
- Saving time for you and your team members makes everyone happier.
A Lazy Data Modeler is a Better Data Modeler.

Subscribe via E-mail
Recent Comments
- Karen Lopez on Strutting: We all Know When You are Doing It. So Stop.
- Joey D'Antoni on Strutting: We all Know When You are Doing It. So Stop.
- Karen Lopez on Strutting: We all Know When You are Doing It. So Stop.
- Thomas LaRock on Strutting: We all Know When You are Doing It. So Stop.
- Karen Lopez on Strutting: We all Know When You are Doing It. So Stop.
Recent Posts
Downloads
- EDW 2013 Karen Lopez Get Blogging
- Karen Lopez presentation DAMA PS 2012
- Data Modeling Contentious Issues - DAMA Nebraska
- Karen Lopez - 10 Physical Blunders - DAMA
- Career Success In Data Profession - DAMA
- The Straw Poll
- You've Just Inherited a Data Model CheckList
- KarenLopez - 5 Physical Blunders - 24HOP-2011
- Handouts for OEMUG / CA Global Modeling User Group Why Be Normal Webcast
- Handouts Database Design Contentious Issues - New York 2010
- Handouts Database Design Contentious Issues - DC 2010
Archive
- May 2013 (5)
- April 2013 (5)
- March 2013 (4)
- February 2013 (7)
- January 2013 (12)
- December 2012 (2)
- November 2012 (3)
- October 2012 (3)
- September 2012 (13)
- August 2012 (5)
- July 2012 (17)
- June 2012 (2)
- May 2012 (4)
- April 2012 (4)
- March 2012 (8)
- February 2012 (11)
- January 2012 (3)
- December 2011 (10)
- November 2011 (8)
- October 2011 (5)
- September 2011 (3)
- August 2011 (9)
- July 2011 (5)
- June 2011 (5)
- May 2011 (5)
- April 2011 (9)
- March 2011 (4)
- February 2011 (9)
- January 2011 (8)
- December 2010 (15)
- November 2010 (27)
- September 2010 (2)
- August 2010 (1)
- July 2010 (4)




