データベース設計
データベース設計を行う工程は、一般的には、データベース設計者が行う多くの作業から、構成される。 こうした作業のすべてが、あらゆる場合において必ずしも必要であるわけではない。 多くの場合、データベース設計者が行う作業のうち必須であるのは、次に列記する作業である。
データベース内に永続化(格納)するべきデータを決定する
異なるデータ要素間の関連の集まりを決定する
こうして決定された関連の集まりを基盤として、データに論理構造を重ね合わせる
関係モデルにおいては、データベース設計の最後の作業は、一般的にはさらに2つの作業に分割することができる。 1つは、構築するシステム内の情報をグループの集まりにまとめる作業である。 この作業は、一般的には基底オブジェクトの集まりを同定する作業である。 基底オブジェクトの集まりに関する情報がデータベースに永続化されることになる。
多くの場合、データベース設計を行う人は、データベース設計に精通している。 いっぽうで、データベース設計者が、永続化(格納)の対象となる業務データ(例えば金融の情報や生物学の情報)の業務に精通していることは、あまりない。 こうした事情により、データベースに永続化するデータを決定する作業は、データベース設計に精通している人と、業務に精通しておりかつデータベース内にどのデータを永続化しなければならないかをわかっている人との、共同作業でなければならない。
この作業は、一般的には、ソフトウェア開発工程における要求分析の作業の一つと位置づけられる。 データベース設計者には、業務知識に精通している人々から必要な情報をくみとる能力が、必須である。 なぜなら、データベース設計で必要とされる業務知識には、データベースに対するシステム面での要求が明瞭に表現されていないことが、多いからである。 データベース設計者は、永続化しなければならないおのおのの業務データ要素を基盤として思考することに、慣れていないことが多い。 永続化するデータは、要求仕様で記述する。