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

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

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

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

データベース設計

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

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

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

【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』は、『注文』テーブルの主キーではないため、このようなパターンを『推移関数従属』といいます。

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

 

データベースの物理設計

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

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

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

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

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

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

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