Post on 25-Jun-2020
. . . . . .
はじめに リレーショナル代数 計算可能性 おわりに
.
......リレーショナル代数入門
@htk16
May 24, 2013
@htk16 リレーショナル代数入門
. . . . . .
はじめに リレーショナル代数 計算可能性 おわりに
.. 目次
リレーショナル代数タプル関係リレーショナル演算子
計算可能性リレーショナル完備
@htk16 リレーショナル代数入門
. . . . . .
はじめに リレーショナル代数 計算可能性 おわりに
.. リレーショナル代数?
関係 と 8つのリレーショナル演算子 からなる代数系
RDB の基礎となる論理体型
最初の定義: E.F. Codd, A Relational Model of Data for LargeShared Data Banks [1]
今回は C. J. Date の定義 [2] を元に議論を進める
@htk16 リレーショナル代数入門
. . . . . .
はじめに リレーショナル代数 計算可能性 おわりに
.. なぜリレーショナル代数を学ぶの?
理論なくして実践に浮かれる者は,舵と羅針盤を持たずして船に乗り込み,どこへ向かうのかも皆目検討のつかぬ操舵手のごとし.実践は十分な理論の上にこそ成り立つ.
レオナルド・ダ・ビンチ (1452-1519)
リレーショナル代数 (理論) を学ぶことで,RDBMS (実践) の理解が深まる (に違いない)
@htk16 リレーショナル代数入門
. . . . . .
はじめに リレーショナル代数 計算可能性 おわりに
.. タプル
.属性........型名 と 属性名 の組 (T ,A)
.コンポーネント........属性 (T ,A) と T 型の値 v の組 ((T ,A), v)
.タプル..
......
コンポーネントの集合 {((T1,A1), v1), . . . , ((Tn,An), vn)} .ただし,i ̸= j ⇒ Ai ̸= Aj
@htk16 リレーショナル代数入門
. . . . . .
はじめに リレーショナル代数 計算可能性 おわりに
.. タプルの例
{(ASNO , S1), (ASNAME , ”Smith”), (ASTATUS , 20), (ACITY , ”London”)}
ASNO = (SNO, SNO)
ASNAME = (SNAME ,NAME )
ASTATUS = (STATUS , INTEGER)
ACITY = (CITY ,CHAR)
@htk16 リレーショナル代数入門
. . . . . .
はじめに リレーショナル代数 計算可能性 おわりに
.. 補足
次数 タプルに含まれるコンポーネント数
見出し タプルに含まれる属性の集合
Date はタプルを集合によって定義しているが,Codd は組みによって定義している
タプルのコンポーネントは 順序関係を持たない
文献 [2] では属性名によって属性を表現している箇所があるが,紛らわしいので本発表では明確に区別する
@htk16 リレーショナル代数入門
. . . . . .
はじめに リレーショナル代数 計算可能性 おわりに
.. タプルの等価性
タプル s, t が等しいとは以下の条件をみたす場合のみをいう
s, t の見出しが等しい
s = {(A1, u1), . . . , (An, ui )},t = {(A1, v1), . . . , (An, vi )} のとき,任意の i (1 ≤ i ≤ n) に関して ui = vi
@htk16 リレーショナル代数入門
. . . . . .
はじめに リレーショナル代数 計算可能性 おわりに
.. 関係
属性の集合 H = {A1, . . . ,An} と,H を見出しとするタプルの集合 {t1, . . . , tm} の組みを 関係 と呼ぶ
見出し H
本体 {t1, . . . , tm}次数 n
濃度 m
@htk16 リレーショナル代数入門
. . . . . .
はじめに リレーショナル代数 計算可能性 おわりに
.. 関係の例
{{(ASNO , S1), (ASNAME , ”Smith”), (ASTATUS , 20), (ACITY , ”London”)},{(ASNO , S2), (ASNAME , ”Jones”), (ASTATUS , 10), (ACITY , ”Paris”)},{(ASNO , S3), (ASNAME , ”Blake”), (ASTATUS , 30), (ACITY , ”Paris”)},{(ASNO , S4), (ASNAME , ”Clark”), (ASTATUS , 20), (ACITY , ”London”)},{(ASNO , S5), (ASNAME , ”Adams”), (ASTATUS , 30), (ACITY , ”Athens”)}}
ASNO = (SNO, SNO)
ASNAME = (SNAME ,NAME )
ASTATUS = (STATUS , INTEGER)
ACITY = (CITY ,CHAR)
@htk16 リレーショナル代数入門
. . . . . .
はじめに リレーショナル代数 計算可能性 おわりに
.. 表的な表現
{(SNO, SNO)} (SNAME ,NAME) (STATUS , INTEGER) (CITY ,CHAR)
S1 ”Smith” 20 ”London”S2 ”Jones” 10 ”Paris”S3 ”Blake” 30 ”Paris”S4 ”Clark” 20 ”London”S5 ”Adams” 30 ”Athens”
表のように表現しているが 関係は表ではない
タプルのコンポーネントは順序関係を持たない
タプルは順序関係を持たない
@htk16 リレーショナル代数入門
. . . . . .
はじめに リレーショナル代数 計算可能性 おわりに
.. 補足
本体の任意の部分集合は本体
本体は集合なので 重複したタプルを持たない
本体に含まれるタプルは順序関係を持たない
関係は 表ではない,集合である
@htk16 リレーショナル代数入門
. . . . . .
はじめに リレーショナル代数 計算可能性 おわりに
.. リレーショナル演算子
Codd が定義した 8つのリレーショナル演算子を示す.
和
差
交わり
デカルト積
商
制限
射影
結合
演算結果はすべて 関係 である.
@htk16 リレーショナル代数入門
. . . . . .
はじめに リレーショナル代数 計算可能性 おわりに
.. 和
.和..
......
同じ見出しを持つ関係 r , s に関して和 r UNION s を以下のように定義する
r UNION s = {t | t ∈ r ∨ t ∈ s}
.
......
SELECT DISTINCT R.CITY
FROM R
UNION DISTINCT
SELECT DISTINCT S.CITY
FROM S
.
......
@htk16 リレーショナル代数入門
. . . . . .
はじめに リレーショナル代数 計算可能性 おわりに
.. 差
.差..
......
同じ見出しを持つ関係 r , s に関して差 r MINUS s を以下のように定義する
r MINUS s = {t | t ∈ r ∧ t ̸∈ s}
.
......
SELECT R.CITY
FROM R
EXCEPT
SELECT S.CITY
FROM S
.
......
@htk16 リレーショナル代数入門
. . . . . .
はじめに リレーショナル代数 計算可能性 おわりに
.. 交わり
.交わり..
......
同じ見出しを持つ関係 r , s に関して交わり r INTERSECT s を以下のように定義する
r INTERSECT s = {t | t ∈ r ∧ t ∈ s}
.
......
SELECT DISTINCT R.CITY
FROM R
INTERSECT
SELECT DISTINCT S.CITY
FROM S
.
......
@htk16 リレーショナル代数入門
. . . . . .
はじめに リレーショナル代数 計算可能性 おわりに
.. デカルト積
.デカルト積..
......
見出しの共通部分が空集合である関係 r , s に関してデカルト積 r TIMES s を以下の様に定義する
r TIMES s = {tr ∪ ts | tr ∈ r ∧ ts ∈ s}
.
......
SELECT
R.SNO, R.SNAME, R.STATUS
R.CITY AS SCITY
S.PNO, S.PNAME
S.COLOR, S.WEIGHT
S.CITY AS PCITY
FROM R, S
.
......
@htk16 リレーショナル代数入門
. . . . . .
はじめに リレーショナル代数 計算可能性 おわりに
.. 商
.商..
......
関係 s の見出しが関係 r の見出しの部分集合であるとき,商 r DIVIDEBY s を以下のように定義する
r DIVIDEBY s = {t ′ | t ∪ t ′ ∈ r ∧ t ∈ s}
.
......
SQL は省略
(r TIMES s) DIVIDEBY s = rなので商と呼ばれる
.
......
@htk16 リレーショナル代数入門
. . . . . .
はじめに リレーショナル代数 計算可能性 おわりに
.. 制限
.制限..
......
関係 r の bx に基づく制限 r WHERE bx を次のように定義する
r WHERE bx = {t | t ∈ r ∧ bx = true}
ただし bx は r の見出しに含まれる属性名からなる論理式である.
.
......
SELECT R.*
FROM R
WHERE R.CITY = ’Paris’
.
......
@htk16 リレーショナル代数入門
. . . . . .
はじめに リレーショナル代数 計算可能性 おわりに
.. 射影
.射影..
......
見出し {A1, . . .Am,B1, . . . ,Bn} を持つ関係 r に関して,射影 r {A1, . . . ,Am} を以下のように定義する
r {A1, . . . ,Am} = {{(A1, v1), . . . , (Am, vm)} |{(A1, v1), . . . , (Am, vm)} ∪ t ′ ∈ r}
.
......
SELECT DISTINCT R.SNAME,
R.CITY, R.STATUS
FROM R
.
......
@htk16 リレーショナル代数入門
. . . . . .
はじめに リレーショナル代数 計算可能性 おわりに
.. 結合
.結合..
......
関係 r の見出しが {A1, . . . ,Am,B1, . . . ,Bn} ,関係 s の見出しが {A1, . . . ,Am, C1, . . . , Cp} の時,結合 r JOIN s を以下のように定義する.
r JOIN s = {tA ∪ tB ∪ tC | tA ∪ tB ∈ r ∧ tA ∪ tC ∈ s}
ただし tA = {(A1, v1), . . . , (Am, vm)} である
.
......
SELECT
R.PNO, R.PNAME, R.COLOR,
R.WEIGHT, R.CITY, S.SNO,
S.SNAME, S.STATUS
FROM R, S
.
......
@htk16 リレーショナル代数入門
. . . . . .
はじめに リレーショナル代数 計算可能性 おわりに
.. その他の演算子
.名前変更演算子..
......
関係 r の見出しが {A1, . . . ,An} であるとき,名前変更演算子 r RENAME (Ai as B) は,r の見出し,本体に含まれる属性名 Ai を属性名 B に置き換えて得られる関係を表す.
.半結合 r SEMIJOIN s..
......
r SEMIJOIN s = (r JOIN s) Hs
ただし Hs は s の見出しである.
.半差 r SEMIMINUS s..
...... r SEMIMINUS s = r MINUS (r SEMIJOIN s)
@htk16 リレーショナル代数入門
. . . . . .
はじめに リレーショナル代数 計算可能性 おわりに
.. プリミティブ演算子
8つの演算子はすべてがプリミティブではない.制限,射影,結合,和,半差 はプリミティブセットの一つである.
@htk16 リレーショナル代数入門
. . . . . .
はじめに リレーショナル代数 計算可能性 おわりに
.. 候補キー
K を見出し H の部分集合とする.H を見出しとする任意の関係 r に関して以下を満たす場合にK を候補キー (キー) と呼ぶ
一意性 ∀t1, t2 ∈ r K に関して t1 ̸= t2
規約性 K のどの部分集合も候補キーでない
@htk16 リレーショナル代数入門
. . . . . .
はじめに リレーショナル代数 計算可能性 おわりに
.. リレーショナル代数: まとめ
タプル コンポーネント (属性と値の組み) の集合
関係 見出し (属性の集合) と 本体 (タプルの集合) の組み
リレーショナル代数 関係と 8つのリレーショナル演算子からなる代数系
関係は 表ではないタプルのコンポーネントは順序関係を持たないタプルは順序関係を持たない
@htk16 リレーショナル代数入門
. . . . . .
はじめに リレーショナル代数 計算可能性 おわりに
.. 問い合わせ言語の等価性
関係の集合 DB に対して,問い合わせ言語 L の問い合わせを有限回行なって得られる関係全体の集合を L(DB) で表す..問い合わせ言語の等価性..
......
問い合わせ言語 L1, L2 が等価 (L1 ≡ L2) であるとは,任意の関係の集合 DB に関して以下を満たす場合のみをいう.
L1(DB) = L2(DB)
@htk16 リレーショナル代数入門
. . . . . .
はじめに リレーショナル代数 計算可能性 おわりに
.. リレーショナル完備
.リレーショナル完備..
......
問い合わせ言語 L がリレーショナル完備であるとは,任意の関係の集合 DB に関して以下を満たす場合のみをいう.
L(DB) ⊇ LR(DB)
ただし LR はリレーショナル代数である.
問い合わせ言語 L がチューリング完備ならば,L はリレーショナル完備である.ただし,逆は成り立たない.
@htk16 リレーショナル代数入門
. . . . . .
はじめに リレーショナル代数 計算可能性 おわりに
.. 問い合わせ言語の合流性,停止性
リレーショナル代数と等価な問い合わせ言語 L は型付きラムダ計算でエンコード可能である [3].
型付きラムダ計算の性質から以下が成り立つ.
L は合流性を持つ
L は停止性を持つ
@htk16 リレーショナル代数入門
. . . . . .
はじめに リレーショナル代数 計算可能性 おわりに
.. おわりに
リレーショナル代数は関係と 8つのリレーショナル演算子からなる代数系
関係は表ではなく集合
リレーショナル代数と等価な問い合わせ言語は,型付きラムダ計算でエンコード可能
@htk16 リレーショナル代数入門
. . . . . .
はじめに リレーショナル代数 計算可能性 おわりに
.. 参考文献
[1] E.F. Codd, “A relational model of data for large shared databanks,” Communications of the ACM, vol.13, no.6,pp.377–387, 1970.
[2] C.J.Date著,株式会社クイープ訳,データベース実践講義,O’Reilly Japan,2006.
[3] G.G. Hillebrand and H.G.a. Kanellakis, P.C. Mairson,“Database query languages embedded in the typed lambdacalculus,” Logic in Computer Science, pp.332–343, June 1993.
@htk16 リレーショナル代数入門