Geek of the Week: Joe Celko

Joe Celko, the Database Developer and writer from Austin Texas, is not a man to mince his words. His encyclopedic grasp of SQL and relational Databases in general comes from a mix of academic knowledge and practical experience. In discussions he can be fascinating, cantankerous, amusing and satirical, but he is never ever dull, as Richard Morris found out when we sent him to interview the SQL language's most famous advocate.


A while back, a forum discussion debated the idea that Joe Celko didn’t really exist, but instead, his writings were actually produced a team of authors. Characteristically, Joe was in amongst the many who contributed, relishing the incongruity, and arguing for the reality of his existence.  Joe is not your average academic theorist.

Joe is a well known SQL expert, and Relational Database guru who has been very widely published. He is a regular columnist for Simple-Talk and has written for dozens of publications including ‘Celko’ in Intelligent Enterprise magazine (CMP); BMC’s e-magazine; ‘SQL Explorer’ in DBMS,  “Celko on Software” in Computing.. He was editor for the “Puzzles & Problems” section of ABACUS.

He has written eight books on SQL and databases for Morgan-Kaufmann, including the best-selling: SQL for Smarties, SQL Puzzles & Answers (1997), Data & Databases in 1999 and Trees & Hierarchies in 2004), Standards in SQL is currently in production.

His books have been translated into Russian, Japanese, Chinese, French and Hungarian.  He has had over a dozen regular monthly or biweekly columns in the computer trade and academic press in the US and Europe. 

Joe’s writing-style varies considerably, depending on the publication. His academic textbooks are ubiquitous for database training courses, but in his more informal writing, he often allows rich vein of dry humour to pervade his writing style.

When I mention coupling and
cohesion, tiered architectures,
structured programming…it’s
like being in a fish market
– rows of cold dead eyes with
open mouths looking back at me.

As well as writing Joe, has found the time run training classes in South Africa, Turkey, the UK, Norway, Sweden, Finland, The Netherlands, Brazil, Belgium, and Switzerland.  He has also taught on-line classes for MySQL. His last full-time job was with the founding of Neumont University in Salt Lake City; a for-profit start-up for software developers. 

His public sector consulting work has included prisons systems, medical organizations NASA and defence contractors.  His commercial work has been equally varied – wholesale banking, auto loan analysis, entertainment, aerospace, education and shipping.

Joe served 10 years on ANSI/ISO SQL Standards Committee and contributed to the SQL-89 and SQL-92 Standards and in 1987 joined the ANSI X3H2 Database Standards Committee 1987 and helped write the ANSI/ISO SQL-89 and SQL-92 standards. 

He achieved his under grad and first Masters in Math (Georgia State University) and he has been a full-time statistician for several years.  His second Masters is in Computer Science which he gained from Georgia Tech.

