Thiết kế dữ liệu (Data Design) là tiến trình tạo ra các định nghĩa dữ liệu cho hệ thống; thiết lập cấu trúc các tệp tin dữ liệu chính trong hệ thống.
Thiết kế cơ sở dữ liệu (Database Design) là tiến trình xây dựng cơ sở dữ liệu cho hệ thống với kết quả là cơ sở dữ liệu trên giấy (không có trên thực tế!).
“Thiết kế cơ sở dữ liệu chiếm phần nhỏ chi phí so với xây dựng hệ thống, nhưng giúp kiếm soát hệ thống trước khi làm hỏng nó trong quá trình xây dựng”.
Quá trình thiết kế cơ sở dữ liệu về cơ bản được thực hiện qua các giai đoạn như sau:
1. Conceptual Design
Song song với quá trình thiết kế phần mềm (Software Design), khi nhận được yêu cầu từ phía người dùng (business requirement), những yêu cầu này thường khó hiểu do đó để làm sáng tỏ chúng thì kỹ sư phần mềm cần phải mô hình hóa (modeling) chúng bằng các mô hình / lược đồ (diagram).
Ở đây loại mô hình được sử dụng để mô hình hóa dữ liệu có tên là: Mô hình quan hệ thực thể (Entities Relationship Diagram - ERD) hoặc phiên bản nâng cấp của nó là Enhanced-ERD.
2. Logical Design
Khi đã thu được Conceptual Design từ giai đoạn 1, mô hình quan hệ thực thể sẽ được chuyển hóa thành Relational Database Schema (mô hình cấu trúc các bảng) thông qua một quá trình gọi là Relational Mapping (chuyển đổi từ các quan hệ sang bảng).
Nhìn vào Conceptual Design thì về cơ bản một cơ sở dữ liệu đã gần thành hình. Tuy nhiên để làm cho nó rõ ràng hơn nữa, như kiểu dữ liệu của từng thuộc tính (Attribute) và các ràng buộc (Constraint) trên chúng phải được định nghĩa một cách rõ ràng.
Sau khi thu được Logical Design thì cũng là lúc mà một lập trình viên cơ sở dữ liệu có thể nhìn vào bản thiết kế này để triển khai cài đặt một cơ sở dữ liệu. Quá trình này đồng hành với việc khi phát triển phần mềm, người ta sẽ chuyển sang giai đoạn Implementation (viết code).