Comments
Description
Transcript
情報教育におけるデータベース環境の考察
保健医療経営大学紀要 № 8 29 ~ 39 (2015) <研究ノート(Research Note)> 情報教育におけるデータベース環境の考察 - Access、MySQL から MariaDB まで - 川島 秀樹* 要 旨 大学の授業において、データベース環境はパソコンの Windows をベースにした Access が中心である。企業の社内教育 と違って、Orac e などを使わないので物足りないが、Linux を利用した MySQL を使うことによって、環境設定が容易で あり、学生の能力を涵養させることができた。本稿では、授業で演習している Access、MySQL のメリットについて述べ る。また、オペレーティングシステムが Windows、Linux に関わらず、マイクロシミュレーションモデルを構築したデー タベース環境についても論述する。さらに、情報教育の環境に MariaDB などのデータベース環境を設定して、MySQL と の比較検討をしてみた。 Keywords: リレーショナルデータベース (RDB)、Access、Linux、MySQL、MariaDB はじめに 2 年生前期のプログラミング A では Java を、3 年後期 大学で情報学関連の科目を教えて 14 年になる。そ の専門演習Ⅱでは Java のオブジェクト指向を教えて の前に、外資系の IT 企業で約 20 年間システムエンジ いる。ただ、それぞれ半期の授業であるため、DB プロ ニア (SE)として働き、新人研修などのインストラク グラミングまで教えるに至っていない。 タを 8 年ほど担当した。情報教育で特に感じるのは、 また、非常勤先の大学ではデータベース演習を Access パソコンの進化であり、その中でもネットワーク環境 で行っている。本稿では Access、MySQL のメリット、 の進歩は目を見張るものがある。しかしながら、パソ デリメットについて述べる。また、マイクロシミュレー コンのデータベース(DB)開発環境はそれほど進化し ションモデルを構築したデータベース環境についても ておらず、汎用コンピュータの DB の充実度に比べる 論述する。さらに、情報教育のデータベース環境に と、オープン環境はもう一歩であると思われる。企業 MariaDB のデータベース環境を設定して、MySQL との では、マイクロソフトの SQLDB やオラクルなどのソフ 比較検討をしてみた。 トウェア開発の蓄積がある。しかし大学では、データ ベースを活用したデータ分析の研究は、各学部のそれ 1.データベースを使った授業の展開 ぞれの分野で行っており、企業ほど大がかりではない 1.1 データベース関連授業の展開 と思われる。 1) Access 本務校の保健医療経営大学では病院の事務スタッフ Access は、マイクソフトの Office Professiona に就職する学生が半数以上であり、診療情報管理士、 に入っているデータベース管理ソフトウェアである。 院内 SE(医療情報技師)などの専門職に就く可能性が Visua 高いことから、1 年生の情報処理入門Ⅱ (後期)に Access 知らなくても、小さなシステムを構築できる。一般的 の授業を、3 年生の情報科学Ⅱ(前期)にデータベース なリレーショナル・データベース(以下 RDB と記す) Access によるシステム構築の授業を行っている。さら では、データを保存するテーブルとビュー(クエリ) に、専門演習Ⅰ(2 年生後期)においては、Linux によ からなり、画面作成や帳票は他のツールを使い、プロ る MySQL の演習を行っている。プログラムの授業では、 グラムにて作成するやり方がほとんどである。汎用機 * Basic( 以下 VB と記す ) や Java プログラムを 保健医療経営大学保健医療経営学部 教授 [email protected] -29- ਅ RDB ߣ⸥ߔ㧕ߢߪࠍ࠲࠺ޔሽߔࠆ࠹ࡉ࡞ ࠆޕVisual Basic(એਅ VB ߣ⸥ߔ)߿ Java ࡊࡠࠣ ↹㕙⸳⸘ࠍㅢߓߡታ〣⊛ߥᯏ⢻ߣ᭴▽ᣇᴺ㧘ታ〣 ߹ߚޔᖱႎ⑼ቇΤ㧔࠺࠲ࡌࠬṶ⠌㧕ߩᬺ ߣࡆࡘ㧔ࠢࠛ㧕߆ࠄߥࠅ↹ޔ㕙ᚑ߿Ꮽߪ ࡓࠍ⍮ࠄߥߊߡ߽ޔዊߐߥࠪࠬ࠹ࡓࠍ᭴▽ߢ߈ ⊛ߥᯏ⢻ࠍቇ⠌ߒߡߊޕ ౝኈߪ 2 ߩߣ߅ࠅߢࠆⷐޕ᳞ಽᨆߣᬺോಽᨆ ઁߩ࠷࡞ࠍߡߦࡓࠣࡠࡊޔᚑߔࠆ߿ࠅ ࠆࠬࡌ࠲࠺࡞࠽࡚ࠪߥ⊛⥸৻ޕ㧔એ 2ߩᚻᴺࠍቇ߮߇⸘⸳ࠬࡌ࠲࠺ޔਥߦߥࠆޕ ᖱႎ⑼ቇΤ ᬺౝኈ ᣇ߇߶ߣࠎߤߢࠆޕ᳢↪ᯏߢߪ 1 ↹㕙ࠍᚑߔ ਅ RDB ߣ⸥ߔ㧕ߢߪࠍ࠲࠺ޔሽߔࠆ࠹ࡉ࡞ ↹㕙⸳⸘ࠍㅢߓߡታ〣⊛ߥᯏ⢻ߣ᭴▽ᣇᴺ㧘ታ〣 川 島 秀 樹 ࠆߩߦ 1 ᣣ߆߆ߞߚࠅޔ1 Ꮽࠍᚑߔࠆߩߦ 2 ࿁ᢙ⊛ߥᯏ⢻ࠍቇ⠌ߒߡߊޕ ᬺ ౝ ኈ ߣࡆࡘ㧔ࠢࠛ㧕߆ࠄߥࠅ↹ޔ㕙ᚑ߿Ꮽߪ ᣣ߆߆ߞߚࠅߒߚޔ߇ࠈߎߣޕAccess ߪ࠙ࠖࠩ 1 ઁߩ࠷࡞ࠍߡߦࡓࠣࡠࡊޔᚑߔࠆ߿ࠅ ࠼ᯏ⢻ࠍ߁ߎߣߦࠃࠅޔᢙචಽߢ↹㕙㧔ࡈࠜ では 1ᣇ߇߶ߣࠎߤߢࠆޕ᳢↪ᯏߢߪ 画面を作成するのに 1 日かかったり、1 帳票を 1 ↹㕙ࠍᚑߔ 作成するのに ࡓ㧕ߣᏭ㧔ࡐ࠻㧕ࠍᚑߢ߈ࠆޕ ࠆߩߦ 12 日かかったりした。ところが、Access ᣣ߆߆ߞߚࠅޔ1 Ꮽࠍᚑߔࠆߩߦ 2 は ウᖱႎಣℂ㐷Τ(1 ィザード機能を使う ことにより、数十分で画面 ᐕᓟᦼ)ߩᬺౝኈߪޔඨᦼ 2 䉥䊥䉣䊮䊁䊷䉲䊢䊮 2 ᖱႎ⑼ቇΤ ᬺౝኈ 表 2 情報科学Ⅱ 授業内容 3 ᣣ߆߆ߞߚࠅߒߚޔ߇ࠈߎߣޕAccess ߪ࠙ࠖࠩ 4 15 ࿁ߩ߁ߜ 8 ࿁ߢࠆޕ 㧔 1 ෳᾖ㧕࠺࠲ࡌ ࠼ᯏ⢻ࠍ߁ߎߣߦࠃࠅޔᢙචಽߢ↹㕙㧔ࡈࠜ (フォーム)と帳票(レポート)を作成できる。 情報処理入門Ⅱ(1 年後期 ) の授業内容は、半期 15 ࠬ᭴▽ߩᚻ㗅߆ࠄᆎ߹ࠅࠬࡌ࠲࠺ޔᣂⷙᚑޔ ࡓ㧕ߣᏭ㧔ࡐ࠻㧕ࠍᚑߢ߈ࠆޕ 回のうち 8 回である。(表 1 参照)データベース構築 5 ᖱႎಣℂ㐷Τ(1 ᐕᓟᦼ)ߩᬺౝኈߪޔඨᦼ の手順から始まり、データベース新規作成、テーブル、 6 ࠹ࡉ࡞ࠜࡈޔࠛࠢޔࡊ࠶ࠪࡦ࡚ࠪޔ ࡓߣ࠻ࡐޔㅴߡߊᦨޕᓟߪ࠹ࠠࠬ࠻ߩ✵ リレーションシップ、クエリ、フォーム、レポートと 15 ࿁ߩ߁ߜ 8 ࿁ߢࠆޕ 㧔 1 ෳᾖ㧕࠺࠲ࡌ ⠌㗴ࠍߞߚ✚วṶ⠌ࠍⴕߞߡࠆޕ 進めていく。最後はテキストの練習問題を使った総合 ࠬ᭴▽ߩᚻ㗅߆ࠄᆎ߹ࠅࠬࡌ࠲࠺ޔᣂⷙᚑޔ 演習を行っている。 1࠹ࡉ࡞ࠜࡈޔࠛࠢޔࡊ࠶ࠪࡦ࡚ࠪޔ ᖱႎಣℂ㐷㸈 ᬺౝኈ 表 1 情報処理入門Ⅱ 授業内容 ࡓߣ࠻ࡐޔㅴߡߊᦨޕᓟߪ࠹ࠠࠬ࠻ߩ✵ 7 8 䌁䌣䌣䌥䌳䌳䋬䊂䊷䉺䊔䊷䉴᭴▽䈱ᚻ㗅 1 ᖱႎಣℂ㐷㸈 ᬺౝኈ 2 䊂䊷䉺䊔䊷䉴ᣂⷙᚑ ࿁ᢙ ᬺ ౝ ኈ 䊂䊷䉺䊔䊷䉴䋬䊁䊷䊑䊦ᚑ 1 䌁䌣䌣䌥䌳䌳䋬䊂䊷䉺䊔䊷䉴᭴▽䈱ᚻ㗅 4 䊥䊧䊷䉲䊢䊮䉲䉾䊒䈱ᚑ䋬䉪䉣䊥ᚑ 2 䊂䊷䉺䊔䊷䉴ᣂⷙᚑ 5 䊐䉤䊷䊛 3 䊂䊷䉺䊔䊷䉴䋬䊁䊷䊑䊦ᚑ 6 䊧䊘䊷䊃䈱ᚑ 4 䊥䊧䊷䉲䊢䊮䉲䉾䊒䈱ᚑ䋬䉪䉣䊥ᚑ 7 ✚วṶ⠌䋱䋨䊁䉨䉴䊃䈱✵⠌㗴䋩 5 䊐䉤䊷䊛 8 ✚วṶ⠌䋲䋨◲න䈭䉲䉴䊁䊛᭴▽Ṷ⠌䋩 6 䊧䊘䊷䊃䈱ᚑ Access ߪޔೋᱠ⊛ߥၮ␆⻠ᐳߢߞߡ߽࠺ޔ Access は、初歩的な基礎講座であっても、データ 7 ✚วṶ⠌䋱䋨䊁䉨䉴䊃䈱✵⠌㗴䋩 ࠲ࡌࠬߩᔨ 㧔ਥࠠ߿ᄖㇱࠠޔෳᾖᢛวᕈޔ ベースの概念(主キーや外部キー、参照整合性、クエ 8 ✚วṶ⠌䋲䋨◲න䈭䉲䉴䊁䊛᭴▽Ṷ⠌䋩 リの使い方)がわからないと、 授業についていけない。 3 ᬺ ౝ ኈ 䉲䉴䊁䊛㐿⊒䈫䈠䈱ᛛⴚ 1 䉥䊥䉣䊮䊁䊷䉲䊢䊮 ⷐ᳞ಽᨆ䈫ᬺോಽᨆ䈱ᚻᴺ 2 䊂䊷䉺䊔䊷䉴䈱ၮᧄ ᬺോಽᨆ䈱 3 䉲䉴䊁䊛㐿⊒䈫䈠䈱ᛛⴚ Access 䈮䉋䉎䉲䉴䊁䊛㐿⊒/䉲䉴䊁䊛䈱ⷐ 4 ⷐ᳞ಽᨆ䈫ᬺോಽᨆ䈱ᚻᴺ 䊂䊷䉺䊔䊷䉴䈱ᣂⷙᚑ䋬䊁䊷䊑䊦䈱ᣂⷙ 5 ᬺോಽᨆ䈱 ᚑ䋬䊥䊧䊷䉲䊢䊮䉲䉾䊒 6䊂䊷䉺䈱ജ䈫䊐䉤䊷䊛䋬䉰䊑䊐䉤䊷䊛䈱⚵䉂 Access 䈮䉋䉎䉲䉴䊁䊛㐿⊒/䉲䉴䊁䊛䈱ⷐ 7ㄟ䉁䉏䈢䊐䉤䊷䊛䋬ᬌ⚝ᯏ⢻䈱⚵䉂ㄟ䉁䉏䈢䊐 䊂䊷䉺䊔䊷䉴䈱ᣂⷙᚑ䋬䊁䊷䊑䊦䈱ᣂⷙ 䉤䊷䊛 ᚑ䋬䊥䊧䊷䉲䊢䊮䉲䉾䊒 ࿁ᢙ ᬺ ౝ ኈ ⠌㗴ࠍߞߚ✚วṶ⠌ࠍⴕߞߡࠆޕ 1 䊂䊷䉺䊔䊷䉴䈱ၮᧄ ࿁ᢙ 9 8䉪䉣䊥䈮䉋䉎䊂䊷䉺ᠲ䋬䉲䉴䊁䊛䈪↪䈜䉎䉪 䊂䊷䉺䈱ജ䈫䊐䉤䊷䊛䋬䉰䊑䊐䉤䊷䊛䈱⚵䉂 䉣䊥䈱ᚑ䋬䉪䉣䊥䈱⚿ᨐ䉕␜䈜䉎䊐䉤䊷䊛 ㄟ䉁䉏䈢䊐䉤䊷䊛䋬ᬌ⚝ᯏ⢻䈱⚵䉂ㄟ䉁䉏䈢䊐 10 䊧䊘䊷䊃䈱ᚑ䋬䉪䉣䊥䉕䉅䈫䈮䈚䈢䊧䊘䊷䊃䈱 䉤䊷䊛 ᚑ 9 䉪䉣䊥䈮䉋䉎䊂䊷䉺ᠲ䋬䉲䉴䊁䊛䈪↪䈜䉎䉪 䉲䉴䊁䊛䈱ಣℂ䈱⏕䈫䊜䊆䊠䊷䋬䊙䉪䊨䈱 䉣䊥䈱ᚑ䋬䉪䉣䊥䈱⚿ᨐ䉕␜䈜䉎䊐䉤䊷䊛 11 ᚑ䋬䊜䊆䊠䊷䊐䉤䊷䊛䈱ᚑ 10 䊧䊘䊷䊃䈱ᚑ䋬䉪䉣䊥䉕䉅䈫䈮䈚䈢䊧䊘䊷䊃䈱 12 Access 䈱ታ〣⊛䈭ᯏ⢻䈫᭴▽ᣇᴺ䋬ታ〣⊛䈭 ᚑ ᯏ⢻ 11 䉲䉴䊁䊛䈱ಣℂ䈱⏕䈫䊜䊆䊠䊷䋬䊙䉪䊨䈱 13 䉲䉴䊁䊛䈱᭴▽ 1䋨䊁䉨䉴䊃䈱✵⠌㗴䋩 ᚑ䋬䊜䊆䊠䊷䊐䉤䊷䊛䈱ᚑ 14 15 2䋨ᬌ⚝䊜䊆䊠䊷䈱ㅊടᚑ䋩 12䉲䉴䊁䊛䈱᭴▽ Access 䈱ታ〣⊛䈭ᯏ⢻䈫᭴▽ᣇᴺ䋬ታ〣⊛䈭 䌓䌑䌌ᯏ⢻ 13 䉲䉴䊁䊛䈱᭴▽ 1䋨䊁䉨䉴䊃䈱✵⠌㗴䋩 Access ߪޔೋᱠ⊛ߥၮ␆⻠ᐳߢߞߡ߽࠺ޔ 14 䉲䉴䊁䊛䈱᭴▽ 2䋨ᬌ⚝䊜䊆䊠䊷䈱ㅊടᚑ䋩 ࠲ࡌࠬߩᔨ㧔ਥࠠ߿ᄖㇱࠠޔෳᾖᢛวᕈޔ 15 䌓䌑䌌 RDB であるため、主キー、外部キーの意味を理解し、 テーブル間の整合性、仮想テーブル(ビュー)である クエリの意義、フォームやレポートとの関連がわから ないと全体的に理解できないからである。 また、情報科学Ⅱ(データベース演習)の授業内容 ところで、Access は Exce との親和性も高く、デー は表 2 のとおりである。要求分析と業務分析の手法 タベースの中身をみるときでも、簡単に GUI 方式で見 を学び、データベース設計が主体になる。画面設計を ることができる。欠点は、Access ファイルの排他制 通じて実践的な機能と構築方法,実践的な機能を学習 御が弱く、数名のユーザからの同時アクセスに時間が していく。 かかる。1 万件以上のデータ操作を行う場合にレスポ ンスが悪い。けれども、マイクロソフトの Office Professiona を導入するだけで Access の DB 環境が 整うので、教育用ソフトとして採用している。データ ベースの基礎を学ぶのには最も適していると考えられる。 2)MySQL 専門演習Ⅰでは、Linux 環境で MySQL の環境を設定 し、ターミナルのコマンドラインベースでの操作を演 習している。( 表 3 参照 ) -30- 2㧚࠺࠲ࡌࠬⅣႺߣᯏ⢻ ߪᦨ߽ㆡߒߡࠆߣ⠨߃ࠄࠇࠆޕ ࠪࠬ࠹ࡓ᭴▽ߦ߅ߡޔRDB ࠍ߁ߩߪක≮♽ 2㧚࠺࠲ࡌࠬⅣႺߣᯏ⢻ 2㧕MySQL (∛㒮)ߩࠪࠬ࠹ࡓ߿⚻ᷣᎿቇߩࠪࡒࡘ࡚ࠪࡦ ኾ㐷Ṷ⠌ΣߢߪޔLinux ⅣႺߢ MySQL ߩⅣႺࠍ ࠪࠬ࠹ࡓ᭴▽ߦ߅ߡޔRDB ࠍ߁ߩߪක≮♽ 2㧕MySQL ߦ߅ߡߪ↪ߢࠆޔߪࠇߘޕRDB ߇ᜬߞߡ ⸳ቯߒߩߢࠬࡌࡦࠗ࠼ࡦࡑࠦߩ࡞࠽ࡒ࠲ޔ (∛㒮)ߩࠪࠬ࠹ࡓ߿⚻ᷣᎿቇߩࠪࡒࡘ࡚ࠪࡦ ኾ㐷Ṷ⠌ΣߢߪޔLinux ⅣႺߢ情報教育におけるデータベース環境の考察 MySQL ߩⅣႺࠍ ᠲࠍṶ⠌ߒߡࠆ (ޕ3 ෳᾖ) ⸳ቯߒߩߢࠬࡌࡦࠗ࠼ࡦࡑࠦߩ࡞࠽ࡒ࠲ޔ ࠆ 4 ߟߩᯏ⢻߇ࠆ߆ࠄߢࠆ߇ޕᜬߞߡ ߦ߅ߡߪ↪ߢࠆޔߪࠇߘޕRDB 3 ኾ㐷Ṷ⠌Σ MySQL Ṷ⠌ ᬺౝኈ 3 ෳᾖ) ᠲࠍṶ⠌ߒߡࠆ(ޕ ࠆ 4 ߟߩᯏ⢻߇ࠆ߆ࠄߢࠆޕ 4 RDB ߩ 4 ߟߩᯏ⢻ ࿁ᢙ Mᬺ ኈ Ṷ⠌ ኾ㐷Ṷ⠌Σ 表3 3専 門 演習Ⅰ y S Qౝ LMySQL 演習 授 業 内ᬺౝኈ 容 表 4 RDB の 4 つの機能 4 ࿁ᢙ 1 ᬺ䉥䊥䉣䊮䊁䊷䉲䊢䊮 ౝ ኈ RDB ߩ 4 ߟߩᯏ⢻ ၮᧄᯏ⢻ ౝኈ 1 2䉥䊥䉣䊮䊁䊷䉲䊢䊮 KNOPPIX ⷐ䋬േ䊐䉜䉟䊦䈱ᚑ 2 ⷐ䋬േ䊐䉜䉟䊦䈱ᚑ 3KNOPPIX KNOPPIX 䈱േ䈫䊂䉴䉪䊃䉾䊒䈱ᠲ㽲 3 䈱േ䈫䊂䉴䉪䊃䉾䊒䈱ᠲ㽲 4KNOPPIX KNOPPIX 䈱േ䈫䊂䉴䉪䊃䉾䊒䈱ᠲ㽳 4 䈱േ䈫䊂䉴䉪䊃䉾䊒䈱ᠲ㽳 5KNOPPIX 䊂䊷䉺䊔䊷䉴䈫䈲 5 6䊂䊷䉺䊔䊷䉴䈫䈲 MySQL 䈱ၮᧄ 6 䈱ၮᧄ 7MySQL 䊁䊷䊑䊦䈫䊧䉮䊷䊄䈱ᠲ 7 8䊁䊷䊑䊦䈫䊧䉮䊷䊄䈱ᠲ 䊂䊷䉺ဳ䈫⚂ 8 9䊂䊷䉺ဳ䈫⚂ 䊂䊷䉺䊔䊷䉴䈱ᠲ 9 䊂䊷䉺䊔䊷䉴䈱ᠲ 10 䊧䉮䊷䊄䈱ਗ䈶ᦧ䈋䈫㓸⸘ 10 䊧䉮䊷䊄䈱ਗ䈶ᦧ䈋䈫㓸⸘ 11 䊂䊷䉺䊔䊷䉴䈱㜞ᐲ䈭ᠲ 11 䊂䊷䉺䊔䊷䉴䈱㜞ᐲ䈭ᠲ 12 MySQL 䈫 PHP 䈬䉕ⴕ䈉ᯏ⢻ 出典:マイクロ ソフト データベースと Access の基礎知識 12 MySQL 䈫 PHP 13 ᔕ↪䉝䊒䊥䉬䊷䉲䊢䊮 この 4 つの機能を利用し、VB や Java などのプログ 13 ᔕ↪䉝䊒䊥䉬䊷䉲䊢䊮 14 M䌹SQL ✚วṶ⠌ 14 M䌹SQL ✚วṶ⠌䉷䊚⺰ᢥᚑ 15 ✚วṶ⠌ 䊂䊷䉺䊔䊷䉴 ၮᧄᯏ⢻ 䊂䊷䉺䈏䉎䊁䊷䊑䊦䋨䋩䈱⸳⸘䇮 ౝኈ ⸳⸘ᯏ⢻ 䊂䊷䉺䈏䉎䊁䊷䊑䊦䋨䋩䈱⸳⸘䇮 䈫䈫䈱䊥䊧䊷䉲䊢䊮䋨⚿ว䋩䉇䇮 䊂䊷䉺䊔䊷䉴 ⸳⸘ᯏ⢻ ജ↹㕙䉇ജᏭ䈭䈬䈱⸳⸘䊶ቯ 䈫䈫䈱䊥䊧䊷䉲䊢䊮䋨⚿ว䋩䉇䇮 ⟵䉕䈜䉎ᯏ⢻ ജ↹㕙䉇ജᏭ䈭䈬䈱⸳⸘䊶ቯ 䊂䊷䉺䊔䊷䉴 䊂䊷䉺䊔䊷䉴䈻䈱䊂䊷䉺䈱ജ䉇䇮 ⟵䉕䈜䉎ᯏ⢻ ᭴▽ᯏ⢻ 䊂䊷䉺䊔䊷䉴䈻䈱䊂䊷䉺䈱ജ䉇䇮 ઁ䈱䊂䊷䉺䊐䉜䉟䊦䈎䉌䈱ᄌᦝ䈭䈬 䊂䊷䉺䊔䊷䉴 ᭴▽ᯏ⢻ 䈱䇮䊂䊷䉺䉕ᚑ䈚㒰䈜䉎ᯏ⢻ ઁ䈱䊂䊷䉺䊐䉜䉟䊦䈎䉌䈱ᄌᦝ䈭䈬 䊂䊷䉺䊔䊷䉴 䊂䊷䉺䊔䊷䉴䈱䊂䊷䉺䉕䇮ਗ䈼ᦧ䈋 䈱䇮䊂䊷䉺䉕ᚑ䈚㒰䈜䉎ᯏ⢻ ᠲᯏ⢻ 䊂䊷䉺䊔䊷䉴䈱䊂䊷䉺䉕䇮ਗ䈼ᦧ䈋 䈢䉍䇮䈚䈢䉍䇮ᬌ⚝䈜䉎ᯏ⢻ 䊂䊷䉺䊔䊷䉴 䊂䊷䉺䊔䊷䉴 SQL䋨᭴ㅧൻᾖળ⸒⺆䋩䉕↪䈚䈢䊂 ᠲᯏ⢻ 䈢䉍䇮䈚䈢䉍䇮ᬌ⚝䈜䉎ᯏ⢻ 䊒䊨䉫䊤䊛ᯏ⢻ 䊷䉺䊔䊷䉴ᬌ⚝䈭䈬䈱䊒䊨䉫䊤䊛ᚑ 䊂䊷䉺䊔䊷䉴 SQL䋨᭴ㅧൻᾖળ⸒⺆䋩䉕↪䈚䈢䊂 䊒䊨䉫䊤䊛ᯏ⢻ 䉇䇮䊙䉪䊨䉕↪䈚䈢ಣℂ䈱⥄േൻ䈭 䊷䉺䊔䊷䉴ᬌ⚝䈭䈬䈱䊒䊨䉫䊤䊛ᚑ 䈬䉕ⴕ䈉ᯏ⢻ 䉇䇮䊙䉪䊨䉕↪䈚䈢ಣℂ䈱⥄േൻ䈭 ౖ䋺䊙䉟䉪䊨䉸䊐䊃 䊂䊷䉺䊔䊷䉴䈫 Access 䈱ၮ␆⍮⼂ ౖ䋺䊙䉟䉪䊨䉸䊐䊃 䊂䊷䉺䊔䊷䉴䈫 Access 䈱ၮ␆⍮⼂ ラム言語でプログラムを作成し、データベースの活用 ߎߩ 4 ߟߩᯏ⢻ࠍ↪ߒޔVB ߿ Java ߥߤߩࡊ を行う。 ࡠࠣࡓ⸒⺆ߢࡊࡠࠣࡓࠍᚑߒࡌ࠲࠺ޔ ߎߩ 4 ߟߩᯏ⢻ࠍ↪ߒޔVB ߿ Java ߥߤߩࡊ ࠬߩᵴ↪ࠍⴕ߁ޕ ࡠࠣࡓ⸒⺆ߢࡊࡠࠣࡓࠍᚑߒࡌ࠲࠺ޔ ✚วṶ⠌ 䉷䊚⺰ᢥᚑ 2.1 プログラムとの連動 MySQL ߪࠚࡈ࠲ࡦ࡙ࠗࠩࠢ࠶ࡈࠣޔ ࠬߩᵴ↪ࠍⴕ߁ޕ ࠗࠬ(GUI)ߢࠆ Access ߣ㆑ߞߡޔߩᬺࠍ߿ RDB は単独で利用されるのは少ない。一般には VB、 MySQL ߪࠚࡈ࠲ࡦ࡙ࠗࠩࠢ࠶ࡈࠣޔ 15 MySQL は、グラフック・ユーザ・インターフェイス Java、PHP などの言語を使ってアプリケーションを構 (GUI) である Access と違って、何の作業をやってい 築し、利用される。 るかよく考えないと、わからなくなる。授業は、Linux まず、VB から Access に接続する場合、ADO.NET を の操作を演習することから始まるので、実際に MySQL 使用する。ADO.NET はマイクロソフトが開発したプロ を扱うのは 6 回目からであり、なかなか思うように進 グラムからデータベースを操作するためのインター まない。MySQL は世界一の使用実績があり、それはパ フェイスである。従来のデータアクセスである ADO フォーマンスの良さに特徴がある。チューニングを行 (ActiveX Data Objects) は、接続型 ( データプロバ うと、それだけの効果が期待できる。そのため、この イダ ) のものが主であった。ADO.NET では、接続型の ようなフリーソフトは、相当のスキルを涵養できるこ 他にデータセット(メモリにデータ格納)を使った非 とが授業の出席カード感想欄からわかっている。 接続型のデータアクセスも用意されている。データセッ ࠗࠬ(GUI)ߢࠆ Access ߣ㆑ߞߡޔߩᬺࠍ߿ トを使用することによってデータベースとの長時間接 2.データベース環境と機能 続をなくすことができるので、データアクセスのパ システム構築において、RDB を使うのは医療系 ( 病 フォーマンスを高めると共にシステムの拡張性を向上 院 ) のシステムや経済工学のシミュレーションにおい させることができる。 ては有用である。それは、RDB が持っている 4 つの機 ADO.NET の各クラスは System.Data 名前空間に含ま 能 ( 設計、構築、操作、プログラム ) があるからである。 れている。データプロバイダの主なオブジェクト (Connection, (表 4 参照) Command,DataReader,DataAdapter)は表 5のとおり である。 -31- /System.Data.OracleClient ࠬ߳ߩ࠺࠲ࠕࠢ ࠆߣߦࠪࠬ࠹ࡓߩᒛᕈࠍะߐߖࠆߎߣ߇ Oracle ߿ SQL Server ߥߤߦᄌᦝߒߡ߽ࠣࡠࡊޔ ࠝࡉࠫࠚࠢ࠻ ⺑ ࠬ ߢ߈ࠆޕ ࡓߩୃᱜ߇ዋߥߊߡᷣߩߢല₸⊛ߢࠆߚޕ Connection ࠺࠲࠰ࠬߣធ⛯ߔࠆ MySQL ߪ ODBC㧔Open Database Connectivity, ADO.NET ߩฦࠢࠬߪ System.Data ฬ೨ⓨ㑆ߦ ߣ߃߫ޔ࿑ 1 ߪ⚻ޔᷣ↥ᬺ⋭ฃ⸤ߩࡑࠗࠢࡠࠪࡒ Command ࠺࠲࠰ࠬߦኻߒߡࠦࡑࡦ࠼ 川 島 秀 樹 Java ߩߣ߈ߪ JDBC㧕⚻↱߇ਥᵹߢࠆࡊޔߛߚޕ ߹ࠇߡࠆߩ࠳ࠗࡃࡠࡊ࠲࠺ޕਥߥࠝࡉࠫࠚ ࡘ࡚ࠪࡦߩࡔ࠾ࡘߢࠆ ߪ⺆⸒ޕVB ߢޔDB ࠍታⴕߔࠆޕ ࠶࠻ࡈࠜࡓ߇ Windows ߩ႐วߪ ADO.NET ࠍ ࠢ࠻ߪ 5 ߩߣ߅ࠅߢࠆޕ ߪᦨೋߦ Access ࠍߞߡߚ߇ޔMySQL ࠍߞߡ DataReader ࠺࠲࠰ࠬ߆ࠄ࠺࠲ࠍ⺒ߺ ↪ߒߡޔConnector/Net ࠍࠗࡦࠬ࠻࡞ߒߡ↪ 5 ࠺࠲ࡊࡠࡃࠗ࠳ ࠝࡉࠫࠚࠢ࠻⺑ ᦠ߈⋥ߒߡࠆޕ MySQL を使って書き直している。 ขࠆޔߒߛߚޕ೨ᣇࠬࠢࡠ࡞ߩ ߔࠆᣇᴺ߽ࠆߩߎޕᣇᴺߛߣࠍࠬࡌ࠲࠺ޔ 表 5 データプロバイダ オブジェクト説明 ߺߩ⺒ߺขࠅޕ ⺑ Oracle ߿ SQL Server ߥߤߦᄌᦝߒߡ߽ࠣࡠࡊޔ DataAdapter Connection ࠺࠲࠰ࠬߣ࠺࠲࠶࠻ߩ ࠺࠲࠰ࠬߣធ⛯ߔࠆ ࡓߩୃᱜ߇ዋߥߊߡᷣߩߢല₸⊛ߢࠆߚޕ Command 㑆ߢ࠺࠲ߩขᓧߥࠄ߮ߦᦝᣂ ࠺࠲࠰ࠬߦኻߒߡࠦࡑࡦ࠼ ߣ߃߫ޔ࿑ 1 ߪ⚻ޔᷣ↥ᬺ⋭ฃ⸤ߩࡑࠗࠢࡠࠪࡒ ࠍⴕ߁ޕ ࠍታⴕߔࠆޕ ࡘ࡚ࠪࡦߩࡔ࠾ࡘߢࠆ ߪ⺆⸒ޕVB ߢޔDB ࠝࡉࠫࠚࠢ࠻ ߹ߚ.NET Framework ߢߪࠬࠗࡃ࠺ߥ߹ߑ߹ߐޔ DataReader ࠺࠲࠰ࠬ߆ࠄ࠺࠲ࠍ⺒ߺ ߪᦨೋߦ Access ࠍߞߡߚ߇ޔMySQL ࠍߞߡ ࠍߟߥߋߚߦࠍࡦ࡚ࠪࠤࡊࠕޔ㐿⊒߅ࠃ߮ ขࠆޔߒߛߚޕ೨ᣇࠬࠢࡠ࡞ߩ ᦠ߈⋥ߒߡࠆޕ ታⴕߔࠆߚߩⅣႺ߿ࠢࠬࠗࡉࠍឭଏߒ ߺߩ⺒ߺขࠅޕ ࿑ 1 ࡑࠗࠢࡠࠪࡒࡘ࡚ࠪࡦࡔ࠾ࡘ 㑆ߢ࠺࠲ߩขᓧߥࠄ߮ߦᦝᣂ ࠗ࠳߇↪ᗧߐࠇߡࠆޕ 㧔 6 ෳᾖ㧕 この中のマスター DB の作成ロジックにおいて、VB リスト 1 のとおりである。 で作成しているが、DB のオープン・クローズはリスト ߎߩਛߩࡑࠬ࠲DB ߩᚑࡠࠫ࠶ࠢߦ߅ߡޔ ࠍⴕ߁ޕ ߹ߚ.NET Framework ߢߪࠬࠗࡃ࠺ߥ߹ߑ߹ߐޔ また .NET Framework では、さまざまなデバイスを ࠕࡊࠤࠪ วޔADO.NET ࡈ࠻߇㐿⊒ߒ OLE DB,ODBC,Orac e)が用意されている。 ࠗ࠳߇↪ᗧߐࠇߡࠆޕ 㧔 6 ෳᾖ㧕 (表 6 参照) 6 䊂䊷䉺䊒䊨䊋䉟䉻 ኻ⽎䊂䊷䉺䊔䊷䉴䋯ฬ೨ⓨ㑆 表 6 データプロバイダ 対象データベース/名前空間 ኻ⽎࠺࠲࠰ࠬ ޔធ⛯ဳ(࠺ リスト 1 MySQL の DB オープン、クローズ例 ฬ೨ⓨ㑆 database=Master2007IER cn.ConnectionString = " ࿑ 1 ࡑࠗࠢࡠࠪࡒࡘ࡚ࠪࡦࡔ࠾ࡘ server= oca host;user id=root; password=XXXXXX; ߩᚑࡠࠫ࠶ࠢߦ߅ߡޔ " ߎߩਛߩࡑࠬ࠲DB & "database = " & データベースファイル VB ߢᚑߒߡࠆ߇ޔDB ߩࠝࡊࡦࠢࡠ࠭ߪ Try /ฬ೨ⓨ㑆 SQL Server Microsoft SQL /System.Data.Sqlclient Server ߳ߩ࠺࠲ cn.Open() Catch ex As Exception MessageBox.Show(ex.ToString, "例外発生") ࠕࠢࠬ ߔࠆߚߩ ࠲ࠕࠢࠬ 1VBのとおりである。 ߢᚑߒߡࠆ߇ޔDB ߩࠝࡊࡦࠢࡠ࠭ߪ リスト 1 MySQL の DB オープン、クローズ例 ࠍߟߥߋߚߦࠍࡦ࡚ࠪࠤࡊࠕޔ㐿⊒߅ࠃ߮ つなぐために、アプリケーションを開発および実行す ታⴕߔࠆߚߩⅣႺ߿ࠢࠬࠗࡉࠍឭଏߒ るための環境やクラスライブラリを提供している。各デー ᢎ⢒ߦ߅ߌࠆ࠺࠲ࡌࠬⅣႺߩ⠨ኤ] タベースに応じてのデータプロバイダ(SQL Server, ߡࠆޕฦ࠺࠲ࡌࠬߦᔕߓߡߩ࠺࠲ࡊࡠࡃ ߪߦ⥸৻ޕ 図 1 マイクロシミュレーションメニュー ߡࠆޕฦ࠺࠲ࡌࠬߦᔕߓߡߩ࠺࠲ࡊࡠࡃ DataAdapter ࠺࠲࠰ࠬߣ࠺࠲࠶࠻ߩ OLE DB Access ߥߤ OLE DB /System.Data.OleDb ࠍ↪ߒߡ㐿ߐ Return Fa se End Try Return True ࠇࠆ࠺࠲ࠕࠢ ޕADO.NET ߢ End Function ࠬ ࡕߦ࠺࠲ ߽ࠢࠬ↪ᗧ ODBC ODBC ࠍ↪ߒߡ ࠆߎߣߦࠃߞ /System.Data.Odbc 㐿ߐࠇࠆ࠺࠲ࠕ Pub ic Function データベースクローズ(ByRef cn As mysq c ient.mysq connection) As ࠢࠬ ߊߔߎߣ߇ߢ ࡑࡦࠬࠍ㜞 Oracle Oracle ࠺࠲ࡌ ߐߖࠆߎߣ߇ /System.Data.OracleClient ࠬ߳ߩ࠺࠲ࠕࠢ Boo ean 'cn.Dispose() Try ࠬ cn.C ose() MySQL ߪ ODBC㧔Open Database Connectivity, ฬ೨ⓨ㑆ߦ MySQL は ODBC(Open Database Connectivity, Java Java ߩߣ߈ߪ JDBC㧕⚻↱߇ਥᵹߢࠆࡊޔߛߚޕ ਥߥࠝࡉࠫࠚ のときは JDBC)経由が主流である。ただ、プラット ࠶࠻ࡈࠜࡓ߇ ߩ႐วߪ ࠍ フ ォ ー ム が W i n d o w sWindows の場合は A D O . N EADO.NET T を使用 して、 ࠻⺑ ߔࠆ ߡࠦࡑࡦ࠼ MessageBox.Show(ex.Message, "エラー通知") Return Fa se ↪ߒߡޔConnector/Net ࠍࠗࡦࠬ࠻࡞ߒߡ↪ Connector/Net をインストールして利用する方法も End Try ある。この方法だと、データベースを Orac e や SQL ߔࠆᣇᴺ߽ࠆߩߎޕᣇᴺߛߣࠍࠬࡌ࠲࠺ޔ Return True Server などに変更しても、プログラムの修正が少なく Oracle ߿ SQL Server ߥߤߦᄌᦝߒߡ߽ࠣࡠࡊޔ て済むので効率的である。たとえば、図 1 は、経済産 ࡓߩୃᱜ߇ዋߥߊߡᷣߩߢല₸⊛ߢࠆߚޕ 業省受託のマイクロシミュレーションのメニューであ ߣ߃߫ޔ࿑ 1 ߪ⚻ޔᷣ↥ᬺ⋭ฃ⸤ߩࡑࠗࠢࡠࠪࡒ る。言語は VB で、DB は最初に Access を使っていたが、 ࡘ࡚ࠪࡦߩࡔ࠾ࡘߢࠆ ߪ⺆⸒ޕVB ߢޔDB ࠲ࠍ⺒ߺ ߪᦨೋߦ Access ࠍߞߡߚ߇ޔMySQL ࠍߞߡ ࠬࠢࡠ࡞ߩ ᦠ߈⋥ߒߡࠆޕ ࠲࠶࠻ߩ Catch ex As Exception End Function また、DB の登録は、リスト 2 のとおりである。 また、DB の登録は、リスト 2 のとおりである。 -32- リスト 2 MySQL DB 登録例 Catch ex As Exception 情報教育におけるデータベース環境の考察 MessageBox.Show(ex.Message, "通知") Return True End Function Return False また、DB の登録は、リスト 2 のとおりである。 リスト 2 MySQL End Try DB 登録例 4 に示した。 リスト 2 MySQL DB 登録例 Return True [情報教育におけるデータベース環境 [情報教育におけるデータベース環境 DB のオープン、クローズ、登録、更新、削除を、み End Function Private Function 世帯情報を DB に登録(ByVa てきたが、SQL 命令を定義して SQL コマンドを実行す さらに、DB 3 に、削除はリス リスト への変更はリスト 3 MySQL DB 更新例 ればよい。 リスト 3 MySQL DB 更新例 ト 4 リスト に示した。 3 MySQL DB 更新例 データベース As MySqlClient.MySq Connection, ByVa 世帯 Public 世帯テーブル更新(ByRef デ DB のオープン、 クローズ、 登録、更新、削除を、 Pub ic Function Function 世帯テーブル更新(ByRef デ As 世帯) As Boo ean ' ータベース As みてきたが、SQL 命令を定義して SQL コマンドを ータベース As MySqlClient.MySqlConnection, MySq C ient.MySq Connection, SQL 文作成 実行すればよい。 ByRef 項目 As String, ByRef 値 As Int64, Dim sq As String sq ByRef ByVal ByVa Dim Dim = "INSERT INTO 世帯(年次,調査コード, 県番号,地区番号,単位区番号,世帯番号,世帯番 <中略> cmd.Connection cmd.Connection == データベース データベース Dim sql As String = "UPDATE Dim sq As String = "UPDATE 世帯 世帯 SET SET "" && 項目 項目 && "" == "" && 値 値 && __ "貯蓄の有無,貯蓄_金融機関,貯蓄_保険料,貯蓄 _株式等,貯蓄_その他,貯蓄現在高_万円,借入金 の有無,借入金額_万円" & ") VALUES( " & "" WHERE WHERE 世帯 世帯 ID ID == "" && "'" "'" && 世帯 世帯 ID ID & & "'" & ";" "'" & ";" 世帯.世帯情報.世帯票.年次 & "," & 世帯.世帯情報.世帯票.調査コード & "," & データベース再オープン(データベース) データベース再オープン(データベース) Dim Dim 返り値 返り値 As As Boolean Boo ean <中略> 世帯.世帯情報.所得票.借入金の有無 & "," & == SQL SQL 実行(データベース, 実行(データベース, sql) sq ) Return 返り値 Return 返り値 End End Function Function 世帯.世帯情報.所得票.借入金額_万円 & ");" ' SQL 文実行 Dim 返り値 As Boo ean = SQL 実行 リスト 4 リスト 4 (データベース, sq ) DB 削除例 DB 削除例 End Function Pub ic Function Public Function 世帯テーブル削除(Byre 世帯テーブル削除(Byre デー デー タベース As MySq C ient.MySq Connection, タベース As MySqlClient.MySqlConnection, Public Function SQL 実行(ByRef cn As ByVa ByVal Dim Dim (ByRef mysq c ient.mysq connection, ByVa sq As 世帯 ean 世帯 ID ID As As String) String) As As Boo Boolean cmd C ient.MySq Command cmd As As New New MySq MySqlClient.MySqlCommand cmd.Connection cmd.Connection == データベース データベース Dim sq As String = "DELETE Dim sql As String = "DELETE FROM FROM 世帯 世帯 "" && "" WHERE WHERE 世帯 世帯 ID ID == "" && "'" "'" && 世帯 世帯 ID ID & & "'" "'" String) As Boo ean Dim cmd As New MySq C ient.MySq Command cmd.Connection = cn && ";" ";" データベース再オープン(データベース) データベース再オープン(データベース) cmd.CommandText = sq Dim nDone As Integer Try Dim Dim 返り値 返り値 As As == Boo ean Boolean SQL ) SQL 実行(データベース, 実行(データベース, sq sql) データベースクローズ(データベース) データベースクローズ(データベース) nDone = cmd.ExecuteNonQuery() Catch ex As Exception MessageBox.Show(ex.Message, "通知") Return Return 返り値 返り値 End Function End Function Return Fa se End Try 以上から、MySQL への操作を行うソースをみれ 以上から、MySQL への操作を行うソースをみれ 以上から、MySQL への操作を行うソースをみればわ Return True (ByVal MySQL MySQL リスト 4 MySQL DB 削除例 Return 返り値 とおりである。 項目 As String, ByRef 値 As Int64, 世帯 世帯 ID ID As As String) String) As As Boolean Boo ean cmd As New MySqlClient.MySqlCommand cmd As New MySq C ient.MySq Command ばわかるように、ADO.NET を使用する場合、対象 ばわかるように、ADO.NET を使用する場合、対象 かるように、 ADO.NET を使用する場合、 対象データベー End Function データベースと名前空間が違うだけで、Access スと名前空間が違うだけで、Access(OLEDB)と MySQL データベースと名前空間が違うだけで、Access さらに、DB への変更はリスト 3 に、削除はリス ト 4 に示した。 さらに、DB への変更はリスト 3 に、削除はリスト DB のオープン、クローズ、登録、更新、削除を、 (OLEDB)と 記述はほとんど同じである。 (OLEDB)と MySQL MySQL 記述はほとんど同じである。 記述はほとんど同じである。 -33- ߹ߚޔCentOS ߪ MySQL ߥߤߩ࠺࠲ࡌࠬߦᒝ ࠬࠍ⊒ើߢ߈ࠆ߁ߣޕ྾᧦ઙࠍḩߚߒߡࠆޕ ߊ߇ࡕࡔޔዋߥ PC ߢ߽ࠬࡓ࠭ߦേߊޕ ߹ߚޔCentOS ߪ MySQL ߥߤߩ࠺࠲ࡌࠬߦᒝ Linux ߩࡔ࠶࠻ߪࡦ࡚ࠪࡘࡆ࠻ࠬࠖ࠺ޔ ߊ߇ࡕࡔޔዋߥ PC ߢ߽ࠬࡓ࠭ߦേߊޕ ߩਛߦ࠰ࡈ࠻߇ߞߡࠆߎߣߢޔ↪ߢߥߌࠇ 川 島 秀 樹Linux ߩࡔ࠶࠻ߪࡦ࡚ࠪࡘࡆ࠻ࠬࠖ࠺ޔ ߫߶ߣࠎߤ߇ήఘߢ↪ߢ߈ࠆߎߣߢࠆޕᖱႎ ߩਛߦ࠰ࡈ࠻߇ߞߡࠆߎߣߢޔ↪ߢߥߌࠇ ᢎ⢒ߢߪޔDebian ♽ߩ Knoppix ࠍਥߦ↪ߒߡ ߫߶ߣࠎߤ߇ήఘߢ↪ߢ߈ࠆߎߣߢࠆޕᖱႎ 3.Windows と Linux 環境における RDB メモリが少ない PC1GB でもスムーズに動く。 ࠆޕPC ߪࡔࡕ ⒟ᐲߢᔟㆡߦേ߈ޔቇ↢ߢ߽ ᢎ⢒ߢߪޔDebian ♽ߩ Knoppix ࠍਥߦ↪ߒߡ 3.1 Access のメリットとデミリット Linux のメリットは、ディストリビューションの中 ߿ߔߣ߁ࡔ࠶࠻ࠍᜬߟ߆ࠄߢࠆޕ Windows での環境において、マイクロソフトの開発 にソフトが入っていることで、商用でなければほとん ツールを無視できない。2008 年から 2014 年まで Visua mysql -u myu my USE basic; mysql -u my CREATE USE basic;TA VARCHA CREATE TA SHOW TAB VARCHA SHOW SHOW FIEL TAB INSERT INT SHOW FIEL VALUES INSERT INT ࠆޕPC ߪࡔࡕ 1GB ⒟ᐲߢᔟㆡߦേ߈ޔቇ↢ߢ߽ ߹ߚޔJava ߩ႐วޔ㐿⊒⛔วⅣႺߢࠆ Eclipse ߿ߔߣ߁ࡔ࠶࠻ࠍᜬߟ߆ࠄߢࠆޕ どが無償で使用できることである。情報教育では、Debian SELECT *F VALUES Studio を導入して、VB をプログラミング A の授業で ߹ߚޔJava Eclipse 系の Knoppix ߩ႐วޔ㐿⊒⛔วⅣႺߢࠆ を主に使用している。PC はメモリ 1GB ࠍ↪ߒߚޕ ߹ߚ⎇ޔ SELECT *F 使用した。Visua Studio Express 2013 は、30 日 ߣߎࠈߢޔMySQL ߩࠗࡦࠬ࠻࡞ߪࠄ߆ᧃ┵ޔ ࠍ↪ߒߚޕ 程度で快適に動き、学生でも使いやすいというメリッ 以上使用する場合は続けて製品登録を行うことが必要 ࡄ࠶ࠤࠫࠍ▤ℂߔࠆ apt-get ࠦࡑࡦ࠼ࠍ↪ߡ トを持つからである。また、Java の場合、開発統合 ߣߎࠈߢޔMySQL ߩࠗࡦࠬ࠻࡞ߪࠄ߆ᧃ┵ޔ ࡚ࡦࡕ࠺࡞ ߹ߚ⎇ޔ 㧔ࠩࡦࡊ㧕 ࡚ࡦࡕ࠺࡞ である。そのため、大学のパソコンの場合インストー 環境である Ec ipse を利用した。 ⴕ߁ޕ䋨ࠬ࠻ 5 ෳᾖ㧕 ルする登録者の設定に注意を要する。 Windows 上のソフトは、サポートがしっかりしてお ところで、MySQL のインストールは、端末からパッ ⴕ߁ޕ䋨ࠬ࠻ 5 ෳᾖ㧕 䊥䉴䊃 5 MySQL 䉟䊮䉴䊃䊷䊦 apt-get ケージを管理する apt-get コマンドを用いて行う。 (リ り、トラブルが出ても事例が多いので、インターネッ スト 䊥䉴䊃5 参照) 5 MySQL 䉟䊮䉴䊃䊷䊦 apt-get ト上の Q&A でも解決できるという特徴がある。OS のバー ジョンが新しくなっても、1 年くらいすると安定する ので、安心できる。その反面、OS のバージョンアップ にソフト側が対応できないことが多い。OS が Windows2000 から XP や Vista に変わったとき、プログラム環境が ࡄ࠶ࠤࠫࠍ▤ℂߔࠆ apt-get ࠦࡑࡦ࠼ࠍ↪ߡ $sudo5 MySQL apt-getインストール apt-get update リスト $sudo install mysql-server $sudo apt-get apt-get -y update $sudo $sudo apt-get apt-get install -y installmysql-client mysql-server XAMPP ߪ We 㧔ࠩࡦࡊ㧕 MySQLޔPHP XAMPP ߪ We ߒ◲ޔනߦ MySQLޔPHP ࠆࡦࠦޕ ߒ◲ޔනߦ 2ࠆࡦࠦޕ ߦ␜ߒߡ 2 ߦ␜ߒߡ ߟ߉ߦੌ⚳࡞࠻ࠬࡦࠗޔᓟޔMySQL ࠨࡃࠍ $sudo apt-get install mysql-client േߔࠆޕേޔᱛޔౣേߪએਅߩߣ߅ࠅޕ ߟ߉ߦੌ⚳࡞࠻ࠬࡦࠗޔᓟޔMySQL ࠨࡃࠍ VB6 から VB2005 に変わったこともあって、多くのプ つぎに、インストール終了後、MySQL サーバを起動 ログラム資産(VB)を失うことになった。また、同様 േߔࠆޕേޔᱛޔౣേߪએਅߩߣ߅ࠅޕ する。起動、停止、再起動は以下のとおり。( リスト に Windows7から 8.1 や 10 にバージョンアップする (ࠬ࠻ 6 ෳᾖ) 6 䊥䉴䊃 参照 )6 MySQL 䉰䊷䊋േ䇮ᱛ䇮ౣേ (ࠬ࠻ 6 ෳᾖ) ことによって、64 ビットが主流になり、今までの 32 リスト 6 MySQL サーバ起動、停止、再起動 ビットソフトを引き続き継承できなくなっている。 $ sudo /etc/init.d/mysql 3.2 MySQL のメリットとデミリット 2014 年の 4 月に WindowsXP がサポート停止になっ $$sudo 㧔ᱛ㧕 sudo /etc/init.d/mysql /etc/init.d/mysql stop start 㧔േ㧕 ࠬ࠻ 7 ߪޔMySQL ߩࠦࡑࡦ࠼ࠍ࠹ࠠࠬ࠻ࡈࠔ $$sudo 㧔ౣേ㧕 sudo /etc/init.d/mysql /etc/init.d/mysql restart stop 㧔ᱛ㧕 ࿑ 2 たので、3 年前の 2013 年ごろから Linux を使うこと $ sudo /etc/init.d/mysql restart 㧔ౣേ㧕 リスト 7 は、MySQL のコマンドをテキストファイル ࿑ 2 にした。Linux とは、PC 上で利用できる UNIX 互換 OS に記述したサンプルである。これを実行する前に確認 ↪ߢ߈ࠆ߿࡞࠻ࠬࡦࠗߥ࡞ࠞࠖࡈࠣޕ RPM ߣ である。Linux は 20 年前使った UNIX と違って、USB ࠍታⴕߒߚ߇ࠛࠬࠢ࠶࠲ࡦࠪߩ࠼ࡦࡑࠦޕ し、コピー&ペーストを行い、コマンドを実行した。 ߁⁛⥄ߩࡄ࠶ࠤࠫ▤ℂߦࠃࠅߩࠫࠤ࠶ࡄޔ フラッシュメモリや外付けディスクから起動でき、Windows ߡ߽ޔ⍴ᤨ㑆ߢୃᱜߢ߈ࠆࡔ࠶࠻߇ࠆޕ コマンドのシンタックスエラーが出ても、短時間で修 と同等の 環境になり、相当に進歩したと思われる。 ㅊടGUI 㒰߇ᚻシߦߢ߈ࠆޕ ήఘ ߢ Red Hat Linux 正できるメリットがある。 ࠬ࠻ 7 ࠹ࠠࠬ࠻ࡈࠔࠗ࡞⸥ㅀߩࠨࡦࡊ࡞ ߹ߚޔRed hat ♽ߪޔRed Hat ␠ߢ↪ߣߒߡ㐿 ⊒ߐࠇߡࠆ࠺ࠖࠬ࠻ࡆࡘ࡚ࠪࡦߢࠆޕડ ᬺߥߤߢࠨࡃߣߒߡࠊࠇߡ߅ࠅޔቯߒߡ 配布パッケージであるディストリビューションは、 ࠍ࠰ࠬ߆ࠄౣ᭴▽ߒߡࠕࡦࠫߒߚ CentOS ߇ 大まかに以下の 2 系統に分けられる。Debian 系と Red 䊥䉴䊃 6 MySQL 䉰䊷䊋േ䇮ᱛ䇮ౣേ start 㧔േ㧕 ࠗ࡞ߦ⸥ㅀߒߚࠨࡦࡊ࡞ߢࠆࠍࠇߎޕታⴕߔࠆ ೨ߦ⏕ߒࡇࠦޔ㧒ࡍࠬ࠻ࠍⴕ࠼ࡦࡑࠦޔ リスト 7 テキストファイル記述のサンプル例 ฬߢࠆޔߪࠇߎޕડᬺ㧔Enterprise㧕࡙ࠬ mysql -u root -p ケージは、緻密かつ厳密な管理をされており、ハード ߦㆡߒߚ OS ߢࠅޔԘቯߒߡേߔࠆޕԙ㐳ᦼ SHOW databases; 㑆ߩࠕ࠶ࡊ࠺࠻ࠨࡐ࠻߇ࠆޕԚᕈ߇㜞 ウェアへの対応に優れている。 CREATE database basic; ޕԛᄢⷙᮨߥࠪࠬ࠹ࡓߢ߽ఝࠇߚࡄࡈࠜࡑࡦ また、Red hat 系は、Red Hat 社で商用として開発 GRANT ALL PRIVILEGES ON basic.* TO hat 系ディストリビューションである。Debian 系パッ されているディストリビューションである。企業など ࠬࠍ⊒ើߢ߈ࠆ߁ߣޕ྾᧦ઙࠍḩߚߒߡࠆޕ myusr@localhost IDENTIFIED BY '12345'; でサーバとして使われており、安定して使用できる。 ߹ߚޔCentOS ߪ MySQL ߥߤߩ࠺࠲ࡌࠬߦᒝ mysql -u myusr -p グラフィカルなインストールや RPM という独自のパッ USE basic; ߊ߇ࡕࡔޔዋߥ PC ߢ߽ࠬࡓ࠭ߦേߊޕ ケージ管理により、パッケージの追加・削除が手軽に Linux ߩࡔ࠶࠻ߪࡦ࡚ࠪࡘࡆ࠻ࠬࠖ࠺ޔ できる。無償版で Red Hat Linux をソースから再構 ߩਛߦ࠰ࡈ࠻߇ߞߡࠆߎߣߢޔ↪ߢߥߌࠇ 築してアレンジした CentOS が有名である。これは、 CREATE TABLE usr (uid VARCHAR(7),passwd VARCHAR(15),unam VARCHAR(20),family INT); ߫߶ߣࠎߤ߇ήఘߢ↪ߢ߈ࠆߎߣߢࠆޕᖱႎ 企業(Enterprise)ユースに適した OS であり、①安 SHOW TABLES; 定して動作する。 ②長期間のアップデートサポートが ᢎ⢒ߢߪޔDebian ♽ߩ Knoppix ࠍਥߦ↪ߒߡ SHOW FIELDS FROM usr; ある。③保守性が高い。 ࠆޕPC ߪࡔࡕ ④大規模なシステムでも優れた 1GB ⒟ᐲߢᔟㆡߦേ߈ޔቇ↢ߢ߽ INSERT INTO usr(uid,passwd,unam,family) パフォーマンスを発揮できる。という四条件を満たし ߿ߔߣ߁ࡔ࠶࠻ࠍᜬߟ߆ࠄߢࠆޕ ている。 ߹ߚޔJava ߩ႐วޔ㐿⊒⛔วⅣႺߢࠆ Eclipse また、CentOS は MySQL などのデータベースに強く、 ࠍ↪ߒߚޕ ߣߎࠈߢޔMySQL ߩࠗࡦࠬ࠻࡞ߪࠄ߆ᧃ┵ޔ VALUES('yyamada','12345','Yamada,Shokan',3); SELECT * FROM usr; ߹ߚ⎇ޔⓥࠍⴕߞߡࠆࡑࠗࠢࡠࠪࡒࡘࠪ ࡚ࡦࡕ࠺࡞ߩ᭴▽ߦ߅ߡߪޔWindows ߦߡ XAMPP ࡄ࠶ࠤࠫࠍ▤ℂߔࠆ apt-get ࠦࡑࡦ࠼ࠍ↪ߡ 㧔ࠩࡦࡊ㧕ߦࠃࠆࠗࡦࠬ࠻࡚ࠪࡦࠍⴕߞߚޕ -34- ⴕ߁ޕ䋨ࠬ࠻ 5 ෳᾖ㧕 XAMPP ߪ Web ࠨࡃ᭴▽ߦࠃߊࠊࠇࠆ Apache ߿ 䊥䉴䊃 5 MySQL 䉟䊮䉴䊃䊷䊦 apt-get MySQLޔPHPޔPerl ߣߞߚ࠷࡞ࠍࡄ࠶ࠤࠫൻ ߢ߽ ࠆޕ INSERT INTO usr(uid,passwd,unam,family) ࠬ࠻ 8 VALUES('yyamada','12345','Yamada,Shokan',3); +-------- # yum -y install mariadb-server ipse SELECT * FROM usr; ߆ࠄ 情報教育におけるデータベース環境の考察 GEDIT を実行し、編集する。(リスト 9 参照) ߹ߚ⎇ޔⓥࠍⴕߞߡࠆࡑࠗࠢࡠࠪࡒࡘࠪ GEDIT ࠍታⴕߒ✬ޔ㓸ߔࠆޕ㧔ࠬ࠻ 9 ෳᾖ㧕 ࡚ࡦࡕ࠺࡞ߩ᭴▽ߦ߅ߡߪޔWindows ߦߡ XAMPP リスト 9 ߡ また、研究を行っているマイクロシミュレーション 㧔ࠩࡦࡊ㧕ߦࠃࠆࠗࡦࠬ࠻࡚ࠪࡦࠍⴕߞߚޕ ࡃࠍ ࠅޕ 1 row in ᢥሼࠦ࠼ࠍ UTF-8 ߦߔࠆߚߦࠄ߆ᧃ┵ޔ ࠬ࠻ 9 ㋈ᧁઁ( ߷ቢోߥ ࠛࡦ࠲ࡊ リスト 9 # gedit /etc/my.cnf.d/server.cnf モデルの構築においては、Windows にて XAMPP(ザン # gedit /etc/my.cnf.d/server.cnf XAMPP ߪ Web ࠨࡃ᭴▽ߦࠃߊࠊࠇࠆ Apache ߿ プ)によるインストレーションを行った。XAMPP は Web サーバ構築によく使われる Apache や MySQL、PHP、Per MySQLޔPHPޔPerl ߣߞߚ࠷࡞ࠍࡄ࠶ࠤࠫൻ [mysqld] ߩࡃ࡚ࠫ ൊ᩺ߔࠆߣ ⴕߔࠆߎߣ [mysqld] といったツールをパッケージ化し、簡単にインストー ߒ◲ޔනߦࠗࡦࠬ࠻࡞ߢ߈ࠆࠃ߁ߦߒߚ߽ߩߢ character-set-server = utf8 character-set-server = utf8 MariaDB を起動する。(リスト 10 参照) ࠆߪࡦ࡚ࠪࠤࡊࠕ࡞ࡀࡄ࡞ࡠ࠻ࡦࠦޕ࿑ アプリケーションは図 2 に示している。ここから、 MariaDB ࠍേߔࠆ ࠻ࠬ(ޕ10 ෳᾖ) ルできるようにしたものである。コントロールパネル MySQL を起動している。 リスト 10を起動する。( リスト 2 ߦ␜ߒߡࠆޕ ߎߎ߆ࠄޔMySQL [情報教育におけるデータベース環境の考察] ࠍേߒߡࠆ ޕMariaDB ࠬ࠻ 10 10 参照 ) リスト 10 #リスト systemct start mariadb [情報教育におけるデータベース環境の考察] 11 さらに、RDB のテーブルをテキストファイルに のテーブルをテキストファイルに さらに、RDB # systemctl start mariadb MariaDB を自動起動設定にする。 記述(参考資料 11 参照)して、MySQL 参照)して、MySQL のコマンド 記述(参考資料 MariaDB ࠍ⥄േേ⸳ቯߦߔࠆޕ (リスト 11 参照) リスト 11を自動起動設定にする。 さらに、RDB のテーブルをテキストファイルに MariaDB # (リスト systemctl 11enable 参照) mariadb プロンプトから「source 命令」を使用して登録し 命令」を使用して登録し プロンプトから「source リスト 11 㧔ࠬ࠻ 11 ෳᾖ㧕 [情報教育におけるデータベース環境の考察] 記述(参考資料 1 参照)して、MySQL のコマンド MariaDB へ root でログインする。 MariaDB へ root でログインする。 # systemct enable mariadb (リスト 12 参照) リストMariaDB 11 へ root でログインする。 た。これは、マイクロシミュレーションモデルの た。これは、マイクロシミュレーションモデルの プロンプトから「source 命令」を使用して登録し データベースを作成したものである。業務では データベースを作成したものである。業務では さらに、RDB のテーブルをテキストファイルに た。これは、マイクロシミュレーションモデルの MariaDB へ root でログインする。( リスト 12 参照 ) Windows で作成したが、 で作成したが、Linux Linux 環境の MySQL でも確 Windows リスト 12 記述(参考資料 1 参照)して、MySQL のコマンド (リスト 12 参照) データベースを作成したものである。業務では リスト 12 認できた。 # systemctl enable mariadb 認できた。 プロンプトから「source 命令」を使用して登録し Windows で作成したが、Linux 環境の MySQL でも確 リスト 12-u root -p #mysql #mysq MariaDB へ root でログインする。 た。これは、マイクロシミュレーションモデルの 認できた。 インストール時の端末へのキーインと応答は、 3.3 MariaDB MariaDB の実用性 の実用性 (リスト 12 参照) 3.3 インストール時の端末へのキーインと応答は、参考 データベースを作成したものである。業務では #mysql -u root -p 図 2 XAMPP コントロールパネル 参考資料2のリスト 15 に出している。 MySQLは、 は、 2008 年に 年に SUN SUN マイクロ社に買収され、 マイクロ社に買収され、 資料2のリスト 15 に表示している。 MySQL 2008 Windows で作成したが、 Linux 環境の MySQL でも確 リスト 12 インストール時の端末へのキーインと応答は、 ࿑ 3.3 2 XAMPP ࠦࡦ࠻ࡠ࡞ࡄࡀ࡞ MariaDB の実用性 つぎに、 「SOURCE 命令」で、テキストファイル さらに、RDB のテーブルをテキストファイルに記述 「SOURCE 命令」で、テキストファイル経由 その後 Oracle Oracle が SUN SUN マイクロ社を買収したので、 マイクロ社を買収したので、 つぎに、 その後 が 認できた。 参考資料2のリスト 15 に出している。 MySQL は、 2008 SUN マイクロ社に買収され、 経由でコマンドを入れた。MySQL と全く同じ動き (参考資料 1 リスト 14年に 参照)して、MySQL のコマンド でコマンドを入れた。MySQL と全く同じ動きをした。 MariaDB は Oracle Oracle 社のものとなっている。 MariaDB は 社のものとなっている。 #mysql -u root -p つぎに、 「SOURCE 命令」で、テキストファイル その後 Oracle が SUN命令」を使用して登録した。 マイクロ社を買収したので、 (リスト プロンプトから「source 13 参照) 13 参照) をした。 (リスト そのため、SUN マイクロ社を退職した マイクロ社を退職した MySQL の そのため、SUN インストール時の端末へのキーインと応答は、 3.3 MariaDB の実用性 経由でコマンドを入れた。MySQL と全く同じ動き これは、マイクロシミュレーションモデルのデータベー リスト 13 MariaDB は Oracle 社のものとなっている。 リスト 13 生みの親である Michael Michael "Monty" "Monty" Widenius がオー 参考資料2のリスト 生みの親である 15 に出している。 MySQL は、2008 年に SUN マイクロ社に買収され、 スを作成したものである。業務では Windows で作成し をした。(リスト 13 参照) そのため、SUN マイクロ社を退職した MySQL の MariaDB [basic]> source プンソースを維持するために プンソースを維持するために MariaDB つぎに、 「SOURCE 命令」で、テキストファイル たが、Linux 環境の MySQL でも確認できた。を作ってい その後 Oracle が SUN マイクロ社を買収したので、 リスト 13 生みの親である Michael "Monty" Widenius がオー /home/hkawashima2/stest1.txt る。全般的に MySQL MySQL の最新機能を少しずつ取り込 の最新機能を少しずつ取り込 経由でコマンドを入れた。MySQL る。全般的に と全く同じ動き MariaDB は Oracle 社のものとなっている。 MariaDB [basic]> source プンソースを維持するために MariaDB を作ってい Query OK, 0 rows affected (0.15 sec) 3.3 MariaDB の実用性 みながらセキュリティや頑健性や性能を高めてい をした。 (リスト 13 参照) みながらセキュリティや頑健性や性能を高めてい そのため、SUN マイクロ社を退職した MySQL の /home/hkawashima2/stest1.txt る。全般的に MySQL M y Sる。ここでは、Linux QL は、2008 年 に S Uの最新機能を少しずつ取り込 NのマCentOS7.0 イクロ社に 収 さ れ 、を +-----------------+ に買MariaDB リスト 13 る。ここでは、Linux の CentOS7.0 生みの親である Michael "Monty" Widenius がオー Query OK, 0 rows affected (0.15 sec) その後 Orac e が SUN マイクロ社を買収したので、MariaDB みながらセキュリティや頑健性や性能を高めてい Tab es_in_basic | Tables_in_basic | 試してみた。インストールは、端末よりリスト 8 MariaDB [basic]> 試してみた。インストールは、端末よりリスト source MariaDB を作ってい +-----------------+ はプンソースを維持するために Orac e 社のものとなっている。 る。ここでは、Linux の CentOS7.0 に MariaDB を +-----------------+ を実行する。 を実行する。 /home/hkawashima2/stest1.txt る。全般的に MySQL の最新機能を少しずつ取り込 そのため、SUN マイクロ社を退職した MySQL の生み | Tables_in_basic | 試してみた。インストールは、端末よりリスト 8 | usr | Query OK, 0 rows affected (0.15 sec) の親である Michae "Monty" Widenius がオープン みながらセキュリティや頑健性や性能を高めてい リスト 8 リスト 8 +-----------------+ を実行する。 +-----------------+ ソースを維持するために を作っている。全 +-----------------+ る。ここでは、Linux のMariaDB CentOS7.0 に MariaDB を | usr | 1 row in set (0.00 sec) 般的に M y S Q-y L8 のinstall 最 新 機 能mariadb-server を 少 し ず つ 取 り 込 みながら | yum -y install mariadb-server Tables_in_basic | ##リスト yum 試してみた。インストールは、端末よりリスト 8 +-----------------+ セキュリティや頑健性や性能を高めている。ここで 文字コードを UTF-8 UTF-8 にするために、端末から にするために、端末から +-----------------+ 文字コードを を実行する。 1 row in set (0.00 sec) は 、 L#i nyum ux の n t O S 7 . 0mariadb-server に M a r i a D B を 試 し てみた。 -yC einstall 鈴木他(2015)によれば、MySQL と MariaDB と MariaDB はほ はほ GEDIT を実行し、編集する。 を実行し、編集する。 (リスト 99 参照) 参照) | usr鈴木他(2015)によれば、MySQL | GEDIT (リスト インストールは、端末よりリスト 8 を実行する。 鈴木他 (2015) によれば、MySQL と MariaDB はほぼ リスト文字コードを 8 UTF-8 にするために、端末から ぼ完全な互換性がある。MariaDB は、MySQL は、MySQL の商用 ぼ完全な互換性がある。MariaDB の商用 +-----------------+ リスト 8 完全な互換性がある。MariaDB は、MySQL の商用エン リスト 9 鈴木他(2015)によれば、MySQL と MariaDB はほ リスト 9 GEDIT を実行し、編集する。(リスト 9 参照) エンタプライズ機能を持ち合わせており、MySQL エンタプライズ機能を持ち合わせており、MySQL 1タ row inイset sec) プラ ズ 機 (0.00 能を持ち 合わせており、MySQL のバー # yum -y insta mariadb-server ぼ完全な互換性がある。MariaDB は、MySQL の商用 のバージョンアップが 5.6 で留まっていることを ジのバージョンアップが ョ ン ア ッ プ が 5 . 6 で 留5.6 ま っで留まっていることを ていることを勘案する gedit9 /etc/my.cnf.d/server.cnf /etc/my.cnf.d/server.cnf ##リスト gedit 文字コードを UTF-8 にするために、端末から エンタプライズ機能を持ち合わせており、MySQL 勘案すると、教育および学術用では MariaDB 文字コードを UTF-8 にするために、端末から GEDIT と、教育および学術用では MariaDB に移行すること 勘案すると、教育および学術用では MariaDB に移 鈴木他(2015)によれば、MySQL と MariaDB はほに移 GEDIT を実行し、編集する。(リスト 9 参照) のバージョンアップが 5.6 で留まっていることを を実行し、編集する。 (リスト 9 参照) も行することも有益であると思われる。 有 益 で あ る と 思 わ れ る 。 # gedit /etc/my.cnf.d/server.cnf 行することも有益であると思われる。 [mysqld] ぼ完全な互換性がある。MariaDB は、MySQL の商用 [mysqld] 勘案すると、教育および学術用では MariaDB に移 リスト 9 character-set-server == utf8 utf8 エンタプライズ機能を持ち合わせており、MySQL character-set-server お行することも有益であると思われる。 わりに [mysqld] おわりに おわりに のバージョンアップが 5.6 で留まっていることを MariaDB を起動する。(リスト 10 参照) MariaDB を起動する。(リスト 10 参照) 第 1 章では、データ ベー スを使った授業の展開に # gedit /etc/my.cnf.d/server.cnf character-set-server = utf8 第 1 章では、データベースを使った授業の展開 -35- ߅ࠊࠅߦ ╙ 1 ┨ߢ ߦߟߡㅀ Access ߪ w ߱ߦߪᦨㆡ ᓮ߇ᒙߊޔ ࠬࡐࡦࠬ߇ ߩ⦟ߐߦ․ 川 島 秀 樹 ついて述べた。Access と MySQL を教えており、Access Web 参照 は windows 環境でデータベースの基礎を学ぶには最適 [1]XAMPP プロジェクト日本語トップページ : 入手先 である。デリメットとしては、排他制御が弱く、1 万 https://osdn.jp/projects/xampp/( 参照 2015-12-17). 件以上のデータ操作を行うのにレスポンスが悪い。ま [2]M a r i a D B F O U N D A T I O N : C o n t i n u i t y a n d o p e n た、MySQL はパフォーマンスの良さに特徴があり、学 co 生は相当のスキルを涵養できる。 (accessed 2015-12-20). 第2章では、プログラムとの連動について論述した。 [3] マイクロソフト リレーショナルデータベースの Windows 環境であれば、ADO.NET は応用が利く。マイ 基本知識 :入手先 クロシミュレーションでの MySQL サンプルを記した。 <https://www.microsoft.com/japan/office/previ ADO.NET を使用する場合、Access(OLEDB)と MySQL ous/xp/suminaka/access/database/database_con1 記述はほとんど同じである。 _2.htm>( 参照 2015-12-5). 第3章では、Access のメリットとデリメットと、MySQL のメリットとデリメットについて述べた。Windows 上 で動く Access は、サポートがしっかりしており、ト ラブルが出ても事案が多いメリットがある。半面、OS 環境やプログラム環境のバージョンアップが多く、多 くの VB プログラム資産を失った。 M y S Q L の メ リ ッ ト ・ デ リ メ ッ ト で は L i n u x などの オープン環境で使えることである。情報教育では、 Knoppix を使用しているが、学生は使いやすいメリッ トを持つ。テキストファイルに SQL コマンドを記述し て、コピー & ペーストする方法や「source 命令」を使っ て、SQL コマンドを実行した。Windows 環境では、XAMPP を使用した。インストールが楽であり、コントロール パネルより制御できる。 さらに、MariaDB の実用性について述べた。Linux の CentOS7.0 サーバにインストールし、その実用性 を確認した。MySQL とほぼ同じ互換性があり、MySQL で作成したテキストファイルを「source 命令」で実 行できた。MySQL ではエンタプライズ機能が MariaDB には無償で入っている。教育および学術用では MariaDB に移行することも有益であると思われる。 Linux などオープン環境での Java の記述は、Eclipse が有用であるが、次の機会に論じたい。 参考文献 [1] 大津真著 ,(2006),『 Knoppix ビギナーズバイブル』, 株式会社毎日コミュニケーションズ . [2] 沓名亮典他共著 ,(2009),『Linux コマンドポケッ トリファレンス』, 技術評論社 . [3] 島田裕二著 ,(2009),『MySQL ポケットリファレン ス』, 技術評論社 . [4] 鈴木啓修他共著 ,(2015),『MariaDB&MySQL 全機能 バイブル』, 技術評論社 . [5] 日本 MySQL ユーザ会遠藤俊裕他共著 ,(2011),『MySQL 徹底入門~ 5.5 新機能対応~』, 翔泳社 . -36- aboration,avai ab e< https://mariadb.org/ > 情報教育におけるデータベース環境の考察 [ᖱႎᢎ⢒ߦ߅ߌࠆ࠺࠲ࡌࠬⅣႺߩ⠨ኤ] [ᖱႎᢎ⢒ߦ߅ߌࠆ࠺࠲ࡌࠬⅣႺߩ⠨ኤ] ෳ⠨⾗ᢱ㧝 ࡑࠗࠢࡠࠪࡒࡘ࡚ࠪࡦ DB ዞᬺᤨ㑆 drop database if exists drop database if exists Master2007IER; Master2007IER; drop table if exists ੱ; drop table if exists ੱ; drop table if exists Ꮺ; drop table if exists Ꮺ; create database Master2007IER; create database Master2007IER; use Master2007IER; use Master2007IER; ߘߩઁߩᚲᓧ int, ᚲᓧ߇ᦨᄙߩ⠪ int, ᚲᓧ߇ᦨᄙߩ⠪ int, ൕഭᚲᓧ߇ᦨᄙߩ⠪ int, ൕഭᚲᓧ߇ᦨᄙߩ⠪ int, ⾂⫾ว⸘ int, ⾂⫾ว⸘ int, ୫㊄ว⸘ int, ୫㊄ว⸘ int, ᣂⷙᚑᣣ int, ᣂⷙᚑᣣ int, ᦨ⚳ᦝᣂᣣ int); ᦨ⚳ᦝᣂᣣ int); 参考資料1 マイクロシミュレーション DB ෳ⠨⾗ᢱ㧝 ࡑࠗࠢࡠࠪࡒࡘ࡚ࠪࡦ DB ൕഭᚲᓧ ዞᬺᤨ㑆 ࠬ࠻ 14 ⚻ᷣ↥ᬺ⋭ࡕ࠺࡞ ੱޔᏪ㧔ᛮ☴㧕 リスト 14 経済産業省モデル 個人、世帯例(抜粋) ൕഭᚲᓧ ࠬ࠻ 14 ⚻ᷣ↥ᬺ⋭ࡕ࠺࡞ ੱޔᏪ㧔ᛮ☴㧕 ߘߩઁߩᚲᓧ create table Ꮺ ( create table Ꮺ ( ᐕᰴ int, ᐕᰴ int, ⺞ᩏࠦ࠼ int, ⺞ᩏࠦ࠼ int, ⋵⇟ภ int, ⋵⇟ภ int, ⇟ภ int, ⇟ภ int, න⇟ภ int, න⇟ภ int, Ꮺ⇟ภ int, Ꮺ⇟ภ int, Ꮺ⇟ภᨑ⇟ภ int, Ꮺ⇟ภᨑ⇟ภ int, Ꮺ ID varchar(50), Ꮺ ID varchar(50), Ꮺੱຬᢙ int, Ꮺੱຬᢙ int, Ꮺੱຬಽ int, Ꮺੱຬಽ int, Ꮺ᭴ㅧ_㧣ಽ㘃 int, Ꮺ᭴ㅧ_㧣ಽ㘃 int, 㧨ਛ⇛㧪 㧨ਛ⇛㧪 Ꮺਥߩੱ ID ID varchar(50), Ꮺਥߩੱ varchar(50), Ꮺਥߩᐕ㦂 int, Ꮺਥߩᐕ㦂 int, ว⸘ᚲᓧ_ᚲᓧ⒢ int, int, ว⸘ᚲᓧ_ᚲᓧ⒢ ว⸘ᚲᓧ_᳃⒢ int, int, ว⸘ᚲᓧ_᳃⒢ ✚ᚲᓧ✚ᚲᓧ int, int, ᒰೋᚲᓧ int, ᒰೋᚲᓧ นಣಽᚲᓧ นಣಽᚲᓧ int, int, int, ኅ⸘ᡰ㗵 ኅ⸘ᡰ㗵 int, int, ᶖ⾌ᕈะ ᶖ⾌ᕈะ float, float, int, int, int, int, int, create table ੱ ( create table ੱ ( ᐕᰴ int, ᐕᰴ int, ⺞ᩏࠦ࠼ int, ⺞ᩏࠦ࠼ int, ⋵⇟ภ int, ⋵⇟ภ int, ⇟ภ int, ⇟ภ int, න⇟ภ int, න⇟ภ int, Ꮺ⇟ภ int, Ꮺ⇟ภ int, Ꮺ⇟ภᨑ⇟ภ int, Ꮺ⇟ภᨑ⇟ภ int, Ꮺ ID varchar(50), Ꮺ ID varchar(50), Ꮺຬ⇟ภ int, Ꮺຬ⇟ภ int, ੱ ID varchar(50), ੱ ID varchar(50), ⛯ᨩ int, ⛯ᨩ int, ᕈ ᕈ int, int, ᐕ㦂ฦᱦ int, int, ᐕ㦂ฦᱦ ㈩⠪ߩή ㈩⠪ߩήint, int, <ਛ⇛㧪 <ਛ⇛㧪 ⊛ᐕ㊄ฃ⛎_ᐲ૬⛎ ⊛ᐕ㊄ฃ⛎_ᐲ૬⛎int, int, ⊛ᐕ㊄ฃ⛎_ၮ␆ int, int, ⊛ᐕ㊄ฃ⛎_ၮ␆ <ਛ⇛> <ਛ⇛> ⺖⒢ᮡḰ_ᚲᓧ⒢ int, int, ⺖⒢ᮡḰ_ᚲᓧ⒢ ⺖⒢ᮡḰ_᳃⒢ int, int, ⺖⒢ᮡḰ_᳃⒢ ⒢㗵ប㒰_ᚲᓧ⒢ int, int, ⒢㗵ប㒰_ᚲᓧ⒢ ⽶ߩᚲᓧ⒢_⛎ઃ int, int, ⽶ߩᚲᓧ⒢_⛎ઃ ᶖ⾌⒢ ᶖ⾌⒢ int, int, ⋥ធ⒢⋥ធ⒢ ⚊⒢㗵⚊⒢㗵 int, int, int, int, ␠ળ㒾ᢱប㒰_ᚲᓧ⒢ int, int, ␠ળ㒾ᢱប㒰_ᚲᓧ⒢ ␠ળ㒾ᢱប㒰_᳃⒢ int, int, ␠ળ㒾ᢱប㒰_᳃⒢ ⊛⽶ᜂว⸘ ⊛⽶ᜂว⸘int, int, ක≮㒾ߩട⁁ᴫ ක≮㒾ߩട⁁ᴫ smallint, smallint, ␠ળ㒾ᢱ⽶ᜂ int, int, ␠ળ㒾ᢱ⽶ᜂ ⊛ᐕ㊄ߩട⁁ᴫ ⊛ᐕ㊄ߩട⁁ᴫ smallint, smallint, ␠ળ㓚⛎ઃ ␠ળ㓚⛎ઃint, 㓹↪㒾ߩട⁁ᴫ 㓹↪㒾ߩട⁁ᴫ smallint, smallint, int, -37- 川 島 秀 樹 ෳ⠨⾗ᢱ㧞 MariaDB ࠗࡦࠬ࠻࡞ 参考資料2 MariaDB インストール 参考資料2 MariaDB インストール ⼔㒾ߩട⁁ᴫ smallint, 介護保険の加入状況 smallint, ⊛ᐕ㊄ᕲ⛎ߩฃ⛎ smallint, 公的年金恩給の受給 smallint, ᮡḰႎ㈽㗵_ෘ↢ᐕ㊄ int, 標準報酬額_厚生年金 int, ᮡḰႎ㈽㗵_ஜᐽ㒾 int, 標準報酬額_健康保険 int, ᮡḰႎ㈽㗵⚥⸘_ෘ↢ᐕ㊄ int, 標準報酬額累計_厚生年金 int, ടᢙ smallint, 加入月数 smallint, ߩή smallint, 仕事の有無 smallint, ൕ߆⥄༡߆ smallint, 勤めか自営か smallint, ൕవߢߩ⒓ smallint, 勤め先での呼称 smallint, 㧨ਛ⇛㧪 <中略> ᚲᓧᥜㆬ⠨ smallint, 所得・余暇選考 smallint, Ꮺਥߣߩ⛯ᨩ smallint, 世帯主との続柄 smallint, ዬߒߡࠆሶଏߩή smallint, 別居している子供の有無 smallint, ᣂⷙᚑᣣ int, 新規作成日 int, ᦨ⚳ᦝᣂᣣ int); 最終更新日 int); リスト15 15 ┵ᧃ߳ߩࠠࠗࡦߣᔕ╵ 端末へのキーインと応答例 ࠬ࠻ リスト 15 端末へのキーインと応答例 [root@localhost ~]# systemctl start mariadb [root@ oca host ~]# systemct start mariadb [root@localhost ~]# systemctl enable mariadb [root@ oca host ~]# systemct enab e mariadb Created symlink from Created sym ink from /etc/systemd/system/multi-user.target.wants/ma /etc/systemd/system/mu ti-user.target.wants/ma riadb.service to riadb.service to /usr/lib/systemd/system/mariadb.service. /usr/ ib/systemd/system/mariadb.service. [root@localhost ~]# mysql_secure_installation [root@ oca host ~]# mysq _secure_insta ation /usr/bin/mysql_secure_installation: ⴕ 379: /usr/bin/mysq _secure_insta ation: 行 379: find_mysql_client: ࠦࡑࡦ࠼߇ߟ߆ࠅ߹ߖࠎ find_mysq _c ient: コマンドが見つかりません create index ⋵⇟ภ on Ꮺ(⋵⇟ภ); create index 県番号 on 世帯(県番号); create index Ꮺ ID on Ꮺ(Ꮺ ID); create index 世帯 ID on 世帯(世帯 ID); create index Ꮺਥߩੱ ID on Ꮺ(Ꮺਥ create index 世帯主の個人 ID on 世帯(世帯主 ߩੱ ID); の個人 ID); create indexindex Ꮺ⇟ภ on Ꮺ(Ꮺ⇟ภ); create 世帯番号 on 世帯(世帯番号); create indexindex Ꮺ⇟ภᨑ⇟ภ on Ꮺ(Ꮺ⇟ create 世帯番号枝番号 on 世帯(世帯番 ภᨑ⇟ภ); 号枝番号); NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we'll In order to og into MariaDB to secure it, we' need the current password for the root user. If need the current password for the root user. If you've just installed MariaDB, and you haven't you've just insta ed MariaDB, and you haven't set the root password yet, the password will be set the root password yet, the password wi be blank, so you should just press enter here. blank, so you shou d just press enter here. current password forfor root (enter forfor none): create indexindex න⇟ภ on Ꮺ(න⇟ภ); Enter current password root (enter none): create 単位区番号 on 世帯(単位区番号); Enter OK, successfully used password, moving on... create index ⇟ภ on Ꮺ(⇟ภ); OK, successfu y used password, moving on... create index 地区番号 on 世帯(地区番号); create index ⺞ᩏࠦ࠼ on Ꮺ(⺞ᩏࠦ࠼); create index 調査コード on 世帯(調査コード); create indexindex ⋵⇟ภ on ੱ(⋵⇟ภ); create 県番号 on 個人(県番号); create indexindex ੱ個人 ID on ID);ID); create ID ੱ(ੱ on 個人(個人 Setting thethe root password ensures that nobody cancan Setting root password ensures that nobody log into thethe MariaDB user without thethe proper og into MariaDBroot root user without proper create indexindex Ꮺຬ⇟ภ on ੱ(Ꮺຬ⇟ภ); authorisation. 世帯員番号 on 個人(世帯員番号); authorisation. create create indexindex Ꮺ⇟ภ on ੱ(Ꮺ⇟ภ); create 世帯番号 on 個人(世帯番号); create indexindex Ꮺ⇟ภᨑ⇟ภ on ੱ(Ꮺ⇟ create 世帯番号枝番号 on 個人(世帯番 ภᨑ⇟ภ); 号枝番号); SetSet root password? [Y/n] root password? [Y/n] NewNew password: password: newnew password: create indexindex න⇟ภ on ੱ(න⇟ภ); Re-enter password: create 単位区番号 on 個人(単位区番号); Re-enter create indexindex ⇟ภ on ੱ(⇟ภ); create 地区番号 on 個人(地区番号); Password updated successfully! Password updated successfu y! privilege tables.. create indexindex ⺞ᩏࠦ࠼ on ੱ(⺞ᩏࠦ࠼); Re oading privi ege tab es.. create 調査コード on 個人(調査コード); Reloading ...... Success! Success! <中略> 㧨ਛ⇛㧪 Reload privi ege tab es now? [Y/n] Reload privilege tables now? [Y/n] y y -38- 情報教育におけるデータベース環境の考察 [情報教育におけるデータベース環境の考察] ... Success! C eaning up... A done! If you've comp eted a of the above steps, your MariaDB insta ation shou d now be secure. Thanks for using MariaDB! [root@ oca host ~]# [root@ oca host ~]# mysq -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 9 Server version: 5.5.44-MariaDB MariaDB Server Copyright (c) 2000, 2015, Orac e, MariaDB Corporation Ab and others. Type 'he p;' or '\h' for he p. Type '\c' to c ear the current input statement. MariaDB [(none)]> [root@ oca host ~]# mysq -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 9 Server version: 5.5.44-MariaDB MariaDB Server Copyright (c) 2000, 2015, Orac e, MariaDB Corporation Ab and others. Type 'he p;' or '\h' for he p. Type '\c' to c ear the current input statement. MariaDB [(none)]> -39-