データベースとは

大量のデータを滞りなく管理するための仕組み。大量のデータを体系化し目的のデータを見つけやすくするための仕組み。

用途

  • データの共有
    会社の部署単位や大学の研究室単位ならExcelやWordでも事足りるが全社、
    学科や学部単位になるとExcelやWordがハングアップを起こしたり間違えて
    上書き保存してしまったりなど様々なトラブルが予想される。
    Excelには共有ブックという機能もあるがある程度以上のマクロや数式を用いているワークブックでは不向き。
    しかしデータベースを用いればこのようなことはなくなる。
  • 大量のデータの処理
    Excelの最大行数は100万行以上(列は15000列以上)あるが
    並のパソコンであれば数万行を超えたあたりでまともに開けなくなる。
    また専用ブラウザのkakikomi.txtがなかなか開かず困ったという経験をもつ諸兄もいるかもしれない。
    しかしデータベースを用いればこのようなことはなくなる。

データベースの種類

階層型

フォルダのツリー表示(マイコンピュータ→表示→エクスプローラーバー→フォルダ)やレジストリ(ファイル名を指定して実行→regedit)など。
いわゆる木構造(アルゴリズム勉強しようね)です。階層が深くなると目的のデータを探すのが大変。

ネットワーク型

網型とも言う。階層型では上から順番に辿っていくしかなかったがデータ同士が網目状につながっているため複数のルートからデータを探せる。

00776_tr.gif

リレーショナル型

表形式。この表はテーブルと呼ばれる。SQL文による柔軟なデータの処理が可能。
複数のテーブルを作りそれらを相互に連携(リレーション)させて1つのデータベースを構築する。
現在、最も一般的に使われている型。RDBMSという専用のソフトによって構築・運用される。
理論の背景には集合論・群論・述語論理がある。

vipperidvippername
1ブーン
2vipper
3(^ω^)

RDBMSを利用したアプリケーション

データベースの運用をRDBMSが行いアプリケーション側はSQLを送信してデータの処理を要求する。
SQLを受け取ったRDBMSはテーブルからデータを取り出しアプリケーション側へ送信する。
大規模なものはクライアント/サーバ方式で開発されアプリケーションはクライアント側で稼動しRDBMSが
稼動しているデータベースサーバと通信を行いデータの処理が行われる。
RDBMSが提供している機能はその気になればアプリケーションにも実装できるが
複数人が同時に操作した場合の対応、大量のデータの処理方法や実行速度、データのバックアップなど
克服すべき課題は多くそれはプログラマにとってとても大きな負担になる。
また大量のデータを管理するときにはいつも付いて回る問題でもある。
そこでこのような部分を共通化してRDBMSとしてアプリケーションから
独立させることにより信頼性が高まりデータの処理の効率も上がる。

Microsoft Access

オブジェクト指向型

未来派データベース!

分散型

あちらこちらに散らばっている様々なデータベースをネットワークを介して一つのデータベースとして使えるようにする。
構築・運用が頓雑になるものの障害時のリスクや負荷を分散させることができる。
データベース同士の型の違いやハードウェア構成・OSの違いなどを利用者側に
意識させないように様々な工夫を凝らさねばならない。これを透過性という。
現在ではリレーショナル型を基本として異なるRDBMS間でも相互に利用できるようにODBCJDBCといった手段が用意されている。

設計

概念設計と論理設計については例を示す。

概念設計

いったいどのような目的でデータベースを作るのか?何のデータを管理するのか?をハッキリさせる。
今回は図書館業務をシステム化するにあたって図書管理データベースを構築するという場面を想定する。

  • 図書館業務の簡単な流れ
    1.客から書籍Aを"借りたい"と問い合わせを受けた
    2.あるかどうか書庫へ確かめに行く
    3.返答「扱っていない・貸し出し中・貸し出し可能である」
    4.貸し出し中であればいつ貸し出せるのかを示す。
    貸し出し可能であれば貸し出し手続きに入る。
  • もう少し詳しく
    http://u8.getuploader.com/vipprog/download/790/%E5%90%8D%E7%A7%B0%E6%9C%AA%E5%AE%9A-2.jpg

論理設計

どの型のデータベースで構築するのかを決めてそれに応じた設計を行う。

物理設計

論理設計に基づき実際に構築する。

正規化

リレーショナル型においてテーブルの構造を最適化するための方法。最適化されたテーブルを正規形という。

第1正規形

繰り返し項目の除去

第2正規形

関数従属

第3正規形

推移関数従属

第4正規形

第5正規形

ER図

論理設計の際にこれやUMLで図を描く。

トランザクション

複数の処理をひとまとめにして一つの処理とみなすこと

関連項目

参考サイト

参考書籍