67
copyright (c) 2009. Akihiro Tsukada. 二郎で学ぶデータベース設計 二郎で学ぶ データベース設計 つかだ@atcorp 2009.09.22 学生プログラマー勉強会

Jiro And Database Spsm0922

Embed Size (px)

DESCRIPTION

2009.9.22 学生プログラマー勉強会でのつかだ発表スライド

Citation preview

Page 1: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

二郎で学ぶデータベース設計

 二郎で学ぶ データベース設計       つかだ@atcorp

       2009.09.22       学生プログラマー勉強会

Page 2: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

今日のおはなし

1) 自己紹介

2) データベース

3) 事例:二郎

4) おわり

Page 3: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

今日のおはなし

1) 自己紹介

2) データベース

3) 事例:二郎

4) おわり

Page 4: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

今日のおはなし

1) 自己紹介

2) データベース

3) 事例:二郎

4) おわり

Page 5: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

今日のおはなし

1) 自己紹介

2) データベース

3) 事例:二郎

4) おわり

Page 6: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

今日のおはなし

1) 自己紹介

2) データベース

3) 事例:二郎

4) おわり

Page 7: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

1) 自己紹介

名HNBlog勉強会@IT

:::::

つかだ あきひろatcorp学内IT勉強会のススメ電設部IT勉強会学生スターエンジニア

Page 8: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

1) 自己紹介

名HNBlog勉強会@IT

:::::

つかだ あきひろatcorp学内IT勉強会のススメ電設部IT勉強会学生スターエンジニア

Page 9: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

1) 自己紹介

名HNBlog勉強会@IT

:::::

つかだ あきひろatcorp学内IT勉強会のススメ電設部IT勉強会学生スターエンジニア

Page 10: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

1) 自己紹介

名HNBlog勉強会@IT

:::::

つかだ あきひろatcorp学内IT勉強会のススメ電設部IT勉強会学生スターエンジニア

Page 11: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

1) 自己紹介

名HNBlog勉強会@IT

:::::

つかだ あきひろatcorp学内IT勉強会のススメ電設部IT勉強会学生スターエンジニア

Page 12: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

1) 自己紹介

名HNBlog勉強会@IT

:::::

つかだ あきひろatcorp学内IT勉強会のススメ電設部IT勉強会学生スターエンジニア

Page 13: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

2) データベース - 1/4

◆データベース - DATABASE   ○… data   ×… information

 データを

 安全・高速・大量に

 管理する

Page 14: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

2) データベース - 1/4

◆データベース - DATABASE   ○… data   ×… information

 データを

 安全・高速・大量に

 管理する

Page 15: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

2) データベース - 1/4

◆データベース - DATABASE   ○… data   ×… information

 データを

 安全・高速・大量に

 管理する

Page 16: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

2) データベース - 1/4

◆データベース - DATABASE   ○… data   ×… information

 データを

 安全・高速・大量に

 管理する

Page 17: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

2) データベース - 1/4

◆データベース - DATABASE   ○… data   ×… information

 データを

 安全・高速・大量に

 管理する

Page 18: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

2) データベース - 2/4

◆データベースの種類 ・カード型DB ・階層型DB ・ネットワーク型DB ・リレーショナルDB ・オブジェクト(指向)DB ・XMLDB

Page 19: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

2) データベース - 2/4

◆データベースの種類 ・カード型DB ・階層型DB ・ネットワーク型DB ・リレーショナルDB ・オブジェクト(指向)DB ・XMLDB

Page 20: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

2) データベース - 2/4

◆データベースの種類 ・カード型DB ・階層型DB ・ネットワーク型DB ・リレーショナルDB ・オブジェクト(指向)DB ・XMLDB

Page 21: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

2) データベース - 2/4

◆データベースの種類 ・カード型DB ・階層型DB ・ネットワーク型DB ・リレーショナルDB ・オブジェクト(指向)DB ・XMLDB

Page 22: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

2) データベース - 2/4

◆データベースの種類 ・カード型DB ・階層型DB ・ネットワーク型DB ・リレーショナルDB ・オブジェクト(指向)DB ・XMLDB

Page 23: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

2) データベース - 2/4

◆データベースの種類 ・カード型DB ・階層型DB ・ネットワーク型DB ・リレーショナルDB ・オブジェクト(指向)DB ・XMLDB

Page 24: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

2) データベース - 2/4

◆データベースの種類 ・カード型DB ・階層型DB ・ネットワーク型DB ・リレーショナルDB ・オブジェクト(指向)DB ・XMLDB

Page 25: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

2) データベース - 2/4

◆データベースの種類 ・カード型DB ・階層型DB ・ネットワーク型DB ・リレーショナルDB ・オブジェクト(指向)DB ・XMLDB

Page 26: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

2) データベース - 3/4

◆RDB ・二次元の表形式 で  データを扱う ・SQL を使ってデータ操作 ・DBMSとして Oracle・MySQL・PostgresSQL  などなど

Page 27: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

2) データベース - 3/4

