「データベース」カテゴリーアーカイブ

データベース方式

情報処理技術者試験での学習内容

【応用情報・基本情報】
・データベースの種類,特徴,データベースのモデル,3 層スキーマの考え方を修得し,応用する。
・データベース管理システムの目的,機能を修得し,応用する。

【ITパスポート】
・データベース及びデータベース管理システム(DBMS:Database Management System)の意義,目的,考え方を理解する。

(1)データベース ITパスポート 基本情報 応用情報

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

代表的なデータベースの種類,データの表現構造,レコード間の関連付けの方法など種類ごとの特徴,与えられた要件に応じて最適なデータベースを選択し,設計に活用することを理解する。

用語例:関係データベース,構造型データベース,HDB(Hierarchical Database:階層型データベース), NDB ( Network Database : 網型データベース), CODASYL( Conference on Data Systems Languages ) 型データベース, OODB ( Object Oriented Database:オブジェクト指向データベース),オブジェクト関係データベース,ハイパテキストデータベース,マルチメディアデータベース,XML データベース

2.データベースのモデル

データベースでは,システムの利用者やプログラムから見たデータの定義,論理的なデータ構造,物理的なデータ構造の3 層を区別することでデータの独立性を高めていること,データモデルの種類,特徴,利点,各スキーマの表現方法,表現できる内容,特徴を理解する。

用語例:概念データモデル,論理データモデル(外部モデル),関係モデル,階層モデル,ネットワークモデル,物理データモデル(内部モデル),概念スキーマ,外部スキーマ(副スキーマ),内部スキーマ(記憶スキーマ)

3.関係データモデル

関係データモデルにおいて,データがどのように表されるのか,表の構成,考え方,複数の表の関係付けを理解する。また,与えられた要件に応じて,規定の表記法を使用してデータモデルを表現することを理解する。

用語例:関係(リレーション),タプル(行,組),属性(列,フィールド),実現値,定義域(ドメイン),E-R 図

(2)データベース管理システム ITパスポート 基本情報 応用情報

1.データベース管理システムの目的

DBMS の目的,代表的な機能とともに,DBMS にも階層型,網型,関係型があること,DBMS のマネジメント機能をデータベース開発や保守に利用することを理解する。

用語例:データベース定義機能,データベース操作機能,データベース制御機能,保全機能,データ機密保護機能

2.排他制御

複数の応用プログラムが一つのデータベースに同時にアクセスするときに必要な制御方法を理解する。

3.障害回復

データベースに障害が発生した場合の障害回復機能と回復手順を理解する。

4.データセキュリティ

データを共有する際に重要となるセキュリティ確保のための方法を理解する。

用語例:トランザクション,ロック,デッドロック,ACID 特性,データ辞書

データベース

この記事での学習内容 ITパスポート 基本情報 応用情報

  • 代表的なデータベースの種類,データの表現構造,レコード間の関連付けの方法など種類ごとの特徴,与えられた要件に応じて最適なデータベースを選択し,設計に活用することを理解する。
  • データベースでは,システムの利用者やプログラムから見たデータの定義,論理的なデータ構造,物理的なデータ構造の3 層を区別することでデータの独立性を高めていること,データモデルの種類,特徴,利点,各スキーマの表現方法,表現できる内容,特徴を理解する。
  • 関係データモデルにおいて,データがどのように表されるのか,表の構成,考え方,複数の表の関係付けを理解する。また,与えられた要件に応じて,規定の表記法を使用してデータモデルを表現することを理解する。

用語例:関係データベース,構造型データベース,HDB(Hierarchical Database:階層型データベース), NDB ( Network Database : 網型データベース), CODASYL( Conference on Data Systems Languages ) 型データベース, OODB ( Object Oriented Database:オブジェクト指向データベース),オブジェクト関係データベース,ハイパテキストデータベース,マルチメディアデータベース,XML データベース、概念データモデル,論理データモデル(外部モデル),関係モデル,階層モデル,ネットワークモデル,物理データモデル(内部モデル),概念スキーマ,外部スキーマ(副スキーマ),内部スキーマ(記憶スキーマ)、関係(リレーション),タプル(行,組),属性(列,フィールド),実現値,定義域(ドメイン),E-R 図

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

データベース

データベースとは、大量のデータをコンピュータで処理できるようにまとめて蓄積したものです。データは処理しやすい形に整理され、格納されています。

データベースには、次のような機能があります。

  • アプリケーションから独立している・・・色々なプログラムから参照できる。
  • データが統合されて一元的に管理される・・・データにムダ(冗長性)がない。
  • 排他制御の機能がある・・・複数の利用者が共有利用しても矛盾が起きない。
  • 障害時の復旧機能がある・・・データの信頼性が高い。

階層型データベース

階層型データベース(Hierarchical Database:HDB)は、外部スキーマとしては階層的な分類体系とみなすデータベースです。「構造型データベース」の一種とされています。

概念スキーマとしては、データ群を木構造で表します。順編成ファイルでは扱いにくかった分類体系を扱うことが容易です。アルゴリズムが基本的には簡潔で、かつ豊富に蓄積されているのが特徴です。

しかし、複数の分類の間の共通部分をまとめにくいという性質があります。また、一つのデータを探す手順は1通りしか存在しません。

ネットワーク型データベース

ネットワーク型データベース(Network Database:NDB)は、外部スキーマとして、階層的な分類体系において、異なる分類の間の共通の下位の分類や項目を持てるようにしたデータベースです。「構造型データベース」の一種とされています。

概念スキーマとしては、典型的には格子状のネットワーク構造になります。複数の分類の間の共通部分をまとめることが出来るのが特徴です。

しかし、自由度は高いが設計が複雑で利用効率が低くなりやすい面があります。

関係データベース

関係データベース(Relational Database:RDB)は、外部スキーマとしては、任意の関係を持つデータ群のデータベースです。

概念スキーマとしては行×列で構成される表(テーブル)が、外部キーによって相互連結されるという形で管理されます。処理は関係演算を基盤にすることによって、簡潔に指定されます。階層やネットワークなどの構造に制約されずに、様々な観点で扱うことが出来るため、利用者の視点で設計でき、構造が理解しやすいのが特徴です。

内部スキーマの処理は効率的とはいえませんが、コンピュータの性能が向上したので、関係データベースが主流になっています。

テーブルには、データがレコード単位に格納されます。各レコードは、いくつかのフィールドから構成されています。下図の例では、商品名や仕入先を関係演算用のキーにして、別の観点の表をユーザへ見せることができます。

オブジェクト指向データベース

オブジェクト指向データベース(Object Orientated Database:OODB)は、「データとそれらの処理方法を一つのオブジェクト」として捉えるデータベースです。

オブジェクト指向データベースは、テキストだけではなく、処理が複雑な画像、音声、動画などのマルチメディアの管理に向いています。

最近では、オブジェクト関係データベースというものも出てきています。

データベースのモデル

データモデルとは

データモデルとは、データベースの設計の各段階における設計の結果のことで、データの構造を表現したものです。

  • 概念データモデル:データベースの概要を設計したもの
  • 論理データモデル:概念データモデルを詳細化したもの
  • 物理データモデル:データモデルの実際の構造を設計したもの

スキーマ

スキーマとは、データベースの定義情報であり、データの枠組みに当たります。

データの項目、設計上の構造、見かけ上の構造、実際の物理的な構造などの情報群を指します。

3層スキーマ

3層スキーマは、データベースの様々なデータモデルを、3つの階層に分類したもので、以下のように分類されます。

