この記事は、セキュリティ資格学習のために、AI(Claude)と共同で作成したコンテンツです。
※間違った解釈がある可能性があります。
- 1 この記事の目的
- 2 📍 結城の新たな標的
- 3 💑 カフェでのひととき
- 4 📖 里見の解説:データベースの基礎
- 5 📖 里見の解説:最新のデータ管理技術
- 6 📖 里見の解説:高度なセキュリティ技術
- 7 📖 里見の解説:データベースの種類
- 8 ⚠️ 結城の攻撃開始
- 9 💑 安堵のひととき
- 10 😤 結城の諦念
- 11 📚 用語まとめ
- 12 🎓 試験対策ポイント
- 13 💡 覚えるコツ
- 14 🎯 実務での応用
この記事の目的
セキュリティの専門用語は、カタカナや略語が多く、初学者にとって非常に取っつきにくいものです。
そこで、専門家じゃなくてもわかるようにストーリー風に構成してみました。
📍 結城の新たな標的
これまでの攻撃が次々と防がれた結城は、新しい攻撃の糸口を探していた。
「ネットワークは厳重に守られてる…でも、データベースはどうかしら」
結城の画面には、メタCの求人情報が表示されている。
「データベース管理者募集…システム構成を見る限り、ユーザー情報、チャットログ、アクセス履歴…すべてデータベースに保存されてる」
「もし、データベースに侵入できれば…山本とお砂糖のプライベートなやり取り、全部見れる」
結城の目が不気味に光った。
「データベースのアクセス権限の設定ミスを狙う。ロールの設定が甘ければ、一般ユーザーなのに管理者権限でアクセスできるかもしれない」
キーボードを叩く音が、静かな部屋に響いた。
「さらに、最近流行りのデータレイクやNoSQLデータベース…新しい技術は設定ミスが多い。そこを狙えば…」
💑 カフェでのひととき
その頃、山本と里見は、メタC内のカフェワールドでゆっくりお茶をしていた。
「里見、最近メタCのデータベースが増強されたって聞いたよ。ユーザーが増えたからかな?」
山本が何気なく話題を振る。
「そうね。でも慎也、データベースってただデータを保存するだけじゃないのよ。誰が、何を、どこまで見られるか、厳密に管理しないと危険なの」
「あ、そうだね…結城に狙われそうだ」
「そう。データベースは情報の宝庫。攻撃者にとっては最高の標的よ。今日は、データベースのセキュリティについて教えるわ」
📖 里見の解説:データベースの基礎
DB(データベース:Database)
「まず、データベースって何か分かる?」
「えっと…データを保存する場所?」
「そう!でも、ただのファイル保存とは違うの」
データベース(DB)とは:
- データを整理して保存する仕組み
- 検索、追加、更新、削除が簡単にできる
- 複数の人が同時にアクセスできる
- データの整合性を保つ
身近な例え:
「図書館を想像して。本をただ山積みにするんじゃなくて、ジャンルごとに整理して、目録があって、誰でも探せる。それがデータベースよ」
「なるほど!確かに、ファイルをフォルダに入れるだけだと、探すの大変だもんね」
ロールの制御(Role-Based Access Control:ロールベースアクセスコントロール)
「データベースで一番大事なのが、誰が何をできるかを決めること。これをロールで管理するの」
ロール(Role)とは:
- ユーザーの役割ごとに権限をまとめたもの
- 「一般ユーザー」「管理者」「閲覧専用」など
- ロールをユーザーに割り当てる
身近な例え:
「学校の役割分担みたいなもの。『生徒』は教室を使える、『先生』は成績をつけられる、『校長先生』は全部の権限を持ってる。一人ひとりに権限を設定するんじゃなくて、役割ごとに決めるの」
ロールの例:
- 一般ユーザー:自分のデータだけ見られる
- サポートスタッフ:ユーザーのデータを見られる(更新は不可)
- 管理者:全データの閲覧・更新・削除が可能
- データベース管理者(DBA):データベースの設定まで変更可能
「ロールを使わないと、100人のユーザーがいたら、100回設定しないといけない。ロールなら『このロールを割り当てる』だけで済むの」
データベースの制約(Constraint:コンストレイント)
「データベースには、間違ったデータが入らないようにするルールがあるの。これを制約って呼ぶわ」
主キー制約(Primary Key Constraint:プライマリーキー・コンストレイント)
意味:各レコード(行)を一意に識別するための値
ルール:
- 絶対に重複しない
- 空(NULL)にできない
- 1つのテーブルに1つだけ
身近な例え:
「学生証番号みたいなもの。同じ番号の学生は絶対にいないし、番号がない学生もいない。これで『誰のデータか』が確実に分かるの」
例:
ユーザーテーブル ---------------------------------- user_id(主キー) | 名前 | 年齢 ---------------------------------- 001 | 山本 | 25 002 | 里見 | 27 003 | 佐藤 | 35
user_idが主キー。絶対に重複しない。
一意性制約(Unique Constraint:ユニーク・コンストレイント)
意味:値が重複してはいけない制約
主キーとの違い:
- 主キー:1つだけ、NULLダメ
- 一意性制約:複数設定可能、NULLは許可される場合がある
身近な例え:
「メールアドレスみたいなもの。同じメールアドレスで2人登録できちゃうとおかしいでしょ?でも、メールアドレスを登録しない(NULL)はOKかもしれない」
例:
ユーザーテーブル --------------------------------------------- user_id | 名前 | email(一意性制約) --------------------------------------------- 001 | 山本 | yamamoto@example.com 002 | 里見 | satomi@example.com 003 | 佐藤 | (NULL)
emailは重複NG、でもNULLはOK。
冗長化制約(NOT NULL Constraint:ノットヌル・コンストレイント)
意味:空の値(NULL)を許さない制約
身近な例え:
「名前の欄が空白だと困るでしょ?『この人誰?』ってなる。だから『名前は必須!』って決めるの」
例:
商品テーブル ------------------------------------ product_id | 商品名(NOT NULL) | 価格 ------------------------------------ 001 | ノートPC | 80000 002 | (エラー!) | 50000 ←商品名がないのでダメ
GRANT文(権限付与:グラント文)
「データベースで権限を与えるときに使うコマンドがGRANT文よ」
GRANT文の基本:
GRANT 権限 ON テーブル名 TO ユーザー名;
Privileges(プリビレッジ:特権・権限):
- SELECT:データを見る権限
- INSERT:データを追加する権限
- UPDATE:データを更新する権限
- DELETE:データを削除する権限
- ALL:すべての権限
身近な例え:
「図書館の利用カードみたいなもの。『一般カード』は本を読むだけ、『司書カード』は本を追加・削除できる」
例:
-- 山本に、ユーザーテーブルの閲覧権限を付与 GRANT SELECT ON users TO yamamoto; -- 佐藤に、すべてのテーブルのすべての権限を付与 GRANT ALL ON *.* TO sato; -- サポートスタッフ・ロールに、閲覧と更新権限を付与 GRANT SELECT, UPDATE ON users TO support_staff;
「逆に、権限を取り消すときはREVOKE文(リボーク)を使うの」
REVOKE SELECT ON users FROM yamamoto;
ロールフォワード(Roll Forward:ロールフォワード)
「データベースが壊れたとき、どうやって復旧するか知ってる?」
「バックアップから戻す…?」
「そう!でも、バックアップを取った後のデータはどうする?」
ロールフォワードとは:
- バックアップを復元した後、更新ログを使って最新状態まで復旧する技術
- 「時間を進める」イメージ
更新前ログと更新後ログ:
- 更新前ログ(Before Image):変更前のデータ
- 更新後ログ(After Image):変更後のデータ
身近な例え:
「作文を書いてたら、パソコンがフリーズ。昨日のバックアップはあるけど、今日書いた部分が消えちゃった!でも、『今日の作業記録』(ログ)があれば、昨日のバックアップに今日の作業を再現できるでしょ?」
復旧の流れ:
1. バックアップを復元(例:午前0時の状態) ↓ 2. 更新ログを再生(午前0時~障害発生時刻まで) ↓ 3. 最新状態まで復旧完了!
例:
【状況】 - 午前0時:バックアップ取得 - 午前9時:ユーザーAが登録(ログ記録) - 午前10時:ユーザーBが更新(ログ記録) - 午前11時:サーバー故障! 【復旧】 1. 午前0時のバックアップを復元 2. 午前9時のログを再生 → ユーザーA登録 3. 午前10時のログを再生 → ユーザーB更新 4. 午前11時直前の状態まで復旧完了!
「逆に、間違った操作を取り消すロールバック(Roll Back)もあるわ。これは『更新前ログ』を使って、時間を戻すの」
📖 里見の解説:最新のデータ管理技術
データレイク(Data Lake:データレイク)
「最近、データレイクって聞いたことない?」
「聞いたことあるけど…湖?」
「そう!データの湖よ」
データレイクとは:
- あらゆるデータをそのまま保存する場所
- 構造化データ(データベースのテーブル)
- 非構造化データ(画像、動画、ログファイル)
- 整理せずに、まず全部貯める
従来のデータベースとの違い:
- データベース:整理された図書館(本はジャンル別に整理)
- データレイク:倉庫(とりあえず全部放り込む)
身近な例え:
「部屋の整理を想像して。『後で整理するから、とりあえず全部この箱に入れておこう』って大きな箱。それがデータレイク。必要になったら取り出して整理する」
メリット:
- どんなデータでも保存できる
- 後から用途を決められる
- AIの学習データに最適
デメリット:
- 管理しないとデータ沼(Data Swamp)になる
- セキュリティ設定が難しい
- 何があるか分からなくなる
データリネージ(Data Lineage:データリネージ)
「データレイクが大きくなると、『このデータ、どこから来たの?』って分からなくなるの。それを追跡する仕組みがデータリネージよ」
データリネージとは:
- データの系譜・履歴を追跡する仕組み
- どこから来て、どう加工されて、どこに行ったか
身近な例え:
「食品のトレーサビリティみたいなもの。このお肉は、どこの牧場で育って、どこで加工されて、どのルートでスーパーに来たか。データリネージも同じで、『このデータは元々どこの誰が作って、どう加工されたか』を追跡するの」
例:
【データの流れ】 メタCのユーザー登録 ↓ アプリケーションサーバー(加工:氏名を分割) ↓ データベース(保存:users テーブル) ↓ データレイク(集約:分析用にコピー) ↓ AI分析(利用:年齢分布を分析)
「データリネージがあれば、『この分析結果、元のデータに間違いがあったらどうなる?』って逆算できるの」
セキュリティ面での重要性:
- 個人情報がどこに流れたか追跡
- 不正アクセスの影響範囲を特定
- GDPR(EU一般データ保護規則)対応
📖 里見の解説:高度なセキュリティ技術
EDR(Endpoint Detection and Response:エンドポイント・ディテクション・アンド・レスポンス)
「データベースサーバーを守る技術で、最近注目されてるのがEDRよ」
EDRとは:
- エンドポイント(PC、サーバー)の異常な動きを検知
- ウイルス対策ソフトより高度
- 攻撃を検知したら自動で対応
従来のウイルス対策ソフトとの違い:
- ウイルス対策ソフト:既知のウイルスをブロック(門番)
- EDR:異常な動きを検知して対応(監視カメラ+警備員)
身近な例え:
「お店の警備を想像して。従来の警備は『指名手配犯が来たら捕まえる』。でもEDRは『怪しい動きをしてる人を監視して、万引きしそうなら声をかける』って感じ」
EDRができること:
- 異常なプロセスの検知
- 不審なファイル操作の監視
- ネットワーク通信の監視
- 攻撃を検知したら自動で隔離
- 詳細なログを記録(フォレンジック)
例:
【攻撃の検知】 通常:データベースサーバーは、データベースソフトだけが動いてる 異常:突然、見慣れないプロセスが起動 EDR:「怪しい!これは攻撃かも」→ 管理者に通知 + プロセスを停止
SOAR(Security Orchestration, Automation and Response:セキュリティ・オーケストレーション・オートメーション・アンド・レスポンス)
「EDRが『異常を検知』するなら、SOARは『その後の対応を自動化』するの」
SOARとは:
- セキュリティ対応を自動化する仕組み
- 複数のセキュリティツールを連携
- 人間の判断を減らして高速対応
身近な例え:
「火災報知器が鳴ったら、自動でスプリンクラーが作動して、消防署に通報して、館内放送が流れる。それが全部自動。SOARも同じで、攻撃を検知したら、自動でファイアウォール設定を変更して、管理者に通知して、ログを保存するの」
SOARの流れ:
1. EDRが異常を検知 ↓ 2. SOARが起動 ↓ 3. 自動で対応を実行 - 該当サーバーをネットワークから隔離 - ファイアウォールで通信遮断 - 管理者にメール + Slack通知 - インシデント管理システムにチケット作成 - ログを自動で保存 ↓ 4. 管理者が詳細調査
メリット:
- 対応が速い(秒単位)
- 人為ミスがない
- 24時間365日対応
- 管理者の負担軽減
IoC(Indicator of Compromise:インディケーター・オブ・コンプロマイズ)
「SOARが『何を見て攻撃と判断するか』の基準がIoCよ」
IoCとは:
- 侵害の痕跡・攻撃の兆候
- 「これがあったら攻撃されてる」という証拠
身近な例え:
「泥棒が入った痕跡みたいなもの。『窓が割れてる』『足跡がある』『金庫がこじ開けられてる』。これがIoC。IoCがあれば『侵入された!』って分かるの」
IoCの例:
- 特定の不正IPアドレスへの通信
- マルウェアのファイルハッシュ値
- 不審なドメイン名へのアクセス
- 異常なログイン時刻・回数
- 特定のファイル名の出現
例:
【IoCの検知】 IoC情報:「IPアドレス 203.0.113.99 は攻撃者のサーバー」 ログ監視:「あ、このIPに通信してる!」 SOAR:「IoCに一致!攻撃だ!」→ 自動遮断
IoC情報の共有:
- 世界中のセキュリティ組織がIoCを共有
- ISAC(前に教えたわね)でも共有
- 「この攻撃、他の会社でも起きてる!」って分かる
CASB(Cloud Access Security Broker:キャスビー)
「データをクラウドに保存する会社が増えてるけど、その通信を監視するのがCASBよ」
CASBとは:
- 企業とクラウドサービスの間で通信を監視
- 不正なアクセスやデータ流出を防ぐ
- 「クラウドの関所」
身近な例え:
「国境の検問所みたいなもの。会社のデータをクラウドに送る前に、『これ、持ち出していいデータ?』『怪しい人じゃない?』ってチェックするの」
CASBができること:
- 可視化:誰が、どのクラウドを、どれだけ使ってるか
- コンプライアンス:機密情報の流出を防ぐ
- 脅威防御:マルウェアのアップロードを防ぐ
- データ保護:暗号化してクラウドに送る
例:
【CASBの動作】
社員:「この顧客リストをGoogle Driveにアップロード」
CASB:「待った!これは機密情報!」
「暗号化してからアップロードします」
「管理者にも通知しました」
なぜ必要?:
- 社員が勝手にクラウドを使う(シャドーIT)
- 個人用クラウドに仕事のファイルを保存
- 退職者がデータを持ち出す
「CASBがあれば、そういう危険を防げるの」
📖 里見の解説:データベースの種類
従来のデータベース:リレーショナルデータベース(RDB)
「今まで説明してたのは、リレーショナルデータベース(RDB)。表(テーブル)形式でデータを保存するタイプよ」
特徴:
- 表形式(行と列)
- SQL言語で操作
- データの整合性が高い
- 銀行、企業の基幹システムで使われる
「でも最近、RDBじゃないNoSQLデータベースが増えてるの。用途に応じて使い分けるのが大事」
KVS(Key-Value Store:キーバリューストア)データベース
KVSとは:
- キー(鍵)とバリュー(値)の組み合わせで保存
- シンプルで超高速
身近な例え:
「ロッカーみたいなもの。『A-001』のロッカーを開けると、中に荷物が入ってる。キーが『A-001』、バリューが『荷物』」
例:
キー | バリュー
--------------------------
user:1001 | {"name":"山本", "age":25}
session:abc | {"login_time":"2025-01-01 10:00"}
cart:yamamoto| ["商品A", "商品B"]
用途:
- セッション管理
- キャッシュ(よく使うデータの一時保存)
- リアルタイムランキング
代表例:Redis、Memcached、Amazon DynamoDB
ドキュメント型データベース(Document Database)
ドキュメント型とは:
- JSON形式でデータを保存
- 1つのドキュメントに複雑なデータを入れられる
- 柔軟な構造
身近な例え:
「履歴書を想像して。1人の履歴書には、名前、住所、職歴、資格…いろんな情報が1枚に入ってる。ドキュメント型も同じで、1人のユーザー情報を1つのドキュメントにまとめるの」
例:
{
"user_id": "1001",
"name": "山本慎也",
"age": 25,
"address": {
"zip": "100-0001",
"city": "東京都",
"street": "千代田区"
},
"hobbies": ["VR", "プログラミング"],
"friends": [
{"name": "里見", "relation": "恋人"},
{"name": "佐藤", "relation": "同僚"}
]
}
「RDBだと、addressやfriendsは別テーブルになるけど、ドキュメント型は1つにまとめられるの」
用途:
- コンテンツ管理システム(CMS)
- ユーザープロファイル
- カタログ・商品情報
代表例:MongoDB、Couchbase、Amazon DocumentDB
カラムファミリー型データベース(Column-Family Database)
カラムファミリー型とは:
- 列(カラム)単位でデータを保存
- 大量のデータを高速に処理
- 分散処理に強い
RDBとの違い:
- RDB:行単位で保存(1人のデータをまとめて保存)
- カラムファミリー型:列単位で保存(全員の「名前」をまとめて保存)
身近な例え:
「クラスの出席簿を想像して。普通は『山本くんの出席状況』を横に見る(行単位)。でもカラムファミリー型は『1月10日の全員の出席』を縦に見る(列単位)」
メリット:
- 特定の列だけ取り出すのが超高速
- 圧縮効率が良い(同じ列は似た値が多い)
用途:
- 時系列データ(株価、ログ)
- IoTセンサーデータ
- 大規模分析
代表例:Apache Cassandra、HBase、Google Bigtable
グラフ型データベース(Graph Database)
グラフ型とは:
- ノード(点)とエッジ(線)でデータを表現
- 関係性を高速に検索
身近な例え:
「SNSの友達関係を想像して。『山本』という人と『里見』という人が『恋人』という関係で繋がってる。これがグラフ型の得意分野」
例:
(山本) --[恋人]--> (里見) (山本) --[友達]--> (佐藤) (里見) --[同僚]--> (佐藤) (結城) --[元恋人]--> (山本)
「『山本の友達の友達は誰?』みたいな複雑な関係を一瞬で検索できるの」
用途:
- SNSの友達推薦
- 不正検知(怪しい取引の関係を追跡)
- ナレッジグラフ
- おすすめ商品(この商品を買った人は、こんな商品も…)
代表例:Neo4j、Amazon Neptune、ArangoDB
データベースの選び方まとめ
| データベース種類 | 特徴 | 向いてる用途 |
|---|---|---|
| RDB | 表形式、整合性重視 | 銀行、会計、基幹システム |
| KVS | シンプル、超高速 | キャッシュ、セッション |
| ドキュメント型 | JSON、柔軟な構造 | CMS、ユーザー情報 |
| カラムファミリー型 | 列単位、大量データ | ログ、IoT、分析 |
| グラフ型 | 関係性、繋がり | SNS、推薦、不正検知 |
「どれが一番いい、じゃなくて、用途に合わせて選ぶのが大事なの」
⚠️ 結城の攻撃開始
その時、佐藤のセキュリティ監視システムがアラートを発した。
「異常なデータベースアクセス検知!EDRが反応しています!」
結城は、メタCの古いバージョンのデータベースに脆弱性を見つけ、不正アクセスを試みていた。
【攻撃の流れ】 1. 結城がSQLインジェクション攻撃を実行 2. ロールの権限設定ミスを突く 3. 一般ユーザー権限で管理者テーブルへアクセス試行
しかし、メタCのセキュリティは結城の予想を超えていた。
防御の流れ:
1. EDRが異常なSQLクエリを検知 ↓ 2. SOARが自動起動 - 該当IPアドレスを遮断 - データベースへのアクセスを一時停止 - 佐藤にSlack通知 ↓ 3. CASBがログを記録 - IoC情報と照合 - 「このIP、過去にも攻撃してる!」 ↓ 4. 佐藤が詳細分析 - データリネージで影響範囲を確認 - 「幸い、データは読まれていない」 ↓ 5. 警察に通報
「完璧な防御…EDR、SOAR、CASB、全部導入されてる…」
結城は、もはや勝ち目がないことを悟った。
💑 安堵のひととき
攻撃が阻止された夜、山本と里見はメタCのプライベートワールドで話していた。
「里見、今日もありがとう。データベースのセキュリティ、すごく奥が深いね」
「うん。ロール、制約、ログ、最新のセキュリティ技術…全部大事なの。どれか1つでも欠けたら、結城に侵入されてたかもしれない」
「EDRとSOARの連携、本当にすごかったね。あれ、秒単位で対応してたよね?」
「そう。人間が判断するより速い。だから最新の攻撃にも対応できるの」
山本が里見の手を握った。
「里見のおかげで、僕もセキュリティのことがすごく分かってきた。NoSQLデータベースの種類とか、初めて知ったよ」
「慎也、本当に理解が速いわ。KVS、ドキュメント型、カラムファミリー型、グラフ型…全部説明できる?」
「うん!KVSはロッカー、ドキュメント型は履歴書、カラムファミリー型は出席簿を縦に見る、グラフ型は友達関係!」
「完璧!100点よ」
里見が微笑んだ。
「ねぇ、里見。結城の攻撃、これで本当に終わりかな?」
「警察も動いてるし、メタCのセキュリティも万全。もう大丈夫よ」
「うん…でも、油断はしないようにするね」
「それでいいの。セキュリティは、継続することが一番大事だから」
二人は夜空を見上げながら、静かな時間を過ごした。
😤 結城の諦念
一方、結城は自室で項垂れていた。
「もう…無理…EDR、SOAR、CASB…全部最新のセキュリティ技術が導入されてる」
画面には、「Access Blocked」「Security Alert」の文字が並んでいた。
「データベースにも入れない…ロールの権限設定も完璧…ログも全部記録されてる」
「IoC情報も共有されて、私のIP、もうブラックリストに載ってる…」
結城の元に、警察からの呼び出し状が届いていた。
「不正アクセス禁止法違反、電子計算機損壊等業務妨害罪…複数の容疑…」
結城の目から、涙がこぼれた。
「山本…里見…お砂糖…許して…でも、もう遅い…」
長い復讐劇は、ついに終わりを迎えた。
📚 用語まとめ
| 用語 | 読み | 意味・用途 |
|---|---|---|
| DB | データベース | データを整理して保存する仕組み。検索、追加、更新、削除が簡単にできる。 |
| ロール | ロール | ユーザーの役割ごとに権限をまとめたもの。「一般ユーザー」「管理者」など。 |
| 主キー制約 | プライマリーキー・コンストレイント | 各レコードを一意に識別する値。重複NG、NULLもNG。 |
| 一意性制約 | ユニーク・コンストレイント | 値が重複してはいけない制約。NULLは許可される場合あり。 |
| 冗長化制約 | ノットヌル・コンストレイント | 空の値(NULL)を許さない制約。必須項目に設定。 |
| GRANT文 | グラント文 | データベースで権限を付与するSQLコマンド。 |
| Privileges | プリビレッジ | 権限・特権。SELECT、INSERT、UPDATE、DELETE、ALLなど。 |
| ロールフォワード | ロールフォワード | バックアップを復元後、更新ログで最新状態まで復旧する技術。時間を進める。 |
| 更新前ログ | コウシンマエログ | 変更前のデータ(Before Image)。ロールバックに使用。 |
| 更新後ログ | コウシンゴログ | 変更後のデータ(After Image)。ロールフォワードに使用。 |
| データレイク | データレイク | あらゆるデータをそのまま保存する場所。構造化・非構造化問わず貯める。 |
| データリネージ | データリネージ | データの系譜・履歴を追跡する仕組み。どこから来て、どう加工されたか。 |
| EDR | イーディーアール | Endpoint Detection and Response。エンドポイントの異常な動きを検知して対応。 |
| SOAR | ソアー | Security Orchestration, Automation and Response。セキュリティ対応を自動化。 |
| IoC | アイオーシー | Indicator of Compromise。侵害の痕跡・攻撃の兆候。 |
| CASB | キャスビー | Cloud Access Security Broker。企業とクラウドの間で通信を監視。 |
| RDB | アールディービー | Relational Database。リレーショナルデータベース。表形式でデータを保存。 |
| NoSQL | ノーエスキューエル | RDBではない新しいタイプのデータベースの総称。 |
| KVSデータベース | ケーブイエスデータベース | Key-Value Store。キーと値の組み合わせで保存。シンプルで超高速。 |
| ドキュメント型 | ドキュメントガタ | JSON形式でデータを保存。柔軟な構造。例:MongoDB |
| カラムファミリー型 | カラムファミリーガタ | 列単位でデータを保存。大量データ処理に強い。例:Cassandra |
| グラフ型 | グラフガタ | ノードとエッジで関係性を表現。SNS、推薦システムに最適。例:Neo4j |
🎓 試験対策ポイント
データベース制約の違い(超重要!)
| 制約 | 重複 | NULL | 個数 |
|---|---|---|---|
| 主キー制約 | ❌ 不可 | ❌ 不可 | 1つだけ |
| 一意性制約 | ❌ 不可 | ⚠️ 場合による | 複数可 |
| NOT NULL制約 | ✅ 可 | ❌ 不可 | 複数可 |
ロールフォワード vs ロールバック
| 操作 | 方向 | 使用ログ | 用途 |
|---|---|---|---|
| ロールフォワード | 時間を進める | 更新後ログ | 障害復旧 |
| ロールバック | 時間を戻す | 更新前ログ | 誤操作の取消 |
セキュリティ技術の役割分担
| 技術 | 役割 | 例え |
|---|---|---|
| EDR | 異常を検知 | 監視カメラ |
| SOAR | 対応を自動化 | 自動スプリンクラー |
| IoC | 攻撃の証拠 | 泥棒の痕跡 |
| CASB | クラウド通信監視 | 国境の検問所 |
NoSQLデータベースの選び方
- 高速なキャッシュが欲しい → KVS
- 柔軟な構造のデータ → ドキュメント型
- 大量の時系列データ → カラムファミリー型
- 関係性が重要 → グラフ型
- 整合性が最優先 → RDB
💡 覚えるコツ
語呂合わせ
データベース制約
「主役は一人、いつもいる」
- 主キー:主役(1つだけ)
- 一意性:一人だけ(重複なし)
- NOT NULL:いつもいる(空ではない)
GRANT文の権限
「セイサクシテ(SIUD)」
- セ:SELECT(見る)
- イ:INSERT(入れる)
- サク:DELETE(削除)
- シテ:UPDATE(更新)
NoSQLの種類
「キード・カラ・グラ」
- キー:KVS(キーバリュー)
- ド:ドキュメント型
- カラ:カラムファミリー型
- グラ:グラフ型
🎯 実務での応用
データベース設計のベストプラクティス
- 最小権限の原則:必要最小限の権限だけ付与
- ロールの活用:個別設定ではなくロールで管理
- 制約の徹底:主キー、一意性、NOT NULLを適切に設定
- ログの保存:更新前・更新後ログを必ず記録
- 定期バックアップ:ロールフォワードの準備
セキュリティ監視の3層防御
- 予防:CASB、ファイアウォール
- 検知:EDR、IoC監視
- 対応:SOAR、インシデントレスポンス
データベース選定の判断基準
| 要件 | 推奨DB | 理由 |
|---|---|---|
| 金融取引 | RDB | 整合性が最優先 |
| セッション管理 | KVS | 高速アクセス |
| CMS | ドキュメント型 | 柔軟な構造 |
| IoTログ | カラムファミリー型 | 大量データ |
| SNS | グラフ型 | 関係性重視 |