GUI と CUI

MySQL & PHP のセミナー環境をどうしようかと考え中。

blog-photo-20060306.gif3月20日から3日間、前回の PHP セミナーの続きということで、DB 操作を中心とした実習形式のセミナーをやる予定なのだが、どうやってやろうか悩んでいる。

大きく言えば、GUI で教えるか CUI で教えるかっていう話なのだが、先生達が実際に授業で教える際のやり方や、生徒達の興味のポイントなどを加味しながら構成を練らなければならないので、なかなか簡単には決められない。

普通は (ってか、俺自身の方針では) 、DB にしろ OS にしろコマンドベースのオペレーション方法の勉強を通して、そのシステムの仕組みや設計理念をしっかりと理解すべきだと思っているので、個人的には CUI で教えたい派なのだ。GUI のオペレーションなんてあとからでも十分勉強できるし。けど、先生達はどうしても XAMPP みたいな便利なものを使ってやりたがる。「見た目もハデだし、生徒も興味を持つから」という理由らしい。

しかし、私が CUI にこだわるのには理由がある。

例えば、データベースやテーブルに対する権限付与のコマンドとして GRANT 構文がある。「誰が」、「どのデータベース (テーブル) に対して」、「○○をしてもいいよ」というのを設定するやつだ。これは、通常以下のようなコマンドで発行する。

GRANT SELECT ON userdb.* TO nanasi IDENTIFIED BY `password`;
データーベースに対する基本的な概念が理解できていたら、上の構文を見ただけで何をしようとしているのかは分かると思われる ( nanasiさんに対しては、userdbというデータベースの全てのテーブルに対して、SELECT権限を与えるよ、というコマンド)。

で、このコマンドを手打ちすることに意味があるかどうかと言われれば、私はあると思う。それは、上記のコマンドを打って Enter キーを押したときに初めて、「あぁ、これでnanasiさんはテーブルを検索できるようになったんだなぁ (しみじみ)」という風に感じることで、「アクセス権限」というものがセキュリティ上大切なことなんだなってのを、体に叩き込めるような気がするのだ。。

blog-photo-200603062.gifしかし、これを GUI でやったらどうだろうか?例えば MySQL の場合は MySQL Administrator という今風のツールがあり、権限設定は左画像の画面にて行う。ボタンをポチポチと押すだけで権限が付与できるので、とってもお手軽だ。

もちろん、これらのツールは便利だし、操作方法も覚えていて損はない。けど、DB 初心者が最初からこのツールの便利さに慣れては欲しくないのだ。なんか、ここからは精神論になるのだが、ある一つのオペレーションを行うときに、そのバックグラウンドで動いているコマンドやサブシステムの存在を忘れて欲しくないというか、あんたが今ポチっと押したそのボタンの裏では、こんなコマンドが発行されてて、こんなことが起こってるんだよってことに、少しは想像をめぐらす必要があると思うからだ。

なので、データベースの勉強は CUI から初めて GUI は余力があればやるというくらいでいいと思っているのだが、まぁもう少しカウンターパートと話し合ってみよう。。。

, ,