普通のデータベースとDWHのデータベース設計は全然違うんで、今日はそんなお話でも:*:・( ̄∀ ̄)・:*:

 

 

以前、職場の後輩に仕事について質問されたときのはなし

 

Yくん「たけのこさん…今、自分こうやって管理ポイントと管理項目の整理やっているんですけど…これって何に役立つのかよく分からなくなってきまして…」

 

といわれて、現在整理中の管理ポイント/項目を見せられる

 

※さっきExcelで10分で作ったスーパーシンプルなイメージ図

(実際のシステム設計がこんなに簡単なわけないだろ!いい加減にしろ!!!!

 

管理ポイントと管理項目の設計は、データウェアハウスの設計に先立って

何を集計対象とするかを洗い出して整理する工程もぐもぐ

 

管理ポイントとは、集計における行列項目のこと爆笑

管理項目とは、集計における集計項目のことニコ

 

分かりにくいと思うんで、例えを挙げると

 

「たけのこが一ヶ月間で酒に使った金に関する集計表」

 

みたいなのを作るとする

 

その場合、

 

「酒に金を使った日」「買った酒の種別」みたいな数値じゃない項目が管理ポイントになり

「使った金額」管理項目になる

 

…といったイメージ(;・`ω・´)

 

Yくん「なんか…これ(管理ポイントと管理項目の整理)のやり方は分かっても、これって結局何に使うんでしたっけ…」

 

『んとね。これがそのまま、テーブルのフィールドになるんだよ。管理ポイントも管理項目も。こんな感じで。』

 

※さっきExcelで5分で作ったテーブル定義書のイメージ図

(大手企業の業務システムテーブル設計がこんなに簡単なわけ…ry)

 

Yくん「うーん…」

 

『管理項目・ポイントを整理した表見たとき、◯が付いているところと付いてないところがあるでしょ?』

 

Yくん「はい」

 

『ここの◯が集まっているところを一つのテーブルとしてまとめ、それぞれ整理していく感じ。まぁ、◯付いてないところ(※)含め全部まとめて一つのテーブルにしてもいいんだけど、それだと無駄に空白のフィールドとか増えたりして、テーブル設計としてはあまりキレイじゃないんだろうね。』

 

※上の例に挙げたヤツは、実際とは違い、めっちゃシンプルにして一つのテーブルにまとまるようにしています

 

Yくん「なるほど…ちなみに、管理ポイントの上に書いてある、売掛日とか自社組織っていうのは、テーブルのフィールドに追加しないんですか??」

 

『これはディメンションだよ。こいつらのマスタは必要に応じて作ってもいいけど…ディメンションそのものをフィールドにはしないよ。』

 

Yくん「ディメンション…」

 

『ドリルダウンとかドリルスルーとかあるじゃん??あれに使うのがこれだよ。』

 

 

Yくん「あぁ!なるほど!!!たとえば、年の集計から、月の集計に掘り下げていくとか!」

 

『そうそれ!まぁオラクルとかはディメンショナルテーブルとファクトテーブル(※上で作ったみたいなテーブル)別々に作ったりもするけど…最近のBIツールは優秀だから、そんなことしないで、例えば、売掛日のディメンションで見ても、年月日全てを一つのファクトテーブルに格納させちゃって問題ないんだよね。』

 

Yくん「なるほど…ちなみに、主キーの設定とかはいらないんですか??」

 

『普通はファクトテーブルにはプライマリーキー(PK)設定しないね…業務システムのテーブルとDWHのテーブルだと、その辺の設計思想が違うんだろね』

 

Yくん「どういうことですか??」

 

業務システムだとさ。テーブル情報も、レコード単位で、更新や削除がされるわけね。てなると、やっぱり保守性重視の設計思想になるわけ。テーブルの正規化とかあるじゃん??あれも、マスタ情報とかが更新されても、最小限の修正で済むように考えられた設計思想だから。つまり業務システム寄りなわけね。』

 

Yくん「DWHだと違うんですか?」

 

『データウェアハウスだと、全部まとめて一つのテーブルにしようとしたがるよね。あと、主キーも設定しないし。まとめてレコード削除することはあっても、レコード単位で削除や更新は普通しないからね。DWHは参照メインだから、保守性は考えず、機能性重視になっちゃうんだろうね。』

 

Yくん「それプラス、ディメンションを考慮した設計にしないとダメってことですね。」

 

『そういうことだね。』

 

とまぁそんな感じで、ちょっと先輩っぽくドヤ顔で語ってみた(´・ω・`)

 

けど、DWHもBIも俺は数ヶ月前にこの会社入って初めて取り組みだしたから、付け刃でドヤ顔しているだけなんだけどねwwwwwwwww

 

まぁデータベーススキルばっか伸ばしてもしょーもないから、ここ見ててエンジニア極めたい人は、アプリ開発もしっかり出来るようになって欲しいものですね(´・ω・`)

 

 

・:,。゚・:,。★゚・:,。゚・:,。☆゚・:,。゚・:,。★゚・:,。゚・:,。☆゚・:,。゚・:,。★゚・:,。゚・:,。☆゚・:,。゚・:,。★゚・

ニコ「ちょっとでも、クスっときたら、下のボタンどちらかポチポチ音譜してください。」
にほんブログ村 政治ブログ 政治・社会問題へにほんブログ村 経済ブログ 実体経済へ
*☆*:;;;:*☆*:;;;:*☆*:;;;:*☆*:;;;:*☆*:;;;:*☆*:;;;:*☆*:;;;:*☆*:;;;:*☆*:;;;:*