What do DBA's do?

"Data! Data! Data!” 

he cried impatiently, “I cannot make bricks without clay!” — The Adventures of Sherlock Holmes, The Adventure of the Copper Beeches - Sir Arthur Conan Doyle, 1892

Photograph of Arthur Conan Doyle, seated sidew...
Photograph of Arthur Conan Doyle, seated sideways on chair. Published in "Men and Women of the Day 1893", Eglington & Co., England, 1893. (Photo credit: Wikipedia)
Over 100 years ago, Sir Arthur Conan Doyle lamented through his character Sherlock Holmes that more data is always needed than is available.

Today we have amazing systems capable of capturing, recording, retrieving, disseminating and presenting vast quantities of data.

The backbone of any organization is its data, and the person most responsible for this is the Database Administrator or DBA.

A DBA is the administrator of a Database Management System.

However, there is more than a single type of DBA. For a number of years throughout my career, I have fulfilled at least one of these roles. Here is a highlight of what each type of DBA is responsible for.

The various responsibilities of all DBA's we will cover in another thread, but separating them into groups helps clarify the best roles.

Production DBA

The IT professional role responsible for and specializing in software and hardware associated with a
a particular DBMS. Often the DBA is prefixed with the DBMS engine they are a specialist in:
Oracle DBA, MySQL DBA, PostgreSQL DBA, SQL Server DBA.

Transaction Development DBA

When creating a new application that will store persistent data for a long time to come, this DBA manages the development data environment, schema, and assists with query optimization and performance. This DBA should be quite familiar with the development methodologies, languages, and tools that the development team is using. These applications in some areas are called OLTP systems.

Data Warehouse DBA

A data warehouse data environment is very different from an application. Data flows into a data warehouse from multiple transaction or application systems. All of the transaction development skills plus further skills related to ETL tools, and Business Intelligence tools and needs. Data modeling is truly the paramount skill for the data warehouse DBA. Knowing how to translate transaction data structures to data structures that are optimized for reporting and repeatable analytics is the differentiating skill for the data warehouse DBA.

Application DBA

An Application DBA supports application systems, for example an ERP administrator could be considered a DBA because they manage the overall application stack in support of business users of the application. This application stack includes components that use a DBMS as a back-end repository, but all of the components are inter-related. As more and more applications migrate to cloud based solutions the need for this type of expertise is being replaced by the need for DBA's that are more familiar with cloud based solutions and data stores.

Operational DBA

The Operational DBA focus is on performance tuning, backup and recovery,high availability, job scheduling, data delivery, security access levels, etc... in production environments. The Operational DBA has a specific responsibility for change management in production environments.This is slightly different from a production DBA in that the production DBA may work more with creation, and implementation of new environments rather than the day-to-day operations of keeping the lights on.

For the Production, Operational, and Data Warehouse DBA a tool like a Data Structure Graph could be incredibly useful as they work with the movement of data throughout an organization, and all of the inter-dependencies that support the ongoing work of the DBA.

One person could fulfill all of these roles depending on the size of the organization.

How many DBA's do I need?

As with any technical question, the answer is always “It depends.” I propose a formula that you can use to determine how many DBA’s of each type that you will need depending on your organization.

For every two large scale in house development (be this development of software, or customization of an off the shelf product) project you will need 1 Application DBA. 

For every five production database application (In house developed or Off the shelf) you will need at least 1 Operations DBA and one Production DBA.

For a data warehouse project you will need 2 data warehouse DBA’s. 

For every 2 Operational DBA’s you have you need at least 1 Production DBA. 

These are also minimums, because depending on your training and support needs you may want to consider having a few more DBA’s than what is suggested to be able to rotate things like time off and on-call support.  Let me tell you from personal experience, being on call constantly and then having to support new development splits the attention of resources so much that both tasks ultimately suffer when it is done this way. 

No comments:

Post a Comment