多次元データベース

  多次元データベース モデルは、Caché の根幹をなすデータベース モデルです。 つまり、Caché の他のデータベース モデル(リレーショナル データベース モデル、オブジェクト指向 データベース モデル)は 多次元データベース モデルの上に構築されています。
  
  多くの場合、多次元データベースは、データウェアハウス・システムを連想させます。 Caché はもちろん、データウェアハウス・システムを構築することに利用できますが、Caché 自体がデータウェアハウス・システムではありません。 Caché は、データウェアハウス・システム というアプリケーション・システムに必要とされる機能を有していないからです。 具体的には、ドリルダウン機能やスライシング機能です。 なぜなら、これらの機能はCaché にとっては、アプリケーション・システムが有するべき機能である、と考えられているためです。 Caché を利用したデータウェアハウス・システムを構築するのであれば、データウェアハウス・システムに必要とされるドリルダウン機能等の機能をアプリケーション・システムとして 構築する必要があると言うことです。
  
  では、Caché の多次元データベース モデルとは具体的にどういったものなのでしょうか? 例えば、企業の組織を考えてみます。企業には事業部があり、部があり、課があり...と言った形でピラミッド型になることが予想されます。 このようなピラミッド型のデータを非常に柔軟に容易に管理することが可能です。
  Caché では次のようなCaché Object Script を記述することで多次元データベースにデータを格納することができます。
  
  set ^COMPANY("CACHE推進事業部","CACHE営業部","関東1課",社員番号)="日の本 太郎"
  
  この例では、日の本太郎さんが、CACHE推進事業部-CACHE営業部-関東1課の社員番号n の属性を持っていると読み取れます。
  Caché の多次元データベース モデルでは、この例のようにデータを階層的構造によって管理することができます。
  
  多次元データベース モデルの特徴は、次の3点です。
  ・階層構造が非常に柔軟であり制約事項が無い(事前の構造宣言も必要ない)
  ・添え字(括弧の中の値、例えば"CACHE推進事業部")がスパースアレイ配列構造をとることができる
  ・添え字は自動的に昇順に整列する
  階層構造が何階層になっても問題ない、とはいうものの、実質的には(コーディングが面倒になるので)7階層程度です。また、空文字列は利用できません。
  スパースアレイ配列、というのは、配列の添え字が順序だてて並んでいなくて、途中の値が飛んでいても良い、という構造です。 例えば添え字の値が、1,2,3,5,6,4がない)、とか、"北海道","秋田県","岩手県"のように数値以外のデータでも構わない(この場合、データの内部コードの昇順に整列します) というものです。このスパースアレイ配列構造は非常に便利なものです。
  
  この多次元データベース モデルを上手く利用すると、非常に柔軟で、非常に高速な処理を実現することができます。 ただし、ある意味で「職人技」になってしまうので、注意が必要です。

戻る