プロフィール
DTIブログ!

Search

データベース設計 復習?

Ruby on Railsからのデータベース設計入門的なことを書けたらいいと思ってメモ

対象として入門者として必要な知識はきっと次のようなもの

Rubu on Rails知識
 ・O/Rマッピングの基本ルール
   ・テーブルとクラスの関係
   ・ネーミング規則
 など・・・

データベース設計
 ・ER図の表記法、IDFE1Xなど
 ・正規化の知識
   ・集合と分解
   ・抽象化
   ・プライマリキー(PK)、フォーリンキー(FK)
 ・依存リレーションと非依存リレーション
 など・・・

そして、今回はさらに特殊な例として、UMLでモデリング済みとする。
通常、Ruby on Railsでの開発は、XPやアジャイルなどのような開発に向いているようで、
きちんとがちがちに設計した後、開発するのは良さが活かされてないように感じが、まぁよい。
(今回は、クラス図以降の流れが中心)

基本的流れ
1.対象システムの分析
2.モデル化(クラス図)
3.クラス図⇒ER図への変換(IDEF1Xなど)
4.ER図⇒migrationファイル定義
5.システム開発


対象システムの分析
 開発対象とするシステムがどのようなものであるのか分析
 ・システム化の目的
 ・システムの動作の流れ、業務分析
 ・システム化の範囲

モデル化
 対象領域の抽象化、クラス図へ落とす(※省略)

クラス図⇒ER図への変換
 モデル化で行ったクラス図をER図へ落とす。RoRで開発の場合
 事前に、RoR規則を適用すると良い
 ・ER図表記表 IDEF1X
 ・リレーション間の関係定義
 ・日本語記述⇒英語記述
 ・RoR規則適用
   ・テーブル名とクラス名の関係
   ・idが絶対に必要
   ・FK名の規則「テーブル名_参照カラム名」
 など

ER図⇒migrationファイルの定義
 実際に設計したER図からmigrationファイルを作成する
 基本的には、一つ一つのテーブルを定義すれば問題ない
 ・各テーブルのmigrationファイルを記述
 ・テーブル間定義の記述
   ・1対1
   ・1対多
   ・多対多
  (多対多は、基本的にER図を記述した時点で存在しなくなっているはずである)
 ・rake db:migration
 (※必要ならば、scaffoldも使う)
 
システム開発
 ・対象システムの分析での業務の流れを元にシステム開発できるはず。
   ・業務の流れ
   ・画面設計
  など

大雑把だけど、今日はココまで眠いので・・・。

    
参考サイト
改善型開発 〜 システムを作るのではなく育てるという発想
IDEF1XによるER図の記述
IDEF1X 情報モデリング手法

データベース設計 復習?

久しぶりにデータベース設計をやることになるので
復習も含めてメモしておく。

データベース設計の手順
1、情報戦略計画(大規模の場合)
2、業務分析
3、概念設計
4、論理設計
5、物理設計
6、性能設計
の流れで設計されていく。

情報戦略計画
(ビジネス活動)全体の計画の中でデータベース化の目的、対象領域、目標を検討

業務分析
  データベース設計の対象となる具体的な業務(サービス?)で利用す帳票、画面、ファイル、などの分析を行い、データベースで管理する必要のあるデータを抽出整理。性能に関することも検討。アクセス特性分析

概念設計
業務分析のデータ分析結果を元(エンティティの抽出)に、集合の分解と統合の原理に基づいてエンティティ単位にまとめる。正規化、抽象化、ER図の作成

論理設計
使用するDB製品固有の値などを決める。
 ・ネーミング設計
   テーブル名、インデックス名、テーブル領域名、ファイル名、ユーザ名などのネーミングルール
 ・スキーマ設計
   具体的なテーブル定義、業務ビュー定義、スキーマ仕様
 ・非正規化設計
   性能面、業務面の考慮により正規化を崩すかも
 ・論理容量設計
   テーブル定義仕様、テーブル件数からデータの容量を見積もる

物理設計
論理設計を元に、DBSystemを構成するH/W、OS、物理ファイルなdんを具体的に設計
 ・インデックス設計
 ・物理容量設計
 ・ログ領域設計
 ・CPU設計
 ・メモリ設計
(※詳細省く)

性能設計
(※詳細省略)


参考本

« | 2017/06 | »
S M T W T F S
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -