関係代数,関係論理,SQL
(リレーショナルデータベースの基礎)
1
金子邦彦
https://www.kkaneko.jp/de/rdbkiso/index.html
データベース技術
Network Database, Hierarchical Database
1950年代~
関係データベース
1970年代~
オブジェクトデータベース
1980年代~
関係データベース
関係データベースのデータの単位: 「テーブ
ル」
表の形式
テーブルの各行: tuple
1つのデータのまとまり
テーブルの各列:
同じタイプのデータ(属性)が並んでいる.
関係データベースの例
スキーマ例
(COMP, SSN, FNAME, LNAME, STREETNUM,
STREETNAME, CITY, STATE, ZIP)
COMP SSN FNAME LNAME STRE
ETNU
M
STREETNA
ME CITY STA
TE ZIP
ABC Corp. 99278 John Simth 27 Canal St. Fairfax VA 22087
ABC Corp. 28745 Denia Jones 786 Baker St. Manassas VA 22185
ABC Corp. 54892 Jane Fox 1224 Cowper Dr. Betheada MD 20984
ABC Corp. 98374 Kisa Baenea 17 Edgar St. Rockville MD 20887
ABC Corp. 18946 Jill Devia 26 Canal St. Fairfax VA 22087
XYZ Corp. 19847 Bill Bosco 11 Lake Dr. Richmond VA 23876
XYZ Corp. 83746 Bill Dashell 45 Forest St. Baitimore MD 24533
XYZ Corp. 19374 David Johns 581 Lugar Dr. Rockville MD 20845
XYZ Corp. 19328 Jim Hatch 2374 Whitman Dr. Fairfax VA 22087
XYZ Corp. 19374 Tina Budge 198 Wallis St. Betheda MD 20984
関係代数のオペレータ(2/3
Union Intersection Difference
Cartesian Product
c1 d1
c2 d2
a1 b1
a2 b2
a1 b1 c1 d1
a2 b2 c1 d1
a1 b1 c2 d2
a2 v2 c2 d2
関係代数のオペレータ(3/3
Selection Projection
Natural (Join)
b1 e1
b2 e2
a1 b1
a2 b2
a1 b1 e1
a2 b2 e2
Divide
a
b
c
a x
a y
a z
b x
x
zx
関係論理(Relational Calculus
問い合わせは,関係論理(Relational
Calculusを用いても書き下すことができる
{ t | ( t bank ) & ( t.LNAME = Smith ) }
テーブル bank から、LNAME Smith である
ようなタップルをすべて求めよ
{t1 | (T2) ( ( t1 bank ) & ( t2 emp )
& ( t1.FNAME = t2.FNAME )
& ( t1.LNAME = t2. LNAME )
& ( t2.CITY = Fairfax ) ) }
SQLと関係データベース
SQLは,関係データベースのための,標準的な
データベース言語
検索: 欲しいデータを取り出す機能
操作: データの更新,挿入,削除の機能
SQL
典型的なSQL文の例
SELECT attr1, attr2, … , attrn
FROM R1<V1>, R2<V2>, … , Rk<Vk>
<WHERE F>
R1, R2, …, Rk: テーブル名
V1, V2, … , Vkタップル変数(省略してもよ
い)
WHERE句は、省略してもよい
SQLでの更新,挿入,削除
テーブル 社員(氏名,自宅番号)に対して
挿入
INSERT INTO 社員(氏名,自宅番号)
VALUES(“金子邦彦”,“092-642-4XXX”
更新
UPDATE 社員
SET 自宅番号=“092-643-0XXX
WHERE 氏名=“金子邦彦”
削除
DELETE FROM 社員
WHERE 氏名=“金子邦彦”
SQL と関係論理(Relational Calculus
SELECT attr1, attr2, … , attrn
FROM R1<V1>, R2<V2>, … , Rk<Vk>
<WHERE F>
{ t | (V1R1)& … &(VkRk) & F}
tのスキーマは、( attr1, attr2, … , attrn
関係論理(Relational Calculusで書くと
関係代数で書くと
πattr1,…,attrnσGR1××Rk))
SQLの例 (1/2)
SELECT COMP,CITY
FROM emp
SELECT TRANS,DAY,MTH,YR
FROM emp
WHERE FNAME=Jone & LNAME = Smith
& AMOUNT > 6000
SQLの例 (2/2)
SELECT FNANE, LNAME
FROM emp.E, birth B
WHERE E.SSN = B.SSN