IT初心者のための基本情報ではじめる データベース 入門 ~データベース分野 1


2022-09-27 更新

この連載は、これから IT の勉強をはじめる人を対象としたものです。 基本情報技術者試験の出題分野ごとに、仕組み、主要な用語、および過去問題を紹介します。 受験対策としてだけでなく、 IT の基礎知識を幅広く得るために、ぜひお読みください。

今回は、データベース 分野 その 1 として データベース全般 を取り上げます。

データベース が必要な理由

データベースという言葉は、データ( data )の基地( base )という意味です。

データベースというアイディアは、第二次大戦後に米国の国防総省で誕生したと言われています。 データを一元管理する基地を作り、データの内容を最新の正しい状態に保ち、必要なときにすぐに利用できるようにすれば、軍事行動を円滑に進められます。 これが、データベースが必要な理由です。

 

現在では、様々なビジネスの現場で、データベースが活用されています。 データベースが必要な理由は、ビジネスの現場でも同じです。 データの内容を最新の正しい状態に保ち、必要なときにすぐに利用できるようにすることで、ビジネスを円滑に進めるのです。

データベースを実現するための道具として、コンピュータが使われます。 コンピュータが、データの基地になるのです。

データベース の仕組み

コンピュータでデータベースを実現するには、ハードウェアとしてサーバーマシン、大容量のハードディスク、ネットワークが必要であり、ソフトウェアとして、サーバー用 OS 、 DBMS ( Data Base Management System 、データべース管理システム)、データファイルが必要です。 これらの中で特に重要なのが DBMS です。

データベースの実体は、膨大なデータを格納したファイルですが、それをクライアントから直接読み書きされてしまうと、様々な問題が生じる恐れがあります。 たとえば、権限のないクライアントが勝手にデータを閲覧したり書き換えたり、複数のクライアントが同時に同じデータを更新して矛盾が生じてしまうことです。

このような問題を防ぐために、 DBMS は、クライアントの権限や、複数のクライアントの競合などを管理します。 データを操作する言語である SQL の命令を解釈して実行するのも、 DBMS の役割です(図 1 )。

図 1 DBMS がデータベースを管理する

データベースには、いくつかの方式がありますが、現在の主流は、関係データベース( relational database )です。 Oracle Database 、 SQL Server 、 DB2 、 MySQL などの代表的な DBMS 製品が、関係データベースを採用しています。

関係データベースの関係( relation )は、 2 次元の表を意味します。 関係データベースは、表にデータを格納するのです。

図 2 は、商品のデータを格納した「商品表」の例です。 データは、行単位に格納されます。 1 行のデータのまとまりをレコードと呼びます。 データを表形式で取り扱えるようにするのも、 DBMS の役割のひとつです。

図 2 関係データベースは、表にデータを格納する
商品表
商品 ID 商品名 定価
S0001 りんご 100
S0002 バナナ 150
S0003 オレンジ 200

レコードレコードレコード

データベース の主要な用語

基本情報技術者試験のシラバス(情報処理技術者試験における知識・技能の細目)に示されたデータベースの分野は、

  • データベース方式
  • データベース設計
  • データ操作
  • トランザクション処理
  • データベース応用

という項目に分けられています。

以下は、それぞれの項目における主要な用語です。 赤色で示した用語は、後で紹介する過去問題で説明します。

データベース方式
関係データベース階層型データベース網型データベースオブジェクト指向データベースXML データベース
データベース設計
E-R 図エンティティ属性リレーションシップカーディナリティ( 1 対 1 、 1 対多、多対多)、主キー、外部キー、第 1 正規化、第 2 正規化、第 3 正規化
データ操作
campaign データを操作する言語である SQL に関する項目です。 SQL に関しては、次回の連載で取り上げますので、今回は省略します。
トランザクション処理
トランザクション同時実行制御(排他制御)共有ロック専有ロック、ロック粒度、デッドロック、ログファイル、ロールフォワード、ロールバック
データベース応用
ビッグデータ、データマイニング、構造化データ、半構造化データ、非構造化データ

データベース の過去問題

データベースの分野の過去問題を 3 問ほど紹介しましょう。

データベースの種類と特徴

最初は、データベースの種類と特徴に関する問題です。 選択肢ア、イ、ウ、エは、シラバスに示されたデータベース方式のいずれかを説明しています。 現在主流の DBMS 製品の多くは、関係データベースを採用していますが、他のデータベース方式も知っておきましょう。

問 29 平成 25 年度 秋期

関係データベースのデータ構造の説明として,適切なものはどれか。

親レコードと子レコードをポインタで結合する。
タグを用いてデータの構造と意味を表す。
データと手続を一体化(カプセル化)してもつ。
データを 2 次元の表によって表現する。
選択肢ア
階層型データベースの説明です。 階層型データベースでは、レコードを親子関係で連結した階層構造にします。
網型データベースも、レコードとレコードを連結しますが、両者の違いは、レコード間に親子関係があるものが階層型データベースであり、親子関係がなく任意にレコードを連結したものが網型データベースです。
選択肢イ
XML データベースの説明です。 XML データベースは、タグを使ってデータに意味付けをして、さらにデータの構造も示します。
選択肢ウ
オブジェクト指向データベースの説明です。 オブジェクトとは、データと処理(選択肢には「手続き」と示されています)をまとめたものです。 オブジェクト指向データベースでは、オブジェクトをデータベースに格納します。
選択肢エ
関係データベースの説明です。 既に説明しましたが、関係データベースは、 2 次元の表にデータを格納します。

この問題は、関係データベースの説明を選ぶものなので、選択肢エが正解です。

E-R 図に関する問題

