The typical role-specific responsibilities of a Database Architect are to:
Review and understand relevant:
Requirements specifications.
Conventions.
Vendor database management documentation.
Architect the databases:
Evaluate requirements for their relevancy to (and
impact on) the databases.
Perform database capacity planning.
Ensure that the system and software architectures
properly addresses persistence.
Determine the appropriate database technology (e.g.,
relational, extended relational, or object database).
Evaluate and select the database management systems to
be incorporated into the application(s).
Determine where the databases will reside in multi-tier
distributed applications (e.g., relational databases on the
database servers, object database in the middle domain tier
and relational database on the backend infrastructure
tier).
Evaluate and select appropriate mass storage devices
(e.g., disk libraries, tape libraries)
Produce the logical data models for the databases.
Determine if new database access software is needed or
if existing database access software can be used to access
data stored in databases.
Determine if existing database access software requires
modification.
Collaborate with others to determine the:
Impact of database changes on other systems.
Staff cost for making changes to databases.
Specify user authorizations:
Which users can access which databases.
Which users can access which data in the
databases.
User access level for that data (e.g., create, read,
update, delete).
Perform platform assessment regarding proper support for
the selected databases.
Provide reusable source code templates for:
Accessing the databases.
Stored procedures.
Produce the database-related contents of the following
deployment and operations documentation:
Competing architectural decisions involving
persistence, especially databases.
Able to identify architecturally-significant requirements
and their ramifications on the database architecture.
Able to clearly grasp the context of the application and
its system architecture, especially regarding access to
legacy databases.
Able to estimate the current and future sizes of the:
Databases (e.g., average and maximum number of
tables/classes and records/objects).
Associated hardware requirements (e.g., number and size
of database servers and disk/tape libraries).
Able to comfortably multitask (i.e., perform multiple
architecting tasks concurrently).
Able to make important decisions given incomplete and
conflicting knowledge.
Highly self-directed, being able to both manage and
(re)prioritize the multiple concurrent and competing
challenges, issues, ambiguities, and contradictions that
necessarily occur during the prduction of the database
architecture and design.
Strong analytical problem solving skills.
Excellent verbal and written communication skills, and
thus able to explain and document the database architecture
to its diverse audiences.
A Database Architect should typically have the following expertise:
Expert practical knowledge of:
Database architecture tasks, techniques, and tools.
Logical and physical data modeling.
Database modeling theory including data normalization, replication, integrity, and security.
Component-based development (CBD) concepts such as
components, component models, component infrastructures, and interfaces.
The major infrastructure and middleware technologies that are used to implement system architectures,
as well as the associated vendor organizations and their commercially-available products.
How to develop architectures of applications that will be distributed across multiple, heterogenious platforms
(e.g., hardware, operating system, server software, browsers, etc.).
Object-oriented concepts such as abstraction, encapsulation, inheritance, and polymorphism.
Component-based development concepts such as components, component models, component infrastructures,
and interfaces.
Application modeling languages (e.g., UML, OML, entity-relationship modeling) including the ability to
create and read the associated diagrams.
Application and database modeling tools.
The architecting standards and guidelines.
Solid practical knowledge of:
The theory, practice, and tools of database management.
The major reusable persistence mechanisms and patterns.
How to produce a common database architecture for a family of related applications (e.g., a product line).
Database security mechanisms.
Requirements engineering concepts and techniques.
Object, use case, and process/functional modeling.
Hardware, information, and software architecting.
Networks and network connection devices.
The theory, practice, and tools of software engineering.
Basic practical knowledge of the:
Application domain.
Business enterprise of the customer’s organization.
Integration and database testing theory, practice, and tools.
Configuration identification, configuration control,
and associated configuration management tools.
On smaller projects and in smaller organizations, the
same person often plays the database architect, database
engineer, and the database administrator roles.
This role is not needed on endeavors that do not involve
databases.