基本情報 データベースと設計 2 — Questions and Answers
Question 1: ER図(実体関連図)における「多対多」の関連の解決方法として正しいものはどれか。
- 中間テーブル(連関エンティティ)を作成して、1対多の関連に分解する (Correct answer)
- 片方のテーブルに外部キーを追加する
- 関連を無視する
- テーブルを1つに統合する
Correct answer: 中間テーブル(連関エンティティ)を作成して、1対多の関連に分解する
多対多の関連は、関係データベースでは直接表現できないため、両方のテーブルの主キーを外部キーとして持つ中間テーブルを作成し、1対多の関連2つに分解します。
Question 2: SQLのDELETE文とTRUNCATE文の違いとして正しいものはどれか。
- DELETE文はWHERE句で条件指定でき、TRUNCATE文はテーブルの全行を削除する (Correct answer)
- DELETE文は全行削除のみ、TRUNCATE文は条件指定可能
- 両者に違いはない
- DELETE文はDDL、TRUNCATE文はDML
Correct answer: DELETE文はWHERE句で条件指定でき、TRUNCATE文はテーブルの全行を削除する
DELETE文はDML(データ操作言語)でWHERE句により削除行を指定でき、ロールバック可能です。TRUNCATE文はDDL(データ定義言語)でテーブルの全行を高速に削除しますが、通常ロールバックできません。
Question 3: データベースのバックアップ方式のうち、差分バックアップの説明として正しいものはどれか。
- 最後のフルバックアップ以降に変更されたデータだけをバックアップする (Correct answer)
- すべてのデータをバックアップする
- 前回のバックアップ以降に変更されたデータだけをバックアップする
- ログファイルのみをバックアップする
Correct answer: 最後のフルバックアップ以降に変更されたデータだけをバックアップする
差分バックアップは、最後のフルバックアップ時点からの変更分をバックアップする方式です。増分バックアップ(前回のバックアップからの変更分)とは異なります。
Question 4: データベースの排他制御で使用される「共有ロック」の特徴として正しいものはどれか。
- 他のトランザクションも共有ロックを取得できるが、占有ロックは取得できない (Correct answer)
- 他のトランザクションはいかなるロックも取得できない
- ロックなしでデータを変更できる
- 読み取りも書き込みも自由にできる
Correct answer: 他のトランザクションも共有ロックを取得できるが、占有ロックは取得できない
共有ロック(Sロック)は読み取り用のロックで、複数のトランザクションが同時に共有ロックを取得できます。ただし、共有ロック中は占有(排他)ロックは取得できず、データの変更はできません。
Question 5: ビューの利点として正しいものはどれか。
- 特定のユーザに必要なデータだけを見せることでセキュリティを向上できる (Correct answer)
- データの挿入・更新が常に可能
- 実テーブルより高速にアクセスできる
- ディスク容量を節約できない
Correct answer: 特定のユーザに必要なデータだけを見せることでセキュリティを向上できる
ビューは仮想的なテーブルで、元のテーブルの特定の列や行だけを見せることができるため、ユーザごとにアクセスできるデータを制限してセキュリティを向上させることができます。
Question 6: NoSQLデータベースの特徴として正しいものはどれか。
- スキーマレスで柔軟なデータ構造を扱え、水平スケーリングに優れる (Correct answer)
- 厳格なスキーマ定義が必要である
- ACID特性を常に保証する
- SQLのみでデータ操作を行う
Correct answer: スキーマレスで柔軟なデータ構造を扱え、水平スケーリングに優れる
NoSQLデータベースは、固定スキーマを持たず柔軟なデータ構造を扱え、水平スケーリング(サーバの追加による拡張)に優れています。大量データの分散処理に適しています。
ER図(実体関連図)における「多対多」の関連の解決方法として正しいものはどれか。