ITパスポート
情報技術者試験まとめへ

技術要素(3)

データベース

データベース方式


大量のデータを一定の規則に従い蓄積し、一元的に管理できるようしたシステムの総称。データベースを構築することにより、データの重複や散逸を防ぎ、同時に、ある項目に着目して特定のデータを取り出すというような効率的なデータの取扱いが可能となる

データベースの特徴

ファイルとデータベースの比較
比較する項目ファイルデータベース
データ形式の変更によるプログラムへの影響大きい小さい
データの重複業務ごとに重複することがある重複がない
関係のあるデータ間の整合性保つことが難しい保たれる
業務間でのデータの共有共有は難しい共有しやすい
データのバックアップ複雑単純・容易

データベースのモデル

リレーショナルデータベース
リレーショナル(関係)データベース

行と列からなる表の形式を持つデータベース。ここのデータは特定の関係を持たず、表の各項目を手掛かりとして表と表との関係付けをおこなう

ツリー(階層)型データベース

項目がツリー構造を形成するデータベース。親→子の関係を持ち、一対多の対応関係を持たせることが可能

ネットワーク(網)型データベース

複数の項目がお互いにリンクし合う形式のデータベース。子データは複数の親を持つことができ、多対多の関係を持たせることが可能 ツリー型・ネットワーク型

データベース管理システム(DBMS)

データベースの管理、運用には「データベース管理システム(DBMS)」が必要となる。これはデータベースソフトウェアを用いて実現され、データを構造的に蓄積して一貫性を保ちながらユーザがデータベースをいつでも正しく利用できるようにする。データベース管理システムには複数の利用者が大量のデータを共有利用する目的がある

DBMS
機 能説 明
データベース定義テーブル(表)、項目。インデックスなどデータベースの構造を定義する
データ操作データベースに対するデータ操作(検索、挿入、更新、削除)を統一する
同時処理
(排他制御)
複数のユーザが同時にデータベースを操作しても、データの矛盾が発生しないよういにデータの整合性を維持する
リカバリ処理
(回復機能)
ハードウェアやソフトウェアに障害が発生した場合でも、障害発生直前の状態にデータを復旧する
ログ管理リカバリ処理に必要となるログファイルの保存・運用を行う
アクセス管理ユーザのデータベース利用権限を設定し、アクセス権のないユーザがデータにアクセスできないようにする
運用管理データベースのバックアップとリストア、データベースの格納状況やバッファの利用状況など、運用に関するさまざまな機能を持つ
再構成データの追加や削除を繰り返したために生じる、データベースのフラグメンテーション(ディス上の使用領域の断片化)を解消する。データ操作を再構成(連続する領域に再配置)すると、データを操作する速度が改善する
バッファ

データを一時的に保存しておくメモリ上の領域のこと

データベース設計


データベースの設計には、「データ分析」、「データ設計」、「データの正規化」などの概念が含まれる

データの分析

データの分析

・繰り返しデータをなくす
・情報は1回だけ登録されるようにする
・計算で得られる情報はテーブルに保存しない

データの設計

データベースは、データを「テーブル(表)」で管理する。テーブルは、項目を表す「フィールド」と、行を表す「レコード」、行を特定する「主キー」で構成される

主キー

テーブルの中のある行と別の行を区別するために設定する項目。複数の項目を組み合わせて主キーにすることもできる。同一フィールド内では重複のないものに設定する必要がある

外部キー

あるテーブルにおいて主キー以外の項目が、別のテーブルの主キーである項目

参照制約

外部キーに存在する値が、参照される主キー側にも必ず存在するように、テーブル間の整合性を保つために設定する制約

インデックス

データの検索を高速化するために作成する索引のこと。インデックスは、検索の条件で指定するテーブルの項目に対して作成する。インデックスを作成することで、データベースの検索が速くなる。ただし、データの更新系処理時にインデックスも更新されるため、むやみにインデックスを作成する、処理速度が遅くなる

データの正規化

関係データベースを構築する際、まずは、テーブルの形を決めるために「データの正規化」を行う必要がある。正規化を行うことで、データの重複を避け、テーブルが適切に分割できるようになる。このため、データ管理が容易になり、多様な目的に活用することが可能となる

正規化を行う目的
・テーブルに収納されているデータの重複や矛盾をなくす
・重複しているデータがないため、テーブルを多様な目的で利用できる
正規化の手順

正規化の手順

導出項目

他の項目から計算によって導き出される項目のこと

データ操作


データベースにおいてテーブルの定義、データの検索・挿入・更新・削除といったデータ操作を行うために、統一された操作方法「SQL」が用いられる
データベースからデータを取り出すことを「演算」という。演算には「関係演算」と「集合演算」がある

関係演算

テーブルから目的とするデータを取り出す演算のこと。次の3つがある

