Transcript
Page 1: JAVAとデータベースkachidoki.jellybean.jp/myWordPress/wp-content/... · 1回目 ネット対戦ゲーム入門 2回目 簡易なネット対戦ゲーム 3回目 javaスクリプトの利用

1

JAVAとデータベース

元明星大学情報学部教授 最首和雄

2019年5月,6月

Eメール:

ホームページ:

ブログ:

1回目: データベース(理論)

Page 2: JAVAとデータベースkachidoki.jellybean.jp/myWordPress/wp-content/... · 1回目 ネット対戦ゲーム入門 2回目 簡易なネット対戦ゲーム 3回目 javaスクリプトの利用

2

予定

1回目 データベースについて(理論)

2回目 XamppでのMySQLの利用法

3回目 Java入門 オブジェクト指向について

4回目 JDBCについて、

(javaによるDBデータアクセス )

5回目 Webアプリでのデータベースアクセス

6回目 JNDIを使ったWebアプリでのデータベースアクセス

4回目ー6回目はeclipseという統合環境を使用

実験にはいちょう塾のWindowsXPを使う。ただし6回目の講義では各自所有

のWindows10のパソコンで行う。ノートパソコンを持ってない人については私

のほうで考える

Page 3: JAVAとデータベースkachidoki.jellybean.jp/myWordPress/wp-content/... · 1回目 ネット対戦ゲーム入門 2回目 簡易なネット対戦ゲーム 3回目 javaスクリプトの利用

3

2019年秋の講義、2020年春の講義予定

2019年秋の講義予定

題:JAVAで作る簡単な対戦ゲーム

1回目 ネット対戦ゲーム入門

2回目 簡易なネット対戦ゲーム

3回目 javaスクリプトの利用

4回目 オセロゲーム1

5回目 オセロゲーム2

6回目 GUIを使ってオセロ

2020年春の講義予定

本「Javaで学ぶ自然言語処理と機械学習」杉本、岩下著

オーム社2018年9月

を使った講義と演習

Page 4: JAVAとデータベースkachidoki.jellybean.jp/myWordPress/wp-content/... · 1回目 ネット対戦ゲーム入門 2回目 簡易なネット対戦ゲーム 3回目 javaスクリプトの利用

4

事務連絡

いちょう塾のパソコン利用者へ:

(1)毎週同じパソコンを使用してください。

(2)パソコンの番号とパスワード(meisei110)はメモしてください。

10時20分から11時50分まで

お手洗いに行く場合は特に断りなく出てかまいません

携帯はマナーモードに

Page 5: JAVAとデータベースkachidoki.jellybean.jp/myWordPress/wp-content/... · 1回目 ネット対戦ゲーム入門 2回目 簡易なネット対戦ゲーム 3回目 javaスクリプトの利用

5

いちょう塾のパソコンの起動方法 ①毎回同じパソコンを使用する(前回と同じ席に)。 (パソコンについている番号を確認) ②パソコンはデュアルブートで、LINUXとWindowsが選択で

きる。 電源を入れると、まもなく「カウントダウン」の画面がでる。

4秒、3秒、… と1秒づつ進む。 この間になにもしないと、カウントダウン終了後 LINUXが起動 ③ この間に1回だけ「Enter」キーを押す。 すると、LINUXとWindowsXPとの選択画面になる ④ ここでWindowsXPを選択する。 ⑤ WindowsXPでパスワードの問い合わせがあるので meisei110 と入れる。

Page 6: JAVAとデータベースkachidoki.jellybean.jp/myWordPress/wp-content/... · 1回目 ネット対戦ゲーム入門 2回目 簡易なネット対戦ゲーム 3回目 javaスクリプトの利用

6

これまでのアンケートから

①「ネットにつないで使いた」

Windows XP はマイクロソフトのサービスが終了しているので、ネットに継がないで使用している

教卓には、Windows XP と Windows 10 のパソコンを置いて、切り替えて使っている

自分でパソコンを持ち込む人にはwifiで接続可能 ②私の「講義が分かりにくい」など 講義は下手なので ご了承ください 講義終了の後、次の講義まで時間間隔が長いので、 質問は納得のいくまで受けます

