上級
STAGE 1
110問目 • 10
  • Q1

    ウィンドウ関数の基本構文として正しいものはどれですか?

    ANSWER
    関数() OVER (PARTITION BY ... ORDER BY ...)
    クリックして解説を表示
    EXPLANATION

    ウィンドウ関数は関数() OVER (PARTITION BY ... ORDER BY ...)の形式で使用します。OVER句がウィンドウ関数の特徴です。

  • Q2

    ROW_NUMBER()関数の役割として正しいものはどれですか?

    ANSWER
    パーティション内の各行に一意の連番を割り当てる
    クリックして解説を表示
    EXPLANATION

    ROW_NUMBER()は、パーティション内の各行に一意の連続した番号を割り当てます。同じ値でも異なる番号が割り当てられます。

  • Q3

    次のSQLの結果として、同じdepartment内での給与順位はどのようになりますか?

    SELECT name, department, salary,
      ROW_NUMBER() OVER (PARTITION BY department ORDER BY salary DESC) AS rank
    FROM employees;
    ANSWER
    部署ごとに給与の高い順で1から連番が振られる
    クリックして解説を表示
    EXPLANATION

    PARTITION BY departmentにより部署ごとにグループ化され、ORDER BY salary DESCにより給与の高い順に1から連番が振られます。

  • Q4

    RANK()とROW_NUMBER()の違いとして正しいものはどれですか?

    ANSWER
    RANK()は同値に同順位を付けてスキップ、ROW_NUMBER()は常に一意の連番
    クリックして解説を表示
    EXPLANATION

    RANK()は同じ値に同じ順位を付け、次の順位をスキップします。ROW_NUMBER()は常に一意の連番を付けます。

  • Q5

    DENSE_RANK()とRANK()の違いとして正しいものはどれですか?

    ANSWER
    DENSE_RANK()は順位をスキップしない、RANK()はスキップする
    クリックして解説を表示
    EXPLANATION

    DENSE_RANK()は同じ値に同じ順位を付けますが、次の順位をスキップしません。RANK()は同値後に順位をスキップします。

  • Q6

    給与が1位、1位、3位となる関数と、1位、1位、2位となる関数の組み合わせはどれですか?

    ANSWER
    RANK()とDENSE_RANK()
    クリックして解説を表示
    EXPLANATION

    同じ値が2つあった場合、RANK()は1,1,3(スキップあり)、DENSE_RANK()は1,1,2(スキップなし)となります。

  • Q7

    LAG()関数の役割として正しいものはどれですか?

    ANSWER
    前の行の値にアクセスする
    クリックして解説を表示
    EXPLANATION

    LAG()は、現在の行より前の行の値にアクセスします。時系列データの前回値との比較などに使用します。

  • Q8

    LEAD()関数の役割として正しいものはどれですか?

    ANSWER
    次の行の値にアクセスする
    クリックして解説を表示
    EXPLANATION

    LEAD()は、現在の行より後の行の値にアクセスします。次回の値との比較などに使用します。

  • Q9

    次のSQLで、前月の売上と比較するために使われている関数は何ですか?

    SELECT month, sales,
      sales - LAG(sales, 1) OVER (ORDER BY month) AS diff_from_prev
    FROM monthly_sales;
    ANSWER
    LAG()
    クリックして解説を表示
    EXPLANATION

    LAG(sales, 1)は1行前(前月)のsalesの値を返します。これを現在のsalesから引いて前月との差を計算しています。

  • Q10

    FIRST_VALUE()関数の役割として正しいものはどれですか?

    ANSWER
    最初の行の値を返す
    クリックして解説を表示
    EXPLANATION

    FIRST_VALUE()は、ウィンドウフレーム内の最初の行の値を返します。

