データベースの論理設計と物理設計

提供:MochiuWiki : SUSE, EC, PCB
ナビゲーションに移動 検索に移動

データベースの論理(概念)設計

データベースの中にどのような情報が保持されるべきかを正しく決定することはデータ管理者の仕事である。
言い換えれば、組織にとって関心のある実体を同定し、それらの実体に関して記録されるべき情報を同定することである。
この過程は、論理(概念)データベース設計(database design)とよばれる。


データベースの論理設計とは、記録する必要のある情報を選択・決定することで、テーブル設計というと論理設計のことである。
ただし、インデックスについては、論理設計には含まないと考える。


データベースの物理設計

DBAは、データがいかに記憶データベースにおいて表現されるかを決定しなければならない。
この過程は、データベースの物理設計(physical database design)とよばれる。


データベースの物理設計とは、パフォーマンスとサイズの観点からどのように物理的にデータを配置するのかを決定することで、
実際のRDBMSではそのほとんどがRDBMSによって行われる。

触れることの出来る部分はRDBMS毎に異なり、ストレージエンジンの選択が出来るものや、
パラメータや配置場所程度しか変更できないものまで色々なRDBMSが存在する。

パフォーマンスやサイズの問題が発生してから場当たり的な対処が行われることが多いが、本来ならある程度は考慮しておく必要のある部分である。


DDL(Data Definition Language)

データベースシステム概論では、

  • 論理データベース設計によって概念スキーマを定義し、概念スキーマを概念DDLによって生成する
  • 物理データベース設計によって内部スキーマを定義し、内部スキーマを内部DDLによって生成する

と記述されており、以下のような例が出てくる。

# 概念レベル
EMPLOYEE
   EMPLOYEE_NUMBER   CHARACTER (6)
   DEPARTMENT_NUMBER CHARACTER (4)
   SALARY            NUMBER (5)

# 内部レベル
STORED_EMP LENGTH=20
   PREFIX  TYPE=BYTE(6),OFFSET=0
   EMP#    TYPE=BYTE(6),OFFSET=6,INDEX=EMPX
   DEPT#   TYPE=BYTE(4),OFFSET=12
   PAY     TYPE=FULLWORD,OFFSET=16


では、SQLのDDL文のひとつであるCREATE TABLE文は、概念DDLと内部DDLのどちらなのだろうか?
上の仮想的なDDLと比べると、概念DDLに近いように見えるが、インデックスの指定なども行えることから、内部レベルの記述もできる概念DDLと言える。