‘With Microsoft positioning PowerShell across all of its platforms and its various products such as Exchange, will it take over the DBA universe? And if it does, will it be a good or a bad thing to happen?
‘No worries. The DBA Universe is too varied. Microsoft still has a single-user, desktop mindset and has not made it into the mainframe, data warehouse, document, business rules, business intelligence, streaming data and other markets. As a shell language, it locks you into a .NET framework because it deals with proprietary objects. Why would I want to look at it when I have DB Visualizer, Toad, and a few other open source tools?
I guess there are still some Microsoft-only Zombies, but that is not how the smart money bets.
‘Is it true that most DBA’s have adminhood thrust upon them? Is the ‘accidental’ DBA still the most common path to becoming one or are there people who have DBA in their DNA?’
‘Hell, most SQL Programmers have SQL thrust upon them! ‘Hey, Fred, you write <insert language here> pretty good , so why don’t you learn a little ‘Squirrel’, ‘Squiggle’ or however you pronounce ‘S-Q-L’ so you can get to the database?’
And of course, the company will not pay for training. Hey, Fred, buy a Dummies, Idiots, Morons or Zombies book this weekend and get the payroll system up on Monday.
The next level up is ‘I have my Certifications! It took six weeks at a cram school. All bow down before me!’ Of course s/he has not idea about RDBMS, proper design, ANSI/ISO Standards or anything else. They are also not subject matter experts. So often he best you can expect is that they had a copy of ACCESS on their desktop at one time.
This is why you see schema after schema that mimic paper forms, use EAV, allows NULLs in every column, have no real keys and so many other fundamental data design errors.
‘So all these database SQL injection attacks, are they down to bad design, good hackers or luck?
‘It is usually a combination of bad design and laziness.  It is easy to write stored procedures as the only allowed application access method.  Writing code with dynamic SQL or parsing a CSV string is poor programming.  You are telling the world that your code has no cohesion, so any random future user will have a better idea of what to do than you did.
Frankly, I am not sure if Software Engineering is taught any more.  When I mention coupling and cohesion, tiered architectures, structured programming and other basic things (none of the fancy software metrics or function point stuff), it’s like being in a fish market – rows of cold dead eyes with open mouths looking back at me.
‘Is there anything in your career you have done differently? And what achievements are you most proud of?
‘I’d like to have a PhD instead of multiple Masters degrees. Let’s face it, ‘Dr. Celko’ sounds like a 1950’s horror movie, but it is impressive. In the late 1970’s, I might have tried to weather the slump in the Porno industry until it went digital. In the mid 1990’s, I should have set up a dot-com scam and retired early.
‘I am proud of my series of SQL books and that is on top of the list. It is nice to get fan mail for decades from people you don’t know thanking you because you gave them a solution to a problem. And considering how bad my retirement plan is, the Royalties are also very nice.
But looking back over all the decades, the two projects I am most happy about are the State Crime Lab database (pre-SQL, under budget, ahead of schedule) and the State Prison System data analysis.  I have commercial clients where I made a difference, but those two projects showed immediate results and saved human life.
‘You’ve saved lives?
‘We did physiological profiles on the new inmates at in-take. We had a database of over 5000 tests to use for profiles – and it such a self-selected population, they popped out.   We looked for escape tendencies, violence, sexual assault and other undesirable behaviour.  The first year we used the results, the internal homicide rate – yes, violent criminals don’t stop killing when they get to prison – dropped from 12 homicides per year to six, rapes went down, there were no escapes, etc.    I also did work on defence and medical systems, but you could not see the results so fast.
‘Now here’s an interesting one. Who do you think from history would have made great DBAs? Leonardo or the Danish astronomer Tycho Brahe? Margaret Thatcher or Ronald Reagan?
‘Tycho Brahe, since he was the guy who collected and organized data for Kepler to prove that the Sun was the centre of the solar system. That is what Database people do.
But I would like to put Leonardo in Product Development and get him to do GUIs and a really memorable company logo -maybe a pretty girl with a smile or guy inside a circle and a square.
I cannot see Thatcher or Reagan as DBAs; CEO, CIO, perhaps. They are not detail people.
‘It is said that some DBAs live chaotic lives, in that they always seem to be on call. Is it the same for you and have ever considered a change of career?
‘In my youth, I lived in that always on-call world as a programmer. The chaos is not so true anymore. I remember when you had to be on-site physically to use the old mainframes. Today, you can get remote access and the systems take better care of themselves.
Today, I am a consultant and author, not a programmer or DBA, so my chaos is different. I starve to death between jobs and royalty checks, and then I feast. Well, not much feasting because grown-ups know that they have to pay the mortgage a few months ahead, the ISP for a year in advance, the utilities for a year ahead and get a check-up at the doctor. But if I feel I am safe (all expenses 6+ months ahead), then I buy some toys – usually math and database books. Oh Ghod! I am dull!
Changing careers at my age? I used to own some used bookstores in my youth and it might be nice to retire to that. I have taught college before, but maybe I could try high school or junior high. My adopted daughter wants me to be a Greeter at Wal-Mart, so she can get discounts.
‘In fact, taking this a little bit further how would you make money from your skills if you weren’t in the job that you now?
‘Selling kidneys on the Internet, possibly. Not my own, of course.
‘Well like me, you wouldn’t be able to sell your hair to a wig maker, so why not…getting back to the questions, what would you say are the three most important characteristics of an exceptional DBA? Why do you think these qualities are so important?
‘I would say they are:

  1. Data modelling skills since a bad model cannot be saved by the front end or clever DDL and DML code.
  2. Knowledge of Appropriate Standards. Inventing your own data encodings and procedures is like inventing your own spoken language. You will never communicate with anyone else.
  3. Flexibility and constant education, not being wed to one solution or company. IT is a trade where everything you know is wrong in a few years. And every few years you have a new problem that does not match the old tools.
‘Do you think programming languages today are more diverse and engaging than at any time since the early days of computing?
‘They are not that diverse, there are just more of them. Do we really need C# – I pronounce it “SEE Okto-thorp”, like it is spelled? No, but Microsoft will not support Open Source languages like Java – more needlessly proprietary tools.
What I do see is the move to functional languages because of massively parallel processors and SSD (Solid State Disk) technology. Erlang, Haskell and perhaps F# will be the wave of the future. Procedural and OO languages cannot handle those problems.
‘Is there anyone who you regard as your Zen master, the person who has taught you most about what you know today?
‘LOL! My wife is an ordained Soto Zen priest. I would say after 30 years together, I’d go with her.  She is the only person who understood NULLs immediately.
‘Now that’s interesting because if I’m right, Zen minimises the importance of theory. Do you find yourself meditating about problems you can’t immediately solve?
‘Remember there are many branches of Zen, with the two major ones being Soto and Rinzei in Japan.  Soto is full of theory but stresses heuristics in everyday life, with names like the ‘Eight Fold Path’ and so forth.
I fall back on ‘Mother Celko’s Heuristics’ myself.  The first one is: ‘Research it! If someone has already solved this, copy it’ which is also known as ‘Buy, don’t build’ in the trade.  The second one is ‘Use the right terms’ because they are the tools of your mindset.  The third is get clear specifications so you know what you are supposed to do.  The fourth is ‘Get it right first, then make it fast’ (if it does not have to be right, the answer is always 42).   The fifth is ‘When you are still stuck, Meditate; you need a quiet place, some time and Scotch’.
‘Is there any moment or event either in IT or computer science would you like to have been at and why?
‘I moved to Austin in 2000 to get rich in the Dot-Com boom (we know how that worked out). Edsgar Dijkstra was teaching at the University of Texas and I could have pushed to get into his classes. He died in 2002 and I missed the opportunity. That is a personal regret.  I understand that he did suffer fools gladly and would often tell students that they were programming completely wrong.
But I was glad to spend ten years on the ANSI Database Standards committee and be a part of it.

Joe Celko will be speaking at the forthcoming SQL Server Connections at Las Vegas , part of DevConnections. The annual spring event is held in Orlando, FL, and the annual fall event is held in Las Vegas.Joe will be presenting two session: Darling, Your SQL is Sooo Last Season! and Naming and Modeling Data Objects.

SQL Server Connections is going to be held November 9-12, 2009, at the Mandalay Bay Hotel and Conference Center in Las Vegas, NV