外部スキーマ(副スキーマ)
利用者にとってのデータ群の構造。ユーザの見方で設計する。
概念スキーマの一部+利用者側の定義情報。
概念スキーマ(スキーマ)
設計上のデータ群の構造。データベース設計者の見方で設計したもの。
内部スキーマ(記憶スキーマ)
OSやハードウェア、DBMSなど、コンピュータ側から見たデータ群の構造。 実際にデータを格納するための、物理的な構造情報の定義。

3層スキーマの利点

3層スキーマを採用することで、以下のような利点があります。

  • データベースの定義の変更を局所化出来る。
  • 異なるDBMSや異なるOS上の同一DBMSへの移行が容易になる。
  • 階層的に捉えることで、ユーザに取っての外部スキーマを変えずに、異なるコンピュータに移行する際の手間を最小限にすることが出来る。

 

データベース管理システム

この記事での学習内容 ITパスポート 基本情報 応用情報

  • DBMS の目的,代表的な機能とともに,DBMS にも階層型,網型,関係型があること,DBMS のマネジメント機能をデータベース開発や保守に利用することを理解する。
  • 複数の応用プログラムが一つのデータベースに同時にアクセスするときに必要な制御方法を理解する。
  • データベースに障害が発生した場合の障害回復機能と回復手順を理解する。
  • データを共有する際に重要となるセキュリティ確保のための方法を理解する。

用語例:データベース定義機能,データベース操作機能,データベース制御機能,保全機能,データ機密保護機能、トランザクション,ロック,デッドロック,ACID 特性,データ辞書

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

データベースの操作や保管を行うためのソフトウェアを、データベース管理システム(DBMS:Database Management System)といいます。

DBMSには、データベースの定義機能や、データの検索、更新、削除などの操作、運用管理を行う機能があり、データベースを参照するアプリケーションソフトとデータベースの間を取り持ちます。

アプリケーションソフトは、必要なデータをDBMSを介して受け取ることが出来るので、アプリケーションソフト側でデータベースの構造に合わせた処理をする必要はありません。

また、DBMSは同時に複数のアクセスを受けた時の優先度を管理し、データの矛盾が起きないようにするので、複数の利用者がデータベースを共有利用することができます。

データベース定義機能

データベース定義機能は、データ群の構造であるスキーマを定義するためのDBMSの機能です。

ユーザはデータ定義言語(DDL:Data Definition Language)でスキーマを定義します。データベースの利用の準備作業に相当します。

データベース定義機能は、DDLの文を解釈して、データベース内部のスキーマを構築します。

データベース操作機能

データベース操作機能は、データベースの検索や更新をするためのDBMSの機能です。

ユーザはデータ操作言語(DML:Data Manipulation Language)の文で、個々の検索や更新を指定します。これは日常的な業務の作業に相当します。

データ操作機能はDMLの文を解釈して、データベースを検索して検索結果を表示したり、データベースを更新したりします。

データベース制御機能

データベース制御機能は、データのアクセス制御をするためのDBMSの機能です。データベース制御機能には、データ保全やデータ機密保護などが含まれます。

ユーザはデータ制御言語(DCL:Data Control Language)の文で、データのアクセス制御を指定します。

データ制御機能はDCLの文を解釈して、アクセス制御の方法を指定して、運用中に制御を続けます。

保全機能

DBMSの保全機能は、同時更新や障害に対してデータベースを保全するための排他制御や障害管理などの機能です。

データの正しさ(整合性)を保証するための機能で、版数管理や排他制御などがあります。

同時更新によるデータの矛盾

データベースを複数のユーザが共有利用する場合、同一ファイルの同一レコードに対する更新処理を、複数のユーザに同時に許可してしまうと、データベースの更新結果に矛盾が起きてしまう場合があります。

例えば、値が「200」であるデータをユーザAとユーザBが同時に読み取ったとします。
それぞれが、「読み取った値に対して100加算」という演算処理を行い、結果「300」を書き戻すと、遅いほうが速い方の結果を上書きしてしまい、本来「400」となるべきところが「300」となってしまいます。

排他制御

先述のような問題を防止するための機能が排他制御です。排他制御を行いたい場合、データを更新する前にそのデータをロックして、他のユーザがデータを読み書き出来なくします。そして、データを更新する際には、他のユーザがデータをロックしていないか確認して、ロックされている場合は、その処理が終わるまで待ってから処理を始めます。

デッドロック

排他制御を行っている場合、データを読み書きする順番によって、お互いがお互いのロック解除待ちになって、どちらも処理が継続できない現象が起こります。

これを回避するには、データを読み書きする順番を揃えるなどの工夫が必要となります。

 

データ機密保護

DBMSのデータ機密保護機能は、ユーザの認証・確認やアクセスの許可を行います。

障害回復

システムやプログラムの障害に対して、データベースを復旧するための機能です。出来る限り自動で復旧します。

データベース設計

情報処理技術者試験での学習内容

【応用情報】
・データの分析の考え方を修得し,応用する。
・データベースの設計の考え方,手順,手法を修得し,応用する。
・データの正規化の目的,手順を修得し,応用する。
・データベース作成の手順,評価方法を修得し,応用する。
・オブジェクト指向データベースの考え方を修得し,応用する。

【基本情報】
・データの分析,データベースの設計の考え方を理解し,担当する事項に適用する。
・データの正規化の目的,手順を理解し,担当する事項に適用する。
・データベースの物理設計における留意事項を理解し,担当する事項に適用する。

【ITパスポート】
・データの分析・設計の考え方を理解する。

(1)データ分析 ITパスポート 基本情報 応用情報

対象業務にとって必要なデータは何か,各データがどのような意味と関連をもっているかなどの分析と整理,異音同義語,同音異義語の発生を抑えるデータ項目の標準化など,データ分析を行う際の考え方を理解する。また,データモデルの作成手法であるトップダウンアプローチとボトムアップアプローチを理解する。

用語例:データ重複の排除,メタデータ,データディクショナリ

(2)データベースの設計 ITパスポート 基本情報 応用情報

1.データベース開発工程

開発計画立案,外部設計,内部設計,プログラム作成,テスト,移行に至るまでのデータベース開発の工程と手順,手法を理解する。

用語例:システム分析,要求定義,企業データモデル,データモデル,概念データモデル,論理データモデル,物理データモデル,副次索引,分割法,DOA(Data Oriented Approach:データ中心アプローチ)

2.データベースの概念設計

概念設計では,要求定義で定義されたデータ項目と,システム機能設計の際に発生したデータ項目をまとめ,データ項目全体を設計することを理解する。また,DBMS に依存しないデータの関連を表現する手法として,E-R 図を使用した構成要素,属性,関連の表し方,特徴,カーディナリティ(1 対1,1 対多,多対多)などを理解する。

用語例:バックマン線図,エンティティ,アトリビュート,リレーションシップ

3.データベースの論理設計

データの重複や矛盾が発生しないテーブル(表)設計の考え方,主キー,外部キーなどの概念,参照制約,一貫性制約などの制約を理解する。また,ユーザビューの機能と定義を理解する。

用語例:配置モード,親子集合順序,親子集合,索引,フィールド(項目),レコード,ファイル,NULL,一意性制約

(3)データの正規化 ITパスポート 基本情報 応用情報

正規化の目的と手順,第1 正規化,第2 正規化,第3 正規化などを理解する。また,正規化の考え方に従った,具体的な設計案に対して更新容易性や性能面などから評価し,最適な設計を行うことを理解する。

用語例:完全関数従属,部分関数従属,推移関数従属

(4)データベースのパフォーマンス設計 応用情報

処理の高速化のためにあえて正規化を行わず,表の結合にかかる時間を短縮するなど,パフォーマンスを考慮したデータベース設計の考え方を理解する。

用語例:非正規化

