チョムリアップスオ
私はカンボジアでITを教えているエンジニアです。
職業訓練校のICT学科の授業の改善サポートをする要請で、海外協力隊として活動しています。
今回は、ICT学科の先生向けにDBMS講座をして欲しいと依頼された際に、定めた講座の目標と講座で扱った内容について書きたいと思います。エンジニアを目指している方や新人エンジニアさんのお役に立てれば嬉しいです。
Let's DBMS講座!
講座の目標
職業訓練校なので、生徒には就職後、アプリケーション開発者としてDBMSを使える知識や技術をつけて欲しいという思いがありました。
ですので今回の講座では、「開発業務でDBMSを使うための指導ができる」ことを目標としました。
講座の目次
自分の16年間のシステムエンジニアとしての経験とChatGPTの力を借りて、以下のようなコンテンツにしました。この内容を一通りしっかり学べば、即戦力がつくはずだと思っています。
■ はじめに(データベースの全体像を見てみよう)
■ なぜ DBMS を使うのか?
- データベースとは? DBMS とは?
・DBMS を通してデータベースを操作できる
- データベースと DBMS を使う理由
* データベースの役割
・データを効率的に管理・検索する
・データを有効に活用する
・情報をバックアップする
* DBMS の役割
・データ制約(Data Constraints)
・不正アクセスからデータを守る
・ACID 特性(Atomicity / Consistency / Isolation / Durability)に従ってデータを制御し、並行アクセスを可能にする
・データベースの安定運用と信頼性を確保する
- データベースの種類と代表的な DBMS
・RDB、NoSQL(本講座では主に RDB を扱う)
・代表的な DBMS 製品の紹介
■ RDB ではデータがどのように入力されるのか?
- スキーマ、テーブル、カラム、行、フィールド …
■ データをどのように入力・利用するのか?
- SQL 文を使って操作する
■ DB を使うために必要なこと
- データベース設計
* 概念設計(Conceptual Design)
・エンティティとその関係、キー、外部キー
* 論理設計(Logical Design)
・正規化
* 物理設計(Physical Design)
・データ型、容量の決定
・性能を考慮した正規化の見直しや分割
- 運用(Operation:DB 利用時の問題対応)
・バックアップ
・障害からの復旧
・チューニング
■ DBMS の選定方法
■ DBMS のインストール
■ データベース設計
- 概念設計(ER 図)
- 論理設計(正規化 / 第1正規形〜第3正規形)
- 非正規化と、物理設計における現実的な折り合い
■ データベース操作
- データベース作成・管理のための SQL
- テーブル作成・管理のための SQL
- SQL のデータ操作(DML)
- データ抽出・分析・活用のための SQL
- 条件、並び替え、グループ化
- JOIN(テーブル結合)
- サブクエリ、ビュー
■ SQL の高度な機能
- ストアドプロシージャ
- トリガー
■ トランザクション管理
- トランザクションの概念
- ACID 特性
- ロック、デッドロック、分離レベル
■ データベースの改善
■ パフォーマンスとインデックス
- 適切なインデックス設計
- クエリプランとチューニング(EXPLAIN)
- 正規化しすぎることの落とし穴
■ セキュリティとアクセス制御
- ユーザーとロール
- SQL インジェクション
■ トラブルへの備えと対応
■ バックアップ
■ リストア
■ リカバリ
チョムリアップリア
いかがでしたでしょうか。
生徒に指導するための知識として、まんべんなく洗い出したため、先生たちが思っているよりも内容が盛りだくさんになってしまったと思います。
現在はデータベースについて、Accessでしか教えていないような話を聞いているので、生徒たちのPCで実際に演習できるよう、 SQLite3 の導入の仕方も共有しようかなと思っています。
ではまた!