自分のWindowsの パソコン持ち込み 可

Page 7: JAVAとデータベースkachidoki.jellybean.jp/myWordPress/wp-content/... · 1回目 ネット対戦ゲーム入門 2回目 簡易なネット対戦ゲーム 3回目 javaスクリプトの利用

7

大学教員時代に作ったデータベースのページ

Page 8: JAVAとデータベースkachidoki.jellybean.jp/myWordPress/wp-content/... · 1回目 ネット対戦ゲーム入門 2回目 簡易なネット対戦ゲーム 3回目 javaスクリプトの利用

8

参考書:テクニカルエンジニア データベース 2010年度版

翔泳社 三好、山下、松田著 2009年9月

情報処理技術者試験(平成21年から)

データベーススペシャリスト試験

(それ以前はテクニカルエンジニア(データベース) 試験)

午前1の問題 50分で30問回答、4肢択一方式

午前2の問題 40分で25問回答、4肢択一方式

午後1の問題 90分で3問中2問選択、記述式

午後2の問題 120分で2問中1問選択、記述式

問題内容

①データモデル、基礎理論 ②SQL

③DBMSの機能、運用 ④関連技術、最新技術

今回はデータモデル、基礎理論、SQLの範囲

Page 9: JAVAとデータベースkachidoki.jellybean.jp/myWordPress/wp-content/... · 1回目 ネット対戦ゲーム入門 2回目 簡易なネット対戦ゲーム 3回目 javaスクリプトの利用

9

1. データモデル(参考書から重要な概念の抜粋)

抽象的な設計から具体的な設計へと進める開発モデルを、水が高いところから低いところへ流れ落ちる滝になぞれえてウォータフォールモデルという。各工程には

インプットとアウトプットがあり、アウトプットのことを「成果物」という。

データベースエンジニアの業務:概念データモデル作成

対象となる業務を分析して、管理対象となるエンティティ(実体)とリレーションシップ(エンティティ間の関連)を導き出す。概念データモデルは概念設計の成果物としてE-R図で表される。

Page 10: JAVAとデータベースkachidoki.jellybean.jp/myWordPress/wp-content/... · 1回目 ネット対戦ゲーム入門 2回目 簡易なネット対戦ゲーム 3回目 javaスクリプトの利用

10

データモデル2

概念データモデルとして作成したものを論理的データ構造(コンピュータで実装可能なデータ構造)に変換する。この段階で、処理要件やデータアクセス要件に基づいてデータベースの種類(関係型、階層型、ネットワーク型)が決定され、データ構造が具体化する。関係型データベースを採用した場合は、エンティティを正規化してテーブルを作成する。

概念データモデルのトップダウンアプローチでは、まず情報戦略と新規システム用件を分析して、エンティティとリレーションシップを抽出する。全体計画の段階で新規概略E-R図、次に新規詳細E-R図を作成する。

Page 11: JAVAとデータベースkachidoki.jellybean.jp/myWordPress/wp-content/... · 1回目 ネット対戦ゲーム入門 2回目 簡易なネット対戦ゲーム 3回目 javaスクリプトの利用

11

Page 12: JAVAとデータベースkachidoki.jellybean.jp/myWordPress/wp-content/... · 1回目 ネット対戦ゲーム入門 2回目 簡易なネット対戦ゲーム 3回目 javaスクリプトの利用

12

データモデル3 関係型データモデルは1970年にE.F.Coddにより提案された。数学の集合論や関係代数の概念に基づいたものである。数学的にいうとリレーション(関係)は集合であり、リレーションの要素はタプルという。

タプルは属性値から構成されている。

タプルを一意に識別する属性、あるいは属性集合を

キーと呼ぶ。キーはリレーションの中に複数あってよいが、その1つのキーを任意に選び、主キーと呼ぶ。

主キーの値が決まると、インスタンスを特定できる。このデータモデルはアクセスパス(ポインタ)を持たない。その代わりに外部キーを項目として持つ。