◆RDB ・二次元の表形式 で  データを扱う ・SQL を使ってデータ操作 ・DBMSとして Oracle・MySQL・PostgresSQL  などなど

Page 28: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

2) データベース - 3/4

◆RDB ・二次元の表形式 で  データを扱う ・SQL を使ってデータ操作 ・DBMSとして Oracle・MySQL・PostgresSQL  などなど

Page 29: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

2) データベース - 3/4

◆RDB ・二次元の表形式 で  データを扱う ・SQL を使ってデータ操作 ・DBMSとして Oracle・MySQL・PostgresSQL  などなど

Page 30: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

2) データベース - 3/4

◆RDB ・二次元の表形式 で  データを扱う ・SQL を使ってデータ操作 ・DBMSとして Oracle・MySQL・PostgresSQL  などなど

Page 31: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

2) データベース - 3/4

◆RDB ・二次元の表形式 で  データを扱う ・SQL を使ってデータ操作 ・DBMSとして Oracle・MySQL・PostgresSQL  などなど

Page 32: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

2) データベース - 3/4

◆RDB ・二次元の表形式 で  データを扱う ・SQL を使ってデータ操作 ・DBMSとして Oracle・MySQL・PostgresSQL  などなど

Page 33: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

2) データベース - 4/4

◆WEBシステムでの立ち位置

WEBサーバ

アプリケーションサーバ

DBサーバ

クライアント

SQL データ

Page 34: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

3) 事例:二郎 - 1/5

◆二郎とは 

Page 35: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

3) 事例:二郎 - 1/5

◆二郎とは 

Page 36: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

3) 事例:二郎 - 2/5

◆二郎の要件(単純化してます) ・小、大のサイズがある ・ラーメン、ラーメン豚入りがある ・トッピングがある {ヤサイ、ショウユダレ、アブラ} ・トッピングは量を指定できる {ヌキ、チョット、マシ、マシマシ}

Page 37: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

3) 事例:二郎 - 2/5

◆二郎の要件(単純化してます) ・小、大のサイズがある ・ラーメン、ラーメン豚入りがある ・トッピングがある {ヤサイ、ショウユダレ、アブラ} ・トッピングは量を指定できる {ヌキ、チョット、マシ、マシマシ}

Page 38: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

3) 事例:二郎 - 2/5

◆二郎の要件(単純化してます) ・小、大のサイズがある ・ラーメン、ラーメン豚入りがある ・トッピングがある {ヤサイ、ショウユダレ、アブラ} ・トッピングは量を指定できる {ヌキ、チョット、マシ、マシマシ}

Page 39: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

3) 事例:二郎 - 2/5

◆二郎の要件(単純化してます) ・小、大のサイズがある ・ラーメン、ラーメン豚入りがある ・トッピングがある {ヤサイ、ショウユダレ、アブラ} ・トッピングは量を指定できる {ヌキ、チョット、マシ、マシマシ}

Page 40: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

3) 事例:二郎 - 2/5

◆二郎の要件(単純化してます) ・小、大のサイズがある ・ラーメン、ラーメン豚入りがある ・トッピングがある {ヤサイ、ショウユダレ、アブラ} ・トッピングは量を指定できる {ヌキ、チョット、マシ、マシマシ}

Page 41: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

3) 事例:二郎 - 2/5

◆二郎の要件(単純化してます) ・小、大のサイズがある ・ラーメン、ラーメン豚入りがある ・トッピングがある {ヤサイ、ショウユダレ、アブラ} ・トッピングは量を指定できる {ヌキ、チョット、マシ、マシマシ}

Page 42: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

3) 事例:二郎 - 2/5

◆二郎の要件(単純化してます) ・小、大のサイズがある ・ラーメン、ラーメン豚入りがある ・トッピングがある {ヤサイ、ショウユダレ、アブラ} ・トッピングは量を指定できる {ヌキ、チョット、マシ、マシマシ}

Page 43: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

3) 事例:二郎 - 2/5

◆二郎の要件(単純化してます) ・小、大のサイズがある ・ラーメン、ラーメン豚入りがある ・トッピングがある {ヤサイ、ショウユダレ、アブラ} ・トッピングは量を指定できる {ヌキ、チョット、マシ、マシマシ}

Page 44: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

3) 事例:二郎 - 2/5

◆二郎の要件(単純化してます) ・小、大のサイズがある ・ラーメン、ラーメン豚入りがある ・トッピングがある {ヤサイ、ショウユダレ、アブラ} ・トッピングは量を指定できる {ヌキ、チョット、マシ、マシマシ}

Page 45: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

3) 事例:二郎 - 2/5

◆二郎の要件(単純化してます) ・小、大のサイズがある ・ラーメン、ラーメン豚入りがある ・トッピングがある {ヤサイ、ショウユダレ、アブラ} ・トッピングは量を指定できる {ヌキ、チョット、マシ、マシマシ}

Page 46: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

3) 事例:二郎 - 2/5