射影……テーブルから指定した項目を取り出す
選択……テーブルから指定した行を取り出す
結合……2つ以上のテーブルで、ある項目の値が同じものについてテーブル同士で連結させたデータを取り出す

関係演算
集合演算

2つのテーブルから集合の考え方を利用してデータを取り出す演算のこと

和……2つのテーブルのすべてのデータを取り出す
積……2つのテーブルで共通するデータを取り出す
差……2つのテーブルで一方のテーブルだけにあるデータを取り出す

集合演算
ワイルドカード

検索する際にどんなパターンでもマッチする特殊文字のこと。MS-DOS・Microsoft WindowsやUNIX、Linuxなど多くのオペレーティングシステムでは、ファイル名に対するワイルドカードとして「*」や「?」が使われる。Windowsの場合、「*」は文字数不定(文字数セロも含む)の文字列の代用、「?」は1つの文字の代用として、使うことができる
SQLの場合、「*」の代わりに「%」、「?」の代わりに「_  」用いられる

その他のデータ操作

挿入……テーブルに指定したレコードを挿入する
削除……テーブルから指定したレコードを削除する
更新……テーブルの指定したレコードを更新する

トランザクション処理


情報共有を実現する一方で、確実にデータ保全を行う必要がある。データベースの一貫性を保つために「排他制御」や「トランザクション処理」、「リカバリ機能」といった機能がある

排他制御

データベースに矛盾が生じることを防ぐために、複数の利用者が同時に同一のデータを更新しようとしたとき、一方の利用者に対し、一時的にデータの書き込みを制限する機能。アクセスを制限するためには、データベースを「ロック」する

ロック

あるユーザが更新したり参照したりしているデータを、ほかのユーザが使用できないようにすること
●占有ロック(排他ロック)…データの更新と参照の両方をロックする
●共有ロック(読込ロック)…データの更新だけをロックする

外部からのデータ利用とロック状態
 占有ロック共有ロック
更新××
参照×
削除××
他のプログラムによる排他ロック××
他のプログラムによる共有ロック×
トランザクション

関連する複数の処理をひとつの処理単位としてまとめたもの。金融機関のコンピュータシステムにおける入出金処理のように、一連の作業を全体として一つの処理として管理するために用いる
トランザクションとして管理された処理は「すべて成功」が「すべて失敗」のいずれかであることが保証される。例えば、資金移動システムをコンピュータで処理する場合、出金処理と入金処理は「どちらも成功」か「どちらも失敗」のどちらかであることが要求される。「出金に成功して入金に失敗」すると、出金された資金が宙に浮いてしまうからである
このような場合に、出金と入金をまとめて1つのトランザクションとして管理し、どちらか一方が失敗したらもう片方も失敗させ、どちらも成功したときに初めて全体を成功として評価するのがトランザクション処理である

オンライントランザクション処理

ネットワーク接続されたクライアントがサーバに処理を要求し、サーバが要求に基づいた処理を行い、処理結果をクライアントに戻す処理のこと。通常、データベースの更新(追加・削除を含む)処理が多いが、処理の途中で中断されるとデータの整合性が取れなくなるため、信頼性が要求される

障害発生に備えたバックアップ

データベースに対して更新処理を実行すると、データベース管理システムは「ログファイル」に、更新情報を自動的に書き込む。データベースとログファイルはハードウェア障害に備えて、定期的にバックアップしておく。ハードウェア障害が発生した場合でも、ハードウェア媒体を交換し、バックアップしたログファイルの時点までデータベースを復旧させることができる

ログファイル

コンピュータの利用状況やプログラムの実行状況、データ通信の送受信状況などを記録したファイル。OSやアプリケーションソフトなどが作成するもので、一般的には日時と出来事を発生した順に記録していく。記録する内容はソフトウェアの種類によってさまざまであり、利用者の操作の状況や障害や不具合、警告などの発生状況、送受信したデータの種類などを記録することが多い

リカバリ処理

ハードウェアやソフトウェアに障害が発生したときに、バックアップした時点または障害発生直前にの状態までデータベースを復旧すること。「ロールフォワード」「ロールバック」の2種類がある

ロールフォワード

データベースに障害が発生したときに、記録してあるチェックポイントのデータを再現した上で、ログファイルに残っているチェックポイント後ので処理を再現し、障害直前の状態にまで戻すこと。障害直前のデータが再現される。主に、ディスクの損傷などの物理的障害に対して用いられる

ロールバック

データベースに障害が発生したときに、記録してあるチェックポイントにまでデータを巻き戻して、改めて処理を開始すること。バックアップ時のデータは再現されるが、それ以降に行った処理は失われる。主に、データベースの論理的障害に対して用いられる

リカバリ処理

 

ページトップへ 次へ