Advances in cloud storage, machine learning, and analyzing colossal swaths of data have made database administrators more valuable than ever. Working with big data is now the norm, not the exception, and more and more businesses and government entities are increasing their use of databases. As of late March, the US Department of Defense was one of many organizations switching to a multi-cloud approach for its enterprise technology environments. According to Janice Haith, the strategic client director of the Department of the Navy at Oracle, the Navy is especially interested in utilizing automation and artificial intelligence for improving its business processes. This shift will require more data, more databases, and careful planning and management to ensure that the databases can handle the massive amounts of information and analysis required.
Programming languages and Databases
In order for a database to be useful, two things have to happen. First, it has to be full of relevant information. Second, the right type of analysis needs to be performed. Database administrators often find themselves using various programming languages to ensure that these things can happen, whether it’s using C++ to work with the database backend, SQL to view or modify records, or a scripting language to look for patterns in the stored information. These interactions help ensure that data is stored securely, that it’s up to date, and that businesses can utilize that data to improve their processes or inform future decisions.
Different Tasks Need Different programming Languages
It’s tough to recommend a unified set of languages that would work for every database administrator job. In practice, many of the skills required by database administrators can be learned through some MariaDB tutorials and an Oracle SQL certification or two. SQL is a Turing-complete programming languages that does the bulk of the heavy lifting when it comes to working with data in the database. For SQL-based databases like MariaDB and MySQL, if a task requires modifying the stuff in the database directly, SQL is usually the tool for the job. That said, noSQL databases are becoming more popular for handling complex data. Some noSQL databases continue to use SQL for queries, but the prevalence of proprietary, non-SQL-friendly noSQL databases means SQL skills are becoming a somewhat situational recommendation.
Similarly, the stuff you’re doing with the data in a database varies tremendously from company to company. PHP is a popular language for database administrators due to its ability to build web pages that interface with database data to build content. Sites using WordPress, for example, use PHP as a vehicle for retrieving post content stored in a database, while e-commerce platforms use databases to store products, customer information, and more. You’ll also see PHP used to display business data and analytics internally for managers, enabling real-time process improvements based on stored data.
It’s common to see database administrators turn to a scripting language to make sense of the information they pull from the database. Python is an especially popular choice, due to the language’s simplicity and flexibility, but it’s not the standard in every workplace. It’s also not always suited for complex or specific tasks. R is much more suited for statistical analysis and data mining, making it a valuable language for most database administrators to know, but it’s more limited in terms of the types of problems it can solve than a more flexible language like Python. Since it’s difficult to guess at the scripting language your next employer will use, it’s probably best to just pick one and learn as much as you can about it. Switching from Python to Ruby isn’t trivial, but it’s definitely something that most programmers can handle.
Backend Or Frontend?
SQL (or a noSQL equivalent like SPARQL) is ideal for working with data within the database. Scripting languages like Python and R are great for analyzing that data and finding trends. When it comes to working with the software that holds the database, however, you’ll probably be best served with something in the C family of languages. Anything involving the backend is most often written in C, C++, or C#. Without a knowledge of these languages, you’ll have a difficult time changing how the server stores database information, how the database responds to queries, or what happens to data when it’s deleted.
Depending on the duties of your role as a database administrator, these problems might be things you handle every day or things you never think about. Many companies take advantage of cloud storage solutions that outsource these questions to an external provider, ensuring that they never have to worry about which server or which hard disk sees which data or the intricacies of dealing with multiple users trying to modify the same database at the same time. Others enjoy getting their hands dirty, giving them an advantage in building fast, responsive databases that can handle the needs of their users and data scientists. If you’re looking for a job at one of these companies as a database administrator, you’ll definitely need at least some level of familiarity with the software that actually hosts the database, and that likely means something in the C family.
Databases Are Different
There’s a wide range of duties that a database administrator is expected to perform. At some companies, database administrators stick to solving problems with a query language and some console commands. Others turn to scripting languages like Python and R to analyze the information within the databases, while a different set uses languages like C, C++, and C# to modify the program that hosts the database, giving them control over how information is stored, accessed, and transmitted. Even beyond this gap in duties, different databases utilize different query languages, meaning the administrator might use SQL or an entirely different language to access and modify entries in databases. This means that the skills that are expected from a database administrator vary tremendously. Without a unified standard across the field in terms of job responsibilities, database type, in-house scripting language, or even database hosting environment, it’s tough to recommend a single set of programming languages for database administrators to study.
The use of big data is becoming more prevalent in many fields, with entities like the US Navy turning to multi-cloud solutions to analyze and store their business data. This shift means that database administrators are becoming more important. So what should they study? In practice, the answer is “whatever they want,” as long as it’s close to relevant. Having years or decades of experience in the exact platform that an employer utilizes can give you a leg up on another candidate, but even if you figure out what your dream employer is using currently, those technologies might change by the time you’ve built up the experience needed to apply.
Instead, focus on building a background in relevant programming languages that are useful for the projects and fields that you’re interested in. If you’re a prospective database administrator with an interest in statistics, learn R and use it for your personal projects. If your current employer utilizes old, out-of-date database software or an unusual scripting language, take the time to become an expert in it. Programming skills transfer quite well from language to language, so as long as you’re gaining mastery of the tools you’re currently using, you’ll have no problem fitting in at a new job.