平成11年度関東地区視覚障害教育研究大会発表資料
       ‐‐ 第4分科会(情報処理) ‐‐


     リレーショナル・データベース・ソフト MIKISQL の紹介
         ‐‐ SQL 学習用教材としての利用の可能性 ‐‐


               横浜訓盲学院  藤原 晴美



       はじめに

    データベースとは
 データベース(Data Base)とは、 「ある共通した目的を持って集められたデ
ータの集まり」 のことである。データベースに対してデータを参照したり、登
録したり、修正したりする役目を果たすのがデータベース・ソフト(データベ
ース管理システム: DBMS = Data Base Managament System)である。
 データベースにはカード型、リレーショナル(関係)型、網型などがあるが、
ここでは、現在企業などで広く利用されているリレーショナル型データベース
に関連した事項についてご紹介する。


    リレーショナル・データベースとは
 リレーショナル・データベースの大きな特徴は、個々のテーブル(*1)の間
で、共通するデータを関連付けられるという点にある。
 例えば、リレーショナル・データベース・ソフトを用いて生徒のデータを管
理する場合を考えてみよう。独立して記録してある "生徒表" や "住所表" な
どのテーブルから必要な情報だけを抜き出して、共通部分を関連付けて新しい
テーブルを作ることができる。 (資料1 参照)
 このように、データベースの情報が格納されたテーブルから、関連するフィ
ールドを関係付けて扱うことができるデータベースを "リレーショナル(関係)
データベース: RDB = Relational Data Base" という。
 テーブルの組み合わせによって新たに作られたテーブルは、ファイルという
形で実際に存在するものではない。これは私たちに一次的に見えているだけで
ビュー(view)表と呼ばれる。ビュー表に対して元のテーブルは、ファイルとし
て実際に存在する表ということで実表という。したがって、ビュー表はパソコ
ンの電源を切った時点で失われるが、もちろん必要に応じてプリントアウトし
たり、新しいテーブル(実表)として保存することは可能である。
 テーブルをその都度作り替えるのは一見煩雑なような印象を受けるが、
RDBには、
  ・データの重複を防ぐ。
  ・データの汎用的な利用が可能になる。
といった利点があるのである。

 (*1) テーブル、 レコード、 フィールド、
 RDBのデータが保存されるファイルをテーブルという。テーブルの構造は
 二次元の表のような形式になっていて、レコード(行)とフィールド(列)から
 構成されている。1件の情報が1レコードであり、1レコードに含まれる一
 つ一つの細かな内容がフィールドである。


    SQLとは
 データベースに対する問い合わせはクエリー(query)と呼ばれ、SQL
(Structured Query Language)などの言語を使って行われるのが一般的である。
 最近のDBMSでは、メニューやデータ項目からの選択によって必要なデー
タの検索や集計などが簡単にできるように操作性が向上して来た。データの検
索や更新などを、ディスプレイ上に表示されたメニューで行えるQBF(Query
By Form)という方式が普及し、さらにもっと手軽に、パソコンとの対話形式で
エンドユーザが操作できるようにしたQBE(Query By Example)という方式も
一般的になって来ている。
 しかし、音声環境でパソコンを使用する視覚障害者にとっては、QBFや
QBEのようなメニュー方式よりもSQLを用いた方が、能率良くデータベー
スを操作できる場合も多いと思われる。その意味からも、またDBMSの基礎
知識を得るためにも、私はSQLについて学習した方が良いのではないかと考
えている。
 SQLはRDBを操作するための世界標準の言語で、ISOやJISで規格
化されている。
 最近のパソコン用データベース・ソフトは、ネットワークに接続されている
SQLサーバへアクセスして、SQLで構築されたデータベースを利用できる
ものもある。この場合、パソコンはSQLサーバのクライアントとして、
SQLコマンドを送ることによってサーバのデータベースを操作することが可
能になる。
 SQLは、データ定義言語(DDL: Data Definition Language)とデータ
操作言語(DML: Data Manipulation Language)から構成されてイル。DDL
は、データベース構築に伴う構造的な定義を行ったり、データベースのセキュ
リティ管理を行うための言語である。DMLは、データの検索、登録や削除な
どデータベースを操作するための言語である。エンドユーザにとっては後者の
方が重要である。 (資料2参照)



       リレーショナル・データベース・ソフト MIKISQL

 最近はデータベース・ソフトがプリインストールされたパソコンが販売され
ているが、スクリーン・リーダはまだそれらを完全にはサポートできていない
ようである。
 パソコンのOSがMS−DOS中心だった頃から、何種類ものデータベース
・ソフトが市販されていて、企業などで広く使用されていた。しかし、それら
は音声化ソフトがディスプレイ画面を思うように読み上げてくれなかったので
、視覚障害者(特に全盲)は十分に使いこなすことが困難だった。私も市販の有
る有名なパッケージ・ソフトを購入してみたものの、膨大なボリュームのマ
ニュアルの読み手もなく、ほんのちょっとだけテストしてみただけで、今も
眠ったままで、私のパソコンのハードディスクの領域を占領しているにすぎな
いという状態である。
 ここにご紹介する MIKISQL は、MS−DOS プラス VDM100 というパ
ソコン環境で動作するRDBソフトである。これは、私の友人(私と同じ商用
パソコン通信ネットの会員)が、登録場所とともに教えてくれたものである。
 MIKISQL の製作者はマニュアルの中で、「これはSQLの入門・修得を目的
として開発したプログラムである」と言っている。
 添付のマニュアルにはチュートリアルの単元もあるので、シェアウェア
