コンテンツにスキップ

基本概念

Kasane は時空間 ID に対して情報を挿入、参照が可能なデータベースソフトウェアである。本章ではデータベースの概念について解説する。具体的な操作方法については API 章を参照。

Kasane 本体を表す単語である。

Database 内にSpaceを作成し、時空間 ID とその情報を書き込む。複数の Space を作成し、論理的な空間を分離することができる。同じ名前の Space を作成することはできない。

Spaceに関する説明を分かりやすく視覚化したもの。

Space 内にKeyを作成し、時空間 ID とその情報を書き込む。Key とは時空間 ID に書き込む情報の名称と型を表す言葉である。例えば以下のような例がある。

気温を記録する Key

keyname: temperature
keytype: Float

建物の名称を記録する Key

keyname: building_name
keytype: Text

このように Space 内に Key を作成することができる。同一 Space 内に同じ名前の Key を作成することはできない。

UniqueKey の役割は物理的な時空間に対して値が存在する場合、その値が一意に定まることを保証することである。仮に Key に対する書き込みの制約がなければ、晴れかつ雨のような矛盾した時空間が発生する可能性があるため、時空間に対して書き込める Value は制限されている。

また、使用するコマンドによって書き込み方式がいくつか存在する。

  • Insert: 競合する時空間がある場合は書き込みを行わない。競合しない場合は書き込む。
  • Patch: 競合がない部分には新しい値を書き込む。競合がある部分は元の値を維持する。
  • Update: 競合があってもなくても、新しい値を書き込む。

このように、物理的な時空間に対して値の競合を許さない Key を設定できる。

  • 天気
  • ドローンの航路

など、物理的な時空間に対して一意な値がなければならないユースケースで効果を発揮する。

MultiKey の役割は物理的な時空間に対して 、値が複数存在することを許可することである。建物の名称を記録する Key を例に考えると、時空間 ID のサイズによっては 1 つの ID の中に複数の建物が含まれる場合がある。そのような状況では MultiKey を用いることで、1 つの時空間 ID の Key に対して複数の Value を保持できる。

  • 建物の名称
  • 土地の分類

など、物理的な時空間に対して複数の値がなければならないユースケースで効果を発揮する。

時空間 ID に書き込まれる値のことである。書き込む Key で設定した型と入力する値が一致しなければならない。