FoRWaRD のバックアップ(No.2)


RDBの行をベクトル化し、逐次的投入にも対応した仕組み。
以下の論文で提案。

対象データベースの定義

\( D \)データベース
\( \sigma \)データベーススキーマ(定義全体)
\( R,S \)個々のリレーション名
\( R(A_1 \dots A_k) \)リレーションスキーマの集合
\( A_i \)\( \sigma \)の要素名 (attribute name)
\( \mathbf{A},\mathbf{B},\mathbf{C} \)要素名の集合
\( \mathbf{B}=B_1 \dots B_\ell \)
\( R.A \)\( \sigma \)の要素(attribute)
\( \mathrm{dom}(R.A) \)\( R.A \)の値域(domain)
\( \mathrm{key}(R) \)\( R \)のキー
\( \mathrm{key}(R) \subseteq R(A_1 \dots A_k) \)
空集合であることが可能

外部キー制約
\( R[\mathbf{B}] \subseteq S[\mathbf{C}] \)
\( \mathrm{key}(S) = S[\mathbf{C}] \)

\( f=R(a_1 \dots a_k) \)行(事実の集合)
\( a_i \in \mathrm{dom}(R.A_i) \)
空値 (null value) の場合、\( \bot \)
\( f[A_i] \)\( a_i \)の値
\( f[\mathbf{B}] \)\( f[\mathbf{B}]=f[B_1],\dots,f[B_\ell] \)

問題定義

静的DB埋め込み (Static database embedding)
スキーマ\( \sigma \)を持つデータベース\( D \)に対し、
埋め込み関数\( \gamma:D \to \mathbb{R}^k \)を作る。
ただし、ハイパーパラメータ\( k>0 \)
動的DB埋め込み (Dynamic database embedding)
\( \gamma \)を新たな事実\( f \notin D \)に拡張する。
\( \gamma^\prime:D \cup \{f\} \to \mathbb{R}^k \)
ただし、元の値は変更しない。
つまり、\( f^\prime \in D \)に対し\( \gamma^\prime(f^\prime)=\gamma(f^\prime) \)