Comments
Description
Transcript
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