(5)データベースの物理設計 基本情報 応用情報

データベースの物理設計では,アクセス効率,記憶効率の側面からデータベースの最適化を図ることを理解する。また,磁気ディスク上に記憶される形式や論理データ構造の物理データ構造へのマッピングなど,データベースの物理的構造を設計する際の留意事項を理解する。

用語例:ディスク容量見積り,論理データ構造のマッピング,ファイル編成,最適ブロック設計,物理入出力,性能評価,コンプレッション,デコンプレッション,性能改善ポイント

(6)データベースの作成手順 応用情報

データベース環境の準備,入力データの準備,データベースの定義,データの登録,データベースの検証などの一連のデータベースの作成手順を理解する。

用語例:データベース定義情報,レコード形式,親子関係,キー順,存在制約,インバーテッドファイル

(7)データベースの評価・運用 応用情報

データベースの性能評価方法を理解し,評価結果によってはチューニングや再編成などの対応策が必要であることを理解する。

用語例:データベースの運用・保守

(8)オブジェクト指向データベース 応用情報

オブジェクト指向データベースが開発された背景を理解し,複雑なデータ構造をもつデータの保存などに利用されていることを理解する。

用語例:オブジェクト指向データモデル,複合オブジェクト,XML データベース,オブジェクト識別性,O/R マッピング

 

 

データ分析

この記事での学習内容 ITパスポート 基本情報 応用情報

対象業務にとって必要なデータは何か,各データがどのような意味と関連をもっているかなどの分析と整理,異音同義語,同音異義語の発生を抑えるデータ項目の標準化など,データ分析を行う際の考え方を理解する。また,データモデルの作成手法であるトップダウンアプローチとボトムアップアプローチを理解する。

用語例:データ重複の排除,メタデータ,データディクショナリ

データ分析

データ分析とは、対象業務にとって必要なデータは何か、各データがどのような意味と関連を持っているかなどの分析と整理、異音同義語、同音異義語などの発生を抑えるデータ項目の標準化など、データの名称や意味を標準化することをいいます。

データ分析は以下のような手順で行われます。

  1. 対象業務で用いている伝票を収集し、伝票の利用目的、伝票名、伝票に記入している項目などを洗い出す。
  2. 各データがどのような意味と関連を持っているかを調べる。
  3. 異音同義語、同音異義語の発生を抑えるようにデータ項目を標準化する。
  4. データの重複を排除する。
  5. メタデータ(データに関するデータ)をまとめ、データ・ディクショナリ(メタデータの辞書)に格納する。

データの標準化

データの標準化とは、データの名称や意味を標準化することです。多くのデータを扱う場合の基本として大切です。

例えば、名称が同じで意味が異なる同音異義語や名称が異なって意味が同じ異音同義語の発生を抑えます。

異音同義語の例:部門、部署
同音異義語の例:保証、保障

データの標準化をしないと、例えば同じ種類の伝票データが「部門」と「部署」という表に分かれてしまい、合計値を求めることができません。また、同音異義語があると、口頭での指示で誤解が生じたり、PC上での漢字変換ミスによるトラブルを誘発したりします。

データ重複の排除

データ重複の排除とは、一つであるべきデータが複数存在したり、内容が似た表が複数存在したりすることを排除することです。それによって、ミスの防止、処理効率の向上、記憶スペースの削減などをはかります。

例えば、顧客名簿のデータが重複すると、顧客数のカウントミスや、宣伝メールを複数送信するミスが起きます。

メタデータ

メタデータとは、データのためのデータという意味です。特にデータベースにおいては、データの属性や定義情報を表すデータのことをさして、メタデータと呼んでいます。

例えば、顧客の方には「顧客名簿」という名称が付与されます。表の中には、会社、部門、肩書、姓名、住所などの列があります。これらの名称は顧客の名刺には記載されていないメタデータです。

*表のメタデータ:別名、主キーの列名など
*列のメタデータ:データ型、長さ、制約条件など

データディクショナリ

データディクショナリ(データ辞書)は、データの名称や意味などのメタデータを登録した表のことです。データベース全体に存在する名称をデータディクショナリとして集中管理し、名称や意味を標準化すると、データベース全体の整合性や簡潔性を保つのに役立ちます。データディクショナリは、データベース管理システムの機能によって、作成・更新します。

 

データベースの設計

この記事での学習内容 ITパスポート 基本情報 応用情報

  • 開発計画立案,外部設計,内部設計,プログラム作成,テスト,移行に至るまでのデータベース開発の工程と手順,手法を理解する。
  • 概念設計では,要求定義で定義されたデータ項目と,システム機能設計の際に発生したデータ項目をまとめ,データ項目全体を設計することを理解する。また,DBMS に依存しないデータの関連を表現する手法として,E-R 図を使用した構成要素,属性,関連の表し方,特徴,カーディナリティ(1 対1,1 対多,多対多)などを理解する。
  • データの重複や矛盾が発生しないテーブル(表)設計の考え方,主キー,外部キーなどの概念,参照制約,一貫性制約などの制約を理解する。また,ユーザビューの機能と定義を理解する。

用語例:システム分析,要求定義,企業データモデル,データモデル,概念データモデル,論理データモデル,物理データモデル,副次索引,分割法,DOA(Data Oriented Approach:データ中心アプローチ)、バックマン線図,エンティティ,アトリビュート,リレーションシップ、配置モード,親子集合順序,親子集合,索引,フィールド(項目),レコード,ファイル,NULL,一意性制約

データベースの概念設計

データベースの概念設計(外部スキーマの設計)では、DBMSに依存しないデータの関連を表現するのが望ましい形です。そのような方法の一つにE-R図があります。

E-R図(Entity Relationship図)

E-R図(E-Rモデル)は構造化分析の技法の一つで、データの関連を図で表現することができます。データベース設計の時に、ユーザの味方(ビュー)を定義するのに用いられます。

実体(エンティティ)

E-R図は対象データを実体(エンティティ)として四角形で表し、実体と実体の結びつきを関係(関連、リレーションシップ)として矢印(又はひし形付きの線)で表します。

*E-R図に描く実体は「社員」や「製品」といった実在するものでも、「注文」などの概念的なものでも構いません。

アトリビュート

属性(アトリビュート)とは、実体に付随する性質、例えば「社員」に付随する「社員番号」や「氏名」のことです。

実体(エンティティ)がデータベースの表に相当し、アトリビュートは表の項目(列)になります。

関係(リレーションシップ)

関係とは、実体と実体の結びつきのことです。それに名前をつけても付けなくても構いません。関係に対して、カーディナリティを付与して、関係性を示します。

カーディナリティ

カーディナリティとは、集合論の基数あるいは濃度という意味の用語です。データベースの場合には、関係(リレーションシップ)における、「1対1」、「1対多」、「多対多」という関係を指します。

関係性を線で表す場合は、「多」を矢じりで示します。データベースを設計する作業の中には、カーディナリティを定める作業があります。

  • 1:1 ・・・ 一つの実体に対して、一つの実体しか結びつかない。
  • 1:n ・・・ 一つの実体に対して、複数の実体が結びつく。
  • m:n ・・・ 複数の実体に対して、複数の実体が結びつく。

データベースの論理設計

データベースの論理設計では、データの重複や矛盾が発生しないテーブル(表)設計の考え方が必要となります。

主キー、外部キーの設定や、参照制約、一意性制約などの制約を用いてそれらの問題を回避します。

主キー

スキーマを定義する時、表の主キーとなる列を決めます。

主キーとは、各行を識別するために使うキー項目です。表を構成する列のうち、同じ内容が重複して入ることがなく、その内容によって必ず特定の1行を選び出せるような列をその表の主キーに指定します。