Page 13: JAVAとデータベースkachidoki.jellybean.jp/myWordPress/wp-content/... · 1回目 ネット対戦ゲーム入門 2回目 簡易なネット対戦ゲーム 3回目 javaスクリプトの利用

13

データモデル4 概念データモデルを作成した後、これを論理データモデルに変換することを論理設計という。論理設計では一般に関係型データモデルを採用する。

関係型データモデルでは、論理データモデルとはエンティティを正規化してテーブルに変換したものである。

通常、テーブルは第3正規形にする。

E-R図は1976年にP.P.Chenが提唱したE-Rモデルを表すための図のことである。

E-Rモデルは概念モデルを作成する際に、実世界をエンティティとリレーションシップ(関連)としてモデル化する方法である。

Page 14: JAVAとデータベースkachidoki.jellybean.jp/myWordPress/wp-content/... · 1回目 ネット対戦ゲーム入門 2回目 簡易なネット対戦ゲーム 3回目 javaスクリプトの利用

14

データモデル5 エンティティの持つ属性は次のように分けられる。

単値属性 1インスタンスに対し1つの値をとる属性

多値属性 1つのインスタンスに対して複数の値をとりうる属性、「繰り返し項目」という

単純属性 複数の属性に分解可能でなく、かつ 単純属性であるもの

非単純属性 複数の単純属性に分解可能な属性

エンティティ間の関連には、「1対1」、「1対多」、「多対多」の3種類の対応関係がある。この対応関係を多重度という。また相手方のエンティティに対応するインスタンスが必ず存在するか否かを示すために、オプショナリティという記号を付与することがある。

Page 15: JAVAとデータベースkachidoki.jellybean.jp/myWordPress/wp-content/... · 1回目 ネット対戦ゲーム入門 2回目 簡易なネット対戦ゲーム 3回目 javaスクリプトの利用

15

URL http://kachidoki.jellybean.jp/myWordPress/blog/2019/05/08/2011年のデータベース講義資料

Page 16: JAVAとデータベースkachidoki.jellybean.jp/myWordPress/wp-content/... · 1回目 ネット対戦ゲーム入門 2回目 簡易なネット対戦ゲーム 3回目 javaスクリプトの利用

16

データモデル6

多対多の関連は、そのまま論理データモデルに転換していくと非正規型になる。これは「多」の部分が繰り返し項目になるからである。そこで多対多を排除するために、そのリレーション間にエンティティを1つ設けることで1対多の関連に変換することができる。新たに設けられたエンティティを連関エンティティという。

Page 17: JAVAとデータベースkachidoki.jellybean.jp/myWordPress/wp-content/... · 1回目 ネット対戦ゲーム入門 2回目 簡易なネット対戦ゲーム 3回目 javaスクリプトの利用

17

関係型データモデルについて

リレーション(関係) 氏名、電話番号 という属性での例 氏名のドメイン {最首、飯塚} 電話番号のドメイン {34210533, 35173566, 33512562} この2つの直積

{(最首、 34210533 )、(飯塚、 34210533 )、(最首、 35173566)、(飯

塚、 35173566)、(最首、 33512562)、(飯塚、 33512562)} この一部分(部分集合)をリレーションという。 リレーションの要素をタプルという。 リレーションの例{(飯塚、 34210533 )、(最首、 35173566)、(飯塚、 33512562)}

ドメインはデータベースでは定義域

インターネットではネット上の住所

Page 18: JAVAとデータベースkachidoki.jellybean.jp/myWordPress/wp-content/... · 1回目 ネット対戦ゲーム入門 2回目 簡易なネット対戦ゲーム 3回目 javaスクリプトの利用

18

スーパーキー タプルを一意に識別する属性の集合

候補キー スーパーキーで無駄な属性を含

まない属性集合

主キー 候補キーのうち、主に使用するキー

外部キー 他のリレーションの主キーを参照

する項目(属性)

キーについて

Page 19: JAVAとデータベースkachidoki.jellybean.jp/myWordPress/wp-content/... · 1回目 ネット対戦ゲーム入門 2回目 簡易なネット対戦ゲーム 3回目 javaスクリプトの利用

