Because there are usually specific stages in a database project, designers will find their daily job tasks evolving as the project progresses and the database itself evolves. Similarly, an administrator's daily tasks will depend on whether there are urgent system problems to resolve that day or whether the day can be dedicated to making improvements in the database or system performance. The daily tasks for this job may sound more important because the database is often the center of a business application project. A well-designed, well-maintained database can "make" a successful project, whereas a less carefully designed or not well-maintained database can "break" a project. The daily tasks listed in this section are not necessarily a complete list of all tasks you might encounter when working in this field. But they are general tasks that are common in jobs concerned with the design and upkeep of a database.
The differences between an administrator's task and a designer's tasks can be nonexistent in some cases. For example, when Microsoft introduced SQL Version 7, they included a great number of automation tools called wizards. These wizards featured even more automation with the release of SQL 2000. It is now completely possible for an administrator to design a smaller project without the assistance of a designer, thanks to the wizards. This does not mean the administrator is now overworked, as some tasks that once required human intervention and monitoring are now "self-tuning."
The tasks in the following list are common for both administrator and designers, however, they do vary somewhat depending on the project, client, and company. The actual tasks may be accomplished by one person in a small firm, or may be broken up into different areas to meet specific company needs. These duties are considered a sampling of general tasks:
- Meet with application project team and end users to discuss the data required in the database, its characteristics, and the activities needed by end users to manipulate this data (such as summarize sales by region, exchange data with a supplier in a specific EDI format required by the supplier, etc.).
- Add new data entities and modify existing data entities in a conceptual database model based on end user and programmer input. (This is usually a diagramming task, which is independent of any particular vendor's database.) Update accompanying documentation with business specific and technical details of specific data items and relationships between data items.
- Review changes in the database model with end users and programmers to verify that the changes will meet their requirements. Receive sign-off from end users on the proposed changes.
- Develop and test implementation of a conceptual model using specific database software, such as Microsoft SQL Server or Oracle, on development server. Update related project documentation.
- Develop database specific program code to access and update database objects and ensure that proper relationships among database objects are maintained.
- Recommend to programmers efficient ways to access specific sets of data stored in the database.
- Tune database performance (analyze database statistics and add, remove, or change database indexes and tables) and recommend system upgrades to IT staff (larger disk, additional processor, etc.) to achieve system performance goals.
- Install database system software (and perhaps operating system software) on the database server, according to project requirements and organizational policies.
- Work with IT technical support staff and database system software vendor technical support to troubleshoot production and development database problems when they occur. Possibly carry a cell phone or pager and be on call during non work hours to address any problems that might occur.
- Administer database security, such as the list of users who have access to all or part of the database and the security rights they have (for example, some users are only allowed to view inventory information, and others are allowed to change it).
- Create quick reports as required by end users.
- Work with application project staff to move application upgrades from the development server to test and production servers as required.
- Test new version of the third-party database software being used for project implementation.
- Keep up-to-date on database technology and research answers to questions that come up during the day by reading relevant technical books and articles.