データベース〜基本情報技術者合格のための学習法〜

データベース基本情報

データベース

 企業は、業務活動を重ねていくと、顧客に関するデータや商品の在庫数など、様々なデータが生まれてきます。
このようなデータを一元的に管理するために1つにまとめたデータの集合体が「データベース」です。

DBMSと関係データベース

DBMS(Database Management System):データベース管理システム

DBMSとはデータベースを構築し、操作、制御などの機能を持ち効率的に管理・運用するためのミドルウェアです。

 DBMSには幾つか代表的な種類があり、代表的なものは、次の3つです。

階層型データを階層で管理します
ネットワーク型データを網状に管理します
リレーショナル型(RDBMS):関係型データを表で表します
現在の主流で、最も良く利用されています

データベース-種類

関係データベース(リレーショナルデータベース(RDB))

リレーショナルデータベースとはデータを複数の表として管理し、表と表の間を互いに関連付けて定義することで、複雑なデータの関連性を扱えるようにしています。

 行と列によって構成された「表形式のテーブル」と呼ばれるデータの集合を、互いに関連付けて関係モデルを使ったデータベースのことです。

 リレーショナルデータベースでは、表の行(横)を「レコード」、表の列(縦)を「フィールド」、表を「テーブル」と呼びます。

関係データベース-表

リレーションとはテーブル同士の関係を設定し、関連付けるものです。2つ以上のテーブルから関連性のあるものを結合して新しい表を作ったり、フィールドの値を更新すると、関連性のあるテーブルの値も自動的に更新したりできます。

リレーショナルデータベースを制御するソフトは、「RDBMS(Relational Database Management System)」「リレーショナルデータベース管理システム」と呼ばれてます。
代表的なものは以下のものです。

会社RDBMS
OracleOracle Database
IBMIBM DB2
MicrosoftMicrosoft SQL Server
オープンソースベースMySQL・PostgreSQLなど

リレーショナルデータベースでの正規化

 リレーショナルデータベースでは蓄積されているデータに矛盾や重複が生じないように、表を最適化します。
 表に同じ内容が複数書いてあり更新する時に、古い情報と新しい情報が混在しないよう、表を分割することを最適化と呼びます。

例えばこのようなテーブルがあり、ここで進級があるとします。

名前学年部活
佐藤1年野球部
田中2年サッカー部
高橋1年バスケ部
鈴木1年野球部
山本2年サッカー部

修正もれがあると、不具合が生じますので、
表をこのように分ます。

部活表

名前部活学年ID
佐藤野球部1
田中サッカー部2
高橋バスケ部1
鈴木野球部1
山本サッカー部2

学年表

学年ID学年
11年
22年

学年表には学年だけを記録するように変更します。
これで、学年表の書き換えのみとなり、データに矛盾が生じる恐れはありせん。

部活表

名前部活学年ID
佐藤野球部2
田中サッカー部3
高橋バスケ部2
鈴木野球部2
山本サッカー部3

学年表

学年ID学年
12年
23年

 

関係演算とビュー表

 正規化によってどんどん分割されていってしまうと使い物にならないか?という疑問が出てきます。
ここで、表の中から特定のカラムやフィールドを取り出したり、表と表を結合して、新しい表を作り出す演算のことを関係演算と呼びます。
関係演算には以下のものがあります。

選択( Selection )

選択は、レコードを抽出する演算です。
すべての行のうち、特定の条件に合致するものだけを取り出すことができます。
多くのレコードから必要なレコードだけに絞り込むための操作です。

関係演算(選択)

射影( Projection )

射影は、フィールドを抽出する演算です。
すべてのフィールドのうち、特定の条件に合致するものだけを取り出すことができます。

関係演算(射影)

結合( Join )

結合とは、複数のテーブルを一つに結合して表示する演算です。

別々の表にある共通の項目を結合キーとして表同士を結びつけ、それぞれの表に含まれる列からなる一つの表として表示することができます。
表の結合の際、”のりしろ”となる項目を結合キーといいます。結合キーには同じデータ型、同じ桁数の列同士を使います。

関係演算(結合)

商( Division )

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

関係演算(商)

ビュー表

選択や射影、結合などの結果表示される一時的な表のことをビュー表(導出表)と呼びます。
これに対し、実際に保存されている表のことを実表(基底表)と呼びます。

 関係演算で作られた表は一時的に必要であって常に必要としないことが多いです。
新しい表を「実在する」表として保存してしまうと,表の数がすぐにふくれあがってしまいます。
 そこで関係演算によって作られた表を「仮想的な」表としてしまえば,ムダな表が保存されずにすみます。

スキーマ

 データベースにおける『スキーマ』(schema)とは、データベースの構造や使用を定義するもので、『データベースの設計図』のようなものです。

データベースでは、そのような作業を『スキーマを定義する』と呼び、『外部スキーマ』『概念スキーマ』『内部スキーマ』の3構造に分けます。

3層で構成されているので、「3層スキーマアーキテクチャ」と呼びます。

外部スキーマ

概念スキーマで定義された論理データから、必要なデータを取り出したビューなどに相当する部分です。
ビューをいじってもデータ格納構造(概念スキーマ)が変わりことはありません。

概念スキーマ

データベース上の論理データで、データベースに保持するデータの要素や、データ同士の関係性を定義したテーブルに相当する部分です。

内部スキーマ

概念スキーマで定義された論理データを、具体的にどのようにDBMS内部に格納するかを定義する部分です。
「ハードウェア的」な変更はこのスキーマで影響を吸収します。

スキーマを3階層に意識して設計することで、ひとつのスキーマを変更した場合に他のスキーマへは干渉しなく最小限の手間での変更が可能です。

おすすめの書籍はこちら
   

コメント

タイトルとURLをコピーしました