カテゴリー
情報処理

データベース(その1)

データベース」という単語をよく耳にする。

なんとなくは分かるけど、厳密にはよく知らないという人が大半だと思われる。

私もそうだ。

データベースとは、決められた形式で整理されたデータの集まりである。

一般的には、データベースはコンピュータ上に再現されたものを指すが、紙の電話帳なども広い意味でのデータベースである。

私が小さい頃好きだった、ウルトラマン怪獣百科や東映ヒーロー怪人百科などもデータベースの一種と言えるだろう。

今回からデータベースについて観てみたい。

スカイライダーの怪人群

                

・データベースの目的

データベースは、データをプログラムやアプリケーションから切り離して、一元管理したものである。

この一元管理により、次のような効果が得られる。

独立性の確保

データがアプリケーションに依存しない。アプリケーションの変更がデータに影響しないのである。

また、データの共有が容易になる。

データ矛盾発生の防止

データの整合性を確保できる。論理に矛盾がなく一貫する。

同じデータをアプリケーションごとに重複させないですむようになる。

データの機密保持、標準化

データベースシステムのセキュリティ機能が利用できる。

データの標準化に対する意識が高まる効果がある。データをある標準に合わせるのである。

                

・3層スキーマアーキテクチャ

データベースのデータを記憶装置やアプリケーションから独立させるために、ANSI/SPARCの3層スキーマアーキテクチャという考え方がある。

スキーマとは、データの構造やデータの格納形式などを記述した「枠組み」を表す言葉である。

概念スキーマは、データベース化する対象世界をモデル化した構造で、データベースそのものと考えることができる。

外部スキーマは、ユーザやアプリケーションの目的に応じて、概念スキーマから必要なものを抽出・加工して提供されるものである。

内部スキーマは、概念スキーマを物理的に磁気ディスク装置上に実装するための形式である。ファイルのレコード様式やインデックスの形式などが内部スキーマに相当する。

最も重要なスキーマは概念スキーマである。

これをユーザの視点や実装方法と分けて考えることで、アプリケーションやファイル編成などの変更の影響が概念スキーマに及ばないようにしている。

これにより「データの独立性」を確保しているのである。

                

・E-R図

概念スキーマの設計は、データベースをつくる上で最も重要な作業だ。

これは以下の手順で進められる。

対象世界→概念モデル作成→論理モデル作成→概念スキーマ

概念モデルとは、対象世界がどのように関連しているかを表すモデルで、データベースの形式に左右されない。

論理モデルは、概念モデルを使用するデータベースの種類に応じて詳細化したものである。

                

概念モデルを記述する代表的な手法に、E-R図(ERD : Entity-Relationship Diagram)がある。

E-R図では、対象となるシステムや業務で用いるデータを、エンティティ(実体)リレーションシップ(関連)に分けて表現する。

エンティティは四角形で、リレーションシップは多重度(カーディナリティ)とともに線や矢線で表される。

エンティティはシステムや業務で利用されるデータそのものに該当し、リレーションシップはエンティティ間に存在する関係に該当する。

上図だと、学生エンティティと学校エンティティの間には、“所属する”という関連があるということになる。

                          

多重度とは、関連先のエンティティのインスタンス(実際のデータや値)がいくつ対応するか、を表すデータの数的対応関係のことである。

例えば、上の図だと、社員は1つの部署に所属し、部署には複数の社員が所属する、という関係を示している。

社員エンティティから部署エンティティを見たとき、部署エンティティの数字の1が所属先が1つだけを表す。

反対に、部署エンティティから社員エンティティを見たとき、部署に1人以上の社員が所属する関係を表す。

ここでコメ印は上限の無い”多”を示す。

多重度の例

また、E-R図ではエンティティ名に加えてデータ項目である属性を表現することも可能だ。

学校データは、Idと学校名と住所より構成され、学生データは、学校Idと学籍番号と氏名より構成される。

                          

・データベースの論理モデル

概念モデルを作成すると、それを使用するとデータベースの種類に応じて論理モデルに書き換える。

ネットワークモデル

対象をレコードの親子関係で表す。親子関係は多:多に対応する。

階層モデル

対象をレコードの親子関係で表す。親子関係は1:多に対応する。

関係モデル

対象を二次元の表形式で表す。現在の主流である。(関係データベース)

オブジェクト指向モデル

対象をオブジェクト(データと手続きとを一体化)単位で表す。マルチメディア情報などを柔軟に扱うことができる。

                            

・データベース言語

論理モデルの選択を終えたら、データベース言語を用いてスキーマを記述する。

データベース言語は次のように分類できる。

DDL(データ定義言語 : Data Definition Language)

スキーマを定義・記述する言語。

DML(データ操作言語 : Data Manipulation Language)

データの登録や検索などに使用する言語。

                        

データベース言語の標準には、関係データベース用のSQLや、ネットワーク型データベース用のNDLなどがある。

SQLのデータ定義言語をSQL-DDL、データ操作言語をSQL-DMLと分類することもある。

                           

・後記

データベース作成の要諦は、概念スキーマの作成であり、そのための最初の一歩が概念モデルの作成ということになる。

概念スキーマさえできれば、あとは作業ということもできるかもしれない。

データベース、この辺からだんだん面白くなってきそうである。

作成者: advance

豊洲市場の水産荷受会社(セリ販売する会社)に勤務してます。
勤務時間が夜中から昼までです。
夜の活動は自粛?して、午後の早い時間帯に勉強に励み、税理士試験に合格しました。

コメントを残す

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