Skip to content

DBAzine.com

Sections
Personal tools
You are here: Home » Of Interest » Articles of Interest » What Is a DBA? - Part 4
Seeking new owner for this high-traffic DBAzine.com site.
Tap into the potential of this DBA community to expand your business! Interested? Contact us today.
Who Are You?
I am a:
Mainframe True Believer
Distributed Fast-tracker

[ Results | Polls ]
Votes : 3554
 

What Is a DBA? - Part 4

by Craig S. Mullins
From Craig Mullins' Database Administration: The Complete Guide to Practices and Procedures, Addison Wesley Professional; ISBN: 0201741296; 1st edition (June 14, 2002).

Part 1  |  Part 2  |  Part 3  |  Part 4  |  Part 5  |  Part 6

Types of DBAs

There are DBAs who focus on logical design and DBAs who focus on physical design; DBAs who specialize in building systems and DBAs who specialize in maintaining and tuning systems; specialty DBAs and general-purpose DBAs. Truly, the job of DBA encompasses many roles.

Some organizations choose to split DBA responsibilities into separate jobs. Of course, this occurs most frequently in larger organizations, because smaller organizations often cannot afford the luxury of having multiple, specialty DBAs.

Still other companies simply hire DBAs to perform all of the tasks required to design, create, document, tune, and maintain the organization’s data, databases, and database management systems. Let’s look at some of the more common types of DBA.

System DBA

A system DBA focuses on technical rather than business issues, primarily in the system administration area. Typical tasks center on the physical installation and performance of the DBMS software and can include the following:

      • Installing new DBMS versions and applying maintenance fixes supplied by the DBMS vendor
      • Setting and tuning system parameters
      • Tuning the operating system, network, and transaction processors to work with the DBMS
      • Ensuring appropriate storage for the DBMS
      • Enabling the DBMS to work with storage devices and storage management software
      • Interfacing with any other technologies required by database applications
      • Installing third-party DBA tools

System DBAs are rarely involved with actual implementation of databases and applications. They might get involved in application tuning when operating system parameters or complex DBMS parameters need to be altered.

Indeed, the job of system DBA usually exists only if the organization does not have an official system administration or systems programming department.

Database Architect

Some organizations create a separate position, database architect, for design and implementation of new databases. The database architect is involved in new design and development work only; he is not involved in maintenance, administration, or tuning of established databases and applications. The database architect designs new databases for new or existing applications.

The rationale for creating a separate position is that the skills required for designing new databases are different from the skills required to keep an existing database implementation up and running. A database architect is more likely than a general-purpose DBA to have data administration and modeling expertise.

Typical tasks performed by the database architect include:

      • Creating a logical data model (if no DA or data modeler position exists)
      • Translating logical data models into physical database designs
      • Implementing efficient databases, including specifying physical characteristics, designing efficient indexes, and mapping database objects to physical storage devices
      • Analyzing data access and modification requirements to ensure efficient SQL and optimal database design
      • Creating backup and recovery strategies for new databases

Most organizations do not staff a separate database architect position, instead requiring DBAs to work on both new and established database projects.

Database Analyst

Another common staff position is the database analyst. There is really no set definition for this position. Sometimes junior DBAs are referred to as database analysts. Sometimes a database analyst performs a role similar to that of the database architect. Sometimes the data administrator is referred to as the database analyst or perhaps as the data analyst. And sometimes a database analyst is just another term used by some companies instead of database administrator.

Data Modeler

A data modeler is usually responsible for a subset of the DA’s responsibilities. Data modeling tasks include the following:

      • Collecting data requirements for development projects
      • Analyzing the data requirements
      • Designing project-based conceptual and logical data models
      • Creating and updating a corporate data model
      • Ensuring that the DBAs have a sound understanding of the data models

Application DBA

In direct contrast to the system DBA is the application DBA. The application DBA focuses on database design and the ongoing support and administration of databases for a specific application or applications. The application DBA is likely to be an expert at writing and debugging complex SQL and understands the best ways to incorporate database requests into application programs. The application DBA must also be capable of performing database change management, performance tuning, and most of the other roles of the DBA. The difference is the focus of the application DBA—it is on a specific subset of applications rather than the overall DBMS implementation and database environment (refer to Figure 1).

Figure 1: Focus of the Application DBA

Not every organization staffs application DBAs. However, when application DBAs exist, general-purpose DBAs are still required to support the overall database environment and infrastructure. When application DBAs do not exist within an organization, general-purpose DBAs are likely to be assigned to support specific applications while also maintaining the organization’s database environment.

There are pros and cons to staffing application DBAs. The arguments in favor of application DBAs include the following:

      • An application DBA can better focus on an individual application, which can result in better service to the developers of that application.
      • The application DBA is more often viewed as an integral component of the development team and therefore is better informed about new development plans and changes.
      • Because the application DBA works consistently on a specific set of applications, he can acquire a better overall understanding of how each application works, enabling him to better support the needs of the application developers.
      • With a more comprehensive understanding of the application, an application DBA will have a better understanding of how the application impacts the overall business. This knowledge will likely result in the execution of DBA tasks to better support the organization.

