データベースシステムⅠ 情 報 管 理 学 科 専 門 科 目 ( 教 員 免 許 情 報 : 必 修 科 目 ) 担 当 情 報 基 礎 講 座 教 授 谷 口 伸 一
データベースシステム と 情 報 処 理 システム 事 例 NEC Web 帳 票 管 理 システム(YouTube)
情 報 処 理 とデータベース データと 情 報 の 違 い データ 入 力 キーボード ディスプレイ マウス マイク HTMLで 画 面 設 計 データ 処 理 加 工 VBScript ASP データベース 管 理 システム 情 報 出 力 ディスプレイ 音 響 装 置 HTMLで 画 面 設 計 情 報 処 理 センターでの 実 習 環 境 データベース 管 理 システム Microsoft Access,MySQL(フリーソフト) プログラム 作 成 ソフト TeraPad 動 作 実 験 Webブラウザ:Firefox Webサーバ :Baby Web Server URL: http://hi-ipc5-***.integacc.shiga-u.ac.jp/
Yahoo! 路 線 検 索 システムに 学 ぼう 入 力 画 面 路 線 検 索 処 理 プログラム 路 線 別 時 刻 表 運 賃, 歩 行 時 間 Etc. 出 力 画 面
インターネットとWeb 情 報 システムの 仕 組 み FireWall Internet 4http://203.216.231.189/ WWWサーバ 110.112.114.116 データベースサーバ 110.112.114.117 DNSサーバ 110.112.114.118 連 携 4http://110.112.114.116/ 2http://taniac.shiga-u.jp/ 3http://110.112.114.116/ レポートを 提 出 2http://www.yahoo.co.jp/ 3http://203.216.231.189/ Yahooを 検 索 1http://taniac.shiga-u.jp/ 1http://www.yahoo.co.jp/
ASPとVBScriptによるWeb 情 報 システムの 例 input.html <HTML> <HEAD> <TITLE>データ 入 力 画 面 </TITLE> </HEAD> <BODY> X+Yの 足 し 算 をします. <Form Action="keisan.asp" Method="GET"> X=<Input Type="text" Name="X" Size="5"> Y=<Input Type="text" Name="Y" Size="5"> <HR Align="left" Width="150"> <Input Type="submit" Value=" 計 算 "> <Input Type="reset" Value=" 消 去 "> </Form> </BODY> </HTML> keisan.asp <%@ LANGUAGE="VBScript" %> <HTML> <HEAD> <TITLE>ASP</TITLE> </HEAD> <BODY> <% 'データ 処 理 X=Request("X") 'このとき X は 文 字 列 Y=Request("Y") 'このとき Y は 文 字 列 Z=Cint(X)+Cint(Y) 'CInt 関 数 で 数 値 に 変 換 ' 結 果 の 表 示 Response.Write "ASPによるX+Yの 計 算 <BR>" Response.Write "X=" & X & "<BR>" Response.Write "Y=" & Y & "<BR>" Response.Write "X+Y=" & Z & "<BR>" %> </BODY> </HTML>
プログラムの 解 説 input.htmlの 説 明 1<Form Action="keisan.asp" Method="GET"> 入 力 フォームを 作 成 し データをプログラム"keisan.asp"に 渡 すことを 指 示. Method="GET"はデータを 渡 す 方 式. "GET "と"POST"の2 種 類 がある. 2<Input Type="データ 形 式 "Name="タグ" > 8 種 類 を 覚 えよう 3 計 算 ボタンが,Type= "submit となる.Submitの 意 味 :1 服 従 させる(- -) keisan.aspの 説 明 1ファイルの 拡 張 子 は"asp". 2 提 出 する(^^) 2<%@ LANGUAGE= VBScript %> によってスクリプト(プログラム) 言 語 を 明 記. JScript もある 3VBスクリプトの 記 述 範 囲 を <% %> で 囲 む. 4X=Request("X") によって 送 られてきたデータを 変 数 Xに 代 入 ( 記 憶 )する. 5CInt( ) 関 数 文 字 列 を 数 値 ( 整 数 )に 変 換 する. 計 算 ができるようにするため. CInt : Convert Integerの 略.2バイトの 整 数 変 換 (-32,768 ~ +32,767) CLng: Convert Long Integerの 略.4バイトの 整 数 変 換 (-2147,483,648 ~ +2147,483,647) 1 Type= text 2 Type= radio 3 Type= checkbox 4 Type= submit 5 Type= reset 6 Type= password 7 Type= hidden 8 Type= button 6Response.Write こんにちは ダブルクォーテーションで 囲 まれた 文 字 列 こんにちは を 書 き 出 す. 文 字 列 と 変 数 を 連 結 して 処 理 結 果 を 書 き 出 すこともできる. Response.Write こんにちは & NAME & さん 文 字 列 と 変 数 は & で 連 結 する. 例 :Response.Write X+Y= & Z & <BR> "X+Y="は 文 字 列,Zは 変 数 なので,その 中 身 "30"が 連 結 されて,"X+Y=30" となってHTMLデータとして 書 き 出 される. どのように 書 き 出 されるのか, 自 分 がコンピュータになったつもりで 考 える 癖 をつけるとよい. 練 習 問 題 XとYを 入 力 して 加 減 乗 除 の 計 算 をして 表 示 するようにしてみよう
Web 情 報 処 理 システムにはWebサーバが 必 要 以 下 の 手 順 でWebサーバを 準 備 しましょう. 1. Pablo Software Solutions(Web.pablosoftwaresolutions.com/)から "Baby Web Server"をDownload 2. "babyweb.exe"を 起 動 する. 3. ホームディレクトリの 設 定 Settingsタブをクリック. 標 準 "C: WebPages". 大 学 では"X: WebPages" 4. このWebサーバへアクセスするためのURL: 個 人 のPCで 実 験 するとき http://localhost/input.html 第 5 演 習 室 のPCのとき http://hi-ipc5-***.integacc.shiga-u.ac.jp/input.html ***はディスプレイ 右 上 にラベルで 示 されている 情 報 系 システム Webサーバ データベースサーバ 基 幹 系 システム 連 携 (ODBC) Fire Wall Webブラウザ ( 標 準 装 備 ) INTERNET 専 用 クライアント ( 専 用 ソフトが 必 要 )
データベースシステム と データ 分 析 事 例 NEC 手 軽 に 使 えるBIツール(YouTube)
エクセルで 次 のデータ 分 析 ができますか? 今 後 10 年 で 最 もセクシーな 仕 事 はデータサイエンティストだ! Googleチーフエコノミスト ハル ヴァリアン (2009) データサイエンティストとは 大 量 のデータを 分 析 し 有 益 な 結 果 を 導 き 出 すことで,ビジネス 上 の 価 値 創 出 のシナリオまで 描 ける 専 門 家 である 数 理 統 計 とプログラミングのスキル そこに 経 営 やマーケティングなどのビジネススキルを 備 えていること トーマス ダベンポート 参 考 : 週 刊 ダイヤモンド(2013,3.25) DBSⅠ( 売 上 データ).xlsxを 使 って 以 下 の 分 析 をしてください 1. 商 品 別 1 キリマンジャロだけを 表 示 する. 2 キリマンジャロの 売 上 合 計 を 計 算 する. 3 緑 茶 に 分 類 される 商 品 の 売 上 合 計 から 特 徴 を 分 析 する. 4 すべての 商 品 の 売 上 合 計 から 特 徴 を 分 析 する. 2. 店 舗 別 1 日 光 店 の 売 上 だけを 表 示 する. 2 日 光 店 の 売 上 合 計 を 計 算 する. 3 日 光 店 の 商 品 別 売 上 合 計 から 特 徴 を 分 析 する. 3. 応 用 (クロス 集 計 ) 1 店 舗 別 に 商 品 別 売 上 合 計 を 計 算 して 特 徴 を 探 る. ピボット テーブルを 使 ってみよう. Report_1 1. から3. のデータ 分 析 を 行 い,その 結 果 をわかりやすく 示 して 考 察 しなさい
売 上 データベースを 作 ってみよう 以 下 の 手 順 でEXCELデータをAccessへインポートします. 1. ACCESS"を 起 動 する. 1 空 のデスクトップデータベース をクリック 2ファイル 名 入 力 売 上 データベース.accdb 3 保 存 先 を 指 定 X: Webpages 4[ 作 成 ]をクリック 2. ExcelデータをAccessデータベースにインポート 5 外 部 データ をクリック 6インポートとリンクから Excel をクリック 1 3 2 3 4 5 6
EXCELデータをインポート 3. 参 照 エクセルファイルを 指 定. 4. OK X: Webpages DBSⅠ( 売 上 データ).xlsx
EXCELデータをインポート 3. データ 型 の 設 定 に 注 意!
データベース 完 成! 4. 売 上 げデータ テーブルをダブルクリック
SQLでデータ 分 析! 9. SQLを 実 行 する 準 備 としてクエリを 作 成. 作 成 メニュー クエリデザイン 10. 売 上 データ をクリック
SQLでデータ 分 析! 11. SQLビューにする ホーム メニュー 表 示 下 の をクリック SQLビュー 12. 図 のようにSQLを 入 力 して キリマンジャロだけを 表 示 する SQLの 入 力 が 終 われば 表 示 をクリック 検 索 結 果 が 表 示 される 検 索 結 果 SELECT * FROM 売 上 データ WHERE 商 品 名 ='キリマンジャロ 意 味 売 上 データ テーブルから 商 品 名 = キリマンジャロ の 行 を 選 択 し * =すべての 列 項 目 を 表 示 する
SQL 実 行 システム イントロダクションでは,Accessのクエリ 機 能 で 検 索 を 実 習 しました. 文 字 が 小 さく, 扱 いやすいとは 言 えませんでした. 本 章 では, 各 種 SQLコマンドを 実 行 できるWebシステムを 作 成 して, データベース 操 作 を 実 習 します. そのために, 次 のプログラムを 作 成 します. SQL 文 を 入 力 するプログラム(HTML 入 力 画 面 ) SQL 文 を 実 行 するプログラム(ASPプログラム) あわせて,Webシステムのプログラミングや 動 作 の 仕 組 みを 理 解 して 下 さい. 入 力 画 面 の 例 商 品 名 売 上 合 計 キリマンジャロ 4989000 緑 茶 4553340 コーラ 4467980 ブレンドコー ヒー 4449280 ほうじ 茶 4011920
SQL 実 行 システムを 作 ろう 単 価 が150 円 以 上 の 商 品 を 検 索 Client PC 1 入 力 画 面 2 処 理 結 果 InterNet Server Computer 1 プログラム 処 理 2 データベース 処 理 1 SELECT.html 2 SELECT.asp + ASP Web Server 実 験 http://hi-ipc5-tt1.integacc.shiga-u.ac.jp/sql/select.html
SQL 実 行 システム 入 力 画 面 SELECT.HTML <HTML> <HEAD> <TITLE>SQL execution SELECT</TITLE> </HEAD> <BODY> <FONT SIZE=+2>SQLコマンドを 入 力 して 下 さい.</FONT><BR><BR> <FORM ACTION="SELECT.asp" METHOD="GET"> <TABLE CELLSPACING="2"> <TR> <TD>SELECT</TD> <TD><INPUT TYPE="text" NAME="select" SIZE="100" VALUE=""></TD> </TR> <TR> <TD>FROM</TD> <TD><INPUT TYPE="text" NAME="from" SIZE="50" VALUE=""></TD> </TR> <TR> <TD>WHERE</TD> <TD><INPUT TYPE="text" NAME="where" SIZE="100" VALUE=""></TD> </TR> <TR> <TD>GROUP BY</TD> <TD><INPUT TYPE="text" NAME="group" SIZE="50" VALUE=""></TD> </TR> <TR> <TD>ORDER BY</TD> <TD><INPUT TYPE="text" NAME="order" SIZE="50" VALUE=""></TD> </TR> </TABLE> <BR> <INPUT TYPE="SUBMIT" VALUE=" 検 索 "> <INPUT TYPE="RESET" VALUE=" 取 消 "> </FORM> </BODY> </HTML>
SQL 実 行 システムプログラム SELECT.ASP <%@ LANGUAGE="VBScript" %> <HTML> <HEAD> <TITLE>SQL 実 行 </TITLE> </HEAD> <BODY> <Font Size=+2>SQL 実 行 結 果 </Font> <BR><BR> <% On Error Resume Next '--------------------- 'コマンド 受 信 '--------------------- v_select=request("select") v_from=request("from") v_where=request("where") v_group=request("group") v_order=request("order") v_sp=" " : 半 角 空 白 '------------------- 'SQL 文 の 作 成 '------------------- SQLs=v_SELECT & v_sp & v_from & v_sp & v_where & v_sp & v_group & v_sp & v_order Response.Write " 実 行 するSQL 文 <BR>" & SQLs & "<BR><BR>" '------------------ 'DBオープン '------------------ Set DB=Server.CreateObject("ADODB.Connection") :'Object DB.Provider="Microsoft.ACE.OLEDB.12.0" :'property DB.Open Server.MapPath(" 売 上 データベース.accdb") :'method
SQL 実 行 システムプログラム(つづき) '-------------------------------------------------------------------------------- 'SQL 実 行 :データベースOPEN 後 の 操 作 は 細 心 の 注 意 を 払 う '-------------------------------------------------------------------------------- Set RS= DB.Execute(SQLs) '--------------------------------- 'エラーチェックを 行 うこと '--------------------------------- If (DB.Errors.Count = 0) Then Response.Write "<Table Border=1>" '------------------------------------------------- 'SELECT 句 で 指 定 された 列 名 の 表 示 '------------------------------------------------- For i=0 to RS.Fields.Count 1 : RS.Fields.Count= 検 索 された 列 数 (2つ) Response.Write "<TH>" & Rs.Fields( i ).Name & "</TH>" Next '---------------------------------------------- ' 検 索 された 全 レコード 表 示 '---------------------------------------------- Do Until (RS.EOF=True) Response.Write "<TR>" For i=0 to RS.Fields.Count-1 Response.Write "<TD Align=center>" & RS.Fields( i ) & "</TD>" Next Response.Write "</TR>" RS.MoveNext : これを 忘 れると 繰 り 返 しが 終 わらない. 要 注 意! Loop Response.Write "</Table>" Else Response.Write "SQL 実 行 エラーが 発 生 しました.<BR>" Response.Write " 原 因 =" & DB.Errors(0).Description End If RS.Close DB.Close %> </Body> </HTML>
Report-2 : 1. から3. のSQLを 作 成 実 行 し その 結 果 からデータ 分 析 を 試 みなさい 季 節, 立 地 条 件 などを 勘 案 するとよい.また データ 分 析 に 関 してExcelとAccessのメリット デメリットを 比 較 しなさい SQLでデータ 分 析! データベースでは 操 作 言 語 SQL(Structured Query Language)で 操 作 するんだ! 1. 商 品 別 ( 検 索 レコード 数 が 多 い 場 合 は20 行 程 度 を 示 せば 良 い) 1 キリマンジャロだけを 表 示 する. 2 3 4 SELECT * FROM 売 上 データ キリマンジャロの 売 上 合 計 を 計 算 する. WHERE 商 品 名 = キリマンジャロ SELECT SUM( 売 上 金 額 ) FROM 売 上 データ WHERE 商 品 名 = キリマンジャロ 緑 茶 に 分 類 される 商 品 の 売 上 合 計 から 特 徴 を 分 析 する. SELECT 商 品 名, SUM( 売 上 金 額 ) FROM 売 上 データ WHERE 分 類 =' 緑 茶 GROUP BY 商 品 名 ORDER BY SUM( 売 上 金 額 ) DESC すべての 商 品 の 売 上 合 計 から 特 徴 を 分 析 する. SELECT 商 品 名, SUM( 売 上 金 額 ) FROM 売 上 データ GROUP BY 商 品 名 ORDER BY SUM( 売 上 金 額 ) DESC 2. 店 舗 別 ( 自 分 で 考 えよ 検 索 レコード 数 が 多 い 場 合 は20 行 程 度 を 示 せば 良 い) 1 日 光 店 の 売 上 だけを 表 示 する. 2 日 光 店 の 売 上 合 計 を 計 算 する. 3 日 光 店 の 商 品 別 売 上 合 計 から 特 徴 を 分 析 する. 3. 応 用 (クロス 集 計 ) 1 店 舗 別 に 商 品 別 売 上 合 計 を 計 算 して 特 徴 を 探 る. SELECT 店 舗 名, 商 品 名, SUM( 売 上 金 額 ) FROM 売 上 データ GROUP BY 店 舗 名, 商 品 名 2 ORDER BY 店 舗 名, SUM( 売 上 金 額 ) DESC TRANSFORM ~ PIVOTでクロス 集 計 表 を 作 成 してみよう. TRANSFORM SUM( 売 上 金 額 ) AS 売 上 合 計 SELECT 店 舗 名, SUM( 売 上 金 額 ) AS 店 舗 売 上 合 計 FROM 売 上 データ GROUP BY 店 舗 名 PIVOT 商 品 名
データベースの 設 計 を 考 えるために ExcelあるいはAccessのデータ( 表 )を 見 て なにか ムダ 不 都 合 がないか 考 えてみよう! 1. ムダ とはなにか? みなさんなら ムダ を 省 くためにどのような 表 にします か? 2. 不 都 合 とはなにか? 緑 茶,ほうじ 茶, 玉 露 は, 緑 茶 として 分 類 され, 間 違 いではありませんが, 日 本 茶 に 変 更 してみましょう. どうしますか? ここで 気 づいたことがデータベースの 設 計 にとって 重 要!
Check! データベース 入 門 チェック! Webプログラムの 動 作 の 仕 組 みを 理 解 できましたか? Web Serverの 役 割 を 理 解 できましたか? ExcelからAccessに 変 換 してデータベースを 作 成 できましたか? Excelでクロス 集 計 ができるようになりましたか? AccessでSQLによるデータ 操 作 の 初 歩 が 分 かりましたか? データ 分 析 の 重 要 性 を 考 えるきっかけになりましたか? 次 章 ではデータベース 設 計 のための 技 法 と 理 論 を 学 びます