What the DBA needs to know

What knowledge is needed to effectively manage a database system? That depends, of course, on what you mean by “manage” and “database system". For this discussion, I’ll define “manage” to include not only pure maintenance tasks but also creation and design of databases and their eco-stricture, as well as performance tuning. The "database system" includes not just a single database, but one or more installations of the SQL platform and the systems they reside on, as well as a little of the networking.


The first bit of knowledge for the DBA to do a good job is the basics of database theory. And not just relational theory. This is important because without this foundation, many design, maintenance and performance decisions are impossible to make.


Second, the DBA needs to understand data design. This information is also core to figuring out how to design a database, how to maintain it, and there is no better tuning than a proper date design.


The DBA needs to know about storage. If there is one area I see in many DBA’s need work, it’s here. Even if the organization has a full-time SAN engineer, it's important to understand the basics of DASD, SANs, NAs and solid-state drives. This Knowledge invaluable when laying out databases on disk.


DBA's also need to know about the specific vendor platform that they implement. Microsoft has ways of doing things like maintenance and performance tuning, and so does Oracle and IBM. To manage these systems, The DBA should understand how those companies approach those tasks.


The DBA needs to know the best practices for maintenance. This knowledge is a combination of generic and specific information. The same holds true for performance tuning.


Although it might not be agreed on universally, the DBA needs to know a little programming, especially with (but not limited to) the SQL dialects they work with.


A DBA also needs to know at least one server operating system, and at least the basics of networking.


You can see that there is some knowledge that is “generic”, such as data design, and some knowledge is specific, such as the particular steps in a backup. 

Tomorrow will talk about what a database developer needs to know.