STAGE 2
1120問目 • 10
  • Q11

    LAST_VALUE()関数の役割として正しいものはどれですか?

    ANSWER
    最後の行の値を返す
    クリックして解説を表示
    EXPLANATION

    LAST_VALUE()は、ウィンドウフレーム内の最後の行の値を返します。ただし、デフォルトのフレームでは期待通りに動作しない場合があります。

  • Q12

    NTH_VALUE()関数の役割として正しいものはどれですか?

    ANSWER
    指定したn番目の行の値を返す
    クリックして解説を表示
    EXPLANATION

    NTH_VALUE(column, n)は、ウィンドウフレーム内のn番目の行の値を返します。

  • Q13

    NTILE()関数の役割として正しいものはどれですか?

    ANSWER
    データをn個の均等なグループに分割する
    クリックして解説を表示
    EXPLANATION

    NTILE(n)は、データをn個の均等なグループ(バケット)に分割し、各行がどのグループに属するかを1からnの番号で返します。

  • Q14

    次のSQLの結果として、従業員は何グループに分けられますか?

    SELECT name, salary,
      NTILE(4) OVER (ORDER BY salary DESC) AS quartile
    FROM employees;
    ANSWER
    4グループ
    クリックして解説を表示
    EXPLANATION

    NTILE(4)により、給与の高い順に4つのグループ(四分位)に分けられます。各グループには1から4の番号が割り当てられます。

  • Q15

    ウィンドウフレームの ROWS BETWEEN の役割として正しいものはどれですか?

    ANSWER
    計算に使用する行の範囲を指定する
    クリックして解説を表示
    EXPLANATION

    ROWS BETWEENは、ウィンドウ関数が計算に使用する行の範囲(フレーム)を物理的な行数で指定します。

  • Q16

    次のSQLの意味として正しいものはどれですか?

    SELECT date, sales,
      AVG(sales) OVER (
        ORDER BY date
        ROWS BETWEEN 2 PRECEDING AND CURRENT ROW
      ) AS moving_avg
    FROM daily_sales;
    ANSWER
    当日と前2日間の3日間移動平均を計算
    クリックして解説を表示
    EXPLANATION

    ROWS BETWEEN 2 PRECEDING AND CURRENT ROWは、現在の行と2行前までの3行の平均を計算します。これは3日間の移動平均です。

  • Q17

    UNBOUNDED PRECEDINGの意味として正しいものはどれですか?

    ANSWER
    パーティションの最初の行
    クリックして解説を表示
    EXPLANATION

    UNBOUNDED PRECEDINGは、パーティションの最初の行を意味します。累計を計算する際などに使用します。

  • Q18

    次のSQLで計算されるrunning_totalは何を表しますか?

    SELECT date, sales,
      SUM(sales) OVER (
        ORDER BY date
        ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
      ) AS running_total
    FROM daily_sales;
    ANSWER
    最初から当日までの累計売上
    クリックして解説を表示
    EXPLANATION

    UNBOUNDED PRECEDING(最初の行)からCURRENT ROW(現在の行)までのSUMを計算するため、累計売上になります。

  • Q19

    ROWS と RANGE の違いとして正しいものはどれですか?

    ANSWER
    ROWSは物理行数、RANGEは値の範囲でフレームを指定
    クリックして解説を表示
    EXPLANATION

    ROWSは物理的な行数でフレームを指定し、RANGEは値の範囲でフレームを指定します。同じ値の行の扱いが異なります。

  • Q20

    CTE(Common Table Expression、共通テーブル式)を定義するキーワードはどれですか?

    ANSWER
    WITH
    クリックして解説を表示
    EXPLANATION

    CTEはWITH句で定義します。WITH cte_name AS (SELECT ...)の形式で、クエリ内で再利用可能な一時的な結果セットを作成します。

