data-base

データ管理の基地データベースの基礎知識4選

顧客情報や製品情報といった様々なデータを、一元的に管理するためにデータベースが活用されている。最近では、そもそものデータベースの数を減らしてコスト削減をするために、「Oracle 12c」といった新商品も出てきている。ここではデータ管理の基地であるデータベースの基礎知識についてまとめる。

情報処理推進機構のシラバスにおいては「54.データベース方式」「55.データベース設計」「56.データ操作」「57.トランザクション処理」に対応している。

 

1 DBMSと関係データベース

データベース管理システム(DataBase Management System:DBMS)とは、データベースの定義や操作、制御などの機能を持つミドルウェアである。代表的なものには関係型、階層型、ネットワーク型の3つがある。

 

関係データベースは表、行、列でできている

関係データベースとは表の形でデータを管理するデータベースである。データ1件が1つの行として記録されるイメージで、追加も削除も基本的に行単位で行う。データの内容次第で複数の表を関係づけして扱うこともできるため、リレーショナルデータベース(Relational Database:RDB)とも呼ばれる。表、行、列の別名は以下のとおり。

  • 表(テーブル):複数のデータを収容する場所のこと
  • 行(レコード、組、タプル):1件分のデータを表す
  • 列(フィールド、属性):データを構成する各項目を表す

 

表を分ける「正規化」という考え方

正規化とは、蓄積されているデータに矛盾や重複が発生しないように、表を最適化することである(表の分割など)。

 

関係演算とビュー表

関係演算とは、表の中から特定の行や列を取り出したり、表と表をくっつけて新しい表を作り出したりする演算のことである。「選択」「射影」「結合」などがある。

  • 選択:行を取り出す
  • 射影:列を取り出す
  • 結合:表と表をくっつける

こういった関係演算を用いて、仮想的に作る一時的な表のことをビュー表という。

 

2 主キーと外部キー

行を特定したり、表と表に関係を持たせたりするためには、主キーや外部キーという「鍵となる情報」が必要である。

 

主キーは行を特定する鍵のこと

主キーとは、各行を識別するために使う列のことである(例:社員番号や学籍番号、型番など)。主キーとできる条件は、「表の中で内容が重複しないこと」「内容が空ではないこと」の2つである。複数列を組み合わせて主キーとしたものを複合キーと呼ぶ(例:6年2組出席番号17番など)。

 

外部キーは表と表とをつなぐ鍵のこと

外部キーとは、表と表とを関連づけるため、他の表の主キーを参照する列のことである(例:部署IDなど)。

 

3 論理演算でデータを抜き出す

論理演算を使うと、「AかつB」「AまたはB」というように複数の条件を組み合わせて使うことができる。

 

ベン図は集合を表す図

ベン図とは、集合(グループ)同士の関係を、図として視覚的に表したものである。

 

論理和(OR)は「○○または××」の場合

論理和では、2つある条件のいずれかが合致するものを真とみなす。

 

論理積(AND)は「○○かつ××」の場合

論理積では、2つある条件の両方が合致するもののみを真とみなす。

 

否定(NOT)は「○○ではない」の場合

否定では、ある条件の「合致しない」ものを真とみなす。

 

4 排他制御

データベースを複数の人が同時に変更できてしまうと、内容に不整合が生じる恐れがある(例:在庫管理など)。そうした問題からデータベースを守るのが排他制御と呼ばれる機能である。

 

排他制御とはロックする技

排他制御とは、処理中のデータをロックして、他の人が読み書きできないようにすることである。以下の2つの方法がある。

  • 共有ロック:他のユーザはデータを読むことができるが、書くことはできない
  • 占有ロック:他のユーザはデータを読むことも、書くこともできない

 

5 トランザクション管理と障害回復

データベースの障害回復には、バックアップファイルやジャーナルファイルを使う。ジャーナルファイル(ログファイル)とはバックアップ後の更新に用いるもので、更新前の状態(更新前ジャーナル)と更新後の状態(更新後ジャーナル)を逐一記録して、データベースの更新履歴を管理している。実際に障害が発生したときは、これらのファイルを使って、ロールバックロールフォワードなどの障害回復処理を行い、元の状態に復旧させる。

 

トランザクションとは処理のかたまり

トランザクションとは、データベースにおける一連の処理をひとまとめにしたものである (例:口座間の銀行振込)。

 

ロールバックはトランザクションを巻き戻す

ロールバックとは、データベース更新前の状態を更新前ジャーナルから取得して、データベースをトランザクション開始直前の状態にまで戻すことである。

 

ロールフォワードはデータベースを復旧させる

ロールフォワードとは、バックアップファイルからもとのデータを復元し、バックアップ以降の更新後ジャーナルから取得して、データベースを障害発生直前の状態まで復旧させることである。

 

最後に

データベースの基礎知識として、DBMSと関係データベース、主キーと外部キー、論理演算、排他制御、トランザクション管理と障害回復についてまとめた。

データベースを活かしたサービスについて、古くは「Google Books」のように、公共図書館や大学図書館の蔵書をデジタル化し、インターネットで検索、閲覧できるサービスの訴訟が話題に上がった(現在は和解)。最近でも名古屋大が全国の条例をデータベース化して公開し始めることで、条例制定の際の調査の省力化に役立てようとしている。悪用されることのないようセキュリティ対策が必須ではあるが、このような機能が今後も各分野で活躍するのは間違いないだろう。

次回はシステム開発についてまとめる。

 

キタミ式イラストIT塾 「ITパスポート」 平成24年度 CBT対応


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>