Intelligent Automation of DBA Tasks
It is hard to get good help these days. There are more job openings for qualified, skilled IT professionals than there are individuals to fill the jobs. And one of the most difficult IT positions to fill is the DBA. DBAs are especially hard to recruit because the skills required to be a good DBA span multiple disciplines. These skills are difficult to acquire, and to make matters more difficult, the required skill set of a DBA is constantly changing.
To effectively manage enterprise databases, a DBA must understand both the business reasons for storing the data in the database and the technical details of how the data is structured and stored.
The DBA must understand the business purpose for the data to ensure that it is used appropriately and is accessible when the business requires it to be available. Appropriate usage involves data security rules, user authorization, and ensuring data integrity. Availability involves database tuning, efficient application design, and performance monitoring and tuning. These are difficult and complicated topics. Indeed, entire books have been dedicated to each of these topics.
Duties of the DBA
The technical duties of the DBA are numerous. These duties span the realm of IT disciplines from logical modeling to physical implementation.
DBAs must possess the abilities to create, interpret, and communicate a logical data model and to create an efficient physical database design from a logical data model and application specifications. There are many subtle nuances involved that make these tasks more difficult than they sound. And this is only the very beginning. DBAs also need to be able to collect, store, manage, and query data about the data (metadata) in the database and disseminate it to developers that need the information to create effective application systems. This may involve repository management and administration duties, too.
After a physical database has been created from the data model, the DBA must be able to manage that database once it has been implemented. One major aspect of this management involves performance management. A proactive database monitoring approach is essential to ensure efficient database access. The DBA must be able to utilize the monitoring environment, interpret its statistics, and make changes to data structures, SQL, application logic, and the DBMS subsystem to optimize performance. And systems are not static, they can change quite dramatically over time. So the DBA must be able to predict growth based on application and data usage patterns and implement the necessary database changes to accommodate the growth.
And performance management is not just managing the DBMS and the system. The DBA must understand SQL, the standard relational database access language. Furthermore, the DBA must be able to review SQL and host language programs and to recommend changes for optimization. As databases are implemented with triggers, stored procedures, and user-defined functions, the DBA must be able to design, debug, implement, and maintain the code-based database objects as well.
Furthermore, data in the database must be protected from hardware, software, system, and human failures. The ability to implement an appropriate database backup and recovery strategy based on data volatility and application availability requirements is required of DBAs. Backup and recovery is only a portion of the data protection story, though. DBAs must be able to design a database so that only accurate and appropriate data is entered and maintained - this involves creating and managing database constraints in the form of check constraints, rules, triggers, unique contraints, and referential integrity. Additionally, DBAs are required to implement rigorous security schemes for production and test databases to ensure that only authorized users have access to data.
And there is more! The DBA must possess knowledge of the rules of relational database management and the implementation of many different DBMS products. Also important is the ability to accurately communicate them to others. This is not a trivial task since each DBMS is different than the other and many organizations have multiple DBMS products (e.g., DB2, Oracle, SQL Server).
And, remember, the database does not exist in a vacuum. It must interact with other components of the IT infrastructure. As such, the DBA must be able to integrate database administration requirements and tasks with general systems management requirements and tasks such as network management, production control and scheduling, and problem resolution, to name just a few systems management disciplines.
The capabilities of the DBA must extend to the applications that use databases, too. This is particularly important for complex ERP systems that interface differently with the DBMS. The DBA must be able to understand the requirements of the application users and to administer their databases to avoid interruption of business. This includes understanding how any ERP packages impact the business and how the databases used by those packages differ from traditional relational databases.
A Lot of Effort
Implementing, managing, and maintaining complex database applications spread throughout the world is a difficult task. To support modern applications a vast IT infrastructure is required that encompasses all of the physical things needed to support your applications. This includes your databases, desktops, networks, and servers, as well as any networks and servers outside of your environment that you rely on for e-business. These things, operating together, create your IT infrastructure. These disparate elements are required to function together efficiently for your applications to deliver service to their users.
But these things were not originally designed to work together. So not only is the environment increasingly complex, it is inter-related. But it is not necessarily designed to be inter-related. When you change one thing, it usually impacts others. What is the impact of this situation on DBAs?
Well, for starters, DBAs are working overtime just to support the current applications and relational features. But new RDBMS releases are being made available faster than ever before. Microsoft is feverishly working on a new version of SQL Server right on the heels of the recently released SQL Server 2000. And IBM has announced DB2 Version 8, even though Version 7 was just released last year and many users have not yet migrated to it.
So, the job of database administration is getting increasingly more difficult as database technology rapidly advances, adding new functionality, more options, and more complex and complicated capabilities. But DBAs are overworked, under-appreciated, and lack the time to gain the essential skills required to support and administer the latest features of the RDBMS they support. What can be done?
One of the ways to reduce these problems is through intelligent automation. As IT professionals we have helped to deliver systems that automate multiple jobs throughout our organizations. That is what computer applications do: they automate someone's job to make that job easier. But we have yet to intelligently automate our DBA jobs. By automating some of the tedious day-to-day tasks of database administration, we can free up some time to learn about new RDBMS features and to implement them appropriately.
But simple automation is not sufficient. The software should be able to intelligently monitor, analyze, and optimize applications using past, present, and future analysis of collected data. Simply stated, the software should work the way a consultant works--fulfilling the role of a trusted advisor.
This advisor software should collect data about the IT environment from the systems (e.g., OS, DBMS, OLTP), objects, and applications. It should require very little initial configuration, so that it is easy to use for novices and skilled users alike. It should detect conditions requiring maintenance actions, and then advise the user of the problem, and finally, and most beneficial to the user, optionally perform the necessary action to correct the problems it identifies. Most management tools available today leave this analysis and execution up to the user. But intelligent automation solutions should be smart enough to optimize and streamline your IT environment with minimal, perhaps no, user or DBA interaction.
The end result - software that functions like a consultant - enables the precious human resources of your organization to spend time on research, strategy, planning, and implementing new and advanced features and technologies.
Only through intelligent automation will we be able to deliver on the promise of technology.
As IT tasks get more complex and IT professionals are harder to employ and retain, more and more IT duties should be automated using intelligent management software. This is especially true for very complex jobs, such as DBA. Using intelligent automation will help to reduce the amount of time, effort, and human error associated with managing databases and complex applications.
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:00 AM