STAGE 3
2130問目 • 10
  • Q21

    CTEを使用するメリットとして正しいものはどれですか?

    ANSWER
    クエリの可読性向上、再利用、再帰クエリの記述が可能
    クリックして解説を表示
    EXPLANATION

    CTEを使用すると、複雑なクエリを読みやすく整理でき、同じサブクエリを複数回参照でき、再帰クエリも記述できます。

  • Q22

    次のSQLのCTEは何を表しますか?

    WITH high_value_customers AS (
      SELECT user_id, SUM(total) AS total_spent
      FROM orders
      GROUP BY user_id
      HAVING SUM(total) > 100000
    )
    SELECT u.name, h.total_spent
    FROM users u
    JOIN high_value_customers h ON u.id = h.user_id;
    ANSWER
    注文合計が10万円を超える顧客とその合計額
    クリックして解説を表示
    EXPLANATION

    high_value_customersというCTEは、注文合計が10万円を超える顧客とその合計額を定義しています。これをメインクエリで参照しています。

  • Q23

    再帰CTE(Recursive CTE)の用途として正しいものはどれですか?

    ANSWER
    階層データ(組織図、カテゴリツリーなど)の処理
    クリックして解説を表示
    EXPLANATION

    再帰CTEは、組織の階層構造、カテゴリのツリー、グラフの探索など、自己参照する階層データを扱う際に使用します。

  • Q24

    再帰CTEの基本構造として正しいものはどれですか?

    ANSWER
    アンカーメンバー + UNION ALL + 再帰メンバー
    クリックして解説を表示
    EXPLANATION

    再帰CTEは、アンカーメンバー(初期クエリ)、UNION ALL、再帰メンバー(自己参照クエリ)で構成されます。

  • Q25

    次のSQLは何を行いますか?

    WITH RECURSIVE subordinates AS (
      SELECT id, name, manager_id, 1 AS level
      FROM employees WHERE manager_id IS NULL
      UNION ALL
      SELECT e.id, e.name, e.manager_id, s.level + 1
      FROM employees e
      JOIN subordinates s ON e.manager_id = s.id
    )
    SELECT * FROM subordinates;
    ANSWER
    組織の階層構造を再帰的に取得
    クリックして解説を表示
    EXPLANATION

    この再帰CTEは、manager_idがNULLの従業員(トップ)から始めて、階層的にすべての部下を取得し、各従業員の階層レベルも計算します。

  • Q26

    トランザクションとは何ですか?

    ANSWER
    複数のSQL文を1つの論理的な作業単位としてまとめる仕組み
    クリックして解説を表示
    EXPLANATION

    トランザクションは、複数のSQL文を1つの論理的な作業単位としてまとめ、すべて成功するか、すべて失敗するか(原子性)を保証する仕組みです。

  • Q27

    ACID特性のAは何を表しますか?

    ANSWER
    Atomicity(原子性)
    クリックして解説を表示
    EXPLANATION

    Atomicity(原子性)は、トランザクション内のすべての操作が完了するか、まったく実行されないかのどちらかであることを保証します。

  • Q28

    ACID特性のCは何を表しますか?

    ANSWER
    Consistency(一貫性)
    クリックして解説を表示
    EXPLANATION

    Consistency(一貫性)は、トランザクションの前後でデータベースが整合性のある状態を維持することを保証します。

  • Q29

    ACID特性のIは何を表しますか?

    ANSWER
    Isolation(分離性)
    クリックして解説を表示
    EXPLANATION

    Isolation(分離性)は、同時実行されるトランザクションが互いに干渉しないことを保証します。

  • Q30

    ACID特性のDは何を表しますか?

    ANSWER
    Durability(永続性)
    クリックして解説を表示
    EXPLANATION

    Durability(永続性)は、コミットされたトランザクションの結果がシステム障害後も保持されることを保証します。

STAGE 4
3140問目 • 10
  • Q31

    トランザクションを開始するSQLコマンドはどれですか?

    ANSWER
    BEGIN または START TRANSACTION
    クリックして解説を表示
    EXPLANATION

    BEGIN、BEGIN TRANSACTION、START TRANSACTIONなどでトランザクションを開始します。データベースにより構文が異なります。

  • Q32

    トランザクションを確定するSQLコマンドはどれですか?

    ANSWER
    COMMIT
    クリックして解説を表示
    EXPLANATION

    COMMITは、トランザクション内のすべての変更を確定し、永続化します。

  • Q33

    トランザクションを取り消すSQLコマンドはどれですか?

    ANSWER
    ROLLBACK
    クリックして解説を表示
    EXPLANATION

    ROLLBACKは、トランザクション内のすべての変更を取り消し、開始前の状態に戻します。

  • Q34

    SAVEPOINTの役割として正しいものはどれですか?

    ANSWER
    トランザクション内に部分的なロールバック点を設定する
    クリックして解説を表示
    EXPLANATION

    SAVEPOINTは、トランザクション内に中間点を設定し、その点まで部分的にROLLBACKできるようにします。

  • Q35

    分離レベル(Isolation Level)の種類として正しくないものはどれですか?

    ANSWER
    READ ONLY
    クリックして解説を表示
    EXPLANATION

    標準の分離レベルはREAD UNCOMMITTED、READ COMMITTED、REPEATABLE READ、SERIALIZABLEの4つです。READ ONLYは分離レベルではありません。

  • Q36

    READ UNCOMMITTED分離レベルで発生する可能性がある問題はどれですか?

    ANSWER
    ダーティリード(未コミットデータの読み取り)
    クリックして解説を表示
    EXPLANATION

    READ UNCOMMITTEDでは、他のトランザクションがまだコミットしていないデータを読み取れるため、ダーティリードが発生する可能性があります。

  • Q37

    ダーティリード(Dirty Read)とは何ですか?

    ANSWER
    まだコミットされていないデータを読み取ってしまう現象
    クリックして解説を表示
    EXPLANATION

    ダーティリードは、他のトランザクションがまだコミットしていない変更を読み取ってしまうことです。後でロールバックされる可能性のあるデータを読み取ってしまいます。

  • Q38

    ノンリピータブルリード(Non-Repeatable Read)とは何ですか?

    ANSWER
    同じデータを再読み取りすると異なる値が返される現象
    クリックして解説を表示
    EXPLANATION

    ノンリピータブルリードは、同じトランザクション内で同じデータを2回読み取ったとき、他のトランザクションの更新により異なる値が返される現象です。

  • Q39

    ファントムリード(Phantom Read)とは何ですか?

    ANSWER
    同じ条件で検索すると行数が変わる現象
    クリックして解説を表示
    EXPLANATION

    ファントムリードは、同じトランザクション内で同じ検索条件でクエリを実行したとき、他のトランザクションの挿入・削除により行数が変わる現象です。

  • Q40

    SERIALIZABLE分離レベルの特徴として正しいものはどれですか?

    ANSWER
    最も厳格な分離レベルで、すべての異常現象を防ぐ
    クリックして解説を表示
    EXPLANATION

    SERIALIZABLEは最も厳格な分離レベルで、トランザクションを順次実行したかのように動作し、すべての異常現象を防ぎますが、パフォーマンスは低下します。

