DBの歴史 ~第3章~
はじめに
データベースをテーマとして徒然なるままに記述しています。何となく『そうなのね~』と解釈していただければそれで結構です.逆に言うと多少(大いに?)厳密性に関しては怪しいところを含むかもしれません.基本的には一般論として述べるつもりですが,所々筆者の独断と偏見に基づく表現も含まれることと思いますので,それを前提にお読みください.
コラムの連載予定
1 DB(データベース:Data Base)とは
2 DBシステムとファイルシステムとの違い
3 DBの歴史 ←現在地
4 何故正規化するのか
5 ER図とテーブル関連図
6 トランザクションとリカバリ
7 同時実行制御
8 データの活用
9 おわりに
DBの歴史
DBの歴史を語る上ではデータモデルの変遷(変化,進化)を説明するのが適していると思われる.
ここでいうデータモデルとは何か.
それはビジネス界における現実世界で扱うデータを整理し図示化したものである.
管理すべき対象(の塊)が何か,そしてその管理対象どうしの関係がどうなっているかを明示したものである.
また,xxモデルやxxDB,xxシステム等似た用語が登場するが,ここでは厳密な定義はせず,発言の前後関係から適当と思われる用語を使用する.
従って,□〇論という立場から見るとおかしいという指摘もあろうかと思うが,これも徒然なる所以とご容赦ください.
データモデルおよびDBMSはコンピュータの進化と共に変化・成長してきた.
モデルの初期は階層モデル(木構造),ネットワークモデルと言ってよいと思う.
そして,現在主流のリレーショナルモデル,今となってはやや派生的な位置づけとなるがオブジェクト指向モデルやマルチメディアデータベースといったものも登場した.
このあたりまでは,どちらかというとカチッとしたガチガチに固いDBである.
そして最近ではもう少し柔らかいDBが主流になってきているが,これは『いい加減』という意味では無く,『良い加減』という表現が適している.
以下,イメージを持ってもらうために簡単に説明するが,管理対象の実現値をレコードと表現する(オカレンス,バリュー,オブジェクトも同様な意味で使われる).
▶階層モデル
レコードとレコードのつながりをポインタで表現する.
階層構造=木構造であり,親→子→孫→,,,という関係の木構造となる.
親子のつながりだけでなく,子供どおし(第一子→第二子→第三子→,,,)のつながりもポインタで表現する(逆の方向も持つ).
親は複数の子を持つが,子は一つの親しか持たない.
代表例がIBMのIMS-DBである.
1960年代から70年代の主流であり,基幹系,勘定系システムの多くはこの構造のDBで構築されていた.
ネットワークモデル
階層モデルと同様親子関係で表現するが,子も複数の親を持つことができるのが違いである.CODASYL型データモデルとも呼ばれる.
CODASYLに関しては以下を参照.
DBの定義言語DDL(Data Definition Language)と操作言語DML(Data Manipulation Language)を明確に分離したのもこのモデルの下である.
リレーショナルモデル
階層モデル,ネットワークモデルに次いで登場したのが,現在主流のリレーショナルモデルである.
これはデータの塊(エンティティと一旦呼ぶ)を2次元の表(列と行)で表現する.
エンティティとして管理する項目(属性)を列に並べ,それらの実際の実現値(レコード)を行として格納する.
エンティティ間の関連(リレーションと呼ぶ)はエンティティ間で共通する列の値の一致により実現される.
登場初期は,大規模で高トランザクションオンラインリアルタイムシステム(基幹系・勘定系)には不向きで,非定形な情報系システムに適すと言われていた.
しかしその後のDBMSの発展やコンピュータの飛躍的な性能向上に伴い,現在では企業システムの根幹をなしている.
データの定義や操作はSQL(Structured Query Language)を用いて行われる.
オブジェクト指向モデル,マルチメディアデータベース
これらの厳密な説明は他に譲る(筆者もあまり詳しくない(^-^;))が,オブジェクト指向プログラミングの普及拡大と共に発展してきた.
データとそれに関連する操作を一つのオブジェクトとして扱うことで複雑な問題を自然に扱えると言われている.
また扱うデータも文字や数値に留まらず,音声,画像,映像と多岐にわたっての情報の管理が求められ,オブジェクト指向モデルでは従前と比べそれらのデータを扱うのに適していると言われている.
一般的に文字,数値,音声,画像,映像といった複数のメディア(マルチメディア)を扱うDBをマルチメディアデータベースと表現する.
以上は比較的定型的な業務を想定した領域において構造化されたデータ(情報)を扱うのに適したDBと言える.
昨今インターネットの普及と発展により,以前には想定していなかった業務や情報の扱いが求められてきている.
WWW(World Wide Web)で扱うデータも単なるマルチメディアという表現では満足されず,ML(Markup Language)による扱いも必要となってきた.
そこで登場したのが,RDB(=SQL)とは異なる概念であるNoSQLである.NoSQLはNot SQLでは無く,Not Only SQLの略と言われている.
RDBMS(リレーショナルDBMS)と比較して柔軟で拡張性に優れ高いパフォーマンスを得られると言われている.
分散大規模DBを念頭に置いたDBモデルであり,以下の4タイプが代表的である.
◇キーバリューデータベース
キー(識別子)とバリュー(値の群)で構成されるシンプルな構造,バリューの内容はレコードごとに異なっていても良い.
◇カラム指向データベース
キーバリューデータベースにカラム(列項目)を設定したものである.キーごとに任意のカラムを追加可能であり且つすべてのカラムにバリューが入らなくても良い.
◇ドキュメント指向データベース
JSONやXMLといったタグを用いたドキュメント形式でデータを管理する.
◇グラフデータベース
ノード,エッジ,プロパティの3要素を用いてデータ同士の関係性を表す.
これらは共に柔軟で複雑な情報を扱うことや検索性に優れるという特徴を持つ.
~第4章~ 「何故正規化するのか」 はこちらをご覧ください!!↓
この記事が気に入ったらサポートをしてみませんか?