
● システム開発 データモデリング
あまり聞きなれない言葉だと思います。
システム開発においてデータベースの設計部分に入る作業です、用件定義で導き出された全てのデータが対象になります、またシステム用に新しいデータが加わる事が多々あります。
全て用意したデータを業務用件に応じた形でテーブルを作成し、各々のテーブルにデータ項目(カラム)を設定し、データ型を指定します。
データベースではデータに呼称がだいたい決まっています。
・データ・システム全てのデータを指して、データ、データベースと呼んでいます。
・データベースにはその下位にテーブルを持ちます。そのままテーブルと呼ばれます。
・テーブルには各項目の一行のデータ、たとえば住所、氏名、電話番号など。この一行にまとまったものをレコードと一般に呼びます。
記録する、とか記録と勘違いしている一般の方が多いと思います。
・一行のレコードに入っている最低単位のデータを、これをデータと呼びます。
「データをどう処理するんだ」と言えば全体的なデータを表しています。
「このデータの型は文字列にするかな」と言えば単独のデータを示しています。
データ・モデリングで一番大事なのが「データの正規化」です。
これは一般の方も覚えておくと用件定義でのシステム開発者とのやりとりが楽になります。できれば理解して下さい。
・田中一郎さんという社員がいました。社内の役職は課長です。
・この田中さんのデータは人事、営業、経理で必要になります。
非正規化(正規化されていない場合)では、人事、営業、経理のデータに田中一郎で社内の役職は課長で入っています。
田中一郎が昇進して部長になりました。
人事、営業、経理の部門で変更を行う必要があります。
もし、どこかの部署で忘れるとかなり困る事が予想されますよね。
まったく同じデータがそのまま、複数使われている状態を非正規化と言います。
これを改善するために、社員情報というテーブルを作りました。
そして社員コードを新規に作って、田中一郎の社員コードを000000001としました。桁は1億ですから、新入社員が入ってきても、退職した方のデータもそのまま残せます。コードの桁はシステムの予想運用年数、会社の規模で算定します。(このコードはあくまで例です、用件によって変わります)
今度は人事、営業、経理のテーブルには新しく「社員情報コード」という項目を作って、社員コードだけを格納します。さらに社員情報テーブルと紐付けすれば、社員情報の管理者を決めれば効率化とデータの不整合による業務の混乱を押さえることができます。
ただ、一つの問題が残ります。ヒューマンエラーが起こった場合です。これですと社員情報の管理が不徹底であると、3つの部署が誤りに気が付かない場合がかなり出ます。
システムで効率化した際にヒューマン・エラーが引き起こすリスクも十分検討する必要があります。
また正規化で上記の説明で新しく社員情報というテーブルを作りましたが、大規模システムで正規化を徹底すると膨大な数のデーブルができます。紐付けをする、実際にはテーブル結合と呼びますが、あまりにテーブル数が多いと処理が重くなる為にあえて非正規化を部分的に作る場合もあります。
専門的には正規化はレベルが1から5まであります。
本サイトはシステム開発の業務知識の紹介が主ではありませんので、ご興味がある方は他の資料、書籍などを参考にして下さい。
大規模システム開発向けでは非常に難解ですが・・・。
腕時計のご紹介
ピンキー・ウォルマン
ファルチ
|
■PHP関数一覧
配列関数(array)
array_values()
配列の全ての値を返す
array_walk_recursive()
配列の全ての要素に、ユーザー関数を再帰的に適用する
array_walk()
配列の全ての要素にユーザ関数を適用する
array()
配列を生成する
arsort()
連想キーと要素との関係を維持しつつ配列を逆順にソートする
asort()
連想キーと要素との関係を維持しつつ配列をソートする
compact()
変数名とその値から配列を作成する
count()
変数に含まれる要素、 あるいはオブジェクトに含まれるプロパティの数を数える
current()
配列内の現在の要素を返す
each()
配列から、次のキーと値のペアを返す
end()
配列の内部ポインタを最終要素にセットする
extract()
配列からシンボルテーブルに変数をインポートする
in_array()
配列に値があるかチェックする
key()
連想配列からキーを取り出す
krsort()
配列をキーで逆順にソートする
ksort()
配列をキーでソートする
list()
配列と同様の形式で、複数の変数への代入を行う
natcasesort()
大文字小文字を区別しない"自然順"アルゴリズムを用いて配列をソートする
|
|
|