マルチバリュー・データベース
マルチバリュー・データベースは、
NoSQLの一種で、多次元的なデータ構造を特徴としているため、従来の
関係データベースとは異なるデータ管理の仕組みを提供します。このデータベースは、元々Pick Operating Systemとして開発され、PICKと同義語で扱われることが多いです。
さまざまな企業が商用のマルチバリュー・データベース製品を提供しており、例としてロケット・ソフトウェアやZumasys、Revelationなどがあります。これらのデータベースは、属性に単一の値を持たせるのではなく、値のリストを管理できるため、
関係データベース以上の柔軟性を提供します。このデータモデルは実際には
関係モデルよりも古いものであり、Post-relational Databaseの一種として
MUMPSに分類されることもあります。
SQLを使用しないか、あるいは
SQLを用いてアクセスできるという点も特徴です。
歴史
マルチバリューデータモデルの設計は1960年代初頭にDon Nelsonによって始められ、1965年にはTRWの開発者であるDick Pickがアメリカ陸軍向けにこのモデルを初めて実装しました。この実装は、軍事用ソフトウェアとしての性格を持ち、最初に裁判所で議論された事例でもあります。
1970年代中頃、Ken SimmsによってS-BASIC(DataBASIC)という言語が開発され、これはDartmouth BASICを基にしながらデータ管理を進化させたものです。この頃までに、いくつかのマルチバリュー・データベース実装が誕生しましたが、PICKバージョンR77やMicrodata Reality 3.xなど、さまざまな類似点を持ちながらも標準化には至りませんでした。
関連する開発が続く中、一部の実装は合流しながらも異なる方向に分岐していき、それぞれ独自の言語や方言をサポートするようになりました。業界内では、マルチバリュー・データベースをレガシーと見なすことに反対し、プレ
関係データベースといった枠組みで分類される傾向が続いています。最近のトレンドでは、これらのデータモデルは
NoSQLのカテゴリに含まれるようになりました。
データモデルの特徴
マルチバリュー・データベースにおけるデータモデルにはいくつかの重要な要素があります。まず、データベース内の「アカウント」は、テーブルやコレクションとして扱われます。ここでは、属性に「フィールド」や「マルチバリュー属性」が設定されることが特徴です。具体的には、1つの属性に複数の値を持たせることができるため、データの取り扱いに対して非常に柔軟な構成を実現しています。
例えば、「PERSON」というファイル(テーブル)において、属性「eMailAddress」は複数のEメールアドレスを持つことが可能です。これにより、一つのレコードで例えば「[
[email protected],
[email protected],
[email protected]]」のように複数の値を持つことができ、従来の
関係データベースのように別のテーブルを作成する必要がありません。このようなデータモデルに対処するために、最近の
関係データベースでもマルチバリューの形式がサポートされています。
マルチバリュー・クエリー言語
データベースへのクエリーもまたマルチバリューならではで、ENGLISH、ACCESS、AQL、UniQueryなど、いくつかの異なる言語が存在します。これらの言語は
SQLとは異なる構造で、スキーマの特定のディクショナリーに対して命令を発します。例えば、以下のようなクエリーが考えられます。
```plaintext
LIST PERSON LAST_NAME FIRST_NAME EMAIL_ADDRESSES WITH LAST_NAME LIKE "Van..."
```
この命令により、姓が「Van」で始まる人々の情報をリスト化し、複数のEメールアドレスを一度に表示することができます。他のデータは繰り返すことなく、効率的に結果を取得することができるため、マルチバリュー・データベースの利点を強く感じられるでしょう。
まとめ
マルチバリュー・データベースは、その柔軟なデータ構造と豊富な履歴を持っており、現代のさまざまなアプリケーションにも適用されています。データモデルは進化し続け、
NoSQLの一環として、多くの企業や開発者に利用される選択肢となっています。また、マルチバリューの特性を生かすことで、データの管理や取得がより効率的に行えるという利点もあります。