STAGE 5
4150問目 • 10
  • Q41

    楽観的ロック(Optimistic Locking)の特徴として正しいものはどれですか?

    ANSWER
    競合が少ないと仮定し、更新時に競合を検出する
    クリックして解説を表示
    EXPLANATION

    楽観的ロックは、競合が少ないと仮定し、データ読み取り時にロックせず、更新時にバージョン番号などで競合を検出します。

  • Q42

    悲観的ロック(Pessimistic Locking)の特徴として正しいものはどれですか?

    ANSWER
    データ読み取り時からロックを取得して競合を防ぐ
    クリックして解説を表示
    EXPLANATION

    悲観的ロックは、競合が発生すると仮定し、データ読み取り時からロックを取得して他のトランザクションからの変更を防ぎます。

  • Q43

    SELECT ... FOR UPDATE の役割として正しいものはどれですか?

    ANSWER
    選択した行に排他ロックを取得する
    クリックして解説を表示
    EXPLANATION

    SELECT ... FOR UPDATEは、選択した行に排他ロックを取得し、トランザクション終了まで他のトランザクションがその行を更新できないようにします。

  • Q44

    デッドロック(Deadlock)とは何ですか?

    ANSWER
    2つ以上のトランザクションが互いのロック解放を待つ状態
    クリックして解説を表示
    EXPLANATION

    デッドロックは、2つ以上のトランザクションが互いに相手が保持するロックの解放を待っている状態で、永久に進行できなくなる状況です。

  • Q45

    デッドロックを防ぐ方法として正しいものはどれですか?

    ANSWER
    ロックの取得順序を統一する
    クリックして解説を表示
    EXPLANATION

    デッドロックを防ぐには、ロックの取得順序を統一する、トランザクションを短くする、適切な分離レベルを選択するなどの方法があります。

  • Q46

    共有ロック(Shared Lock)と排他ロック(Exclusive Lock)の違いとして正しいものはどれですか?

    ANSWER
    共有ロックは複数取得可能で読み取り用、排他ロックは1つのみで更新用
    クリックして解説を表示
    EXPLANATION

    共有ロックは複数のトランザクションが同時に取得でき、読み取りを許可します。排他ロックは1つのトランザクションのみが取得でき、他の読み書きをブロックします。

  • Q47

    第一正規形(1NF)の条件として正しいものはどれですか?

    ANSWER
    すべての列が原子的(単一の値)であること
    クリックして解説を表示
    EXPLANATION

    第一正規形は、すべての列が原子的(これ以上分割できない単一の値)であること、繰り返しグループがないことが条件です。

  • Q48

    次のテーブル設計が第一正規形に違反している理由は何ですか?

    | id | name | phones |
    | 1  | 田中 | 090-xxx, 080-yyy |
    ANSWER
    phones列が複数の値を含んでいるため
    クリックして解説を表示
    EXPLANATION

    phones列に複数の電話番号がカンマ区切りで格納されており、原子性(単一の値)に違反しています。

  • Q49

    第二正規形(2NF)の条件として正しいものはどれですか?

    ANSWER
    1NFを満たし、部分関数従属がないこと
    クリックして解説を表示
    EXPLANATION

    第二正規形は、1NFを満たし、かつ非キー属性が主キー全体に完全関数従属していること(部分関数従属がないこと)が条件です。

  • Q50

    部分関数従属とは何ですか?

    ANSWER
    非キー属性が主キーの一部のみに依存している状態
    クリックして解説を表示
    EXPLANATION

    部分関数従属は、複合主キーの一部の列だけで非キー属性が決定できる状態です。例:(注文ID, 商品ID)が主キーで、注文IDだけで顧客名が決まる場合。

