Database Design Document Template
Database Design Document Template
Version <#.#>
This template contains a paragraph style called Instructional Text. Text using this paragraph style is
designed to assist the reader in completing the document. Text in paragraphs added after this help text is
automatically set to the appropriate body text level. For best results and to maintain formatting
consistency, use the provided paragraph styles. Delete all instructional text before publishing or
distributing the document Revision History
Revision History
Date
Version
Description
Author
<Month> <Year>
Table of Contents
1.
Introduction..........................................................................................1
1.1. Purpose...............................................................................................................1
1.2. Scope, Approach and Methods........................................................................1
1.3. System Overview...............................................................................................1
1.4. Acronyms and Abbreviations...........................................................................2
1.5. Points of Contact...............................................................................................2
1.5.1. Information.................................................................................................2
1.5.2. Coordination...............................................................................................3
1.5.3. Data Owners...............................................................................................3
2.
System Overview.................................................................................4
2.1. System Information............................................................................................4
2.1.1. Database Management System Configuration.......................................4
2.1.2. Database Software Utilities.......................................................................4
2.1.3. Support Software.......................................................................................4
2.1.4. Security.......................................................................................................5
2.2. Architecture........................................................................................................5
2.2.1. Hardware Architecture..............................................................................5
2.2.2. Software Architecture................................................................................5
2.2.3. Interfaces....................................................................................................5
2.2.4. Data Stores.................................................................................................6
3.
4.
<Month> <Year>
5.
Database Interfaces...........................................................................15
5.1. Database Interfaces.........................................................................................15
5.2. Operational Implications.................................................................................15
5.2.1. Data Transfer Requirements...................................................................15
5.2.2. Data Formats............................................................................................15
5.3. Interface <Name>..............................................................................................15
5.4. Dependencies...................................................................................................15
6.
Reporting............................................................................................16
6.1. Reporting Requirements.................................................................................16
6.2. Design issues...................................................................................................16
7.
Data Access.......................................................................................17
7.1. Role Definitions................................................................................................17
7.2. Users.................................................................................................................17
7.3. Table Access Patterns.....................................................................................17
8.
Implementation Considerations.......................................................18
8.1. Large Objects...................................................................................................18
8.2. Queues..............................................................................................................18
8.3. Partitioning.......................................................................................................18
9.
Non-Functional Design.....................................................................19
9.1.
9.2.
9.3.
9.4.
9.5.
Security Design................................................................................................19
. Availability.......................................................................................................19
Scalability..........................................................................................................19
Performance.....................................................................................................19
Error Processing..............................................................................................19
<Month> <Year>
<Month> <Year>
1. Introduction
The Database Design maps the logical data model to the target database management system
with consideration to the systems performance requirements. The Database Design converts
logical or conceptual data constructs to physical storage constructs (e.g., tables, files) of the
target DBMS.
Use this Database Design Template to define the basis for the [Application] database design.
Describe how the database that will support the [Application] Data Model, supported with
details of the logical and physical definitions, non-functional issues, database interfaces, and
storage requirements. Where possible, provide expected data volumes, functional and nonfunctional usage of the tables, and performance considerations and requirements.
<Month> <Year>
Purpose
The purpose of the Database Design is to ensure that every database transaction meets or exceeds
its performance requirements. This document takes into account data and transaction volume to
produce a schema and environment that will meet necessary performance.
Describe the purpose of the Database Design document.
<Month> <Year>
Describe the scope of this document as it relates to the project. For example:
The Database Design for the [Application] is composed of definitions for database objects
derived by mapping entities to tables, attributes to columns, unique identifiers to unique keys
and relationships to foreign keys. During design, these definitions may be enhanced to support
the functionality described in the functional specifications and defined in the primary and
supporting modules of the applications High-Level Design.
<Month> <Year>
System Overview
Briefly describe the system for which this database will be designed. This serves as a point of
reference for the system designers and others involved in decision-making roles.
System Overview
Details
Project Sponsor
System name
System type
Operational status
Special conditions
Table 1: System Overview
<Month> <Year>
Provide a list of the acronyms and abbreviations used in this document and the meaning of each.
Acronym / Abbreviation
Meaning
POC
Point of Contact
RDBS
SA
System Administrator
DBA
Database Administrator
<Month> <Year>
Points of Contact
Identify the points of contact that may be needed for informational purposes.
Role
Name
Telephone
[Role]
[Name]
[Email]
[123-345-456]
[Role]
[Name]
[Email]
[123-345-456]
[Role]
[Name]
[Email]
[123-345-456]
<Month> <Year>
Information
Provide a list of the points of organizational contact (POCs) that may be needed by the
document user for informational and troubleshooting purposes. Include type of contact, contact
name, department, telephone number, and e-mail address (if applicable). Points of contact may
include, but are not limited to, helpdesk POC, development/maintenance POC, and operations
POC.
Role
Name
Telephone
[Role]
[Name]
[Email]
[123-345-456]
[Role]
[Name]
[Email]
[123-345-456]
[Role]
[Name]
[Email]
[123-345-456]
<Month> <Year>
Coordination
Provide a list of organizations that require coordination between the project and its specific
support function (e.g., installation coordination, security, etc.). Include a schedule for
coordination activities.
Organization
POC Name
Telephone
[Installation]
[Name]
[Email]
[123-345-456]
[Development]
[Name]
[Email]
[123-345-456]
[Security]
[Name]
[Email]
[123-345-456]
Phase
Activity
POC
Start Date
Design
Sign-off document
[Name]
DD/MM/YYYY
Development
Develop Database
[Name]
DD/MM/YYYY
Testing
Test cycle
[Name]
DD/MM/YYYY
<Month> <Year>
Data Owners
Identify points of contact for those who own or are responsible for data quality, currency,
accuracy, etc.
Type of Data
POC Name
Telephone
<Month> <Year>
2. System Overview
Provide a brief overview of the system. Ensure that this section is consistent with the high-level
design (if it exists).
NOTE:
Label each component, so that they may reference consistently across technical documents,
diagrams, and spreadsheets when referencing subsystems and components.
<Month> <Year>
System Information
<Month> <Year>
Identify the vendor, version and targeted hardware for the database management system.
Highlight any restrictions on the initialization and use of the DBMS.
Vendor
Hardware
Version
Comments
<Month> <Year>
Identify any utility software that will be used to support the use or maintenance of the database.
Vendor
Product
Version
Comments
<Month> <Year>
Support Software
Identify the support software directly related to the database, including name, version, function,
and major operating characteristics.
Examples include software for query language, report writers, storage, database loading, file
processing, and data cleansing.
Product
Version
Purpose
<Month> <Year>
Security
Discuss any integrity and access controls that apply to database components such as schema,
sub-schema, partitions or physical files, records or tables, sets or relations, and data elements.
<Month> <Year>
Architecture
<Month> <Year>
Hardware Architecture
Provide a brief an overview of the hardware architecture with supporting [flowchart / state /
sequence etc.] diagrams to illustrate how components are connected. Identify the hardware
configurations on which the database will reside.
<Month> <Year>
Software Architecture
List the components within the subsystem/application. Provide component diagrams to illustrate
connections within the application and external systems. Include components, datastores and
interfaces within the application as well as interfaces between internal components and external
systems.
Label internal interfaces for reference. Label external interfaces consistently with those
used in the high-level design document.
Indication direction on an interface, i.e. the direction of initiation or the main direction
of dataflow.
<Month> <Year>
Interfaces
Identify interfaces to external systems. Interfaces are described in more detail in the following
chapters.
<Month> <Year>
Data Stores
Identify and describe all data stores including databases, file systems and media data stores.
<Month> <Year>
Queries or other inputs the database will accept and outputs (displays, reports,
messages, responses, etc.) it will produce.
Database behavior in response to each input or query, including actions, response times
and other performance characteristics.
How databases / data files will appear to the user.
Type of flexibility to be built into the database for adapting to changing requirements.
Database distribution (such as client / server), master database file updates and
maintenance, including maintaining consistency, synchronization, enforcing integrity and
business rules
Backup and restoration including distribution strategies, permissible actions, and special
considerations for non-standard technologies.
Decisions on sorting, indexing, synchronization, and consistency including automated
disk management, optimizing strategies, storage and size considerations, and population
of the database and capture of legacy data
<Month> <Year>
Assumptions
List any assumptions made due to lack of information, e.g. ambiguous sections in the functional
specifications, or made during design, e.g. assumed constraints, assumptions about other
systems or where requirements analysis was unclear.
Ref #
Assumption
Impact
#1
#2
#3
<Month> <Year>
Issues
At this point, any outstanding issues should have been converted into design statements or into
assumptions as listed above.
<Month> <Year>
10
Constraints
Identify any known constraints on the database design. Constraints are factors that may restrict
the design/project by scope, resource, platform, language, schedule etc.
Ref #
Constraint
Impact
<Month> <Year>
<Month> <Year>
11
Responsibility
Identify the organizations and personnel responsible for the following database administrative
functions: database administrator, system administrator, and security administrator. Describe
specific administration skill requirements.
Role
Name
Responsibility
Identify role
Email address
Identify role
Email address
Identify role
Email address
<Month> <Year>
12
Naming Conventions
Type
Guideline
Style
Table names
Field/Column
names
Example: Name Foreign key fields the same name as the primary key
to which they refer
<Month> <Year>
13
Database Identification
Identify the names or labels by which the database will identified. Specify the code name, tag, or
label by which each database table or file will be identified.
For example, the following elements provide identification and status information about the
database.
Element
Element Name
Meaning
db_name
Database Name
db_path
Database Path
db_location
Database Location
db_storage_pat
h
Storage path
<Month> <Year>
14
Identify the systems that will use the database. Include the full system identification and model,
modification, version number, and system code.
System ID
Model
Version #
System Code
<Month> <Year>
15
Indicate whether the database will supersede or interface with other databases, and specify
which one(s).
This Database
<Month> <Year>
16
Schema Information
Describe the overall structure in the schema or other global definition of the database.
<Month> <Year>
Description
Describe the schema and each sub-schema of the system including name, file type and name,
data description language, access control keys, concurrence locking, data name mapping,
overall partition/file limitations and controls, redefinition and access path restrictions and any
other limitations or restrictions.
Sample Schema
Script
Description
analz.sql
code.sql
comnt.sql
create.sql
dropname_d.sql
drop.sql
idx.sql
main.sql
populate.sql
<Month> <Year>
Physical Design
<Month> <Year>
Physical Structure
Provide a diagram illustrating the physical structure (i.e. partitions, files, indexes, pointers) and
the logical components of the database.
<Month> <Year>
17
Special Instructions
Provide instructions for DBAs, operators and testers who my use the database for testing and
operational purposes. For example:
<Month> <Year>
18
Standards Deviations
List any known deviations from corporate standards and recommended guidelines.
<Month> <Year>
19
Entity Mapping
Identify the mapping rules and lists tables and columns that either:
<Month> <Year>
Mapping rules
<Month> <Year>
Identify entities and attributes that are not implemented as tables and columns.
Entity/Attribute
Description
<Month> <Year>
Non-trivial Mapping
List all tables that are not derived from an entity in a one-to-one fashion.
Table/Column
Mapped from
Purpose
Reason for
deviation
<Month> <Year>
Additional Objects
Lists database objects (tables or columns) that were not derived from an entity but added to the
database design for the purpose listed below.
Table/column
Description
Purpose
<Month> <Year>
Key Mappings
Identify the tables that have primary keys created from sequences:
Table
Sequence
<Month> <Year>
Other Deviations
Identify deviations from a one-to-one mapping of entity and attribute names to table and column
names and any foreign key naming deviations.
Entity/Attribute/Relation
Table/Column/Foreign Key
Column
<Month> <Year>
20
Denormalisation
Where appropriate, describe how redundancy is added to the design to improve performance or
support specific functionality.
<Month> <Year>
21
Performance Improvement
Denormalized
Table/Column
<Month> <Year>
22
Functional Support
Identify objects that were modified in order to support the proposed functionality of
[Application]:
Denormalized Table/Column
Source table or
entity
<Month> <Year>
23
Historical Data
Object
Description
Issues
<Month> <Year>
24
Business Rules
Describe business rules modeled in the data model, specified for entities in the data model or in
the functional specification that have NOT been implemented as table/column
constraints/column-defaults.
Business Rule
Implemented
Identify business
rule
Implemented by using .
Identify business
rule
Implemented by using .
Identify business
rule
Implemented by using .
<Month> <Year>
25
Storage
Provide sizing formulas for determining the storage required to support the database. Estimate
the internal and peripheral storage requirements.
<Month> <Year>
26
Recovery
Describe how data, schemas and support files will be recreated or recovered in the event of a
system disaster.
<Month> <Year>
5. Database Interfaces
<Month> <Year>
27
Database Interfaces
Describe interfaces with other applications including those of other operational capabilities.
<Month> <Year>
28
Operational Implications
<Month> <Year>
Describe data transfer requirements including content, format, sequence, and conversion issues.
<Month> <Year>
Data Formats
Describe data formats for the sending and receiving systems, including the data item names,
codes, abbreviations, as well as any units of measure/conversion issues.
<Month> <Year>
29
Interface <Name>
Interface
Details
Purpose
Characteristics
Interface Architecture
Security
<Month> <Year>
30
Dependencies
List any dependencies for the [Application] schema, for example, foreign keys across schemas.
Table
<Month> <Year>
6. Reporting
<Month> <Year>
31
Reporting Requirements
<Month> <Year>
32
Design issues
<Month> <Year>
7. Data Access
Discuss which roles are needed to use the database and highlight any significant information
related to the physical database implementation, for example, tables subject to high insert or
delete activity or with specific archiving rules.
<Month> <Year>
33
Role Definitions
Role-name
Purpose
<Month> <Year>
34
Users
Identify users that will be recognized by the database, including estimates of user volumetrics.
User name
Purpose
<Month> <Year>
35
Identify performance-critical functions and their table usage. Where possible, provide
volumetric information needed for the physical database design.
Function
Peak Frequency
Tables Used
Type
<Month> <Year>
8. Implementation Considerations
<Month> <Year>
36
Large Objects
Describe how large objects will be stored, for example, objects with a maximum size of 50MB
will be stored as BLOBS.
<Month> <Year>
37
Queues
Describe how queues (i.e. asynchronous messaging techniques) will be used. Specify which
functionality the queue implements and the implementing queuing technology (e.g. JMS).
Queue
Name
Table
Name
Queue
Type
Max
Retries
Retry
Delay
Retentio
n
Time
Dependenc
y Tracking
Auto
Commit
<Month> <Year>
38
Partitioning
Describe the design and format of each partition/file, including name, type, code, mapping,
limitations and controls, access procedures, and mechanisms. Identify the interdependencies of
each partition/file in the database.
Partition
Table
Index (Y/N)
Partitio
n
column
Partition
value
Partition
Name
Partition
size
Comment
s
<Month> <Year>
9. Non-Functional Design
Describe the non-functional design elements for the database.
<Month> <Year>
39
Security Design
Describe authentication, integrity, and confidentiality requirements that will be supported within
the database.
<Month> <Year>
40
Availability
<Month> <Year>
41
Scalability
<Month> <Year>
42
Performance
<Month> <Year>
43
Error Processing
Describe the error processing strategy adopted and how it is supported within the database
design.
<Month> <Year>
44
<Month> <Year>
45
Archiving
<Month> <Year>
Versio
n
Description
Author
October 2014
1.2
Process
Management
September
2009
1.1
OED Process
Management Service
July 2009
1.0
OED Process
Management Service
<Month> <Year>