◆二郎の要件(単純化してます) ・小、大のサイズがある ・ラーメン、ラーメン豚入りがある ・トッピングがある {ヤサイ、ショウユダレ、アブラ} ・トッピングは量を指定できる {ヌキ、チョット、マシ、マシマシ}

Page 47: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

3) 事例:二郎 - 2/5

◆二郎の要件(単純化してます) ・小、大のサイズがある ・ラーメン、ラーメン豚入りがある ・トッピングがある {ヤサイ、ショウユダレ、アブラ} ・トッピングは量を指定できる {ヌキ、チョット、マシ、マシマシ}

Page 48: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

3) 事例:二郎 - 2/5

◆二郎の要件(単純化してます) ・小、大のサイズがある ・ラーメン、ラーメン豚入りがある ・トッピングがある {ヤサイ、ショウユダレ、アブラ} ・トッピングは量を指定できる {ヌキ、チョット、マシ、マシマシ}

Page 49: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

3) 事例:二郎 - 3/5

◆データモデリング

Page 50: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

3) 事例:二郎 - 3/5

 ・小、大のサイズがある ・ラーメン、ラーメン豚入りがある

◆データモデリング

Page 51: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

3) 事例:二郎 - 3/5

◆データモデリング

ラーメン小

ラーメン大

ラーメン小豚

ラーメン大豚

Page 52: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

3) 事例:二郎 - 3/5

◆データモデリング

ラーメン小

ラーメン大

ラーメン小豚

ラーメン大豚

サイズ、豚有無は客(卓番&時刻)ごとにそれぞれが決まる!

Page 53: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

3) 事例:二郎 - 3/5

◆データモデリング

ラーメン小

ラーメン大

ラーメン小豚

ラーメン大豚

客-----------卓番:int時刻:date大フラグ:boolean豚フラグ:boolean

Page 54: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

3) 事例:二郎 - 3/5

 ・トッピングがある {ヤサイ、ショウユダレ、アブラ}

◆データモデリング

Page 55: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

3) 事例:二郎 - 3/5

◆データモデリング

ヤサイ

ショウユダレ

アブラ

Page 56: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

3) 事例:二郎 - 3/5

◆データモデリング

ヤサイ

ショウユダレ

アブラ

トッピングはトッピング名によって識別される!

Page 57: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

3) 事例:二郎 - 3/5

◆データモデリング

ヤサイ

ショウユダレ

アブラ

トッピング--------------トッピング名:String

Page 58: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

3) 事例:二郎 - 3/5

 ・トッピングは量を指定できる {ヌキ、チョット、マシ、マシマシ}

◆データモデリング

Page 59: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

3) 事例:二郎 - 3/5

◆データモデリング

ヌキ

チョット

マシ

マシマシ

Page 60: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

3) 事例:二郎 - 3/5

◆データモデリング

ヌキ

チョット

マシ

マシマシ

トッピングの量には4種類がある!ここでは1~4のIDで管理してみよう。

Page 61: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

3) 事例:二郎 - 3/5

◆データモデリング

ヌキ

チョット

マシ

マシマシ

トッピング量--------------量ID:int量名:String

Page 62: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

3) 事例:二郎 - 3/5

◆データモデリング

ヌキ

チョット

マシ

マシマシトッピング量は、客ごと、トッピングごとに決まる!

トッピング量--------------量ID:int量名:String

Page 63: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

3) 事例:二郎 - 3/5

◆データモデリング(ER図)客-----------卓番:int時刻:date大フラグ:boolean豚フラグ:boolean

トッピング--------------トッピング名:String

客別トッピング量--------------卓番:int時刻:dateトッピング名:String量ID:int

トッピング量--------------量ID:int量名:String

Page 64: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

3) 事例:二郎 - 4/5

◆SQLの生成

CREATE TABLE 客別トッピング量 ( 卓番 int, 時刻 date, トッピング名 String, 量ID int,PRIMARY KEY (卓番, 時刻, トッピング名, 量ID),FOREIGN KEY (卓番, 時刻) REFERENCES 客(卓番, 時刻),FOREIGN KEY (トッピング名) REFERENCES トッピング(トッピング名),FOREIGN KEY (量ID) REFERENCES 量(量ID));

CREATE TABLE 客 ( 卓番 int, 時刻 date, 大フラグ boolean, 豚フラグ boolean, PRIMARY KEY (卓番, 時刻));

CREATE TABLE トッピング ( トッピング名 String PRIMARY KEY);CREATE TABLE トッピング量 ( 量ID int PRIMARY KEY, 量名 String);

Page 65: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

3) 事例:二郎 - 5/5

◆出来上がったDBのイメージ

Page 66: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

4) おわり

◆非常におおまかにやりました

◆気になる人は「正規化」、

  「データモデリング」などを

◆二郎をよろしく

  (京都なら「夢を語れ」)

Page 67: Jiro And Database Spsm0922

copyright (c) 2009. Akihiro Tsukada.

二郎で学ぶデータベース設計

    ご清聴ありがとうござました。  二郎で学ぶ データベース設計       つかだ@atcorp

       2009.09.22       学生プログラマー勉強会