データベース ITパスポート対策テクノロジ系技術要素編③
5 views
2023-11-012023-11-01
データベースとは
データベースとはある一定の規則に従って集められたデータの集合、あるいはそのデータを管理するための仕組み(データベース管理システム=DBMS)を意味する言葉です。
データベース管理システムは大きく分けるとリレーショナルデータベース(関係データベース)と非リレーショナルデータベース(NoSQL)に分類されます。
リレーショナルデータベース
データを列(フィールド、カラム)と行(レコード、ロウ)からなるテーブルとしてある買うデータベースです。現在最も広く利用されているデータベースの種類となっており、
- MySQL
- PostgreSQL
- SQLite
- Microsoft SQL Server
- Oracle Database
は全てリレーショナル型のデータベース管理システムです。
NoSQL
リレーショナルデータベースではないデータベースの総称で、以下のものがあります。
キーバリューストア(KVS)
データを識別するための値であるKeyとそれと紐づけられた任意のデータ値(Value)の形でデータを管理するデータベースです。複雑なデータの管理には向きませんが、シンプルでリレーショナルデータベースよる高速に動作するという特徴があります。
ドキュメント指向データベース
データをドキュメントとして扱うデータベース。ドキュメント内のデータ構造は自由で、XMLやJSONをそのまま使うことができます。
グラフ指向データベース
ノードやエッジ(リレーション)からなるグラフ構造でデータを扱うデータベースです。データ間の関係性をたどる操作を高速に行うことができるのが特徴です。
関係データベースの設計
主キー
関係データベースのテーブルの中で行を一意に識別することのできる列または列の組合せを主キーといいます。例えば、それぞれに異なる番号が割り当てられたidは、その値が分かれば行が一意に決まるので主キーとなりえます。
主キーにはこの一意性制約の他に、空値(NULL)であってはならないという非NULL制約もあります。
外部キー
外部キーはある表と別の表を関係付けるために使用するものです。参照する側の外部キーの値は、参照先の表に存在している必要があり、参照先の値が更新されると参照元の値も自動で更新されるように指定することもできます。
正規化
テーブルを設計する際、同じ表内に冗長な(重複する)情報が含まれてしまうことがあります。このような表を分割して、整理することを正規化といいます。
インデックス
インデックスは、データを高速にするための索引情報です。通常主キーには自動でインデックスが設定されますが、他の列にインデックスを貼ることもできます。ただし、インデックスを貼りすぎるとデータが膨大になりパフォーマンスが低下する可能性があります。
関係データベースの操作
リレーショナルデータベースの操作はSQLという言語を使って行われます(ただし、SQL自体は試験対象外です)。
挿入
データの挿入は以下のような構文で行うことができます。
INSERT INTO テーブル名 (列1,列2,列3,…) VALUES (値1,値2,値3…);
更新
データの更新は以下のような構文で行うことができます。
UPDATE テーブル名 SET 列名 = 値 WHERE 条件 ;
選択
選択はひとつの表から条件を満たす行を取り出す操作をいいます。
SELECT * FROM テーブル名 WHERE 条件 ;
射影
選択はひとつの表から特定の列だけを取り出す操作をいいます。
SELECT 列名1,列名2… FROM テーブル名 ;
結合
複数の表を共通する列で結合した表を一時的に作成します。
SELECT * FROM テーブル名1 JOIN テーブル名2 ON 条件;
集合演算
集合における演算を関係データベースの表に対して適用した問題が出題されることがあります。
和 | 2つの表からすべての行を取り出す。 |
---|---|
差 | 2つの表の一方にだけある行を取り出す。 |
積 | 2つの表の両方にある行だけを取り出す。 |
トランザクション処理
データベース管理システムでは同時に複数のトランザクション(一連の処理)が発生することがあります。この時、同時実行制御(排他制御)を行うなどして各トランザクションを管理し、データの整合性を確保する取り組みをトランザクション処理といいます。
ACID特性
トランザクション処理で守ることが要求される4つの特性です。
原子性(Atomicity) | トランザクションは完全に実行されるか、全く実行されないかのいずれかでなければならない。 |
---|---|
一貫性(Consistency) | トランザクションの前後でデータの整合性が保たれなければならない。 |
独立性(Isolation) | 同時に複数のトランザクションが実行されても互いに干渉してはならない。 |
耐久性(Durability) | 正常に終了したトランザクションの実行結果は、その後障害が発生しても保たれなければならない。 |
2相コミットメント
コミットとはデータの更新を確定させることであり、複数の独立したコンピュータにまたがるシステムをでデータ更新する際、全てのコンピュータに処理が確定可能であるか確認してから更新処理を確定するといった方式が2相コミットメントです。2段階にわけることで分散して配置されたデータベース間でも整合性を確保することができます。
デッドロック
排他制御では、データの整合性を保つため同時に複数のトランザクションがデータを操作しようとした場合、一方のみに操作権限を与え、他方はロックしますが、このロックによって、互いに相手のロック解除を待ち続けてトランザクションが終了しない状態が発生してしまうことがあり、これをデッドロックといいます。
例えば、AをロックしてからBをロックするという処理とBをロックしてからAをロックするという処理が同時に行われるとデッドロックが発生します。
障害回復
データベース管理システムは、トランザクションの実行状況をログファイル(ジャーナルファイル)に記録しておき、障害発生時などにデータを復元することを可能とするリカバリ機能を有しています。
チェックポイント
メインメモリから補助記憶装置にデータが書き込まれた時点やバックアップを取得した時点をチェックポイントといいます。
バックワードリカバリ(ロールバック)
障害やエラーが発生した際、実行中トランザクションによる更新を取り消し、そのトランザクションが実行される前の状態に戻すことをいいます。
フォワードリカバリ(ロールフォワード)
記憶装置が破損するなどの障害発生した際にログを使ってチェックポイント後に実行されたトランザクションを再実行して完了させることをいいます。一般的には、チェックポイントで作成されたバックアップファイルを(交換した)補助記憶装置に読み込んだ後、ログファイルを元にその後のトランザクションをロールフォワードします。
確認問題(過去問)
ITパスポート試験平成30年春問65
関係データベースの操作a~cと,関係演算の適切な組合せはどれか。
- 指定したフィールド(列)を抽出する。
- 指定したレコード(行)を抽出する。
- 複数の表を一つの表にする。
ITパスポート試験平成30年春問81
顧客名と住所,商品名と単価,顧客が注文した商品の個数と注文した日付を関係データベースで管理したい。正規化された表として,適切なものはどれか。ここで,下線は主キーを表し,顧客名や商品名には,それぞれ同一のものがあるとする。
ITパスポート試験令和元年問64
データベース管理システムにおける排他制御の目的として,適切なものはどれか。
ITパスポート試験令和元年問66
関係データベースにおいて,主キーを設定する理由はどれか。
ITパスポート試験令和元年問87
売上伝票のデータを関係データベースの表で管理することを考える。売上伝票の表を設計するときに,表を構成するフィールドの関連性を分析し,データの重複及び不整合が発生しないように,複数の表に分ける作業はどれか。
ITパスポート試験令和2年問57
次に示す項目を使って関係データベースで管理する“社員”表を設計する。他の項目から導出できる,冗長な項目はどれか。
ITパスポート試験令和2年問64
データ処理に関する記述a~cのうち,DBMS を導入することによって得られる効果だけを全て挙げたものはどれか。
- 同じデータに対して複数のプログラムから同時にアクセスしても、一貫性が保たれる。
- 各トランザクションの優先度に応じて,処理する順番を DBMS が決めるので,リアルタイム処理の応答時間が短くなる。
- 仮想記憶のページ管理の効率が良くなるので,データ量にかかわらずデータへのアクセス時間が一定になる。
ITパスポート試験令和2年問73
関係データベースにおいて,表Aと表Bの積集合演算を実行した結果はどれか。
ITパスポート試験令和4年問65
条件1~5によって,関係データベースで管理する“従業員”表と“部門”表を作成した。“従業員”表の主キーとして,最も適切なものはどれか。
[条件]- 各従業員は重複のない従業員番号を一つもつ。
- 同姓同名の従業員がいてもよい。
- 各部門は重複のない部門コードを一つもつ。
- 一つの部門には複数名の従業員が所属する。
- 51人の従業員が所属する部門は一つだけである。
ITパスポート試験令和4年問77
トランザクション処理の ACID 特性に関する記述として,適切なものはどれか。
ITパスポート試験令和4年問83
データを行と列から成る表形式で表すデータベースのモデルはどれか。
ITパスポート試験令和3年問62
金融システムの口座振替では,振替元の口座からの出金処理と振替先の口座への入金処理について,両方の処理が実行されるか,両方とも実行されないかのどちらかであることを保証することによってデータベースの整合性を保っている。データベースに対するこのような一連の処理をトランザクションとして扱い,矛盾なく処理が完了したときに,データベースの更新内容を確定することを何というか。
ITパスポート試験平成31年春問95
関係データベースの操作を行うための言語はどれか。
ITパスポート試験平成27年春問77
DBMSにおいて, データへの同時アクセスによる矛盾の発生を防止し, データの一貫性を保つための機能はどれか。
ITパスポート試験平成30年秋問63
トランザクション処理におけるロールバックの説明として、 適切なものはどれか。
ITパスポート試験平成28年秋問81
複数の利用者がデータベースの同じレコードを更新するときに, データの整合性を保つために行う制御として, 適切なものはどれか。
これだけで受かるITパスポート
https://ja.mondder.com