19

エンティティ間の関連は外部キーで表現

概念データモデル:エンティティ、関連

論理データモデル:リレーション、外部キー

関連が1対多なら、関係A(左側)の主キーを関

係B(多側)に組み入れて外部キーにする:下図

この表記を関係スキーマという

Page 20: JAVAとデータベースkachidoki.jellybean.jp/myWordPress/wp-content/... · 1回目 ネット対戦ゲーム入門 2回目 簡易なネット対戦ゲーム 3回目 javaスクリプトの利用

20

射影 projection

リレーションRから、指定した属性A(複数可)を持つ

新しいリレーションを取り出す演算

選択 selection

指定した比較条件を満たすタプルをリレーションRから

取り出す演算

結合 join

リレーションR,Sの直積から、指定された条件を満たすタプ

ルを射影と選択から取り出す演算

等結合 選択の比較が等号(=)のときの結合

自然結合 射影による重複を取り除いた等結合

Page 21: JAVAとデータベースkachidoki.jellybean.jp/myWordPress/wp-content/... · 1回目 ネット対戦ゲーム入門 2回目 簡易なネット対戦ゲーム 3回目 javaスクリプトの利用

21

射影 選択X X[属性B ] X[属性A=1]属性A 属性B 属性C 属性B 属性A 属性B 属性C

1 あ A あ 1 あ A2 い B い3 あ A

結合R R[R.属性B=S.属性B]属性A 属性B 属性A R.属性B S.属性B 属性C

1 あ 1 あ あ A2 い 2 い い B

S RとSの自然結合属性B 属性C 属性A 属性B 属性Cあ A 1 あ Aい B 2 い Bう C

Page 22: JAVAとデータベースkachidoki.jellybean.jp/myWordPress/wp-content/... · 1回目 ネット対戦ゲーム入門 2回目 簡易なネット対戦ゲーム 3回目 javaスクリプトの利用

22

関数従属性

「項目Xの値が決定すると項目Yの値が一つに

決定される」という事実が成立するとき、項目Y

は項目Xに関数従属しているという。これを

X Y と表記する。Xを決定項、Yを非決定項

主キーで存在する関数従属性

主キーを決定項、すべての項目を非決定項

関数従属性の推論則

反射律 YがXの部分集合なら X Y

増加律 X Y なら、 {X、Z} {Y、Z}

推移律 X Y、 Y Z なら X Z

Page 23: JAVAとデータベースkachidoki.jellybean.jp/myWordPress/wp-content/... · 1回目 ネット対戦ゲーム入門 2回目 簡易なネット対戦ゲーム 3回目 javaスクリプトの利用

23

情報無損失分解

分解後の関係を自然結合すると分解前の関係を

復元できることを情報無損失分解という。

リレーションR(X,Y,Z)を射影S(X,Y)、T(X,Z)に分解して

S,Tを作る。S,Tを自然結合してRを復元できれば

RはS,Tに2分解可能である。

関数従属性に基づく情報無損失分解

リレーションR(X,Y,Z) でX Yが存在すれば、情報無損失

分解して、 S(X,Y)、T(X,Z) を作ることができる。

Page 24: JAVAとデータベースkachidoki.jellybean.jp/myWordPress/wp-content/... · 1回目 ネット対戦ゲーム入門 2回目 簡易なネット対戦ゲーム 3回目 javaスクリプトの利用

24

正規形について

繰り返し項目を含むリレーションを非正規形という

正規形には第1正規形から第5正規形がある。

ここでは第1正規形から第3正規形を述べる。

第1正規形の定義

繰り返し項目をなくして、単純な形にしたリレーション

第2正規形 非キー属性が候補キーに完全関数従属

した形になっている

以下をYはXに完全関数従属するという

関数従属性X Yが成立する。

関数従属性 (Xの真部分集合) Yが成立しない

Page 25: JAVAとデータベースkachidoki.jellybean.jp/myWordPress/wp-content/... · 1回目 ネット対戦ゲーム入門 2回目 簡易なネット対戦ゲーム 3回目 javaスクリプトの利用

