Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
実践データベース設計サブ資料:①概念データモデリング
Search
Recruit
PRO
August 09, 2024
5
600
実践データベース設計サブ資料:①概念データモデリング
2024年度リクルート エンジニアコース新人研修の講義資料です
Recruit
PRO
August 09, 2024
Tweet
Share
More Decks by Recruit
See All by Recruit
スタサプ ForSCHOOLアプリのシンプルな設計
recruitengineers
PRO
3
980
リクルート流データ基盤塾~鶴谷と学ぶ~
recruitengineers
PRO
5
200
『SUUMO』 スマホサイト デザインリニューアルへの挑戦
recruitengineers
PRO
5
290
『リクルートダイレクトスカウト』 のリニューアルから振り返る: ビジョンドリブンの可能性
recruitengineers
PRO
3
290
負債あるモノリスのオブザーバビリティに組織で向き合う
recruitengineers
PRO
9
390
あなたの知らないiOS開発の世界
recruitengineers
PRO
4
320
大規模プロダクトにおける組織作りと技術ポートフォリオマネジメント
recruitengineers
PRO
4
460
OR学会2024秋_短期収益と将来のオフ方策評価性能を考慮したクーポン割当方策混合比の決定
recruitengineers
PRO
5
690
リクルート新人研修2024 テキスト生成AI活用
recruitengineers
PRO
12
1.1k
Featured
See All Featured
BBQ
matthewcrist
85
9.3k
How GitHub (no longer) Works
holman
310
140k
Gamification - CAS2011
davidbonilla
80
5k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Music & Morning Musume
bryan
46
6.2k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
360
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
109
49k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Designing Experiences People Love
moore
138
23k
Transcript
サブ資料①:概念データモデリング(R書店) 概念データモデルとは ビジネス(業務)の観点でシステムに必要なデータの全体像を体系的に表現したデータモデル R書店全体のビジネスフロー R書店のビジネスフロー 概念データモデルの作成手順 ・Step1 リソース系エンティティの抽出と定義 ・Step2 イベント系エンティティの抽出と定義
・Step3 サブジェクトエリアに分割 ・Step4 リレーションシップの線を引く ・Step5 定義を確認 1 ページ
顧客のサイト訪問から購入までの流れ 今回のシステムでは顧客の行動として以下を想定 1. R書店のWebサイトを訪れる 2. 商品(書籍..etc)を検索/閲覧する 3. 購入希望商品をショッピングカートに入れる 4. アカウントを登録する
5. 配送先を登録(確認)する 6. 支払い方法を登録(確認)する 7. レジに進む 8. 商品代、配送料、配送予定日等を確認して注文を確定する 9. R書店より確認メールが届く(※メールは今回はMockで対応) 10. 配送予定日に商品が届く 11. クレジット会社から引き落としされる 12.クレジットの明細を確認する(引き落とし額を確認する) 業務フロー図(詳細はFigamaで確認) 全体の業務フロー R書店の現状(仮) ここではR書店の現状を以下のように想定 ・単一のWebショップ(複数店舗は存在しない)で、書籍がメインだが、DVD等の関連商品 も売りたい。将来的には商品の種類を増やしたいと考えている ・商品の発送はR書店運営の配送センターが担い、複数の配送業者が登録している ・商品の決済はクレジットカードで行い、決済代行システムを使用している 2 ページ
決済予約(オーソリ)とは 決済は即確定ではなく、クレジット会社の与信チェックを経て確定される それにともない、決済ステータスの管理も必要になる 補足:決済の仕組み クレジットカード決済の仕組み 出典:https://www.gmo-pg.com/blog/articles/images/article-096_thumb07.jpg 今回決済はクレジットカードのみで行うものとする クレジットカード決済を実現するにはクレジットカード会社や決済代行会社のゲートウェイ (システム)との連携が必要になる ※今回はR書店が決済代行と連携することを想定
決済 3 ページ
ユースケースの整理 今回想定するアクターとユースケースは以下 アクター ・顧客 ・R書店サイト担当者 ・配送センター担当者 ・配送業者(配達担当者) システム要件の整理:今回の開発範囲 今回は以下の仕様で開発(今回は会計や各種申請システム等との連携等は省く) R書店
オンラインストアのアプリケーションおよび管理画面を作成 配送センター 在庫情報の管理画面を作成 配送業者 配送情報管理の画面を作成 決済代行ゲートウェイ モック(Mock)で対応 4 ページ
Step1 リソース系エンティティの抽出と定義 業務ルール、業務規定、要求仕様、要件定義書、新システム全体図等から、ユースケースやビジネス フローの実現に必要なリソース系を抽出し、次にそれらの概要を定義する 全てのエンティティには抽出に足るだけの意味があるので、それらを明らかにすること そのエンティティは「何のために存在するのか?」、「誰が管理するのか?」等を中心にして定義す る なお、その時点でわかる範囲で説明・制約・ルール・範囲になりうるものは余さず洗い出す リソース系エンティティの初期のピックアップ Step2
イベント系エンティティの抽出と定義 リソース系と同様に、現時点で把握可能なイベント系エンティティを抽出する また、各エンティティの概要定義も同様に行う イベント系エンティティの初期のピックアップ 注文と注文詳細の分離 後ほどリレーションを貼る際に、注文と商品を直接つなぐこともあるが、ここでは注文と注文明細は 分離させるものとする 5 ページ
Step3 サブジェクトエリアに分割 全体のデータモデルをサブジェクトエリアに分割する そのエリアひとつひとつについて、サブジェクトエリアの一覧表と、現時点で把握可能な各サブジェ クトエリアに属するエンティティの一覧表を作成する サブジェクトエリアの初期整理 6 ページ
顧客エンティティ 今回は顧客情報を扱うエンティティとして定義 Step4 リレーションシップの線を引く 抽出したエンティティ同士の間にリレーションシップの線を引き、各リレーションシップの意味つい て定義を行う すべてのリレーションシップの線には、それが引かれた理由があり、引かれた方向、矢印にも意味が ある それらを明確にして、リレーションシップの意味を定義する なお、リレーションシップの意味の定義文は、矢印の方向に沿って「親(エンティティ)は子(エン
ティティ)を~する」というように「~する」という動詞句で統一すると解りやすい 7 ページ
商品エンティティ 今回は書籍以外の文具やCD/DVD等も入る想定(後ほど論理データモデリングで詳述) ショッピングカートエンティティ 顧客が商品を追加するためのカートを扱うエンティティとして定義 出版社エンティティ 今回は商品となる書籍の出版元の情報として扱う 8 ページ
クレジットカードエンティティ 今回は唯一の決済手段として扱い、個々のユーザに紐づく従属エンティティ 注文エンティティ 注文情報を扱うためのエンティティ 配送会社エンティティ 今回は商品を配送する会社の情報を扱うエンティティとして定義 なお、物流会社と配送会社は意味合いが違うが、今回はR書店の配送センターに出入りする配送会社 を想定 9 ページ
配送モデル そもそも出荷と配送は別 出荷:倉庫から商品を棚出しして送り出すこと 配送:実際に購入者の元に届けること 両者の区別と要件や設計上の整理が必要 ※今回は出荷(Shipping)情報を配送情報に含める 出荷(Shipping)と配送(Delivery)の違い 注文詳細エンティティ 注文エンティティから切り出し 決済エンティティ
決済情報を扱うエンティティとして定義 注文エンティティに従属し、クレジットカードともリレーションを貼る 10 ページ
Step5 定義を確認 エンティティの概要とリレーションシップの意味ついての定義が、きちんと記述されているかを確 認する 11 ページ