基本概念
Kasane は時空間 ID に対して情報を挿入、参照が可能なデータベースソフトウェアである。本章ではデータベースの概念について解説する。具体的な操作方法については API 章を参照。
Database
Section titled “Database”Kasane 本体を表す単語である。
Database 内にSpace
を作成し、時空間 ID とその情報を書き込む。複数の Space を作成し、論理的な空間を分離することができる。同じ名前の Space を作成することはできない。
Space 内にKey
を作成し、時空間 ID とその情報を書き込む。Key とは時空間 ID に書き込む情報の名称と型を表す言葉である。例えば以下のような例がある。
気温を記録する Key
keyname: temperaturekeytype: Float
建物の名称を記録する Key
keyname: building_namekeytype: Text
このように Space 内に Key を作成することができる。同一 Space 内に同じ名前の Key を作成することはできない。
UniqueKey
Section titled “UniqueKey”UniqueKey の役割は物理的な時空間に対して値が存在する場合、その値が一意に定まることを保証することである。仮に Key に対する書き込みの制約がなければ、晴れかつ雨のような矛盾した時空間が発生する可能性があるため、時空間に対して書き込める Value は制限されている。
また、使用するコマンドによって書き込み方式がいくつか存在する。
- Insert: 競合する時空間がある場合は書き込みを行わない。競合しない場合は書き込む。
- Patch: 競合がない部分には新しい値を書き込む。競合がある部分は元の値を維持する。
- Update: 競合があってもなくても、新しい値を書き込む。
このように、物理的な時空間に対して値の競合を許さない Key を設定できる。
- 天気
- ドローンの航路
など、物理的な時空間に対して一意な値がなければならないユースケースで効果を発揮する。
MultiKey
Section titled “MultiKey”MultiKey の役割は物理的な時空間に対して 、値が複数存在することを許可することである。建物の名称を記録する Key を例に考えると、時空間 ID のサイズによっては 1 つの ID の中に複数の建物が含まれる場合がある。そのような状況では MultiKey を用いることで、1 つの時空間 ID の Key に対して複数の Value を保持できる。
- 建物の名称
- 土地の分類
など、物理的な時空間に対して複数の値がなければならないユースケースで効果を発揮する。
時空間 ID に書き込まれる値のことである。書き込む Key で設定した型と入力する値が一致しなければならない。