• 検索結果がありません。

関係データベースとは

N/A
N/A
Protected

Academic year: 2021

シェア "関係データベースとは"

Copied!
18
0
0

読み込み中.... (全文を見る)

全文

(1)

Copyright 2002 守屋悦朗

データベースへの数学的入門

リレーショナルデータベース

1.リレーショナルデータベースとは

データベース(database)とは、コンピュータ上で大量に蓄積されたデータを構造をもたせ た形式で記録しておくことにより、データの効率的な利用ができるようにしたものである。 そういったデータ処理としては、データの検索(特定の条件を満たすデータを探し出すこと)、 データの更新(追加や削除など)、データの加工(2つのデータベースを合併したり、既存デ ータベースのうちの一部分を抜き出して新規データベースを作ったりすることなど)といっ た操作が含まれる。データベースとその利用者の間を仲介し、このような処理や管理を行 うプログラムをデータベース管理システム(DBMS, database management system)という。

データベース 氏名 住所 年齢 佐藤 渡辺 今井 田中 桜井 東京 大阪 京都 大阪 奈良 33 56 47 29 45 データベース の利用者 データベース 管理システム (DBMS)

(2)

ここで事前体験:データベースを使ってみよう → Excel 実習

データを記録するための構造

データベースを実現するために考案されている「データを記録するための構造」(データ 構造という)としては、歴史的に次の3つの主要な方法があった/ある。

・ 階層型(hierarchical data model) ・ ネットワーク型(network dada model) ・ リレーショナル型(relational data modl)

階層型データモデルは、IBM 社の DBMS(database management system:データベース を管理・利用するためのプログラム)をもとに 1968 年に提案されたもので、データを階層 に類別し、データベース全体を階層間のつながり(上下関係)として表したものである。 ネットワーク型データモデルは、類別されたどのデータ同士にも自由につながりを設定 できるようにしたものであり、データベース全体はデータをノードとするネットワークの ような構造になる。1971 年に CODASYL の DBTG が COBOL のデータベース機能を制定 する目的で定義したのが始まりで、ビジネスデータ処理のデータモデルとして現在でも広 く用いられている。 これらに対し、リレーショナルデータベースモデル(関係データモデル)は、1970 年に数 学者E.F.Codd が純粋に数学的なデータベースモデルとして提案したものであり、荒っぽく いうと、データの間の関係を表(n項関係、テーブル)として記録する方式である。 〔例〕プロ野球のデータベース プロ野球に関するデータベースとして、チームと選手個人の情報を集めたデータベース が上記それぞれのデータモデルにおいてどのように表されるかを見てみよう。 (a) 階層型データモデル 球団 オーナー 監督 選手 都市名 球場 人口 守備位置 成績 年度 打率 本塁打 具体的には・・・

(3)

プロ野球 … 巨人 阪神 ダイエー … … … … … (読売新聞,原,松井) … (阪神電鉄,星野,檜山) … … (東京,後楽園,1200) … (大阪,甲子園,880) … (外野,2001) (外野,2002) … (外野,2001) … (.332,36) (.329,19) (.300, 12) (b) ネットワーク型データモデル 球団 守備位置 選手 成績 年度 オーナー 球団 読売ジャイアンツ 読売新聞 原 辰徳 阪神タイガース 阪神電鉄 星野仙一 ・・・ オーナー 東京 後楽園 1200 万 大阪 甲子園 880 万 ・・・ 守備位置 選手 投手 捕手 ・・・ 外野手 松 井 秀 喜 ・・・ 檜山進次郎 ・・・

(4)

年度 成績 松井秀喜 .332 36 松井秀喜 .329 19 檜山進次郎 .300 12 2002 2001 ・・・ ・・・ (c) リレーショナル型データモデル 球団 読売ジャイアンツ 読売新聞 原 辰徳 阪神タイガース 阪神電鉄 星野仙一 ・・・ ・・・ ・・・ オーナー 読売ジャイアンツ 東京 後楽園 1200 万 阪神タイガース 大阪 甲子園 880 万 ・・・ ・・・ ・・・ 選手 松井秀喜 読売ジャイアンツ 外野手 檜山進次郎 阪神タイガース 外野手 ・・・ ・・・ ・・・ 2001 年度成績 松井秀喜 .332 36 檜山進次郎 .300 12 2002 年度成績 松井秀喜 .329 19 ・・・ ・・・ ・・・ このようにいろんなデータベースモデルがある/あったが、その中でもリレーショナル データモデルは、「表」という分かりやすい概念に基づいていただけでなく、厳密に数学的