STAGE 6
5160問目 • 10
  • Q51

    第三正規形(3NF)の条件として正しいものはどれですか?

    ANSWER
    2NFを満たし、推移的関数従属がないこと
    クリックして解説を表示
    EXPLANATION

    第三正規形は、2NFを満たし、かつ推移的関数従属がないこと(非キー属性が他の非キー属性に依存しないこと)が条件です。

  • Q52

    推移的関数従属とは何ですか?

    ANSWER
    非キー属性が別の非キー属性を介して主キーに依存する状態
    クリックして解説を表示
    EXPLANATION

    推移的関数従属は、A→B、B→Cのとき、A→Cが成り立つ状態です。例:社員ID→部署ID→部署名のように、非キー属性を介して他の属性が決まる場合。

  • Q53

    正規化のメリットとして正しいものはどれですか?

    ANSWER
    データの冗長性が減り、更新異常を防ぐ
    クリックして解説を表示
    EXPLANATION

    正規化により、データの冗長性が減り、更新異常(挿入、更新、削除異常)を防ぎ、データの整合性が向上します。

  • Q54

    非正規化(Denormalization)を行う目的として正しいものはどれですか?

    ANSWER
    クエリパフォーマンスを向上させる
    クリックして解説を表示
    EXPLANATION

    非正規化は、JOINの削減やクエリパフォーマンスの向上のために、意図的に冗長性を持たせることです。読み取り性能を優先する場合に行います。

  • Q55

    実行計画(Execution Plan)とは何ですか?

    ANSWER
    SQLクエリの実行方法を示す詳細な計画
    クリックして解説を表示
    EXPLANATION

    実行計画は、データベースがSQLクエリをどのように実行するかを示す詳細な計画です。テーブルスキャン、インデックス使用、結合方法などが含まれます。

  • Q56

    実行計画を確認するSQLコマンドとして一般的なものはどれですか?

    ANSWER
    EXPLAIN
    クリックして解説を表示
    EXPLANATION

    EXPLAIN(またはEXPLAIN ANALYZE)を使用して、SQLクエリの実行計画を確認できます。データベースにより構文が異なります。

  • Q57

    フルテーブルスキャン(Full Table Scan)が発生する状況として正しいものはどれですか?

    ANSWER
    インデックスがない列で検索する場合
    クリックして解説を表示
    EXPLANATION

    インデックスがない列での検索、LIKE '%...'でのワイルドカード検索、小さなテーブル、適切なインデックスがない場合にフルテーブルスキャンが発生します。

  • Q58

    インデックスが使用されない可能性が高いケースはどれですか?

    ANSWER
    列に関数を適用した条件で検索
    クリックして解説を表示
    EXPLANATION

    列に関数を適用する(WHERE YEAR(date) = 2023)、暗黙の型変換、先頭にワイルドカードがあるLIKE、NOT条件などではインデックスが使用されにくいです。

  • Q59

    カバリングインデックス(Covering Index)とは何ですか?

    ANSWER
    クエリに必要な列がすべて含まれ、テーブルアクセスが不要なインデックス
    クリックして解説を表示
    EXPLANATION

    カバリングインデックスは、クエリが必要とするすべての列がインデックスに含まれているため、テーブルデータにアクセスせずにインデックスだけで結果を返せるインデックスです。

  • Q60

    インデックスのカーディナリティ(Cardinality)とは何ですか?

    ANSWER
    列の値の一意性の度合い
    クリックして解説を表示
    EXPLANATION

    カーディナリティは、列の値の一意性の度合いを示します。高いカーディナリティ(多くの異なる値)の列ほど、インデックスが効果的です。

