Upgrade to Pro — share decks privately, control downloads, hide ads and more …

pbl-pub-2026.pdf

Avatar for Chiemi Watanabe Chiemi Watanabe
August 19, 2026
40

 pbl-pub-2026.pdf

Avatar for Chiemi Watanabe

Chiemi Watanabe

August 19, 2026

More Decks by Chiemi Watanabe

Transcript

  1. PBL Pub 2026: データベースを共有させてPBLをやってみた 「データベース設計論」という科目 大学の授業は、大きく 講義 / 演習 /

    プロジェクト学習 に分かれます。 今日話すのは「演習」の授業を一部PBL風にしてみた話です データベース概論(2年2学期):リレーショナルデータモデルと操作言語。SQL 実践が中心 データベース設計論(3年1学期):自分の好きなデータベースを設計・実装して学 ぶ 3
  2. PBL Pub 2026: データベースを共有させてPBLをやってみた 話の流れ 1. 授業設計 — 後半をワークショップ化した経緯と、15回の組み方 2.

    設計のすり合わせ — 4チームで1つのDBを設計するとどうなるか 3. 実装とデモ — 生成AIでモブ開発/段階的なデモ 4. 文化祭本番 — 当日に起きたこと 5. 皆さんと議論したいこと 5
  3. PBL Pub 2026: データベースを共有させてPBLをやってみた 皆さんに聞きたいこと ① DB設計 → 共有 →

    DB開発 → 実装 という順序は、PBLとしてアリか 実際の開発と異なります。実開発に寄せるべきでしょうか? 物を作る前に設計図を睨めっこして議論する時間を長く取るのはどうなの? 特定の技術トピックに絞ってPBLをやる時の勘所 ② 実践的なデータベース設計・運用を扱うPBLなら入れるべき要素 実践的というならこれもやらなきゃ こういうトピック扱ってくれないと 6
  4. PBL Pub 2026: データベースを共有させてPBLをやってみた 方針を変えることになったきっかけ 条件 中身 コーディングが劇的に速くなった。 Coding Agents

    設計+実装+実践のサイクルが授業内で数回せそうだと思った 学内共有DB 学内ネットワーク内でのローカルなDB共有が楽にできることが分かった 文化祭実行委員 2年生が文化祭実行委員の中心メンバーであることが分かった 7
  5. PBL Pub 2026: データベースを共有させてPBLをやってみた 題材:文化祭の模擬店で使うシステム 履修者 12人 / 3人×4チーム 運用上は30人くらいでもできそう

    4チームが1つの共有データベースに接続する 最終回は教室の中で文化祭の「模擬」模擬店を開催する 4チームの担当 チーム アプリ A 模擬店マップ — 場所、カテゴリ、営業状況(準備中/営業中/売り切れ) B モバイルオーダー — スマホで注文、受渡し可能で通知、支払いは店舗 C 店舗レジ — 対面販売用レジと、モバイル注文の会計確定 D 在庫管理 — 仕入数と注文数から残数を管理 8
  6. PBL Pub 2026: データベースを共有させてPBLをやってみた 授業15回分の構成(90分x2コマ/回) 回 内容 1〜5 講義/演習:教室予約を題材に、要件定義/概念設計(ER図)/スキーマ定義/DB実装 6

    アプリ設計:目的/利用の流れの設計 7 DB設計:要件定義/概念設計を、個人ベースからチームへ 8〜9 4チーム合同で設計内容のすり合わせ 10 DB作成・生成データ挿入・利用を想定したSQL実行デモ 11〜13 開発:環境構築/開発スプリント 14 ウォークスルー:注文から受け取り、売切から在庫補充まで 15 文化祭・振り返り 9
  7. PBL Pub 2026: データベースを共有させてPBLをやってみた 前半5回:全員で同じ題材をなぞる 題材:教室の予約システム 要件定義 → ER図による概念設計 →

    リレーションスキーマ設計 → DB実装 どの部屋を対象にするか/利用者は誰か は自由に設定 想定する状況が違えばスキーマも変わる、ということ体験 10
  8. PBL Pub 2026: データベースを共有させてPBLをやってみた 要件定義/概念設計: 個人 → チーム → 4チーム全体

    科目の目的上、アプリケーションの設計は最小限に 1. 第6回:アプリの要件と利用の流れを設計する 2. 第7回:個人でDB要件定義と概念設計(ER図)した後チーム内で設計 3. 第8〜9回:4チーム全体で擦り合わせ 11
  9. PBL Pub 2026: データベースを共有させてPBLをやってみた 段階的なレビュー(結果的に) 1. 発表者デモ(第12回) 発表者のPCで動かす 2. 実機デモ(第13回)

    受講者それぞれのPCやスマホで動かす 3. ウォークスルー(第14回) 実際にモバイルオーダーや店舗で商品を頼む 4. 本番(第15回)— 文化祭 16
  10. PBL Pub 2026: データベースを共有させてPBLをやってみた デモで見つかったこと:注文IDの衝突 第13回のデモで、注文番号の衝突エラーが発覚。 原因:チームによってロックの取り方が違った チーム 採用していた方式 モバイルオーダー

    排他ロック( pg_advisory_xact_lock ) 店舗レジ トランザクション(MVCC・行レベルロック) 同じ UNIQUE (shop_id, order_number) を共有していても、 採番の直列化の仕方が揃っていなければ衝突する 17
  11. PBL Pub 2026: データベースを共有させてPBLをやってみた 文化祭を実施 2店舗(たこ焼き・クレープ)を運用 販売セッション(交代して2回実施) 1. 従業員(=他チームの学生)への操作レクチャー 2.

    店舗設営/在庫補充 3. 実施 余談 商品は麻雀牌、お金は点棒でしたw お客さんは商品を受け取って"食べたら"倉庫に戻す 売り切れたら倉庫から調達 18
  12. PBL Pub 2026: データベースを共有させてPBLをやってみた 在庫管理トラブルの原因 在庫の変更と売上への追加のタイミングがアプリごとに異なっていた 本番後に振り返りで共有した表 status 状態 在庫を引く

    売上の掲載 1 受付済 2 調理中 引く 3 受渡済 載せる 4 キャンセル 5 提供可能 - 調理前にキャンセルされたら在庫は減らないが、その後なら在庫は減る 20
  13. PBL Pub 2026: データベースを共有させてPBLをやってみた 授業設計のまとめ:導入したこと 導入したこと 補足 共有データベース チーム間の連携を"体験"させるには、これ以上ない題材 実運用の経験

    文化祭を想定した実運用を行う。お祭り要素も。 段階を上げるレビュー 発表者デモ → 実機デモ → ウォークスルー → 本番 生成AI+モブ 実装を圧縮し、時間を"理解のすり合わせ"に振り替えられた 22
  14. PBL Pub 2026: データベースを共有させてPBLをやってみた 問い ① データベース設計論特有の開発プロセス DB設計 → 共有

    → 実装 という順序は実践としてアリですか? 個人的にはしっくりきた DB設計のすり合わせを通して互いのアプリの内容が共有できた 「実行される問い合わせとその結果」に着目してコードの流れを理解した 科目の学習内容としても問題ない 学習目標の達成が先に来てしまい開発プロセスに歪みが出るのでは 目標が技術的な学びなら自由度の高い演習問題と変わらない? 24
  15. PBL Pub 2026: データベースを共有させてPBLをやってみた 問い ② 実践に必要な技術要素 実践的なデータベース設計・運用を扱うPBLなら入れるべき要素は? 要件定義: ほぼ概念設計(ER図)の補足メモのような扱い

    (個人的に)洗い出しとしての利用+ER図に書けない背景や理由 PBIとDBの要件定義の関係は扱えてない 物理設計: ビッグデータを扱ってなくて今回扱えず そのほか扱えなかったトピック ビュー、リカバリー、インデックス 2回目、3回目の運用サイクルが必要 25