階層型・ネットワーク型・関係型と関係代数を完全整理
データモデルは、現実のデータ構造を形式的に表現するための概念的な枠組み。DB設計の土台となり、試験ではモデルの種類と特徴の比較が頻出。
| モデル | 構造 | 代表DBMS | 特徴・試験ポイント |
|---|---|---|---|
| 階層型 | 木構造(親子の1対多) | IMS(IBM) | 親ノードから子へのパスが1本のみ。多対多不可。 |
| ネットワーク型 | グラフ構造(ポインタで接続) | CODASYL準拠 | 多対多を直接表現可能。ポインタが複雑になる。 |
| 関係型(リレーショナル) | 2次元表(テーブル) | Oracle, MySQL, PostgreSQL | 集合演算・SQL による柔軟な問い合わせ。現在の主流。 |
| 関係モデル用語 | SQLでの呼び方 |
|---|---|
| 関係(リレーション) | テーブル |
| タプル | 行(レコード) |
| 属性 | 列(カラム) |
| ドメイン | データ型+制約 |
関係モデルでは集合演算と関係固有演算を組み合わせてデータを操作する。SQLのSELECT文はこれらの演算を表現している。
| 演算 | SQL対応 | 説明 |
|---|---|---|
| 選択(σ) | WHERE句 | 条件を満たす行を抽出 |
| 射影(π) | SELECT列リスト | 特定の列のみ取り出す |
| 結合(⋈) | JOIN | 共通属性で2テーブルを接合 |
| 和(∪) | UNION | 2つの関係の和集合 |
| 差(−) | EXCEPT | 一方にしかない行 |
| 積(×) | CROSS JOIN | 直積(全組み合わせ) |
| 種類 | データ構造 | 用途例 |
|---|---|---|
| キー・バリュー型 | KVペア | セッション管理、キャッシュ(Redis) |
| ドキュメント型 | JSON/BSON | コンテンツ管理(MongoDB) |
| カラム型 | 列ファミリー | 大規模分析(Cassandra) |
| グラフ型 | ノード・エッジ | SNS・推薦エンジン(Neo4j) |
読了ボタンを押すとトップページの進捗に反映されます