STAGE 7
6170問目 • 10
  • Q61

    Bツリーインデックスの特徴として正しいものはどれですか?

    ANSWER
    等価検索、範囲検索、ソートに効率的
    クリックして解説を表示
    EXPLANATION

    Bツリーは、等価検索、範囲検索、ソートに効率的なバランス木構造です。多くのRDBMSでデフォルトのインデックス型です。

  • Q62

    ハッシュインデックスの特徴として正しいものはどれですか?

    ANSWER
    等価検索に非常に高速だが、範囲検索には使用不可
    クリックして解説を表示
    EXPLANATION

    ハッシュインデックスは、等価検索(=)には非常に高速ですが、範囲検索やソートには使用できません。

  • Q63

    GINインデックス(PostgreSQL)の用途として正しいものはどれですか?

    ANSWER
    配列、JSON、全文検索など複数値を含む列
    クリックして解説を表示
    EXPLANATION

    GIN(Generalized Inverted Index)は、配列、JSON、全文検索など、複数の値を含む列に対して効率的なインデックスです。

  • Q64

    クエリのパフォーマンスを向上させる方法として正しいものはどれですか?

    ANSWER
    適切なインデックス作成と必要な列のみを選択する
    クリックして解説を表示
    EXPLANATION

    適切なインデックスの作成、SELECT *の代わりに必要な列のみ選択、不要なサブクエリの排除、JOINの最適化などでパフォーマンスを向上できます。

  • Q65

    N+1問題を解決する方法として正しいものはどれですか?

    ANSWER
    JOINを使用して1回のクエリで関連データを取得する
    クリックして解説を表示
    EXPLANATION

    N+1問題は、JOINを使用して1回のクエリで関連データを取得するか、IN句でまとめて取得することで解決できます。

  • Q66

    パーティショニングの目的として正しいものはどれですか?

    ANSWER
    大きなテーブルを分割してパフォーマンスと管理を向上させる
    クリックして解説を表示
    EXPLANATION

    パーティショニングは、大きなテーブルを複数の小さな部分に分割し、クエリパフォーマンスの向上、管理の容易化、データのアーカイブを実現します。

  • Q67

    レンジパーティショニングの特徴として正しいものはどれですか?

    ANSWER
    値の範囲に基づいて分割
    クリックして解説を表示
    EXPLANATION

    レンジパーティショニングは、日付や数値などの連続した値の範囲に基づいてデータを分割します。時系列データに適しています。

  • Q68

    リストパーティショニングの特徴として正しいものはどれですか?

    ANSWER
    特定の値のリストに基づいて分割
    クリックして解説を表示
    EXPLANATION

    リストパーティショニングは、特定の値のリストに基づいてデータを分割します。国コードや地域などの離散的な値に適しています。

  • Q69

    ハッシュパーティショニングの特徴として正しいものはどれですか?

    ANSWER
    ハッシュ値に基づいてデータを均等に分割
    クリックして解説を表示
    EXPLANATION

    ハッシュパーティショニングは、キー列のハッシュ値に基づいてデータを均等に分割します。データの均等分散が必要な場合に適しています。

  • Q70

    EXPLAIN ANALYZEの特徴として正しいものはどれですか?

    ANSWER
    実際にクエリを実行し、実測値を含む実行計画を表示
    クリックして解説を表示
    EXPLANATION

    EXPLAIN ANALYZEは、実行計画を表示するだけでなく、実際にクエリを実行して実測値(実行時間、行数など)を表示します。

STAGE 8
7180問目 • 10
  • Q71

    ネステッドループ結合(Nested Loop Join)の特徴として正しいものはどれですか?

    ANSWER
    外側の各行に対して内側テーブルを検索、インデックスがある場合に効率的
    クリックして解説を表示
    EXPLANATION

    ネステッドループ結合は、外側テーブルの各行に対して内側テーブルを検索します。小さなテーブルや内側にインデックスがある場合に効率的です。

  • Q72

    ハッシュ結合(Hash Join)の特徴として正しいものはどれですか?

    ANSWER
    ハッシュテーブルを作成して等価結合を行う
    クリックして解説を表示
    EXPLANATION

    ハッシュ結合は、小さい方のテーブルでハッシュテーブルを作成し、大きい方のテーブルをスキャンして結合します。等価結合に効率的です。

  • Q73

    マージ結合(Merge Join/Sort Merge Join)の特徴として正しいものはどれですか?

    ANSWER
    両方のテーブルをソートして同時にスキャンする
    クリックして解説を表示
    EXPLANATION

    マージ結合は、両方のテーブルを結合キーでソートし、同時にスキャンして結合します。大きなテーブルの等価結合に効率的です。

  • Q74

    クエリヒントとは何ですか?

    ANSWER
    オプティマイザへの実行計画に関する指示
    クリックして解説を表示
    EXPLANATION

    クエリヒントは、オプティマイザに特定の実行計画を選択させるための指示です。インデックスの使用、結合方式などを指定できます。

  • Q75

    統計情報(Statistics)の役割として正しいものはどれですか?

    ANSWER
    オプティマイザが最適な実行計画を選択するための情報
    クリックして解説を表示
    EXPLANATION

    統計情報は、テーブルの行数、列の値の分布などの情報で、オプティマイザが最適な実行計画を選択するために使用します。

  • Q76

    統計情報を更新するSQLコマンドとして一般的なものはどれですか?

    ANSWER
    ANALYZE または UPDATE STATISTICS
    クリックして解説を表示
    EXPLANATION

    ANALYZE(PostgreSQL)やUPDATE STATISTICS(SQL Server)などで統計情報を更新できます。データベースにより構文が異なります。

  • Q77

    VACUUM(PostgreSQL)の役割として正しいものはどれですか?

    ANSWER
    不要な領域を回収し、統計情報を更新する
    クリックして解説を表示
    EXPLANATION

    VACUUMは、PostgreSQLで削除・更新されたタプルが使用していた領域を回収し、統計情報を更新します。

  • Q78

    トリガー(Trigger)とは何ですか?

    ANSWER
    特定のイベント時に自動実行されるプロシージャ
    クリックして解説を表示
    EXPLANATION

    トリガーは、特定のイベント(INSERT、UPDATE、DELETE)が発生したときに自動的に実行されるプロシージャです。

  • Q79

    BEFORE TRIGGERとAFTER TRIGGERの違いとして正しいものはどれですか?

    ANSWER
    BEFOREは変更前に実行、AFTERは変更後に実行
    クリックして解説を表示
    EXPLANATION

    BEFORE TRIGGERはデータの変更前に実行され、データの検証や修正が可能です。AFTER TRIGGERはデータの変更後に実行されます。

  • Q80

    ストアドプロシージャ(Stored Procedure)のメリットとして正しいものはどれですか?

    ANSWER
    サーバー側で実行され、ネットワーク往復を削減
    クリックして解説を表示
    EXPLANATION

    ストアドプロシージャは、複雑なロジックをサーバー側で実行でき、ネットワーク往復を減らし、コードの再利用性とセキュリティを向上させます。