(5)

に形式化されたモデルであったために理論的な研究が活発に行われ、その結果として今日 のデータベースのほとんどはリレーショナル方式に基づいている。リレーショナルデータ モデルに基づいたデータベースをリレーショナルデータベース(関係データベース、 relational database, RDB)という。

2.データ操作言語

データベースに問い合わせ(検索)を行なったりデータの更新をしたするためにデータベ ースを操作するときには、DBMS と遣り取りをするための記述言語が必要であり、それは どのようなデータベースモデルを使っているかによって仕様も操作性も大きく異なる。直 感的に言うとデータ操作言語とはデータベースに対してどのような操作(=演算)ができる かということであり、数学的に言うとデータの集合(どのような構造をもった集合である かが大事。それによって演算が決まる)とその上でどのような演算(複数個)が定義されてい るかということ(すなわち、一種の代数系)である。 リレーショナルデータモデルに対しては、 ・リレーショナル代数(関係代数、relational algebra)

・タップルリレーショナル論理(タップル関係論理、tuple relational logic) ・ドメインリレーショナル論理(ドメイン関係論理、domain relational logic)

という3つの代数的特徴づけ(第数系)が知られており、これらの代数系は一方から他方へ同 値変換できるという意味で数学的に等価である。以下では、リレーショナル代数を中心に してその概要を述べる。

リレーショナル代数

(関係代数)

リレーショナル代数(relational algebra)とは、以下のように定義される「関係表」(リレ ーション)の集合とその上のいくつかの操作演算の集まりのことである。まず、その基本と なる関係表とは何かを定義しよう。 リレーション(関係表)

A1, A2, …, An を有限集合(データの集合)とする。直積 A1×A2×…×Anの部分集合R R ⊆ A1×A2×…×An (または、R[A1, A2, …, An] と表す)

のことをn 項関係(n-ary relation、リレーション)とか、関係表(テーブル、relational table) と言う。nをR の次数(arity, degree)という。各 Aiのことをドメイン(データベースに記録

(6)

される「もの」の集合の意、domain)と呼ぶこともある。 R の元

(a1, a2, …, an)∈R

は、a1∈A1, a2∈A2, …, an∈An がR の関係にある一組のデータであることを表す。(a1, a2, …, an)をタップル(組、tuple)とも呼ぶ。マイクロソフト社の関係データベース操作言語である Accessのように、タップルのことをレコード(record)と呼ぶこともある。 A1, A2, …, Anそれぞれは、データの集合であると同時にその集合の名称であり、その集 合に属すデータが持つ属性(attribute)をも表す。Access ではこれをフィールド(field)と呼ん でいる。 関係表は次のように表として表すとわかりやすい。 R[A1, A2, …, An] A1 A2 … An a11 a12 … a1n a21 a22 … a2n … … … … ak1 ak2 … akn タップル 属性 属性A1をもつデータ 〔例〕学生情報の関係表 学生情報[学籍番号、氏名、性別、学部、学科、入学年度] 学籍番号 氏名 性別 学部 学科 入学年度 02A001 山田太郎 男 理学 数学 2002 02A003 朝倉美香 女 文学 日文 2002 01B023 南 卓美 女 法学 法律 2001 … … … … 00D102 伊藤 靖 男 理学 情報 2000 次数6 キー

(7)

上例のように、a=(a1, a2, ..., an), b=(b1, b2, ..., bn) のとき、 a≠b ならばai≠bi

であるような属性AiのことをR[A1, A2, ..., An]のキー(key)という。すなわち、キーとは、タ ップルを一意的に定める属性のことである。1つの属性だけではタップルが一意的に定ま らないが複数の属性を考慮すると一意的に定まる場合、そのような属性の組をキーと呼ぶ こともある。すなわち、属性の組 (Ai1, .., Aik) が R[A1, A2, ..., An]のキーであるとは、次が 成り立つことである:

a≠b ならば「ai1≠bi1 または ai2≠bi2 または ... aik≠bik 」

リレーショナル代数の演算 リレーショナル代数は、関係表の集合と、その上のいくつかの演算として定義される。 (a) 合併演算 属性名のリストが一致している2つの関係表を合併した関係表を求める演算。すなわち、 R[A1, A2, …, An] と S[A1, A2, …, An] とに対してその和集合 (R∪S)[A1, A2, …, An] := { x | x∈R または x∈S } を得る操作を合併(union)という。 〔例〕 R[A,B,C] A B C a b c d a f c b d S[A,B,C] A B C b g a d a f (R∪S)[A,B,C] A B C a b c d a f c b d b g a (d,a,f) のように同じ要素が 2 個以上あるとき、R∪S を集合とする限りはこの例のように 要素(d,a,f)は1つだけが残るが、実用的には、同じ要素が何個でも登録できるように考慮し た集合(多重集合(multiset)という)を考えることが多い。

(8)

(b) 差演算 属性名一覧が一致している2つの関係表の一方に入っているが他方に入っていないよう なタップルを求めて新しい関係表を求める。すなわち、R[A1, A2, …, An] と S[A1, A2, …, An] とに対してその差集合 (R-S)[A1, A2, …, An] := { x | x∈R かつ x∈S } を得る操作を差演算(subtraction)という。 〔例〕 R[A,B,C] A B C a b c d a f c b d S[A,B,C] A B C b g a d a f (R-S)[A,B,C] A B C a b c c b d (c) 直積演算 2つの関係表のそれぞれのタップルの組み合わせすべてを新しいタップルとする関係表 を求める演算。すなわち、R[A1, A2, …, Am] と S[B1, B2, …, Bn] とに対してその直積集合

(R×S)[A1, A2, …, Am,B1, B2, …, Bn] := { (x1, x2, ..., xm, y1, y2,..., yn) |

(x1, x2, ..., xm)∈R かつ (y1, y2,..., yn)x∈S } を得る操作を直積演算(Cartesian product)という。 〔例〕 R[A,B] A B a b d a c b (R×S)[A,B,A,C,D] A B A C D a b 1 3 5 a b 6 2 8 d a 1 3 5 d a 6 2 8 c b 1 3 5 c b 6 2 8 S[A,C,D] A C D 1 3 5 6 2 8

(9)

(d) 射影演算

1つの関係表から特定の属性だけを抜き出して新しい関係表を求める演算。すなわち、

R[A1, A2, …, Am] と、属性番号1≦i1, ..., ik≦m に対して、R の第 i1, ..., ik 成分の射影

πi1, ..., ik (R) [A11, Ai2, …, Aik] := { (xi1, xi2, ..., xik) | (x1, x2, ..., xm)∈R }

を得る操作を射影演算(projection)という。属性の添字の代わりに、属性名そのものを書い てもよい:

πA11, Ai2, …, Aik (R) [A11, Ai2, …, Aik]

〔例〕 S[A,C,D] A C D b g a d a f S1,3[A,D] A D b a d f RA,A,B[A,A,B] A A B a a b d d a c c b R[A,B] A B a b d a c b (e) 選択演算 1つの関係表から、ある特定の条件を満たすようなタップルだけを抜き出して新しい関 係表を求める演算。「条件」としては、属性の間の関係として記述できるようなものだけを 考える。 R の元(エンティティ(entity)とも呼ばれる)を定数と考えよう。そのような定数としては 「数」や「文字」や「文字列」などがあろう。「属性名を表す番数」と区別するために、エンティ ティは’ ’で囲んで表すことにする。このような定数や「属性名を表す番数」(属性名そのも のでもよいことにする)に比較演算子<,≦,=,≠,>,≧を適用した形の論理式、ある いはそういった論理式を論理演算子∧ (and),∨ (or),¬ (not) で結んでできる論理式を ρとしよう(条件式と呼ぶことにする)。

