The job of a Database Administrator, or DBA, is constantly changing and adapting to the technologies used to manage data in modern organizations. With that in mind, I decided to put together a sample DBA job posting incorporating as many regular DBA duties as I could think of.
Take some time to read through this posting and let me know what you think. Is this the way you view the role of DBA today? Is this what DBAs do at your site? Is there anything significant missing? Is this too much work for a single individual job? Would you apply for this job? Respond with comments please!
Job Posting: Database Administrator (DBA)
Assists in the development of data models (perhaps in conjunction with a data architect, perhaps solo) for new projects within IT. Has primary responsibility for the definition, creation, and maintenance of enterprise databases and database structures within the organizations. Analyzes, tests, and implements physical database design supporting various business applications (including base definition, structure, documentation, long-range requirements, operational guidelines). Ensures data recovery, maintenance, data integrity, and space requirements for physical database are met through formulations and monitoring of policies, procedures, and standards relating to database management. Provides a high degree of coordination between user, technical, application, and corporate entities to ensure effective data management as a corporate enterprise. Above all, ensures solutions meet business objectives and establishes and maintains a high level of user trust and confidence in IT’s knowledge of and concern for users’ business needs. Has a willingness to work with customers of varying levels of technical expertise in a high-pressure, complex environment.
Responsibilities
- Provide first-level applications support: Resolve problems and answer questions related to the RDBMS and platform environment (e.g., Unix, Windows, Linux, z/OS); contact vendor support when necessary; facilitate application development and client problem resolution with optimum speed and efficiency
- RDBMS performance monitoring and tuning: Closely monitor performance; identify problems and implement solutions; ensure the database is running at optimum speed and efficiency
- Maintain database backup/recovery environment: Assure that data recovery time objectives are established and met; verify implementation of correct backup strategy; develop recovery procedures; support recovery from loss of data caused by user or system error; respond quickly to refresh data.
- Install and upgrade RDBMS and related products: Keep RDBMS at current release and maintenance levels; install supporting products; provide current, stable production and development environments
- Reorganize database structures as needed: Automate procedures at regular intervals; use tools to reorganize or defragment database table spaces, tables, and indexes; provide efficient database environment to maximize productivity and improve performance
- Perform application refreshes on request: Refresh data from one environment to another at the request of the application development staff; execute necessary tasks to accomplish this, including export, drop, create, and import pre-scheduled time to minimize impact; provide application development staff optimal development environment with current data
- Data integrity: Be responsible for the integrity of all production, test, and QA database environments.
- Guide and oversee the database design process as needed: Research and recommend optimal design criteria; publish standards and work with development staff; standardize environment and improve efficiency
- Database change management: Review and implement all changes to database structures, while ensuring the integrity of the data and maintaining data availability as requires by service level agreements
- Capacity planning and reporting: Monitor file system space, database allocation, etc.; verify efficient use of disk storage; reclaim unused space; optimize space allocation and avoid out-of-space conditions. Conduct application transaction volume and traffic analysis, and interpret impact on database and network performance.
- Physical database modeling: Create, develop, and review the physical model created from the logical model, ensuring the detailed physical design of data structures and databases complies with standards, guidelines, and procedures recommended for all aspects of data modeling, database design, and maintenance; ensure proper data modeling and design paradigms are applied. In all cases, be capable of reviewing the overall physical database and its structures for data integrity, performance quality, recoverability, maintenance, and space requirement considerations.
- Database/data tools management: Participate in the evaluation and recommendation of DBA tools and new DBMS technologies; work with and manage the appropriate tools, procedures, and facilities for creating and maintaining the enterprise data model, as well as to manage the implementation and use of the enterprise data dictionary/repository. Will also serve as the business liaison to database and tools vendors.
- Be capable of producing entity relationship diagrams; data flow diagrams; database normalization schemata; logical to physical database mapping; DDL and database commands
- Design reviews: Lead design reviews for database designs, application code, and pre- and post-implementation capacity meetings; estimate sizes of new databases
- Systems responsibilities: Work closely with Systems Programmers and Systems Administrators to ensure that the database system is operating in accordance with required system usage; provide assistance and guidance in setting appropriate system parameters
- Shop database standards: Assist in the definition and development of all database documentation and standards. Develop and maintain rules, procedures, and standards for the access and maintenance of shared data resources. Perform impact analyses, research products, configure software, and establish standards and procedures that support the company’s database environment needs.
- In-house DBMS expertise: Be responsible for application-oriented database administration and technical support for the various development, training, testing, and production of relational database environments; focus on application-specific database issues to ensure optimal application performance and integrity
- Development projects: Interact with analysts and developers, understand system requirements from conceptual models, analyze transactions and data volumes, and design the physical database
Technical Skills and Knowledge
- Thorough understanding of the relational database model and solid theoretical knowledge of relational database techniques; skilled in ability to see the big picture and conceptualize and document creative solutions
- Knowledge of NoSQL database systems, Hadoop/Spark, and analytics systems in use for Big Data projects
- Experience in designing, modeling, developing, and supporting large DBMS systems
- Extensive experience in logical and physical database design, hands-on data modeling techniques, and development methodology; physical schema design of table spaces, rollback segments, and data files
- Experience in the design of data extract, data migration, and data queuing facilities
- Proficiency in the concepts and practice of database normalization techniques
- Strong working knowledge of state-of-the-art database concepts/design/deployment, recovery techniques, performance monitoring and tuning, structured query language, relational database design techniques, JCL
- Knowledge of server-side development issues surrounding triggers, stored procedures, and packages
- Ability to weigh various suggested technical solutions against the original business needs and choose the most cost-effective solution
- Ability to work with long-established senior staff, provide guidance, and assign and follow up on tasks
- Proficiency in DBMS-specific middleware tools and utilities to support such activities as monitoring, database migration, DDL management, and replication is required
- Experience with cross-platform networking in a TCP/IP environment
- Extensive knowledge of SQL, including programming and ways to optimize SQL code.
- Knowledge of distributed development practices using .NET and/or Java.
- Solid programming knowledge of at least one 3GL/4GL/OO4GL language (e.g., C/C++/C#, Perl, Unix shell, Visual Basic)
- Knowledge of Web-enabled GUIs is a plus (e.g., Oracle JDeveloper and WebSphere Studio)
Interpersonal Skills
- Strong customer focus and management of client expectations; ability to establish and maintain a high level of user trust and confidence in IT’s knowledge of and concern for users’ business needs
- Excellent oral and written communications skills
- Ability to present and explain technical information to diverse types of audiences (management, users, vendors, technical staff) in a way that establishes rapport, persuades others, and gains understanding
- Ability to write clear proposals and technical documents
- Strong interpersonal skills at all levels of management and ability to motivate employees/teams to apply skills and techniques to solve dynamic problems; excellent teamwork skills
- Solid project management skills, effectively managing multiple small to large projects in a cross-functional environment
- Communicate complex technical information in a concise and articulate manner
Working Relationships
- Has close working relationship with systems team and peers in other areas of IT
- Works closely with Senior Systems Programmer, RDBMS and systems administrators
- Has contact with application users, primarily in problem resolution
- Has frequent interaction with application development staff as facilitator and client problem resolver; works collaboratively on such activities as performance problems, hardware/software upgrades, application program design reviews, new application setup and implementation, application workload growth prediction and measurement, etc.
- Is key participant in high-level technical strategy meetings, major upgrade decisions, capacity planning data collections, performance reporting, new application designing, etc.
- Has close working relationships with peers at external organizations
Experience
- Bachelor’s degree in Computer Science, Engineering, or related discipline; Master’s degree is desirable; equivalent experience acceptable
- At least 3 years in-depth experience in the design, administration, programming, and support of DBMSs (e.g., Oracle, SQL Server, DB2) in one or more computing environments (e.g., Unix, z/OS, Windows, Linux, Web).
- Ability to handle basic systems administration tasks to fulfill backup role if needed
- Demonstrated experience working well with customers of varying levels of technical expertise in high-pressure situations and complex environments
- Highly desirable that individual has earned certification as a developer or DBA, for example, Oracle DBA Certified Master (OCM), Oracle DBA Certified Professional (OCP), Microsoft Certified Database Administrator (MCDBA), Certified MySQL Professional (MySQL-Prof), IBM DB2 Universal Database Certified Solutions Expert (DB2), etc.