主キーの列の値をNULL(空値)とすることは認められません。

また、ある一つの列の内容だけでは行を特定できない場合、複数の列を組み合わせて主キーとすることがあります。これを複合キーといいます。

外部キー

関連する表同士を結びつけるための外部キーを指定します。

外部キーとは、一方の表から他表を参照するためのキー項目です。主キーと違い、一つの表に複数外部キーを設定でき、キーの内容に重複やNULLがあっても構いません。ただし、参照される側は主キーであることが望ましいとされています。

参照する側の表に、参照される表の主キーと同じ内容が登録される列を、外部キーとして持たせておきます。そうすると、外部キーを手がかりに相手の表の主キーと内容が一致する行を探し出し、一つの行として結びつけることができます。

制約

制約とは、データベースに作りこまれたルールのことです。データの正しさ、整合性を保つために設定されます。

表定義の際のDDLで定義できる他、DBMSによっては、運用中に後から制約を追加したり、on/offの切り替えができたりするものもあります。

外部キー制約(参照制約)

互いに参照関係のある表同士は、データの整合性を保つ必要があります。そのため、DBMSは以下を制約によって禁止することができます。

  • 他表から参照されている表の削除
  • 他表から参照されている行の削除
  • 他表から参照されている値の変更
  • 参照先の列にない値を持つ行の挿入
一意性制約

一意性制約とは、表のすべての行において、同じ値が同じ列にあってはならない、という制約のことです。データベースの設計において、必要に応じて一意性制約を指定します。(主キーに関しては、自動的に一意性制約がつくDBMSもあります。)

例えば、商品コードで商品を特定したい場合、商品コードを主キーにし、商品名に一意性制約をつけます。これによって、異なる商品コードであるのに同じ商品名の商品が存在する、といった事態を避けることができます。

 

データの正規化

この記事での学習内容 ITパスポート 基本情報 応用情報

正規化の目的と手順,第1 正規化,第2 正規化,第3 正規化などを理解する。また,正規化の考え方に従った,具体的な設計案に対して更新容易性や性能面などから評価し,最適な設計を行うことを理解する。

用語例:完全関数従属,部分関数従属,推移関数従属

正規化

正規化とは、『一事実一箇所を目指して、テーブルの整合性を保ったまま、テーブルの冗長性を排除してデータを管理できるようにすること』です。具体的には、データベースを設計する際に、各項目の意味や関連性を保ちながら、表ができるだけ簡潔な形になるように分割していく作業を指します。

正規化を行うことで、検索の効率が良くなり、データベースの保守作業がしやすくなるなどの長所があります。

一方で、表の数が増え、管理の手間がかかる点、一連のまとまった情報を得るために複数の表をたどる必要があり、負荷がかかるといった短所もあります。

例えば、学生の科目履修に関する「学生コード、学生名、科目コード、科目名、履修年度、成績」という情報を、一つの表に記録したとします。

このままでは、同じ内容が繰り返し格納されてしまうので、格納効率の悪い、使いにくいデータベースになってしまいます。

このデータベースを整理して、より効率的で使いやすいものにするためには、正規化を行い、共通の主キーに従属する列ごとに幾つかの表に分割します。

一つの表を複数に分けるときは、列同士の関連性を失わせないために、参照される表の主キーをもう一方の表に外部キーとして持たせておきます。

正規化の手順

正規化を徹底する手順は、以下のような3つのステップへ区分されます。

第一正規化
繰り返される部分を別の表として分割する。
第二正規化
キーの一部に従属する部分を別の表として分割する。部分関数従属という状態をなくす処理。
第三正規化
キーに間接的に従属する部分を別の表として分割する。推移関数従属という状態をなくす処理。
関数従属

「属性集合Aが属性集合Bに関数従属する」とは、「属性集合Bの値を決めると属性集合Aの値が一意に決まる」という意味です。これを「B→A」と表します。関数従属は、表を分割する正規化の手順を進める判断材料です。

完全関数従属

完全関数従属とは、表を分解する必要のない状態であり、キーでない属性がキーに関数従属して、部分関数従属はないということです。

部分関数従属

部分関数従属とは、キーでない属性が一部のキーにも関数従属することです。この状態であれば、第二正規化をする余地があります。

先述の「科目履修」の例であれば、「科目履修」の主キーは「学生コード」と「科目コード」ですが、「学生名」は「学生コード」に従属し、「科目名」は「科目コード」に従属しています。それぞれ、主キーの一部に関数従属しているので、部分関数従属となっています。

推移関数従属

推移関数従属とは、「AがBに従属して、BがCに従属するので、AはCに間接的に従属する」「C→B→A」という状態です。「B→A」の部分を分解するように第三正規化をする余地があります。

正規化の手順(具体例)

具体的な例として、オンラインショップの商品購入履歴を表にしたものを正規化していきます。

1.非正規形

まずは、伝票のたぐいをそのまま表にした状態のものを作ります。この時点では、繰返し項目や導出項目(*)を表の中に含みます。

*導出項目
合計値や評価など、他の項目から計算や関数によって導き出せる項目のことで、基本的にデータベースに格納する必要はない項目。

2.第一正規化

第一正規化では、『繰返し項目の分離』、『導出項目の削除』という作業を行います。

繰返し項目は、『商品ID~金額』のフィールドであり、これらのフィールドを『注文明細』テーブルとして分割します。

さらに、『金額』、『合計金額』、『消費税』については、『単価』、『数量』をもとに算出できるので、削除します。

第一正規化を行った後の表は、以下のようになります。

3.第二正規化

第二正規化では、「部分関数従属」を別表に移す作業を行います。

『注文明細』テーブルのうち、『商品名』、『分類』、『単価』は、『商品ID』によって一意に決まるので、分割できます。

第二正規化を行った後の表は、下のようになります。

4.第三正規化

 第三正規化では、『推移関数従属』を別表に移す作業を行います。

『注文』テーブルのうち、『名前』、『住所』、『電話番号』、は、『顧客ID』によって一意に決まるので、分割できます。『顧客ID』は、『注文』テーブルの主キーではないため、このようなパターンを『推移関数従属』といいます。

第三正規化を行った後の表は、下のようになる。

 

データベースの物理設計

この記事での学習内容 基本情報 応用情報

データベースの物理設計では,アクセス効率,記憶効率の側面からデータベースの最適化を図ることを理解する。また,磁気ディスク上に記憶される形式や論理データ構造の物理データ構造へのマッピングなど,データベースの物理的構造を設計する際の留意事項を理解する。

用語例:ディスク容量見積り,論理データ構造のマッピング,ファイル編成,最適ブロック設計,物理入出力,性能評価,コンプレッション,デコンプレッション,性能改善ポイント

データベースの物理的構造

データベースの物理的構造はディスク上に記憶される形式のことです。論理データ構造を、物理データ構造にマッピング(対応付けて当てはめる)します。

データベースの物理設計においては、データベースの構成要素(特に表・索引・一時作業域など)の容量を積算して、余裕を加味した上で、磁気ディスクなどの使用料を見積もる必要があります。

その上で、運用と保守の効率を考えて物理的構造を設計し、性能を評価して、構造を改善します。

データ操作

情報処理技術者試験での学習内容

【応用情報・基本情報】
・関係データベースのデータの操作を修得し,応用する。
・データベース言語の種類,SQL 文を修得し,応用する。

【ITパスポート】
・データの抽出などの操作を理解する。

(1)データベースの操作 ITパスポート 基本情報 応用情報

関係データベースのデータの操作として,集合演算(和,差,積,直積),関係演算(選択,射影,結合,商)などを理解する。

用語例:関係代数