R[A1, A2, …, Am] と条件式 ρ(ただし、ρの中に現れる属性番号は1以上m以下である

(10)

σρ(R)[A1, A2, …, Am]:= { (x1, x2, ..., xm)∈R | (x1, x2, ..., xm) はρを満たす} を求める演算を選択(selection)という。(x1, x2, ..., xm) がρを満たすとは、論理式ρの中に 現れる各属性番号 ik に xik を代入して得られる論理式が成り立つことを言う。 〔例〕 R[A,B,X,Y,Z] A B X Y Z a b 2 3 2 d b 3 5 6 d b 1 3 7 d c 5 7 5 c a 3 8 2 b b 7 6 5 R3=5[A,B,X,Y,Z] A B X Y Z a b 2 3 2a d c 5 7 5 R(A='d')∧X≧'2')[A,B,X,Y,Z] A B X Y Z d b 3 5 2 d c 5 7 5 〔注〕上述の「条件式」は、正確には次のように定義される: 1)エンティティを ’ ’でくくったもの、および属性名(属性番号でもよいが、属性名 と属性番号は混在させない)を定数という。 2)a,bがそれぞれ定数なら、a<b,a≦b,a=b,a≠b,a>b,a≧b はそれぞれ条件式 である。 3)α,βがそれぞれ条件式なら、¬α,α∧β,α∨βはそれぞれ条件式である。 4)1)~3)で定まるものだけが条件式である。 〔注〕実際のリレーショナルデータベース操作言語(例えば、後述の SQL)では、選択演算 は単なる比較演算だけでなく、計算機能が組み込めるように拡張されている。 以上(a)~(e)の5つの演算があれば、他のどんな関係表操作も記述することができる。 その他の関係表操作のうち、頻繁に使われる重要なものいくつかを(a)~(e)を使って表して みよう。 (f) 共通集合演算 2つの関係表に同時に入っているようなタップルだけを求めて新しい関係表をつくる。 すなわち、R[A1, A2, …, An] と S[A1, A2, …, An] とに対してその共通集合

(11)

(R∩S)[A1, A2, …, An] := { x | x∈R かつ x∈S } を得る操作を共通集合演算(intersection)という。R∩S は R∩S=R-(R-S) と表すことができる。 (g) 商演算 直積演算とは逆に、1つの関係表のタップルの末尾が別の関係表のタップルであると き、その末尾を削除したタップルを求める。すなわち、関係表R[A1, …, Am, B1, …, Bn] の 末尾属性がS[B1, …, Bn] の属性と等しいとき、

(R÷S)[A1, …, Am] := { すべての(y1, ..., yn)∈S に対して(x1, ..., xm, y1, ..., yn)∈R } をR を S で割った商(quotient)という。R÷S は R÷S = π1,2,...,m(R)-π1,2,...,m(π1,2,...,m(R)×S)-R) と表すことができる。 (h) 結合 2つの関係表が与えられたとき、それぞれの関係表ごとに属性を指定し、その属性同 士の間で特定の条件が成り立つようなタップルだけを選ぶ。このようなやり方で2つの関 係表を結合して新しい関係表を求めることは、よく行われる重要な演算である。例えば、 学生データベース内の住所情報に関する関係表と成績情報に関する関係表とを合併して住 所と成績の両方を含む関係表を作る際には、同じ学生の住所と成績を一緒にしなければな らない(このとき、同一人物であるかどうかを特定するためには、同姓同名の場合もあるか もしれないので、「名前」が等しいかどうかではなく、「キーとなるような属性」が等しい かどうかで判断しなければならない)。 R[A1, …, Am] とS[B1, …, Bn] を関係表、1≦i≦mをR の属性番号(属性名 Aiでもよい)、 1≦j≦nをS の属性番号(属性名 Bjでもよい)、θを比較演算とするとき、

(R )[AS 1, A2, …, Am,B1, B2, …, Bn] := { (x1, x2, ..., xm, y1, y2,..., yn)∈R×S | xiθyj }

iθj をR と S のθによる結合(join)という。R S は iθj R S =

σ

iθ(m+j)

(R×S

) iθj と表すことができる。

(12)

