情報通信システム(12) http://www10. plala. or 情報通信システム(12) http://www10.plala.or.jp/katofmly/chiba-u/ 2019年7月23日 火曜日  午後4時10分~5時40分 NTT-TX Corp. 加藤 洋一.

Slides:



Advertisements
Similar presentations
ASP入門 - Windows 2000 Server 活用 -.
Advertisements

DB(データベース)のおはなし 作成者:小野正広 DBと言っても、  ドラゴンボール ではないですぞ! 3/1/2017.
SQLite3
インターネット技術特論 H:SQLite3 山口 実靖
情報理工学部 情報システム工学科 ラシキアゼミ 3年 H 井奈波 和也
JPAを利用した RESTful Webサービスの開発
WEBから確認できる 駐車場管理システムについて
3-1 MySQLについて 発表者:藤村元彦 自然言語処理研究室.
MySQLに接続するデータベースプログラム
Excel による データベース入門 Ver /9.
ウェブページ制作の基礎 タグの直接入力によるウェブページの制作 次のスライドへ進んだり,戻ったりしたい時は,右下のボタンをクリック。 次へ.
PHPエディタによる 情報システム演習 01.
6-2 データベース 1.SQLite SQLを単純化した SQLite を使ってデータベースを操作 表「fruit」
NetworkAssistTakaoka
ACCESSによる データベースアプリケーション開発実習 日本工業大学 情報工学科 “データベースの実際” 教材
SQL J2EE I 第3回 /
情報通信システム(12) plala. or 情報通信システム(12) 年7月19日 火曜日  午後4時10分~5時40分 NTT-IT Corp. 加藤 洋一.
オペレーティングシステムⅡ 第3回 講師 松本 章代 VirtuaWin・・・仮想デスクトップソフト 2009/10/16.
佐賀大学 理工学部知能情報システム学科 講師 大月 美佳
3-2.データを取り出す 2004年 5月20日(木) 01T6074X 茂木啓悟.
Webコミュニケーショングループ ~CGI勉強会~ (データーベース編)
HTTPプロトコルとJSP (1) データベース論 第3回.
Webを利用した授業支援システムの開発 北海道工業大学 電気電子工学科 H 渋谷 俊彦.
HTTPプロトコル J2EE I 第7回 /
(B2) 親: minami, kazuki 多様な認証機器に対応する 認証システム (B2) 親: minami, kazuki.
情報通信システム(12) plala. or 情報通信システム(12) 年7月25日 火曜日  午後4時10分~5時40分 NTT-TX Corp. 加藤 洋一.
この資料は、テキストをもとに、講義のために作成したものです.学習用に活用してください.
14.テーブル定義,一対多の関係,多対多の関係, 外部キー,索引(インデックス),データベース操作
データベース設計 第9回 Webインタフェースの作成(1)
マイクロソフト Access での SQL 演習 第1回 SQL問い合わせ(クエリ)
データベースとJavaをつなげよう! ~JDBC~
情報通信システム(13) plala. or 情報通信システム(13) 年7月24日 火曜日  午後4時10分~5時40分 NTT-TX Corp. 加藤 洋一.
2004/05/13 3-4 データ型(カラムタイプ) について 発表者:藤村元彦 自然言語処理研究室.
データベースを使ったプログラミング ~JDBCを使ってみよう~
JDBC J2EE I 第4回 /
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
3-10. MySQLシステムの管理  2004年6月10日  大北高広                01T6010F.
第1回.リレーショナルデータベースを使ってみよう
第1回.リレーショナルデータベースを使ってみよう
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
ガジェット・マスターへの まわり道!? ~Ajaxを理解しよう~
情報通信システム(12) plala. or 情報通信システム(12) 年7月17日 火曜日  午後4時10分~5時40分 NTT-TX Corp. 加藤 洋一.
制作技術ー4 アクセスカウンタ等付加機能 PHP と Javascript
第3回.テーブルの結合 結合条件 SQL を用いた結合問い合わせ.
第3回.テーブルの結合 結合条件 SQL を用いた結合問い合わせ.
Javaによる Webアプリケーション入門 第7回
09 06/23 PHP と SQL (MySQL) の連携 その1
制作技術ー3 双方向通信 : CGIシステムと環境変数
3-6.インデックスについて 3-7.関数と併用されることの 多いMySQLコマンド
3-3.テーブルを更新する 2004年 4月22日(木) 01T6074X 茂木啓悟.
「Webデータベースの構築技術」正誤表 ページ 項目 誤記 訂正 18 表1.4 アクセス 権限の削除 ・・・テーブル名 TO ユーザ名
情報アプリケーション1 2006年 10月 19日 第四回資料 担当 重定 如彦 .
講義ノート共有データベース NoteTotter?
データベース設計 第8回 クライアント=サーバーモデル(2)
コンピュータ プレゼンテーション.
3.リレーショナルデータベース,主キー, SQL
JDBC ソフトウェア特論 第3回.
情報コミュニケーション入門b 第11回 Web入門(2)
情報コミュニケーション入門e 第12回 Part1 Web入門(2)
Webアプリケーションと JSPの基本 ソフトウェア特論 第4回.
関係データベースとSQL MZ Platform講習会(上級).
情報コミュニケーション入門e 第12回 Part1 Web入門(2)
リレーショナル・データベース J2EE I (データベース論) 第2回 /
第14回放送授業.
09 06/23 PHP と SQL (MySQL) の連携 その3
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
第1回.リレーショナルデータベースを使ってみよう
SQL J2EE I (データベース論) 第3回 /
クリエイティブ リサーチ 2019/05/20 日本工学院八王子専門学校 M.Katsube.
SQL データベース論 第11回.
Presentation transcript:

情報通信システム(12) http://www10. plala. or 情報通信システム(12) http://www10.plala.or.jp/katofmly/chiba-u/ 2019年7月23日 火曜日  午後4時10分~5時40分 NTT-TX Corp. 加藤 洋一

Web+データベース 本日は、情報システムの最近の主流である、Web+データベースで成り立っているシステムを概観してみましょう。 インターネット上での飛行機の予約、購入、オークション、など全てWeb+データベース(DB)で出来ています。 将来仕事でこのようなシステムに携わる人も何人かはいるでしょう。 要求 結果 クライアント SQL IPネットワーク Webブラウザーで表示 文書形式は「HTML」 プロトコルはHTTP HTTPヘッダー コンテント(通常はHTML) DBサーバー Webサーバー 要求の解釈と処理、 HTMLの生成 データの管理 クライアント SQL:データベースからデータを取り出したり格納したりするための標準的なコマンド

データベースは、2次元のテーブルでデータを管理します。 リレーショナルデータベース データベースは、2次元のテーブルでデータを管理します。 列(Column) テーブル定義 パーツ名 定価 卸価格 マザーボードA型 19,800 11,000 CPU 840型 24,800 14,000 メモリー512MB 7,900 3,900 行(Row)

データベースとはテーブル(表)の集まりです。 リレーショナルデータベース データベースとはテーブル(表)の集まりです。 学科一覧表 学科名 定員 現在人員 電子機械 45 41 画像情報 40 39 都市環境 20 18 教員一覧表 教員名 所属学科 役職 千葉太郎 電子機械 教授 弥生花子 都市環境 準教授 松戸次郎 講師

行を特定するためのカラムが複数のカラムの組み合わせという場合もある 主キー 行を特定するためのカラム(項目) 何とかIDのように、ユニークな番号を行ごとに振る方法が一般的 学籍番号、職員番号、など 行を特定するためのカラムが複数のカラムの組み合わせという場合もある

検索の高速化には、「INDEX」と呼ばれるデータを用意する。 INDEXの代表的なものはBTREE(バイナリーツリー) データはあらかじめ順序良く並び替えておく(Sort) 検索条件 = Mango INDEX Apple Banana Blueberry Grape Kiwi Mango Orange Pineapple Watermelon リストの中央のデータと比較 リストの中央のデータと比較 Kiwi < Mango Orange > Mango リストの半分が検索対象 さらに半分 Kiwi Mango Orange Pineapple Watermelon Kiwi Mango Orange : 元のデータ数がN個とすると、log2 N回の比較で見つかる

