8/10 ボイスコッド正規形

前の記事↓

gakuranchan.hatenablog.com

本日はボイスコッド正規形についてまとめる。

◆用語の整理

完全関数従属

Xの値を指定したときにYの値が1つに特定できる関係

例:会員IDを指定すると会員の氏名が特定できる。

推移的関数従属

下記の条件に合う場合、ZはXに推移的関数従属している

①YはXの完全関数従属

②ZはYの完全関数従属

③XはYに完全関数従属しない。

例:①会員IDを指定すると会員氏名が特定できる。②会員氏名を指定すると電話番号が指定できる③会員IDは会員氏名によって特定されない。

第3正規形

下記2条件

①第2正規形である

②あらゆる非キー項目が候補キーと推移的関数従属でない。

参照サイト

[SQL] 16. データベースの設計 2 | TECHSCORE(テックスコア)

データベースエンジニアへの道(3):素早く正規形を見抜く実践テクニック (3/4) - @IT

ボイスコッド正規形とは

すべての列が主キーと完全関数従属であるテーブル構成

第3正規形と異なる点

すべてのテーブルが主キーと完全関数従属している。

第3正規系は非キー属性に完全関数従属している候補キーについて

分解していない。

ボイスコッド正規化の注意点

  • 結合操作で元に戻せるように分解する

 

 

 

 

8/9 RDBMSテーブルの正規化について

経緯

ある企業の面接において下記のような質問を受けて

上手な回答をすることができなかったのでまとめてみました。

「データベースの正規化について簡単に説明してください」

「正規化によるメリットとデメリットをそれぞれ説明してください」

面接では「テーブル構造の重複をなくし整理する。。」みたいな

結構あいまいな回答をしてしまい非常に後悔しました。

 

参照サイト

第4回 データベースの正規化|OSS-DB入門|OSS-DB道場|受験対策|DBスペシャリストを認定する資格 OSS-DB技術者認定試験

できるエンジニアになる! ちょい上DB術・基礎編(7):【DB概論】正規化の手順 (1/2) - @IT

わかったこと

第3正規形までは何とか説明できるようになった。

第1正規形

繰り返し項目をそれぞれ別項目に独立させる

非正規系は帳票の状態でそれを表にするのが第1正規化。

(例)

キャンペーンエントリー履歴一覧画面

第2正規形

複合主キーとなる項目の一部に完全従属する項目を別テーブルに分離させる。

分解したテーブルに外部ーを加える。

(例)

「キャンペーンエントリー履歴」の主キーは

キャンペーンIDと会員IDとすると、それぞれ別テーブルに分離させて

キャンペーンエントリー履歴テーブルには外部キー、エントリー時間のみが残る。

第3正規形

すべての複合主キー以外の項目で関係従属関係にある項目を別テーブルに分離させる

(例)

キャンペーンテーブルには「所属会社」、「住所」が含まれているが

「広告主」が決まれば「住所」も確定するので別テーブルに分離。

これから勉強すること

ボイスコッド正規化

第4正規形

第5正規系

 

Placehold モック作成時のダミー画像、デフォルト画像作成なら

Placehold.jp|ダミー画像生成 モック用画像作成

ダミー画像作成サイトのPlaceholdさんのご紹介です。

(運営は株式会社ソフテルさんが行っております。)

主に使う場面としては下記が考えられます。

  1. 画面開発時にモックアップ用の指定サイズの画像が必要な場合
  2. デフォルト画像の作成

 

 APIとして提供されているので

呼び出し時のパラメータを動的に変化させることでうまい使い方ができそうです。

私が思いついたのは広告配信サービスで

広告主がリワードのカスタマイズを行えるようなサービスで

管理画面におけるプレビュー画面で使えるなあと思いました。

動的にサンプル画像のサイズが指定できれば便利かなあと。

 

 

 

 

デザインパターンを勉強する

デザインパターンの学習をする。

有能なエンジニアになりたい!とか言いながら

実際に優秀なエンジニアにお会いしていろいろ気が付いた

  • エンジニアは個人での情報発信が当たり前(git-hub, ブログ)
  • 基本的な知識が圧倒的に足りない

転職の面接においても基本的な知識を問う質問に対して

知識としての回答をすることができずイメージで回答してしまった。

 

親切にも面接を担当いただいたエンジニアの方に

デザインパターンをまずしっかり勉強すれば

どの言語、どの環境でも役に立つ」

という金言をいただいたので、デザインパターンの勉強を行おうと思う。

そもそもデザインパターンとは

オブジェクト指向のコーディングにおいてよくある23パターンをまとめたものを

Gofデザインパターンといいます。

デザインパターンを知っているとパターンに当てはめながら

設計やコーディングを行える(らしいです)。 

 

 

 

Template Method

P32~

TemplaeteMethodパターン

【一言】

スーパークラスで処理の枠組みを決め、サブクラスでその具体的内容を定めるパターン

 

例:自転車がスーパークラス ママチャリ、電気自転車がサブクラス。

  自転車のペダル、サドルなどはスーパークラスに実装

  かごや電動アシストはサブクラスに実装。