実際のRDB では、比較演算θは2項演算に限らず多数の属性の間の関係式を表すことが 許されている。 〔例〕 R S[A,B,A,C,D] A B A C D 3 1 6 5 7 3 1 2 8 3 6 2 2 8 3 A<D S[A,C,D] A C D 1 2 4 6 5 7 2 8 3 R[A,B] A B 3 1 6 2 R (1=1)∨(1+2<3) S[A,B,A,C,D] A B A C D 6 2 6 5 7 3 1 6 5 7 (i) 自然な結合 結合の中でもとくに大事なのが自然結合である。自然結合では、「関係表R の属性と関係 表S の属性のうち、「属性が同じところ(すなわち、属性名が等しいところ)は値も等しくな ければならない」(そのような属性の対がいくつあろうとも、そのすべてについてそうでな ければならない)という条件を満たすように結合する。すなわち、R[A1, …, Am] とS[B1, …, Bn] を関係表、1≦i1, i2, ..., ik≦mをR の属性番号、1≦j1, j2, ..., jk≦nをS の属性番号とす る。もし、

Ai1 = Bj1, Ai2 = Bj2, ..., Aik = Bjk

(R と S の対応する k 組の属性が等しい)であるなら、

R S := { (xp1, xp2, ..., xpq) | (x1, ..., xm+n)∈R×S, xi1 = xm+j1, xi2 = xm+j2, ..., xik = xm+jk } により定義される関係表を R と S のθによる自然結合(natural join)という。ただし、p1, p2, ..., pq は 1, 2, ..., m, m+1, m+2, ..., m+n から m+j1, m+j2, ..., m+jk を除いたものである (q=m+n-k)。R S は

R S = πp1,p2,...,pq(σ(i1=m+j1)∧(i2=m+j2)∧…∧(ik=m+jk)(R×S))

(13)

〔例〕 R[A,B,C] A B C a p 1 b r 2 a q 3 c q 5 a r 1 (R S)[A,B,C,D] A B C D a p 1 3 a r 1 3 b r 2 7 S[A,C,D] A C D a 2 4 b 2 7 a 1 3 c 6 8

タップルリレーショナル論理

タップルリレーショナル論理では、次のような「式 (tuple expression)」を使ってリレー ションを表現する: { t | ψ(t)) } ここに、t はタップルを表す変数であり、ψは以下のように定義されるタップル論理式であ る。 1)R が関係表の名前で、sがタップル変数のとき、R(s) という形の式はタップル論理 式である。この式は、sがR のタップル(s∈R)であることを表す。 2)s,t がタップル変数で、θが比較演算子(<,=など)ならば、s[i]θt[j] という形 の式はタップル論理式である。この式は、sの第i 成分と t の第 j 成分はθの関係を 満たすことを表す。 3)2)で述べた s[i] とθ、および定数 a に対して、s[i]θa という形の式はタップル論理 式である。この式の意味は2)と同様。 4)1)~3)で定義されたタップル論理式に現れるタップル変数はどれも自由変数である という。 5)ψ1,ψ2がタップル論理式ならば、ψ1∧ψ2,ψ1∨ψ2,¬ψ1はいずれもタップル論 理式である。これらのタップル論理式ψ1∧ψ2,ψ1∨ψ2,¬ψ1 に現れるタップル 変数は、それがψ1またはψ2において自由変数であるか否か(自由変数でない変数は 束縛変数という)に応じて、ψ1∧ψ2,ψ1∨ψ2,¬ψ1においても自由変数または束 縛変数であるという。 ψ1∧ψ2は「ψ1かつψ2が成り立つ」ことを表し、ψ1∨ψ2は「ψ1またはψ2が成 り立つ」ことを表し、¬ψ1は「ψ1が成り立たない」ことを表す。 6)ψがタップル論理式で、sがタップル変数のとき、(∃s)(ψ) という形の式はタップ ル論理式である。(∃s)のsと、ψの中に現れる自由変数sはどちらも (∃s)(ψ) に

(14)

