ryotankの備考録日記

趣味の電子工作についての備考録などなど

タスク管理Webアプリその7

そもそもデータベースの設計は

第1段階:概念設計

第2段階:論理設計

第3段階:物理設計になる

フレームワークDjangoと以前決めている。

概念設計とはデータベースを用いる業務をする為に
必要なデータを抽出するフェーズ

つまり、データベースによって管理するものを抽出して
概念データモデルを作る。

概念設計の手順1:必要な要件の洗い出し

概念設計の手順2:データカテゴリを抽出する
  データカテゴリとは、エンティティ(実体)と呼ばれ、目的を持った
  データのまとまりを指す
例えば、社員データを管理するデータベースを作る時は、「所属部署」
「役職」「氏名がエンティティとして抽出する事が出来る


概念設計の手順3:概念データモデルとER図の作成

 必要なエンティティの抽出が終われば、概念データモデルを作る。

この時点では、どのタイプのデータベースを利用するかは特定しない

概念データモデルを作る場合は、ER図を使う


第2段階:論理設計する上での手順
「論理設計」は概念データモデルを整理し、データベースの種類に
合わせて変換をするフェーズ。

論理設計では、作成した概念データモデルのデータ構造に
変更を出来るだけ加えない様にしながら性能を上げる

  論理設計する上での手順1:データベースの種類を決定する


論理設計する上での手順2:データベースに沿った形に変換したテーブル定義を作成

データベースの種類を決めたら、沿った形にテーブル定義を行う

テーブル定義ではエンティティの属性を全て洗い出し、論理ER図を表す作業を行う


論理設計する上での手順3:作成したテーブルを正規化する

   1つのテーブルに同じような値が複数登場するようなテーブルは「非正規型」になる。
そういった無駄な部分を削除するには、テーブルの正規化を行う必要がある


物理設計する上での手順は7つ

 「物理設計」とは、物理的なデータ配置だけでなく、パフォーマンスを考慮して
 データベースを整理するフェーズ

物理設計する上での手順1:文字列のデータ型を決める

   ここで決める文字列のデータに保存するデータとしては、
「会社名」や「部署」「役職」「氏名」などが考えられま

文字列のデータ型には「CHAR(固定長文字データ)」
「VARCHAR(可変長文字列)」や「TEXT(長さ指定なしの可変長文字列)」など


物理設計する上での手順2:数字のデータ型を決める

  数字のデータに保存するデータとしては、「等級」や「基本給」
「日当」「交通費」「出張宿泊費」などが考えられます
  数字のデータ型には「INTEGER(整数型)」や「DOUBLE(浮動小数点数型)」などがあります。
数字で保存するデータに小数点が含まれるか否かによって決定


物理設計する上での手順3:半角英字のデータ型を決める

 半角英数字のデータに保存するデータとしては、「社員番号」や「メールアドレス」「部署コード」「役職コード」などが考えられます。

また、半角英数字は1バイトの文字列型となっているため、
データ型には「CHAR(固定長文字データ)」「VARCHAR(可変長文字列)」や
「TEXT(長さ指定なしの可変長文字列)」などがあります。


物理設計する上での手順4:容量や性能要件の確認


物理設計する上での手順5:データベースにインデックスを登録する

データベースはインデックスを登録することで、
処理スピードを上げてパフォーマンスを向上させることができます。
物理設計まで行われて修正されたモデルを「物理データモデル」と言います


物理設計する上での手順6:データ領域を計算する



物理設計する上での手順7:ファイルの配置を決定する

  データを格納するためのデータ領域を計算したら、
ハードウェアやソフトウェア上でのファイルの物理的配置を決める

まずER図とテーブル定義の作成を当面の目標にするか