(57)【要約】【課題】ＩＣカード内またはＩＣカード外のアプリケーションから、ＩＣカード内またはＩＣカード外のデータベースに汎用データベース言語で記述された文を使用してアクセスできるようにする。【解決手段】ＩＣカード１内のＳＱＬＡＰＩ１２は、カード外装置４上で動作するカード外ソフトウェア４１からＳＱＬ要求文が発行された結果、カード外装置４からＩＣカード１に対し当該ＳＱＬ要求文により示されるデータベースアクセス処理を要求する通信データが送信された場合、当該通信データをＯＳ２１１を介して受け取る。ＳＱＬＡＰＩ１２は、受け取った通信データにより示されるデータベースアクセス処理を要求するＳＱＬ要求文を用いて、ＩＣカード１内のデータベース機構１０によるデータベースアクセス処理を行わせる。【選択図】    図４
2004206277.tif 000002
【特許請求の範囲】
【請求項１】
オペレーティングシステムの管理のもとで、外部装置との間で所定形式の通信データの授受が可能なＩＣカードにおいて、
汎用データベース言語で記述されたデータベース要求文に従うデータベースアクセス処理が可能なデータベース機構と、
前記外部装置上で実行されるアプリケーションソフトウェアからデータベースアクセス処理を要求する汎用データベース言語で記述されたデータベース要求文が発行された結果、前記外部装置から前記ＩＣカードに対し当該データベース要求文により示されるデータベースアクセス処理を要求する通信データが送信された場合、当該通信データを前記オペレーティングシステムを介して受け取り、当該通信データにより示されるデータベースアクセス処理を要求する汎用データベース言語で記述されたデータベース要求文を用いて、前記データベース機構によるデータベースアクセス処理を行わせるインタフェースと
を具備することを特徴とするＩＣカード。
【請求項２】
前記インタフェースは、前記オペレーティングシステムを介して受け取った通信データを解釈する解釈手段と、前記通信データがデータベースアクセス処理を要求する通信データであると前記解釈手段により解釈された場合、当該通信データを、当該通信データにより示されるデータベースアクセス処理を要求する汎用データベース言語で記述されたデータベース要求文に変換する通信データ／データベース要求文変換手段と、前記通信データ／データベース要求文変換手段により変換されたデータベース要求文を前記データベース機構に渡して当該データベース要求文に従うデータベースアクセス処理を行わせるデータベースアクセス手段とを備えていることを特徴とする請求項１記載のＩＣカード。
【請求項３】
汎用データベース言語で記述される各種データベース命令と、前記ＩＣカードと前記外部装置との間で授受される通信データに利用可能な、当該命令を定義するデータとの対応関係を登録したテーブルを更に具備し、
前記通信データ／データベース要求文変換手段は、前記テーブルに基づいて、前記通信データを対応するデータベース要求文に変換することを特徴とする請求項２記載のＩＣカード。
【請求項４】
前記インタフェースは、前記データベース機構からデータベースアクセス処理の結果を通知するための汎用データベース言語で記述されたデータベース応答文が返された場合、当該応答文により通知されるデータベースアクセス処理の結果を示す通信データを前記オペレーティングシステムを介して前記外部装置に返すことを特徴とする請求項１記載のＩＣカード。
【請求項５】
前記インタフェースは、前記データベース機構からデータベースアクセス処理の結果を通知するための汎用データベース言語で記述されたデータベース応答文が返された場合、当該応答文を、当該応答文により通知されるデータベースアクセス処理の結果を示す通信データに変換するデータベース応答文／通信データ変換手段と、前記データベース応答文／通信データ変換手段により変換された通信データを前記オペレーティングシステムを介して前記外部装置に返す応答手段とを備えていることを特徴とする請求項４記載のＩＣカード。
【請求項６】
汎用データベース言語で記述される各種データベース命令と、前記ＩＣカードと前記外部装置との間で授受される通信データに利用可能な、当該命令を定義するデータとの対応関係を登録したテーブルを更に具備し、
前記データベース応答文／通信データ変換手段は、前記テーブルに基づいて、前記データベース応答文を対応する通信データに変換することを特徴とする請求項５記載のＩＣカード。
【請求項７】
汎用データベース言語で記述されたデータベース要求文に従うデータベースアクセス処理が可能なデータベース機構を備えた外部装置との間で、オペレーティングシステムの管理のもとで、所定形式の通信データの授受が可能なＩＣカードにおいて、
前記ＩＣカード上で実行されるアプリケーションソフトウェアから前記外部装置の前記データベース機構によるデータベースアクセス処理を要求する汎用データベース言語で記述されたデータベース要求文が発行された場合、当該データベース要求文により示されるデータベースアクセス処理を要求する通信データを前記オペレーティングシステムを介して前記外部装置に送信することにより、当該通信データにより示されるデータベースアクセス処理を前記データベース機構に要求する汎用データベース言語で記述されたデータベース要求文に変換させるインタフェースを具備することを特徴とするＩＣカード。
【請求項８】
前記インタフェースは、前記データベース機構によるデータベースアクセス処理の結果を通知するための汎用データベース言語で記述されたデータベース応答文に対応する通信データが前記外部装置から前記ＩＣカードに返された場合、当該通信データを前記オペレーティングシステムを介して受け取り、当該通信データに対応する汎用データベース言語で記述されたデータベース応答文を前記データベース要求文の発行元のアプリケーションソフトウェアに渡すことを特徴とする請求項８記載のＩＣカード。
【請求項９】
前記インタフェースが、前記ＩＣカード上で実行されるアプリケーションソフトウェアから前記オペレーティングシステムの提供する機能を利用可能とするためのアプリケーション・プログラム・インタフェースであることを特徴とする請求項１または請求項７記載のＩＣカード。
【請求項１０】
アプリケーションソフトウェアの実行が可能なＩＣカードにおいて、
汎用データベース言語で記述されたデータベース要求文に従うデータベースアクセス処理が可能なデータベース機構と、
前記ＩＣカード上で実行されるアプリケーションソフトウェアから前記データベース機構によるデータベースアクセス処理を要求する汎用データベース言語で記述されたデータベース要求文が発行された場合、当該データベース要求文を受け取って前記データベース機構に渡すインタフェースと
を具備することを特徴とするＩＣカード。
【請求項１１】
オペレーティングシステムの管理のもとで、外部装置との間で所定形式の通信データの授受が可能なＩＣカードを利用したデータベースアクセス方法であって、
前記外部装置上で実行されるアプリケーションソフトウェアから前記ＩＣカードに設けられたデータベースアクセス機構によるデータベースアクセス処理を要求する汎用データベース言語で記述されたデータベース要求文が発行された場合、当該データベース要求文を、当該データベース要求文により示されるデータベースアクセス処理を要求する通信データに変換するステップと、
前記変換された通信データを前記外部装置から前記ＩＣカードに送信するステップと、
前記外部装置から前記ＩＣカードに送信された通信データがデータベースアクセス処理を要求する通信データの場合、当該通信データを、当該通信データにより示されるデータベースアクセス処理を要求する汎用データベース言語で記述されたデータベース要求文に変換するステップと、
前記変換されたデータベース要求文を用いて、前記データベース機構によるデータベースアクセス処理を行わせるステップと
を具備することを特徴とするＩＣカードを利用したデータベースアクセス方法。
【請求項１２】
オペレーティングシステムの管理のもとで、外部装置との間で所定形式の通信データの授受が可能なＩＣカードを利用したデータベースアクセス方法であって、
前記ＩＣカード上で実行されるアプリケーションソフトウェアから前記外部装置に設けられたデータベースアクセス機構によるデータベースアクセス処理を要求する汎用データベース言語で記述されたデータベース要求文が発行された場合、当該データベース要求文を、当該データベース要求文により示されるデータベースアクセス処理を要求する通信データに変換するステップと、
前記変換された通信データを前記ＩＣカードから前記外部装置に送信するステップと、
前記ＩＣカードから前記外部装置に送信された通信データがデータベースアクセス処理を要求する通信データの場合、当該通信データを、当該通信データにより示されるデータベースアクセス処理を要求する汎用データベース言語で記述されたデータベース要求文に変換するステップと、
前記変換されたデータベース要求文を用いて、前記データベース機構によるデータベースアクセス処理を行わせるステップと
を具備することを特徴とするＩＣカードを利用したデータベースアクセス方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＩＣカード内またはＩＣカード外で実行されるアプリケーションソフトウェアから、ＩＣカード内またはＩＣカード外のデータベースに汎用データベース言語で記述されたデータベース要求文を使用してアクセスするのに好適なＩＣカード及び同ＩＣカードを利用したデータベースアクセス方法に関する。
【０００２】
【従来の技術】
最近、ＩＣチップが実装されたカード、即ちＩＣカードが普及している。このＩＣチップは、演算処理及び各部の制御を行うＣＰＵ及び書き換え可能な不揮発性メモリを含んでいる。この書き換え可能な不揮発性メモリには、外部から任意のアプリケーション（アプリケーションソフトウェア）をダウンロードすることが可能である。つまり、書き換え可能な不揮発性メモリを備えたＩＣカードでは、当該ＩＣカードの発行（流通）後でも、アプリケーションの追加が可能である。書き換え可能な不揮発性メモリには、例えばＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory）が用いられる。また、ＩＣカードと当該ＩＣカード外の電子機器（外部装置）との間のデータ通信には、例えばＡＰＤＵ（Application Protocol Data Unit）と呼ばれるデータ形式の通信データが用いられる。ＡＰＤＵは１６進数のデータ列である（例えば、非特許文献１参照）。
【０００３】
現在流通しているＩＣカードでは、データは単に羅列された状態でメモリに記憶されるだけである。つまり、現在のＩＣカードでは、データはデータベース形式で管理・保持されるようにはなっていない。また、現在のＩＣカードの記憶容量は、パーソナルコンピュータ等に比べると非常に小さい。このため、例えばＩＣカード内のアプリケーションが当該ＩＣカードに記憶されているデータを取得したい場合、データ記憶形式が上述のように単なるデータの羅列でしかなくても、そのデータ名を直接記述するなどの手法により、当該データにアクセスできる。
【０００４】
【非特許文献１】
「ＪＩＣＳＡＰ  ＩＣカード仕様  Ｖ2.0  第３部  共通コマンド」，ＩＣカードシステム利用促進協議会，平成１３年７月，ｐ．４８−１１４
【０００５】
【発明が解決しようとする課題】
上記したように、現在流通しているＩＣカードの記憶容量は非常に小さいため、当該ＩＣカードでのデータ記憶形式が単なるデータの羅列でしかなくても、ＩＣカードに記憶されている所望のデータに、そのデータ名を直接記述する手法でアクセスできる。
【０００６】
しかし、近い将来ＩＣカードの大容量化が実現された場合、上記データの羅列というデータ記憶形式では、所望のデータにアクセスすることは極めて困難となる。そこで、ＩＣカードにおいても、大量のデータをリレーショナルデータベース等のデータベースにより管理・保持することが考えられる。このようなデータベースにアクセスするための汎用の（標準化された）データベース言語として、例えばＳＱＬが知られている。ところが、ＩＣカードと当該ＩＣカード外の電子機器との間のデータ通信にＡＰＤＵが用いられることから、例えば当該電子機器内のアプリケーション（ＩＣカード外のアプリケーション）からＩＣカード内のデータベースに、データベースアクセス処理を要求するデータベース要求文であるＳＱＬ文（ＳＱＬ要求文）を使用してアクセスすることはできない。同様の理由により、ＩＣカード内のアプリケーションからＩＣカード外のデータベースにＳＱＬ文（ＳＱＬ要求文）を使用してアクセスすることはできない。
【０００７】
本発明は上記事情を考慮してなされたものでその目的は、ＩＣカード内またはＩＣカード外のアプリケーションから、ＩＣカード内またはＩＣカード外のデータベースに汎用データベース言語で記述されたデータベース要求文を使用してアクセスすることができるＩＣカード及び同ＩＣカードを利用したデータベースアクセス方法を提供することにある。
【０００８】
【課題を解決するための手段】
本発明はかかる課題を解決するものであり、請求項１に係る発明は、オペレーティングシステムの管理のもとで、外部装置との間で所定形式の通信データの授受が可能なＩＣカードであって、汎用データベース言語で記述されたデータベース要求文に従うデータベースアクセス処理が可能なデータベース機構と、前記外部装置上で実行されるアプリケーションソフトウェアからデータベースアクセス処理を要求する汎用データベース言語で記述されたデータベース要求文が発行された結果、前記外部装置から前記ＩＣカードに対し当該データベース要求文により示されるデータベースアクセス処理を要求する通信データが送信された場合、当該通信データを前記オペレーティングシステムを介して受け取り、当該通信データにより示されるデータベースアクセス処理を要求する汎用データベース言語で記述されたデータベース要求文を用いて、前記データベース機構によるデータベースアクセス処理を行わせるインタフェースとを具備するＩＣカードであることを特徴とする。
【０００９】
請求項２に係る発明は、請求項１に記載のＩＣカードにおいて、前記インタフェースが、前記オペレーティングシステムを介して受け取った通信データを解釈する解釈手段と、前記通信データがデータベースアクセス処理を要求する通信データであると前記解釈手段により解釈された場合、当該通信データを、当該通信データにより示されるデータベースアクセス処理を要求する汎用データベース言語で記述されたデータベース要求文に変換する通信データ／データベース要求文変換手段と、前記通信データ／データベース要求文変換手段により変換されたデータベース要求文を前記データベース機構に渡して当該データベース要求文に従うデータベースアクセス処理を行わせるデータベースアクセス手段とを備えていることを特徴とする。
【００１０】
請求項３に係る発明は、請求項２に記載のＩＣカードにおいて、汎用データベース言語で記述される各種データベース命令と、前記ＩＣカードと前記外部装置との間で授受される通信データに利用可能な、当該命令を定義するデータとの対応関係を登録したテーブルを更に具備し、前記通信データ／データベース要求文変換手段は、前記テーブルに基づいて、前記通信データを対応するデータベース要求文に変換することを特徴とする。
【００１１】
請求項４に係る発明は、請求項１に記載のＩＣカードにおいて、前記データベース機構からデータベースアクセス処理の結果を通知するための汎用データベース言語で記述されたデータベース応答文が返された場合、前記インタフェースが、当該応答文により通知されるデータベースアクセス処理の結果を示す通信データを前記オペレーティングシステムを介して前記外部装置に返すことを特徴とする。
【００１２】
請求項５に係る発明は、請求項４に記載のＩＣカードにおいて、前記インタフェースが、前記データベース機構からデータベースアクセス処理の結果を通知するための汎用データベース言語で記述されたデータベース応答文が返された場合、当該応答文を、当該応答文により通知されるデータベースアクセス処理の結果を示す通信データに変換するデータベース応答文／通信データ変換手段と、前記データベース応答文／通信データ変換手段により変換された通信データを前記オペレーティングシステムを介して前記外部装置に返す応答手段とを備えていることを特徴とする。
【００１３】
請求項６に係る発明は、請求項５に記載のＩＣカードにおいて、汎用データベース言語で記述される各種データベース命令と、前記ＩＣカードと前記外部装置との間で授受される通信データに利用可能な、当該命令を定義するデータとの対応関係を登録したテーブルを更に具備し、前記データベース応答文／通信データ変換手段は、前記テーブルに基づいて、前記データベース応答文を対応する通信データに変換することを特徴とする。
【００１４】
請求項７に係る発明は、オペレーティングシステムの管理のもとで、汎用データベース言語で記述されたデータベース要求文に従うデータベースアクセス処理が可能なデータベース機構を備えた外部装置との間で、所定形式の通信データの授受が可能なＩＣカードであって、前記ＩＣカード上で実行されるアプリケーションソフトウェアから前記外部装置の前記データベース機構によるデータベースアクセス処理を要求する汎用データベース言語で記述されたデータベース要求文が発行された場合、当該データベース要求文により示されるデータベースアクセス処理を要求する通信データを前記オペレーティングシステムを介して前記外部装置に送信することにより、当該通信データにより示されるデータベースアクセス処理を前記データベース機構に要求する汎用データベース言語で記述されたデータベース要求文に変換させるインタフェースを具備するＩＣカードであることを特徴とする。
【００１５】
請求項８に係る発明は、請求項７に記載のＩＣカードにおいて、前記データベース機構によるデータベースアクセス処理の結果を通知するための汎用データベース言語で記述されたデータベース応答文に対応する通信データが前記外部装置から前記ＩＣカードに返された場合、前記インタフェースが当該通信データを前記オペレーティングシステムを介して受け取り、当該通信データに対応する汎用データベース言語で記述されたデータベース応答文を前記データベース要求文の発行元のアプリケーションソフトウェアに渡すことを特徴とする。
【００１６】
請求項９に係る発明は、請求項１または請求項７に記載のＩＣカードにおいて、前記インタフェースが、前記ＩＣカード上で実行されるアプリケーションソフトウェアから前記オペレーティングシステムの提供する機能を利用可能とするためのアプリケーション・プログラム・インタフェースであることを特徴とする。
【００１７】
請求項１０に係る発明は、アプリケーションソフトウェアの実行が可能なＩＣカードであって、汎用データベース言語で記述されたデータベース要求文に従うデータベースアクセス処理が可能なデータベース機構と、前記ＩＣカード上で実行されるアプリケーションソフトウェアから前記データベース機構によるデータベースアクセス処理を要求する汎用データベース言語で記述されたデータベース要求文が発行された場合、当該データベース要求文を受け取って前記データベース機構に渡すインタフェースとを具備するＩＣカードであることを特徴とする。
【００１８】
請求項１１に係る発明は、オペレーティングシステムの管理のもとで、外部装置との間で所定形式の通信データの授受が可能なＩＣカードを利用したデータベースアクセス方法であって、前記外部装置上で実行されるアプリケーションソフトウェアから前記ＩＣカードに設けられたデータベースアクセス機構によるデータベースアクセス処理を要求する汎用データベース言語で記述されたデータベース要求文が発行された場合、当該データベース要求文を、当該データベース要求文により示されるデータベースアクセス処理を要求する通信データに変換するステップと、前記変換された通信データを前記外部装置から前記ＩＣカードに送信するステップと、前記外部装置から前記ＩＣカードに送信された通信データがデータベースアクセス処理を要求する通信データの場合、当該通信データを、当該通信データにより示されるデータベースアクセス処理を要求する汎用データベース言語で記述されたデータベース要求文に変換するステップと、前記変換されたデータベース要求文を用いて、前記データベース機構によるデータベースアクセス処理を行わせるステップとを具備するＩＣカードを利用したデータベースアクセス方法であることを特徴とする。
【００１９】
請求項１２に係る発明は、オペレーティングシステムの管理のもとで、外部装置との間で所定形式の通信データの授受が可能なＩＣカードを利用したデータベースアクセス方法であって、前記ＩＣカード上で実行されるアプリケーションソフトウェアから前記外部装置に設けられたデータベースアクセス機構によるデータベースアクセス処理を要求する汎用データベース言語で記述されたデータベース要求文が発行された場合、当該データベース要求文を、当該データベース要求文により示されるデータベースアクセス処理を要求する通信データに変換するステップと、前記変換された通信データを前記ＩＣカードから前記外部装置に送信するステップと、前記ＩＣカードから前記外部装置に送信された通信データがデータベースアクセス処理を要求する通信データの場合、当該通信データを、当該通信データにより示されるデータベースアクセス処理を要求する汎用データベース言語で記述されたデータベース要求文に変換するステップと、前記変換されたデータベース要求文を用いて、前記データベース機構によるデータベースアクセス処理を行わせるステップとを具備するＩＣカードを利用したデータベースアクセス方法であることを特徴とする。
【００２０】
請求項１または請求項１１に係る発明において、ＩＣカード内のインタフェースは、外部装置上で実行されるアプリケーションソフトウェアからデータベース要求文が発行された結果、外部装置からＩＣカードに対して送られる当該データベース要求文により示されるデータベースアクセス処理を要求する通信データを受け取ると、当該通信データにより示されるデータベースアクセス処理を要求するデータベース要求文を用いて、データベース機構によるデータベースアクセス処理を行わせる。
【００２１】
このようなＩＣカード内のインタフェースの機能により、外部装置上で動作するアプリケーションソフトウェアは、汎用データベース言語で記述されたデータベース要求文を用いてＩＣカード内のデータベース機構（に設けられたデータベース）に簡単にアクセスできる。しかもＩＣカードは携帯性に優れているため、持ち運び可能な可搬型データベースを提供できる。また、ＩＣカードは内部にＣＰＵを備えているので、通信データを暗号化、復号化できるため、セキュリティ性の高いデータベースを実現できる。更に、汎用データベース言語、例えばＳＱＬを利用した技術（ＳＱＬ技術）は、多くのソフトウェア技術者にとって非常になじみのある技術である。したがって、ソフトウェア開発者は、ＩＣカード特有の知識、例えば通信データなどについて知らなくても、データベースを利用したソフトウェアを開発できる。
【００２２】
請求項２に係る発明においては、外部装置から送られた通信データがデータベースアクセス処理を要求する通信データであるとインタフェース内の解釈手段により解釈された場合、当該通信データが対応するデータベース要求文にインタフェース内の通信データ／データベース要求文変換手段により変換されてデータベース機構に渡される。このＩＣカード内のインタフェースが有する通信データ／データベース要求文変換機能により、外部装置とＩＣカードとの間では所定形式の通信データを授受しながら、データベース機構を何ら変更することなく、汎用データベース言語（により記述されたデータベース要求文）を用いてのデータベースアクセス処理が実現できる。
【００２３】
請求項３に係る発明においては、通信データ／データベース要求文変換手段による通信データからデータベース要求文への変換が、テーブルを参照することにより簡単に実現できる。
【００２４】
請求項４に係る発明においては、ＩＣカード内のデータベース機構から当該ＩＣカード内のインタフェースにデータベース応答文が返された場合、当該応答文により通知されるデータベースアクセス処理の結果を示す通信データが、上記インタフェースからオペレーティングシステムを介して外部装置に返される。このようなインタフェースの機能により、データベース機構でのデータベースアクセス処理の結果を、データベースアクセス処理の要求元である外部装置に通知することが可能となる。
【００２５】
請求項５に係る発明においては、データベース機構からインタフェースにデータベース応答文が返された場合、当該応答文が、当該応答文により通知されるデータベースアクセス処理の結果を示す通信データに、データベース応答文／通信データ変換手段によって変換され、その変換された通信データが応答手段によりオペレーティングシステムを介して外部装置に返される。このＩＣカード内のインタフェースのデータベース応答文／通信データ変換機能により、外部装置とＩＣカードとの間では所定形式の通信データを授受しながら、データベース機構による汎用データベース言語（により記述されたデータベース応答文）を用いてのデータベースアクセス処理結果の通知が実現できる。
【００２６】
請求項６に係る発明においては、データベース応答文／通信データ変換手段によるデータベース応答文から通信データへの変換が、テーブルを参照することにより簡単に実現できる。
【００２７】
請求項７または請求項１２に係る発明において、ＩＣカード内のインタフェースは、当該ＩＣカード上で実行されるアプリケーションソフトウェアから外部装置のデータベース機構によるデータベースアクセス処理を要求するデータベース要求文が発行された場合、当該データベース要求文により示されるデータベースアクセス処理を要求する通信データをオペレーティングシステムを介して上記外部装置に送信することにより、当該通信データにより示されるデータベースアクセス処理を上記データベース機構に要求するデータベース要求文に変換させる。
【００２８】
このようなＩＣカード内のインタフェースの機能により、当該ＩＣカード上で動作するアプリケーションソフトウェアは、汎用データベース言語で記述されたデータベース要求文を用いて外部装値のデータベース機構（に設けられたデータベース）に簡単にアクセスできる。
【００２９】
請求項８に係る発明においては、外部装置のデータベース機構によるデータベースアクセス処理の結果を通知するためのデータベース応答文に対応する通信データが上記外部装置からＩＣカードに返された場合、当該通信データに対応するデータベース応答文が、ＩＣカード内のインタフェースによりデータベース要求文の発行元のアプリケーションソフトウェアに渡される。このようなインタフェースの機能により、ＩＣカード外のデータベース機構でのデータベースアクセス処理の結果を、データベースアクセス処理の要求元である、ＩＣカード上で動作するアプリケーションソフトウェアに通知することが可能となる。
【００３０】
請求項９に係る発明においては、上記インタフェースが、ＩＣカード上で実行されるアプリケーションソフトウェアからオペレーティングシステムの提供する機能を利用可能とするためのＡＰＩ（アプリケーション・プログラム・インタフェース）により簡単に実現される。
【００３１】
請求項１０に係る発明においては、ＩＣカード上で実行されるアプリケーションソフトウェアからＩＣカード内のデータベース機構によるデータベースアクセス処理を要求するデータベース要求文が発行された場合、当該データベース要求文がインタフェースによりデータベース機構に渡される。このようなＩＣカード内のインタフェースの機能により、ＩＣカード上で動作するアプリケーションソフトウェアは、汎用データベース言語で記述されたデータベース要求文を用いて当該ＩＣカード内のデータベース機構（に設けられたデータベース）に簡単にアクセスできる。
【００３２】
【発明の実施の形態】
以下、本発明の実施の形態につき図面を参照して説明する。
【００３３】
［第１の実施形態］
図１は本発明の第１の実施形態に係るＩＣカードの構成を示すブロック図である。
図１において、ＩＣカード１は、データベース機構１０とＳＱＬＡＰＩ（ＳＱＬアプリケーション・プログラム・インタフェース）１２とを備えている。データベース機構１０は、リレーショナルデータベースに代表されるデータベース１１を含む。データベース機構１０はまた、データベース１１を管理するデータベース管理システム（図示せず）を含む。データベース機構１０は、外部からデータベースアクセス処理を要求する汎用データベース言語で記述されたデータベース要求文、例えばＳＱＬで記述されたＳＱＬ要求を表すＳＱＬ文（即ちＳＱＬ要求文）が与えられた場合、データベース管理システム（ＤＢＭＳ）の機能により、そのＳＱＬ文の指定に従ってデータベース１１にアクセスするデータベースアクセス処理を実行する。また、データベース機構１０は、データベースアクセス処理の結果を通知するための汎用データベース言語で記述されたデータベース応答文、例えばＳＱＬで記述されたＳＱＬ応答を表すＳＱＬ文（即ちＳＱＬ応答文）を要求元に返す。
【００３４】
ＳＱＬＡＰＩ１２は、ＩＣカード１に格納されているアプリケーションプログラム（以下、アプリケーションと略称する）、例えばアプリケーション２０-1及び２０-2から後述するＯＳ２１１（図２参照）の提供する機能を利用可能とするためのアプリケーション・プログラム・インタフェースである。ＳＱＬＡＰＩ１２はまた、アプリケーション２０-1及び２０-2とデータベース機構１０とのインタフェースをなす。ＳＱＬＡＰＩ１２は、アプリケーション２０-i（i=1,2）からデータベース１１にアクセスするためのＳＱＬ文（ＳＱＬ要求文）が発行された場合、そのＳＱＬ文に従うデータベースアクセス処理をデータベース機構１０に行わせる機能を有する。ＳＱＬＡＰＩ１２はまた、上記データベースアクセス処理の結果（ＳＱＬ応答）を表すＳＱＬ文（ＳＱＬ応答文）をデータベース機構１０から受け取った場合、そのＳＱＬ文を要求元（ＳＱＬ文の発行元）であるアプリケーション２０-iに返す機能も有する。
【００３５】
図２は、図１のＩＣカード１のハードウェア構成を示すブロック図である。
本実施形態において、ＩＣカード１は非接触ＩＣカードである。図２に示すように、ＩＣカード１は、ＲＯＭ（Read Only Memory）２１と、ＥＥＰＲＯＭ２２と、ＲＡＭ（Random Access Memory）２３と、ＣＰＵ２４と、通信インタフェース２５と、アンテナ２６とから構成される。ＲＯＭ２１には、基本ソフトウエアであるＯＳ（オペレーティングシステム）２１１と図１中のＳＱＬＡＰＩ１２とが予め格納されている。ＥＥＰＲＯＭ２２には、図１中のデータベース１１とアプリケーション２０-1，２０-2が格納されている。アプリケーション２０-1，２０-2は、外部からダウンロードされたアプリケーションソフトウェア（応用ソフトウェア）である。ＲＡＭ２３の領域は、ＣＰＵ２４のワーク領域等に用いられる。ＣＰＵ２４は、ＯＳ２１１に従ってアプリケーション２０-1または２０-2を実行する。ＣＰＵ２４は、通信インタフェース２５及びアンテナ２６を介して外部の装置との間でデータの入出力を行う。この外部の装置との間で入出力されるデータの形式にはＡＰＤＵが用いられる。
【００３６】
次に、第１の実施形態の動作について、図３のシーケンスチャートを参照して説明する。
今、ＩＣカード１において、当該ＩＣカード１に格納されているアプリケーション、例えばアプリケーション２０-1が実行中であり、データベース１１からデータを検索したいものとする。この場合、アプリケーション２０-1は目的のデータを検索するのに必要なＳＱＬ文（ＳＱＬ要求文）を生成して、ＳＱＬＡＰＩ１２に対して発行する（ステップＳ１，Ｓ２）。ＳＱＬＡＰＩ１２はアプリケーション２０-1により発行されたＳＱＬ文を受け取ると、解釈手段として機能して当該ＳＱＬ文を解釈する（ステップＳ３）。ＳＱＬＡＰＩ１２は、受け取ったＳＱＬ文がＳＱＬ要求を示すＳＱＬ文（即ちＳＱＬ要求文）の場合にデータベースアクセス手段として機能し、当該ＳＱＬ文をデータベース機構１０に渡して、当該ＳＱＬ文に従うデータベースアクセス処理を行わせる（ステップＳ４）。
【００３７】
するとデータベース機構１０は、この例のようにＳＱＬ文によりデータ検索が指定されている場合であれば、当該ＳＱＬ文により指定される条件に合致するデータをデータベース１１から検索するための処理（データベースアクセス処理）を実行する（ステップＳ５）。なお、ＳＱＬ文によりデータベース１１への新規データ登録またはデータ更新が指定されているならば、データベース機構１０は、当該新規データ登録またはデータ更新のためのデータベースアクセス処理を実行する。
【００３８】
データベース機構１０は、データベースアクセス処理の最終的な結果（ここでは検索結果）を取得すると、当該結果を通知するためのＳＱＬ文（ＳＱＬ応答文）を生成し、そのＳＱＬ文をＳＱＬＡＰＩ１２に渡す（ステップＳ６，Ｓ７）。ＳＱＬＡＰＩ１２は、データベース機構１０から渡されたＳＱＬ文を解釈し、この例のようにデータベースアクセス処理の結果を通知するためのＳＱＬ文の場合、当該ＳＱＬ文をＳＱＬ要求元のアプリケーション２０-1に返す（ステップＳ８，Ｓ９）。
【００３９】
以上の説明から明らかなように、本実施形態においては、ＩＣカード１内に、データベース１１を含むデータベース機構１０が設けられる。ＩＣカード１内にはまた、このデータベース機構１０とアプリケーション２０-i（i=1,2）とのインタフェースをなすＳＱＬＡＰＩ１２も設けられる。このＳＱＬＡＰＩ１２は、アプリケーション２０-iからＳＱＬ要求文が発行された場合、当該ＳＱＬ要求文に従うデータベースアクセス処理をデータベース機構１０により行わせ、その処理結果を通知するＳＱＬ応答文をデータベース機構１０から受け取ると、当該ＳＱＬ応答文を要求元のアプリケーション２０-iに渡す。このように本実施形態によれば、ＩＣカード１に格納（ダウンロード）されているアプリケーション２０-iは、データベースアクセスに標準的に用いられているＳＱＬ文を利用して、ＩＣカード１内に構築されているデータベース１１にアクセスできる。またデータベース１１への新規登録またはデータ更新のためのＳＱＬ文を利用することにより、データベース１１を構築することが可能となる。
【００４０】
［第２の実施形態］
図４は本発明の第２の実施形態に係るＩＣカード１を含むデータベースアクセスシステムの構成を示すブロック図である。なお、図１または図２と同様の部分には便宜的に同一参照符号を付してある。
【００４１】
本発明の第２の実施形態の特徴は、ＩＣカード１の外部の装置（以下、カード外装置と称する）４で実行されるアプリケーションソフトウェア（以下、カード外ソフトウェアと称する）４１からＩＣカード１内のデータベース１１にアクセスすることが可能な構成を適用している点にある。
【００４２】
そのため、図４に示すカード外装置４には、ＳＱＬＡＰＩ（ＳＱＬアプリケーション・プログラム・インタフェース）４２が設けられている。このＳＱＬＡＰＩ（以下、カード外ＳＱＬＡＰＩと称する）４２は、カード外ソフトウェア４１とＩＣカード１（内のデータベース１１）とのインタフェースをなす。カード外ＳＱＬＡＰＩ４２は、カード外ソフトウェア４１からＩＣカード１内のデータベース１１にアクセスするためのＳＱＬ文、即ちＳＱＬ要求文が発行された場合、そのＳＱＬ要求文を、ＩＣカード１との間で通信可能なデータ形式の通信データに変換する機能を有する。このＳＱＬ要求文をＳＱＬ文（要求）と表現することもある。本実施形態では、通信データの形式にＡＰＤＵが用いられる。そこで、本実施形態で適用される通信データを、ＡＰＤＵ形式の通信データと呼ぶこともある。カード外ＳＱＬＡＰＩ４２はまた、ＩＣカード１から、データベースアクセス処理の結果を通知するための通信データが返された場合に、その通信データを、当該データベースアクセス処理の結果を通知するためのＳＱＬで記述されたＳＱＬ文、即ちＳＱＬ応答文に変換する機能も有する。このＳＱＬ応答文をＳＱＬ文（応答）と表現することもある。
【００４３】
一方、ＩＣカード１には、前記第１の実施形態と同様に、データベース１１を含むデータベース機構１０と、ＳＱＬＡＰＩ１２と、ＯＳ２１１とが設けられている。ＯＳ２１１は、メモリ管理、入出力管理など周知のシステム管理機能を有する。ＯＳ２１１は、カード外装置４のカード外ＳＱＬＡＰＩ４２からＳＱＬ要求に関する通信データが送られた場合、そのデータをＳＱＬＡＰＩ１２に渡す入力管理を行う。ＯＳ２１１はまた、ＳＱＬＡＰＩ１２からデータベースアクセス処理結果の応答に関する通信データを渡された場合、その通信データをカード外装置４に送信する出力管理を行う。
【００４４】
ＳＱＬＡＰＩ１２は、ＯＳ２１１からＳＱＬ要求に関する通信データを渡された場合、その通信データをデータベース１１にアクセスするためのＳＱＬ文（ＳＱＬ応答文）に変換する機能を有する。ＳＱＬＡＰＩ１２はまた、変換されたＳＱＬ文に従うデータベースアクセス処理をデータベース機構１０に行わせる機能を有する。ＳＱＬＡＰＩ１２はまた、データベースアクセス処理の結果を通知するためのＳＱＬ文（ＳＱＬ応答文）をデータベース機構１０から受け取った場合、当該ＳＱＬ文を通信データに変換する機能を有する。
【００４５】
ＳＱＬＡＰＩ１２及びカード外ＳＱＬＡＰＩ４２は、それぞれ、上記の変換のためのテーブル１２０及び４２０を有している。図５はテーブル１２０（４２０）のデータ構造例を示す。
【００４６】
図５に示すように、テーブル１２０（４２０）の各エントリは、ＳＱＬ命令（キーワード）が設定されるフィールドＦ１と当該ＳＱＬ命令（キーワード）を定義する１６進表現のデータが設定されるフィールドＦ２との組（対）から構成される。ここでは、ＳＱＬ命令を定義する１６進表現のデータのサイズは１バイトである。図５中における１６進表現のデータの記述０xＹＺは、ＹＺが１６進表現であることを示す。このテーブル１２０（４２０）を参照することで、ＳＱＬ命令（キーワード）から、（通信データに利用可能な）対応する１６進表現のデータへの変換と、（通信データに含まれている）ＳＱＬ命令（キーワード）を表す１６進表現のデータから当該ＳＱＬ命令（キーワード）への変換とが可能となる。
【００４７】
図６（ａ）は、本実施形態で適用されるＡＰＤＵ形式の通信データの基本的なデータフォーマットを示す。図６（ｂ）は、ＳＱＬ文の授受のために用いられるＡＰＤＵ形式の通信データのフォーマットを示す。
【００４８】
本実施形態で適用される通信データは、図６（ａ）に示すように、ヘッダ部６１とデータ部６２とから構成される。ヘッダ部６１は、５バイトで構成される。ヘッダ部６１の先頭バイト６１１は該当する通信データが属するクラス（種類）を表す。ヘッダ部６１の最終バイト６１２はデータ部６２の長さ（データ長）を表す。ここでは、データ長はバイト数で表される。ヘッダ部６１の他のバイトについては本実施形態と直接関係しないため説明を省略する。
【００４９】
通信データに含まれているヘッダ部６１のバイト６１１に、図６（ｂ）に示すように所定のタグＴＡＧSQLk（ｋ＝１，２…であり、図ではＴＡＧSQL1）が設定されている場合、当該通信データは、ＳＱＬ文の授受のために用いられる、ＡＰＤＵ形式の通信データであることを示す。上記バイト６１１に設定可能なタグＴＡＧSQLkは、複数種類用意されている。このタグＴＡＧSQLkの種類により、対応する通信データが、データベースアクセス処理を要求するためのＳＱＬ文、つまりＳＱＬ要求文に対応するものであるか（ＴＡＧSQL1の場合）、或いはデータベースアクセス処理の結果を通知するためのＳＱＬ文、つまりＳＱＬ応答文に対応するものであるか（ＴＡＧSQL2の場合）等が示される。明らかなように、図６（ｂ）は、ＳＱＬ要求文に対応する通信データのフォーマット例を示す。
【００５０】
図６（ｂ）に示す通信データのデータ部６２は、ｎ個（ｎは通信データ毎に決定される１以上の整数）の部分データ部（サブデータ部）６２-1〜６２-nから構成される。部分データ部６２-i（ｉ＝１〜ｎ）は、当該部分データ部６２-iを含む通信データがＳＱＬ要求文に対応するものである場合、ＳＱＬ命令フィールド６２１、データ長フィールド６２２及び情報フィールド６２３から構成される。部分データ部６２-i中のＳＱＬ命令フィールド６２１は、ＳＱＬ命令（キーワード）＃ｉに対応する１６進表現のデータを設定するのに用いられる。データ長フィールド６２２は、情報フィールド６２３のデータ長（バイト数）を表す１６進表現のデータを設定するのに用いられる。情報フィールド６２３は、データ長フィールド６２２で示されるデータ長の情報（１６進表現のデータ）を設定するのに用いられる。なお、ＳＱＬ応答文に対応する通信データの場合、部分データ部６２-iはデータ長フィールド６２２及び情報フィールド６２３から構成され、ＳＱＬ命令フィールド６２１を含まない。
【００５１】
次に、図４の構成における動作について、図７乃至図１５を適宜参照して説明する。なお、図７及び図８は、カード外装置４内のカード外ソフトウェア４１からＩＣカード１内のデータベース１１にアクセスする際の動作を説明するためのシーケンスチャートである。また、図９はＳＱＬ要求文を通信データに変換する処理を説明するためのフローチャート、図１０は通信データをＳＱＬ要求文に変換する処理を説明するためのフローチャートである。また、図１１はＳＱＬ応答文を通信データに変換する処理を説明するためのフローチャート、図１２は通信データをＳＱＬ応答文に変換する処理を説明するためのフローチャートである。また、図１３はＳＱＬ要求文と当該ＳＱＬ要求文から変換される通信データ及び当該通信データの構成要素の具体例を示す図、図１４はデータベース５１に格納されているテーブルのデータ構造例を示す図、図１５はＳＱＬ応答文と当該ＳＱＬ応答文から変換される通信データ及び当該通信データの構成要素の具体例を示す図である。
【００５２】
まず、カード外装置４上でカード外ソフトウェア４１が実行中であり、ＩＣカード１内に構築されているデータベース１１からデータを検索したいものとする。この場合、カード外ソフトウェア４１は目的のデータを検索するのに必要なＳＱＬ文、即ちＳＱＬ要求文を作成して、カード外ＳＱＬＡＰＩ４２に対して発行する（ステップＳ１１，Ｓ１２）。カード外ＳＱＬＡＰＩ４２はカード外ソフトウェア４１により発行されたＳＱＬ文を受け取ると解釈手段として機能し、当該ＳＱＬ文を解釈する（ステップＳ１３）。カード外ＳＱＬＡＰＩ４２は、受け取ったＳＱＬ文がＳＱＬ要求文であると解釈できた場合にはＳＱＬ要求文（データベース要求文）／通信データ変換手段として機能し、当該ＳＱＬ文をＳＱＬ要求のためのＡＰＤＵ形式の通信データに変換する変換処理（ステップＳ１４）を、次のように実行する。
【００５３】
まず、カード外ＳＱＬＡＰＩ４２がカード外ソフトウェア４１から受け取ったＳＱＬ文（ＳＱＬ要求文）が、図１３（ａ）に示すように、
SELECT name FROM Table5 WHERE age=30
であるものとする。この例のＳＱＬ要求文は、１番目のＳＱＬ命令（キーワード）＃１＝“SELECT”及び当該ＳＱＬ命令＃１と対をなす情報＃１＝“name”からなる１番目の句（フレーズ）＃１と、２番目のＳＱＬ命令＃２＝“FROM”及び当該ＳＱＬ命令＃２と対をなす情報＃２＝“Table5”（テーブルＩＤ＝５を示す情報）からなる２番目の句＃２と、３番目のＳＱＬ命令＃３＝“WHERE”及び当該ＳＱＬ命令＃３と対をなす情報＃３＝“age=30”からなる３番目の句＃３とから構成される。上記各情報“name”“Table5”“age=30”は、いずれもＡＳＣＩＩコードで表されている。
【００５４】
カード外ＳＱＬＡＰＩ４２は、変数ｉを値１に初期設定する（ステップＳ１４ａ）。次にカード外ＳＱＬＡＰＩ４２は、ＳＱＬ要求文から、当該ＳＱＬ要求文に含まれているｉ番目のＳＱＬ命令（キーワード）＃ｉを取り出す（ステップＳ１４ｂ）。
【００５５】
次にカード外ＳＱＬＡＰＩ４２は、取り出されたＳＱＬ命令＃ｉ（ｉ＝１のこの例では、ＳＱＬ命令＃１）をキーとしてテーブル４２０を参照する（ステップＳ１４ｃ）。これによりカード外ＳＱＬＡＰＩ４２は、ＳＱＬ命令＃ｉに対応する１６進表現のデータを取得する（ステップＳ１４ｄ）。つまりカード外ＳＱＬＡＰＩ４２は、ＳＱＬ命令＃ｉを対応する１６進表現のデータに変換する。
【００５６】
図１３（ａ）に示すＳＱＬ要求文の場合、ＳＱＬ命令＃１は“SELECT”である。この場合、図５のテーブル４２０の例から明らかなように、ＳＱＬ命令＃１＝“SELECT”に対応する１６進表現データとして０xＡ０が取得される（図１３（ｃ）参照）。
【００５７】
カード外ＳＱＬＡＰＩ４２は、ＳＱＬ命令＃ｉに対応する１６進表現データを取得すると、ＳＱＬ要求文からＳＱＬ命令＃ｉと対をなす情報（ＡＳＣＩＩコード）＃ｉを取り出す（ステップＳ１４ｅ）。カード外ＳＱＬＡＰＩ４２は、取り出されたＡＳＣＩＩコード表現の情報＃ｉを１６進表現のデータ＃ｉに変換する（ステップＳ１４ｆ）。図１３（ａ）に示すＳＱＬ要求文の場合、ＳＱＬ命令＃ｉ＝ＳＱＬ命令＃１＝“SELECT”と対をなす情報は“name”である。この場合、“name”は、図１３（ｅ）に示すように、“０ｘ６Ｅ ０ｘ６１ ０ｘ６Ｄ ０ｘ６５”の４バイトからなるデータ＃ｉ＝データ＃１に変換される。このデータ＃ｉ＝データ＃１のデータ長＃ｉ＝データ長＃１は４バイトであり、１６進表現では図１３（ｄ）に示すように“０ｘ０４”である。
【００５８】
次にカード外ＳＱＬＡＰＩ４２は、ＳＱＬ要求文に対応する通信データ中のｉ番目の部分データ部６２-iを生成する（ステップＳ１４ｇ）。この部分データ部６２-iは、ステップＳ１４ｄで変換されたＳＱＬ命令＃ｉの１６進表現のデータが設定された２バイトのＳＱＬ命令フィールド６２１と、ステップＳ１４ｆで変換されたデータ＃ｉのデータ長＃ｉ（１６数表現）が設定された２バイトのデータ長フィールド６２２と、当該データ＃ｉ（１６数表現）が設定された情報フィールド６２３とから構成される。
【００５９】
次にカード外ＳＱＬＡＰＩ４２は、ＳＱＬ要求文の末尾まで処理したか否かを判定する（ステップＳ１４ｈ）。もし、ＳＱＬ要求文の末尾まで処理していないなら、カード外ＳＱＬＡＰＩ４２は、変数ｉを１だけインクリメントする（ステップＳ１４ｉ）。そしてカード外ＳＱＬＡＰＩ４２は、上記ステップＳ１４ｂから始まる処理をＳＱＬ文の末尾まで繰り返す。
【００６０】
これにより、図１３（ａ）に示すＳＱＬ要求文の例では、当該ＳＱＬ要求文に対応する通信データの部分データ部６２-2に設定されるＳＱＬ命令＃２、データ長＃２及びデータ＃２として、図１３（ｆ），（ｇ）及び（ｈ）に示すように、それぞれ、“FROM”を表す１６進表現データ０ｘ７０、１バイトを表す１６進表現データ“０ｘ０１”及びテーブルＩＤ（テーブル番号）＝“５”を表す１６進表現データ“０ｘ３５”が取得される。同様に、上記ＳＱＬ要求文に対応する通信データの部分データ部６２-3に設定される、ＳＱＬ命令＃３、データ長＃３及びデータ＃３として、図１３（ｉ），（ｊ）及び（ｋ）に示すように、それぞれ、“WHERE”を表す１６進表現データ“０ｘ８０”、６バイトを表す１６進表現データ“０ｘ０６”及び“age=30”を表す１６進表現データ“０ｘ６１ ０ｘ６７ ０ｘ６５ ０ｘ３Ｄ ０ｘ３３ ０ｘ３０”が取得される。
【００６１】
やがて、ＳＱＬ要求文の末尾まで処理し終えたなら（ステップＳ１４ｈ）、カード外ＳＱＬＡＰＩ４２は、当該ＳＱＬ要求文に対応する通信データのヘッダ部６１を生成する（ステップＳ１４ｊ）。このヘッダ部６１の先頭バイト６１１には、図１３（ｂ）に示すように、ＳＱＬ要求文に対応する通信データであることを表すタグＴＡＧSQL1（１６進表現データ“０ｘ５０”）が設定される。また、ヘッダ部６１の最終バイト６１２には、ステップＳ１４ｇの繰り返しにより生成された数の部分データ部を合わせた総バイト数（データ長）を示す情報が設定される。次にカード外ＳＱＬＡＰＩ４２は、ステップＳ１４ｊで生成されたヘッダ部６１と、ステップＳ１４ｇの繰り返しにより生成された部分データ部６２-1〜６２-i（ここではｉ＝３）からなるデータ部６２とから構成される通信データを生成する（ステップＳ１４ｋ）。即ちカード外ＳＱＬＡＰＩ４２は、カード外ソフトウェア４１から受け取った図１３（ａ）に示すＳＱＬ要求文を、図１３（ｌ）に示す通信データに変換する（ステップＳ１４）。
【００６２】
カード外ＳＱＬＡＰＩ４２は、カード外ソフトウェア４１から受け取ったＳＱＬ要求文を通信データに変換すると、当該通信データをＩＣカード１に送信する（ステップＳ１５）。ＩＣカード１内のＯＳ２１１は、入出力管理機能によりカード外ＳＱＬＡＰＩ４２から送信された通信データを受け取ると、解釈手段として機能して、当該通信データのヘッダ部６１の先頭バイト６１１から当該通信データの種類を判別する。本実施形態のように、通信データのヘッダ部６１の先頭バイト６１１にＴＡＧSQL1（１６進表現データ“０ｘ５０”）が設定されている場合、ＯＳ２１１は当該通信データがＳＱＬ要求文に対応する通信データ、即ちＳＱＬ要求の通信データであると判別する。この場合、ＯＳ２１１は、受け取った通信データをＩＣカード１内のＳＱＬＡＰＩ１２に渡す（ステップＳ１６）。
【００６３】
ＳＱＬＡＰＩ１２はＯＳ２１１から通信データを受け取ると、解釈手段として機能して、当該通信データのヘッダ部６１の先頭バイト６１１の内容をもとに当該通信データを解釈する（ステップＳ１７）。ＳＱＬＡＰＩ１２は、受け取った通信データがＳＱＬ要求文に対応する通信データであると解釈できた場合には通信データ／ＳＱＬ要求文（データベース要求文）変換手段として機能し、当該通信データをＳＱＬ要求文に変換するための変換処理（ステップＳ１８）を、次のように実行する。
【００６４】
まずＳＱＬＡＰＩ１２は、変数ｉを値１に初期設定する（ステップＳ１８ａ）。次にＳＱＬＡＰＩ１２は、通信データから、当該通信データに含まれている、ｉ番目の部分データ部６２-iの２バイトのＳＱＬ命令フィールド６２１に設定されているデータ、つまりＳＱＬ命令（キーワード）＃ｉの１６進表現データを取り出す（ステップＳ１８ｂ）。
【００６５】
次にＳＱＬＡＰＩ１２は、取り出された１６進表現データをキーとしてテーブル１２０を参照する（ステップＳ１８ｃ）。これによりＳＱＬＡＰＩ１２は、取り出された１６進表現データに対応するＳＱＬ命令＃ｉを取得する（ステップＳ１８ｄ）。つまりＳＱＬＡＰＩ１２は、取り出された１６進表現データを対応するＳＱＬ命令＃ｉに変換する。図１３（ｌ）に示す通信データの例では、部分データ部６２-i＝部分データ部６２-1のＳＱＬ命令フィールド６２１に設定されている１６進表現データは“０ｘＡ０”である。この場合、図５のテーブル１２０の例から明らかなように、“０ｘＡ０”に対応するＳＱＬ命令＃１として“SELECT”が取得される。
【００６６】
ＳＱＬＡＰＩ１２は、ＳＱＬ命令＃ｉを取得すると、通信データから、当該通信データに含まれているｉ番目の部分データ部６２-iの情報フィールド６２３に設定されている１６進表現データ＃ｉを取り出す（ステップＳ１８ｅ）。このデータ＃ｉのデータ長は、部分データ部６２-iの２バイトのデータ長フィールド６２２で指定される。
【００６７】
次にＳＱＬＡＰＩ１２は、取り出された１６進表現データ＃ｉを、ＳＱＬで使用されるコード（即ちＡＳＣＩＩコード）で表現された情報＃ｉに変換する（ステップＳ１８ｆ）。図１３（ｌ）に示す通信データの例では、部分データ部６２-i＝部分データ部６２-1の情報フィールド６２３に設定されている１６進表現データは“０ｘ６Ｅ ０ｘ６１ ０ｘ６Ｄ ０ｘ６５”である。この場合、情報＃１として、“０ｘ６Ｅ ０ｘ６１ ０ｘ６Ｄ ０ｘ６５”に対応する“name”が取得される。
【００６８】
次にＳＱＬＡＰＩ１２は、ステップＳ１８ｄで取得したＳＱＬ命令＃ｉとステップＳ１８ｆで取得した情報＃ｉとの対から構成される、ＳＱＬ要求文のｉ番目の句＃ｉを生成する（ステップＳ１８ｇ）。ｉ＝１のこの例では、ＳＱＬ命令＃１＝“SELECT”と情報＃１＝“name”との対から構成される句＃１が生成される。
【００６９】
次にＳＱＬＡＰＩ１２は、通信データの末尾まで処理したか否かを判定する（ステップＳ１８ｈ）。もし、通信データの末尾まで処理していないなら、ＳＱＬＡＰＩ１２は、変数ｉを１だけインクリメントする（ステップＳ１８ｉ）。そしてＳＱＬＡＰＩ１２は、上記ステップＳ１８ｂから始まる処理を通信データの末尾まで繰り返す。
【００７０】
これにより、図１３（ｌ）に示す通信データの例では、当該通信データの部分データ部６２-2の設定内容をもとに、ＳＱＬ命令＃２＝“FROM”と情報＃２＝“Table5”との対から構成される句＃２が生成される。同様に、部分データ部６２-3の設定内容をもとに、ＳＱＬ命令＃２＝“WHERE”と情報＃３＝“age=30”との対から構成される句＃３が生成される。
【００７１】
やがて、通信データの末尾まで処理し終えたなら（ステップＳ１８ｈ）、ＳＱＬＡＰＩ１２は、ステップＳ１８ｇの繰り返しにより生成された句＃１〜＃ｉから構成されるＳＱＬ要求文を生成（復元）する（ステップＳ１８ｊ）。即ちＳＱＬＡＰＩ１２は、ＯＳ２１１から受け取った、カード外ＳＱＬＡＰＩ４２から送られた図１３（ｌ）に示す通信データを、図１３（ａ）に示すＳＱＬ要求文に変換（復元）する（ステップＳ１８）。
【００７２】
ＳＱＬＡＰＩ１２は、ＯＳ２１１から受け取った通信データをＳＱＬ要求文に変換すると、データベースアクセス手段として機能して、当該ＳＱＬ要求文をＩＣカード１内のデータベース機構１０に渡すことにより、当該ＳＱＬ要求文に従うデータベースアクセス処理を行わせる（ステップＳ１９）。これによりデータベース機構１０は、データベース管理システムの機能により、ＳＱＬＡＰＩ１２から渡されたＳＱＬ要求文の指定に従ってデータベース１１にアクセスするデータベースアクセス処理を実行する（ステップＳ２０）。図１３（ａ）に示すＳＱＬ要求文の例では、データベース１１に格納されている、テーブルＩＤが“５”（Table5）のテーブル（表）から、年齢（age）が３０歳の人の名前（name）を検索（SELECT）するためのデータベースアクセス処理が行われる。ここで、テーブルＩＤが“５”のテーブルが図１４に示すようになっているものとする。この場合、図１３（ａ）に示すＳＱＬ要求文に従うデータベースアクセス処理により、当該処理の結果（検索結果）として、“ＴＡＮＡＫＡ”及び“ＹＡＭＡＤＡ”が得られる。
【００７３】
データベース機構１０は、データベースアクセス処理を実行すると、当該データベースアクセス処理の結果をもとに、当該結果を通知するためのＳＱＬ文、即ちＳＱＬ応答文を生成する（ステップＳ２１）。ここでは、図１５（ａ）に示すように、検索された“ＴＡＮＡＫＡ”及び“ＹＡＭＡＤＡ”の各情報と、その情報間に挿入されるカンマ（“，”）とから構成されるＳＱＬ応答文“ＴＡＮＡＫＡ，ＹＡＭＡＤＡ”が生成される。カンマは、情報の区切りを表す。
【００７４】
データベース機構１０は、生成されたＳＱＬ応答文を、ＳＱＬＡＰＩ１２からのＳＱＬ要求文に対する応答を表すＳＱＬ文として、当該ＳＱＬＡＰＩ１２に返す（ステップＳ２２）。ＳＱＬＡＰＩ１２は、データベース機構１０から返されたＳＱＬ文を受け取ると、解釈手段として機能して当該ＳＱＬ文を解釈する（ステップＳ２３）。ＳＱＬＡＰＩ１２は、受け取ったＳＱＬ文がＳＱＬ応答文であると解釈できた場合にはＳＱＬ応答文（データベース応答文）／通信データ変換手段として機能し、当該ＳＱＬ文をＳＱＬ応答のためのＡＰＤＵ形式の通信データに変換するための変換処理（ステップＳ２４）を、次のように実行する。
【００７５】
まずＳＱＬＡＰＩ１２は、変数ｉ，ｊをいずれも値１に初期設定する（ステップＳ２４ａ）。次にＳＱＬＡＰＩ１２は、ＳＱＬ応答文から、ｉ番目のカンマを探す（ステップＳ２４ｂ）。
【００７６】
もし、ｉ番目のカンマが検出できたならば（ステップＳ２４ｃ）、ＳＱＬＡＰＩ１２は、ＳＱＬ応答文中に含まれている、ｊ番目の文字位置からｉ番目のカンマの直前の文字位置までの文字列（即ちＳＱＬ応答文中のｉ番目の情報を表す文字列）を取り出す（ステップＳ２４ｄ）。これに対し、ｉ番目のカンマが検出できなかったならば（ステップＳ２４ｃ）、ＳＱＬＡＰＩ１２は、ＳＱＬ応答文中に含まれている、ｊ番目の文字位置以降の全文字列（即ちＳＱＬ応答文中の最後の情報を表す文字列）を取り出す（ステップＳ２４ｅ）。図１５（ａ）に示すＳＱＬ応答文の例では、ｉ，ｊが共に１の場合、１番目のカンマが検出され、１番目の文字位置から１番目のカンマの直前の文字位置までの文字列“ＴＡＮＡＫＡ”が取り出される。
【００７７】
ＳＱＬＡＰＩ１２は、ステップＳ２４ｄまたはＳ２４ｅで取り出された文字列を１６進表現のデータ＃ｉに変換する（ステップＳ２４ｆ）。次にＳＱＬＡＰＩ１２は、データ＃ｉをもとに、ＳＱＬ応答文に対応する通信データの部分データ部６２-iを生成する（ステップＳ２４ｇ）。この部分データ部６２-iは、取得されたデータ＃ｉのデータ長が１６進数で表されたデータ長＃ｉ（が設定されるデータ長フィールド６２２）及び当該データ＃ｉ（が設定される情報フィールド６２３）から構成される。この例のようにｉ，ｊが共に１の場合、データ＃ｉ＝データ＃１は、図１５（ｄ）に示すように、名前“ＴＡＮＡＫＡ”を示す１６進表現データ“０ｘ５４ ０ｘ４１ ０ｘ４Ｅ ０ｘ４１ ０ｘ４Ｂ ０ｘ４１”である。また、データ長＃１は、図１５（ｃ）に示すように、６バイトを示す１６進表現データ“０ｘ０６”である。
【００７８】
次にＳＱＬＡＰＩ１２は、ＳＱＬ応答文の末尾まで処理したか否かを判定する（ステップＳ２４ｈ）。もし、ＳＱＬ応答文の末尾まで処理していないなら、ＳＱＬＡＰＩ１２は、変数ｉを１だけインクリメントすると共に、変数（文字位置ポインタ）ｊを、最新のステップＳ２４ｂで検出されたカンマの次の文字位置を示すように更新する（ステップＳ２４ｉ）。そしてＳＱＬＡＰＩ１２は、上記ステップＳ２４ｂから始まる処理をＳＱＬ応答文の末尾まで繰り返す。
【００７９】
これにより、図１５（ａ）に示すＳＱＬ応答文の例では、当該ＳＱＬ応答文に対応する通信データの部分データ部６２-2に設定されるデータ長＃２及びデータ＃２として、それぞれ図１５（ｅ）及び（ｆ）に示すように、６バイトを表す１６進表現データ“０ｘ０６”及び文字列“ＹＡＭＡＤＡ”を示す１６進表現データ“０ｘ５９ ０ｘ４１ ０ｘ４Ｄ ０ｘ４１ ０ｘ４４ ０ｘ４１”が取得される。
【００８０】
やがて、ＳＱＬ応答文の末尾まで処理し終えたなら（ステップＳ２４ｈ）、ＳＱＬＡＰＩ１２は、当該ＳＱＬ応答文に対応する通信データのヘッダ部６１を生成する（ステップＳ２４ｊ）。このヘッダ部６１の先頭バイト６１１には、図１５（ｂ）に示すように、ＳＱＬ応答文に対応する通信データであることを表すタグＴＡＧSQL2（１６進表現データ“０ｘ４０”）が設定される。また、ヘッダ部６１の最終バイト６１２には、ステップＳ２４ｇの繰り返しにより生成された数の部分データ部を合わせた総バイト数（データ長）を示す情報が設定される。
【００８１】
次にＳＱＬＡＰＩ１２は、ステップＳ２４ｊで生成されたヘッダ部６１と、ステップＳ２４ｇの繰り返しにより生成された部分データ部６２-1〜６２-i（ここではｉ＝２）からなるデータ部６２とから構成される通信データを生成する（ステップＳ２４ｋ）。即ちＳＱＬＡＰＩ１２は、データベース機構１０から受け取った図１５（ａ）に示すＳＱＬ応答文を、図１５（ｇ）に示す通信データに変換する（ステップＳ２４）。
【００８２】
ＳＱＬＡＰＩ１２は、データベース機構１０から受け取ったＳＱＬ応答文を通信データに変換すると応答手段として機能し、当該通信データをＯＳ２１１に渡す（ステップＳ２５）。ＯＳ２１１は、ＳＱＬＡＰＩ１２から渡された通信データを受け取ると解釈手段として機能し、当該通信データのヘッダ部６１の先頭バイト６１１から当該通信データの種類を判別する。本実施形態のように、通信データのヘッダ部６１の先頭バイト６１１にＴＡＧSQL2（１６進表現データ“０ｘ４０”）が設定されている場合、ＯＳ２１１は当該通信データがＳＱＬ応答文に対応する通信データ、即ちＳＱＬ応答の通信データであると判別する。この場合、ＯＳ２１１は応答手段として機能し、受け取った通信データをカード外装置４内のカード外ＳＱＬＡＰＩ４２に送出する（ステップＳ２６）。
【００８３】
カード外ＳＱＬＡＰＩ４２は、ＯＳ２１１から送出された通信データを受け取ると解釈手段として機能し、当該通信データのヘッダ部６１の先頭バイト６１１の内容をもとに当該通信データを解釈する（ステップＳ２７）。カード外ＳＱＬＡＰＩ４２は、受け取った通信データがＳＱＬ応答文に対応する通信データであると解釈できた場合には通信データ／ＳＱＬ応答文（データベース応答文）変換手段として機能し、当該通信データをＳＱＬ応答文に変換するための変換処理（ステップＳ２８）を、次のように実行する。
【００８４】
まずカード外ＳＱＬＡＰＩ４２は、変数ｉを値１に初期設定する（ステップＳ２８ａ）。次にカード外ＳＱＬＡＰＩ４２は、通信データから、当該通信データに含まれている、ｉ番目の部分データ部６２-iの情報フィールド６２３に設定されている１６進表現データ＃ｉを取り出す（ステップＳ２８ｂ）。次にカード外ＳＱＬＡＰＩ４２は、取り出された１６進表現データ＃ｉを、ＳＱＬで使用されるコード（即ちＡＳＣＩＩコード）で表現された情報＃ｉに変換する（ステップＳ２８ｆ）。図１５（ｇ）に示す通信データの例では、部分データ部６２-i＝部分データ部６２-1の情報フィールド６２３に設定されている１６進表現データは“０ｘ６Ｅ ０ｘ６１ ０ｘ６Ｄ ０ｘ６５”である。この場合、情報＃１として、“０ｘ６Ｅ ０ｘ６１ ０ｘ６Ｄ ０ｘ６５”に対応する“ＴＡＮＡＫＡ”が取得される。
【００８５】
次にカード外ＳＱＬＡＰＩ４２は、通信データの末尾まで処理したか否かを判定する（ステップＳ２８ｄ）。もし、通信データの末尾まで処理していないなら、カード外ＳＱＬＡＰＩ４２は、変数ｉを１だけインクリメントする（ステップＳ２８ｅ）。そしてカード外ＳＱＬＡＰＩ４２は、上記ステップＳ２８ｂから始まる処理を通信データの末尾まで繰り返す。
【００８６】
これにより、図１５（ｇ）に示す通信データの例では、当該通信データに含まれている部分データ部６２-2中のデータ長フィールド６２２及び情報フィールド６２３の設定内容をもとに、情報（データ）＃２＝“ＹＡＭＡＤＡ”が取得される。
【００８７】
やがて、通信データの末尾まで処理し終えたなら（ステップＳ２８ｄ）、カード外ＳＱＬＡＰＩ４２は、ステップＳ２８ｃの繰り返しにより生成された情報＃１〜＃ｉと、各情報間に挿入されるカンマとから構成されるＳＱＬ応答文を生成（復元）する（ステップＳ２８ｆ）。即ちカード外ＳＱＬＡＰＩ４２は、ＩＣカード１内のＳＱＬＡＰＩ１２からＯＳ２１１を介して送られた図１５（ｇ）に示す通信データを、図１５（ａ）に示すＳＱＬ応答文に変換（復元）する（ステップＳ２８）。
【００８８】
カード外ＳＱＬＡＰＩ４２は、ＩＣカード１内のＳＱＬＡＰＩ１２からＯＳ２１１を介して送られた通信データをＳＱＬ応答文に変換すると、当該ＳＱＬ応答文を、ＳＱＬ要求文の発行元であるカード外ソフトウェア４１に渡す（ステップＳ２９）。このようにカード外ソフトウェア４１は、ＳＱＬ要求文によりＩＣカード１内のデータベース１１にアクセスして、そのデータベースアクセス結果であるＳＱＬ応答文を受け取ることができる。
【００８９】
［第３の実施形態］
図１６は本発明の第３の実施形態に係るＩＣカード１を含むデータベースアクセスシステムの構成を示すブロック図である。なお、図１または図４と同様の部分には便宜的に同一参照符号を付してある。
【００９０】
図１６に示すように、カード外装置４はデータベース機構５０を備えている。データベース機構５０は、リレーショナルデータベースに代表されるデータベース５１を含む。
【００９１】
第３の実施形態の特徴は、ＩＣカード１で実行されるアプリケーション２０-i（ここではアプリケーション２０-1）からカード外装置４内のデータベース５１１にアクセスすることが可能な構成を適用している点にある。この、アプリケーション２０-1からカード外装置４内のデータベース５１１にアクセスする際の動作は、ＩＣカード１内のＳＱＬＡＰＩ１２とカード外装置４内のカード外ＳＱＬＡＰＩ４２との役割が逆になる点を除けば、前記第２の実施形態とほぼ同様である。
【００９２】
以下、図１６の構成において、ＩＣカード１内のアプリケーション２０-1からカード外装置４内のデータベース５１にアクセスする際の動作について簡単に説明する。
【００９３】
まず、ＩＣカード１上でアプリケーション２０-1が実行中であり、カード外装置４内に構築されているデータベース５１からデータを検索したいものとする。この場合、アプリケーション２０-1は目的のデータを検索するのに必要なＳＱＬ要求文を作成して、ＳＱＬＡＰＩ１２に対して発行する。するとＳＱＬＡＰＩ１２は解釈手段として機能して、このＳＱＬ要求文を解釈する。ＳＱＬＡＰＩ１２は、アプリケーション２０-1により発行されたＳＱＬ要求文を受け取った場合、ＳＱＬ要求文（データベース要求文）／通信データ変換手段として機能して、当該ＳＱＬ要求文を図９のフローチャートに示す手順で通信データに変換する。この通信データはＳＱＬＡＰＩ１２からＯＳ２１１に渡される。ＯＳ２１１は、ＳＱＬＡＰＩ１２から渡された通信データをカード外装置４に送信する。
【００９４】
カード外装置４内のカード外ＳＱＬＡＰＩ４２は、ＩＣカード１内のＯＳ２１１から送られた通信データを受け取ると解釈手段として機能して、当該通信データを解釈する。カード外ＳＱＬＡＰＩ４２は、この通信データがＳＱＬ要求文に対応するものであると判定すると、通信データ／ＳＱＬ要求文（データベース要求文）変換手段として機能し、当該通信データを図１０のフローチャートに示す手順でＳＱＬ要求文に変換（復元）する。すると、カード外ＳＱＬＡＰＩ４２はデータベースアクセス手段として機能して、このＳＱＬ要求文をデータベース機構５０に渡すことにより、当該ＳＱＬ要求文に従うデータベースアクセス処理を行わせる。
【００９５】
データベース機構１０によるデータベースアクセス処理が完了すると、そのデータベースアクセス処理の結果を通知するためのＳＱＬ応答文が、データベース機構１０からカード外ＳＱＬＡＰＩ４２に渡される。カード外ＳＱＬＡＰＩ４２はデータベース機構１０からＳＱＬ応答文を受け取ると、解釈手段として機能して当該ＳＱＬ応答文を解釈する。カード外ＳＱＬＡＰＩ４２はＳＱＬ応答文を受け取った場合、ＳＱＬ応答文（データベース応答文）／通信データ変換手段として機能し、当該ＳＱＬ応答文を図１１のフローチャートに示す手順で通信データに変換する。カード外ＳＱＬＡＰＩ４２は、この通信データをＩＣカード１に送信する。
【００９６】
ＩＣカード１内のＯＳ２１１は、カード外ＳＱＬＡＰＩ４２から送られた通信データがＳＱＬ応答文に対応するものである場合、当該通信データをＳＱＬＡＰＩ１２に渡す。ＳＱＬＡＰＩ１２はＯＳ２１１から通信データを受け取ると、解釈手段として機能して当該通信データを解釈する。ＳＱＬＡＰＩ１２は、ＳＱＬ応答文に対応する通信データを受け取った場合には通信データ／ＳＱＬ応答文（データベース応答文）変換手段として機能し、当該通信データを図１２のフローチャートに示す手順でＳＱＬ応答文に変換（復元）する。ＳＱＬＡＰＩ１２は、このＳＱＱＬ応答文を、ＳＱＬ要求文の発行元であるアプリケーション２０-1に渡す。このように、ＩＣカード１内のアプリケーション２０-1は、カード外装置４内のデータベース５１にアクセスして、そのデータベースアクセス結果であるＳＱＬ応答文を受け取ることができる。
【００９７】
上記第１及び第３の実施形態では、ＩＣカード１上で実行されるアプリケーションが外部からダウンロードされたものとしている。しかし、このアプリケーションがＩＣカード１内のＲＯＭ２１またはＥＥＰＲＯＭ２２に予め格納されていてもよい。
【００９８】
また上記第２及び第３の実施形態では、ＩＣカード１とカード外装置４との間で授受される通信データの暗号化については言及されていない。しかし、この通信データを暗号化するならば、ＩＣカード１内のデータベース１１（第２の実施形態）またはカード外装置４内のデータベース５１（第３の実施形態）を、セキュリティの高いデータベースとすることができる。ここで、例えばＩＣカード１での通信データの暗号化処理は、当該ＩＣカード１に内蔵のＣＰＵ２４により実現可能である。
【００９９】
なお、本発明は、上記各実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【０１００】
【発明の効果】
以上詳述したように、請求項１または請求項１１に係る発明によれば、ＩＣカード内のインタフェースは、外部装置上で実行されるアプリケーションソフトウェアからデータベース要求文が発行された結果、外部装置からＩＣカードに対して送られる当該データベース要求文により示されるデータベースアクセス処理を要求する通信データを受け取ると、当該通信データにより示されるデータベースアクセス処理を要求するデータベース要求文を用いて、データベース機構によるデータベースアクセス処理を行わせるようにしたので、外部装置上で動作する（実行される）アプリケーションソフトウェアは、汎用データベース言語で記述されたデータベース要求文を用いてＩＣカード内のデータベース機構（に設けられたデータベース）に簡単にアクセスできる。
【０１０１】
次に、請求項２に係る発明によれば、ＩＣカード内のインタフェースが有する通信データ／データベース要求文変換機能により、外部装置とＩＣカードとの間では所定形式の通信データを授受しながら、データベース機構を何ら変更することなく、汎用データベース言語（により記述されたデータベース要求文）を用いてのデータベースアクセス処理が実現できる。
【０１０２】
次に、請求項３に係る発明によれば、通信データからデータベース要求文への変換が、テーブルを参照することにより簡単に実現できる。
【０１０３】
次に、請求項４に係る発明によれば、ＩＣカード内のデータベース機構によるデータベースアクセス処理の結果、当該データベース機構からＩＣカード内のインタフェースにデータベース応答文が返された場合、当該応答文により通知されるデータベースアクセス処理の結果を示す通信データを、上記インタフェースからオペレーティングシステムを介してデータベースアクセス処理の要求元である外部装置に返すようにしたので、データベース機構でのデータベースアクセス処理の結果を、当該外部装置に通知することができる。
【０１０４】
次に、請求項５に係る発明によれば、ＩＣカード内のインタフェースが有するデータベース応答文／通信データ変換機能により、外部装置とＩＣカードとの間では所定形式の通信データを授受しながら、データベース機構による汎用データベース言語（により記述されたデータベース応答文）を用いてのデータベースアクセス処理結果の通知が実現できる。
【０１０５】
次に、請求項６に係る発明によれば、データベース応答文から通信データへの変換が、テーブルを参照することにより簡単に実現できる。
【０１０６】
次に、請求項７または請求項１２に係る発明によれば、ＩＣカード内のインタフェースは、当該ＩＣカード上で実行されるアプリケーションソフトウェアから外部装置のデータベース機構によるデータベースアクセス処理を要求するデータベース要求文が発行された場合、当該データベース要求文により示されるデータベースアクセス処理を要求する通信データをオペレーティングシステムを介して上記外部装置に送信することにより、当該通信データにより示されるデータベースアクセス処理を上記データベース機構に要求するデータベース要求文に変換させるようにしたので、ＩＣカード上で動作するアプリケーションソフトウェアは、汎用データベース言語で記述されたデータベース要求文を用いて外部装値のデータベース機構（に設けられたデータベース）に簡単にアクセスできる。
【０１０７】
次に、請求項８に係る発明によれば、ＩＣカード内のインタフェースが有する通信データ／データベース応答文変換機能により、外部装置とＩＣカードとの間では所定形式の通信データを授受しながら、外部装置のデータベース機構でのデータベースアクセス処理の結果を、データベースアクセス処理の要求元である、ＩＣカード上で動作するアプリケーションソフトウェアに通知することができる。
【０１０８】
次に、請求項９に係る発明によれば、ＩＣカード上で実行されるアプリケーションソフトウェアからＩＣカード内のデータベース機構によるデータベースアクセス処理を要求するデータベース要求文が発行された場合、当該データベース要求文をインタフェースが上記データベース機構に渡すようにしたので、ＩＣカード上で動作するアプリケーションソフトウェアは、汎用データベース言語で記述されたデータベース要求文を用いて当該ＩＣカード内のデータベース機構（に設けられたデータベース）に簡単にアクセスできる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係るＩＣカードの構成を示すブロック図。
【図２】図１のＩＣカードのハードウェア構成を示すブロック図。
【図３】同第１の実施形態の動作を説明するためのシーケンスチャート。
【図４】本発明の第２の実施形態に係るＩＣカードを含むデータベースアクセスシステムの構成を示すブロック図。
【図５】図４中のＳＱＬＡＰＩ１２（カード外ＳＱＬＡＰＩ４２）が有するテーブル１２０（４２０）のデータ構造例を示す図。
【図６】同第２の実施形態で適用されるＡＰＤＵ形式の通信データの基本的なデータフォーマットと、ＳＱＬ文の授受のために用いられるＡＰＤＵ形式の通信データのフォーマットとを示す図。
【図７】同第２の実施形態において、カード外装置４内のカード外ソフトウェア４１からＩＣカード１内のデータベース１１にアクセスする際の動作を説明するためのシーケンスチャートの一部を示す図。
【図８】カード外装置４内のカード外ソフトウェア４１からＩＣカード１内のデータベース１１にアクセスする際の動作を説明するためのシーケンスチャートの残りを示す図。
【図９】図７中のステップＳ１４の処理（ＳＱＬ要求文を通信データに変換する処理）を説明するためのフローチャート。
【図１０】図７中のステップＳ１８の処理（通信データをＳＱＬ要求文に変換する処理）を説明するためのフローチャート。
【図１１】図８中のステップＳ２４の処理（ＳＱＬ応答文を通信データに変換する処理）を説明するためのフローチャート。
【図１２】図８中のステップＳ２８の処理（通信データをＳＱＬ応答文に変換する処理）を説明するためのフローチャート。
【図１３】ＳＱＬ要求文と当該ＳＱＬ要求文から変換される通信データ及び当該通信データの構成要素の具体例を示す図。
【図１４】データベース５１に格納されているテーブルのデータ構造例を示す図。
【図１５】ＳＱＬ応答文と当該ＳＱＬ応答文から変換される通信データ及び当該通信データの構成要素の具体例を示す図。
【図１６】本発明の第３の実施形態に係るＩＣカードを含むデータベースアクセスシステムの構成を示すブロック図。
【符号の説明】
１…ＩＣカード
４…カード外装置
１０，５０…データベース機構
１１，５１…データベース
１２…ＳＱＬＡＰＩ
１２０，４２０…テーブル
２０-1，２０-2…アプリケーション（アプリケーションソフトウェア）
２１…ＲＯＭ
２２…ＥＥＰＲＯＭ
２４…ＣＰＵ
４１…カード外ソフトウェア（アプリケーションソフトウェア）
４２…カード外ＳＱＬＡＰＩ
【図１】
2004206277.tif 000003
【図２】
2004206277.tif 000004
【図３】
2004206277.tif 000005
【図４】
2004206277.tif 000006
【図５】
2004206277.tif 000007
【図６】
2004206277.tif 000008
【図７】
2004206277.tif 000009
【図８】
2004206277.tif 000010
【図９】
2004206277.tif 000011
【図１０】
2004206277.tif 000012
【図１１】
2004206277.tif 000013
【図１２】
2004206277.tif 000014
【図１３】
2004206277.tif 000015
【図１４】
2004206277.tif 000016
【図１５】
2004206277.tif 000017
【図１６】
2004206277.tif 000018