データベースシステム(RDBMS)が扱える形にする データベースの設計のポイント データベースシステム(RDBMS)が扱える形にする RDBMSは「2次元」のテーブルである。つまり、ひとつのセルに複数のデータは入らない 同じデータはできる限り一箇所に格納する データ登録や更新がひとつのデータについて一回ですむようにする

ひとつのセルにはひとつのデータ 学籍番号 氏名 受講する講義 講師 78T1613 加藤洋一 回路理論 電磁気 回路理論(小郷) 電磁気(大川) 78T1615 金丸裕二 計算機 計算機(倉田) 学籍番号 氏名 受講する講義 講師 78T1613 加藤洋一 回路理論 小郷 電磁気 大川 78T1615 金丸裕二 計算機 倉田

データはできる限り一箇所に格納(更新を簡単化) 学籍番号 氏名 受講する講義 講師 78T1613 加藤洋一 回路理論 小郷 電磁気 大川 78T1615 金丸裕二 計算機 倉田 そのためにはテーブルを分割する 学籍番号 氏名 78T1613 加藤洋一 78T1615 金丸裕二 学籍番号 受講する講義 78T1613 回路理論 電磁気 78T1615 計算機 講義名 講師 回路理論 小郷 電磁気 大川 計算機 倉田

リレーショナルデータベースシステム(RDBMS) リレーショナルデータベースシステムは、SQLという言語で操作します。 本講義では、フリーのSQLベースデータベースシステムでは最も充実していると考えられているPostgreSQLを題材にデータベースシステムについて学習します。 今回は、Windows版のPostgreSQLを使用します。 PostgreSQLのホームページ PostgreSQLの日本のユーザーグループ www.postgresql.org www.postgresql.jp

データベースの作成はcreatedbコマンド テーブルの作成は、create tableコマンド SQL:データベースの作成 データベースの作成はcreatedbコマンド 削除はdropdb テーブルの作成は、create tableコマンド 削除はdrop table コマンド 部品番号 部品名 メーカー名 販売価格 仕入れ価格 CPU000001 Pentium 840 Intel 29800 13000 : create table parts ( pid varchar(10) not null, name varchar(50) null, maker varchar(20) null, price int null, buy int null ); テーブル名 カラムの定義

Insert into コマンドを使います テーブルに行を追加する Insert into ‘テーブル名’ (カラム名のリスト) values (値のリスト); テーブル定義の順に値を入れるときは、 (カラム名のリスト) を省略できる insert into parts values('CPU000001', 'Pentium 840', 'Intel', 49800, 25600); insert into parts values('CPU000002', 'Pentium 830', 'Intel', 39800, 21100); insert into parts values('CPU000003', 'Pentium 820', 'Intel', 29800, 15600); insert into parts values('CPU000004', 'Athlon 3000', 'AMD', 19800, 9600); insert into parts values('CPU000005', 'Athlon 3500', 'AMD', 29800, 14600);

Selectコマンドを使う データベースからデータを取り出す Select ‘項目’ from ‘テーブル名’where ‘検索条件’; (SQLは最後にセミコロンをつける) 項目は、カラム名、式などが入る 全ての項目のときは、*を使う Select * from parts; カラム名の指定 Select pid, price from parts; 式 Select name, buy*100/price from parts; 実際にやってみましょう。

検索条件はwhere句で指定する 実際にやってみましょう データベースからデータを取り出す 簡単な形 Select * from parts where price > 10000; Select * from parts where maker = ‘Intel’; Select * from parts where price > 20000 and maker = ‘Intel’; 文字列の前方一致と後方一致(ワイルドカード) Select * from parts where name like ‘HD%’; Select * from parts where name like ‘%840’; Select * from parts where name like ‘%33%; 実際にやってみましょう

更新 削除 やってみましょう 更新と削除 Update ‘表名’ set ‘カラム名’=‘式’… where …; Delete from ‘表名’ where …; Where句で指定した行を削除する。 やってみましょう

テーブルの積 JOIN テーブルの積とJOIN 2つのテーブルの行の全ての組み合わせ(2つのテーブルの行の積に相当する行が生じる) Select * from table_a, table_b; JOIN 2つのテーブルの一致するカラムを指定する。 Select * from table_a, table_b where table_a.id = table_b.id; 実際にやってみます。

