A DBA is responsible for ensuring the effective use and deployment of an organization's databases. They design and maintain the enterprise's databases, placing them at the center of the business. DBAs are well-paid technical experts who are responsible for many aspects of database administration including installation, maintenance, performance, security, backups and assisting other teams. They require strong technical skills as well as good communication skills to resolve issues and liaise with various teams.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
165 views17 pages
What Is A DBA
A DBA is responsible for ensuring the effective use and deployment of an organization's databases. They design and maintain the enterprise's databases, placing them at the center of the business. DBAs are well-paid technical experts who are responsible for many aspects of database administration including installation, maintenance, performance, security, backups and assisting other teams. They require strong technical skills as well as good communication skills to resolve issues and liaise with various teams.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 17
What Is a DBA?
Every organization using a database management system (DBMS) to manage
data requires a database administration group to ensure the effective use and deployment of the companys databases. The DBA: Revered or Reviled? The DBA, often respected as a database guru, is just as frequently criticized as a curmudgeon with vast technical knowledge but limited people skills. The DBMS spans the enterprise, effectively placing the DBA on call for the applications of the entire organization. The truth is, many database problems require periods of quiet reflection and analysis for the DBA to resolve. However, due to the vast knowledge most DBAs possess (the guru, again), their quiet time is usually less than quiet; constant interruptions to answer questions and solve problems is a daily fact of life. DBAs, more than most, need to acquire exceptional communication skills. Data is the lifeblood of computerized applications. Application programs are developed to read and write data, analyze data,move data, perform calculations using data, modify data, and so on. Without data, there would be nothing for the programs to do.
A DBA is the information technician responsible for ensuring the ongoing operational functionality and efficiency of an organizations databases and the applications that access those databases.
Why Learn Database Administration? Data is at the center of todays applications; todays organizations simply cannot operate without data. In many ways, business today is data. Databases are created to store and organize this data.
A Unique Vantage Point The DBA is responsible for designing and maintaining an enterprises databases, placing the DBA squarely at the center of the business. The DBA can explore groundbreaking technologies as they are adopted by the organization.
The DBA is often working alone in these endeavors; he does not have access to additional expertise to assist when troubles arise. Therefore, a good DBA needs to enjoy challenges and be a good problem solver.
DBA Salaries Fortunately, DBAs are well paid. DICE.com, a career planning and research Website, provides valuable statistics on DBA compensation. For example, database administration is one of the top ten contract jobs when ranked by salary, as well as one of the top ten jobs for full-time employment. The mean compensation for DBA consultants is $81 per hour.
Database Technology Oracle is not a database; it is a database management system. You can use Oracle to create a database, but Oracle, in and of itself, is not a database. So, what is a database? A database is an organized store of data wherein the data is accessible by named data elements (for example, fields, records, and files). A DBMS is software that enables end users or application programmers to share and manage data. It provides a systematic method of creating, updating, retrieving, and storing information in a database. A DBMS is also generally responsible for data integrity, data security, data access control and optimization, automated rollback, restart, and recovery. You might think of a database as a file folder, and a DBMS as the file cabinet holding the labeled folders. You implement and access database instances using the capabilities of the DBMS.
The Management Discipline of Database Administration 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.
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. This plan should address all phases of the application development life Cycle.
The DBA is also responsible for migrating the new database from the test environment to the production environment. While the application is operational, the DBA performs a host of duties including assuring availability, performance monitoring, tuning, backup and recovery,and authorization management. However, no application or database remains static for long. Because business needs change over time, the IT systems that support the business will also change. When maintenance is requested, the DBA becomes engaged in the entire process once again, from requirements gathering to implementation. Finally, when the application reaches the end of its useful life, the DBA must help to determine the final status of the data used by the application.
Privacy Policies and Data Your company may decide to retire applications and data due to legal regulations, business conditions, or mergers. The DBA is responsible for managing the overall database environment. Often this includes installing the DBMS and setting up the IT infrastructure to allow applications to access databases. These tasks need to be completed before any application programs can be implemented. Furthermore, ad hoc database access is a requirement for many organizations. Additionally, the DBA is in charge of setting up an ad hoc query environment that includes evaluating and implementing query and reporting tools, establishing policies and procedures to ensure efficient ad hoc queries, and monitoring and tuning ad hoc SQL. The DBA is in demand for his knowledge of data and the way in which data is managed by modern applications. A Day in the Life of a DBA The DBA maintains production and test environments, monitors active application development projects, attends strategy and design meetings, selects and evaluates new products, and connects legacy systems to the Web. DBAs are expected to know everything about everything. From technical and business jargon to the latest management and technology fads, the DBA is expected to be in the know. And do not expect any private time: A DBA must be prepared for interruptions at any time to answer any type of questionand not just about databases, either. When application problems occur, the database environment is frequently the first thing blamed. The database is guilty until proven innocent. The DBA is forced to investigate problems where the underlying assumption is that the DBMS or perhaps the DBA is at fault, when the most common cause of relational performance problems is inefficiently coded applications. Oftentimes the DBA is forced to prove that the database is not the source of the problem. The DBA must know enough about all aspects of IT to track down errors and exonerate the DBMS and database structures he has designed. Evaluating a DBA Job Offer Different organizations place different value on the DBA job. It is imperative to your career development that you scout for progressive organizations that understand the complexity and ongoing learning requirements for the position.
Database, Data, and System Administration Some organizations define separate roles for the business aspects and the technical aspects of data. Not every organization has a data administration function. Indeed, many organizations combine data administration into the database administration role. Sometimes organizations also split up the technical aspects of data management, with the DBA responsible for using the DBMS and a system administrator or systems programmer responsible for installing and upgrading the DBMS.
Data Administration Data administration separates the business aspects of data resource management from the technology used to manage data; it is more closely aligned with the actual business users of data. The data administrator (DA) is responsible for understanding the business lexicon and translating it into a logical data model. Difference between a DA and a DBA is the focus of effort. The DA is responsible for the following tasks: Identifying and cataloging the data required by business users Producing conceptual and logical data models to accurately depict the relationship among data elements for business processes Creating an enterprise data model that incorporates all of the data used by all of the organizations business processes Setting data policies for the organization Identifying data owners and stewards Setting standards for control and usage of data In short, the DA can be thought of as the Chief Data Officer of the corporation. Technicians do a good job of ensuring availability, performance,and recoverability, but are not usually capable of ensuring data quality and setting corporate policies.
This is another key differentiation between a DA and a DBA. The DA focuses on the repository, whereas the DBA focuses on the physical databases and DBMS. Metadata is often described as data about data; more accurately, metadata is the description of the data and data interfaces required by the business. Metadata provides the context by which data can be understood and therefore become information. In many organizations,metadata is not methodically captured and cataloged; instead, it exists mostly in the minds of the business users. Where it has been captured in systems, it is spread throughout multiple programs in file definitions, documentation in various states of accuracy, or in long lost program specifications. Some of it, of course, is in the system catalog of the DBMS. A comprehensive metadata strategy enables an organization to understand the information assets under its control and to measure the value of those assets.
Many DBAs dismiss data administration as mere data modeling, required only because someone needs to talk to the end users to get the database requirements. However, a true DA function is much more than mere data modeling.
However, when the DA role is undefined in an organization, the DBA must assume the mantle of data planner and modeler. Unfortunately, the DBA will usually not be able to assume all of the functions and responsibility of a DA as summarized in this section for a number of reasons: The DBA has many other technical duties to perform that will consume most of his time. The manager of the DBA group typically does not have an executive position enabling him to dictate policy. The DBA generally does not have the skills to communicate effectively with business users and build consensus.
Database Administration The first duty of the DBA is to understand the data models built by the DA and to communicate the model to the application developers and other appropriate technicians. The logical data model is the map the DBA will use to create physical databases. The DBA should not rely on the DA for the final physical model any more than a DA should rely on a DBA for the conceptual and logical data models. The DBA is the conduit for communication between the DA team and the technicians and application programming staff. Of course, the bulk of the DBAs job is ongoing support of the databases created from the physical design and management of the applications that access those databases.
System Administration Some organizations, usually the larger ones, also have a system administrator (SA) or systems programming role that impacts DBMS implementation and operations. The SA is responsible for the installation and setup of the DBMS.
The SA typically has no responsibility for database design and support. Instead, the DBA is responsible for the databases and the SA is responsible for DBMS installation, modification, and support. As with data administration, there must be cross-training of skills between the SA and DBA. The SA will never understand the physical database like the DBA, but the DBA is unlikely to understand the installation and in-depth technical relationships of system software like the SA. Each job function will be more effective with some knowledge of the other. DBA Tasks Ensuring that an organizations data and databases are useful, usable, available, and correct requires the DBA to perform a variety of tasks in a variety of areas. These areas include database design, performance monitoring and tuning, database availability, security, backup and recovery, data integrity, release migrationreally, anything that involves the companys databases. Lets examine each of these topics. Database Design The DBA must understand both relational theory and the specific implementation of the relational database management system (RDBMS) hes using to create the database. Database design requires a sound understanding of conceptual and logical data modeling techniques. The ability to create and interpret entity-relationship diagrams is essential to designing a relational database.
Database design is a significant skill for the DBA to possess, the job of the DBA is often disproportionately associated with database design. Although designing optimal databases is important, it is a relatively small portion of the DBAs job. A DBA will most likely spend more time administering and tuning databases than in designing and building databases.
By no means, though, should you interpret this to mean that database design is not important. A poor relational design can result in poor performance, a database that does not meet the needs of the organization, and potentially inaccurate data.
Performance Monitoring and Tuning Users demand information from the database, and the DBMS supplies this demand for information. The rate at which the DBMS supplies the information can be termed database performance. Five factors influence database performance: workload, throughput, resources, optimization, and contention. The workload that is requested of the DBMS defines the demand. It is a combination of online transactions, batch jobs, ad hoc queries, data warehousing, analytical queries, and commands directed through the system at any given time. The overall workload has a major impact on database performance.
Throughput defines the overall capability of the computer hardware and software to process data. It is a composite of I/O speed, CPU speed, parallel capabilities of the machine, and the efficiency of the operating system and system software. The hardware and software tools at the disposal of the system are known as the resources of the system. Examples include the database kernel, disk space, cache controllers, and microcode.
Optimization refers to the analysis of database requests with query cost formulas to generate efficient access paths to data. All types of systems can be optimized, but relational queries are unique in that optimization is primarily accomplished internal to the DBMS. However, many other factors need to be optimized (SQL formulation, database parameters, programming efficiently, and so on) to enable the database optimizer to create the most efficient access paths. When the demand (workload) for a particular resource is high, contention can result. Therefore, database performance can be defined as the optimization of resource usage to increase throughput and minimize contention, enabling the largest possible workload to be processed. Applications regularly communicate with other applications, systems, and components of the IT infrastructure. An effective performance monitoring and tuning strategy requires not just DBMS expertise but knowledge outside the scope of database administration. Many performance management tasks must be shared between the DBA and other technicians.
Availability The availability of data and databases is often closely aligned with performance, but it is actually a separate concern. Of course, if the DBMS is offline, performance will be nonexistent because no data can be accessed. However, ensuring database availability is a multifaceted process.
The first component of availability is keeping the DBMS up and running. Vigilant monitoring and automated alerts can be used to warn of DBMS outages and the need for corrective action. Individual databases also must be maintained so that data is available whenever applications and clients require it. The faster the DBA can perform administrative tasks that require databases to be offline, the more available the data becomes. Increasingly, the DBMS vendors and ISVs are providing nondisruptive utilities that can be performed on databases while applications read and write from the databases. Additionally, database clustering technologies provide failover techniques that help to reduce downtime. Nevertheless, such technology usually requires more skill and up-front planning to implement. The DBA must understand all of these aspects of availability and ensure that each application is receiving the correct level of availability for its needs.
Database Security and Authorization
Once the database is designed and implemented, programmers and users will need to access and modify the data. However, to prevent security breaches and improper data modification, only authorized programmers and users should have access. It is the responsibility of the DBA to ensure that data is available only to authorized users.
Security must be administered for many actions required by the database environment:
Creating database objects, including databases, tables, views, and program structures Altering the structure of database objects Accessing the system catalog Reading and modifying data in tables Creating and accessing user-defined functions and data types Running stored procedures Starting and stopping databases and associated database objects Setting and modifying DBMS parameters and specifications Running database utilities such as LOAD, RECOVER, and REORG Database security can be enforced in other ways as well.
Backup and Recovery The DBA must be prepared to recover data in the event of a problem. Problem can mean anything from a system glitch or program error to a natural disaster that shuts down an organization. The majority of recoveries today occur as a result of application software error and human error. The DBA must be prepared to recover data to a usable point, no matter what the cause, and to do so as quickly as possible. The first type of data recovery that usually comes to mind is a recover to current, usually in the face of a major shutdown. The end result of the recovery is that the database is brought back to its current state at the time of the failure.
Transaction recovery is a third type of recovery; it addresses the shortcomings of the traditional types of recovery: downtime and loss of good data. Thus, transaction recovery is an application recovery whereby the effects of specific transactions during a specified timeframe are removed from the database. Therefore, transaction recovery is sometimes referred to as application recovery. To be prepared for any type of recovery, the DBA needs to develop a backup strategy to ensure that data is not lost in the event of an error in software, hardware, or a manual process.
Data Integrity A database must be designed to store the correct data in the correct way without that data becoming damaged or corrupted. To ensure this process, the DBA implements integrity rules using features of the DBMS. Three aspects of integrity are relevant to our discussion of databases: physical, semantic, and internal. Physical issues can be handled using DBMS features such as domains and data types. DBAs can also utilize constraints to further delineate the type of data that can be stored in database columns. Most relational DBMS products provide the following types of constraints: Referential constraints are used to specify the columns that define any relationships between tables. Unique constraints ensure that the values for a column or a set of columns occur only once in a table. Check constraints are used to place more complex integrity rules on a column or set of columns in a table. Semantic integrity is more difficult to control and less easily defined. An example of semantic integrity is the quality of the data in the database. Simply storing any data that meets the physical integrity definitions specified to the database is not enough. DBA should document this fact and work to ensure that procedures are in place to keep redundant data synchronized and accurate. The final aspect of integrity comprises internal DBMS issues.
In most cases, the DBMS will do a good job of maintaining these structures, but the DBA needs to be aware of their existence and how to cope when the DBMS fails. Internal DBMS integrity is essential in the following areas: Index consistency. An index is really nothing but an ordered list of pointers to data in database tables. If for some reason the index gets out of sync with the data, indexed access can fail to return the proper data. The DBA has tools at his disposal to check for and remedy these types of errors. Pointer consistency. Sometimes large multimedia objects are not stored in the same physical files as other data. Therefore, the DBMS requires pointer structures to keep the multimedia data synchronized to the base table data. Once again, these pointers may get out of sync if proper administration procedures are not followed. Backup consistency. Some DBMS products occasionally take improper backup copies that effectively cannot be used for recovery. It is essential to identify these scenarios and take corrective actions. Overall, ensuring integrity is an essential DBA skill.
DBMS Release Migration The DBA is also responsible for managing the migration from release to release of the DBMS Whatever approach is taken must conform to the needs of the organization, while reducing outages and minimizing the need to change applications. Jack-of-All-Trades Databases are at the center of modern applications. If the DBMS fails, applications fail, and if applications fail, business can come to a halt. And if business comes to a halt often enough, the entire business can fail. The IT infrastructure of today comprises many tools: Programming languages and environments such as COBOL, Microsoft Visual Studio, C/C++, and Java Database and process design tools such as ERwin and Rational Rose Transaction processing systems such as CICS and Tuxedo Message queueing software such as MQSeries and MSMQ Networking software and protocols such as SNA,VTAM,TCP/IP, and Novell Networking hardware such as bridges, routers, hubs, and cabling Multiple operating systems such as Windows, OS/390 and MVS, UNIX, Linux, and perhaps others Data storage hardware and software such as enterprise storage servers, Microsoft SMS, IBM DFHSM, storage area networks (SANs), and NAS Operating system security packages such as RACF,ACF2, and Kerberos Other types of storage hardware such as tape machines, silos, and solid state (memory-based) storage Non-DBMS data set and file storage techniques such as VSAM and B-tree Database administration tools Systems management tools and frameworks such as BMC PATROL and CA Unicenter Operational control software such as batch scheduling software and job-entry subsystems Software distribution solutions for implementing new versions of system software across the network Internet and Web-enabled databases and applications Client/server development techniques such as multitier, fat server/thin client, thin server/fat client Object-oriented and component-based development technologies and techniques such as CORBA, COM, OLE DB,ADO, and EJB PDAs such as Palm Pilots and PocketPCs
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. Still other companies simply hire DBAs to perform all of the tasks required to design, create, document, tune, and maintain the organizations data, databases, and database management systems. Lets 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
Database Architect Some organizations create a separate position, database architect, for design and implementation of new databases. 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 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 DAs 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 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 DBAit is on a specific subset of applications rather than the overall DBMS implementation and database environment.
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.
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.
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 databases 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 How Many DBAs? Determining how many DBAs is optimal is not a precise science. It depends on many factors: Number of databases. 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. Number of users. Number of applications. Service-level agreements (SLAs). Availability requirements. Impact of downtime. Performance requirements. Type of Applications. Volatility. DBA staff experience. Programming staff experience. End user experience. Variety of DBMSs. DBA tools.
Multiplatform DBA Issues Managing a multiplatform environment complicates the job of database administration. A whole batch of different problems and issues arise that need to be addressed. The first task is to define the scope of each DBAs job. Does a single DBA administer all of the different DBMSs or does each DBA focus on supporting only one DBMS? This is a particularly thorny issue. On the one hand, the functionality of a DBMS is strikingly similar regardless of platform and vendor. A DBMS is designed to store, retrieve,and protect data. Programmers,programs,and end users all interact with the DBMS to access and modify data. Administration issues are similar design, creation, optimization, and so onthough each DBMS implements these items differently. So, the case can be made that a DBA should support multiple DBMSs and databases, regardless of platform or vendor. On the other hand, each DBMS offers different features, functionality, and technology. Keeping all of the differences and nuances straight is a monumental task.Wouldnt it be better to develop platform-expert DBAs? That way, your Oracle DBAs can focus on learning all there is to know about Oracle, your DB2 DBAs can focus on DB2, and so on.
When your organization supports multiple DBMSs, the DBA group should develop guidelines for which DBMS should be used in which situations. These guidelines should not be hard-and-fast rules, but instead should provide guidance for the types of applications and databases best supported by each DBMS. Forcing applications to a given DBMS environment is not a good practice. The guidelines should be used simply to assure best fit of application to DBMS. These guidelines should take into account: Features of each DBMS Features and characteristics of the operating system Networking capabilities of the DBMS and operating system combination DBMS skills of the application developers Programming language support Any other organizational issues and requirements
Test and Production At least two separate environments must be created and supported for a quality database implementation: test and production. Completely separating the test and production environments ensures the integrity and performance of operational work. New development and maintenance work can be performed in the test environment while operational applications are run in the production environment.
New Technology and the DBA The DBA is at the center of the action whenever new ways of doing business and new technologies are introduced to the organization. Data is the lifeblood ch01_1-48.qxd 5/22/02 1:24 PM Page 38 of modern business, data is housed by the database, and the DBA is the expert who understands database technologyand in particular, how databases can be integrated with other new technologies. Lets examine three specific newer technologies that rely on database administrationat least somewhatto be effectively implemented: databasecoupled application logic, Internet-enabled e-business development, and handheld computing.
Procedural DBAs: Managing Database Logic Until recently, the purpose of a database management system was, appropriately enough, to store, manage, and access data. Although these core capabilities are still required of modern DBMS products, additional procedural functionality is slowly becoming not just a nice feature to have, but a necessity. Features such as triggers, user-defined functions, and stored procedures provide the ability to define business rules to the DBMS instead of in separate application programs.
Stored Procedures Stored procedures can be thought of as programs that live in a database. The procedural logic of a stored procedure is maintained, administered, and executed through the database commands. The primary reason for using stored procedures is to move application code from a client workstation to the database server. Stored procedures typically consume less overhead in a client/server environment because one client can invoke a stored procedure that causes multiple SQL statements to be run.
Triggers Triggers are event-driven specialized procedures that are attached to database tables. The trigger code is automatically executed by the RDBMS as data changes in the database. Each trigger is attached to a single, specified table. Triggers can be thought of as an advanced form of rule or constraint that uses procedural logic. A trigger cannot be directly called or executed; it is automatically executed (or fired) by the RDBMS as the result of a SQL INSERT, UPDATE, or DELETE statement issued on its associated table. Once a trigger is created, it is always executed when its firing event occurs. User-Defined Functions A user-defined function (UDF) provides a result based on a set of input values. UDFs are programs that can be executed in place of standard, built-in SQL scalar or column functions. A scalar function transforms data for each row of a result set; a column function evaluates each value for a particular column in each row of the results set and returns a single value. Once written, and defined to the RDBMS, a UDF becomes available just like any other built-in database function. Table 1-1 summarizes the differences between stored procedures, triggers, and UDFs. Administering Stored Procedures, Triggers, and UDFs Once developers begin to rely on stored procedures, triggers, and UDFs, DBAs need to take steps to manage them properly. DBAs must grapple with the issues of quality, maintainability, efficiency, and availability. How and when will these procedural objects be tested? The impact of a failure is enterprisewide, 40 What Is a DBA? Table 1-1 Procedural Database Objects Object Type Definition Executed How Stored Procedure Program logic executed By request Explicit on the database server Triggers Event-driven procedures Automatically Implicit attached to database tables UDFs Program logic extending By request in SQL Explicit SQL functionality ch01_1-48.qxd 5/22/02 1:24 PM Page 40 increasing the visibility and criticality of these objects. Who is responsible if they fail? The answer must bethe DBA. The role of administering procedural database logic should fall upon someone skilled in that discipline. A new type of DBA is required to accommodate the administration of database procedural logic. This new role can be defined as a procedural DBA. The procedural DBA is responsible for those database management activities that require procedural logic support. He ensures that stored procedures, triggers, and user-defined functions are effectively planned, implemented, shared, and reused. The procedural DBA also takes primary responsibility for coding and testing all triggers. Stored procedures and user-defined functions, although likely to be coded by application programmers, should be reviewed for accuracy and performance by procedural DBAs. (See Figure 1-11.) The procedural DBA leads the review and administration of all procedural database objects: triggers, stored procedures, and UDFs. Although the procedural DBA is unlikely to be as skilled at programming as an applications programmer The procedural DBA is responsible for those database management activities that require procedural logic support. New Technology and the DBA 41 Stored Procedures Triggers External Libraries RDBMS D e b u g g i n g Change Management Performance Monitoring Admin Process User- Defined Functions Communication Figure 1-11 Procedural DBA duties ch01_1-48.qxd 5/22/02 1:24 PM Page 41 or systems analyst, he must be able to write and review program code reasonably well. The skill level required depends on what languages are supported by the DBMS for creating procedural objects, the rate and level of adoption within the organization, and whether an internal organization exists for creating common, reusable programs.Table 1-2 provides a reasonable level of procedural DBA involvement for each type of procedural object. Additionally, the procedural DBA should be on call for any problems that occur with database procedural objects in production. As shown in Figure 1-11, the procedural DBA requires communication skills as much as he requires technological acumen. In addition to managing and optimizing database procedural objects, the procedural DBA must inform the development community of new triggers, stored procedures, and UDFs. Furthermore, the DBA must promote reuse. If the programmers do not know that these objects exist, they will never be used. Other procedural administrative functions can be allocated to the procedural DBA. Depending on the number of DBAs and the amount of application development needed, the procedural DBA can be assigned to additional functions such as the following: Participating in application code design reviews Reviewing and analyzing SQL access paths (from EXPLAIN or SHOW PLAN) Debugging SQL Writing and analyzing complex SQL statements Rewriting queries for optimal execution 42 What Is a DBA? The procedural DBA leads the review and administration of all procedural database objects: triggers, stored procedures, and UDFs. Table 1-2 Procedural DBA Involvement by Object Object Type Level of Procedural DBA Involvement Stored Procedure Not likely to write stored procedures; must review all code before migration to production; communicates availability and promotes reuse. Triggers Likely to write, test, and debug triggers; communicates deployment of triggers to ensure application awareness. UDFs Not likely to write user-defined functions; works closely with the development team to ensure UDF functionality and performance; reviews all code before migration to production; communicates availability and promotes reuse. ch01_1-48.qxd 5/22/02 1:24 PM Page 42 Offloading coding-related tasks to the procedural DBA can help the other staff DBAs concentrate on the actual physical design and implementation of databases, resulting in much better designed databases. Procedural DBAs should have the same line of report as traditional DBAs to enable better sharing of skills between the groups. Of course, there will need to be a greater synergy between procedural DBAs and the application programmers. The procedural DBA should typically come from the application programming ranks because this is where the coding skill exists. The Internet: From DBA to e-DBA Companies of every size are using Internet technologies to speed up business processes. Indeed, e-business has evolved as a new term to describe the transformation of key business processes using Internet technologies. Modern organizations use the Web to communicate with their partners and customers, to connect with their back-end databases, and to conduct transactions (e-commerce). E-business is the integration of traditional information technology with the Internet. This integration creates a more nimble business, prepared for the trials and tribulations of conducting business in the 21st century. E-businesses must be able to adapt and react to constant change. When a business is online, it never closes. People expect full functionality on Web sites they visit regardless of the time. And the Web is worldwide. It may be two oclock in the morning in New York City, but it is always prime time somewhere in the world. An e-business must be available and prepared to engage with customers 24 hours a day, 365 days a year (366 during leap years). Failure to do so risks losing business. When a Web site is down, the customer will go elsewhere to do business because the competition is just a simple mouse-click away. Therefore, those who manage an e-business must be adept,proactive, and ever vigilant. The frantic pace of an e-business makes extreme demands on those that keep it operational, and DBAs are much affected. The need to integrate the Web with traditional IT services, such as the DBMS, places high expectations on database administrators. An e-DBA is a DBA who is capable of managing Web-based applications and their Internet-related issues. With all of the knowledge and training of a traditional DBA, the e-DBA adapts these skills to suit applications and databases that are Internet enabled. When the Web is coupled with traditional applications and databases, a complex infrastructure is the result. (See Figure 1-12.) The e-DBA must be capable of navigating this complex, heterogeneous infrastructure and providing expertise wherever databases interact within this infrastructure. An e-DBA is a DBA who is capable of managing Webbased applications because he understands the special issues that arise because of the Internet. E-businesses must be able to adapt and react to constant change. New Technology and the DBA 43 ch01_1-48.qxd 5/22/02 1:24 PM Page 43 Databases Mainframes Midrange UNIX Servers Various Database Servers CRM Application ERP Application Middleware E-Commerce Application Internet Applications Web Server Intranet Internet Firewall NT Server Load Balancer Extranet Figure 1-12 The complex infrastructure enabling Web-to-database capabilities 44 ch01_1-48.qxd 5/22/02 1:24 PM Page 44 Many factors impact database administration when you couple the Internet with database technology. Some of these issues include 24/7 data availability New technologies such as Java and XML Web connectivity Integration of legacy data with Web-based applications Database and application architecture Web-based administration Performance engineering for the Internet Unpredictable workload The PDA DBA Personal digital assistant devices, better known as PDAs, are fast becoming a necessity for modern executives and businessmen. A PDA is a handheld computing device. Whether your PDA of choice is a Palm Pilot or a PocketPC, your PDA may soon have a DBMS running on it.Why is that interesting? Does it change the way you will use your PDA? What will that mean to your IT department? PDAs offer many benefits. The devices are small and therefore easily transportable. They enhance a mobile workers ability to be mobile. However, challenges must be faced as organizations incorporate PDAs into their infrastructure. Companies with remote workers such as a distributed sales force or delivery tracking services will most likely be the first impacted. The data on the PDAs must be managed professionally to ensure integrity and reliability. Because the device is remote, sharing of data can be difficult. The data on the PDAs must be reliably synchronized with existing enterprise systems and databases. All major DBMS vendors provide small-footprint versions of their flagship products to run on PDAs. For example, IBM markets DB2 Everyplace, Oracle sells Oracle8i Lite, and Sybase offers Adaptive Server Anywhere. The general idea is to store a small amount of critical data on the PDA in a database; the local PDA database is later synchronized to long-term data stores on enterprise database servers. Each PDA DBMS provides technology to synchronize data back and forth from the PDA to the enterprise server platforms. A database the size of those stored on PDAs should not require the in-depth tuning and administration required of enterprise database implementations. All major DBMS vendors provide small-footprint versions of their flagship products to run on PDAs. New Technology and the DBA 45 ch01_1-48.qxd 5/22/02 1:24 PM Page 45 However, DBAs will be called upon to help design appropriately implemented databases for small-form-factor devices like PDAs. However, the biggest impact on the DBA will be the necessity for managing data synchronization from hundreds or thousands of PDAs. When should synchronization be scheduled? How will it impact applications that use large production databases that are involved in the synchronization? How can you ensure that a mobile user will synchronize his data reliably and on schedule? These are not trivial issues. The DBA staff must be ready to support the organizations inevitable request for this technology by understanding data synchronization technology and the need for remote database users at their organization. Pervasive computing and the mobile workplace are here to stay. The DBA staff must be ready to support these mobile workers with a valid, shared data infrastructure. As new technology is introduced to the organization, the DBA group is typically the first to examine and use it. The preceding three technologies are merely examples of new trends and technologies that require database administration for efficient and effective implementation. DBA Certification Professional certification is a recent trend in IT and is available for many different IT jobs. The availability and levels of certification for database administration have been growing at an alarming rate. Certification programs are available for most of the popular DBMS platforms including IBM DB2,Microsoft SQL Server, and Oracle. The idea behind DBA certification is to ensure that an individual is capable of performing database administration tasks and duties. This is a noble goal, but the problem is that passing a test is not a viable indicator of success with the complexities of database administration. Some things you just have to learn by doing. Im not saying that certification is useless: Taking the test and focusing on the questions you miss can help to point out areas of weakness. But does anyone really believe that someone passing a formalized test is necessarily as capable as someone with several years of experience as a DBA? Organizations should hire DBAs based on experience that indicates a level of capability. Of course,a DBA with both experience and certification is even better. That said, I do recommend that professional DBAs take the time to study and pass the certification exams. Not because certification will make you a better DBA, but because it will make you more employable. Some companies hire Certification will make you more employable. 46 What Is a DBA? ch01_1-48.qxd 5/22/02 1:24 PM Page 46 only certified professionals. The trend toward using certification to guide hiring practices will increase because of increasing IT complexity. If you think you might change jobs at some point in your career (and who among us will not?), then certification is a worthwhile pursuit. Keep in mind that DBA certification tests sometimes ask arcane syntax questions that are not good indicators of a DBAs skills. Getting the syntax 100% accurate is what manuals and design tools are for. Memorizing every detail about SQL syntax and structure is a waste of time because it is complex and changes all the time. It is better to know where to find the syntax, parameters, and answers to your questions when you need themthat is, which manuals and textbooks contain the needed information. DBAs should possess a broad, overarching knowledge of DBMS concepts, IT fundamentals, and the working of their organizations database systems. In other words, it is better to know off the top of your head that something can (or cannot) be done than to know the exact syntax for how to accomplish it. If you decide to pursue certification, take the time to prepare for the tests. Books and self-learning software titles are available that can be quite useful. These books and programs cover the most common test topics and provide sample questions to help you prepare. In many ways, it is like preparing for a college entrance exam like the SAT. Finally, once you earn your certification, make sure you display it proudly on your resume and your business card (if your company allows it). Table 1-3 lists Web sites that contain information about professional certification for the most popular DBMS products. DBA Certification 47 Table 1-3 Sources of DBA Certification Information DBMS Web site Oracle http://www.oracle.com/education/certification/ Microsoft SQL http://www.microsoft.com/trainingandservices/default.asp?PageID=training Server IBM DB2 http://www.ibm.com/certify Sybase Adaptive http://www.sybase.com/education/profcert/ Server Informix http://www.informix.com/informix/training/courses/certific/welcome.htm ch01_1-48.qxd 5/22/02 1:24 PM Page 47 The Rest of the Book This first chapter has introduced you to the world of the DBA. I hope that you have gained respect for the complexity of the position and the qualities required of a good DBA. The remainder of the book will examine the details of the tasks, roles, and responsibilities required of the DBA. Review 1. What are the primary high-level job responsibilities of a DBA? 2. What is the single biggest problem faced by organizations using relational databases? 3. What is the difference between a data administrator and a database administrator? 4. What factors determine the number of DBAs needed to support an organizations database environment properly? 5. How does new technology impact the job of the DBA? 6. What are the technologies that mandate the need for procedural DBAs? 7. What is the difference between a database architect and a system administrator? 8. Which staff member is most likely to be responsible for installing a new DBMS release? 9. What are the three types of integrity that DBAs must understand? 10. Is a certified DBA necessarily a qualified DBA? Why or why not? Bonus Question Why must the DBA be a jack-of-all-trades? 48 What Is a DBA? ch01_1-48.qxd 5/22/02 1:24 PM Page 48