おいては束縛変数となる。その他のタップル変数は、それがψにおいて自由である か/束縛であるかに応じて (∃s)(ψ) においても自由/束縛であるという。 (∃s)(ψ) は、ψの中の自由変数sすべてに或る定数を代入するとその式が成り立 つ(すなわち、ψを成り立たせるsが存在する)ことを表す。 7)ψがタップル論理式で、sがタップル変数のとき、(∀s)(ψ) という形の式はタップ ル論理式である。(∀s)のsと、ψの中に現れる自由変数sはどちらも (∀s)(ψ) に おいては束縛変数となる。その他のタップル変数は、それがψにおいて自由である か/束縛であるかに応じて (∀s)(ψ) においても自由/束縛であるという。 (∀s)(ψ) は、ψの中の自由変数sすべてにどのような定数を代入してもその式が 成り立つ(すなわち、任意のsに対してψが成り立つ)ことを表す。 8)以上の1)~7)により定義されるものだけがタップル論理式である。 〔例〕タップル変数sの次数がn であることを s(n) と表すことにする。 a) R, S を関係表とするとき、差 R-S は R-S={ t | R(t)∧¬S(t) } と表すことができる。 b) R, S がそれぞれ次数 r, s の関係表のとき、直積 R×S は R×S={ t(r+s) | (∃u(r)) (∃v(s)) (R(u)∧S(v)∧ t[1]=u[1]∧…∧t[r]=u[r]∧ t[r+1]=v[1]∧…∧t[r+s]=v[s]) } と表すことができる。 c) 射影 πi1,i2,...,ik(R) は πi1,i2,...,ik(R)={ s(k) | (∃t) (R(t)∧s[1]=t[i1]∧…∧s[k]=t[ik]) } と表すことができる。

ドメインリレーショナル論理

ドメインリレーショナル論理では、R(x1, x2, ..., xn) といった形の式および xθy といった 形の式(xi, x, y はドメイン変数または定数、θは比較演算子)をタップルリレーショナル 論理と同様に∧,∨,¬,∃,∀を使って結合した論理式ψ(x1, x2, ..., xn) を使って { (x1, x2, ..., xn) | ψ(x1, x2, ..., xn) } といった式で表す。R(x1, x2, ..., xn) は (x1, x2, ..., xn) が R のタップルであることを表す。

(15)

