自主的20%るぅる

各々が自主的に好き勝手書くゆるふわ会社ブログ

『SQLスキルアップ勉強会(DB設計編)』開催レポ

こんにちは、かっつです。

今回は、2024年2月10日(土)に開催しました『SQLスキルアップ勉強会(DB設計編)』について、

色々と語りたいと思います。

懲りずに2回目

前回は11月に『初めて』勉強会を開催しました。

↓↓↓その模様はこちら↓↓↓

『SQLスキルアップ勉強会』開催レポ(※最後に告知あり)【Agent Grow Advent Calendar 2023:8日目】

『SQL』をテーマにしたはずなのに、気付けば『設計』『要件定義』に話がそれてしまいました。

そして『結局、最終的には業務要件!』迷言で終わらせるという、散々な結果となりました。

今回はタイトルを『DB設計編』とし、初めから上流工程寄りの話をするつもりで開催しました。

内容紹介

実際の資料を一部ご紹介します。



ここまでは、まだ『業務要件!』とは言っていないです。

そして、以下のスライドは私の経験に基づく『DB設計って楽しいよ(?!)』を表現したものです。



参加者の皆様が、様々な分野のエンジニアであることを想定し『開発でもインフラでも、少なからず関係はある』というアプローチをしたかったのです。

そして『難しさ』のところで『業務要件!』と言いたそうな感じがしています。

さて、私はどこまで業務要件に逸れず話が出来るのでしょうか?w


テーマ1:ER図

基礎的なところから、クイズ形式にしました。



また、似ているものとしてUMLのクラス図との違いについても、クイズ形式の後に解説しました。



テーマ2:多重度

この辺からもう、嫌な予感がします。

ただ、そうは言っても設計に重要なことを説明しています。



以下のスライドでは、ちょっと意地の悪いクイズが入っています。


『〇〇が〇〇しない。その理由は何か?』分かりますか?

解答例はこちら↓↓↓(※色を反転させると見えます)

◆『〇〇が〇〇しない』の解答例

・『業務が成立しない。』

◆理由

・解答例1:販売明細に同一の品目を複数件登録することができないから。

・解答例2:品目マスタの品目コードに一意制約が設定されていない場合、品目マスタの品目コード1つに対して複数件登録された場合、販売明細1件に対して品目マスタが複数件結び付くことで、SQL実行時にレコード重複(販売金額の多重計上)が発生するから。

如何でしたでしょうか?

ただ、ここではクイズを当てることが目的ではありません。

このER図はダメだよね』と、一瞬で判断出来る目を養って欲しいという想いで作っています。


テーマ3:正規化

このパートでは、出だしから『業務要件!』が出てしまいました。

とはいえ、実際の業務ではよくあるボトムアップアプローチの開発案件を例にしています。

まずは『何正規形』か、そして問題点は何かを考えてもらいました。



そして、段階的に正規化する手順を説明しました。

ただ、用意したデータがあまりよろしくなく、完成した第3正規形のテーブル群は実際の業務には使えないものになってしまったのですが、正規化の説明としては辛うじて成立したと思います。

今回は、非正規形~第3正規形について『現場目線』で説明しました。

教科書通りの説明であれば、書籍やネットでいくらでも調べられるので『だから、こうなんだよ』というのが伝われば良いなと思い、敢えて教科書通りの表現を避けました。

それに加えてアンチテーゼ的な観点についても考えてもらいました。



ここでは『逆正規化』『データマート』について説明しました。

ずっと論理的な設計の話をしていたのに、ここで急にメモリとかUIのレスポンス、バッチウィンドウなど物理面の話が出たので『するい!』と思った方もいるかもしれません。

そして例によって、私の口癖『業務要件!!業務要件!!』全開でした。

※参加者の皆様、ごめんなさいm(_ _)m


所感・反省

結局、私は皆さんに何を伝えたいのか?

それがまだ明確でないのではないかと思います。

SQLと言いながらDB設計、そしてDB設計と言いながら基本設計や要件定義へと脱線するパターンが多いです。

もしかしたら『業務システムの上流工程』という括りで開催した方が良いのかもしれません。

ただ、脱線が癖になってしまっているので、そうしたらそうしたでどこかに脱線しそうです。

 

どなたか『勉強会を上手く開催するための勉強会』を開催して頂けたら、是非参加させて頂きたいです。

まだまだ自分自身が勉強させて頂く身なのだと、改めて実感しました。

 

今後も懲りずに開催しますので、皆様も懲りずにご協力頂けたら、とても有難いです。

よろしくお願いしますm(_ _)m

 

今回は以上です。

ここまでお付き合い頂き、ありがとうございましたm(_ _)m

Let’s share this article!

{ 関連記事 }

{ この記事を書いた人 }

アバター画像
かっつ

業務システム開発SE(要件定義~運用保守まで全工程)
流通小売業・製造業に強みを持つコンサル系SEを目指しています。
医薬品登録販売者でもあります。

記事一覧