(2)データベース言語 基本情報 応用情報

1.データベース言語の種類

データベース言語は,DDL(Data Definition Language:データ定義言語)とDML(Data Manipulation Language:データ操作言語)などに大別されること,また,これらにはSQLを単独で使用する独立言語方式と,他のプログラム言語から使用する親言語方式があることを理解する。

用語例:会話型SQL,埋込型SQL,モジュール言語,コマンド方式,フォーム,クエリ

2.データベース言語(SQL)

a.データ定義言語

スキーマ,テーブル,ビュー,処理権限を定義するSQL 文を理解する。また,データ型,列制約,表制約の定義方法,ビューの更新(更新可能なビューと更新不可能なビュー)を理解する。

用語例:実表,ビュー表,文字型,数値型,日付型,一意性制約,参照制約,検査制約,非NULL 制約,アクセス権

b.データ操作言語(SELECT 文)

要求されるデータを選択するために,SELECT 文による問合せの方法,条件を指定した特定行や列の選択,表の結合,BETWEEN やIN などの述語指定,集合関数,グループ化,並べ替えなどを理解する。

用語例:集約関数,パターン文字,相関名,副問合せ,相関副問合せ

c.その他のデータ操作言語

INSERT 文,UPDATE 文,DELETE 文などのSQL 文を理解する。

d.埋込型SQL

カーソル操作,非カーソル操作,親言語との接続など,埋込型SQL によるデータ操作の仕組み,利点,利用法を理解する。また,カーソル操作において,カーソルの宣言,操作の開始,終了,読み込みを行うなどのSQL 文を理解する。

用語例:カーソル

データベースの操作(1)

この記事での学習内容 ITパスポート 基本情報 応用情報

関係データベースのデータの操作として,集合演算(和,差,積,直積),関係演算(選択,射影,結合,商)などを理解する。

用語例:関係代数

データベースの操作

関係データベースにおけるデータ操作には、検索系のデータ操作と更新系のデータ操作があります。

データベースの関係演算

関係データベースにおける主な操作には、選択、射影、結合があり、これらを関係演算といいます。

選択

選択とは、評価ら行を抽出する操作です。すべての行のうち、ある条件に当てはまるものだけを選び出します。多くのレコードから必要なレコードだけに絞り込むための操作です。

選択の条件

選択は、「商品名=ジュース」のように、一つだけの条件で選ぶ以外に、複数の条件をANDまたはORで組み合わせて使うことができます。

例えば、単価が150で、かつ仕入先がB飲料である行を選択する場合、「単価=150  AND  仕入先=B飲料」という、二つの条件をANDで結ぶ論理積の関係になります。

また、仕入先がA食品の行とB飲料である行の両方を選択する場合、「仕入先=A食品  OR  仕入先=B飲料」という、二つの条件をORで結ぶ、論理和の関係になります。

仕入先がA食品以外の行を選択する場合は、「仕入先≠A食品」という否定の関係となります。

ワイルドカード

選択の条件文に、「%」や「_」といったワイルドカードを文字の代わりに用いて、列の内容の一部を使った選択ができます。

  • %: 任意の文字列を表します。文字数は0文字以上で何文字でも構いません。
  • _: 任意の1文字を表します。

上の表の場合、ワイルドカードを用いて以下のように選択できます。

  • 「商品名=%パン」:「クリームパン」「あんパン」「チョコパン」を選択。
  • 「商品名=_ _パン」:「あんパン」を選択。

射影

射影とは、表から列を抽出する操作です。幾つかの列からなる表のうち、必要な列のみを表示し、他を非表示にできます。

結合

結合とは、複数の表を一つに結合して表示する操作です。

別々の表にある共通の項目を結合キーとして表同士を結びつけ、それぞれの表に含まれる列からなる一つの表として表示することができます。

表の結合の際、”のりしろ”となる項目を結合キーといいます。結合キーには同じデータ型、同じ桁数の列同士を使います。
上の例の場合、それぞれの「商品番号」が結合キーとなっています。

二つの表で一方の表と同じ項目を含むレコードを、もうひとつの表から取り出し、その後結果からその項目を削除する。

ビュー表

選択や射影、結合などの結果表示される表のことをビュー表といいます。これに対し、実際に保存されている表のことを実表といいます。

選択も射影も結合も、データベースのスキーマとして作られている表(実表)から、DBMSが必要な部分を読み込んで表示した結果です。実表そのものを変えてしまう操作ではありません。

例えば、結合の操作をすると今までなかった列の組み合わせを持つ表を表示できますが、これによってスキーマに新しい表が追加されるというわけではありません。

きちんと正規化されたスキーマは、選択や射影といった操作でデータを抽出したり組合せたりし易いだけではなく、演算した結果を表示することも可能で、いろいろな用途に利用できます。(正規化のプロセスで導出項目を削除するのは、関係演算の実行時に演算できるため)

データベースの操作(2)

この記事での学習内容 ITパスポート 基本情報 応用情報

関係データベースのデータの操作として,集合演算(和,差,積,直積),関係演算(選択,射影,結合,商)などを理解する。

用語例:関係代数

 

データベースの集合演算

集合演算は、集合同士の演算であり、関係演算よりも基本的な演算として使われます。

和集合演算

和集合演算は、表Aと表Bのすべての行を合わせた表を作る演算です。同じ行は一つで済ませます。

差集合演算

差集合演算は、表Aのうち、表Bと同じ行を取り除いた表を作る演算です。

 

積集合演算

積集合演算は、表Aと表Bの両方にある行だけの表を作る演算です。同じ行は一つで済ませます。

直積集合演算

直積集合演算は、表Aの行と表Bの行のすべてを組み合わせた行で構成される表を作る演算です。列の数や属性はAとBの間で異なっていても構いません。

更新系のデータ操作

更新系のデータ操作には、挿入、更新、削除があります。

  • 挿入: 表に新しいレコードを挿入する。
  • 更新: 表の指定した項目を更新する。
  • 削除: 表から指定したレコードを削除する。

 

 

 

データベース言語

この記事での学習内容 基本情報 応用情報

データベース言語は,DDL(Data Definition Language:データ定義言語)とDML(Data Manipulation Language:データ操作言語)などに大別されること,また,これらにはSQLを単独で使用する独立言語方式と,他のプログラム言語から使用する親言語方式があることを理解する。

用語例:会話型SQL,埋込型SQL,モジュール言語,コマンド方式,フォーム,クエリ

データベース言語

データベース管理システムへのユーザからの指示は、データベース言語で表現します。データベース定義言語には以下の様なものがあります。

  • データ定義言語(DDL)
  • データ操作言語(DML)
  • データ制御言語(DCL)

データ定義言語

データ定義言語(Data Definition Language:DDL)は、データベースを使う準備として、データ群の構造であるスキーマを定義するための言語です。

機能
CREATE DATABASE
又は CREATE SCHEMA
データベース名を定義する
CREATE TABLE表を定義する
CREATE VIEWビュー表を定義する
GRANTアクセス権を定義する

データ操作言語

データ操作言語(Data Manipulation Language:DML)は、日常的にデータベースの検索や更新をするための言語です。DMLには以下の4種類があります。

独立言語方式
プログラムを作成する際に利用するプログラム言語とは別に用意された言語です。会話形でコマンドを入力して結果が出てくる形で利用します。特にこのように利用される言語を会話形SQL(Structure Query Language)と呼んでいます。クエリーとは問合せという意味で、データベースに問合せていろいろな操作(更新、検索、削除、追加等)をするという意味になります。
親言語方式
高水準言語(COBOL、FORTRAN、Cなど)にDMLを組み込んで利用する方式です。高水準言語を親言語と呼びます。親言語方式には組み込み方の違いにより2種類あります。
モジュール方式
プログラム内からDML部分をサブルーチンとして呼びだす方式です。
埋め込み方式
プログラム内にDMLを直接書き込んでしまう(埋め込む)方式です。

