データベースの導入
データベースの導入
☑️システム導入の流れ
システムを導入する際にあらかじめ考えておくべきことを整理しないで進めてしまうと導入後に必要な機能が足りないことに気づいたり逆に必要ない昨日まで追加してしまったり途中で設計士の子になってコースが余計にかかってしまったりする。
1. 要件定義
何か現場に問題があってそれを解決するためにどのようなシステムにするかを決める工程。課題や要望をヒアリングしどのような機能が必要なのかを洗い出す。
2. 設計
要件定義をもとにそれを実現するためのしよう決める工程。データベースはどのようなテーブルやカラムを設けるか、カラムにどのような形や制約をつけるかということを決める。
3. 開発
設計した内容をもとにしてソフトウェアデータベースを形にする。SQL言語などを用いてテーブルを作成しカラムに制約を設定。
4. 導入・運用
必要に応じて運用前に動作テスト行ったりまずは1つの部署だけなら小さい範囲から使用を始めたりする
☑️要件定義
何か叶えたい要望があってそれをどのように実現するかをまとめる要件の洗い出し作業。開発者やクライアントなどシステムに関わるメンバー全員が現場の問題点や開発する機能の内容開発後のシステムの操作イメージ業務の変化を把握できあらかじめ回避できる失敗をすることができる。定めた内容は要件定義書としてドキュメントにまとめることが多い。 データベースにおける要件定義は何のデータを保存するべきかまた何のデータを出力するべきかを考える。
☑️エンティティと属性
データベースに保存しておかなければならない情報を網羅しておき、この後の手順でテーブル設計に生かす。
保存すべきデータを整理するために保存対象となるエンティティー(実体)とエンティティが持つ詳細な項目(属性)を抽出する。
エンティティーは共通した内容を持った大まかなデータのまとまりを指しており、データ内に登場する人物やものを指す。具体的には商品や購入者、購入履歴、店舗といったものがエンティティ。
そしてエンティティーからさらに詳細な項目にあたる属性を抽出。
例えば商品がエンティティーの場合は商品名や価格、商品IDなどが属性となる。
☑️リレーションシップ
エンティティは他のエンティティーと関係している場合が多くエンティティ同士の結びつきはリレーションシップと呼ばれる。
リレーショナル型データベースでは複数の関連するテーブル同士を組み合わせてデータを表現することになるから、あらかじめエンティティー同士のリレーションシップを考えておくことでテーブル設計の時にテーブル同士の関係等必要なカラムを把握しておける。
リレーションシップの種類
* 1対多
1つのデータに対して複数のデータが関連している関係を表す。
例えば1つの部署に対して複数の社員が存在している状態。
* 多対多
1つのデータに対して複数のデータが関連しており相手側もこちらの複数のデータと結びつけられている関係。例えると授業と学生
* 1対1
あるデータに対して対応する1つのデータと結びつく関係。例えばサイトに登録したユーザアカウントとメール受信設定の情報は周囲のユーザごとに対応する情報が結びつく。
☑️ER図
ER図は、 エンティティとリレーションシップを図で表したもの。
必要に応じて概念モデル・論理モデル・物理モデルの3層に分けて作成する。 概念モデルはより抽象化した図でシステムの全体像を広く把握することができ物理モデルに近づくにつれて実際のデータベースの構築に必要な詳細な情報を記載する。これを見ることでどんなデータがあってデータ同士がどのような関係かを一目で把握することができる。
☑️正規化
データベース内のデータを整理する手順のこと。分ただデータの重複を減らすことができデータを管理しやすい構造に整えることができる。
* 第一正規化
1つのデータの中で繰り返し出てくる項目が排除される。
* 第二正規化
カラムに対応した値が決まる順序関係のカラムがある場合はそれぞれを別のテーブルに分離させる
* 第三正規化
従属関係を取り除くことで同じデータが複数のレコードにまたがって登録されるのを防ぐことができ後から情報編集するときに1つの値を変えれば他の対応しているデータ全てにそれが反映させる