25

第2正規形でないテーブルR:主キーは(店名、商品名)店名 商品名 住所 価格コジマ電気 パソコン 池袋 \140,000ヤマダ電気 テレビ 新宿 \120,000ヤマダ電気 掃除機 新宿 \35,000ノジマ電気 テレビ 荻窪 \115,000ノジマ電気 パソコン 荻窪 \150,000

第2正規形にしたテーブル店名 商品名 価格 店名 住所コジマ電気 パソコン \140,000 コジマ電気 池袋ヤマダ電気 テレビ \120,000 ヤマダ電気 新宿ヤマダ電気 掃除機 \35,000 ノジマ電気 荻窪ノジマ電気 テレビ \115,000ノジマ電気 パソコン \150,000

第2正規形の例

Page 26: JAVAとデータベースkachidoki.jellybean.jp/myWordPress/wp-content/... · 1回目 ネット対戦ゲーム入門 2回目 簡易なネット対戦ゲーム 3回目 javaスクリプトの利用

26

第3正規形の定義 非キー属性が候補キー以外

の属性に完全関数従属していない形になっている

関数従属性の分類

①候補キーの一部 非キー属性

上記の従属性を取り除いたのが第2正規形

②非キー属性 非キー属性

③候補キーの一部と非キー属性 非キー属性

④Aの候補キーの一部とB候補キーの一部

非キー属性

④でA,Bは異なるリレーション

②、③、④の関数従属性を除いたのが第3正規形

Page 27: JAVAとデータベースkachidoki.jellybean.jp/myWordPress/wp-content/... · 1回目 ネット対戦ゲーム入門 2回目 簡易なネット対戦ゲーム 3回目 javaスクリプトの利用

27

第3正規形の例

第3正規形でないテーブルR:主キーは(名前)名前 住所 車 メーカー鈴木 所沢 シルビア ニッサン前田 練馬 スカイライン ニッサン加藤 立川 スカイライン ニッサン斉藤 国分寺 ハチロク トヨタ

第3正規形にしたテーブルR:主キーは(名前) 第3正規形のテーブル名前 住所 車 車 メーカー鈴木 所沢 シルビア シルビア ニッサン前田 練馬 スカイライン スカイラインニッサン加藤 立川 スカイライン ハチロク トヨタ斉藤 国分寺 ハチロク

Page 28: JAVAとデータベースkachidoki.jellybean.jp/myWordPress/wp-content/... · 1回目 ネット対戦ゲーム入門 2回目 簡易なネット対戦ゲーム 3回目 javaスクリプトの利用

28

情報処理技術者試験

テクニカルエンジニア(データベース)試験

午前の問題例 :問題の出された年度は異なる

別な問題:R(A,B,C,D,E)の候補キーはどれか

ア AC, イ ACD, ウ AD、 エ CD

Page 29: JAVAとデータベースkachidoki.jellybean.jp/myWordPress/wp-content/... · 1回目 ネット対戦ゲーム入門 2回目 簡易なネット対戦ゲーム 3回目 javaスクリプトの利用

29

Page 30: JAVAとデータベースkachidoki.jellybean.jp/myWordPress/wp-content/... · 1回目 ネット対戦ゲーム入門 2回目 簡易なネット対戦ゲーム 3回目 javaスクリプトの利用

30

Page 31: JAVAとデータベースkachidoki.jellybean.jp/myWordPress/wp-content/... · 1回目 ネット対戦ゲーム入門 2回目 簡易なネット対戦ゲーム 3回目 javaスクリプトの利用

31

Page 32: JAVAとデータベースkachidoki.jellybean.jp/myWordPress/wp-content/... · 1回目 ネット対戦ゲーム入門 2回目 簡易なネット対戦ゲーム 3回目 javaスクリプトの利用

32

Page 33: JAVAとデータベースkachidoki.jellybean.jp/myWordPress/wp-content/... · 1回目 ネット対戦ゲーム入門 2回目 簡易なネット対戦ゲーム 3回目 javaスクリプトの利用

33

Top Related