In terms of job responsibilities and activities, what is the difference between a Database Administrator (DBA) and a Database Architect?
I would say the term Database Administrator covers the full gamut of database duties: design, development, production support, performance tuning, report writing, OLAP, etc.
A Database Architect is involved in the design and development of large or complicated database solutions. However, the Architect is usually not involved in the day-to-day operations of the system once it is deployed.
I don't really like either term. Database Administrator is too vague, Database Architect sounds pretentious.
I am a computer programmer at heart, but aren't we all?
These two terms have been used interchangeably by many. I look at them distinctly.
DATABASE ADMINISTRATOR (DBA)
The DBA does just what the name suggests...administrator of the database. Based on the specific RDBMS being managed, the role DBA involves implementing the following aspects:
- user authentication
- backup strategies
- DB Metrics (Recording and Display) (i.e., Splunk, ScienceLogic EM7, MONyog, Nagios)
- Data Migration
- DBMS Software Upgrades/Patches
- High Availability
- Data Redundancy
- DB Storage Layout
- Query Profiling
- Oversight of Query Tuning
- Why is Database Administration so hard?
DATA ARCHITECT (DA)
The role of the DA goes into planning the infrastructure of information system in terms of
- Business Objectives
- Business Intelligence
- Geographic Distribution of Data
- Departmental Access to Data Through All Levels of Company Hierarchy
- Communication of Design to DBAs (If there are consistent problems with DBAs fulfilling there roles, the DA may have to be called in to mitigate design problems or possibly rearchitect.)
In some instances, a single individual may have these two roles, maybe even a third (Developer). In large companies, the role of the DBA may be set up as separate departments. Contrawise, The smaller the company, the more blended these roles becomes.
No matter what responsibilities of DBA and/or DA a person has, that one must have people skills. Why? You have to interactive with Developers who code SQL into their applications. Project managers must set ground rules so that the DBA/DA will
- take the lead in providing proper access to the DBMS
- suggest better execution plans of SQL
- accommodates the needs of Developers
- defer roadblocks in Project Cycles to Project Managers
- How could DBAs be more 'programmer friendly'?
Except in the most formal of companies, specific titles are largely meaningless and DBA can mean nearly anything. Some DBAs are operationally focused, some are development focused, some are analytics focused. In reality, except in very large enterprises where titles are strictly controlled and people have siloed jobs, most DBAs will cross several areas of the company. In any given day, I interact with operations, development, and analytical areas of database administration.
Ultimately, the job of a DB Administrator/Architect/Engineer is to be a subject matter expert on the database and to assist the business in best utilizing that resource.