Database Architect
- Database Architect
- the specialized architect role that is played when a
person produces the database aspects of the
system architecture and
software architecture
As illustrated in the preceding figure, Database Architect is part of the following inheritance hierarchy.
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:
Database Architect typically inherits the
general role responsibilities from the
role method component.
To fulfill these responsibilities, a Database Architect typically should have the following
personal characteristics,
expertise,
training, and
experience:
A Database Architect should typically have the following personal characteristics:
- An abstract thinker (i.e., "big-picture" person) who:
- Is comfortable working strategically at high-levels of
abstraction.
- Can see the big picture without being caught up in
diversionary details.
- Can see beyond the obvious issues to patterns or
connections of issues that are not obviously related.
- Can recognize the essential underlying issues in
complex situations.
- Able to perform engineering trade-offs between:
- Conflicting architecturally-significant
requirements.
- 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.
- Solid team-building skills.
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.
A Database Architect should typically have the following training:
- A bachelor’s degree or better in software or
systems engineering, computer science, or the
equivalent.
- Vendor certifications in the relevant database management
systems (e.g., ORACLE certification).
- Practical hands-on training in:
- The project process, especially in terms of relevant
tasks, techniques, and work products.
- Data modeling concepts, diagrams, and tools.
- Database management systems.
- Data warehousing concepts and techniques.
- Component models, infrastructures, and interfaces.
- Reads books, technical journals, and conference
proceedings on:
- The architecting of software-intensive systems.
- Database design, implementation, and testing.
A Database Architect should typically have the following experience:
- A minimum of 2 year’s experience successfully
engineering or administrating databases during similar endeavors.
- A minimum of 3-4 year’s experience successfully
designing and implementing data and software components during similar endeavors.
A Database Architect typically performs the following role-specific tasks
in an iterative, incremental, parallel, and time-boxed manner:
Database Architect typically inherits
common role tasks from the
Role method component.
A Database Architect typically performs these tasks as a member of the following teams:
As a member of these teams, a Database Architect typically produces the following work products:
- 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.
- This role typically inherits the
common team guidelines from the
Role method component.