次は、E-R 図に関する問題です。 E-R 図とは何か? という内容になっています。

問 26 平成 28 年度 秋期

E-R 図に関する記述のうち,適切なものはどれか。

関係データベースの表として実装することを前提に表現する。
管理の対象をエンティティ及びエンティティ間のリレーションシップとして表現する。
データの生成から消滅に至るデータ操作を表現する。
リレーションシップは、業務上の手順を表現する。

E-R 図( Entity Relationship Diagram 、実体関連図)は、データベース設計でよく使われる図です。 E-R 図では、システム化の対象となる業務を、エンティティおよびエンティティ間のリレーションシップで表します。

したがって、正解は、選択肢イです。

 

たとえば、商品販売という業務では、
「商品 ID 」「商品名」「単価」
などのデータが単独で取り扱われることはありません。 「商品 ID 」「商品名」「単価」をまとめた「商品」として取り扱われます。

この「商品」のように、いくつかのデータをまとめたものをエンティティと呼び、エンティティにまとめられた個々のデータを「属性」と呼びます。

さらに、商品販売の業務では、「顧客」が「商品」を買う、のようにエンティティとエンティティが関連を持ちます。 この関連をリレーションシップと呼びます。

E-R 図は、その名前が示す通り、エンティティとリレーションシップを表す図です。

 

図 3 は、商品販売の業務の E-R 図の例です。

図 3 商品販売の業務の E-R 図の例

2 段に区切られた四角形でエンティティを表し、上段にエンティティの名前を記述し、下段に属性を記述します。
四角形をつなぐ線でリレーションシップを表し、線の両端にカーディナリティ(多重度)を記述します。

カーディナリティは、エンティティどうしの関連が、

  • 1 対 1
  • 1 対多
  • 多対多

のいずれであるかを示すものです。 ここでは、矢印なしの側が 1 を、矢印ありの側が多を意味しています(他の表記方法を使う場合もあります)。

カーディナリティの解説

「顧客」エンティティと「売上」エンティティのカーディナリティは、 1 対多です。 1 人の顧客は、複数の売上に関連するからです。たとえば、田中さんという顧客が、 3 回の買い物をしたら、売上(売上伝票だと考えてください)が 3 つ(多数)になります。

「商品」エンティティと「売上」エンティティのカーディナリティも、 1 対多です。 1 つの商品も、複数の売上に関連するからです。 たとえば、リンゴという商品が、 5 回売れたら、売上が 5 つ(多数)になります。

1 対 1 は、「夫」と「妻」の関連のように、どちらからたどっても相手が 1 つだけになる場合です。

間に「売上」を入れずに、「顧客」と「商品」を直接つなぐと、多対多になります。 田中さんは、リンゴとバナナとミカンを買い、リンゴは、田中さんと鈴木さんと山田さんに売れる、のように、どちらからたどっても相手が多数になるからです。

E-R 図で設計されたデータベースを、関係データベースとして実装するときには、エンティティが表になり、エンティティの属性が表の列になります。

同時実行制御に関する問題

最後は、同時実行制御に関する問題です。

クライアントがデータベースに行う操作のまとまりをトランザクションと呼びます。 DBMS には、複数のクライアントのトランザクションの競合を管理する機能があり、これを同時実行制御(排他制御)と呼びます。

同時実行制御は、ロックによって実現されます。 これは、あるトランザクションの実行中に、他のトランザクションが同じデータを操作できないように鍵(ロック)をかけるイメージです。

問題文に示された資源とは、ロックの対象となるデータのことです。 ロックを獲得するとは、データにロックをかけるという意味です。

問 29 平成 27 年度 秋期

ロックの両立性に関する記述のうち,適切なものはどれか。

トランザクション T1 が共有ロックを獲得している資源に対して,トランザクション T2 は共有ロックと専有ロックのどちらも獲得することができる。
トランザクション T1 が共有ロックを獲得している資源に対して,トランザクション T2 は共有ロックを獲得することはできるが,専有ロックを獲得することはできない。
トランザクション T1 が専有ロックを獲得している資源に対して,トランザクション T2 は専有ロックと共有ロックのどちらも獲得することができる。
トランザクション T1 が専有ロックを獲得している資源に対して,トランザクション T2 は専有ロックを獲得することはできるが,共有ロックを獲得することはできない。

データベースの操作は、

  • 参照(データの検索)
  • 更新(データの新規登録、書き換え、削除)

に大きく分けられます。 これに合わせて、ロックには、共有ロックと専有ロックがあります。

共有ロック
データを参照する場合は、共有ロックをかけます。 共有ロックは、データを見ているだけなので、他のトランザクションも同じデータを見ること(共有ロックをかけること)ができます。
ただし、同じデータを更新すること(専有ロックをかけること)はできません
専有ロック
データを更新しているので、他のトランザクションは同じデータを見ること(共有ロックをかけること)も、更新すること(専有ロックをかけること)もできません。

したがって、正解は、選択肢イです。

今回は「データベース」その 1 として「データベース」が必要な理由、仕組み、主要な用語、および過去問題を紹介しました。

次回は、「データベース」その 2 として「 SQL 」の分野を取り上げます。

それでは、またお会いしましょう!

label 関連タグ
科目A試験は、
免除できます。
独習ゼミで科目A試験を1年間免除して、科目B試験だけに集中しましょう。
免除試験を受けた 74.9% の方が、
科目A免除資格を得ています。
科目A免除試験 最大 2 回の
受験チャンス !
info_outline
科目A免除試験 最大 2 回の
受験チャンス !
詳しく見てみるplay_circle_filled
label これまでの『基本情報ではじめる IT の勉強』の連載一覧 label 著者