シリーズ・ハブ記事:
以下の3つの過去記事で定義した/使った記法と用語をまとめておきます。
記法と用語:
- $`\mathscr{D}`$ : ドメインの集合、要素は基本データ型となる集合
- $`C = \{c_1, \cdots, c_n\}`$ : カラム名の集合(通常、全順序を仮定する)
- $`S : C \to \mathscr{D}`$ : テーブルスキーマ
- $`S = (c_1 : D_1, \cdots, c_n : D_n)`$ : テーブルスキーマの表示($`D_i = S(c_i)`$)
- $`S = (D_1, \cdots, D_n)`$ : カラム名が番号のときのテーブルスキーマの表示($`D_i = S(i)`$)
- $`S = ()`$ : 空なテーブルスキーマ
- $`t = (t_1, \cdots, t_n)`$ : タプル(カラム名の集合 $`C`$ に全順序を仮定してる)
- $`\mathrm{Tuple}(S)`$ : テーブルスキーマが決めるタプル空間(すべてのタプルの集合)
- $`X, Y \subseteq C`$ : カラム名の集合の部分集合、これを「カラム」「複合カラム」と呼ぶこともある。
- $`S|_X`$ : テーブルスキーマの $`X`$ への制限、$`X \subseteq C`$
- $`\pi_X = \pi^S_X : \mathrm{Tuple}(S) \to \mathrm{Tuple}(S|_X)`$ : カラム名集合に付随する射影関数
- $`\pi_c = \pi^S_c : \mathrm{Tuple}(S) \to S(c)`$ : カラム名の射影関数
- $`\pi_{\{c\}} = \pi^S_{\{c\}} : \mathrm{Tuple}(S) \to \mathrm{Tuple}(S|_{\{c\}})`$ : カラム名の単元集合に付随する射影関数(カラム名の射影関数と微妙に違う)
- $`\Gamma \subseteq \mathrm{Pow}(\mathrm{Tuple}(S))`$ : テーブルクラス$`\newcommand{\mrm}[1]{\mathrm{#1}}\newcommand{\u}[1]{\underline{#1}}\newcommand{\bs}[1]{\boldsymbol{#1}}`$
- $`\bs{t} = (C, S, \Gamma)`$ : テーブル構造
- $`\mrm{SKey}(\bs{t}), \mrm{CKey}(\bs{t})`$ : テーブル構造の超キーの集合と候補キーの集合、$`\mrm{Pow}(C)`$ の非空部分集合
- $`\widehat{S} = \mrm{Tuple}(S)`$ : タプル空間の短縮記法
- $`\widehat{S}[X] = \mrm{Tuple}(S, X) = \mrm{Tuple}(S|_X)`$ : 制限されたタプル空間の短縮記法
- $`\pi_{X, Y} = \pi^S_{X, Y} : \widehat{S}[X] \to \widehat{S}[Y]`$ : $`Y\subseteq X \subseteq C`$ のときのタプルを射影する関数
- $`\Pi_X = \Pi^S_X = (\pi^S_X)_* : \mrm{Pow}(\widehat{S}) \to \mrm{Pow}(\widehat{S}[X])`$ : テーブルインスタンスを射影する関数
- $`\Pi_{X, Y} = \Pi^S_{X, Y} = (\pi^S_{X, Y})_* : \mrm{Pow}(\widehat{S}[X]) \to \mrm{Pow}(\widehat{S}[Y])`$ : $`Y\subseteq X \subseteq C`$ のときのテーブルインスタンスを射影する関数
- $`\kappa_X : \widehat{S}[X] \supseteq\!\to \widehat{S}`$ : 超キー $`X`$ のキーセクション関数(部分関数)、特定の状況では $`\pi_X`$ のセクションになっている。
- $`(\bs{t}_i)_{i\in I}`$ : テーブル構造のインデックス族
- $`(i, X, j, Y, r)`$ : 参照($`i, j\in I, X\subseteq C_i, Y\subseteq C_j`$)
- $`X \subseteq C_i`$ : 参照カラム(複合カラムでもよい)、外部キー
- $`r : X \to Y \text{ where }X\subseteq C_i, Y\in \mrm{SKey}(\bs{t}_j)`$ : カラム(複合カラムでもよい)間の関数(双射)、カラム名をリネームするだけの関数
- $`\hat{r} = (r^{-1})^* = (r^*)^{-1} : \widehat{S_i}[X] \to \widehat{S_j}[Y]`$ : 参照関数、カラム名のリネームに伴うタプル空間の同型
- $`\rho_r = \hat{r}`$ : 参照関数の別記法