この基本情報技術者 用語集(データベース・前編)では、シラバスのデータベース分野のうち、基礎概念・関係モデル・データベース設計(正規化・E-R図)・SQLの基本までをまとめています。具体例も添えているため、試験対策と実務の両方に役立ちます。後編1(トランザクション)・後編2(運用・応用)もあわせてご覧ください。
この基本情報技術者 用語集は試験範囲を網羅しているため、学習の辞書としてブックマークしておくと便利です。下の検索ボックスやカテゴリタブを使うと、目的の用語を素早く見つけられます。
0 件の用語を表示中
データベース方式・基礎 ― 基本情報技術者 用語集
データベースの基礎は、基本情報技術者試験で必出の分野です。したがって、ここではDBの基本概念、データモデル、関係モデルの基本までを順に解説します。また、関係演算の操作も整理しておきましょう。
データベースの基本概念
まず、データベースの基本概念を確認します。たとえば、DBMSはデータベースを管理するソフトウェアです。さらに、データ独立性や3層スキーマも基本情報技術者試験で頻出です。
- データベース(DB)
- 関連するデータを整理・統合して蓄積し、複数の利用者やプログラムから共有利用できるようにしたデータの集まり。 例:顧客DB、商品DB、図書館の蔵書DB
- データベース管理システム(DBMS)
- データベースを構築・運用するソフトウェア。データ定義、操作、整合性維持、セキュリティなどを提供。 例:MySQL、PostgreSQL、Oracle Database、SQL Server
- スキーマ
- データベースの構造を定義したもの。外部・概念・内部の3層がある。 例:テーブルの列名・データ型・制約の定義
- 3層スキーマ
- 外部スキーマ(ユーザ視点)、概念スキーマ(論理構造)、内部スキーマ(物理格納)の3層構造。データの独立性を確保。 例:物理ストレージを変えても外部スキーマは影響を受けない
- データ独立性
- データの物理的な格納方法と論理的な構造を切り離し、片方の変更が他方に影響しない性質。 例:HDDからSSDに変更してもアプリ修正は不要
- データディクショナリ
- データベースの構造情報(テーブル、列、制約など)を格納した辞書。メタデータの管理に使う。 例:「customer表にはid・name・emailがある」という情報を保持
データベースのモデル
次に、データベースのモデルを見ていきます。たとえば、関係モデル・階層モデル・ネットワークモデルなど複数の方式があります。また、NoSQLなど近年の新しいモデルも重要です。
- 階層型データベース
- データを木構造で表現する古典的なDBモデル。親子関係が1対多に限定される。 例:IBMのIMS、組織図のような構造
- 網型データベース
- データ間の関係を網目状に表現するDBモデル。多対多の関係を表せる。 例:CODASYL型DB、古いメインフレームで使用
- 関係データベース(RDB)
- データを表(テーブル)形式で管理するモデル。現在最も普及している。 例:Oracle、MySQL、PostgreSQL
- オブジェクト指向データベース
- データをオブジェクトとして格納するDB。継承や多態性をDBレベルで扱える。 例:複雑な構造を持つCAD、マルチメディアデータの管理
- NoSQLデータベース
- RDB以外の様々なDBの総称。スケーラビリティや柔軟性が高い。 例:MongoDB、Cassandra、Redis、Neo4j
- キーバリュー型
- キーと値のペアでデータを格納する単純な構造のNoSQL。 例:Redis、Amazon DynamoDB
- ドキュメント型
- JSONなどの文書形式でデータを格納するNoSQL。柔軟なスキーマが特徴。 例:MongoDB、CouchDB
- カラム指向型
- 列単位でデータを格納するDB。大規模な分析処理に強い。 例:Cassandra、HBase、Amazon Redshift
- グラフ型
- ノードと関係でデータを表現するNoSQL。SNSの友達関係などに最適。 例:Neo4j、Amazon Neptune
関係モデルの基本
続いて、関係モデルの基本を確認します。たとえば、テーブルは行(タプル)と列(属性)で構成されます。さらに、主キーや外部キーの概念も基本情報技術者試験で必須です。
- 関係(リレーション)
- 関係モデルにおける表に相当する概念。行と列で構成される。 例:「社員表」はリレーションの一例
- テーブル(表)
- RDBで2次元の表形式で表されたデータの集合体。 例:商品テーブル、注文テーブル
- 行(タプル、レコード)
- テーブルの1件分のデータ。 例:社員表の「田中さんの1件の情報」
- 列(属性、カラム、フィールド)
- テーブルの項目。データ型を持つ。 例:社員ID、氏名、入社日
- 定義域(ドメイン)
- 列が取りうる値の範囲。 例:「年齢」列のドメインは0〜150の整数
- 主キー(プライマリキー)
- 表の各行を一意に識別する列。NULL不可で重複も不可。 例:社員番号、顧客ID
- 候補キー
- 主キーになりうる属性の組。1つの表に複数存在しうる。 例:社員番号とマイナンバーがそれぞれ候補キー
- 外部キー
- 他の表の主キーを参照する列。表どうしの関連を表現する。 例:注文表の「顧客ID」が顧客表の主キーを参照
- 複合キー
- 2つ以上の列を組み合わせた主キー。 例:「学生ID+科目ID」で成績表の行を識別
- NULL
- 値が存在しないことを示す特殊な状態。0や空文字とは区別される。 例:未入力の電話番号欄をNULLで保持
関係演算
さらに、関係演算の操作を見ていきます。たとえば、選択・射影・結合は基本演算です。また、和・差・積などの集合演算も理解しておきましょう。
- 射影(プロジェクション)
- 表から特定の列だけを取り出す演算。 例:社員表から「氏名」と「部署」だけを取り出す
- 選択(セレクション)
- 表から条件を満たす行だけを取り出す演算。 例:社員表から「年齢30歳以上」の行を抽出
- 結合(ジョイン)
- 2つの表を共通する列で結合する演算。 例:社員表と部署表を「部署コード」で結合し、社員に部署名を付与
- 和集合
- 2つの表の行を合わせた集合(重複は除く)。 例:東京支店と大阪支店の社員リストを統合
- 積集合
- 2つの表に共通する行の集合。 例:両方の支店に所属する社員を抽出
- 差集合
- 一方の表にあって他方にない行の集合。 例:東京支店にいるが大阪支店にいない社員
- 直積
- 2つの表のすべての行の組合せ。 例:3行×2行の直積は6行になる
データベース設計 ― 基本情報技術者 用語集
データベース設計は、品質の高いシステムを作るための重要な工程です。とくに、E-R図と正規化は基本情報技術者試験で頻出です。また、参照整合性などの制約も理解しておきましょう。
概念設計(E-R図)
まず、E-R図による概念設計を確認します。たとえば、エンティティ・属性・関連で対象を表現します。さらに、カーディナリティの種類も基本情報技術者試験で頻出です。
- E-R図(実体関連図)
- エンティティ(実体)とリレーションシップ(関連)でデータ構造を図式化する手法。 例:「顧客」「注文」「商品」を四角形と線で結ぶ
- エンティティ(実体)
- 管理対象となるモノやコト。表に対応する。 例:顧客、商品、注文、社員
- リレーションシップ(関連)
- エンティティ間のつながり。 例:顧客が注文する、社員が部署に所属する
- 属性
- エンティティが持つ性質や情報項目。 例:顧客エンティティの「氏名」「住所」「電話番号」
- カーディナリティ(多重度)
- 関連の対応関係を表す数。1対1、1対多、多対多がある。 例:1人の顧客が複数の注文を持つ→1対多
- 1対多
- 一方のエンティティが他方の複数と関連する関係。 例:1つの部署に複数の社員が所属
- 多対多
- 互いに複数ずつ関連する関係。中間テーブルで実装される。 例:学生と科目(1人が複数科目、1科目を複数人が受講)
正規化
次に、正規化のステップを見ていきます。たとえば、第1正規形から第3正規形までが基本です。また、各正規形の条件を順に理解することが重要です。
- 正規化
- データの重複や矛盾を避けるため、表を適切に分割する設計手法。 例:1つの表を、関連の薄い情報ごとに複数の表に分ける
- 非正規形
- 1つのセルに複数の値が入っているような未整理の表。繰り返し項目を含む。 例:1行に「商品1、商品2、商品3」と複数値が入っている表
- 第1正規形
- 各セルに1つの値だけが入る状態。繰り返し項目を排除した形。 例:商品名を別行に分割し、1セル1値にする
- 第2正規形
- 第1正規形を満たし、かつ主キーの一部だけに依存する項目(部分関数従属)を排除した形。 例:「注文ID+商品ID」が主キーの表から、商品名(商品IDのみに依存)を分離
- 第3正規形
- 第2正規形を満たし、かつ主キー以外の項目間の関数従属(推移的関数従属)を排除した形。 例:社員表の「部署コード→部署名」を別表に分離
- ボイス・コッド正規形(BCNF)
- 第3正規形をさらに厳密にした形。すべての関数従属の左辺が候補キーであること。 例:複数の候補キーを持つ複雑な依存関係を解消
- 関数従属
- ある属性の値が決まれば別の属性の値が決まる関係。「A→B」と表す。 例:社員ID→氏名(社員IDが決まれば氏名が決まる)
- 部分関数従属
- 主キーの一部だけに依存する関数従属。 例:複合キー「注文ID+商品ID」のうち、商品IDだけで商品名が決まる
- 推移的関数従属
- A→B、B→Cという関係から、A→Cが導かれる関係。 例:社員ID→部署コード→部署名
- 非正規化(逆正規化)
- 性能向上のために意図的に正規化を緩める設計。読取り処理を高速化する目的。 例:頻繁にJOINする表を1つに統合してクエリを高速化
制約・参照整合性
続いて、データベースの制約を確認します。たとえば、NOT NULL・UNIQUE・CHECKなど様々な制約があります。さらに、参照整合性は外部キーで保証されます。
- 制約
- データの整合性を保つためのルール。NOT NULL、UNIQUE、CHECKなどがある。 例:「年齢は0以上」「メールアドレスはユニーク」
- NOT NULL制約
- 列にNULL値の格納を許さない制約。 例:氏名列にNULLを禁止して必須入力にする
- UNIQUE制約
- 列の値の重複を許さない制約。 例:メールアドレス列を全顧客で一意にする
- CHECK制約
- 列の値が特定の条件を満たすことを保証する制約。 例:CHECK (price > 0) で価格を正に限定
- 参照整合性制約
- 外部キーが参照する主キーが必ず存在することを保証する制約。 例:存在しない顧客IDの注文は登録できない
- カスケード削除
- 親レコードを削除すると関連する子レコードも自動削除される動作。 例:顧客削除時にその顧客の注文も全削除
- ドメイン制約
- 列の取りうる値の範囲を制限する制約。 例:性別列を「男」「女」のいずれかに限定
SQL ― 基本情報技術者 用語集
SQLは、リレーショナルデータベースを操作する標準言語です。とくに、SELECT文の使い方、結合、集計関数は基本情報技術者試験で頻出です。また、副問合せやビューも押さえておきましょう。
SQLの基本
まず、SQLの基本的な構文を確認します。たとえば、SQLは大きくDDL・DML・DCLに分類されます。また、各分類の役割を理解しておきましょう。
- SQL
- Structured Query Language。RDBを操作する標準的な問合せ言語。 例:SELECT, INSERT, UPDATE, DELETEなどの命令
- DDL
- Data Definition Language。データ定義言語。表や索引の作成・削除を行う。
例:
CREATE TABLE,DROP TABLE,ALTER TABLE - DML
- Data Manipulation Language。データ操作言語。データの取得・追加・更新・削除。
例:
SELECT,INSERT,UPDATE,DELETE - DCL
- Data Control Language。データ制御言語。アクセス権限やトランザクション制御。
例:
GRANT,REVOKE,COMMIT,ROLLBACK
データ定義(DDL)
次に、データ定義言語DDLを見ていきます。たとえば、CREATE文でテーブルを作成し、ALTER文で変更します。さらに、DROP文で削除する一連の操作も基本情報技術者試験で頻出です。
- CREATE TABLE
- 新しいテーブルを作成するSQL文。
例:
CREATE TABLE 社員 (id INT PRIMARY KEY, 名前 VARCHAR(50)) - ALTER TABLE
- 既存テーブルの構造を変更するSQL文。列の追加・削除・変更を行う。
例:
ALTER TABLE 社員 ADD 部署 VARCHAR(20) - DROP TABLE
- テーブルそのものを削除するSQL文。データもまとめて消える。
例:
DROP TABLE 一時データ - TRUNCATE
- テーブル構造は残してデータだけ全削除するSQL文。DELETEより高速。
例:
TRUNCATE TABLE ログ - CREATE INDEX
- 索引を作成するSQL文。検索性能向上のために使う。
例:
CREATE INDEX idx_email ON 顧客(email)
データ操作(DML)
続いて、データ操作言語DMLを確認します。たとえば、SELECT・INSERT・UPDATE・DELETEの4つが基本です。また、WHERE句やORDER BY句との組合せも重要です。
- SELECT
- 表からデータを取り出すSQL文。最もよく使う。
例:
SELECT 氏名 FROM 社員 WHERE 部署 = '営業' - INSERT
- 表にデータを追加するSQL文。
例:
INSERT INTO 社員 VALUES (1, '田中', '営業') - UPDATE
- 表のデータを更新するSQL文。WHERE句で対象を絞ることが多い。
例:
UPDATE 社員 SET 部署 = '人事' WHERE id = 1 - DELETE
- 表からデータを削除するSQL文。
例:
DELETE FROM 社員 WHERE 退職フラグ = 1 - WHERE句
- SQLで条件を指定する句。検索や更新の対象行を絞り込む。
例:
WHERE 年齢 >= 20 AND 性別 = '女' - ORDER BY句
- 結果を並べ替える句。ASC(昇順)またはDESC(降順)を指定。
例:
ORDER BY 入社日 DESC - GROUP BY句
- 同じ値を持つ行をグループ化する句。集計関数と組み合わせて使う。
例:
SELECT 部署, COUNT(*) FROM 社員 GROUP BY 部署 - HAVING句
- GROUP BYの結果に対する条件指定。WHERE句より後で評価される。
例:
GROUP BY 部署 HAVING COUNT(*) >= 10 - DISTINCT
- 重複した行を除外して結果を返す指定。
例:
SELECT DISTINCT 部署 FROM 社員 - LIKE
- パターン一致による検索。「%」と「_」をワイルドカードに使う。
例:
WHERE 氏名 LIKE '田%'で田で始まる名前を検索 - BETWEEN
- 値の範囲を指定する条件式。
例:
WHERE 年齢 BETWEEN 20 AND 30 - IN
- 列の値が指定リストのいずれかに一致するかを判定する条件式。
例:
WHERE 部署 IN ('営業', '人事', '総務')
結合・集計関数
さらに、テーブル結合と集計関数を見ていきます。たとえば、JOINには内部結合と外部結合があります。また、COUNT・SUM・AVGなどの集計関数も基本情報技術者試験で頻出です。
- 内部結合(INNER JOIN)
- 両方の表に対応する行があるときだけ結合する方式。 例:注文と顧客を顧客IDで結合し、顧客情報のある注文のみ取得
- 外部結合(OUTER JOIN)
- 片方の表に対応する行がなくても結合する方式。LEFT/RIGHT/FULLがある。 例:注文のない顧客もリストに含めるLEFT OUTER JOIN
- LEFT JOIN
- 左の表のすべての行を残し、右の表から対応する行を結合する。 例:全顧客と注文を結合、注文なし顧客はNULLで表示
- 自己結合(セルフジョイン)
- 同じ表どうしを結合する方式。階層構造を表現する際などに使う。 例:社員表で上司と部下の関係を表示
- クロス結合
- 両表の全行を組み合わせる直積結合。 例:3行×4行のクロス結合で12行の結果
- 集計関数
- 複数行の値から1つの値を返す関数。
例:
SUM,AVG,COUNT,MAX,MIN - COUNT
- 行数を数える集計関数。
例:
SELECT COUNT(*) FROM 注文で注文件数 - SUM
- 合計を求める集計関数。
例:
SELECT SUM(金額) FROM 注文で売上合計 - AVG
- 平均を求める集計関数。
例:
SELECT AVG(年齢) FROM 社員 - MAX / MIN
- 最大値・最小値を求める集計関数。
例:
SELECT MAX(給与), MIN(給与) FROM 社員
副問合せ・ビュー
次に、副問合せとビューの使い方を確認します。たとえば、副問合せはSQLの中にSQLを書く高度な技法です。さらに、ビューによる仮想テーブルも実務で広く使われます。
- 副問合せ(サブクエリ)
- SQL文の中にネストされた別のSELECT文。
例:
SELECT * FROM 社員 WHERE 部署 IN (SELECT 部署 FROM ...) - 相関副問合せ
- 外側のクエリの値を参照する副問合せ。行ごとに評価される。 例:各部署の平均給与より高い社員を抽出
- EXISTS
- 副問合せの結果が1行でもあるかを判定する演算子。
例:注文のある顧客のみ抽出
WHERE EXISTS (...) - ビュー
- 実体を持たない仮想的な表。SELECT文の結果に名前を付けて再利用する。
例:
CREATE VIEW 営業社員 AS SELECT * FROM 社員 WHERE 部署 = '営業' - マテリアライズドビュー
- 結果を物理的に保持するビュー。集計済みのデータを高速に取得できる。 例:日次集計結果を保持して翌日まで再計算不要にする
権限管理
最後に、SQLによる権限管理を見ていきます。たとえば、GRANTで権限付与、REVOKEで権限剥奪を行います。また、ロールによる権限のグループ化も基本情報技術者試験で問われます。
- GRANT
- ユーザに権限を付与するSQL文。
例:
GRANT SELECT ON 社員 TO user1 - REVOKE
- ユーザの権限を取り消すSQL文。
例:
REVOKE INSERT ON 社員 FROM user1 - ロール
- 権限をまとめたグループ。複数のユーザに一括付与できる。 例:「管理者ロール」を作成して必要なユーザに付与
該当する用語が見つかりませんでした。
関連の基本情報技術者 用語集
ほかの分野もあわせて学習すると、試験範囲を効率よくカバーできます。各分野の基本情報技術者 用語集は以下からアクセスできます。
試験の詳細や最新情報はIPA公式サイト(基本情報技術者試験)をご確認ください。
コメント