An oft-repeated story about database administration underscores both the necessity for database administration and the lack of understanding of a DBA’s function:
The CIO of Acme Corporation hires a consulting company to streamline their I.T. operations. The consultant, determined to understand the way Acme works, begins by interviewing the CIO. One of his first questions is: “So, I see that you have a DBA on staff. What does he do?”
The CIO replies, “Well, I’m told that we need the DBA to make sure our production databases stay online. I know that some of our critical business processes like order entry and inventory use Oracle, but I really don’t know what the DBA does. Now please don’t tell me I need another one, because we can barely afford to pay the one we have!”
This is a sad, but too often true, commentary on the state of database administration in many organizations. DBMS software is complex and few people understand more than just the basics (like SQL). DBAs understand the complexities of the DBMS, making them a valuable resource — and sometimes the only reliable source of database management and development knowledge within the organization is the DBA.
The DBA, often respected as a database guru, is just as frequently criticized as a curmudgeon with technical knowledge but limited people skills. Most programmers have their favorite DBA story. You know, those anecdotes that begin with “I had a problem…“ and end with “…and then he told me to stop bothering him and read the manual.”
DBAs simply do not have a warm and fuzzy image. This may have something to do with the nature and scope of the job. The DBMS spans the enterprise, effectively placing the DBA on call for the applications of the entire organization. Database issues can require periods of quiet reflection and analysis to resolve, so DBAs generally do not want to be disturbed. But their quiet time is usually less than quiet; constant interruptions to answer questions and solve problems are a daily fact of life.
DBAs need to acquire exceptional communication skills. The DBA is at the center of the development life cycle — ensuring that application programs have efficient, accurate access to the corporation’s data. So DBAs frequently interface with many different types of people: technicians, programmers, end users, managers, and executives. However, many DBAs are so caught up in the minutiae of the inner workings of the DBMS that they never develop the skills required to relate appropriately to their coworkers and customers.
So what is a DBA? The short answer is simple: A DBA is the information technician responsible for ensuring the ongoing operational functionality and efficiency of an organization’s databases and the applications that access those databases. The long answer to that question requires a book to answer. But let’s start by endorsing the need to tackle database administration as a management discipline: not art, not magic, but a craft that ensures the ongoing operational functionality and efficiency of an organization’s databases and applications.
Database administration is rarely approached as a management discipline. The term discipline implies a plan, and implementation according to that plan. When database administration is treated as a management discipline, the treatment of data within your organization will improve. It is the difference between being reactive and proactive.
All too frequently, the DBA group is overwhelmed by requests and problems. This ensues for many reasons, such as understaffing, over-commitment to supporting new (and even legacy) application development projects, lack of repeatable processes, or lack of budget. The reactive DBA functions more like a firefighter than an administrator; he attempts to resolve problems only after problems occur. The reactive DBA is focused on resolving the biggest problem confronting him.
In contrast, the proactive DBA implements practices and procedures to avoid problems before they occur. A proactive database administrator develops and implements a strategic blueprint for deploying databases within the organization that spans every phase of the application development life cycle.
The DBA is responsible for managing the overall database environment. A good DBA is integral to the entire life cycle of database support, implementation, and maintenance and will treat the job in a formal and disciplined manner… anything less should be unacceptable.