SQLとリレーショナル代数

ビュー ビュー(view)とは仮想的なテーブルのことである. 保存されているわけではなく、問い合わせのたびにテーブルを作成する. create view View[(column_1, ..., column_m)] as select query; distinct句 行の重複を削除する. select distinct column_1, ..., column_n from R; order by句 行の並び替えを行う. select * from R order by column [desc|asc]; 複数テーブルからのデータ抽出 テーブルの和(union) select * from R where F1 union select * from S where F2; テーブルの積(intersect) select * from R intersect select * from S; テーブルの差(except) select * from R except select * from S; テーブルの結合 内部結合(inner join) 直積集合を求めてG.

Read More

リレーショナル代数

これは大学の講義内容をまとめたものです。 リレーショナル「代数」とは 単一または複数のリレーションに対して定義された演算の体系 線形「代数」: 線形空間の元(ベクトル)に対する和, 内積などの演算の体系 SQL言語の基礎 集合演算 関係演算(リレーショナル演算) 集合演算 和集合(union): \( R \cup S = \{t|t\in R \vee t \in S \} \) 共通集合, 積集合(intersection): \( R \cap S = \{t|t\in R \wedge t \in S \} \) 和両立(union compatible) リレーションスキーマ\( R(A_1, A_2, …, A_n) \)と\( S(B_1, B_2, …, B_n) \)が次の2つの条件を満たすとき, リレーションRとSは和両立である. RとSの次元が等しい(つまりn=m) 各\( i(1 \leq i \leq n)\) に対して, 属性\( A_i \) と \( B_i \)のドメインが等しい(つまり\( dom(A_i)=dom(B_i)\)) 必ずしも属性名は同じでなくてよい 直積演算 直積, デカルト積(Curtesiun product): \( R \times S = \{ (u, v) | u \in R \wedge v \in S \) 集合演算の演習 (1) 下記に示すリレーションRaとRbに対して、和集合、共通集合、差集合の各演算結果を求めよ A店舗取り扱い商品リスト Ra 商品番号 商品名 値段 P1 N1 C1 P2 N2 C2 P5 N5 C5 P6 N6 C6 P8 N8 C8 B店舗取り扱い商品リスト Rb 商品番号 商品名 値段 P1 N1 C1 P3 N3 C3 P4 N4 C4 P7 N7 C7 P8 N8 C8 結果 和集合 Ra\( \cup \)Rb 商品番号 商品名 値段 P1 N1 C1 P2 N2 C2 P3 N3 C3 P4 N4 C4 P5 N5 C5 P6 N6 C6 P7 N7 C7 P8 N8 C8 共通集合 Ra\( \cap \)Rb 商品番号 商品名 値段 P1 N1 C1 P8 N8 C8 差集合 Ra-Rb 商品番号 商品名 値段 P2 N2 C2 P5 N5 C5 P6 N6 C6 (2)下記に示すリレーションR1, R2に対して直積集合R1\(\times\)R2を求めなさい R1 A a b c R2 B C x 1 y 1 z 1 結果 R1 \( \times \) R2 A B C a x 1 a y 1 a z 1 b x 1 b y 1 b z 1 c x 1 c y 1 c z 1 関係演算 選択演算(selection) リレーションRの中から条件式Fを満たすタプルを抽出する演算 $$ \sigma_F(R) = \{ t | t \in R \wedge P_F(t) = true \} $$

Read More

リレーショナルデータモデル

データベースのための基礎理論 集合(set): 「もの」の集まり. 数, 文字, 記号など 要素(element): 集合に属する「もの」のこと. 元とも呼ぶ $$ a \in A $$ 空集合(empty set): 何も要素を含まない集合 $$ A = \phi $$ 例) $$ A = {-6, -5, -4, 1, 2, 6} $$ $$ A = {a, aba, ababa, abababa, … }$$ $$ A = {情報工学科, 機械工学科, 電気工学科, 工業化学科, 建築学科} $$ $$ A = {0, 1, 1} \times 集合ではない $$ 全く同じ要素が2つ以上含まれている場合、それは集合ではない. 集合演算 和集合 $$ A \cup B = {x|x\in A \vee x \in B } $$ 共通集合(積集合) $$ A \cap B = {x|x\in A \wedge x \in B } $$ 差集合 $$ A - B = {x|x \in A \wedge x \notin B } $$ べき集合 $$ 2^A = {X | X \subset A }$$ 直積集合 $$ A \times B = { (a, b) | a \in A \wedge b \in B }$$ リレーショナルデータモデル 実世界のモノ・概念を表(=リレーション)として表現

Read More