収録問題 40問 / 10問ランダム出題
ランダムに出題・即時フィードバック・間違えた問題の復習機能付き
関係データベースで、1件のデータ(実体)を表す横方向のまとまりはどれですか?
答え: 行(レコード/タプル)
関係データベースの表は行(レコード)と列(属性)で構成され、1行が1件のデータを表します。
関係データベースで、各行を一意に識別するために定める列(の組)はどれですか?
答え: 主キー
主キーは一意性とNULL不可(実体保全性)を満たし、各行を一意に識別します。
他の表の主キーを参照し、表間の関連と整合性を保つために用いる列はどれですか?
答え: 外部キー
外部キーは他表の主キーを参照し、参照整合性(存在しない値を参照しない)を保ちます。
繰り返し項目(複数値)を排除し、各セルが単一の値を持つようにした正規形はどれですか?
答え: 第1正規形
第1正規形は繰り返し項目をなくし、各属性が単一値を持つ状態にします。正規化の出発点です。
第2正規形にするために除去するのは、どのような関数従属ですか?
答え: 主キーの一部にのみ依存する部分関数従属
第2正規形は第1正規形を満たした上で、複合主キーの一部にのみ依存する部分関数従属を除去します。
第3正規形にするために除去するのは、どのような関数従属ですか?
答え: 非キー属性が別の非キー属性に依存する推移的関数従属
第3正規形は第2正規形を満たした上で、非キー属性間の推移的関数従属を除去します。
SQLで、表から条件に合致する行を取り出すために使う基本的な文はどれですか?
答え: SELECT 〜 WHERE
SELECT文で列を指定し、WHERE句で条件を指定して行を抽出します。CREATEは定義、GRANTは権限付与です。
複数の表を共通の列で関連付けて1つの結果にまとめるSQLの操作はどれですか?
答え: 結合(JOIN)
JOINは複数表を共通列で関連付けて結合します。内部結合は両表で一致する行のみを返します。
SQLで、特定の列の値ごとにグループ化して合計や件数を集計する句はどれですか?
答え: GROUP BY
GROUP BYは指定列ごとに行をまとめ、SUMやCOUNTなどの集約関数と組み合わせて集計します。
インデックスを作成する主な目的はどれですか?
答え: 検索(参照)を高速化する
インデックスは検索を高速化しますが、更新時にはインデックス保守のコストが増え、容量も増えます。
トランザクションのACID特性のうち「原子性」を保証する操作の組合せはどれですか?
答え: コミットとロールバック
原子性は全実行か全取消を保証します。正常時はコミットで確定、異常時はロールバックで取り消します。
トランザクションのACID特性のうち「独立性(分離性)」の説明として適切なものはどれですか?
答え: 並行実行されるトランザクションが互いに影響しないこと
独立性は同時実行されるトランザクションが互いに干渉しないことを保証します。
複数トランザクションが互いに相手のロック解放を待ち続け、処理が進まなくなる状態はどれですか?
答え: デッドロック
デッドロックは互いのロック解放を待ち合い処理が停止する状態で、検知して一方を強制終了するなどで解消します。
複数の利用者が同じデータを同時に更新しても矛盾が起きないよう制御する仕組みはどれですか?
答え: 排他制御(ロック)
排他制御はロックなどで同時更新を調整し、データの一貫性を保ちます。共有ロックと専有ロックがあります。
実表に基づいて定義され、利用者には表のように見える仮想的な表はどれですか?
答え: ビュー
ビューは問合せ結果を仮想表として提供し、複雑な参照の簡略化やアクセス範囲の限定に使えます。
特定の表の更新などをきっかけに、自動的に実行される処理はどれですか?
答え: トリガー
トリガーはINSERTやUPDATEなどのイベントを契機に自動実行され、整合性維持やログ記録に使われます。
データベース設計で、実体(エンティティ)とその関連を図で表現する手法はどれですか?
答え: E-R図(実体関連図)
E-R図は実体・属性・関連を図示し、概念データモデルの設計に用いられます。
障害発生時に、ログを用いてコミット済みの更新を再現し、データを復旧する処理はどれですか?
答え: ロールフォワード(前進復帰)
ロールフォワードはバックアップにログのコミット済み更新を反映して復旧します。未完了処理の取消はロールバックです。
分散データベースで、複数サイトの更新を「全コミットか全ロールバック」に統一する手順はどれですか?
答え: 2相コミット(2フェーズコミット)
2相コミットは準備フェーズで合意を取り、コミットフェーズで全サイトを一斉に確定/取消し、分散環境の原子性を保ちます。
大量データの集計・分析を目的に、複数システムのデータを統合して蓄積する仕組みはどれですか?
答え: データウェアハウス
データウェアハウスは分析目的でデータを統合・蓄積し、意思決定支援に用いられます。
関係データベースとは異なり、固定スキーマに縛られず大規模分散に向くデータベースの総称はどれですか?
答え: NoSQL
NoSQLはキーバリューや文書型など柔軟なデータモデルを持ち、大規模・分散・非定型データに向きます。
候補キーの説明として適切なものはどれですか?
答え: 各行を一意に識別できる、主キーになり得る列(の組)
候補キーは一意性を満たし主キーになり得る列(の組)です。選ばれなかった候補キーは代替キーと呼ばれます。
SQLで列にNULLが入っているかを判定するために用いる条件はどれですか?
答え: IS NULL
NULLは未知・不在を表す特別な状態で、比較演算子では判定できません。IS NULL/IS NOT NULLを使います。
正規化を進めることの主な利点はどれですか?
答え: データの重複を減らし、更新時の矛盾を防ぐ
正規化は重複を排除して更新時異常を防ぎます。一方で結合が増え検索性能のために非正規化することもあります。
実体(エンティティ)間の「1対多」の関連の例として適切なものはどれですか?
答え: 1人の顧客が複数の注文を持つ
「1人の顧客が複数の注文を持つ」は1対多の典型です。多対多は中間表で1対多2つに分解して表現します。
可用性向上や負荷分散のため、データベースの複製を別サーバに保持・同期する仕組みはどれですか?
答え: レプリケーション
レプリケーションはデータベースの複製を同期し、参照負荷の分散や障害時の可用性向上に役立ちます。
DBに保存した一連の処理をまとめて呼び出せるようにした、あらかじめ定義された手続きはどれですか?
答え: ストアドプロシージャ
ストアドプロシージャは処理をDB内に定義して呼び出せるようにし、通信回数の削減や処理の共通化に役立ちます。
SQLで取り出した結果を、指定した列の値で昇順や降順に並べ替える句はどれですか?
答え: ORDER BY
ORDER BYは結果を指定列で並べ替えます。GROUP BYは集計のグループ化、HAVINGは集計後の絞り込みです。
大規模な注文テーブルで、注文日と顧客IDを条件にした検索が頻繁に遅い。最初に検討すべき対策として適切なものはどれですか?
答え: 検索条件に合う複合インデックスを設計し、実行計画で効果を確認する
検索性能は、条件、結合、並び順に合うインデックスと実行計画の確認が重要です。インデックスは読み取りを速くできますが、更新コストも増えるため設計が必要です。
トランザクション分離レベルで、他トランザクションがまだコミットしていない更新を読めてしまう現象はどれですか?
答え: ダーティリード
ダーティリードは未コミットデータを読んでしまう現象です。後でロールバックされる値を基に処理すると、整合性が崩れる可能性があります。
同じ集計条件で再実行したとき、他トランザクションの行追加により結果行数が変わる現象はどれですか?
答え: ファントムリード
ファントムリードは、同じ検索条件でも他トランザクションの挿入・削除により該当行集合が変わる現象です。分離レベルの設計で考慮します。
二つのトランザクションが互いに相手のロック解放を待ち続け、処理が進まない状態はどれですか?
答え: デッドロック
デッドロックは、複数の処理が互いに必要な資源を保持し合い、待ち状態から抜けられない状態です。DBMSは検出して一方を中断することがあります。
表を年月や範囲で分割し、検索や保守の対象を絞り込みやすくする設計はどれですか?
答え: パーティショニング
パーティショニングは大きな表を範囲、リスト、ハッシュなどで物理的・論理的に分割する設計です。検索範囲の限定や古いデータの保守に役立ちます。
本番DBのバックアップ設計で、RPOを小さくしたい。最も関係が深い設計はどれですか?
答え: バックアップ頻度やトランザクションログ取得間隔を短くする
RPOはどの時点までデータを戻せる必要があるかを示します。小さくするには、ログ取得や差分・増分バックアップの間隔を短くする設計が重要です。
個人情報を含む列を、権限のない利用者には一部伏字で見せたい。適切な対策はどれですか?
答え: 列マスキングやビューで表示内容を制御する
機微データは、必要最小限の権限、ビュー、列マスキング、監査ログなどを組み合わせて保護します。用途に応じて暗号化も検討します。
データウェアハウス向けに、事実表とディメンション表で分析しやすくする代表的なモデリングはどれですか?
答え: スタースキーマ
スタースキーマは、売上などの事実表を中心に、日付、商品、顧客などのディメンション表を配置する分析向けの設計です。
OLTPシステムの特徴として最も適切なものはどれですか?
答え: 多数の短い取引を高い整合性で処理する
OLTPは受注、決済、在庫更新など、多数の短いトランザクションを高い整合性と応答性で処理する用途に向きます。
SQLインジェクション対策として、アプリケーションがDBへ問い合わせる際に最も基本的な実装はどれですか?
答え: プレースホルダを使ったプリペアドステートメントで値をバインドする
SQLインジェクション対策では、SQL構文と値を分離するプリペアドステートメントが基本です。入力検証や最小権限も併せて実施します。
外部キー制約を設定する主な目的として最も適切なものはどれですか?
答え: 存在しない親行を参照する子行を防ぎ、参照整合性を保つ
外部キー制約は、子表の値が親表の主キーなどに存在することを保証し、孤児レコードの発生を防ぎます。
運用中のDBでスロークエリを改善する際、最初に行うべき調査として適切なものはどれですか?
答え: 実行計画、統計情報、読み取り行数、待機イベントを確認する
スロークエリ改善では、実行計画と実測値を確認し、インデックス不足、統計情報の古さ、結合順序、I/O待ちなどを切り分けます。