STAGE 9
8190問目 • 10
  • Q81

    ストアドファンクション(Stored Function)とストアドプロシージャの違いとして正しいものはどれですか?

    ANSWER
    ファンクションは値を返しSELECT内で使用可、プロシージャはCALLで呼び出す
    クリックして解説を表示
    EXPLANATION

    ストアドファンクションは値を返し、SELECT文の中で使用できます。ストアドプロシージャはCALLで呼び出し、副作用(データ変更など)を持つことが多いです。

  • Q82

    JSON型データに対するクエリとして正しいものはどれですか(PostgreSQL)?

    ANSWER
    SELECT data->>'key' FROM table
    クリックして解説を表示
    EXPLANATION

    PostgreSQLでは、->でJSONオブジェクトを、->>でテキストとしてJSON値を抽出できます。

  • Q83

    配列型データに対するクエリとして正しいものはどれですか(PostgreSQL)?

    ANSWER
    SELECT * FROM t WHERE 'value' = ANY(array_column)
    クリックして解説を表示
    EXPLANATION

    PostgreSQLでは、ANY(array)で配列内のいずれかの要素と比較できます。@>は配列の包含演算子です。

  • Q84

    データベースシャーディングとは何ですか?

    ANSWER
    データを複数サーバーに水平分割して分散させる技術
    クリックして解説を表示
    EXPLANATION

    シャーディングは、データを複数のデータベースサーバーに水平分割して分散させる技術です。大規模システムのスケーラビリティを向上させます。

  • Q85

    レプリケーション(Replication)の目的として正しいものはどれですか?

    ANSWER
    可用性向上、読み取り負荷分散、障害対策
    クリックして解説を表示
    EXPLANATION

    レプリケーションは、データを複数のサーバーにコピーして、可用性の向上、読み取り負荷の分散、障害対策を実現します。

  • Q86

    マスター・スレーブレプリケーションの特徴として正しいものはどれですか?

    ANSWER
    マスターが書き込み、スレーブが読み取りを処理
    クリックして解説を表示
    EXPLANATION

    マスター・スレーブレプリケーションでは、マスターが書き込みを処理し、スレーブはマスターのデータをコピーして読み取りを処理します。

  • Q87

    ポイントインタイムリカバリ(PITR)とは何ですか?

    ANSWER
    特定の時点のデータベース状態に復元する技術
    クリックして解説を表示
    EXPLANATION

    PITRは、WAL(Write-Ahead Log)などを使用して、特定の時点のデータベース状態に復元する技術です。誤操作からの復旧などに使用します。

  • Q88

    WAL(Write-Ahead Logging)の役割として正しいものはどれですか?

    ANSWER
    変更をログに先行記録し、障害時の復旧を可能にする
    クリックして解説を表示
    EXPLANATION

    WALは、データを変更する前にログに記録することで、障害発生時のデータ復旧を可能にし、トランザクションの永続性を保証します。

  • Q89

    データベース接続プーリングの目的として正しいものはどれですか?

    ANSWER
    接続の再利用で接続確立のオーバーヘッドを削減
    クリックして解説を表示
    EXPLANATION

    接続プーリングは、データベース接続を再利用することで、接続確立のオーバーヘッドを削減し、パフォーマンスを向上させます。

  • Q90

    クエリキャッシュの特徴として正しいものはどれですか?

    ANSWER
    同一クエリの結果をキャッシュし、再実行を高速化
    クリックして解説を表示
    EXPLANATION

    クエリキャッシュは、同一のSQLクエリの結果を保存し、再実行時にキャッシュから返すことで高速化します。データ更新時にキャッシュの無効化が必要です。