But all is not favorable for application DBAs. There are cons to implementing an application DBA role:

      • An application DBA can lose sight of the overall data needs of the organization because of his narrow focus on a single application.
      • The application DBA can become isolated. Lack of communication with a centralized DBA group (if one exists) can result in diminished sharing of skills.
      • When an application DBA implements useful procedures, it takes more effort to share these procedures with the other DBAs.
      • Due to the application-centric nature of the position, an application DBA can lose sight of new features and functionality delivered by the DBMS group.

In general, when staffing application DBAs, be sure to also staff a centralized DBA group. The application DBAs should have primary responsibility for specific applications, but should also be viewed as part of the centralized DBA group.

Task-oriented DBA

Larger organizations sometimes create very specialized DBAs that focus on a specific DBA task. However, task-oriented DBAs are quite rare outside of very large IT shops. One example of a task-oriented DBA is a backup-and-recovery DBA who devotes his entire day to ensuring the recoverability of the organization’s databases.

Most organizations cannot afford this level of specialization, but when possible, task-oriented DBAs can ensure that very knowledgeable specialists tackle very important DBA tasks.

Performance Analyst

Performance analysts are a specific type of task-oriented DBA. The performance analyst, more common than other task-oriented DBAs, focuses solely on the performance of database applications.

A performance analyst must understand the details and nuances of SQL coding for performance and be able to design databases for performance. A performance analyst will have very detailed technical knowledge of the DBMS so that he can make appropriate changes to DBMS and system parameters when required.

However, the performance analyst should not be a system DBA. The performance analyst must be able to speak to application developers in their language in order to help them facilitate appropriate program changes for performance.

The performance analyst is usually the most skilled, senior member of the DBA staff, a role that he has grown into due to his experience and the respect he has gained in past tuning endeavors.

Data Warehouse Administrator

Organizations that implement data warehouses for performing in-depth data analysis often staff DBAs specifically to monitor and support the data warehouse environment. Data warehouse administrators must be capable DBAs, but with a thorough understanding of the differences between a database that supports OLTP and a data warehouse. Data warehouse administration requires experience with the following:

      • Business intelligence, query, and reporting tools
      • Database design for read-only access
      • Data warehousing design issues such as star schema
      • Data warehousing technologies such as OLAP (including ROLAP, MOLAP, and HOLAP)
      • Data transformation and conversion
      • Data quality issues
      • Data formats for loading and unloading of data
      • Middleware

Staffing Considerations

Staffing the DBA organization is not a simple matter. Several nontrivial considerations must be addressed, including the size of the DBA staff and the reporting structure for the DBAs.

How Many DBAs?

One of the most difficult things to determine is the optimal number of DBAs required to keep an organization’s databases online and operating efficiently. Many organizations try to operate with the minimal number of DBAs on staff; the idea being that fewer staff members lowers cost. However, that assumption may not be true. An overworked DBA staff can make mistakes that cause downtime and operational problems far in excess of the salary requirements of an additional DBA.

