Find out who’s who in the database department and decide which role you most identify with.
In small companies, there is usually only one database job. The person in that position may be an architect one day, a designer the next day, a programmer another day, an administrator the day after that, and sometimes even an analyst or even a data scientist. If you’re planning to work in a small company, you should get used to the idea that you’ll be known as “the database guy/gal” and you’ll have to do a little bit of everything.
But if you look through the job postings of large companies, you’ll find a wide variety of database-related jobs. The postings are oriented towards database professionals with different skills and knowledge. Some require purely technical talents; others require analytical and design talents, strategic business acumen, or leadership and team management skills. In this guide, I will help you understand the differences between common database-related jobs. Then you can determine which one(s) you should aspire to, depending on your particular preferences and skills.
Database professions, grouped by their preferred core competencies.
Database Jobs Requiring Technical Skills
Within the database-related jobs community, some primarily require technical database skills and knowledge. In this category, there are three main roles: database administrator (DBA), database programmer, and database tester.
Database Administrator (DBA)
The DBA is the person in charge of making the database servers work to their full potential. In large organizations, DBAs typically belong to the IT operations team. Their main task is to constantly monitor production database servers with the goal of avoiding operational or performance problems and finding solutions when problems occur.
DBAs must have a deep knowledge of the database engines they work with. That’s why an Oracle DBA is not the same as an MS SQL or MySQL DBA. Each organization will look for a DBA depending on the relational database management system (RDBMS) they use. DBAs must also be proficient in SQL (Structured Query Language) so they can write queries and maintenance operations on the databases they manage.
SQL is a standard language, so virtually all database engines implement it. The most recent version of the standard is SQL:2016. But as with many standards, there are various dialects, with small differences for each RDBMS. Good DBAs must know the peculiarities of the SQL dialect they work with.
In terms of administration tools, there are differences between the various RDBMSs. Thus, the DBA must have a deep knowledge of the tools for their RDBMS. For administrative database jobs, getting certified in the relevant RDBMS tools is highly valued.
Database programming refers primarily to writing programming code in SQL – either writing queries or creating views, functions, or stored procedures. Companies looking for database programmers usually post SQL jobs, which require candidates to be proficient in standard SQL and, preferably, one or more dialects (e.g. MySQL, PostgreSQL, etc.).
A knowledge of other popular data manipulation languages, such as Python or R, may also be required for a database programmer job. In particular, experience with such languages’ database management libraries is a must.
With the rise of NoSQL databases and non-relational database models, these relatively new terms are taking up more space in database programmer searches. For this reason, it pays to master concepts such as JSON databases and MongoDB design patterns.
It’s common for application programmers to understand at least some database programming as well, since most applications make use of a database. For that reason, every programmer should have at least basic knowledge of SQL and language-specific ORM (object-relational mapping).
A frequent dilemma faced by database programmers employed in SQL jobs is whether or not to implement business logic in the database. The short answer is that it all depends; the long answer is in the link.
The role of any tester is to test software systematically (i.e. not randomly) and detect flaws before users do. The database tester focuses their work on detecting errors that originate in a database. These could be transactions that can’t be completed due to update failures (i.e. the violation of primary or foreign keys or blocking between processes), queries that take too long, and inconsistent, invalid, or anomalous data.
Database testers must have sufficient technical knowledge to unequivocally identify the causes of a problem and the conditions under which the problem occurs. This may require knowledge of SQL and some database administration tools (particularly monitors and profilers), although not to the same level as a programmer or a DBA.
Database testers must be clear about how to reproduce a detected problem. Their duty is not to solve it, although they must know who to report it to; depending on the cause, this could be a programmer, a designer, or a DBA.
Database Jobs Requiring Analytical, Interpretive, and Communication Skills
Database jobs requiring analytical and design skills usually center on interpretation and brokering. The actual job names are varied and the difference between them is not always very clear. They may be called designers, engineers, or architects. Often, the differences between these titles have more to do with hierarchy and vision than with particular skills or knowledge.
The common denominator of these positions is the task of interpretation and intermediation. Their work consists mainly of interpreting requirements or needs and expressing them in different ways, either through project development or through design artifacts like entity-relationship diagrams.
Although the boundaries of responsibility between architects, engineers, and database designers are usually blurred, we can establish some differences based on what most companies look for in these roles.
Database architects are commonly asked to have a strategic view of a company’s data infrastructure. To do so, they must use design tools to build artifacts (such as architecture diagrams) in line with that vision.
Database architects collaborate with other IT roles – communications architects, software/applications architects, server architects, cybersecurity architects, etc. – to align their respective objectives with those of the company. In turn, they work with other database professionals – engineers, designers, programmers, and testers – to agree on the responsibilities and guidelines with which each should work.
One of the responsibilities of database architects is to identify database needs and opportunities for improvement as well as planning for the long term based on growth projections, market trends, and overall objectives. For example, imagine migrating your company’s databases to the Cloud. It’s the architect’s responsibility to analyze the costs and benefits of the different alternatives and choose the best one. A database engineer might also, for example, determine the need to migrate an RDBMS to a new version based on an analysis of the costs and benefits.
Due to their strategic and long-term vision, it is common for database architects to have a position of authority. They may determine guidelines and work criteria for the entire database department of a company. That is why leadership skills are often desired in database architects.
A database engineer is usually expected to work on projects from start to finish. Once a database project – possibly one suggested by the architect – has the approval of the company’s management and has the sponsors to take it forward, the engineer must get to work. It is the engineer’s responsibility to make sure that the databases involved in the project are operational on schedule.
In small organizations, database engineers will probably have to do everything required to get the databases up and running: install/configure the RDBMS, design/implement the database schemas, and even take care of some of the programming and process automation. In larger organizations, an engineer may delegate some of these tasks to DBAs, designers, and programmers.
What the engineer always has is the task of planning for the databases to remain operational over the long term. This means estimating the growth in data volume and transaction volume and making forecasts – in conjunction with the architect – so that at no time does this growth exceed the capacity of the databases.
Database Designer or Modeler
Why do businesses need data modeling? Data models provide conceptual views of how the information in a database is structured. The database modeler builds these models based on project requirements or requests from architects or engineers. The result of their work consists of schemas and scripts to create new databases, adapt existing databases to new requirements, migrate legacy databases, or re-engineer and optimize schemas.
If you aspire to a job as a designer or modeler, I suggest you review the most common questions asked in a database modeling job interview.
A database designer usually uses database modeling and design tools that are independent of particular RDBMSs. Ideally, the data models they create should be implementable on any infrastructure. Nevertheless, a designer should be familiar with technical aspects of databases (especially SQL) so they can understand and eventually adjust the database creation scripts generated by design tools.
Like database engineers, a database designer’s daily tasks will depend on the number of people working in the database area. If you’re the only database person, you’ll have to do a little bit of everything. If there are lots of people, you may only handle the design, referring all tasks involving SQL scripts to the programmers or DBAs.
For more details on the database modeler role, I suggest you read this description of who is a database modeler.
Analysts and Data Scientists
Data analysts and data scientists are involved in collecting, organizing, and statistically interpreting information in databases. They use specific extraction, analysis, and visualization tools as well as directly querying data using SQL.
These roles do not need to have a deep technical knowledge of database tools. However, they must be able to express their needs in more detailed ways than an ordinary user can. This means that an analyst or scientist can, for example, examine an ERD and suggest the designer make certain changes to optimize the schema for the analysis tasks they need to perform.
Every analyst or data scientist should know how to perform queries on a database using SQL language. Preferably, they should also be proficient in a language with a strong focus on Big Data analysis, such as the very popular Python and the more scientific R.
Database Jobs Requiring Leadership
In this category, you’ll find positions like Head of Data, Chief Data Officer (CDO), or simply “the boss”. Obviously, the person in this position must have the ability to lead groups and make decisions.
Head of Data and CDO roles appear in large companies, where there is a team of people dedicated exclusively to databases.
In these roles, the person must know how to distribute and coordinate the work among the different members of their teams. They must know what each employee can do and be accountable for the team as a whole to the rest of the organization. They must also be able to understand the work of each member and evaluate it to determine its quality. This means that they must be able to look at an architecture diagram, an ERD, a SQL script, or a monitoring trace, understand its meaning, and judge whether it is well or poorly done.
It may happen that the Head of Data role is filled by someone who also performs another role – for example, an architect or a database engineer. However, if the team consists of many people (e.g. more than 7), the time they will have to devote to leading the team will probably take away from other tasks.
Database consultants specialize in a particular task – which can be database administration, programming, analysis, design, project management, or another database-related job!
The difference with the jobs mentioned above is that consultants usually work independently or freelance; they only join a company temporarily, when they’re needed for a project or a specific task. For example, if a database is behaving strangely and no one is able to solve the problem, a database consultant is hired to diagnose the problem and propose a solution.
Consultants are also called in when an organization lacks the profile it needs for a specific project. For example, suppose a company is developing a software product. A database designer is needed and the development company does not have one (or the ones it has are already busy on other projects). The company can hire an independent designer to do the job in time and with optimum quality.
These consultants sometimes become almost like superheroes. They are called in when there is a need or a problem that no one within the organization can handle. They are trusted to solve that problem, no matter how impossible it may seem. That’s why companies sometimes pay them exorbitant fees!
It can be tempting to work as an independent consultant, since their fees are high and they are not bound by the obligations of a regular employee – like keeping schedules, wearing suits, and having only a two-week vacation a year. But independent consultants must be true rockstars in their fields and must be prepared to do whatever it takes to accomplish the tasks at hand, even if that means sleepless nights or sacrificing weekends.
What Database-Related Job Calls to You?
I hope this guide to who’s who in the database department will help you figure out which role you most identify with. Unfortunately, database job postings are often unclear about the position they need to fill – for example, they may ask for a database architect when what they really need is a database administrator. So when looking at a database job offer, ask for a job description; based on the tasks detailed in that description, you will know whether or not the job is a good fit for your talents, aspirations, and career goals.