大量のデータを滞りなく管理するための仕組み。大量のデータを体系化し目的のデータを見つけやすくするための仕組み。
フォルダのツリー表示(マイコンピュータ→表示→エクスプローラーバー→フォルダ)やレジストリ(ファイル名を指定して実行→regedit)など。
いわゆる木構造(アルゴリズム勉強しようね)です。階層が深くなると目的のデータを探すのが大変。
網型とも言う。階層型では上から順番に辿っていくしかなかったがデータ同士が網目状につながっているため複数のルートからデータを探せる。
表形式。この表はテーブルと呼ばれる。SQL文による柔軟なデータの処理が可能。
複数のテーブルを作りそれらを相互に連携(リレーション)させて1つのデータベースを構築する。
現在、最も一般的に使われている型。RDBMSという専用のソフトによって構築・運用される。
理論の背景には集合論・群論・述語論理がある。
vipperid | vippername |
1 | ブーン |
2 | vipper |
3 | (^ω^) |
データベースの運用をRDBMSが行いアプリケーション側はSQLを送信してデータの処理を要求する。
SQLを受け取ったRDBMSはテーブルからデータを取り出しアプリケーション側へ送信する。
大規模なものはクライアント/サーバ方式で開発されアプリケーションはクライアント側で稼動しRDBMSが
稼動しているデータベースサーバと通信を行いデータの処理が行われる。
RDBMSが提供している機能はその気になればアプリケーションにも実装できるが
複数人が同時に操作した場合の対応、大量のデータの処理方法や実行速度、データのバックアップなど
克服すべき課題は多くそれはプログラマにとってとても大きな負担になる。
また大量のデータを管理するときにはいつも付いて回る問題でもある。
そこでこのような部分を共通化してRDBMSとしてアプリケーションから
独立させることにより信頼性が高まりデータの処理の効率も上がる。
未来派データベース!
あちらこちらに散らばっている様々なデータベースをネットワークを介して一つのデータベースとして使えるようにする。
構築・運用が頓雑になるものの障害時のリスクや負荷を分散させることができる。
データベース同士の型の違いやハードウェア構成・OSの違いなどを利用者側に
意識させないように様々な工夫を凝らさねばならない。これを透過性という。
現在ではリレーショナル型を基本として異なるRDBMS間でも相互に利用できるようにODBCやJDBCといった手段が用意されている。
概念設計と論理設計については例を示す。
いったいどのような目的でデータベースを作るのか?何のデータを管理するのか?をハッキリさせる。
今回は図書館業務をシステム化するにあたって図書管理データベースを構築するという場面を想定する。
どの型のデータベースで構築するのかを決めてそれに応じた設計を行う。
論理設計に基づき実際に構築する。
リレーショナル型においてテーブルの構造を最適化するための方法。最適化されたテーブルを正規形という。
繰り返し項目の除去
関数従属
推移関数従属
論理設計の際にこれやUMLで図を描く。
複数の処理をひとまとめにして一つの処理とみなすこと