プログラミング未経験おじさんの備忘録

本ブログはプログラミング未経験者の拙い学習の記録です。

学習[46]日目

本日の学習内容

 データベース設計

作成作業に関していざやってみようとしたのですが、実際にやってみると思った以上に書けずどこから手をつけようかという事でまた最初に戻り段階を持つ少し細かく見て、理解していこうと思いました。

まず、DBによってデータを管理する為に現実の世界を抽象化してデータモデル(以下、DM)を作る事が必要です。DM作成作業は,概念設計,論理設計,物理設計という3段階で行われます。段階それぞれのモデルは概念モデル,論理モデル,物理モデルと呼ばれます。

 

概念設計

DBによって管理の対象とするものを現実の世界から抽出して概念モデルを作成します。概念モデルの作成は、エンティティとリレーションによって行われます。

論理設計

概念設計によって作成された概念モデルを,特定のDMに対応した論理モデルに変換します。概念モデルをテーブル(リレーション)への変換は機械的に行うことができます。しかし,そのままテーブルに変換しただけでは,適切な形式にならない場合があります。

そこで,論理設計ではテーブルの正規化を行います。

また,テーブルの列としてデータ型を決定し,テーブルや列に対して制約を定義するといったことも,この段階において行います。

物理設計

この段階でDBとしての性能について考慮します。

物理設計によって修正された物理モデルが実際にデータベースによって管理することができる形式となります。

 

感想

こんな感じで設計のも段階が分かれていることを知る事が出来ました。
また、用語に関してある程度分かっていると今までわからなかった内容に関してもより学習する事が出来流ので情報の深堀もできている気がしました。
 
本日は少しアウトプットとして身近なものを使用してデーターベースの設計をしてみましたが、概念モデルの部分でエンティティに関しての洗い出しが少し実践を重ねないといけないなと感じました。
特にエンティティの中でもリソース系とイベント系と呼ばれる2種類あるのですが、イベント系の概念に関してリソース系のものから発生する動作等を考える出して洗い出す必要性があるので単純発想のみだと抜け漏れしそうだと感じました。