データベースの操作
第9章 データベース
データベース操作
データベースでは、データの操作が可能である。データを操作する時は機械語を利用して、コンピュータに操作を実行させる。データ検索、データ挿入、データ削除、データ更新の操作について知ろう。ISOによって標準化されているSQLも基礎を抑えておくことでIT関連の仕事で役に立つはずです。
DBMS
データベースとは、データが1つの塊となっているものを指す言葉である。実際にあなたがデータベースを作成、操作するためにはデータベースマネジメントシステム(DBMS : Data Base Management System)が必要となります。ここではデータベースマネジメントシステムでデータ操作について説明します。
RDBMS:関係データベースの管理システムをRDBMS(リレーショナルデータベースマネジメントシステム)という。
関係演算
データベースを操作するには独自の演算方式を使います。それが関係演算と集合演算です。ここでは関係演算について説明します。関係演算には、選択、射影、結合の3つがあります。
- 選択:表から指定した行を取り出す演算のこと
- 射影:表から指定した列を取り出す演算のこと
- 結合:2つの表が共通に持つ項目で結合を行い、新しい表を作り出す演算のこと
集合演算
集合演算には、和・差・積などがあります。
- 和:2つの表を合わせて新しい表を作ること
- 差:任意の表から重複する行を取り除いて新しい表を作る
- 積:どちらにも属する行で新しい表を作る
トランザクション
データベースでは、トランザクションという単位で処理が行われる。トランザクションとは、データベースにアクセスする単位を示しており、データベースにアクセスしたユーザーがデータの検索や更新などをした時の一連の処理をトランザクションというのです。
トランザクションが完了したとき、データベースの更新内容を確定することをコミットといいます。コミットが行われていない場合、更新内容は確定されていないことになります。
トランザクションを実施途中に、そのトランザクションのすべての処理を取り消すことをロールバックといいます。
トランザクションを管理する排他制御
データベースには複数のユーザーが同時使用するのが大前提となります。同時にトランザクションが発生した時の優先順位(処理順序)によっては、データベースの整合性が崩れる場合があります。
例えば、AさんとBさんが同時にデータベースにアクセスして、両方が同じデータを更新しようとした時、データベースに矛盾が生じるのです。
このような事態を防ぐために、DBMSは排他制御を使ってデータに矛盾が生じないようにすることができます。排他制御が機能すると、同じデータへのアクセスを制限できます。これをデータをロックするといいます。
リカバリ
トランザクションが正常に完了しなかった場合の対策としてリカバリができるようになっています。障害管理の一環として、データベースマネジメントシステムは、ログと言われるデータ更新記録をつけているため、トランザクションの履歴をログファイルとして管理し、正常に完了しなかった場合は、更新前の元のデータベース状態に戻すことができます。正常な状態に戻すことをリカバリといいます。ここでは2つのリカバリの方法を説明します。
◆ バックワードリカバリ(ロールバック)
トランザクション開始時点の状態に戻すリカバリ方式
◆ フォワードバックリカバリ(ロールフォワード)
バックファイルからデータを復元して、バックアップ後に行われた処理を再実行することで障害発生直前の状態に戻すリカバリ方式。