データ制御言語

データ制御言語(Data Control Language:DCL)は、コミットやロールバックといった、トランザクションの制御などを行います。

 

トランザクション処理

情報処理技術者試験での学習内容

【応用情報・基本情報】
・データベースの排他制御,障害回復の考え方,仕組みを修得し,応用する。
・トランザクション管理,アクセス効率向上のための考え方を修得し,応用する。
・データに対するアクセス制御の必要性,代表的なアクセス権限を修得し,応用する。

【ITパスポート】
・データベースの処理方法を理解する。

(1)排他制御 ITパスポート 基本情報 応用情報

データの整合性を保つために,複数のトランザクションが同時にデータベースのデータを更新することが起こらないようにする排他制御の考え方を理解する。また,ロック方式,セマフォ方式,コミット制御の仕組みを理解する。

用語例:専有ロック,共有ロック,ロック粒度,デッドロック,1 相コミットメント,2相コミットメント

(2)障害回復 ITパスポート 基本情報 応用情報

障害に備えたバックアップの方式,世代管理の考え方,障害発生直前の状態まで回復を図るリカバリ処理の仕組み,データベースの利用環境の準備,アクセス効率の向上のための再編成などの考え方,仕組みを理解する。

用語例:フルバックアップ,差分バックアップ,増分バックアップ,ダンプファイル,リストア,データディレクトリ,ジャーナルファイル(ログファイル),チェックポイント,ロールフォワード,ロールバック,ウォームスタート,コールドスタート

(3)トランザクション管理 基本情報 応用情報

データベースは複数の利用者が同時にアクセスするので,トランザクション処理にはACID特性が求められること,四つの特性の意味を理解する。

(4)データベースの性能向上 基本情報 応用情報

データベースへのアクセス効率向上のために,インデックスを有効に活用する考え方を理解する。

用語例:インデックス数,負荷,ユニークインデックス,クラスタ化インデックス

(5)データ制御 基本情報 応用情報

利用者ごとに,データに対するアクセス制御を行う必要性があること,アクセス権限としてはデータベースに接続する権限,データを検索する権限,データを新規登録する権限,データを更新する権限などがあることを理解する。

用語例:参照権限,挿入権限,削除権限

 

排他制御

この記事での学習内容 ITパスポート 基本情報 応用情報

データの整合性を保つために,複数のトランザクションが同時にデータベースのデータを更新することが起こらないようにする排他制御の考え方を理解する。また,ロック方式,セマフォ方式,コミット制御の仕組みを理解する。

用語例:専有ロック,共有ロック,ロック粒度,デッドロック,1 相コミットメント,2相コミットメント

排他制御

DBMSはデータの矛盾を防止するため、排他制御によるアクセスタイミングのコントロールを行います。一つのファイルに対して、一つのトランザクション(取引単位)による更新処理中に、別のトランザクションが更新を行うことを禁止し、先の更新処理が完了しなければ、次の更新処理ができないようにします。

占有ロック

占有ロックとは、一つのファイルへのアクセスを一つのトランザクションだけに専有させて、他のトランザクションのアクセスを禁止することです。つまり、データの更新に対しても、参照に対してもロックを掛けます。先に占有ロックがかかっていた場合、後から占有ロックを掛けることができません。

共有ロック

共有ロックは、一つのファイルへのアクセスを複数のトランザクションに許可して、占有ロックを禁止することです。共有ロックは、共通の参照ファイルなどに用います。

先に占有ロックがかかっていた場合、後から共有ロックはかけることができませんが、先に共有ロックがかかっていた場合、後から共有ロックをかけることはできます。

ロック粒度

ロック粒度とは、ロックで保護するデータの細かさの度合いです。

粒度が粗いということは、保護するデータの単位が大きいということです。ロックのオーバーヘッドは減るという特徴がある一方で、アクセスを禁止される確率が高くなり、アクセス可能になるまで待つことから、性能が低下しがちです。

粒度が細かいということは、保護するデータの単位が小さいということです。アクセスを禁止される確率が低いので、性能が高いのが特徴ですが、ロックのための処理の回数が増えてオーバーヘッドが増えます。

デッドロック

デッドロックとは、複数のプロセスが相手が専有している資源の解放を待って、どちらの処理も停止してしまうことです。

対処法としては、以下の方法があります。

  • 更新プロセスの開始時に、表単位でロックをかける。
  • 更新プロセス開始時に、更新対象の全レコードにロックをかける。
  • 全てのプロセスで、更新処理を行う順序を合わせる。

コミットメント

あらゆる事態に対応するために、DBの更新は”仮”の状態で行われ、いつでももとに戻せるようにしておくのが一般的です。
*元に戻すことをロールバックという。

また、仮の更新結果は他のトランザクションからは見えません。

コミットメント(コミット)は、仮の更新を確定させる処理のことを指します。コミットが完了してはじめて、他のトランザクションからも更新後の値が参照できるようになります。

1相コミットメント

1相コミットメントとは、1回の処理でデータベースの更新が確定(コミット)する方式です。単相コミットメントとも呼ばれます。

単一のデータベースだけで運用されている場合に利用されたりしますが、データベースが複数関係し分散された環境で運用される場合、1相コミットメント方式では、データベース間に矛盾が生じるリスクがあるため、後述の2相コミットメント方式が採用されています。

2相コミットメント

2相コミットメント方式では、データベースの更新を「更新準備」と「更新」の2回のフェーズに分けて処理します。この方式は、ネットワークなどを利用し、分散されたデータベースが複数ある場合、1相コミットメント方式では複数のデータベースの更新が正常に終了できない場合があります。

確実に全てのデータベースの更新を行うには、分散されたデータベースの更新準備が全て整ってから更新を行えば、すべてのデータベースの更新が行えることになります。このように、更新準備フェーズと更新フェーズの2相にする方式を、2相コミットメントと呼んでいます。

もし、更新準備は終わり、更新フェーズに入ってから何らかの障害にて更新が行えなかった場合は、ロールバック処理を全てのデータベースに対して行うことで、更新前の状態にデータベースを戻すことができます。

障害回復

この記事での学習内容 ITパスポート 基本情報 応用情報

障害に備えたバックアップの方式,世代管理の考え方,障害発生直前の状態まで回復を図るリカバリ処理の仕組み,データベースの利用環境の準備,アクセス効率の向上のための再編成などの考え方,仕組みを理解する。

用語例:フルバックアップ,差分バックアップ,増分バックアップ,ダンプファイル,リストア,データディレクトリ,ジャーナルファイル(ログファイル),チェックポイント,ロールフォワード,ロールバック,ウォームスタート,コールドスタート

リカバリ機能

データベースの障害回復処理には、ロールフォワードとロールバックがあります。

ロールフォワード

最新のバックアップファイルを書き戻した後、ジャーナルファイルの更新後の情報を用いて、バックアップ時点から障害直前の状態まで更新を進める方法です。

ディスクの破損など、大きな障害が置きた場合に行います。

  1. ディスク障害などでデータベースが停止
  2. 障害が発生したディスクなどの媒体を復旧する
  3. バックアップファイルを元にデータを書き戻す
  4. ジャーナルファイルで、バックアップファイル取得後の更新情報を反映する

ロールバック