例えば、R が次数 2 の関係表であるとき、 { (x, y) | (∃u)(∃v) R(x,y)∧R(u,v)∧(x≠u∨y≠v) } はタップルリレーショナル論理の論理式 { t(2) | (∃s) (R(t)∧R(s)∧(t[1]≠s[1]∨t[2]≠s[2] ) と同じことを表しており、それは空の関係である(R の要素数が 1 以下の場合)か、または R 自身である(R が 2 個以上の要素を含む場合)。

一貫性制約

関係データベースでは実世界のデータ(エンティティ)の間の関係を関係表で表すが、例え ば、学生データベースにおいて、 ・ある学生の出身地が2 箇所ある ・ある科目の平均点が最高点より高い ・ある学生の年齢が2002 歳である というようなことがあってはデータベースとしての信頼性が落ちてしまう。そこで、デー タ構造に一定の制約を加え、できるだけ完全無欠に近い状態に近づける努力をしている。 このような制約を一貫性制約(integrity constraint)と呼ぶ。

正規形

関係データベースの基本要素である関係表はドメイン(データの集合)の直積の部分集合 である。もし、ドメイン自身がさらに単純なデータ集合の直積になっていたり、集合であ ったり、もっと複雑なデータ構造であったりすると、取り扱いが困難になる。そこで、関 係データベースを構築する際には、ドメインはできるだけシンプルなものでなければなら ないとする。すなわち、関係表として記述される基本データ(ドメインの元)がそれ以上分解 できないものであるとき、そのような制約を満たしているものを第1正規形(first normal form)と呼ぶ。その他に、第2 正規形、第3 正規形と呼ばれるものがある。

(16)

3.関係データベース言語の標準化

実際の関係データベースにおいて問い合わせ(クエリ、query)等を記述するために使う言 語は基本的に関係代数やリレーショナル論理に基づいて設計されているが、このような言 語をRDB 言語と呼ぶ。ISO により 1987 年にSQRがRDB 言語として国際規格化された。 これは、IBM 社が開発した SEQUEL (Structured English Query Language) をベースに したものである。 SQL では次のような形式で質問を記述する。 SELECT 値式1, 値式 2, …, 値式 n FROM 表参照1, 表参照 2, …, 表参照 n WHERE 探索条件 例えば、 商品[商品番号,商品名,定価] 商品番号 商品名 定価 A1 テレビ 35000 A2 テレビ 128500 B1 ビデオ 68700 C1 洗濯機 98000 のとき、 SELECT 商品番号, 定価 FROM 商品 は、関係表「商品」からすべての属性が「商品番号」「定価」であるものを選び出すことを 意味し、その探索結果は 商品[商品番号,定価] 商品番号 定価 A1 35000 A2 128500 B2 68700 C1 98000

(17)

となる。また、 SELECT 商品名, 定価, 定価*0.8 FROM 商品 WHERE 定価≦100000 により 商品[商品番号,商品名,定価] 商品名 定価 定価*0.8 テレビ 35000 28000 テレビ 128500 102800 ビデオ 68700 54960 洗濯機 98000 78400 が得られる。 ・ 「すべて」を表すためには「*」を用いる。 ・ 範囲を指定するために「BEWEEN ○○ AND □□」を用いる。 ・ 結果を大きさの順に並べるために「ASC」(昇順、ascending order)や「DSC」(降 順, descending order)を指定する。 例えば、 SELECT * FROM 商品

WHERE 定価 BETWEE 50000 AND 100000 AND 商品≠'テレビ' ORDER BY 定価 DSC により が得られる。 商品[商品番号,商品名,定価] 商品番号 商品名 定価 C1 洗濯機 98000 B1 ビデオ 68700

(18)

〔演習問題〕

http://www.em.edu.waseda.ac.jp/~moriya/misc/ILA/2002/Aug/RDBproblems.pdf

5.データベースソフト

Access を用いた実習

マイクロソフト社のリレーショナルデータベース言語であるAcees、および Excel を用い て実習を行います。Access の習得が目的ではなく、理論の具体化の例として体験すること が目的です。講義を聞く前と比べて、どう感じるでしょうか?

参考ウェブサイト:

・データベースについては、ILA の e-Learning 講座 http://www.ila.or.jp/project/learning/learning01.html を受講するとよいでしょう。受講料は無料ですが、受講可能な期間は今年の9 月末まで(ILA 会員を除く)です。 <受講方法> e-Learning 講座を受講するには、e-Learning アカウントが必要です。 http://www.ila.or.jp/project/participate/learning.php から申込みしてください(ILA 会員の方は申込み不要です)。 ・関係データベースの発案者の E.F.Codd の写真は〝IBM コンピュータ博物館″をご覧 ください: http://www-6.ibm.com/jp/event/museum/rekishi/rdb.html

参考書:

・寺田・中村・釈・松居、『情報数学の基礎』、サイエンス社、1999. ・増永良文、『リレーショナルデータベース』、サイエンス社、1991. ・上林弥彦、『データベース入門』、昭晃堂、1986.

・J.D.Ullman, Principles of Database Systems, Computer Science Press, 1982.

参照

関連したドキュメント

子どもたちは、全5回のプログラムで学習したこと を思い出しながら、 「昔の人は霧ヶ峰に何をしにきてい

また、第1号技能実習から第2号技能実習への移行には技能検定基礎級又は技

社会調査論 調査企画演習 調査統計演習 フィールドワーク演習 統計解析演習A~C 社会統計学Ⅰ 社会統計学Ⅱ 社会統計学Ⅲ.

「AI 活用データサイエンス実践演習」 「AI

ことの確認を実施するため,2019 年度,2020

卒論の 使用言語 選考要件. 志望者への

国際地域理解入門B 国際学入門 日本経済基礎 Japanese Economy 基礎演習A 基礎演習B 国際移民論 研究演習Ⅰ 研究演習Ⅱ 卒業論文

授業は行っていません。このため、井口担当の 3 年生の研究演習は、2022 年度春学期に 2 コマ行います。また、井口担当の 4 年生の研究演習は、 2023 年秋学期に 2