Determining how many DBAs is optimal is not a precise science. It depends on many factors:

      • Number of databases. The more databases that need to be supported, the more complex the job of database administration becomes. Each database needs to be designed, implemented, monitored for availability and performance, backed up, and administered. There is a limit to the number of databases that an individual DBA can control.
      • Size of the databases. The larger the databases that need to be supported, the more difficult the job of database administration. A larger database takes longer to create, maintain, and tune. In addition, more potential for confusion arises when SQL takes longer to execute—causing the DBA to spend more time working with developers to tune SQL.
      • Number of users. As additional users are brought online, optimal database performance becomes more difficult to ensure. Additionally, as the number of users increases, the potential for increase in the volume of problems and calls increases, further complicating the DBA’s job.
      • Number of applications. A single database can be utilized by numerous applications. Indeed, one of the primary benefits of the DBMS is that it enables the sharing of data across an organization. As more applications are brought online, additional pressure is exerted on the database in terms of performance, availability, and resources. As more applications are brought online, more DBAs may be required to support the same number of databases.
      • Service-level agreements (SLAs). The more restrictive the SLA, the more difficult it becomes for the DBA to deliver the service. For example, a service-level agreement requiring subsecond response time for transactions is more difficult to support than an agreement requiring three-second response time.
      • Availability requirements. Database administration becomes easier if databases have an allowable period of scheduled downtime. Some DBA tasks either require an outage, or are easier when an outage can be taken. Considerations such as supporting e-business transactions and the Web drive the need for 24/7 database availability. 24/7 availability is often incompatible with certain DBA tasks.
      • Impact of downtime. The greater the financial impact of an unavailable database, the greater the pressure on the DBA to assure greater database availability.
      • Performance requirements. As the requirements for database access become more performance oriented, database administration becomes more complicated.
      • Type of Applications. The type of applications supported has a direct bearing on the number of DBAs required. The DBMS and database needs of a mission-critical application differ from those of a non-mission-critical application. Mission-critical applications are more likely to require constant monitoring to ensure availability. Likewise, an OLTP application has different characteristics and administration requirements than an OLAP application. OLTP transactions are likely to be of shorter duration than OLAP queries; OLTP applications perform both read and write operations whereas OLAP applications are predominantly read-only. Each has administration challenges that require different DBA procedures.
      • Volatility. The frequency of database change requests is an important factor in the need for additional DBAs. A static database environment requiring few changes will not require the same level of DBA effort as a volatile, frequently changing database environment. Unfortunately, the level of volatility for most databases and applications tends to change dramatically over time. It’s usually very difficult to ascertain how volatile an overall database environment will be over its lifetime.
      • DBA staff experience. The skill of the existing DBA staff affects the need for additional DBAs. A highly skilled DBA staff will accomplish more than a novice team. Skills, more than experience, dictate DBA staffing requirements. A highly skilled DBA with two years of experience might easily outperform a ten-year veteran who is burned out and unmotivated.
      • Programming staff experience. If the application developers are not highly skilled in database and SQL programming, the DBAs will need to be more involved in the development process. DBAs will be needed for tasks such as composing complex SQL, analyzing SQL and application code, debugging, tuning, and ensuring connectivity. As the experience of the programming staff increases, the complexity of DBA requirements decreases.
      • End user experience. When end users access databases directly with ad hoc SQL, their skill level has a direct impact on the complexity of DBA. If the end user has few SQL skills, the DBA will need to be initiate more performance monitoring and tuning.
      • Variety of DBMSs. The more heterogeneous the environment, the more difficult it becomes to administer. For example, acquiring and maintaining expertise in both Oracle and DB2 is more difficult than gaining expertise in only one of them. Moreover, as multiple DBMSs of different types are installed, database administration becomes even more difficult. For example, a shop with DB2, IMS, and IDMS will have to possess relational (DB2), hierarchical (IMS), and network/CODASYL (IDMS) expertise.
      • DBA tools. DBMS vendors and a number of ISVs offer tools that automate DBA tasks and make database administration easier. DBA tasks become less complex with the more tools available and the degree to which they are integrated. Lou Agosta, an industry analyst with Giga Group, states that “without [DBA] tools up to twice the number of DBAs might [be] required.”

This list of issues notwithstanding, creating a formula that will dictate the optimal number of DBAs to employ is difficult. Industry analysts at the META Group have established a loose formula for calculating DBA level of effort. The formula arrives at a level of effort by applying weights to six factors: system complexity, application immaturity, end-user sophistication, software functionality, system availability, and staff sophistication. After measuring each of these items, you plug in values to the formula to arrive at an estimate for the number of DBAs required. If you are interested in pursuing this metric further, I refer you to the META Group research (META Group, Open Computing & Server Strategies, File: 656, Date: 20-Mar-1998). META Group can be contacted at http://www.metagroup.com or by phone at 1-203-973-6700.

DBA Reporting Structures

To whom should the DBA group report? Different companies have taken different approaches to the DBA reporting structure, but a few reporting hierarchies are quite common. Some reporting structures work better than others, so let’s review some of the possibilities.

One of the best structures is a data resource management (DRM) group that consists of all the data and information specialist of the organization—DA, DBA, data analysts, performance analysts, and so on. This group usually reports directly to the CIO, but might report through a systems programming unit, the data center, or technical support. Figure 2 depicts a typical reporting structure.

Figure 2: Typical DBA Reporting Structure.

When an organization staffs application DBAs, they will be spread out in application groups, typically with a direct line of report to the business programming managers. Each application development team has a dedicated application DBA resource as shown in Figure 3.

There are problems with both of these reporting structures, though. First, the DRM needs to be placed higher in the IT reporting hierarchy. It’s a good idea to have the DRM group report directly to the CIO. When an organization understands the importance of data to the health of the organization, placing the DRM group at this level is encouraged.

Figure 3: Application DBA Reporting Structure.

Furthermore, when application DBAs exist, they should not report to the application programming manager only. A secondary line of report to the DRM group will ensure that DBA skills are shared and communicated throughout the organization. Figure 4 delineates the recommended reporting structure for the DRM group.

Figure 4: Recommended DRM Reporting Structure.

Previous — DBA Tasks
Next — Multiplatform DBA Issue

--

Craig Mullins is an independent consultant and president of Mullins Consulting, Inc. Craig has extensive experience in the field of database management having worked as an application developer, a DBA, and an instructor with multiple database management systems including DB2, Sybase, and SQL Server. Craig is also the author of the DB2 Developer’s Guide, the industry-leading book on DB2 for z/OS, and Database Administration: Practices and Procedures, the industry’s only book on heterogeneous DBA procedures. You can contact Craig via his web site at http://www.craigsmullins.com.


Contributors : Craig S. Mullins
Last modified 2006-01-16 07:26 AM
Transaction Management
Reduce downtime and increase repeat sales by improving end-user experience.
Free White Paper
Database Recovery
Feeling the increased demands on data protection and storage requirements?
Download Free Report!
 
 

Powered by Plone