属性に対するデータ・タイプ
各属性ごとにデータ・タイプを指定する必要があります。
ほとんどの組織には、各種データ・タイプの使用に関する適切に定義されたガイドラインがあります。以下に、エンティティーの属性として使用可能な主要データ・タイプの概要を記載してあります。
- ストリング
- 文字、数字、および特殊文字の組み合わせを含むデータ。
ストリング・データ・タイプの一覧を以下に示します。
- CHARACTER: 固定長の文字ストリング。このデータ・タイプに対する共通のショート・ネームは CHAR です。
- VARCHAR: 可変長の文字ストリング。
- CLOB: 可変長の文字のラージ・オブジェクト・ストリングであり、VARCHAR データ・タイプの制限を超える可能性のある文字ストリングに対して、一般的に使用します。
- GRAPHIC: 固定長のグラフィック・ストリングであり、2 バイト文字を含みます。
- VARGRAPHIC: 可変長のグラフィック・ストリングであり、2 バイト文字を含みます。
- DBCLOB: ラージ・オブジェクトにおける 2 バイト文字の可変長ストリングです。
- BINARY: コード・ページに関連付けられていない一連のバイト列。
- VARBINARY: 可変長のバイナリー・ストリング。
- BLOB: ラージ・オブジェクトにおける可変長のバイナリー・ストリング。
- XML: XML の内部表記である可変長ストリング。
- 数値
- 数字を含むデータ。数値データ・タイプの一覧を以下に示します。
- SMALLINT: 短精度整数に対して指定。
- INTEGER: 長精度整数に対して指定。
- BIGINT: より大きな値に対して指定。
- DECIMAL(p,s) または NUMERIC(p,s)。ここで、p は精度であり、s は位取りです (精度 p と位取り s を持つパック 10 進数の場合)。 精度 とは総桁数であり、位取り とは小数点の右側にある数値の個数です。
- DECFLOAT: 10 進の浮動小数点数に対して指定。
- REAL: 単精度の浮動小数点数に対して指定。
- DOUBLE: 倍精度の浮動小数点数に対して指定。
- Datetime
- 日付、時刻、またはタイム・スタンプを表すデータ値。Datetime データ・タイプの一覧を以下に示します。
- DATE: 年、月、日を表す 3 部構成の値を持った日付。
- TIME: 時、分、秒を表す 3 部構成の値を持った時刻。
- TIMESTAMP: 日付と時刻を表す 7 部構成の値 (年、月、日、時、分、秒、およびマイクロ秒) を持ったタイム・スタンプ。
例: EMPLOYEE エンティティーの属性に、次のデータ・タイプを使用することがあります。
- EMPLOYEE_NUMBER: CHAR(6)
- EMPLOYEE_LAST_NAME: VARCHAR(15)
- EMPLOYEE_HIRE_DATE: DATE
- EMPLOYEE_SALARY_AMOUNT: DECIMAL(9,2)
選択するデータ・タイプは、ビジネス定義のデータ・タイプです。 物理データベース設計時に、データ・タイプ定義を変更、またはそのデータ・タイプのサブセットを使用する必要がある場合があります。データベースまたはホスト言語がこの定義のすべてをサポートしていない場合があり、あるいはパフォーマンス上の理由から別の選択を行う場合もあります。
例えば、金額を表現する必要がある場合がありますが、DB2® および多くのホスト言語にデータ・タイプ MONEY がありません。米国では、この場合の SQL データ・タイプに関する通常の選択は、ドルを表す DECIMAL(10,2) です。しかし、高速で効率的なパフォーマンスのために、データ・タイプ INTEGER を考慮することもあります。