属性の決定(その1)
いよいよテーブル設計も最終段階に来ました。洗い出した項目に対する属性を決定していきます。
属性を決めるとは、各項目の型と長さを決めることです。更に言えばNULLを許可するか、規定値はどうするか、制約・ルール・参照整合性等細かく言えばいろいろありますが、ここでは最低限型と長さを決めます。
データベース管理者という職種があり(アプリケーション開発者に対応すると考えて下さい)、データベースを外的から堅牢に守るという事を絶対視します。外的とはたとえ同じチーム内で作成したプログラムからであってもです。つまり、作成されたプログラムを信じていないところがあり、データベースの整合性を自己完結的に固持しようとします。
得てしてアプリケーション開発者から見れば融通が利かないことが多く、両者の間に確執や軋轢を生むケースがあります。他システムと連携する必要があったり、過去のデータをコンバートする時など、あまりにガチガチに制約やルールを決められていて開発が立ちゆかない事があります。やはりバランス感覚が必要です。項目のチェックなどもテーブル定義上エラーにする事は出来るのですが、実務上は使い勝手が悪いケースが多いというのが私の経験です。画面側でチェックする方が、確実であり、応用が利き、変化に対応できると考えます。
さて、項目の型にはどんな種類があるでしょうか。細かく言うとデータベースの種類によっていろいろあるのですが、わかりやすく大雑把に言うと「テキスト型」「数値型」「日付時刻型」です。最低限この型の種類を覚えておけば大概のシステムは何とかなります。後は必要に応じて型の種類を覚えていくことにしましょう。更に各々の型に応じて長さなどを決めていく必要があります。
簡単に各々の型の特徴、どういう時にその型を適用するかという事をまとめてみます。(あくまでACCESSでのデータ型という前提です)
テキスト型:いわゆる文字を格納する為の型です。半角英数字・記号・ひらがな・漢字等を格納でき、最も汎用的に使える型です。テキスト型には長さを必ず指定する必要があります。ACCESSの場合は255バイトまでという制限があります。それより長い文字を格納するためにはメモ型を使います。ちなみに1バイトは半角文字1文字分、全角文字1文字には2バイト必要になります。
数値型:数値として操作する値を入れます。数字はテキスト型にも入れられますが、違いは数字を数値として扱うか文字として扱うかです。例えば「1」と「001」はテキスト型だと違う値になりますが、数値型だと同じと判断します。金額などは数値型にしますし、ゼロ自体も意味を持つコード類であればテキスト型にします。数値型には更に種類があるのですが、それは後述します。
日付時刻型:日付と時刻を管理する項目です。もちろん日付だけでも大丈夫です。日付型にしておけば日付に関する入力形式、出力書式、チェック、計算等全てACCESSの機能で実現出来ますので非常に便利です。日付を例えば8桁の数字として数値型やテキスト型に格納することも可能ですが、日付としての操作は全部自前でやらなければならなくなります。
以上のことを踏まえて、生徒名簿テーブル、家族テーブルの型、長さを表にしてみました。この詳しい解説は次回にて。
属性を決めるとは、各項目の型と長さを決めることです。更に言えばNULLを許可するか、規定値はどうするか、制約・ルール・参照整合性等細かく言えばいろいろありますが、ここでは最低限型と長さを決めます。
データベース管理者という職種があり(アプリケーション開発者に対応すると考えて下さい)、データベースを外的から堅牢に守るという事を絶対視します。外的とはたとえ同じチーム内で作成したプログラムからであってもです。つまり、作成されたプログラムを信じていないところがあり、データベースの整合性を自己完結的に固持しようとします。
得てしてアプリケーション開発者から見れば融通が利かないことが多く、両者の間に確執や軋轢を生むケースがあります。他システムと連携する必要があったり、過去のデータをコンバートする時など、あまりにガチガチに制約やルールを決められていて開発が立ちゆかない事があります。やはりバランス感覚が必要です。項目のチェックなどもテーブル定義上エラーにする事は出来るのですが、実務上は使い勝手が悪いケースが多いというのが私の経験です。画面側でチェックする方が、確実であり、応用が利き、変化に対応できると考えます。
さて、項目の型にはどんな種類があるでしょうか。細かく言うとデータベースの種類によっていろいろあるのですが、わかりやすく大雑把に言うと「テキスト型」「数値型」「日付時刻型」です。最低限この型の種類を覚えておけば大概のシステムは何とかなります。後は必要に応じて型の種類を覚えていくことにしましょう。更に各々の型に応じて長さなどを決めていく必要があります。
簡単に各々の型の特徴、どういう時にその型を適用するかという事をまとめてみます。(あくまでACCESSでのデータ型という前提です)
テキスト型:いわゆる文字を格納する為の型です。半角英数字・記号・ひらがな・漢字等を格納でき、最も汎用的に使える型です。テキスト型には長さを必ず指定する必要があります。ACCESSの場合は255バイトまでという制限があります。それより長い文字を格納するためにはメモ型を使います。ちなみに1バイトは半角文字1文字分、全角文字1文字には2バイト必要になります。
数値型:数値として操作する値を入れます。数字はテキスト型にも入れられますが、違いは数字を数値として扱うか文字として扱うかです。例えば「1」と「001」はテキスト型だと違う値になりますが、数値型だと同じと判断します。金額などは数値型にしますし、ゼロ自体も意味を持つコード類であればテキスト型にします。数値型には更に種類があるのですが、それは後述します。
日付時刻型:日付と時刻を管理する項目です。もちろん日付だけでも大丈夫です。日付型にしておけば日付に関する入力形式、出力書式、チェック、計算等全てACCESSの機能で実現出来ますので非常に便利です。日付を例えば8桁の数字として数値型やテキスト型に格納することも可能ですが、日付としての操作は全部自前でやらなければならなくなります。
以上のことを踏まえて、生徒名簿テーブル、家族テーブルの型、長さを表にしてみました。この詳しい解説は次回にて。

- 関連記事
スポンサーサイト