1 連絡と準備
小テスト❿ を実施します。
- シラバス記載のように、小テストは最終評価の 35% に相当します。
- 遅刻・欠席等により追試験を希望する場合は第01回講義で案内した手続きをしてください。
- 小テストは、今回で終わりです。次回以降は、小テストはありません。
今回返却した 小テスト❾ の「左上に青文字で書かれた数値」は9回分の小テストの累計 (90点満点) です。
2026/01/18 (日) に大学入学共通テスト「情報」が実施されました。Teams に「問題」と「解答例」を配置しています。60分・100点満点・マークシート式の試験です。
- 高校 (≠高専) の 情報I (=主に高校1年で開講される2単位の必修科目) の範囲から出題されるものです。
- 腕試しにトライしてみてください。
2 課題2
次に示すトピックのなかから 1項目 を選び、技術解説記事を作成してください。各トピックは、RDB / RDBMS の理解を一段深めるために重要な概念であるものの、講義時間の制約上、本科目では扱うことができなかった内容となります。
執筆にあたっては、後述の作成上の注意点に従い、本科目の演習環境(PostgreSQL 17 のコンテナ) を用いた実験や検証を必ず含め、その実行結果や挙動を踏まえた説明や解説としてください (単なる調査のみ、理論説明のみの内容は不可です)。また、理解や定着を確認するための問題や演習も含む内容としてください。
- インデックス設計
INDEX、B-tree、探索コスト- 探索アルゴリズムやデータ構造の知識が、SQL の実行性能にどのように結びつくのかを理解したい学生におすすめ。
- 参考: 📖 教科書「6-2 インデックス設計」「6-3 B-treeインデックスの設計方針」
- 難易度: ⭐⭐
- 実行計画
EXPLAIN、EXPLAIN ANALYZE、オプティマイザ、Seq Scan / Index Scan- パフォーマンスチューニング (インデックス設計を含む) に興味関心がある学生におすすめ。
- 参考: 📖 教科書「6-4 統計情報」
- 難易度: ⭐⭐⭐
- 同時実行制御 (隔離レベル)
TRANSACTION ISOLATION LEVEL、ロック- 複数ユーザが同時にアクセスする環境で、どのように整合性が保たれているのかを理論と実験の両面から確認したい学生におすすめ。
- 難易度: ⭐⭐⭐⭐
- PITR (Point-In-Time Recovery: 時点復旧)
- PITR、WAL (Write-Ahead Logging)
- 障害発生時に、データベースを「ある過去の時点」に戻す仕組みを理解したい学生におすすめ。
- 参考: 📖 教科書「2-6 バックアップ設計」「2-7 リカバリ設計」
- 難易度: ⭐⭐⭐⭐
- ウィンドウ関数
RANK、ROW_NUMBER、PARTITION BY、GROUPING- SQL による高度な集計処理を学びたい学生向け。
- 難易度: ⭐⭐⭐
- ビュー と CTE (Common Table Expression)
VIEW、WITH、CTE、ビュー、マテリアルズビュー、再帰 CTE- 複雑な SQL を分割・整理し、可読性や保守性を高める方法を学びたい学生におすすめ。
- 難易度: ⭐⭐
- ボイスコッド正規化、第4正規化、第5正規化
- ボイスコッド正規化 (3.5正規化)、第4正規化、第5正規化
- 難易度: ⭐⭐⭐
- Drizzle ORM
- ウェブアプリのバックエンド (TypeScript) から、複雑な SQL (結合・集計・サブクエリなど) を安全かつ可読性を保った形で発行する方法について学びたい学生におすすめ。
- 難易度: ⭐⭐⭐
(プロンプト例)
私は情報系学科の高専4年生です。データベース工学という授業で、以下のような課題がでました。どれに取り組むべきかアドバイスが欲しいです。具体的には、各トピックの概要の説明と、どのトピックを選ぶのがよいか?について、対話的に一緒に考えて欲しいです。
課題:次に示すトピックのなかから1項目を選び、技術解説記事を作成してください。執筆にあたっては、授業で使用した環境 (=PostgreSQL 17 の Dockerコンテナ) を用いた実験や検証を必ず含め、その実行結果や挙動を踏まえた説明や解説としてください。単なる調査のみ、理論説明のみの内容は不可です。また、理解や定着を確認するための問題や演習も含む内容としてください。
トピック:「インデックス設計」「実行計画」「同時実行制御 (隔離レベル)」「PITR」「ウィンドウ関数」「ビュー・CTE」「ボイスコッド正規化、第4正規化、第5正規化」「Drizzle ORM」
2.1 提出先や期限など
- 提出先 : Teamsの「DB-課題2」に URL を提出してください。
- 提出期限 : 2月18日 (水) 23時
- 担当教員に事前相談することなく、提出期限から168時間(=1週間・7日間)を超過して提出されたもの(追提出・再提出を含む)は、未提出と同じ0点評価とします。
- 採点後は、修正版の再提出や追提出があっても原則として再評価はしません。
- Teams で点数がフィードバックされるまでは、(URLに変更がない範囲で) 加筆・修正等が可能です。
- 実際の採点は、早ければ 2月24日 (火) から開始予定です。
- 採点 : 7.5点
を標準として、10点満点で評価 します。
- 本科目では、本課題が最終課題 となります。
- 総合成績において課題は 20% に相当します。
- 課題1 (10点満点) を「7.5点」に換算、課題2 (10点満点) を「12.5点」に換算して合計します。
- 取り組み時間の目安 : この課題には
最低でも「10時間」以上を費やして取り組んでください。
- 解説記事の末尾に「本コンテンツの作成時間:約XX時間」を必ず記載してください。記載漏れがあると、最高でも「6点評価」となります。注意してください。
2.2 作成上の注意点
- 技術解説の読者としては「本科目を履修している4Iの学生」を想定してください。
- 読者は、第01回講義から第12回講義までに扱った内容を既に学習・理解しているものとし、その知識水準を前提として解説のレベルを設定してください。
- 解説の内容は、単なる調査や理論説明だけではなく、必ず本科目の演習環境(PostgreSQL
17 のコンテナ) を用いて
ハンズオン形式で実験や検証を行ないながら、読者が理解を深められるもの
としてください。また、理解度を確認するための問題
(=本講義資料の「定着確認」に相当するもの) や、演習
(=本講義資料の「SQLドリル」に相当するもの) を適宜、含めてください。
- 想定読者が、解説記事の読解に加えて、実際に問題や演習に取り組み手を動かしながら学習した場合に 最低でも90分以上の学習体験ができるようなコンテンツのボリュームや難易度 としてください。
- 問題や演習には、必ず「解答例」を付けてください。解答例は GitHub のリンクなどで示すことも可とします。
- 必要に応じて、ここまでの授業で提供・使用してきた各種テーブルやレコードを、そのまま記事のなかで使用することも可です。また、内容に応じて改編して利用することも可です。
その他、不明点や提案があれば、Teamsのチャットで早めに連絡をお願いします。
3 EX課題 (任意)
課題2 に相当する記事を、もう1件、執筆してください。
提出先は、Teams Chat (教員個人宛) となります。それ以外 (期限など) はすべて 課題2 と同じです。内容 (努力と質) に応じて、最終成績の評価において考慮します。提出は任意です。
4 次回授業の準備
次回の授業では、MongoDB と mongo-express のコンテナを使用します。その準備として、各コンテナの元になるイメージを予めプル (ローカルにダウンロード) しておいてください。
docker image pull mongo:8.2.3
docker image pull mongo-express:1.0.2-20-alpine3.19
- 回線を圧迫しないように自宅等での実行に協力ください。
docker image pullコマンドの実行には、回線状況によっては数分から10分程度かかる場合があります。
(プロンプト例)
MongoDB とは、どのようなソフトウェアですか。
mongo-express とは、どのようなソフトウェアですか。
Docker のイメージには
alpineやdookworm、trixieとか名前がついていますが、これらは何を意味していますか。
5 授業時間外学習の指示
🚨本科目は「学修単位科目」であり、1回の講義あたり「4時間相当」の授業時間外学習が求められる科目です🏃
- 次回の講義では「小テスト」を実施しません。
- 課題2 に取り組んでください。