The meaning of Database Administrator

2007/07/16

In two blogs I follow, Andy Leonard's blog on SQLBlogs.com and Sheeri Kritzer's The MySQL She-BA, the question of what is a database administrator has come back up. Andy has posted twice on the topic, first with how DBAs are an enterprise requirement and then a follow-up to that post. In Sheeri's case, she was pointing out that a system administrator friend of hers considers the use of phpMyAdmin as a determining factor on whether or not one is DBA: he's not much of a DBA because if it can't be done through this tool, he's not likely to be doing it. She points out that there are some who use phpMyAdmin and consider themselves DBAs... indicating it would be a senior DBA who steps away from this tool. Sheeri is implying if you are a DBA (not a senior DBA), you should be able to go from a command-line and enter actual SQL. I agree with her.

I have to admit I like phpMyAdmin in concept. But when I manage MySQL databases I really don't like this tool in practice. For me it gets in the way. The same can be said for most of the GUI tools for SQL Server. Give me a connection where I can execute queries and I'm happy. If you want to spoil me allow me to have Intellisense a la SQLPrompt or Apex SQL Edit. But there are so many things which either: (a) can't be done from the GUI or (b) take so much longer to do that way. For instance, a couple of posts back I talked about DDL triggers and CREATE_LOGIN and ALTER_LOGIN events. SQL Server Management Studio doesn't provide much of an interface for DDL triggers. You can script them and delete them, but that's about the extent of it. You've got to go to the command-line in order to create or alter them (or enable or disable them).

When I consider what it means to be a DBA, I believe it means to have a fundamental understanding of how the database platform works and about relational database theory in general. A DBA should understand how to manage the database system. This means how to do backups and restores, how to work with indexes and other optimizations, and how the security model for the platform is structured. I also think it means having some competency with the flavor of SQL used by that RDBMS system. Not everything can be done via the GUI. Some DBAs may prefer the GUI for certain tasks, but if forced to they can go to the command-line and get the job done. Sure, they may need to check a reference text like Books Online, but they still are capable of doing it. This isn't to knock GUI and work-saving tools like SQL Server Management Studio or phpMyAdmin. They serve a purpose and if they reduce the time to complete a particular task, there's nothing wrong with using them. But a DBA should be able to go without such tools in order to accomplish the work.