STAGE 10
91100問目 • 10
  • Q91

    プリペアドステートメントのメリットとして正しいものはどれですか?

    ANSWER
    SQL解析を一度で済ませ、パラメータ変更で再実行可能、SQLインジェクション対策
    クリックして解説を表示
    EXPLANATION

    プリペアドステートメントは、SQLの解析・最適化を一度だけ行い、パラメータのみ変えて再実行できます。SQLインジェクション対策にもなります。

  • Q92

    バルクインサート(Bulk Insert)のメリットとして正しいものはどれですか?

    ANSWER
    複数レコードを一度に挿入してパフォーマンスを向上
    クリックして解説を表示
    EXPLANATION

    バルクインサートは、複数のレコードを一度に挿入することで、個別INSERTより大幅にパフォーマンスが向上します。

  • Q93

    OLAP(Online Analytical Processing)とOLTP(Online Transaction Processing)の違いとして正しいものはどれですか?

    ANSWER
    OLTPは更新中心の短いトランザクション、OLAPは読み取り中心の分析クエリ
    クリックして解説を表示
    EXPLANATION

    OLTPは大量の短いトランザクション処理(更新中心)、OLAPは複雑な分析クエリ(読み取り中心)に最適化されています。

  • Q94

    カラムナーストレージ(Columnar Storage)のメリットとして正しいものはどれですか?

    ANSWER
    特定列のみの読み取りが高速で、圧縮率が高い
    クリックして解説を表示
    EXPLANATION

    カラムナーストレージは、列ごとにデータを格納し、特定の列のみを読み取る分析クエリに効率的で、圧縮率も高くなります。

  • Q95

    PERCENT_RANK()ウィンドウ関数の役割として正しいものはどれですか?

    ANSWER
    相対的な順位を0から1のパーセンタイルで返す
    クリックして解説を表示
    EXPLANATION

    PERCENT_RANK()は、パーティション内での相対的な順位を0から1の間のパーセンタイルとして返します。(rank - 1) / (total_rows - 1)で計算されます。

  • Q96

    CUME_DIST()ウィンドウ関数の役割として正しいものはどれですか?

    ANSWER
    現在の行以下の行の割合(累積分布)を返す
    クリックして解説を表示
    EXPLANATION

    CUME_DIST()は、累積分布を計算し、現在の行以下の行の割合を返します。パーティション内で自分以下の値が何%かを示します。

  • Q97

    MVCC(Multi-Version Concurrency Control)の特徴として正しいものはどれですか?

    ANSWER
    データの複数バージョンを保持し、読み取りと書き込みが互いをブロックしない
    クリックして解説を表示
    EXPLANATION

    MVCCは、データの複数バージョンを保持することで、読み取りと書き込みが互いをブロックせず、高い並行性を実現する技術です。

  • Q98

    ボトムアップ型クエリ最適化とトップダウン型クエリ最適化の違いとして正しいものはどれですか?

    ANSWER
    ボトムアップは部分から全体を構築、トップダウンは全体から部分に分解
    クリックして解説を表示
    EXPLANATION

    ボトムアップ型は小さな部分計画から組み立て、トップダウン型は全体から部分に分解して最適化します。多くの最適化はコストベースで両方のアプローチを組み合わせます。

  • Q99

    BRIN(Block Range Index)インデックスの適用場面として正しいものはどれですか?

    ANSWER
    物理的な順序でソートされた大きなテーブル
    クリックして解説を表示
    EXPLANATION

    BRINインデックスは、データが物理的な順序で格納されている大きなテーブルに適しています。タイムスタンプ列など、挿入順と値の順序が相関する場合に効果的です。

  • Q100

    イベントソーシング(Event Sourcing)パターンとは何ですか?

    ANSWER
    状態を変更するすべてのイベントを保存するパターン
    クリックして解説を表示
    EXPLANATION

    イベントソーシングは、データの現在の状態ではなく、状態を変更するイベント(履歴)をすべて保存するパターンです。監査ログや状態の再構築に有効です。