ジャーナルファイルを使って、障害が発生する前の状態に戻す復旧方法です。

  1. 更新前のレコード内容をジャーナルファイルに保存し、レコードの内容を書き換えます。
  2. 書き換えが完了したら、更新後の状態をジャーナルファイルに保存して、更新処理を終了します。
  3. 障害により更新処理が中断された場合には、更新前のデータを元にレコードを更新前の状態に戻し、更新処理を終了します。
ジャーナルファイル

ジャーナルファイルとは、更新前ジャーナル、更新後ジャーナル、更新時刻、トランザクション識別子などを記録する、データベースの更新履歴です。

チェックポイント

チェックポイントとは、障害に備えて障害回復に必要な情報をジャーナルファイルに記録するというバックアップの時点です。チェックポイントを頻繁に設けると障害回復は正確に近くなりますが、ジャーナルファイルに記録するオーバーヘッドが増えます。

ウォームスタート方式

ウォームスタート方式は、チェックポイントまで戻って、更新情報の記録を用いてデータベースを回復します。

  1. ジャーナルファイルを用いて、最新のチェックポイントの状態に戻す。
  2. チェックポイント以降のトランザクションのうち、障害発生前にコミットした分をロールフォワードして、更新を反映。
  3. 障害発生前にコミットしていない分はロールバックして整合性を確保した後でトランザクションを再実行。

ウォームスタート方式は、例えば通信障害などでロランザクションが寸断されたケースなどから復旧する場合に用います。

コールドスタート方式

コールドスタート方式とは、データベースの状態をすべてクリアして、データベース全体のバックアップファイルを用いて、データベースを回復します。

バックアップファイルの作成や回復に時間がかかるため、もとに戻る時点を頻繁には設けられません。

  1. ハードウェアを交換する。
  2. バックアップを用いて、データベースをバックアップ時点の状態の戻す。ジャーナルファイルが破損している場合は、バックアップを元にジャーナルファイルも復旧させる。
  3. データベースのバックアップ以降にコミットしたトランザクションのうち、ジャーナルファイルに更新後情報がある分をロールフォワードして更新を反映する。

コールドスタート方式は、ディスクの故障などハードウェアに障害が発生した場合などに用います。

 

トランザクション管理

この記事での学習内容 基本情報 応用情報

データベースは複数の利用者が同時にアクセスするので,トランザクション処理にはACID特性が求められること,四つの特性の意味を理解する。

ACID特性

ACID特性とは、トランザクション処理に対して、データベースに求められる4つの特性のことです。データベースには複数のユーザが同時にアクセスするので、注意が必要になります。

  • Atomicity: 原始性
  • Consistency: 一貫性
  • Isolation: 分離性
  • Durability: 耐久性
原始性(Atomicity)
一つのトランザクション処理が完全に実行されるか、そうでなければ元の状態に戻るという性質。これがないとデータベースが回復困難な状態になります。
一貫性(Consistency)
矛盾のない条件で表されるデータベースの整合性が、一つのトランザクション処理の前でも後でも保たれているという性質。
独立性(Isolation)
一つのトランザクション処理が、他のトランザクション処理に影響されないこと。
耐久性(Durability)
一つのトランザクション処理が完了したら、その結果は記録されること。これが保証されないと、障害発生時にデータベースが回復困難な状態になります。

 

 

データベースの性能向上

この記事での学習内容 基本情報 応用情報

データベースへのアクセス効率向上のために,インデックスを有効に活用する考え方を理解する。

用語例:インデックス数,負荷,ユニークインデックス,クラスタ化インデックス

インデックスの活用

データベースのインデックス(索引)は、本体となるデータ群の他に、検索を早めるために設けられたデータ群です。

インデックスは、キーとその存在1の一覧であり、本体となるデータ群の配置順をたどる必要が無いので、データベースの性能を向上させます。

インデックスを活用すると高速になるのは、インデックス表作成時にハッシュ表やB木など、高速に探索できるためのデータ構造をDBMS側で作成しているため、インデックスを活用すると高速に検索が出来るようになります。

複合インデックス

複数の項目の値を条件に検索するようなデータ操作をしばしば行う場合に、複数の項目に対して一つのインデックスを設定することです。

インデックス作成時の注意事項

インデックス作成時には、以下のような点に注意が必要です。

  • 絞込効果が小さい項目に設定すると効果が薄い。(例えば、名簿における性別や血液型)
  • データを更新すると、インデックスも更新されるので、更新頻度が多い表にインデックスを作成すると更新速度が低下する。
  • 絞込の効果が高く、検索キーとして使われる項目に対して、インデックスを作成するのが望ましい。

 

 

データ制御

この記事での学習内容 基本情報 応用情報

利用者ごとに,データに対するアクセス制御を行う必要性があること,アクセス権限としてはデータベースに接続する権限,データを検索する権限,データを新規登録する権限,データを更新する権限などがあることを理解する。

用語例:参照権限,挿入権限,削除権限

アクセス権限

アクセス制御とは、どのユーザがどのデータにアクセスできるかという権限(アクセス権限)を決めることです。

以下のような種類のアクセス権限があり、データ制御言語を用いることで設定されたり、チェックされたりします。

  • 接続権限: データベース又はスキーマに接続する権限
  • 検索権限: データを検索する権限
  • 登録権限: データを新たに追加する権限
  • 更新権限: 既存のデータを変更する権限
  • 削除権限: 既存のデータを削除する権限
  • 使用権限: スキーマや関数などのオブジェクトを使用する権限

 

 

データベース応用

情報処理技術者試験での学習内容

【応用情報】
・データベースの応用対象,応用方法を修得し,応用する。
・分散データベースの特徴,機能を修得し,応用する。
・データ資源管理の仕組みとして,リポジトリ,データディクショナリを修得し,応用する。

【基本情報】
・データ分析,業務システム,ソフトウェア開発と保守などに,データベースがどのように応用されているかを理解する。
・分散データベースの特徴,利点,留意事項,データ同期の仕組みを理解する。
・データ資源管理のあらましを理解する。

(1)データベースの応用 基本情報 応用情報

データウェアハウス,データマート,OLAP(Online Analytical Processing),データマイニングなど,データを分析して有効活用する技術の特徴,これらの技術が企業会計システム,在庫管理システムなどで使われていること,その応用方法を理解する。

用語例:OLTP(Online Transaction Processing),ETL(Extract/Transform/Load),データクレンジング,ビッグデータ,文書管理システム,営業支援システム

(2)分散データベース 基本情報 応用情報

複数のサイトに配置された分散データベースの特徴,利点,取り扱う上での留意事項,サイト間でのデータ同期の仕組み,関連する機能,集中型データベースとの違いを理解する。

透過性,クライアントキャッシュ,コミットメント制御,2 相コミットメント,コミットシーケンス,同時実行制御,レプリケーション,水平分散,垂直分散,表の分散(水平,垂直),分散問合せ,結合演算,分散トランザクション,OSIRDA(Open Systems Interconnection-Remote Database Access:開放型システム間相互接続-遠隔データベースアクセス)プロトコル

(3)データ資源管理 基本情報 応用情報

データの属性,意味内容,格納場所など,データを管理するための情報(メタデータ)を収集,管理したデータディクショナリや,ソフトウェア開発と保守における様々な情報を一元的に管理するリポジトリを理解する。

IRDS(Information Resource Dictionary System:情報資源辞書システム),ファクトデータベース,リファレンスデータベース,データベースサービス

 

データベースの応用

この記事での学習内容 基本情報 応用情報

データウェアハウス,データマート,OLAP(Online Analytical Processing),データマイニングなど,データを分析して有効活用する技術の特徴,これらの技術が企業会計システム,在庫管理システムなどで使われていること,その応用方法を理解する。

用語例:OLTP(Online Transaction Processing),ETL(Extract/Transform/Load),データクレンジング,ビッグデータ,文書管理システム,営業支援システム

