SQL変換プログラムとデータベースの一括処理に関する研究

平成22年度 卒業研究発表会
SQL 変換 プログラム と データベースの
データベース の 一括処理 に 関 する 研究
研究者
笹岡利晃
指導教員
加藤省三
1. は じ め に
多くの情報を扱わなくてはならない現在、あら
ゆる所で用いられているのがデータベースである。
し か し こ の デ ー タ ベ ー ス を 扱 う た め に は 、 SQL
言語やデータベースを構成するカラムなどといっ
た名前、データベースの構造など多くのことを学
ばなくてはならない。だが、もしこのデータベー
スを私たちが普段使っている自然言語を用いて扱
うことができたら、データベースはより簡単にな
り多くの人に利用されることになるだろう。
そこで、本研究では前年度までの研究である
SQL 変 換 プ ロ グ ラ ム を 用 い て 、 こ の プ ロ グ ラ ム と
データベースの一括処理を行うシステムの開発を
目標とする。
ト シ ス テ ム (RDBMS)に お い て 、デ ー タ の 操 作 や 定 義
を 行 う た め の デ ー タ ベ ー ス 言 語 で あ る 。 SQL 文 の
文法の種別としては、下記の 3 つに大別できる。
・ デ ー タ 定 義 言 語 ・ ・ ・ CLEATE , DROP
・ デ ー タ 操 作 言 語 ・ ・ ・ INSERT INTO , UPDATA
・ デ ー タ 制 御 言 語 ・ ・ GRANT , LOCK
4. バ ッ チ フ ァ イ ル
バッチファイルはコマンドプロンプト上で実行
する命令が書かれたファイルで、このファイルを
実行すると、中に書かれているコマンドプロンプ
トの命令を一行ずつ実行してくれる。本研究でも
2つのバッチファイルを使用している。2つのバ
2. デ ー タ ベ ー ス に つ い て
ッチファイルの中身を図 1 に示す。
前 年 度 ま で の 研 究 で は Access と い う デ ー タ ベ
ースを使用していたが、本研究では一括処理を行
うシステムを完成させるために新たに 2 つのデー
タ ベ ー ス を 追 加 し た 。そ れ が SQLite と MySQL で あ
る 。こ の 2 つ は Access と 比 べ 、デ ー タ ベ ー ス が 少
し 見 に く く な っ て い る も の の 、 SQL の 操 作 が 行 い
やすい事や、コマンドプロンプト上で実行可能で
あるなどの利点も多くある。
今回使用したデータベースに関して、いくつか
の項目について評価を行ったので結果を表 1 にま
とめた。
表1 データベースの比較結果
図 1 : バッチファイルの中身
◎・・大変良い
○・・良い
△・・少し問題有
この比較はあくまで私個人の意見である。
本研究では、コマンドプロンプト上で実行可能
で SQL 操 作 の 容 易 な SQLite と MySQL で シ ス テ ム 作
成を行った。
3 . SQL
SQL は リ レ ー シ ョ ナ ル デ ー タ ベ ー ス マ ネ ジ メ ン
今 回 バ ッ チ フ ァ イ ル で 使 用 し た errorlevel と
いうのはプログラム終了時の返り値を示すもので、
errorlevel 0 は 正 常 終 了 を 表 す よ う に な っ て い る 。
エ ラ ー レ ベ ル は 0 か ら 255 ま で 存 在 す る 。
今 回 の if not errerlevel 1 で は 、 エ ラ ー レ ベ
ルが1以上ではないときを示しており、正常終了
確認の処理となる。
5. シ ス テ ム 構 成
本研究で作成したシステムの実行手順を示す。
①コマンドプロンプトよりバッチファイル1
を起動する。
平成22年度 卒業研究発表会
② バ ッ チ フ ァ イ ル 1 が SQL 変 換 プ ロ グ ラ ム を
起動し、自然言語入力画面が出てくる。
③ 自 然 言 語 を 入 力 す る と SQL 変 換 が 行 わ れ る 。
④ 目 的 の SQL 文 が フ ァ イ ル に 出 力 さ れ る 。
⑤ SQL 変 換 プ ロ グ ラ ム の 正 常 終 了 を 確 認 す る
と、バッチファイル1は次のバッチファイ
ルを呼び出し、処理が終了する。
⑥呼び出された 2 つ目のバッチファイルは、
データベースを起動する。
⑦ 上 と 同 時 に フ ァ イ ル に 書 か れ て い る SQL 文
を実行する。
⑧ SQL 文 の 実 行 に よ り デ ー タ ベ ー ス の 変 更 が
完了すると、全ての処理が終了する。
これらの手順を図 2 に示す。
図 2 : システム構成図
6. シ ス テ ム の 実 行 結 果
今 SQL 変 換 プ ロ グ ラ ム に「 Update age of number
81432 of the table-a to 18.」 と い う 英 文 を 入 力
したとする。そのときの入力内容を図 3 に示す。
図 3 : 自然言語入力内容
このときの出力結果は図 4 のようになり、ファ
イル出力されていることがわかる。実行結果は図
6 のように変更されている。
図 4 : 出力結果
図 5 : 実行結果
7. ま と め
7.1 研 究 成 果
(1)一 括 処 理 シ ス テ ム が 完 成 し た
(2)SQL 変 換 プ ロ グ ラ ム の 出 力 結 果 を フ ァ
イル出力にした
(3) SQLite や MySQL の 動 作 や 特 徴 を 知 る こ
とができた
(4) バ ッ チ フ ァ イ ル の 細 か な 知 識 や 使 い 方
を知ることができた
7.2 今 後 の 課 題
(1)一 括 処 理 シ ス テ ム の UPDATE 文 を 完 成 さ
せる
(2)SQL 変 換 プ ロ グ ラ ム を 拡 張 す る
(3) 本 研 究 を 初 心 者 で も 扱 え る よ う に す る
ための工夫を加える
8. 参 考 文 献
(1)人 工 知 能 概 論 (第 2 版 )
著者 荒屋真二
出版社 共立出版
(2)Prolog で 学 ぶ AI プ ロ グ ラ ミ ン グ
著者 赤間世紀
出版社 工学社
(3)IT 用 語 辞 典
http://e-words.jp/w/SQL.html
http://www.sophia-it.com/content/SQLite
http://e-words.jp/w/MySQL.html
(4)SQLite の SQL コ マ ン ド
http://rktsqlite.sourceforge.jp/sqlite/
command.html
(5)コ マ ン ド プ ロ ン プ ト で 作 業 効 率 UP
http://cmd-pro.com/sta_end.html
(6)コ マ ン ド プ ロ ン プ ト の errorlevel に つ い て
http://oshiete.goo.ne.jp/qa/3403359.html
(7)Access 初 心 者 入 門 講 座
http://ms-access.seesaa.net/category/11
70258-1.html
(8)SQLite
http://homepage2.nifty.com/copper29/ipr
/sqlite.html