PythonからPostgreSQLにアクセスする 今回は、psycopg2というフリーのパッケージを使います。他にもいくつか方法があります。 import psycopg2 conn = psycopg2.connect('dbname=partsdb user=postgres password=postgres') cur = conn.cursor() a = cur.execute (‘select * from parts;’) b = cur.fetchall() print b cur.close() conn.close()

HTMLは、Webページの書式の規定です。 基本的にテキストファイルです。 「タグ」と呼ばれるコマンドで書式などを指定します。 <html> <head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=x-sjis"> <title>Hello World</TITLE> </head> <body> <center> Hello World </center> </body> </html>

簡単な表です。 HTML <table width=300> <tr> <td bgColor="#00cc66"> test 11 </td> <td bgColor="#00cc66"> test 12 </td> <td bgColor="#00cc66"> test 13 </td> </tr> <td bgColor="#c0c0c0"> test 20 </td> <td bgColor="#c0c0c0"> test 21 </td> <td bgColor="#c0c0c0"> test 22 </td> <td bgColor="#c0c0c0"> test 1 </td> </table>

フォームとは、Webページの入力エリアのことです。 FORM フォームとは、Webページの入力エリアのことです。 テキスト、選択、などいくつかの形式があります。 入力エリアの情報は、以下のようにしてサーバーに伝えられます URLの一部として(…/ ?Min=1000&Max=5000) HTTPのコンテント領域(body)に格納される <form name="form1" method="post" action="/cgi-bin/parts2.py"> Minimum Price <input type="text" name="min" value="0" width=100> <br> Maxmum Price <input type="text" name="max" value="1000000" width=100> <br> <input type="submit" name="submit" value="Select"> </form>

CGIとは、Webサーバー上で何らかのプログラムを実行し、その結果をHTMLとして受け取る仕組みです。 CGIを作成するには様々な言語が使われています。なぜかpではじまるものが多いです(perl, php, python)。 最もよく使われているのはJavaです。 実際に、サンプルプログラムを動かして見ます。

以下のパッケージをインストールします サンプルのメモ Apache(HTTPサーバー) PostgreSQL(RDBMSサーバー) http://www.apache.org が本家ですが、Windows向けの簡単なインストールパッケージはありません。 Windows インストールパッケージの例 https://www.apachelounge.com/download/VC15/binaries/httpd-2.4.33-Win32-VC15.zip PostgreSQL(RDBMSサーバー) http://www.postgresql.org ごく普通にインストールします。指定したパスワードを忘れないように。今回は、Version 9.5 を使います。 psycopg2(PythonからPostgreSQLを使うため) http://initd.org/psycopg/ ごく普通にインストールします。

Apacheの設定 起動 サンプルのメモ ApacheからPythonを使うため、以下の設定をします。 コマンドプロンプトを開き、 C:\Apache2.4\conf\httpd.confをメモ帳やWordPadなどのテキストエディタで開く(管理者権限が必要) #AddHandler cgi-script .cgiという行を探す。 その次の行に以下を追加する。 AddHandler cgi-script .py (‘#’はありません) 起動 コマンドプロンプトを開き、 C:\Apache2.4\bin\httpd.exe

PostgreSQLへの初期データの登録 サンプルのメモ PostgreSQLへの初期データの登録 教材ファイルをダウンロードし、readme.txtを見てください(http://www10.plala.or.jp/katofmly/chiba-u/sample_db.zip) Createdbコマンドでデータベースを生成。Sql.txtに必要なコマンドのサンプルがあります。 Psqlコマンドで、SQL文を直接実行します。Sql.txtにコマンドのサンプルがあります。 WebとCGIの統合はreadme.txtを見てください。

皆さんと一緒に、Webを漁って、「ディープラーニング」について調べます。 来週のテーマは「ディープラーニング」 皆さんと一緒に、Webを漁って、「ディープラーニング」について調べます。 講師は、この分野は専門ではありません。。。 Webにアクセスできる環境を各自用意してきてください(スマホ、ノートブックなど)。 余裕のある人は、下調べしてきてください。 これはどういうもの? ニューラルネットとの関係?そもそもニューラルネットとは? 応用、将来性?