【DB入門】無損失結合分解の定義

北川 博之著「データベースシステム(オーム社)」を参考に,データベースシステムの知識をまとめます。

無損失結合分解の定義

リレーションスキーマ$RS$に関する関数従属性集合$F$と$RS$の分解$\rho=\{RS_{1},\ldots,RS_{m}\}$が与えられたとき,$F$を満足する$RS$のすべてのインスタンス$R$について

\begin{align}
R &= \pi_{RS_{1}}(R)\Join\cdots\Join\pi_{RS_{m}}(R)
\end{align}

が成立するとき,分解$\rho$は$RS$の無損失結合分解という。ただし,$\Join$はリレーションの自然結合を表し,$\pi_{RS_{i}}(R)$は$R$から$RS_{i}$の属性のみを抽出する射影を表します。

補足

リレーション$R$がもつ属性からなるリレーションを自然結合しても,元のリレーション$R$よりも大きなリレーションが得られることはないため,

\begin{align}
R &\subseteq \pi_{RS_{1}}(R)\Join\cdots\Join\pi_{RS_{m}}(R)
\end{align}

が成立します。形式的には,自然結合と射影の定義から明らかともいえます。このことから,無損失結合分解における損失というのは,「分解したときに情報が欠落してしまうこと」ではなく「分解したときに余分な情報が付与されてしまうこと」だといえます。損失という用語のイメージとは相反する定義であるため,注意が必要です。以上を踏まえると,無損失結合分解というのは,「分解した後のリレーションを自然結合すると,元のリレーションよりも大きくならずに全く等価なリレーションが得られる」ような分解のことを指しています。

参考文献

オーム社
¥1,800 (2024/10/12 23:31時点 | Amazon調べ)
シェアはこちらからお願いします!

コメント

コメントする

※ Please enter your comments in Japanese to distinguish from spam.