データウェアハウス

データウェアハウスとは、トランザクション(取引)などの時系列データを、長期的に大量に蓄積したデータベースの一種です。通常のデータベースと異なり、過去の取引データを消去することなく、時系列的な分析に用いるのが特徴です。

例えば、商品ごとの売上高と気象とに因果関係がある場合には、長年の取引データを保管して、気象データと照合して分析することによって、今後の購買管理、製造管理、在庫管理、あるいは販売管理などの精度を上げることができます。

ウェアハウス(倉庫)という言葉が用いられているように、データウェアハウスは、通常のデータベースに比べて、データの更新や検索の回数は比較的少ない代わりに、膨大な記憶容量を必要とします。

データマート

データマートとは、データウェアハウスの中から、特定の目的に合う部分を抽出して、通常は部門や個人のデータベースに格納したものです。蓄積されたデータを分析する時の処理効率を良くするのが目的です。

OLAP

オンライン分析処理(Online Analytical Processing:OLAP)とは、データウェアハウスやデータマートを使い、複雑な分析を短い応答時間で処理することです。市場分析、予算作成、経営報告、財務諸表作成など膨大なデータの分析作業を支援します。

関係データベースが共通データを一元的に保管するのに比べて、商品別、地域別、月別などの多次元的な観点で傾向を発見したり、整理したりするという特徴があります。

汎用的な統計ソフトウェアを用いるのと比べると、分析や報告を繰り返しながら、作業の改善や自動化を継続していくという傾向があります。

データマイニング

データマイニングとは、統計的手法などを活用して、膨大なデータを分析して、発見的に新たなノウハウを発掘する作業のことです。

発見的分析を助けるコンピュータグラフィックスなどの具体的な技術を指すこともありますが、確たる技法や技術が揃っているわけではなく、ナノテクノロジのような包括的なキャッチフレーズのような位置づけです。

 

データウェアハウスやデータマート、OLAP、データマイニングなどのデータベースの応用技術は、企業会計システム、在庫管理システム、文書管理システム、営業支援システムなどを高度化するために用いられています。

分散データベース

この記事での学習内容 基本情報 応用情報

複数のサイトに配置された分散データベースの特徴,利点,取り扱う上での留意事項,サイト間でのデータ同期の仕組み,関連する機能,集中型データベースとの違いを理解する。

透過性,クライアントキャッシュ,コミットメント制御,2 相コミットメント,コミットシーケンス,同時実行制御,レプリケーション,水平分散,垂直分散,表の分散(水平,垂直),分散問合せ,結合演算,分散トランザクション,OSIRDA(Open Systems Interconnection-Remote Database Access:開放型システム間相互接続-遠隔データベースアクセス)プロトコル

分散データベースの特徴、利点、留意事項

分散データベース(Distributed Database)とは、複数の場所に分散されたデータベース群が、一つのものであるかのように扱えるデータベースです。場所は一つのコンピュータの複数の記憶装置である場合、局所ネットワークのサーバである場合、あるいはインターネットで結ばれている場合などがあります。

集中データベースと比べると、分散データベースは以下のような特徴や目的を持っています。

性能の向上
拠点と各地とで検索・更新が分散している場合、よく検索・更新するデータは、地域に分散したほうが応答時間や通信費用が改善される。
構造の多様性
データベースの定義を拠点で標準化するのに対して、地域に権限を移譲したり、合併した企業の独自性を尊重したりして、柔軟性を重視しつつ緩やかに連携する。
段階的な増強
一度に情報システムを拠点に完成してしまうのではなく、時間とともに段階的なサーバなどを追加したり、リプレースしたりしていく方式。コンピュータ、記憶装置、および通信回線の価格低下と性能向上を見越したり、ユーザ側のニーズの変化を見越したりして取られる方式である。
障害対策
大きな災害に備えて、データを分散したり、複製を別の地域においたりして、被害の最小化や回復容易性を狙う。

分散データベースの利用にあたっては、以下のような点に留意する必要があります。

  • 変更の同期: コミットメント制御などにより、障害が発生したときにもデータの一貫性が保たれるようにする。(2相コミットメントなど)
  • 透過性: 分散データベース特有のデータの存在場所などをユーザに意識させず、ユーザには集中データベースと同じようにみえること。
  • オープン性: DBMSと多様なハードウェア、オペレーティングシステム、応用ソフトウェアとの連携を受け入れる性質。分散すると関連する要素が増えるので特に重要である。
  • アクセスの節減: データベースの設計、レプリケーション、およびユーザの問合せ分の注意によって、遠隔地への問合せや更新の頻度を減らす。

透過性

透過性とは、分散データベース特有のデータの存在場所などをユーザに意識させず、ユーザからは集中データベースと同じようにみえるという性質です。

以下のような特性で構成されます。

  • 位置透過性: データの存在場所を意識せずに利用できる性質。
  • 移動透過性: データの存在場所が変更されても、影響なく利用できる性質。
  • 重複透過性: 一つの表が複数の存在場所に重複して存在しても、意識せずに利用できる性質。
  • 分割透過性: 一つの表が複数の場所に分割されて存在しても、意識せずに利用できる性質。
  • 障害透過性: ある場所に障害が発生しても、代替場所が代替することによって、利用し続けることが出来る性質。
  • データモデル透過性: 各場所のデータモデルが階層型データベース、関係データベースなどと異なっても、意識せずに利用できる性質。

サイト間でのデータ同期の仕組み

データ更新の際、サイトごとのデータベースと同時に更新する方法と、一台の管理サーバ(マスタサーバ)が更新処理を受け付けて、その後スレーブサーバを更新する方法の2種類があります。

前者を同期マルチマスタ方式、後者を非同期マスタスレーブ方式と呼んでいます。

レプリケーション

レプリケーションとは、データの複製を別の場所にも作成し。常に内容が一致するように更新することです。負荷分散や障害対応を目的としています。

レプリケーションは、障害透過性を向上させることができます。また、データを重複させても、重複透過性が保たれることが必要です。

 

 

データ資源管理

この記事での学習内容 基本情報 応用情報

データの属性,意味内容,格納場所など,データを管理するための情報(メタデータ)を収集,管理したデータディクショナリや,ソフトウェア開発と保守における様々な情報を一元的に管理するリポジトリを理解する。

IRDS(Information Resource Dictionary System:情報資源辞書システム),ファクトデータベース,リファレンスデータベース,データベースサービス

データディクショナリ

データ項目の名称や意味を登録した辞書のことです。「データ辞書」と呼ぶこともあります。

企業情報システムにおけるデータディクショナリは、データの整合性を保つためのデータ定義を標準化する役割を果たします。

データベースの重複や、同じ意味を持つデータの呼び方が複数存在したり、逆に同じ名称のデータが異なる意味を持ったりして、システムが肥大化することを防ぎます。

リポジトリ

リポジトリはデータベースの類似語であり、様々な意味で使われます。小さなデータベース、簡易なデータベース、検索機能のある文書ライブラリ、あるいはユーザが意識しないシステム内部の共通データやメタデータのファイルなどの意味で使われます。全体として、「小さめの」や「共有資産」のようなニュアンスがあります。

特に文書・プログラムのバージョン管理システムではリポジトリという用語が使われることが多くあります。

IRDS(情報資源辞書システム)

情報資源辞書システム(Information Resource Dictionary System:IRDS)とは、データベースのデータ辞書にとどまらず、情報資源全体の辞書システムです。

全社情報システムの辞書、ソフトウェア開発支援システムの辞書、およびデータベース設計の時に必要な辞書を、標準化して統合管理するシステムです。