(*2)ではあるが、実際に動作させながらRDBの概念を理解し、少しずつ
SQLに慣れて行くための情報処理の教材の一つに加えても良いのではないだ
ろうかと、私は考えている。

 (*2) シェアウェア‥
 ユウザが継続して使用する場合には、低額ではあるが製作者に使用料を支払
 うことが必要なソフトウェア。それによって製作者からのサポートを受ける
 ことができる。本ソフトウェアの製作者は「ユーザ登録料」と呼んでいる。


    MIKISQLの動作環境
 適用機種‥ MS−DOS および DOS/V 5.0 が動くマシン。
 メモリ‥ 640キロバイト。(430キロバイト以上)
 OS‥ MS−DOS ver.3.3以上、 DOS/V 5.0以上。
 ハードディスク‥ 1メガバイト以上
 日本語FEP‥ ATOK などのFEPを予め組み込んでおくこと。

 私は以下の環境で動作確認をしている。
 ・ハードウェア‥ PC9801DS、 同FX、 同NS/A、 同NX/C。
 ・OS‥ NEC日本語MS−DOS ver.5.0a-h、 同 ver.6.2。
 ・日本語FEP‥ ATOK7、 ATOK8。 (いずれもMS−DOS対応版)
 ・音声化ソフト‥ VDM100


    MIKISQL の主な特徴
 MIKISQL は、 JISで規格化されたSQL(JIS−X3005) に準拠してい
る。
 このソフトウェアの特徴のうち、主なものを以下に列記する。

 (1) キーボードからSQL文を入力することによって、テーブルの生成や削
   除、データの検索や更新、挿入や削除などを行うことができる。
 (2) 複数のSQL文を記述した "コマンドファイル" を予め作成しておいて
   、これを exec コマンドで実行することができる。
 (3) ユーザ名とパスワードによるデータベースへのアクセス権の管理ができ
   る。
 (4) テーブル名やフィールド名に英字だけでなく、漢字も使用できる。
 (5)  "リカバリ・プロセッサ" が準備されているので、万一途中で電源が落
   ちても、次の MIKISQL を使い始めるときには自動的にデータベースの
   復旧が行われる。
 (6) 検索結果をCSVファイルに出力することができるので、CSVファイ
   ルをサポートしている他のプログラムとのデータの受け渡しが可能であ
   る。


    MIKISQL の所在地
 ・登録場所‥ NIFTY-SERVE  FGALAP  LIB:14  #826
 ・登録ファイル名‥ MIKI.LZH
 ・登録日‥ 1996/08/09
 ・ソフトウェア種別‥ シェアウェア
 ・サイズ‥ 259,069バイト



     □ 参考文献 □
 ・「リレーショナルデータベース管理システム『MIKISQL』取扱い説明書」
    (山足 光義 著)
 ・「’99初級シスアド標準教科書」
    (早川 芳彦  岩田 儀一  新田 雅道 協著)



‐‐‐ 資料1 ‐‐‐
       RDBによる生徒データの管理の例

 予め、下記のテーブル(表)が作成されている。

    1. 生徒表
 生徒コード   氏名1     氏名2     生年月日
   1001    コウフハルコ    甲府春子     1981/04/03
   1002    ヤマナシアキオ    山梨秋男     1981/06/05

    2. 住所表
 生徒コード  郵便番号   住所           TEL
   1002   400-0123   山梨市山梨南 1-2     0552-34-5678
 1001     400-4567   甲府市飯田北 3-4-56    055-246-1234

    3. 成績表
 生徒コード    国語    数学
    1001    70     80
    1002    85     60


* 生徒の氏名と住所だけを調べたい。上記の1. と2. から、「4. 生徒住
  所表」を作成する。

    4. 生徒住所表
 氏名2      住所
 甲府春子     甲府市飯田北 3-4-56
 山梨秋男     山梨市山梨南 1-2

 4. を作成したSQL文↓
 SELECT 氏名2,住所 FROM 生徒表,住所表
     WHERE 生徒表.生徒コード=住所表.生徒コード

* 生徒の氏名と、国語と数学のテストの成績を表示したい。上記の1. と
  3. から、「5. 生徒成績表」を作成する。

    5. 生徒成績表
 氏名       国語    数学
 甲府春子     70     80
 山梨秋男     85     60

 5. を作成したSQL文↓
 SELECT 氏名2 AS 氏名,国語,数学 FROM 生徒表,成績表
     WHERE 生徒表.生徒コード=成績表.生徒コード



‐‐‐ 資料2 ‐‐‐
       DMLのコマンド

    1 INSERTコマンド
機能‥ 表にレコードを追加する。
書式‥ INSERT INTO 表名 [(列名,.....)] VALUES (値,.....)
説明‥ 表名には挿入する表の名称を記述し、VALUES句には挿入レコードの値
 を列ごとに , (カンマ)で区切って記述する。

    2 DELETEコマンド
機能‥ 表の中からレコードを削除する。
書式‥ DELETE FROM 表名 WHERE 条件
説明‥ 表名は削除の対象となるレコードが含まれる表の名称を記述し、条件
 には削除対象となるレコードの条件を記述する。

    3 UPDATEコマンド
機能‥ 表の中のレコードを更新する。
書式‥ UPDATE 表名 SET 列名 = 式 WHERE 条件
説明‥ 表名は更新するレコードが含まれる表の名称を記述する。条件にはど
 のレコードを更新するかを記述し、WHEREで示された列名の項目を等号の後
 ろに書かれた内容に変更する。

    4 SELECTコマンド
機能‥ 様々な条件を与えて、該当するデータを表示させる。
書式‥ SELECT 列名 FROM 表名 WHERE 条件
説明‥ 表名は検索対象となる表の名称を記述し、条件には検索条件を記述す
 る。そして、表示させる項目を列名として指定する。

三崎吉剛のページに戻る