The Human Roles in a DBMS
With the increasing size and complexity of computing tasks, IT departments frequently grow to have
several specialists contributing to the database solutions of the company. If you are coming from a
background in desktop databases you may not have a clear idea of the titles and roles of the players.
Obviously, in a small company one person may have more than one of these roles as a SQL
programmer you may even be expected to cover responsibilities beyond just programming.
The DataBase Administrator (DBA) specializes in installing and maintaining the DBMS, including the
physical devices, backups and recoveries. Frequently the DBA is the person responsible for maintaining
the security scheme as well as troubleshooting the DBMS. Note that the DBA is not usually specifically
responsible for any given database. Rather, the DBA keeps the DBMS running as a service for all the
users that have databases on that DBMS. Each DBMS vendor has training and certification programs for
its particular systems.
The Systems Administrator (sometimes called the System Operator or "SysOp") specializes in the
Operating System (OS) and connectivity of the servers, both data servers and others. "SysAdmins"
perform back-ups of the OS and monitor the traffic load between servers. "SysAdmins" are likely also to
be involved in the security settings of servers needed by SQL programmers.
A newer position is the Security Administrator. Valuable corporate data is now exposed through the
web to a degree that would horrify the last generation of IT professionals. As hackers improve their
sophistication and means of collaboration, IT shops have responded by hiring individuals with specific
training in establishing hardware and software safeguards and in monitoring the servers for signs of
intrusion. SQL programmers may have to work closely with a Security Administrator to develop ways
of using data that minimize risk, for example, creating Views rather than permitting full table access (see
Chapter 16).
A Database Designer creates the overall scheme of the datastore, generally using specialized database
design tools. The designer will not only understand the principles of databases but also the client's
business model. The result from the designer's desk will be a layout of tables, relationships and queries
needed to satisfy the client's needs.
The Database Programmer writes code and interfaces to implement the design. The programmer may
be less familiar with the business rules and more familiar with how to write SQL statements and front
ends to implement the design. Whereas Database Designers are more involved at the start of a project,
programmers are involved for as long as the database is in use and changes and amendments need to be
performed. Many programmers joining a team will have no contact with the designer who left after the
database deployment. On legacy systems it may even be difficult to find any manuals regarding how the
system was designed.
Last, never forget the user who is, directly or indirectly, paying your fee.