JP2007114855A - Information processor, method for controlling information processor, and program - Google Patents

Information processor, method for controlling information processor, and program Download PDF

Info

Publication number
JP2007114855A
JP2007114855A JP2005303116A JP2005303116A JP2007114855A JP 2007114855 A JP2007114855 A JP 2007114855A JP 2005303116 A JP2005303116 A JP 2005303116A JP 2005303116 A JP2005303116 A JP 2005303116A JP 2007114855 A JP2007114855 A JP 2007114855A
Authority
JP
Japan
Prior art keywords
query
pseudonym
data
correspondence table
database
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005303116A
Other languages
Japanese (ja)
Other versions
JP4672518B2 (en
Inventor
Yoshinori Sato
嘉則 佐藤
Toyohisa Morita
豊久 森田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2005303116A priority Critical patent/JP4672518B2/en
Publication of JP2007114855A publication Critical patent/JP2007114855A/en
Application granted granted Critical
Publication of JP4672518B2 publication Critical patent/JP4672518B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To allow a database to be transparently treated for an application in a database system where a storage medium for storing the correspondence between real name data and false name data may be accessible and inaccessible. <P>SOLUTION: This information processor is connected to a database 111 in which a real name table and a false name table are stored, and configured to read a correspondence table from a storage medium 205 in which a correspondence table 206 of real name data and false name data is recorded, and to decide whether the correspondence table 206 can be accessed, and to receive a query to be executed for the database 111, and to decide whether or not it is necessary to associate the real name data with the false name data for executing the received query, and to convert the received query into a new query based on the correspondence table 206 when it is necessary to associate the real name with the false name, and the correspondence table 206 is accessible, and to transmit the new query to the database 111. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明は、電子化された個人情報を取り扱う技術に関し、データを実名データと偽名データとに分けてデータベースに管理する技術に関する。   The present invention relates to a technique for handling computerized personal information, and relates to a technique for managing data in a database by dividing the data into real name data and pseudonym data.

昨今、プライバシー保護への社会的要請が高まっており、個人情報を取り扱う企業の情報システムにおいては、プライバシーへの配慮が不可欠となっている。個人情報とは、個人に関する情報であり、氏名、生年月日その他の記述等により特定の個人を識別する事ができる情報と、これらの情報と照合できるその他の情報がある。保護すべき個人情報やその在り方については、まだ社会通念として充分に定まってはいないものの、個人情報取扱事業者にとって、少なくとも2005年4月に全面施行された、いわゆる個人情報保護法や関係法令を遵守することが必須となっている。   In recent years, social demands for privacy protection are increasing, and privacy is indispensable in information systems of companies that handle personal information. Personal information is information relating to an individual, and includes information that can identify a specific individual by name, date of birth, and other descriptions, and other information that can be collated with these information. Although personal information to be protected and its state have not yet been fully established as a social convention, the so-called Personal Information Protection Law and related laws and regulations that have been fully enforced at least in April 2005 for personal information handling businesses It is essential to comply.

個人情報保護法では、個人情報を収集、蓄積、利用し、管理責任を持つ主体である個人情報取扱事業者に対し、個人情報によって識別される特定の個人である情報主体に開示した利用目的に沿って個人情報を取り扱うことを定めている。すなわち、個人情報保護法によれば、個人情報を機密情報と見做して予期せぬ漏洩に備えるだけでなく、さらに個人情報を適正に利用するための措置も求められる。   According to the Personal Information Protection Act, personal information is collected, stored, used, and personal information handling business owners who are responsible for management are disclosed for the purpose of disclosure to information subjects that are specific individuals identified by personal information. It is stipulated that personal information is handled along the way. That is, according to the Personal Information Protection Law, not only is personal information regarded as confidential information, but also prepared for an unexpected leak, further measures for appropriately using personal information are required.

情報処理システムとして個人情報保護法の上記要請に対応するための手法として、例えば、非特許文献1に記載の技術では、個人情報と実名との関連性を切り離す事により、購買履歴や口座取引のようなトランザクションが情報主体と関連付けて利用される機会を制約するようにしている。具体的には、データベース中の個人情報のテーブルを、実名データを格納した実名テーブルと、偽名データを格納した偽名テーブルとに分割して管理し、各テーブルに格納されている同一の情報主体に関するレコードに対して異なるID(識別子)を付与する。なお、実名データとは、特定の個人を識別可能な電子データであり、また偽名データとは、実名データと照合できるその他の電子データである。   As a technique for responding to the above request of the Personal Information Protection Act as an information processing system, for example, in the technology described in Non-Patent Document 1, by separating the relationship between personal information and real names, purchasing history and account transaction Such transactions are restricted from being used in association with information subjects. Specifically, the personal information table in the database is divided and managed into a real name table storing real name data and a pseudo name table storing pseudonym data, and related to the same information subject stored in each table Different IDs (identifiers) are assigned to the records. The real name data is electronic data that can identify a specific individual, and the pseudonym data is other electronic data that can be collated with real name data.

非特許文献1に記載の技術では、実名データのID(以下、実名IDという。)と偽名データのID(以下、偽名IDという。)との対応表を、ICカードなどのデータベースの外部のセキュアデバイスに隔離する。すなわち、セキュアデバイス中のID対応表によって、同一の情報主体の実名データと偽名データとの結合処理が、データベースの外から制御される。またID対応表がセキュアデバイスの外に露顕(漏洩)してしまった場合には、ID対応表やデータベース中の偽名IDを書き換えることにより、ID対応表が不正に利用されるのを防ぐことができる。   In the technique described in Non-Patent Document 1, a correspondence table between real name data IDs (hereinafter referred to as real name IDs) and pseudonym data IDs (hereinafter referred to as pseudonym IDs) Isolate to device. That is, the combination processing of real name data and pseudonym data of the same information subject is controlled from outside the database by the ID correspondence table in the secure device. In addition, when the ID correspondence table is exposed (leaked) outside the secure device, the ID correspondence table and the pseudonym ID in the database are rewritten to prevent the ID correspondence table from being illegally used. it can.

ところで、RDB(Relational Database)を利用するアプリケーションの構築に際しては、ISO/IEC 9075:1992等に定義されたSQL(Structured Query Language)を用いるのが一般的である。SQLは、宣言型プログラミング言語であるのでプログラミングに際してはSQL文中に欲しいデータ集合を定義すれば良い。また、RDBを利用するアプリケーションの構築に際しては、ホスト名、データベース、テーブル、項目等のリソース名を含むデータの検索条件を指定してRDBからデータ集合を得るというように、データ集合を形成するための手続き的な処理そのものをRDBに任せてしまう事が多い。このため、非特許文献1に記載の技術を現実のシステムに適用する場合には、分割管理されているテーブルにアプリケーションが透過的にアクセスすることができるように、新たに分割されるテーブルの構造に合わせて処理手続きを修正する必要があり、テストや実装等による開発コストが発生してしまう。   By the way, when constructing an application using an RDB (Relational Database), it is general to use SQL (Structured Query Language) defined in ISO / IEC 9075: 1992 or the like. Since SQL is a declarative programming language, it is only necessary to define a desired data set in an SQL statement when programming. Also, when building an application that uses RDB, a data set is formed such that a data search condition including a host name, a database, a table, an item, and other resource names is specified and a data set is obtained from the RDB. In many cases, the procedural processing is left to the RDB. For this reason, when the technique described in Non-Patent Document 1 is applied to an actual system, the structure of a table that is newly divided so that the application can transparently access the table that is divided and managed. Therefore, it is necessary to modify the processing procedure in accordance with the development cost due to testing and implementation.

一方、特許文献1には、複数のRDBを、仮想的な一つのRDBとして見せかけるためのRDBの定義情報を記憶した辞書を備え、さらにアプリケーションが仮想RDBに対して発行するSQLプログラムを、実際のRDBに摘要するSQLプログラムに変換する技術が開示されており、非特許文献1に記載の技術における、実名テーブル、偽名テーブル、ID対応表を、分散RDBのテーブルと見做せる場合には、特許文献1に記載の技術によって分散RDBを仮想的な一つのRDBとしてアプリケーションに見せかけるようにすることができる。
佐藤嘉則、川崎明彦、森田豊久他:「リンカビリティ制御に基づいた個人情報管理システム」、情報処理学会 第30回CSEC研究発表会(電子情報通信学会ISEC・SITE合同開催)、岩手大学、2005.7.22 特許第2837525号公報
On the other hand, Patent Document 1 includes a dictionary storing RDB definition information for making a plurality of RDBs appear as one virtual RDB, and an SQL program issued by the application to the virtual RDB. A technique for converting to an SQL program required for RDB is disclosed. In the technique described in Non-Patent Document 1, a real name table, a pseudonym table, and an ID correspondence table can be regarded as a distributed RDB table. The distributed RDB can be made to appear to an application as one virtual RDB by the technique described in Document 1.
Yoshinori Sato, Akihiko Kawasaki, Toyohisa Morita et al .: “Personal information management system based on linkability control”, 30th CSEC presentation at Information Processing Society of Japan (ITEC / SITE joint holding), Iwate University, 2005.7. twenty two Japanese Patent No. 2837525

しかしながら、特許文献1に記載の技術は、通信路に障害がない限りは、各RDBが常にアプリケーションからアクセス可能な状態に置かれていることが前提になっており、非特許文献1に記載のID対応表のように、システムがID対応表にアクセスできる場合とできない場合とを区別して扱う場合については何ら考慮されていない。従って、特許文献1に記載の技術では、ID対応表が存在しない間は必ずしもアプリケーションに適切なデータを与える事ができない。また、ID対応表は、データベースとアプリケーションに対して秘匿されている必要があるが、特許文献1に記載の技術は、このような秘匿性のあるデータの存在を考慮して分散データを透過的に扱う技術については言及されていない。   However, the technique described in Patent Literature 1 is based on the assumption that each RDB is always accessible from an application unless there is a failure in the communication path. As in the ID correspondence table, no consideration is given to the case where the system can distinguish between the case where the system can access the ID correspondence table and the case where the system cannot access the ID correspondence table. Therefore, with the technique described in Patent Document 1, it is not always possible to give appropriate data to an application while there is no ID correspondence table. Further, the ID correspondence table needs to be kept secret from the database and the application. However, the technique described in Patent Document 1 is transparent to distributed data in consideration of the existence of such confidential data. There is no mention of the technology handled in

この発明は、このような課題に鑑みてなされたもので、個人データを実名テーブルと偽名テーブルとに分離してデータベースに管理し、実名データと偽名データとの対応表が記憶された記憶媒体がアクセス可能な場合とアクセス不可能な場合とがあるシステムにおいて、アプリケーションに対してデータを透過的に扱うことが可能な情報処理装置、情報処理装置の制御方法、及びプログラムを提供することを目的とする。   The present invention has been made in view of such problems. A storage medium in which personal data is separated into a real name table and a pseudonym table and managed in a database, and a correspondence table of real name data and pseudonym data is stored. An object of the present invention is to provide an information processing apparatus capable of transparently handling data with respect to an application, a control method for the information processing apparatus, and a program in a system in which access is possible and inaccessible. To do.

上記課題を解決するための本発明のうちの主たる発明は、情報処理装置であって、CPU及びメモリと、実名データを含む実名テーブル及び偽名データを含む偽名テーブルが格納されるデータベースに接続するインタフェースと、前記実名データと前記偽名データとの対応表が記録された記録媒体から前記対応表を読み出すインタフェースと、前記対応表へのアクセス可否を判定する状態判定部と、前記データベースに対して実行されるクエリーを受信するクエリー受信部と、受信した前記クエリーの実行に際し、前記実名データと前記偽名データとの対応づけが必要であるかどうかを判定するクエリー判定部と、前記対応づけが必要であると判定され、かつ、前記対応表にアクセス可能な状態である場合には、前記対応表に基づいて、受信した前記クエリーを新たなクエリーに変換するクエリー変換部と、前記クエリーを前記データベースに送信するインタフェースと、を有することとする。   A main invention of the present invention for solving the above-described problems is an information processing apparatus, which is an interface connected to a CPU and a memory, and a database storing a real name table including real name data and a pseudonym table including pseudonym data An interface for reading the correspondence table from a recording medium in which a correspondence table of the real name data and the pseudonym data is recorded, a state determination unit that determines whether or not the correspondence table can be accessed, and the database. A query receiving unit that receives the query, a query determination unit that determines whether the real name data and the pseudonym data need to be associated with each other when the received query is executed, and the association is necessary And when the correspondence table is accessible, the reception is performed based on the correspondence table. And query converter for converting the query to a new query with, and to have an interface for transmitting the query to the database.

本発明によれば、アプリケーションから受信したクエリーの実行に際し、実名データと偽名データとを対応づける必要があるかどうかを判断し、対応づける必要がある場合には、対応表に基づいて受信したクエリーを新たなクエリーに変換し、変換された新たなクエリーがデータベースに対して実行される。このため、対応表の存在有無に拘わらず、アプリケーションから受信したクエリーを実行することが可能となり、アプリケーションに対してデータベースを透過的に見せることができる。また、これによりデータベースを利用するアプリケーション側で実名データと偽名データの結合処理を実装する必要も無い。   According to the present invention, when executing the query received from the application, it is determined whether or not the real name data and the pseudonym data need to be associated with each other. Is converted to a new query, and the converted new query is executed against the database. Therefore, it is possible to execute a query received from an application regardless of the presence or absence of the correspondence table, and to make the database appear transparent to the application. In addition, this eliminates the need for implementing real name data and pseudonym data combining processing on the application side using the database.

本発明によれば、個人データを実名テーブルと偽名テーブルとに分離してデータベースに管理し、実名データと偽名データとの対応表が記憶された記憶媒体がアクセス可能な場合とアクセス不可能な場合とがあるシステムにおいて、データベースを利用するアプリケーションに対してデータベースを透過的に見せることができる。   According to the present invention, the personal data is separated into the real name table and the pseudonym table and managed in the database, and the storage medium storing the correspondence table of the real name data and the pseudonym data is accessible and inaccessible. In such a system, the database can be made transparent to an application using the database.

以下、本発明の実施形態について図面を参照しつつ詳細に説明する。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.

==実施例1==
図1Aに実施例1として説明する情報処理システム100の構成を示している。情報処理システム100には、通信ネットワーク201を介して通信可能に接続される、分割データベース管理部101、アプリケーション200(給与計算アプリケーション202、出勤記録集計アプリケーション203、出勤管理アプリケーション204)、ICカード205、及び、アプリケーション200によってアクセスされる実データベース111が含まれる。通信ネットワーク201は、例えば、TCP/IPによる通信が可能なネットワークである。図1Aに示す情報処理システム100が、例えば、クライアント/サーバ型のシステムとして構成される場合には、分割データベース管理部101は、サーバコンピュータにおいて実現される機能であり、アプリケーション200は、クライアントコンピュータにおいて実現される機能である。
== Example 1 ==
FIG. 1A shows the configuration of an information processing system 100 described as the first embodiment. The information processing system 100 is communicably connected to the information processing system 100 via the communication network 201, the divided database management unit 101, the application 200 (payroll calculation application 202, the attendance record counting application 203, the attendance management application 204), the IC card 205, In addition, a real database 111 accessed by the application 200 is included. The communication network 201 is a network capable of communication by TCP / IP, for example. When the information processing system 100 shown in FIG. 1A is configured as a client / server type system, for example, the divided database management unit 101 is a function realized in a server computer, and the application 200 is executed in a client computer. This is a function that is realized.

実データベース111は、所定のコンピュータで実行されるRDBMS(Relational DataBase Management System)によって管理されるRDB形式のデータベースである。ICカード205は、リーダ・ライタ装置等を介して通信ネットワーク201に通信可能に接続される可搬型の記録媒体である。ICカード205には、前述の実名データと偽名データとの対応関係を示したID対応表206が記録されている。ID対応表206は、分割データベース管理部101からのみアクセスできるように、暗号化や暗号化通信を行うことにより安全(セキュア)に管理されている。   The real database 111 is an RDB format database managed by an RDBMS (Relational DataBase Management System) executed on a predetermined computer. The IC card 205 is a portable recording medium that is communicably connected to the communication network 201 via a reader / writer device or the like. In the IC card 205, an ID correspondence table 206 indicating the correspondence between the real name data and the pseudonym data is recorded. The ID correspondence table 206 is managed safely by performing encryption or encrypted communication so that it can be accessed only from the divided database management unit 101.

図1Bは情報処理システム100の他の構成例である。同図に示す情報処理システム100の場合、実データベース111は通信ネットワーク201に直接接続されず、実データベース111は分割データベース管理部101が実現されているコンピュータに直接接続されている。すなわち、図1Bに示す情報処理システム100の場合には、通信ネットワーク201を通じて実データベース111に直接アクセスすることができないため、実データベース111をより安全に管理することができる。   FIG. 1B is another configuration example of the information processing system 100. In the case of the information processing system 100 shown in the figure, the real database 111 is not directly connected to the communication network 201, and the real database 111 is directly connected to the computer in which the divided database management unit 101 is realized. That is, in the case of the information processing system 100 shown in FIG. 1B, the real database 111 can be managed more safely because the real database 111 cannot be directly accessed through the communication network 201.

なお、図1A及び図1Bのいずれの構成においても、分散データベース管理部111は、アプリケーション200からの実データベース111へのアクセス要求を仲介するプロキシサーバ(代理サーバ)として機能している。また、アプリケーション200は、実データベース111にアクセスするための識別子として、分割データベース管理部101の識別子(ホスト名やIPアドレス等)を指定することにより、実データベース111にアクセスする。   1A and 1B, the distributed database management unit 111 functions as a proxy server (proxy server) that mediates an access request to the real database 111 from the application 200. The application 200 accesses the real database 111 by designating the identifier (host name, IP address, etc.) of the divided database management unit 101 as an identifier for accessing the real database 111.

図2は分割データベース管理部101、アプリケーション200、実データベース111、を実現するために用いられるコンピュータのハードウエア構成例である。同図に示すコンピュータ60は、CPU61、RAM・ROM等のメモリ62、ハードディスク63、データを入力するためのユーザインタフェースであるキーボードやマウス等の入力装置64、データを表示するためのユーザインタフェースである液晶ディスプレイやブラウン管ディスプレイ等の表示装置65、通信ネットワーク201に接続して通信するための通信インタフェース66などを有している。   FIG. 2 is a hardware configuration example of a computer used to realize the divided database management unit 101, the application 200, and the real database 111. A computer 60 shown in the figure is a CPU 61, a memory 62 such as a RAM / ROM, a hard disk 63, an input device 64 such as a keyboard and a mouse as a user interface for inputting data, and a user interface for displaying data. A display device 65 such as a liquid crystal display or a cathode ray tube display, a communication interface 66 for connecting to the communication network 201 for communication, and the like are included.

図3Aは分割データベース管理部101を中心とした情報処理システム100の具体的なソフトウエア構成である。分割データベース管理部101は、仮想データベースI/F部102(クエリー受信部)、クエリー変換部103(クエリー判定部、クエリー変換部)、ID対応表状態判定部104、ID対応表206の複製を記憶するID対応表キャッシュ部105(対応表記憶部)、ID攪乱部106、実データベースI/F部107等の機能を有する。なお、これらの機能は、コンピュータ60が有するハードウエアが備える機能や、CPU61がメモリ62やハードディスク63に記憶されているプログラムを実行することによって実現されている。   FIG. 3A shows a specific software configuration of the information processing system 100 centering on the divided database management unit 101. The divided database management unit 101 stores a copy of the virtual database I / F unit 102 (query receiving unit), the query conversion unit 103 (query determination unit, query conversion unit), the ID correspondence table state determination unit 104, and the ID correspondence table 206. ID correspondence table cache unit 105 (correspondence table storage unit), ID disturbance unit 106, real database I / F unit 107, and the like. Note that these functions are realized by the functions of the hardware included in the computer 60 and by the CPU 61 executing programs stored in the memory 62 and the hard disk 63.

図3Aに示すように、実データベース111には、従業員マスタ303、勤務記録304、及び勤務記録集計データ305が、テーブルとして格納されている。なお、従業員マスタ303は、前述した実名テーブルに相当するテーブルであり、勤務記録304及び勤務記録集計データ305は、いずれも前述した偽名テーブルに相当するテーブルである。実データベース111は、RDB形式のデータベースであるので、テーブルやビュー等のデータの集合はデータベースというリソースを単位として管理されている。本実施例では、従業員マスタ303、勤務記録304、勤務記録集計305が、「従業員」というリソース名を有するデータベースに格納されているものとする。   As shown in FIG. 3A, in the actual database 111, an employee master 303, work records 304, and work record summary data 305 are stored as tables. The employee master 303 is a table corresponding to the real name table described above, and the work record 304 and the work record total data 305 are both tables corresponding to the aforementioned pseudonym table. Since the actual database 111 is an RDB database, a set of data such as tables and views is managed in units of resources called databases. In this embodiment, it is assumed that the employee master 303, the work record 304, and the work record total 305 are stored in a database having the resource name “employee”.

一般にRDBMSは、ベンダごとに独自拡張機能や標準対応の程度に差異がある。また、アプリケーション200を記述している言語によっては、ソースコードに直接SQL文を記述できない場合もある。このような場合には、例えば、図3Bに示すように、アプリケーション200と分割データベース管理部101との間に、複数の異なるRDB(Relational Database)の機能を共通化/抽象化したDBミドルウェア901,902,903を介在させればよい。   In general, the RDBMS has a difference in the degree of unique extension function and standard correspondence for each vendor. Further, depending on the language in which the application 200 is described, there may be a case where an SQL statement cannot be described directly in the source code. In such a case, for example, as shown in FIG. 3B, DB middleware 901 in which a plurality of different RDB (Relational Database) functions are shared / abstracted between the application 200 and the divided database management unit 101. What is necessary is just to interpose 902,903.

なお、この場合のアプリケーション200と分割データベース管理部101との間の通信はDBミドルウェア901,902,903を介して行われる。また、図3Aの構成では、分割データベース管理部101とアプリケーション200との間の通信は、実データベース111が使用する通信プロトコルを用いて行われるが、図3Bの構成では、DBミドルウェア901,902,903の通信プロトコルを用いて行われる。このようにDBミドルウェア901,902,903を介在させる場合には、アプリケーション200を分割データベース管理部101に接続するためのインタフェースをアプリケーション200に造り込む必要がないという利点があり、例えば、稼働実績のある信頼性の高いアプリケーション200に手を加えることなく、分割データベース管理部101に結合させることができ、信頼性を損なうことなく、本発明の情報処理システム1を導入することができる。なお、DBミドルウェア901,902,903の具体例として、オペレーティングシステムのランタイムライブラリがある。   In this case, communication between the application 200 and the divided database management unit 101 is performed via DB middleware 901, 902, and 903. 3A, communication between the divided database management unit 101 and the application 200 is performed using a communication protocol used by the real database 111. In the configuration of FIG. 3B, DB middleware 901, 902 This is performed using the communication protocol 903. In this way, when the DB middleware 901, 902, and 903 are interposed, there is an advantage that it is not necessary to build an interface for connecting the application 200 to the divided database management unit 101 in the application 200. The information processing system 1 of the present invention can be introduced without impairing the reliability, because it can be combined with the divided database management unit 101 without modifying a certain highly reliable application 200. A specific example of the DB middleware 901, 902, 903 is a runtime library of an operating system.

次に、情報処理システム100において取り扱われるデータについて説明する。図4Aは従業員マスタ303の一例である。従業員マスタ303の各レコードには、従業員ID3031、氏名3032、所属3033、職名3034、住所3035の項目が含まれる。このうち、従業員ID3031の項目には、「001」,「002」といった、従業員ごとに付与される固有の識別子が格納される。なお、本実施例では、従業員ID3031に格納されている識別子のことを、実名ID又は実名の従業員IDと称することとする。   Next, data handled in the information processing system 100 will be described. FIG. 4A is an example of the employee master 303. Each record of the employee master 303 includes items of employee ID 3031, name 3032, affiliation 3033, job title 3034, and address 3035. Among these items, in the item of employee ID 3031, a unique identifier assigned to each employee such as “001” and “002” is stored. In this embodiment, the identifier stored in the employee ID 3031 is referred to as a real name ID or a real name employee ID.

図4Bに勤務記録304の一例を示している。勤務記録304には、出勤管理アプリケーション204によって適宜レコードが追加される。勤務記録304の各レコードには、従業員ID3041、記録日時3042、及び、記録内容3043の項目が含まれる。ここで本実施例では、同一人の個人データを、実名データを用いた実名テーブルと、偽名データを用いた偽名テーブルとに分割して実データベース111に管理している。このため、同一の従業員のデータであっても、図4Aに示す従業員マスタ303の従業員ID3031と、図4Bに示す勤務記録304の従業員ID3041には、夫々異なる値が格納される。本実施例では、従業員マスタ303の従業員ID3031には実名データである実名IDが、勤務記録304の従業員ID3041には偽名データである偽名IDが格納されるものとする。   FIG. 4B shows an example of the work record 304. A record is appropriately added to the work record 304 by the attendance management application 204. Each record of the work record 304 includes items of employee ID 3041, recording date and time 3042, and recorded content 3043. In this embodiment, the personal data of the same person is divided into a real name table using real name data and a pseudonym table using pseudonym data and managed in the real database 111. For this reason, even for the same employee data, different values are stored in the employee ID 3031 of the employee master 303 shown in FIG. 4A and the employee ID 3041 of the work record 304 shown in FIG. 4B. In this embodiment, it is assumed that a real name ID that is real name data is stored in the employee ID 3031 of the employee master 303, and a pseudonym ID that is pseudonym data is stored in the employee ID 3041 of the work record 304.

従業員マスタ303の従業員ID3031と、勤務記録304の従業員ID3041との対応は、ID対応表206に示されている。従業員マスタ303の内容と、勤務記録304の内容との対応づけは、ID対応表206を参照することによってのみ可能であり、ID対応表206が存在しない場合には、アプリケーション200から隠蔽されることになり、アプリケーション200は、例えば、勤務記録304の従業員ID3041に格納されている識別子から、従業員マスタ30の氏名、所属等の情報を取得することはできない。   The correspondence between the employee ID 3031 of the employee master 303 and the employee ID 3041 of the work record 304 is shown in the ID correspondence table 206. The correspondence between the contents of the employee master 303 and the contents of the work record 304 can be made only by referring to the ID correspondence table 206, and is hidden from the application 200 when the ID correspondence table 206 does not exist. In other words, the application 200 cannot acquire information such as the name and affiliation of the employee master 30 from the identifier stored in the employee ID 3041 of the work record 304, for example.

なお、図4Bに示した勤務記録304の例では、従業員ID3041(偽名ID)の具体例として接頭語に「P」を有するものを用いているが、偽名IDとしては、例えば、実名IDをハッシュ関数により変換したものなどを用いることができる。偽名IDとして実名IDを推測することが困難又は不可能なものを用いることで、情報処理システム1の安全性を向上させることができる。以下の説明では、勤務記録304の従業員ID3041の識別子を偽名ID又は偽名の従業員IDとも称することとする。   In the example of the work record 304 shown in FIG. 4B, a specific example of the employee ID 3041 (a pseudonym ID) having “P” as a prefix is used. As the pseudonym ID, for example, a real name ID is used. Those converted by a hash function can be used. By using the pseudonym ID that is difficult or impossible to guess the real name ID, the safety of the information processing system 1 can be improved. In the following description, the identifier of the employee ID 3041 of the work record 304 is also referred to as a pseudonym ID or a pseudonym employee ID.

図4Cに勤務記録集計データ305の一例を示している。勤務記録集計データ305には、従業員ID(偽名ID)ごとの勤務時間の集計値が格納される。出勤記録集計アプリケーション203は、勤務記録304を入力データとして計算を行う。勤務記録集計データ305の各レコードには、従業員ID3051(偽名ID)、集計月3052(年単位でもよい)、及び合計勤務時間3053の項目が含まれる。   FIG. 4C shows an example of the work record total data 305. The work record total data 305 stores a total value of work hours for each employee ID (pseudo-name ID). The attendance record tabulation application 203 performs calculation using the work record 304 as input data. Each record of the work record total data 305 includes items of an employee ID 3051 (a pseudonym ID), a total month 3052 (may be a year unit), and a total work time 3053.

図4Dは、給与計算アプリケーション202によって出力されるデータの一例である。同図に示す出力データ306は、従業員毎の給与データである。出力データ306には、従業員マスタ303に格納されている氏名3061、支給額合計3062、合計勤務時間3063、所得税3064、住民税3065の項目が含まれる。合計勤務時間3063には、勤務記録集計データ305に格納されている合計勤務時間3053の内容が出力される。なお、出力データ306は、例えば、給与明細を印刷するアプリケーション等によって利用される。   FIG. 4D is an example of data output by the salary calculation application 202. The output data 306 shown in the figure is salary data for each employee. The output data 306 includes items of name 3061, total amount of payment 3062, total working time 3063, income tax 3064, and resident tax 3065 stored in the employee master 303. In the total work time 3063, the contents of the total work time 3053 stored in the work record total data 305 are output. The output data 306 is used by, for example, an application that prints salary details.

図5Aは、リソース定義データベース108に格納されているテーブルの一例である。同図に示すテーブル503には、実データベース111が稼働しているサーバコンピュータのホスト名5031が格納されている。   FIG. 5A is an example of a table stored in the resource definition database 108. In the table 503 shown in the figure, the host name 5031 of the server computer on which the real database 111 is operating is stored.

図5Bに示すテーブル500、及びテーブル504は、リソース定義データベース108に格納されているテーブルの一例である。テーブル500は、偽名テーブル及び偽名IDが用いられている項目が登録されるテーブルであり、偽名データが用いられているデータベースの名称5001、偽名テーブルの名称5002、及び偽名ID5003の項目を有する。偽名ID5003には偽名IDが用いられている項目名が格納される。図5Bに示すテーブル500には、「従業員」というリソース名を持つデータベースに格納された、勤務記録304の従業員IDが、偽名IDを表す項目であることが登録されている。図5Bに示すテーブル504は、実名テーブル及び実名IDが用いられている項目が登録されるテーブルであり、実名が用いられているデータベースの名称5041、実名テーブルの名称5042、及び実名ID5043の項目を有する。テーブル504では、「従業員」というリソース名を持つデータベースに格納されている従業員マスタ303の従業員ID3031には実名IDが用いられていることが登録されている。   A table 500 and a table 504 illustrated in FIG. 5B are examples of tables stored in the resource definition database 108. The table 500 is a table in which items using a pseudonym table and a pseudonym ID are registered, and includes items of a database name 5001 in which pseudonym data is used, a pseudonym table name 5002, and a pseudonym ID 5003. The pseudonym ID 5003 stores the item name for which the pseudonym ID is used. In the table 500 shown in FIG. 5B, it is registered that the employee ID of the work record 304 stored in the database having the resource name “employee” is an item representing the pseudonym ID. A table 504 shown in FIG. 5B is a table in which items using the real name table and the real name ID are registered. The items of the database name 5041, the real name table name 5042, and the real name ID 5043 in which the real name is used are stored. Have. In the table 504, it is registered that the real name ID is used for the employee ID 3031 of the employee master 303 stored in the database having the resource name “employee”.

図5Cに示すテーブル501は、応答定義データベース109に格納されるテーブルである。応答定義データベース109には、分割データベース管理部101が各アプリケーション200に対して返す応答メッセージが格納されている。テーブル501の各レコードには、アプリID5011、名称5012、応答データ5013、及び、完了ステータス5014の項目が含まれる。このうちアプリID5011には、アプリケーション200の識別子が格納され、例えば、設計者が与えるコード、アプリケーション200が使うデータベースアカウントのユーザ名等が格納される。名称5012には、アプリケーション200を特定する文字列が格納される。   A table 501 illustrated in FIG. 5C is a table stored in the response definition database 109. The response definition database 109 stores a response message returned from the divided database management unit 101 to each application 200. Each record of the table 501 includes items of an application ID 5011, a name 5012, response data 5013, and a completion status 5014. Among these, the application ID 5011 stores an identifier of the application 200, for example, a code given by the designer, a user name of a database account used by the application 200, and the like. The name 5012 stores a character string that identifies the application 200.

応答データ5013には、分割データベース管理部101からID対応表206にアクセスできない状況において、アプリケーション200が、実名テーブルの実名データと偽名テーブルの偽名データとを対応づけなければならないクエリーを送信してきた場合にアプリケーション200に対して返答する応答メッセージの種類が格納される。例えば、応答データ5013に「空データ」が格納されている場合には、分割データベース管理部101は、アプリケーション200に空のデータ集合を返すことを意味する。応答の種類5013に「疑似データ」が格納されている場合には、テーブル504に登録されている実名テーブルの各項目をランダムな値で埋めたテーブルを応答データとしてアプリケーション200に送信し、応答データの内容は必ずしも保証されないことを意味する。完了ステータス5014には、クエリーの実行結果を示す完了ステータスが格納される。完了ステータスには、「正常」、「異常」や、実行結果の具体的な内容を示すエラーコードが格納される。   When the application 200 transmits a query that must associate the real name data of the real name table and the pseudonym data of the pseudonym table in a situation where the ID correspondence table 206 cannot be accessed from the divided database management unit 101 to the response data 5013 The type of response message returned to the application 200 is stored. For example, when “empty data” is stored in the response data 5013, it means that the divided database management unit 101 returns an empty data set to the application 200. When “pseudo data” is stored in the response type 5013, a table in which each item of the real name table registered in the table 504 is filled with random values is transmitted to the application 200 as response data, and the response data This means that the content of is not necessarily guaranteed. The completion status 5014 stores a completion status indicating the execution result of the query. The completion status stores “normal”, “abnormal”, and an error code indicating specific contents of the execution result.

図5Dに示すテーブルは、ID対応表206の一例である。ID対応表206には、実名ID2061の項目と、偽名ID2062の項目を有し、実名IDと偽名IDの対応関係が示されている。   The table illustrated in FIG. 5D is an example of the ID correspondence table 206. The ID correspondence table 206 includes an item of a real name ID 2061 and an item of a pseudonym ID 2062, and shows a correspondence relationship between the real name ID and the pseudonym ID.

図5Eに示すテーブルは、ID対応表キャッシュ部105に存在する、ID対応表206の複製が格納されるテーブルの一例である。分割データベース管理部101が、ID対応表206にアクセス可能な場合には、テーブル502の実名ID5021には実名IDが格納され、アクセス不可能な場合には、テーブル502の実名ID5021には何も内容が格納されない。図5Eは実名ID5021に何も内容が格納されていない状態である。   The table shown in FIG. 5E is an example of a table that stores a copy of the ID correspondence table 206 that exists in the ID correspondence table cache unit 105. When the divided database management unit 101 can access the ID correspondence table 206, the real name ID 5021 of the table 502 stores the real name ID. When the divided database management unit 101 cannot access, the real name ID 5021 of the table 502 contains nothing. Is not stored. FIG. 5E shows a state where no content is stored in the real name ID 5021.

=処理説明=
<ID対応表206を参照しない場合>
ここでは項目3041に格納されている偽名の従業員IDを用いて行われる処理の一例として、ID対応表206を参照せずに行われる、出勤管理アプリケーション204が実データベース111にアクセスする際に、分割データベース管理部101によって行われる処理について図6Aに示すフローチャート600とともに説明する。
= Description of processing =
<When not referring to the ID correspondence table 206>
Here, as an example of processing performed using the pseudonym employee ID stored in the item 3041, when the attendance management application 204, which is performed without referring to the ID correspondence table 206, accesses the real database 111, Processing performed by the divided database management unit 101 will be described with reference to a flowchart 600 shown in FIG. 6A.

出勤管理アプリケーション204は、実データベース111にアクセスする際、まず、分割データベース管理部101によって提供される仮想データベースに接続するための処理(以下、接続処理という。)を実行する。この接続処理において、出勤管理アプリケーション204は、接続情報(DBユーザ名、パスワード、接続データベース名等)を分割データベース管理部101に送信する。分割データベース管理部101の仮想データベースI/F部102は、出勤管理アプリケーション204から送信されてくる接続情報を受信する(S611)。   When accessing the real database 111, the attendance management application 204 first executes processing for connecting to the virtual database provided by the divided database management unit 101 (hereinafter referred to as connection processing). In this connection process, the attendance management application 204 transmits connection information (DB user name, password, connection database name, etc.) to the divided database management unit 101. The virtual database I / F unit 102 of the divided database management unit 101 receives the connection information transmitted from the attendance management application 204 (S611).

分割データベース管理部101によって接続情報が受信されると、次に、分割データベース管理部101のクエリー変換部103が、上記接続情報及びテーブル503に基づいて、実データベース111のホスト名を特定し、実データベースI/F部107に対して実データベース111への接続要求を送信する(S612)。次に、実データベースI/F部107は、接続情報を実データベース111に送信し(S613)、実データベース111からの応答を待機する。   When the connection information is received by the divided database management unit 101, the query conversion unit 103 of the divided database management unit 101 next identifies the host name of the real database 111 based on the connection information and the table 503, and A connection request to the real database 111 is transmitted to the database I / F unit 107 (S612). Next, the real database I / F unit 107 transmits connection information to the real database 111 (S613), and waits for a response from the real database 111.

次に、実データベース111に対する接続結果が、仮想データベースI/F部102によって受信されると(S614)、分割データベース管理部101が、受信した接続結果を出勤管理アプリケーション204に送信する(S615)。そして、実データベース111への接続に成功した場合には、出勤管理アプリケーション204と実データベース111との間にセッションが確立される。このセッションは切断処理が行われるまでの間、仮想データベースI/F部102、及び、実データベースI/F部107の機能によって保持される。   Next, when the connection result for the real database 111 is received by the virtual database I / F unit 102 (S614), the divided database management unit 101 transmits the received connection result to the attendance management application 204 (S615). If the connection to the real database 111 is successful, a session is established between the attendance management application 204 and the real database 111. This session is held by the functions of the virtual database I / F unit 102 and the real database I / F unit 107 until the disconnection process is performed.

出勤管理アプリケーション204による勤務記録304へのレコードの追加処理は、上記セッションが確立している状態で行われる。出勤管理アプリケーション204は、パーソナルコンピュータや従業員が所持しているICカード等から、偽名の従業員ID、及び、出勤時刻や退勤時刻等の情報を含んだデータを取得し、取得したデータに取得時刻を付加する。そして、取得したデータに対応するレコードを勤務記録304に追加するためのクエリーを生成し、これを分割データベース管理部101に送信する。例えば、勤務記録304に、偽名IDとして「P001」が割り当てられている従業員である「佐藤」氏の出勤時刻を追加するクエリーは、次のように記述される。
INSERT 勤務記録 (従業員ID、記録日時, 記録内容)
VALUES (P001,'2005-04-01 09:00:00', '出勤'); ・・・(1)
なお、上記クエリーでは、説明の便宜上、テーブル名や項目名の文字列が日本語で表記されているが、実際にはSQLが許す文字列セットで記述される。
The record addition process to the work record 304 by the attendance management application 204 is performed in a state where the session is established. The attendance management application 204 obtains data including information such as a pseudonym employee ID and attendance time and leaving time from a personal computer or an IC card possessed by the employee, and obtains the obtained data. Add time. Then, a query for adding a record corresponding to the acquired data to the work record 304 is generated and transmitted to the divided database management unit 101. For example, a query for adding the attendance time of “Sato” who is an employee assigned “P001” as the pseudonym ID to the work record 304 is described as follows.
INSERT work record (employee ID, record date, record contents)
VALUES (P001, '2005-04-01 09:00:00', 'Attendance'); (1)
In the above query, for convenience of explanation, character strings of table names and item names are written in Japanese, but are actually written in a character string set permitted by SQL.

次に、出勤管理アプリケーション204から上記クエリーが送信されてきた場合に分割データベース管理部101によって行われる処理について、図6Bに示すフローチャート620を参照しつつ説明する。   Next, processing performed by the divided database management unit 101 when the query is transmitted from the attendance management application 204 will be described with reference to a flowchart 620 shown in FIG. 6B.

まず、分割データベース管理部101の仮想データベースI/F部102が、出勤管理アプリケーション204からクエリーを受信する(S621)。次に、クエリー変換部103が、受信したクエリーを解析し(S622)、クエリーのSELECT構文中に指定された項目名に基づいて、実名テーブルと偽名テーブルの対応づけが必要であるかどうかを判定する(S623)。この判定は、例えば、SELECT構文「SELECT ... FROM ... WHERE <条件式>」の<条件式>に指定されている文字列から、テーブル名と項目名とを抽出し、その抽出結果をテーブル500および504と比較し、テーブル500に定義されている偽名テーブル名、及び、偽名IDの項目名と、テーブル504に定義されている実名テーブル名、及び、実名IDの項目名が、「=」、「<=」、「>=」等の比較演算子によって結合されているか否かを確認することにより行う。   First, the virtual database I / F unit 102 of the divided database management unit 101 receives a query from the attendance management application 204 (S621). Next, the query conversion unit 103 analyzes the received query (S622), and determines whether it is necessary to associate the real name table with the pseudonym table based on the item name specified in the SELECT syntax of the query. (S623). For this determination, for example, the table name and the item name are extracted from the character string specified in <conditional expression> of the SELECT syntax "SELECT ... FROM ... WHERE <conditional expression>", and the extraction result Are compared with the tables 500 and 504, the pseudonym table name defined in the table 500 and the item name of the pseudonym ID, the real name table name defined in the table 504, and the item name of the real name ID are “ This is done by checking whether or not they are connected by a comparison operator such as “=”, “<=”, “> =”.

例えば、図5Bに示すテーブル500及びテーブル504の場合には、等号演算子に関しては、「従業員マスタ.従業員ID=勤務記録集計データ.従業員ID」、従業員マスタ.従業員ID=勤務記録.従業員ID」の2つの条件式がチェック対象となる。クエリー変換部103は、これらのうちの少なくともいずれかの条件式が、出勤管理アプリケーション204から受信したクエリーに存在する場合には、実名テーブルと偽名テーブルの対応付けが必要であると判定し、存在しない場合には、実名テーブルと偽名テーブルの対応付けが必要でないと判定する。   For example, in the case of the table 500 and the table 504 shown in FIG. 5B, regarding the equality operator, “employee master.employee ID = work record total data.employee ID”, employee master.employee ID = The two conditional expressions “work record.employee ID” are to be checked. When at least one of these conditional expressions exists in the query received from the attendance management application 204, the query conversion unit 103 determines that the real name table and the pseudonym table need to be associated with each other, and exists If not, it is determined that it is not necessary to associate the real name table with the pseudonym table.

なお、ネスティングが含まれている場合や「;」(セミコロン)を用いて併記されている場合など、受信したクエリーに複数のSELECT構文「SELECT ... FROM ... WHERE <条件式>」が存在する場合には、そのうちの少なくとも一つに上記条件式が含まれていれば、実名テーブルと偽名テーブルの対応づけが必要であると判定する。また、「ON」、「USING」、「JOIN」など、SELECT構文と実質的に等価な命令に関しては、例えば、その命令を一旦SELECT構文に帰着させてから上記の判定処理を行う。   Note that there are multiple SELECT syntax “SELECT ... FROM ... WHERE <conditional expression>” in the received query, such as when nesting is included or when using “;” (semi-colon). If it exists, it is determined that the real name table needs to be associated with the pseudonym table if at least one of them contains the conditional expression. In addition, regarding an instruction substantially equivalent to the SELECT syntax such as “ON”, “USING”, and “JOIN”, for example, the above-described determination processing is performed after the command is temporarily reduced to the SELECT syntax.

ここでクエリー(1)は勤務記録305のみを処理対象とするものであり、このクエリー(1)には上記のいずれの条件式も含まれていない。従って、この場合は実名データと偽名データとの対応づけは必要なしと判定し(S623:不要)、(S625)の処理に進む。クエリー(1)とは異なり、上記いずれかの条件式を含んだクエリーが、出勤管理アプリケーション204から送信されてきた場合には、実名データと偽名データとの対応づけの必要が有りと判定し(S623:YES)、(S624)の処理に進む。(S624)の処理の具体的な内容については、後の給与計算アプリケーション202を用いた説明において詳述する。   Here, the query (1) is for processing only the work record 305, and the query (1) does not include any of the above conditional expressions. Therefore, in this case, it is determined that it is not necessary to associate the real name data with the pseudonym data (S623: unnecessary), and the process proceeds to (S625). Unlike the query (1), when a query including any of the above conditional expressions is transmitted from the attendance management application 204, it is determined that there is a need to associate real name data with pseudonym data ( (S623: YES), the process proceeds to (S624). The specific contents of the processing of (S624) will be described in detail in the description using the salary calculation application 202 later.

(S625)の処理では、クエリー変換部103が、テーブル503を参照して実データベース111のホスト名を特定し(S625)、実データベースI/F部107に、実データベース111へのクエリーの送信要求を送出する。実データベースI/F部107は、上記送信要求を受信すると、出勤管理アプリケーション204から受信したクエリーを、実データベース111に送信する(S626)。   In the processing of (S625), the query conversion unit 103 specifies the host name of the real database 111 with reference to the table 503 (S625), and sends a query transmission request to the real database 111 to the real database I / F unit 107. Is sent out. Upon receiving the transmission request, the real database I / F unit 107 transmits the query received from the attendance management application 204 to the real database 111 (S626).

実データベース111は、実データベースI/F部107から送信されてくる上記クエリーを受信すると、受信したクエリーを実行する。受信したクエリーがクエリー(1)であった場合には、勤務記録304にレコードが1件追加されることになる。(S627)の処理では、実データベースI/F部107が、クエリーの実行結果を実データベース111から受信する。仮想データベースI/F部102は、クエリーの実行結果を受信すると、出勤管理アプリケーション204に対してデータベースの操作の成功もしくは失敗を示す状態コードが出勤管理アプリケーション204に送信される(S628)。   When the real database 111 receives the query transmitted from the real database I / F unit 107, the real database 111 executes the received query. If the received query is query (1), one record is added to the work record 304. In the processing of (S627), the real database I / F unit 107 receives the execution result of the query from the real database 111. When the virtual database I / F unit 102 receives the query execution result, the status code indicating the success or failure of the database operation is transmitted to the attendance management application 204 to the attendance management application 204 (S628).

以上がID対応表206を参照せずに行われる、出勤管理アプリケーション204から実データベース111に対するアクセスに関する処理の一例である。なお、以上に説明した出勤管理アプリケーション204についての処理と同様に、ID対応表206を参照せずに行われる、勤務記録集計アプリケーション203から実データベース111に対するアクセスに関する処理についても、図6A、図6Bに示すフローチャートに従って行われる。   The above is an example of processing related to access to the real database 111 from the attendance management application 204, which is performed without referring to the ID correspondence table 206. Similar to the processing for the attendance management application 204 described above, the processing related to access to the actual database 111 from the work record totaling application 203 performed without referring to the ID correspondence table 206 is also shown in FIGS. 6A and 6B. This is performed according to the flowchart shown in FIG.

勤務記録集計アプリケーション203は、アプリケーションの利用者が、2005年4月1日から2005年4月30日の間というように任意の期間を指定すると、勤務記録304を参照して指定された期間内の各従業員の勤務時間を集計し、実データベース111の勤務記録集計データ305に結果を出力する。ここで勤務記録集計アプリケーション203は、勤務記録304に格納された指定期間内のデータを得るために、例えば、次のクエリーを分割データベース管理部101に発行する。
SELECT 従業員ID, 記録日時, 記録内容 FROM 従業員マスタ
WHERE 記録日時>='2005-04-01 0:00:00' AND 記録日時<='2005-04-30 23:59:59'; ・・・(2)
When the application user designates an arbitrary period such as between April 1, 2005 and April 30, 2005, the work record totaling application 203 refers to the work record 304 within the designated period. The work hours of each employee are totaled, and the result is output to the work record total data 305 of the actual database 111. Here, the work record totaling application 203 issues, for example, the following query to the divided database management unit 101 in order to obtain data within the specified period stored in the work record 304.
SELECT employee ID, record date, record contents FROM employee master
WHERE recording date> = '2005-04-01 0:00:00' AND recording date <= '2005-04-30 23:59:59'; (2)

勤務記録集計アプリケーション203は、上記クエリーの実行結果に基づいて、従業員IDごとの勤務時間を算出し、勤務記録集計データ305にレコードを追加するクエリーを実データベース111に発行する。例えば、偽名の従業員IDとして「P001」が与えられている従業員が、合計40時間勤務していた場合には、勤務記録集計アプリケーション203は、次のクエリー(3)を実データベース111に送信する。
INSERT 勤務記録集計データ (従業員ID、合計勤務時間) VALUES (P001, 40); ・・・(3)
以上がID対応表206を参照せずに行われる、勤務記録集計アプリケーション203から実データベース111に対するアクセスに関する処理の一例であるが、さらにID対応表206を参照せずに行われる、顧客マスタ303のみにアクセスする処理も、上記と同様にして行われる。
The work record totaling application 203 calculates a work time for each employee ID based on the execution result of the query, and issues a query for adding a record to the work record total data 305 to the real database 111. For example, when an employee who is given “P001” as a pseudonym employee ID has worked for a total of 40 hours, the work record totaling application 203 transmits the following query (3) to the real database 111. To do.
INSERT Work record summary data (employee ID, total working hours) VALUES (P001, 40); (3)
The above is an example of processing related to access to the real database 111 from the work record totaling application 203 that is performed without referring to the ID correspondence table 206, but only the customer master 303 that is performed without referring to the ID correspondence table 206 only. The process of accessing is also performed in the same manner as described above.

このように、アプリケーション200から送信されてくるクエリーが、実名テーブルのみ、又は、偽名テーブルのみを対象とする場合には、ID対応表206が存在しなくても、正常にクエリーを実行することができる。   As described above, when the query transmitted from the application 200 targets only the real name table or only the pseudonym table, the query can be normally executed even if the ID correspondence table 206 does not exist. it can.

<ID対応表206を参照する場合>
次に、ID対応表206を参照して行われる処理について、給与計算アプリケーション202が、ID対応表206を参照しつつ実データベース111にアクセスする際の処理を具体例として説明する。
<When referring to the ID correspondence table 206>
Next, regarding processing performed with reference to the ID correspondence table 206, processing when the salary calculation application 202 accesses the real database 111 while referring to the ID correspondence table 206 will be described as a specific example.

ID対応表206は、ICカード205に格納されており、ICカード205をリーダ・ライタ装置等にセットすることにより、分割データベース管理部101はID対応表206を参照することが可能になる。図7Aに示すシーケンス700は、ICカード205の所持者がICカード205をリーダ・ライタ装置等にセットし、分割データベース管理部101が、IDカード205と通信可能な状態になった場合に発生する割込信号に応じて開始される、分割データベース管理部101によって行われる処理である。   The ID correspondence table 206 is stored in the IC card 205, and the divided database management unit 101 can refer to the ID correspondence table 206 by setting the IC card 205 to a reader / writer device or the like. The sequence 700 shown in FIG. 7A occurs when the holder of the IC card 205 sets the IC card 205 in a reader / writer device or the like, and the divided database management unit 101 becomes communicable with the ID card 205. This is processing performed by the divided database management unit 101 that is started in response to an interrupt signal.

割込信号が発生すると、ID対応表状態判定部104は、まずID対応表206の読み出しが可能かどうかを判定する(S711)。ICカード205にパスワードが設定されている場合には、パスワード認証が完了していれば読み出し可能な状態である。パスワードが設定されていない場合には、カードの物理的な接続が認識された時点で読み出し可能な状態となる。   When an interrupt signal is generated, the ID correspondence table state determination unit 104 first determines whether or not the ID correspondence table 206 can be read (S711). When a password is set in the IC card 205, it can be read if password authentication is completed. If no password is set, the card can be read out when the physical connection of the card is recognized.

(S712)の処理では、ID対応表状態判定部104が、ID対応表キャッシュ部105にキャッシュの更新要求を送出する。ID対応表キャッシュ部105は、キャッシュ502へのアクセスを排他制御するために、ロック状態変数を管理している。ロック状態変数は、ID対応表キャッシュ部105、クエリー変換部103、及びID攪乱部106からアクセスされる。ロック状態変数が取り得る値には、排他制御が行われていないことを示す「OK」、排他制御が行われているプロセス以外からは更新(write)が不可であることを示す「W」、参照(Read)も更新も不可であることを示す「R/W」等がある。   In the processing of (S712), the ID correspondence table state determination unit 104 sends a cache update request to the ID correspondence table cache unit 105. The ID correspondence table cache unit 105 manages lock state variables in order to exclusively control access to the cache 502. The lock state variable is accessed from the ID correspondence table cache unit 105, the query conversion unit 103, and the ID disturbance unit 106. Possible values of the lock state variable are `` OK '' indicating that exclusive control is not performed, `` W '' indicating that updating (write) is not possible from processes other than exclusive process, There is “R / W” or the like indicating that neither reading nor updating is possible.

例えば、クエリー変換部103がキャッシュ502を利用している場合には、ロック状態変数は「W」となり、ID対応表キャッシュ部105によるキャッシュ更新処理もしくはID攪乱部106のID更新処理が実行されている場合には、ロック状態変数は「R/W」となり、それ以外の場合には、ロック状態変数は「OK」となる。ロック状態変数は、例えば、オペレーティングシステムが提供するシステム関数により、メモリ62上の変数やファイルとして実装されている。   For example, when the query conversion unit 103 uses the cache 502, the lock state variable is “W”, and the cache update process by the ID correspondence table cache unit 105 or the ID update process of the ID disturbance unit 106 is executed. If it is, the lock state variable is “R / W”; otherwise, the lock state variable is “OK”. The lock state variable is implemented as a variable or file on the memory 62 by, for example, a system function provided by the operating system.

(S713)の処理では、ID対応表キャッシュ部105が、ロック状態変数が「OK」になるまで待機し、ロック状態変数が「OK」になるとロック状態変数を「R/W」に変更している。(S714)の処理では、ID対応表キャッシュ部105が、ICカード205からID対応表206を読み出して、メモリ62上に確保される記憶領域であるキャッシュ502にID対応表206の複製(又は実名IDの値のみ)を格納している。この時点において、キャッシュ502には全ての実名IDと偽名IDの対応データが格納される。(S715)の処理では、ID対応表キャッシュ部105が、ロック状態変数を「OK」に設定している。   In the process of (S713), the ID correspondence table cache unit 105 waits until the lock state variable becomes “OK”, and when the lock state variable becomes “OK”, the lock state variable is changed to “R / W”. Yes. In the processing of (S 714), the ID correspondence table cache unit 105 reads the ID correspondence table 206 from the IC card 205 and copies the ID correspondence table 206 to the cache 502, which is a storage area secured on the memory 62 (or real name) ID value only). At this time, the cache 502 stores the correspondence data of all real name IDs and pseudonym IDs. In the processing of (S715), the ID correspondence table cache unit 105 sets the lock state variable to “OK”.

図7Bに示すシーケンス720は、ICカード205の所持者がICカード205をリーダ・ライタ装置等から引き抜くことにより、ICカード205が分割データベース管理部101と通信不能になった場合に発生する割込信号に応じて開始される分割データベース管理部101によって行われる処理である。   The sequence 720 shown in FIG. 7B is an interrupt generated when the IC card 205 becomes incapable of communicating with the divided database management unit 101 by the IC card 205 holder being pulled out of the reader / writer device or the like. This is processing performed by the divided database management unit 101 that is started in response to a signal.

(S721)の処理では、ID対応表キャッシュ部105に対し、ID対応表状態判定部104が、キャッシュ内容の破棄要求を送出している。(S722)の処理では、ID対応表キャッシュ部105は、ロック状態変数が「OK」になるまで待機し、ロック状態変数が「OK」になるとロック変数を「R/W」に変更している。(S723)の処理では、キャッシュ502の実名IDの欄に空データを代入している。(S724)の処理では、ID対応表キャッシュ部105が、ロック状態変数に「OK」を設定している。   In the processing of (S721), the ID correspondence table state determination unit 104 sends a cache content discard request to the ID correspondence table cache unit 105. In the processing of (S722), the ID correspondence table cache unit 105 waits until the lock state variable becomes “OK”, and changes the lock variable to “R / W” when the lock state variable becomes “OK”. . In the processing of (S723), empty data is substituted in the real name ID column of the cache 502. In the process of (S724), the ID correspondence table cache unit 105 sets “OK” in the lock state variable.

次に、給与計算アプリケーション202が、ID対応表206を参照しつつ実データベース111にアクセスする処理について説明する。なお、給与計算アプリケーション202は、既に実データベース111とセッションを確立しているものとする。   Next, processing in which the payroll application 202 accesses the actual database 111 with reference to the ID correspondence table 206 will be described. It is assumed that the payroll application 202 has already established a session with the actual database 111.

まず、給与計算アプリケーション202が、各従業員の氏名と合計勤務時間を実データベース111から取得するため、次のクエリー(4)を分割データベース管理部101に送信することにより、あらかじめ従業員マスタ303から全ての従業員ID3031を取得する。なお、この処理は、例えば、前述した図6Bの処理に従って行われる。
SELECT 従業員マスタ.氏名, 勤務記録集計データ.合計勤務時間
FROM従業員マスタ, 勤務記録集計データ
WHERE 従業員マスタ.従業員ID=勤務記録集計データ.従業員ID AND
従業員マスタ.従業員ID='001'; ・・・(4)
First, the salary calculation application 202 acquires the name and total working time of each employee from the real database 111, so that the following query (4) is transmitted to the divided database management unit 101, so All employee IDs 3031 are acquired. This process is performed according to the process of FIG. 6B described above, for example.
SELECT Employee Master.Name, work record summary data.Total working hours
FROM employee master, work record summary data
WHERE Employee master. Employee ID = Work record summary data. Employee ID AND
Employee master. Employee ID = '001'; (4)

次に、分割データベース管理部101は、図6Bのフローチャートの(S621)〜(S623)と同様の処理を実行する。なお、この場合、(S623)の処理では、顧客マスタ303(実名テーブル)の従業員ID3031(実名データ)と、勤務記録集計データ305(偽名テーブル)の従業員ID3051(偽名データ)との対応が必要と判定されるので、のクエリー変換処理が実行される(S624)。   Next, the divided database management unit 101 executes processing similar to (S621) to (S623) in the flowchart of FIG. 6B. In this case, in the process of (S623), the correspondence between the employee ID 3031 (real name data) of the customer master 303 (real name table) and the employee ID 3051 (fake name data) of the work record totaling data 305 (false name table) is the correspondence. Since it is determined that it is necessary, the query conversion process is executed (S624).

クエリー変換処理(S624)の処理の詳細を図8のフローチャート800に示している。クエリー変換処理(S624)では、まず、クエリー変換部103が、ID対応表状態判定部104に問い合わせることにより、ID対応表206にアクセス可能であるかどうかを確認する(S811)。アクセス可能である場合には(S811:アクセス可)、(S812)の処理に進む。(S812)の処理において、クエリー変換部103は、ロック状態変数が「OK」になるまで待機し、ロック状態変数が「OK」になると、ロック状態変数を「W」に設定している。   Details of the query conversion process (S624) are shown in a flowchart 800 of FIG. In the query conversion process (S624), first, the query conversion unit 103 makes an inquiry to the ID correspondence table state determination unit 104 to check whether the ID correspondence table 206 is accessible (S811). If it is accessible (S811: accessible), the process proceeds to (S812). In the processing of (S812), the query conversion unit 103 waits until the lock state variable becomes “OK”, and when the lock state variable becomes “OK”, the query conversion unit 103 sets the lock state variable to “W”.

次に、クエリー変換部103は、給与計算アプリケーション202から受信したクエリーについて変換処理を実行する(S813)。ここで給与計算アプリケーション202は、従業員マスタ303(実名テーブル)の従業員ID3031(実名データ)と、勤務記録集計データ305(偽名テーブル)の従業員ID3051(偽名データ)を参照する際、同一の従業員についてのレコードには、同じ識別子が格納されているものとして処理を実行するが、従業員マスタ303(実名テーブル)では実名ID(実名データ)が用いられ、勤務記録集計データ305(偽名テーブル)では偽名ID(偽名データ)が用いられている(例えば、実名ID「001」に対して偽名ID「P001」)。このため、クエリー(4)をそのままの形で実行されてしまうと、アプリケーション200が期待する結果が得られないことになる。そこで、(S813)の変換処理では、アプリケーション200が期待する結果が得られるように、給与計算アプリケーション202から受信したクエリーを、実データベース111のテーブル構造に適合するクエリーに変換する。   Next, the query conversion unit 103 executes conversion processing for the query received from the salary calculation application 202 (S813). Here, the salary calculation application 202 refers to the employee ID 3031 (real name data) of the employee master 303 (real name table) and the employee ID 3051 (fake name data) of the work record total data 305 (fake name table). The process is executed assuming that the same identifier is stored in the record for the employee, but the real name ID (real name data) is used in the employee master 303 (real name table), and the work record total data 305 (fake name table) ) Uses pseudonym IDs (pseudoname data) (for example, pseudonym ID “P001” for real name ID “001”). For this reason, if the query (4) is executed as it is, the result expected by the application 200 cannot be obtained. Therefore, in the conversion process of (S813), the query received from the payroll application 202 is converted into a query that conforms to the table structure of the real database 111 so that the result expected by the application 200 can be obtained.

クエリー変換処理(S823)では、まず、前述した図6Bの(S622)及び(S623)の処理と同様に、SELECT構文のWHERE句に記述されている文字列から、比較演算子で結ばれたテーブル名と項目名を抽出し、テーブル504又はテーブル500の、テーブル名又は項目名に一致するものを選出する。クエリー(4)の場合には、「従業員マスタ.従業員ID」、及び、「勤務記録集計データ.従業員ID」が該当することになる。なお、SQL構文上、これらは「テーブル名.項目名」を意味する。   In the query conversion process (S823), first, as in the process of (S622) and (S623) of FIG. 6B described above, a table connected by a comparison operator from the character string described in the WHERE clause of the SELECT syntax. Names and item names are extracted, and the table 504 or table 500 that matches the table name or item name is selected. In the case of the query (4), “employee master. Employee ID” and “work record total data. Employee ID” are applicable. In the SQL syntax, these mean “table name.item name”.

次に、列挙したテーブル名と項目名の組合せに基づいて、実データベース111において参照すべきテーブルをリストアップする。クエリー(4)の場合には、文字列「従業員マスタ」及び「勤務記録集計データ」が該当する。次に、受信クエリーのWHERE句を、テーブル504とテーブル500の登録データと比較して、実名ID又は偽名IDの値を参照している条件式を列挙する。クエリー(4)では「従業員マスタ.従業員ID='001'」の条件式が該当する。   Next, the tables to be referred to in the actual database 111 are listed based on the combinations of the listed table names and item names. In the case of the query (4), the character strings “employee master” and “work record total data” are applicable. Next, the WHERE clause of the received query is compared with the registered data of the table 504 and the table 500, and the conditional expressions that refer to the real name ID or the pseudonym ID value are listed. In query (4), the conditional expression “employee master.employee ID = '001'” corresponds.

次に、上記実名ID又は偽名IDの値を参照している条件式を、テーブル504及びテーブル500の登録データと比較し、必要に応じて、リストアップしたテーブルの夫々に適した条件式に変換する。ここでは、条件式に出現するテーブル名と項目名の組みがテーブル504に登録されているので、条件式は実名IDを参照するものと見なされる。   Next, the conditional expression referring to the value of the real name ID or the pseudonym ID is compared with the registered data of the table 504 and the table 500, and if necessary, converted into a conditional expression suitable for each of the listed tables. To do. Here, since the combination of the table name and the item name appearing in the conditional expression is registered in the table 504, the conditional expression is regarded as referring to the real name ID.

従業員マスタ303のチェック処理では、テーブル504に「従業員マスタ」が存在するので、条件式はそのままとなる。勤務記録集計データ305のチェック処理では、テーブル500に「勤務記録集計データ」が存在するので、勤務記録集計データ305には偽名IDしか含まれていないと判定される。この場合、クエリー変換部103は、キャッシュ502に格納されているID対応表206を参照し、実名IDに対応する偽名IDを特定し、条件式で参照しているIDの値を変換する。ここではクエリー(4)の「勤務記録集計データ.従業員ID ='001'」の部分は「勤務記録集計データ.従業員ID='P001'」に変換されることになる。   In the check process of the employee master 303, since the “employee master” exists in the table 504, the conditional expression remains as it is. In the check process of the work record total data 305, since “work record total data” exists in the table 500, it is determined that the work record total data 305 includes only a pseudonym ID. In this case, the query conversion unit 103 refers to the ID correspondence table 206 stored in the cache 502, identifies the pseudonym ID corresponding to the real name ID, and converts the value of the ID referenced in the conditional expression. Here, the part of “work record total data. Employee ID =“ 001 ”” in the query (4) is converted to “work record total data. Employee ID =“ P001 ””.

次に、クエリー変換部103は、リストアップしたテーブルの夫々を対象とした複数のクエリーを生成する。クエリー(4)に対応して生成されるクエリーは、例えば次の2つのクエリーである。
SELECT 従業員マスタ.氏名
FROM 従業員マスタ
WHERE 従業員マスタ.従業員ID='001'; ・・・(5)
SELECT 勤務記録集計データ.合計勤務時間
FROM 勤務記録集計データ
WHERE 勤務記録集計データ.従業員ID='P001'; ・・・(6)
Next, the query conversion unit 103 generates a plurality of queries for each of the listed tables. The queries generated corresponding to the query (4) are, for example, the following two queries.
SELECT Employee Master Name
FROM Employee Master
WHERE employee master. Employee ID = '001'; (5)
SELECT work record summary data, total working hours
FROM Work record summary data
WHERE Work record summary data. Employee ID = 'P001'; (6)

以上がクエリー変換処理(S813)の詳細である。続く(S814)乃至(S816)の処理では、前述した図6Bの(S625)乃至(S627)と同様の処理が行われる。そして、(S816)の処理が終了した状態では、2つのクエリー(5)、(6)が実行された結果として、2つのレコード集合が実データベースI/F部107に格納される。(S817)の処理では、データ変換部114が、実データベースI/F部107に格納されている上記2つのレコード集合の直積を求めて、上記2のレコードを1つのレコード集合に変換する。(S817)の処理の結果、本実施例の場合には、従業員IDが「001」の従業員に該当する、{佐藤、40}という1個のレコードが得られることになる。   The above is the details of the query conversion process (S813). In the subsequent processes (S814) to (S816), the same processes as (S625) to (S627) in FIG. 6B described above are performed. Then, in the state where the processing of (S816) is completed, two record sets are stored in the real database I / F unit 107 as a result of executing the two queries (5) and (6). In the process of (S817), the data conversion unit 114 obtains a direct product of the two record sets stored in the real database I / F unit 107, and converts the two records into one record set. As a result of the processing of (S817), in the case of the present embodiment, one record {Sato, 40} corresponding to the employee whose employee ID is “001” is obtained.

続く(S818)の処理では、仮想データベースI/F部102が、(S817)により得られたレコードを給与計算アプリケーション202に送信し、仮想データベースI/F部102が、クエリー変換部103に応答完了を送信する。(S819)の処理では、クエリー変換部103が、(S812)の処理において変更していたロック状態変数を「OK」に変更し、またキャッシュのロックを解除している。   In the subsequent process (S818), the virtual database I / F unit 102 transmits the record obtained in (S817) to the payroll application 202, and the virtual database I / F unit 102 completes the response to the query conversion unit 103. Send. In the process of (S819), the query conversion unit 103 changes the lock state variable changed in the process of (S812) to “OK” and releases the lock of the cache.

(S811)の処理において、ID対応表206にアクセス不可と判定された場合には、次に(S820)の処理が実行される。(S820)の処理において、分割データベース管理部101は、テーブル501を参照して給与計算アプリケーション202に対する応答を決定する。本実施例の場合には、完了ステータスを「異常終了」とする。(S821)の処理では、分割データベース管理部101が、例えば、RDBMSによって提供されるログや環境変数等のRDBMSによって提供される方法により、完了ステータスを給与計算アプリケーション202に通知する。   In the process of (S811), when it is determined that the ID correspondence table 206 cannot be accessed, the process of (S820) is executed next. In the process of (S820), the divided database management unit 101 refers to the table 501 and determines a response to the payroll application 202. In this embodiment, the completion status is “abnormal end”. In the processing of (S821), the divided database management unit 101 notifies the payroll application 202 of the completion status by a method provided by the RDBMS such as a log or environment variable provided by the RDBMS, for example.

以上がID対応表206を参照して行われる、給与計算アプリケーション202が実行データベース111にアクセスする際の処理である。このように、実施例1として説明した情報処理システム100によれば、分割データベース管理部101が、実データベース111のテーブル構造と、ID対応表206とをアプリケーション200から隠蔽しつつ、アプリケーション200に対して応答メッセージを返すことができる。また、ID対応表206の接続状態に応じてアプリケーション200ごとに応答メッセージをカスタマイズすることもできる。   The above is the processing when the salary calculation application 202 accesses the execution database 111 performed with reference to the ID correspondence table 206. As described above, according to the information processing system 100 described as the first embodiment, the divided database management unit 101 hides the table structure of the real database 111 and the ID correspondence table 206 from the application 200, while Response message can be returned. The response message can be customized for each application 200 according to the connection state of the ID correspondence table 206.

==実施例2==
図9に実施例2として説明する情報処理システム1000の構成を示している。ここで実施例1として説明した前述の情報処理システム100では、全てのテーブルが物理的に同一の実データベース111に格納されていた。しかしながら、実施例2の情報処理システム1000では、実データベース111に格納されているデータが、物理的に異なる複数のデータベースに分散した状態で管理される。具体的には、実名テーブルである従業員マスタについては実データベース1002で管理され、従業員マスタ以外の偽名テーブルは、実データベース1003で管理される。そして、図9に示す分散データベース管理部1004が、実データベース1002と実データベース1003とを統合し、アプリケーション200にあたかも1つの実データベースが存在しているかのように実データベース1002及び実データベース1003の内容を提供する。
== Example 2 ==
FIG. 9 shows the configuration of an information processing system 1000 described as the second embodiment. Here, in the information processing system 100 described as the first embodiment, all tables are stored in the same physical database 111 physically. However, in the information processing system 1000 according to the second embodiment, data stored in the real database 111 is managed in a state of being distributed to a plurality of physically different databases. Specifically, an employee master that is a real name table is managed in the real database 1002, and a pseudonym table other than the employee master is managed in the real database 1003. Then, the distributed database management unit 1004 shown in FIG. 9 integrates the real database 1002 and the real database 1003, and the contents of the real database 1002 and the real database 1003 are as if one real database exists in the application 200. I will provide a.

情報処理システム1000の構成は、アウトソーシング等によって委託元が外部業者に業務委託を行う環境に好適である。以下の説明では、実名テーブルが格納された実データベース1002が業務委託サイト91によって管理され、偽名テーブルが格納された実データベース1003が、業務受託サイト(データセンタ)92に管理が委託されているものとする。業務委託サイト91と業務受託サイト92との間は、VPN(Virtual Private Network)1001等のセキュアな通信方式によって接続されている。なお、このように業務受託サイト92ではもっぱら偽名データのみを用いて作業することになるので、委託元は実名と関連づけられたデータが外部に漏洩するのを防ぐことができる。   The configuration of the information processing system 1000 is suitable for an environment where a consignment source outsources business to an external contractor by outsourcing or the like. In the following description, the real database 1002 storing the real name table is managed by the business consignment site 91, and the real database 1003 storing the pseudonym table is consigned to the business consignment site (data center) 92. And The business consignment site 91 and the business consignment site 92 are connected by a secure communication method such as a VPN (Virtual Private Network) 1001. In this way, since the work consignment site 92 works exclusively using the pseudonym data, the consignment source can prevent the data associated with the real name from leaking outside.

図10は、分割データベース管理部101を中心とした情報処理システム1000の具体的なソフトウエア構成である。図3Aに示した情報処理システム100との具体的な違いは、図10では複数の実データベース1002,1003が存在していることと、実データベース1002,1003が、夫々、分散データベース管理部1004によって制御されていることである。   FIG. 10 shows a specific software configuration of the information processing system 1000 centering on the divided database management unit 101. 3A is different from the information processing system 100 shown in FIG. 3A in that there are a plurality of real databases 1002 and 1003 in FIG. 10 and that the real databases 1002 and 1003 are respectively distributed by the distributed database management unit 1004. It is controlled.

図11Aは、情報処理システム1000における分割データベース管理部101の処理を説明するフローチャート1100である。なお、情報処理システム1000では、ID対応表206は、分割データベース管理部101及び分散データベース管理部1004の機能によって実データベース1002,1003のテーブルにも格納される。また実データベース1002,1003に対するクエリーの実行は、分散データベース管理部1004によって行われる。   FIG. 11A is a flowchart 1100 for explaining processing of the divided database management unit 101 in the information processing system 1000. In the information processing system 1000, the ID correspondence table 206 is also stored in the tables of the real databases 1002 and 1003 by the functions of the divided database management unit 101 and the distributed database management unit 1004. The distributed database management unit 1004 executes queries on the real databases 1002 and 1003.

以下、図11Aに示すフローチャート1100とともに、情報処理システム1000の分散データベース管理部1004によって行われる処理について説明する。なお、以下の説明は、図8のフローチャートとの差異点について行う。   Hereinafter, processing performed by the distributed database management unit 1004 of the information processing system 1000 will be described with reference to the flowchart 1100 illustrated in FIG. 11A. The following description will be made with respect to differences from the flowchart of FIG.

図11Aに示すフローチャート1100において、(S1111)乃至(S1112)の処理は図8の(S811)乃至(S812)と同様に行われる。クエリー変換処理(S1113)の処理は、図8に示す(S813)の処理とクエリーの解析処理については同じであるが、クエリーを生成する処理が(S813)の処理とは異なる。すなわち、(S1113)の処理では、クエリー変換部103は、ID対応表206のキャッシュ502のうち、受信したクエリーを実行するのに必要なレコード、例えば、クエリー(5)を受信した場合には、実名IDが「001」のレコードを、実データベース1002の一時的なテーブルである「TEMPORAL」に書き出す。なお、一時的なテーブルを格納するデータベースは、必ずしも実データベース1002や実データベース1003である必要はなく、分散データベース管理部1004が管理している他のデータベースであってもよい。   In the flowchart 1100 shown in FIG. 11A, the processes of (S1111) to (S1112) are performed in the same manner as (S811) to (S812) of FIG. The process of the query conversion process (S1113) is the same as the process of (S813) and the query analysis process shown in FIG. 8, but the process of generating a query is different from the process of (S813). That is, in the process of (S1113), when the query conversion unit 103 receives a record necessary for executing the received query in the cache 502 of the ID correspondence table 206, for example, the query (5), The record with the real name ID “001” is written to “TEMPORAL”, which is a temporary table of the real database 1002. Note that the database that stores the temporary table is not necessarily the real database 1002 or the real database 1003, and may be another database managed by the distributed database management unit 1004.

クエリー変換処理(S1113)では、次にテーブル「TEMPORAL」を利用して、(S817)の処理(直積による実行結果の結合)に相当する処理を含んだクエリーを生成する。具体的には、分割データベース管理部101が、給与計算アプリケーション202からクエリー(4)を受信した場合には、クエリー変換処理(S1113)によって、例えば、次のクエリー(7)が生成される。   In the query conversion process (S1113), a query including a process corresponding to the process of (S817) (combination of execution results by direct product) is generated using the table “TEMPORAL”. Specifically, when the divided database management unit 101 receives the query (4) from the salary calculation application 202, for example, the following query (7) is generated by the query conversion process (S1113).

SELECT 従業員マスタ.氏名, 勤務記録集計データ.合計勤務時間
FROM 従業員マスタ, 勤務記録集計データ, TEMPORAL
WHERE 従業員マスタ.従業員ID='001' AND
従業員マスタ.従業員ID=TEMPORAL.実名ID AND
勤務記録集計データ.従業員ID=TEMPORAL.偽名ID; ・・・(7)
クエリー(7)では、クエリー(4)における、条件式「従業員マスタ.従業員ID=勤務記録集計データ.従業員ID」を右辺と左辺に分解し、テーブルTEMPORALの実名ID、偽名IDとの比較文に置きかえている。クエリー(7)の実行結果は、1つのレコード集合になっているので、(S817)のような実行結果の結合処理は不要である。
SELECT Employee Master.Name, work record summary data.Total working hours
FROM Employee Master, Work Record Summary Data, TEMPORAL
WHERE employee master. Employee ID = '001' AND
Employee master. Employee ID = TEMPORAL. Real name ID AND
Work record tabulation data. Employee ID = TEMPORAL. Pseudonym ID;
In the query (7), the conditional expression “employee master.employee ID = work record total data.employee ID” in the query (4) is decomposed into the right side and the left side, and the real name ID and the pseudonym ID of the table TEMPORAL are Replaced with comparative text. Since the execution result of the query (7) is one record set, it is not necessary to combine the execution results as in (S817).

このように、本実施例で説明した情報処理システム1000によれば、実データベースの内容が、物理的に異なる2つの実データベース1002,1003に管理される場合でも、実名データと偽名データを対応づける必要がある処理を実行することが可能である。また、実施例1では、アプリケーション200から受信したクエリーに基づいて複数のクエリーを生成し、その実行結果の直積をとって1つの実行結果に結合する必要があったが、本実施例ではアプリケーション200から受信したクエリーに基づいて1つのクエリーのみを生成し、また実行結果の結合処理が不要である。また実施例1の情報処理システム100と同様に、本実施例の情報処理システム1000においても、実名テーブル又は偽名テーブルの一方のみを対象とする処理についてはID対応表206の存在有無にかかわらずいつでも実行することが可能であり、また必要な場合には、ID対応表206によって実名テーブルと偽名テーブルの内容を結合し、アプリケーション200が必要とする処理を実行することが可能である。   As described above, according to the information processing system 1000 described in the present embodiment, real name data and pseudonym data are associated with each other even when the contents of the real database are managed by two physically different real databases 1002 and 1003. It is possible to perform necessary processing. In the first embodiment, it is necessary to generate a plurality of queries based on the query received from the application 200, and to take a direct product of the execution results and combine them into one execution result. Only one query is generated on the basis of the query received from, and the execution result joining process is unnecessary. Further, similarly to the information processing system 100 of the first embodiment, also in the information processing system 1000 of the present embodiment, processing for only one of the real name table or the pseudonym table is always performed regardless of the presence or absence of the ID correspondence table 206. If necessary, the contents of the real name table and the pseudonym table can be combined by the ID correspondence table 206 to execute processing required by the application 200.

ところで、本実施例の上記構成では、ID対応表206の内容が、実データベース1002,1003にも格納されてしまうため、本来、分割データベース管理部101のみがアクセス可能な情報として管理されるべきID対応表206の秘密性が損なわれてしまうことになる。ここでID対応表206の秘密性を確保するには、例えば、処理S1118が行われた後にID対応表206の内容を再構築する処理(S1119)を実行するようにする。   By the way, in the above configuration of the present embodiment, the contents of the ID correspondence table 206 are also stored in the real databases 1002 and 1003. Therefore, an ID that should be managed as information that can be originally accessed only by the divided database management unit 101. The confidentiality of the correspondence table 206 will be lost. Here, in order to ensure the confidentiality of the ID correspondence table 206, for example, a process (S1119) for reconstructing the contents of the ID correspondence table 206 after the process S1118 is performed.

図11Bは、ID対応表206の秘密性を向上させた場合における、図11Aの(S1119)の処理の詳細を説明するフローチャート1150である。まずクエリー変換部103が、ID対応表状態判定部104に対してID対応表206にアクセス可能であるかどうかを問い合わせる(S1151)。ID対応表206がアクセス不可であれば(S1151:アクセス不可)、以降のID対応表206の再構築処理を実行せずに処理が終了する。アクセス可であれば(S1151:アクセス可)、次に、クエリー変換部103が、ID攪乱部106に偽名IDの攪乱を要求する(S1152)。このとき、ID攪乱部106は、ロック状態変数を「R/W」に変更する(S1153)。   FIG. 11B is a flowchart 1150 for explaining the details of the processing of (S1119) in FIG. 11A when the confidentiality of the ID correspondence table 206 is improved. First, the query conversion unit 103 inquires of the ID correspondence table state determination unit 104 whether the ID correspondence table 206 is accessible (S1151). If the ID correspondence table 206 is inaccessible (S1151: not accessible), the process is terminated without executing the subsequent reconstruction process of the ID correspondence table 206. If it is accessible (S1151: accessible), the query conversion unit 103 next requests the ID disturbance unit 106 to disturb the pseudonym ID (S1152). At this time, the ID disturbing unit 106 changes the lock state variable to “R / W” (S1153).

次に、ID攪乱部106は、テーブル「TEMPORAL」に格納されている偽名IDを、実名IDに基づいて新たに生成した偽名IDに置き換える(S1154)。ここで偽名IDの生成、及び偽名IDの置き換え処理は、例えば、次のようにして行われる。まず実名IDと乱数とをXOR演算を行うことにより合成し、その結果をキーとしてMD5(Message Digest 5)によって偽名IDを生成する。次に、生成した偽名IDが、ID対応表206に存在する偽名IDと重複しているかどうかをチェックする。重複している場合には、上記乱数を変更し、再び偽名IDの生成処理(S1154)からやり直す。偽名IDが重複していなければ、ID対応表206における古い偽名IDを新しい値で置き換える。   Next, the ID disturbing unit 106 replaces the pseudonym ID stored in the table “TEMPORAL” with the pseudonym ID newly generated based on the real name ID (S1154). Here, the pseudonym ID generation and the pseudonym ID replacement process are performed as follows, for example. First, a real name ID and a random number are synthesized by performing an XOR operation, and a pseudonym ID is generated by MD5 (Message Digest 5) using the result as a key. Next, it is checked whether or not the generated pseudonym ID overlaps with the pseudonym ID existing in the ID correspondence table 206. If they are duplicated, the random number is changed, and the pseudonym ID generation process (S1154) is performed again. If the pseudonym ID is not duplicated, the old pseudonym ID in the ID correspondence table 206 is replaced with a new value.

ID対応表206の置き換え後は、図5Bのテーブル500における偽名ID項目に格納されている項目(ここでは勤務記録304中の従業員ID3041、及び勤務記録集計データ305中の従業員ID3051)に格納されている偽名IDを検索し、検索された偽名IDを新しい値に置き換える(S1155)。次に、ロック状態変数を「OK」に変更し(S1156)、最後にテーブル「TEMPORAL」の内容を削除する(S1157)。   After the replacement of the ID correspondence table 206, it is stored in the items stored in the pseudonym ID item in the table 500 of FIG. 5B (here, the employee ID 3041 in the work record 304 and the employee ID 3051 in the work record total data 305). The searched pseudonym ID is searched, and the searched pseudonym ID is replaced with a new value (S1155). Next, the lock state variable is changed to “OK” (S1156), and finally the contents of the table “TEMPORAL” are deleted (S1157).

以上の仕組みによれば、実データベースを分散データベース管理部1004によって管理する構成であっても、ID対応表206の秘密性を確保することができる。   According to the above mechanism, even if the real database is managed by the distributed database management unit 1004, the confidentiality of the ID correspondence table 206 can be ensured.

==実施例3==
図12に実施例3として説明する情報処理システム1200の構成を示している。また図13は、分割データベース管理部101を中心とした情報処理システム1200の具体的なソフトウエア構成である。実施例3として説明する情報処理システム1200が実施例1における情報処理システム100と異なる点は、ICカード205にID対応表206の代わりに秘密鍵1201が格納されていることである。また、実施例3は、実施例1と比べてICカード205がアクセス可能になった場合における、分割データベース管理部101のID対応表キャッシュ部105の処理にも特徴がある。
== Example 3 ==
FIG. 12 shows the configuration of an information processing system 1200 described as the third embodiment. FIG. 13 shows a specific software configuration of the information processing system 1200 centered on the divided database management unit 101. The information processing system 1200 described as the third embodiment is different from the information processing system 100 in the first embodiment in that a secret key 1201 is stored in the IC card 205 instead of the ID correspondence table 206. The third embodiment is also characterized in the process of the ID correspondence table cache unit 105 of the divided database management unit 101 when the IC card 205 becomes accessible compared to the first embodiment.

図14Aに示すシーケンス1400とともに実施例3におけるID対応表キャッシュ部105の処理について説明する。なお、シーケンス1400が開始される前提として、ICカード206がアクセス不可である場合には、ID対応表キャッシュ部105に、秘密鍵1201で暗号化されたID対応表206が格納されているものとする。   The process of the ID correspondence table cache unit 105 according to the third embodiment will be described together with the sequence 1400 illustrated in FIG. 14A. As a premise of starting the sequence 1400, when the IC card 206 is inaccessible, the ID correspondence table 206 encrypted with the private key 1201 is stored in the ID correspondence table cache unit 105. To do.

図14Aに示すシーケンス1400は、ICカード205の所持者がICカード205をリーダ・ライタ装置等にセットしたのに応じて発生する割込信号に応じて開始される。割込信号が発生すると、ID対応表状態判定部104は、まず秘密鍵1201の読み出しが可能であるかどうかを判定する(S1411)。なお、ICカード205にパスワードが設定されている場合には、パスワード認証が完了していれば読み出し可能な状態である。パスワードが設定されていない場合には、カードの物理的な接続が認識された時点で読み出し可能な状態となる。   A sequence 1400 shown in FIG. 14A is started in response to an interrupt signal generated in response to the holder of the IC card 205 setting the IC card 205 in a reader / writer device or the like. When the interrupt signal is generated, the ID correspondence table state determination unit 104 first determines whether or not the private key 1201 can be read (S1411). When a password is set for the IC card 205, the password can be read if the password authentication is completed. If no password is set, the card can be read out when the physical connection of the card is recognized.

(S1412)の処理では、ID対応表状態判定部104が、ID対応表キャッシュ部105にキャッシュの更新要求を送出する。ID対応表キャッシュ部105は、キャッシュ502へのアクセスを排他制御するために、ロック状態変数を管理している。ロック状態変数については図7Aにおけるのと同様である。(S1413)の処理では、ID対応表キャッシュ部105が、ロック状態変数が「OK」になるまで待機し、ロック状態変数が「OK」になるとロック状態変数を「R/W」に変更している。   In the processing of (S1412), the ID correspondence table state determination unit 104 sends a cache update request to the ID correspondence table cache unit 105. The ID correspondence table cache unit 105 manages lock state variables in order to exclusively control access to the cache 502. The lock state variable is the same as in FIG. 7A. In the processing of (S1413), the ID correspondence table cache unit 105 waits until the lock state variable becomes “OK”, and when the lock state variable becomes “OK”, the lock state variable is changed to “R / W”. Yes.

(S1414)の処理では、ID対応表状態判定部104がICカード205から秘密鍵1201を読み出している。(S1415)の処理では、ID対応表状態判定部104が暗号化された状態で格納されているID対応表206を秘密鍵1201によって復号している。復号されたID対応表206はID対応表キャッシュ部105に格納される。   In the process of (S1414), the ID correspondence table state determination unit 104 reads the secret key 1201 from the IC card 205. In the process of (S1415), the ID correspondence table 206 stored in an encrypted state by the ID correspondence table state determination unit 104 is decrypted with the secret key 1201. The decrypted ID correspondence table 206 is stored in the ID correspondence table cache unit 105.

図14Bに示すシーケンス1420は、ICカード205の所持者がICカード205をリーダ・ライタ装置等から引き抜くことにより、ICカード205が通信ネットワークから切断された場合に発生する割込信号に応じて開始される。なお、このシーケンス1420は、分割データベース管理部101によって行われる。   The sequence 1420 shown in FIG. 14B starts in response to an interrupt signal generated when the IC card 205 is disconnected from the communication network by the IC card 205 holder being pulled out of the reader / writer device or the like. Is done. This sequence 1420 is performed by the divided database management unit 101.

(S1421)の処理では、ID対応表状態判定部104が、ID対応表キャッシュ部105に対しキャッシュ(メモリ62)に復号化されているID対応表206及び秘密鍵を破棄(消去)するための要求を送出している。(S1422)の処理では、ID対応表キャッシュ部105は、ロック状態変数が「OK」になるまで待機し、ロック状態変数が「OK」になるとロック変数を「R/W」に変更している。(S1423)の処理では、ID対応表キャッシュ部105が、キャッシュ(メモリ62)に復号化されているID対応表206及び秘密鍵を破棄(消去)している。(S1424)の処理では、ID対応表キャッシュ部105が、ロック状態変数に「OK」を設定している。   In the processing of (S1421), the ID correspondence table state determination unit 104 discards (deletes) the ID correspondence table 206 and the private key decrypted in the cache (memory 62) with respect to the ID correspondence table cache unit 105. A request is being sent out. In the processing of (S1422), the ID correspondence table cache unit 105 waits until the lock state variable becomes “OK”, and changes the lock variable to “R / W” when the lock state variable becomes “OK”. . In the process of (S1423), the ID correspondence table cache unit 105 discards (deletes) the ID correspondence table 206 and the private key decrypted in the cache (memory 62). In the processing of (S1424), the ID correspondence table cache unit 105 sets “OK” in the lock state variable.

このように、実施例3では、ID対応表206そのものをICカード205に記憶しなくて良いため、ICカード205に実装すべきメモリの容量が少なくて済む。またID対応表206の格納件数がICカード205の記憶容量に無関係となり、データサイズの大きなID対応表206を取り扱うことが可能となる。また分割データベース管理部101は、秘密鍵だけを読み出せば良いので、ID対応表206を読み出す場合に比べて負荷が少なく、処理を高速化することができる。   As described above, in the third embodiment, since the ID correspondence table 206 itself does not need to be stored in the IC card 205, the memory capacity to be mounted on the IC card 205 can be reduced. Further, the number of items stored in the ID correspondence table 206 becomes irrelevant to the storage capacity of the IC card 205, and the ID correspondence table 206 having a large data size can be handled. Further, since the divided database management unit 101 only needs to read out the secret key, the load is less than in the case of reading out the ID correspondence table 206, and the processing can be speeded up.

ところで、以上に説明した実施例3の構成は、実施例2に適用することも可能である。ここで実施例3は、ICカード205にはID対応表206を格納しない構成であるので、図11Aに示す実施例2のID対応表206の再構築処理(S1119)の内容が異なる。すなわち、実施例3を実施例2に適用した場合には、例えば、偽名IDを新たな偽名IDで置き換えた後のID対応表206を秘密鍵1201の複製鍵で暗号化し、これを新たに前述の暗号化済みのID対応表206として記憶することになる。   Incidentally, the configuration of the third embodiment described above can be applied to the second embodiment. Here, since the third embodiment has a configuration in which the ID correspondence table 206 is not stored in the IC card 205, the content of the reconstruction process (S1119) of the ID correspondence table 206 of the second embodiment shown in FIG. 11A is different. That is, when the third embodiment is applied to the second embodiment, for example, the ID correspondence table 206 after the pseudonym ID is replaced with the new pseudonym ID is encrypted with the duplicate key of the secret key 1201, and this is newly described above. Is stored as the encrypted ID correspondence table 206.

なお、以上の実施形態の説明は本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明はその趣旨を逸脱することなく、変更、改良され得ると共に本発明にはその等価物が含まれることは勿論である。   The above description of the embodiment is for facilitating understanding of the present invention, and does not limit the present invention. It goes without saying that the present invention can be changed and improved without departing from the gist thereof, and that the present invention includes equivalents thereof.

本発明の実施例1として説明する情報処理システム100の構成を示す図である。It is a figure which shows the structure of the information processing system 100 demonstrated as Example 1 of this invention. 本発明の実施例1として説明する情報処理システム100の構成を示す図である。It is a figure which shows the structure of the information processing system 100 demonstrated as Example 1 of this invention. 本発明の実施例1として説明する、分割データベース管理部101、アプリケーション200、実データベース111、を実現するために用いられるコンピュータのハードウエア構成の一例を示す図である。It is a figure which shows an example of the hardware constitutions of the computer used in order to implement | achieve the division | segmentation database management part 101, the application 200, and the real database 111 demonstrated as Example 1 of this invention. 本発明の実施例1として説明する、分割データベース管理部101を中心とした情報処理システム100の具体的なソフトウエア構成を示す図である。It is a figure which shows the specific software structure of the information processing system 100 centering on the division | segmentation database management part 101 demonstrated as Example 1 of this invention. 本発明の実施例1として説明する、分割データベース管理部101を中心とした情報処理システム100の具体的なソフトウエア構成を示す図である。It is a figure which shows the specific software structure of the information processing system 100 centering on the division | segmentation database management part 101 demonstrated as Example 1 of this invention. 本発明の実施例1として説明する、従業員マスタ303の内容の一例を示す図である。It is a figure which shows an example of the content of the employee master 303 demonstrated as Example 1 of this invention. 本発明の実施例1として説明する、勤務記録304の内容の一例を示す図である。It is a figure which shows an example of the content of the work record 304 demonstrated as Example 1 of this invention. 本発明の実施例1として説明する、勤務記録集計データ305の内容の一例を示す図である。It is a figure which shows an example of the content of the work record total data 305 demonstrated as Example 1 of this invention. 本発明の実施例1として説明する、給与計算アプリケーション202によって出力されるデータの一例を示す図である。It is a figure which shows an example of the data output by the salary calculation application 202 demonstrated as Example 1 of this invention. 本発明の実施例1として説明する、リソース定義データベース108に格納されているテーブルの一例を示す図である。It is a figure which shows an example of the table stored in the resource definition database 108 demonstrated as Example 1 of this invention. 本発明の実施例1として説明する、リソース定義データベース108に格納されているテーブルの一例を示す図である。It is a figure which shows an example of the table stored in the resource definition database 108 demonstrated as Example 1 of this invention. 本発明の実施例1として説明する、応答定義データベース109に格納されるテーブルの一例を示す図である。It is a figure which shows an example of the table stored in the response definition database 109 demonstrated as Example 1 of this invention. 本発明の実施例1として説明する、ID対応表206の一例を示す図である。It is a figure which shows an example of the ID corresponding | compatible table 206 demonstrated as Example 1 of this invention. 本発明の実施例1として説明する、ID対応表206の一例を示す図である。It is a figure which shows an example of the ID corresponding | compatible table 206 demonstrated as Example 1 of this invention. 本発明の実施例1として説明する、ID対応表206を参照せずに行われる、出勤管理アプリケーション204が実データベース111にアクセスする処理を説明するフローチャートである。It is a flowchart explaining the process in which the attendance management application 204 accesses the real database 111 performed without referring to the ID correspondence table 206, which will be described as the first embodiment of the present invention. 本発明の実施例1として説明する、出勤管理アプリケーション204から上記クエリーが送信されてきた場合に分割データベース管理部101によって行われる処理を説明するフローチャートである。It is a flowchart explaining the process performed by the division | segmentation database management part 101 when the said query is transmitted from the attendance management application 204 demonstrated as Example 1 of this invention. 本発明の実施例1として説明する、ICカード205の所持者がICカード205をリーダ・ライタ装置等にセットしたのに応じて発生する割込信号に応じて開始される処理を説明するシーケンス図である。Sequence diagram for explaining processing started in response to an interrupt signal generated in response to an owner of an IC card 205 setting the IC card 205 in a reader / writer device or the like, described as a first embodiment of the present invention It is. 本発明の実施例1として説明する、ICカード205の所持者がICカード205をリーダ・ライタ装置等から引き抜くことにより、ICカード205が通信ネットワークから切断された場合に発生する割込信号に応じて開始される処理を説明するシーケンス図である。According to the interrupt signal generated when the IC card 205 is disconnected from the communication network by the holder of the IC card 205 withdrawing the IC card 205 from the reader / writer device or the like, which is described as the first embodiment of the present invention. It is a sequence diagram explaining the process started in this. 本発明の実施例1として説明する、(S624)のクエリー変換処理の詳細を説明するフローチャートである。It is a flowchart explaining the detail of the query conversion process of (S624) demonstrated as Example 1 of this invention. 本発明の実施例2として説明する、報処理システム1000の構成を示す図である。It is a figure which shows the structure of the information processing system 1000 demonstrated as Example 2 of this invention. 本発明の実施例2として説明する、分割データベース管理部101を中心とした情報処理システム1000の具体的なソフトウエア構成を示す図である。It is a figure which shows the specific software structure of the information processing system 1000 centering on the division | segmentation database management part 101 demonstrated as Example 2 of this invention. 本発明の実施例2として説明する、情報処理システム1000における分割データベース管理部101の処理を説明するフローチャート1100を示す図である。It is a figure which shows the flowchart 1100 explaining the process of the division | segmentation database management part 101 in the information processing system 1000 demonstrated as Example 2 of this invention. 本発明の実施例2として説明する、図11Aの(S1119)の処理の詳細を説明する図である。It is a figure explaining the detail of the process of (S1119) of FIG. 11A demonstrated as Example 2 of this invention. 本発明の実施例3として説明する、情報処理システム1200の構成を示す図である。It is a figure which shows the structure of the information processing system 1200 demonstrated as Example 3 of this invention. 本発明の実施例3として説明する、分割データベース管理部101を中心とした情報処理システム1200の具体的なソフトウエア構成を示す図である。It is a figure which shows the specific software structure of the information processing system 1200 centering on the division | segmentation database management part 101 demonstrated as Example 3 of this invention. 本発明の実施例3として説明する、ID対応表キャッシュ部105の処理を説明する図である。It is a figure explaining the process of the ID corresponding table cache part 105 demonstrated as Example 3 of this invention. 本発明の実施例3として説明する、ID対応表キャッシュ部105の処理を説明する図である。It is a figure explaining the process of the ID corresponding table cache part 105 demonstrated as Example 3 of this invention.

符号の説明Explanation of symbols

100 情報処理システム
101 分割データベース管理部
102 仮想データベースI/F部
103 クエリー変換部
104 ID対応表状態判定部
105 ID対応表キャッシュ部
106 ID攪乱部
107 実データベースI/F部
108 リソース定義データベース
109 応答定義データベース
111 実データベース
200 アプリケーション
202 給与計算アプリケーション
203 出勤記録集計アプリケーション
204 出勤管理アプリケーション
205 ICカード
206 ID対応表
100 Information Processing System 101 Divided Database Management Unit 102 Virtual Database I / F Unit 103 Query Conversion Unit 104 ID Corresponding Table State Determination Unit 105 ID Corresponding Table Cache Unit 106 ID Disturbing Unit 107 Real Database I / F Unit 108 Resource Definition Database 109 Response Definition database 111 Real database 200 Application 202 Payroll application 203 Attendance record totaling application 204 Attendance management application 205 IC card 206 ID correspondence table

Claims (15)

CPU及びメモリと、
実名データを含む実名テーブル及び偽名データを含む偽名テーブルが格納されるデータベースに接続するインタフェースと、
前記実名データと前記偽名データとの対応表が記録された記録媒体から前記対応表を読み出すインタフェースと、
前記対応表へのアクセス可否を判定する状態判定部と、
前記データベースに対して実行されるクエリーを受信するクエリー受信部と、
受信した前記クエリーの実行に際し、前記実名データと前記偽名データとの対応づけが必要であるかどうかを判定するクエリー判定部と、
前記対応づけが必要であると判定され、かつ、前記対応表にアクセス可能な状態である場合には、前記対応表に基づいて、受信した前記クエリーを新たなクエリーに変換するクエリー変換部と、
前記クエリーを前記データベースに送信するインタフェースと、
を有すること
を特徴とする情報処理装置。
CPU and memory;
An interface for connecting to a database storing a real name table including real name data and a pseudonym table including pseudonym data;
An interface for reading the correspondence table from a recording medium in which a correspondence table of the real name data and the pseudonym data is recorded;
A state determination unit that determines whether or not access to the correspondence table is possible;
A query receiver for receiving a query executed on the database;
A query determination unit that determines whether the real name data and the pseudonym data need to be associated with each other when executing the received query;
A query conversion unit for converting the received query into a new query based on the correspondence table when it is determined that the association is necessary and the correspondence table is accessible;
An interface for sending the query to the database;
An information processing apparatus characterized by comprising:
請求項1に記載の情報処理装置であって、
前記クエリー変換部によって生成される前記新たなクエリーには、
前記実名データによって前記実名テーブルにアクセスするように記述された第1のクエリーと、前記偽名データによって前記偽名テーブルにアクセスするように記述された第2のクエリーとが含まれること
を特徴とする情報処理装置。
The information processing apparatus according to claim 1,
The new query generated by the query conversion unit includes
A first query described to access the real name table by the real name data; and a second query described to access the pseudonym table by the pseudonym data. Processing equipment.
請求項1に記載の情報処理装置であって、
前記クエリー変換部によって生成される前記新たなクエリーには、
前記実名データによる前記実名テーブルへのアクセスと、前記偽名データによる前記偽名テーブルへのアクセスと、テーブル化された前記対応表への、前記実名データ又は前記偽名データによるアクセスと、を実行するように記述されたクエリーが含まれること
を特徴とする情報処理装置。
The information processing apparatus according to claim 1,
The new query generated by the query conversion unit includes
An access to the real name table by the real name data, an access to the pseudonym table by the pseudonym data, and an access by the real name data or the pseudonym data to the tabulated correspondence table are executed. An information processing apparatus characterized by including a described query.
請求項1に記載の情報処理装置であって、
前記対応づけが必要であると判定され、かつ、前記対応表にアクセスできない場合において、前記受信したクエリーの送信元に、前記送信元ごとに用意された応答を送信するインタフェースを有すること
を特徴とする情報処理装置。
The information processing apparatus according to claim 1,
An interface for transmitting a response prepared for each of the transmission sources to the transmission source of the received query when it is determined that the association is necessary and the correspondence table cannot be accessed; Information processing apparatus.
請求項1に記載の情報処理装置であって、
前記状態判定部は、前記記録媒体と通信可能になった場合に生じる割込信号の発生に応じて前記記録媒体に対する認証処理を行い、前記認証処理に成功した場合には、前記記録媒体から前記対応表の複製を記憶するための処理を行い、さらに、前記クエリーの変換中は前記対応表の前記複製に対する排他制御を行うこと
を特徴とする情報処理装置。
The information processing apparatus according to claim 1,
The state determination unit performs an authentication process on the recording medium in response to an interrupt signal generated when communication with the recording medium becomes possible, and when the authentication process is successful, from the recording medium An information processing apparatus that performs processing for storing a copy of a correspondence table, and further performs exclusive control on the copy of the correspondence table during conversion of the query.
請求項5に記載の情報処理装置であって、
前記状態判定部は、前記記録媒体と通信不能になった場合に生じる割込信号の発生に応じて記憶している前記対応表の前記複製に対するアクセスが存在するかどうかを判定し、アクセスが行われていない場合は前記複製の内容を消去すること
を特徴とする情報処理装置。
The information processing apparatus according to claim 5,
The state determination unit determines whether or not there is access to the duplicate of the stored correspondence table in response to the generation of an interrupt signal generated when communication with the recording medium is disabled. If not, the information processing apparatus deletes the contents of the copy.
請求項1に記載の情報処理装置であって、
前記実名テーブルは第1のデータベースに格納され、
前記偽名テーブルは第2のデータベースに格納され、
前記第1のデータベースと前記第2のデータベースとを1つのデータベースとして提供する分散データベース管理部を有し、
前記クエリー変換部によって生成される前記新たなクエリーは、
前記実名データによる前記実名テーブルへのアクセスと、前記偽名データによる前記偽名テーブルへのアクセスと、テーブル化された前記対応表への前記実名データ又は前記偽名データによるアクセスと、を実行するように記述されたクエリーが含まれること
を特徴とする情報処理装置。
The information processing apparatus according to claim 1,
The real name table is stored in a first database;
The pseudonym table is stored in a second database;
A distributed database management unit that provides the first database and the second database as one database;
The new query generated by the query converter is
The access to the real name table by the real name data, the access to the pseudonym table by the pseudonym data, and the access by the real name data or the pseudonym data to the tabulated correspondence table are described. An information processing apparatus characterized in that a processed query is included.
請求項7に記載の情報処理装置であって、
前記記録媒体に記録されているID対応表の偽名IDを、新たに生成した偽名IDによって置換し、前記偽名テーブルに格納されている置換前の前記偽名IDを、前記置換後の偽名IDに変更すること
を特徴とする情報処理装置。
The information processing apparatus according to claim 7,
The pseudonym ID of the ID correspondence table recorded on the recording medium is replaced with a newly generated pseudonym ID, and the pseudonym ID before replacement stored in the pseudonym table is changed to the pseudonym ID after replacement. An information processing apparatus characterized by:
CPU及びメモリと、
実名データを含む実名テーブルと、偽名データを含む偽名テーブルとが格納されるデータベースに接続するインタフェースと、
秘密鍵が記録されている記録媒体から前記秘密鍵を読み出すインタフェースと、
前記秘密鍵で暗号化された、前記実名データと前記偽名データとの対応表を記憶する対応表記憶部と、
前記対応表へのアクセス可否を判定するとともに、前記記録媒体から読み出した前記秘密鍵によって前記対応表を復号する状態判定部と、
前記データベースに対して実行されるクエリーを受信するクエリー受信部と、
受信した前記クエリーの実行に際し、前記実名データと前記偽名データとを対応づける必要があるかどうかを判定するクエリー判定部と、
前記対応づけが必要であると判定され、かつ、前記対応表にアクセス可能な状態である場合に、受信した前記クエリーを、復号された前記対応表に基づいて新たなクエリーに変換するクエリー変換部と、
前記クエリーを前記データベースに送信するインタフェースと、
を有すること
を特徴とする情報処理装置。
CPU and memory;
An interface for connecting to a database storing a real name table including real name data and a pseudonym table including pseudonym data;
An interface for reading out the secret key from the recording medium on which the secret key is recorded;
A correspondence table storage unit for storing a correspondence table of the real name data and the pseudonym data, encrypted with the secret key;
A state determination unit that determines whether to access the correspondence table, and decrypts the correspondence table with the secret key read from the recording medium;
A query receiver for receiving a query executed on the database;
A query determination unit that determines whether the real name data and the pseudonym data need to be associated with each other when executing the received query;
A query conversion unit that converts the received query into a new query based on the decoded correspondence table when it is determined that the association is necessary and the correspondence table is accessible When,
An interface for sending the query to the database;
An information processing apparatus characterized by comprising:
請求項9に記載の情報処理装置であって、
前記状態判定部は、前記記録媒体と通信不能になった場合に生じる割込信号の発生に応じて、復号された状態で記憶している前記対応表及び記憶している前記秘密鍵を消去する処理を実行すること
を特徴とする情報処理装置。
The information processing apparatus according to claim 9,
The state determination unit erases the correspondence table stored in the decrypted state and the stored secret key in response to an interrupt signal generated when communication with the recording medium is disabled. An information processing apparatus characterized by executing processing.
CPU及びメモリと、実名データを含む実名テーブル及び偽名データを含む偽名テーブルが格納されるデータベースに接続するインタフェースとを有する情報処理装置の制御方法であって、
前記実名データと前記偽名データとの対応表が記録された記録媒体から前記対応表を読み出すステップと、
前記対応表へのアクセス可否を判定するステップと、
前記データベースに対して実行されるクエリーを受信するステップと、
受信した前記クエリーの実行に際し、前記実名データと前記偽名データとを対応づける必要があるかどうかを判定するステップと、
前記対応づけが必要であると判定し、かつ、前記対応表にアクセス可能な状態である場合に、前記対応表に基づいて、受信した前記クエリーを新たなクエリーに変換するステップと、
前記クエリーを前記データベースに送信するステップと、
を有すること
を特徴とする情報処理装置の制御方法。
A control method for an information processing apparatus having a CPU and a memory, and an interface connected to a database storing a real name table including real name data and a pseudonym table including pseudonym data,
Reading the correspondence table from a recording medium in which a correspondence table of the real name data and the pseudonym data is recorded;
Determining whether to access the correspondence table;
Receiving a query to be executed against the database;
Determining whether it is necessary to associate the real name data and the pseudonym data in executing the received query;
Converting the received query into a new query based on the correspondence table when it is determined that the correspondence is necessary and the correspondence table is accessible; and
Sending the query to the database;
A method for controlling an information processing apparatus, comprising:
請求項11に記載の情報処理装置の制御方法であって、
前記クエリー変換部によって生成される前記新たなクエリーには、
前記実名データによって前記実名テーブルにアクセスするように記述された第1のクエリーと、前記偽名データによって前記偽名テーブルにアクセスするように記述された第2のクエリーとが含まれること
を特徴とする情報処理装置の制御方法。
A control method for an information processing apparatus according to claim 11,
The new query generated by the query conversion unit includes
A first query described to access the real name table by the real name data; and a second query described to access the pseudonym table by the pseudonym data. A method for controlling a processing apparatus.
請求項11に記載の情報処理装置の制御方法であって、
前記クエリー変換部によって生成される前記新たなクエリーは、
前記実名データによる前記実名テーブルへのアクセスと、前記偽名データによる前記偽名テーブルへのアクセスと、テーブル化された前記対応表への前記実名データ又は前記偽名データによるアクセスとを実行するように記述されたクエリーが含まれること
を特徴とする情報処理装置の制御方法。
A control method for an information processing apparatus according to claim 11,
The new query generated by the query converter is
It is described to execute access to the real name table by the real name data, access to the pseudonym table by the pseudonym data, and access by the real name data or the pseudonym data to the table corresponding to the table. A method for controlling an information processing apparatus, characterized in that a query is included.
請求項11に記載の情報処理装置の制御方法であって、
前記対応づけが必要であると判定され、かつ、前記対応表にアクセスできない場合において、前記受信したクエリーの送信元に、前記送信元ごとに用意された応答を送信するステップを含むこと
を特徴とする情報処理装置の制御方法。
A control method for an information processing apparatus according to claim 11,
A step of transmitting a response prepared for each of the transmission sources to the transmission source of the received query when it is determined that the association is necessary and the correspondence table is not accessible. Control method for information processing apparatus.
CPUとメモリとを有してなる情報処理装置に、
実名データを含む実名テーブル及び偽名データを含む偽名テーブルが格納されたデータベースに接続する機能と、
前記実名データと前記偽名データとの対応表が記録された記録媒体から前記対応表を読み出す機能と、
前記対応表へのアクセス可否を判定する機能と、
前記データベースに対して実行されるクエリーを受信する機能と、
受信した前記クエリーの実行に際し、前記実名データと前記偽名データとの対応づけが必要であるかどうかを判定する機能と、
前記対応づけが必要であると判定され、かつ、前記対応表にアクセス可能な状態である場合に、前記対応表に基づいて、受信した前記クエリーを新たなクエリーに変換する機能と、
前記クエリーを前記データベースに送信する機能と、
を実現するためのプログラム。

In an information processing apparatus having a CPU and a memory,
A function for connecting to a database in which a real name table including real name data and a pseudonym table including pseudonym data are stored;
A function of reading the correspondence table from a recording medium in which a correspondence table of the real name data and the pseudonym data is recorded;
A function for determining whether to access the correspondence table;
Receiving a query executed against the database;
A function for determining whether the real name data and the pseudonym data need to be associated with each other when executing the received query;
A function of converting the received query into a new query based on the correspondence table when it is determined that the correspondence is necessary and the correspondence table is accessible;
A function of sending the query to the database;
Program to realize.

JP2005303116A 2005-10-18 2005-10-18 Information processing apparatus, information processing apparatus control method, and program Expired - Fee Related JP4672518B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005303116A JP4672518B2 (en) 2005-10-18 2005-10-18 Information processing apparatus, information processing apparatus control method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005303116A JP4672518B2 (en) 2005-10-18 2005-10-18 Information processing apparatus, information processing apparatus control method, and program

Publications (2)

Publication Number Publication Date
JP2007114855A true JP2007114855A (en) 2007-05-10
JP4672518B2 JP4672518B2 (en) 2011-04-20

Family

ID=38096995

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005303116A Expired - Fee Related JP4672518B2 (en) 2005-10-18 2005-10-18 Information processing apparatus, information processing apparatus control method, and program

Country Status (1)

Country Link
JP (1) JP4672518B2 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009199144A (en) * 2008-02-19 2009-09-03 Fuji Xerox Co Ltd Information processor and history information management program
JP2012089086A (en) * 2010-10-22 2012-05-10 Ricoh Co Ltd Information management device, information management program and information management system
JP2014178911A (en) * 2013-03-15 2014-09-25 Hitachi Omron Terminal Solutions Corp Automatic machine system
JP2014194662A (en) * 2013-03-28 2014-10-09 Fujitsu Ltd Data retrieval method, data retrieval program and repeating device
JP2015041319A (en) * 2013-08-23 2015-03-02 株式会社リコー Data management device, data management method, and program
JP2016151822A (en) * 2015-02-16 2016-08-22 富士通株式会社 Storage system, storage control device, and storage control program
JP2019511779A (en) * 2016-03-18 2019-04-25 オラクル・インターナショナル・コーポレイション System and method for providing data residency protection using a remote proxy

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001357130A (en) * 2000-06-13 2001-12-26 Hitachi Ltd Clinical information management system
JP2002182962A (en) * 2000-12-11 2002-06-28 Saito:Kk Security system, security method and program
JP2004145483A (en) * 2002-10-22 2004-05-20 Toshiba Corp System and method for sharing information

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001357130A (en) * 2000-06-13 2001-12-26 Hitachi Ltd Clinical information management system
JP2002182962A (en) * 2000-12-11 2002-06-28 Saito:Kk Security system, security method and program
JP2004145483A (en) * 2002-10-22 2004-05-20 Toshiba Corp System and method for sharing information

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009199144A (en) * 2008-02-19 2009-09-03 Fuji Xerox Co Ltd Information processor and history information management program
JP2012089086A (en) * 2010-10-22 2012-05-10 Ricoh Co Ltd Information management device, information management program and information management system
JP2014178911A (en) * 2013-03-15 2014-09-25 Hitachi Omron Terminal Solutions Corp Automatic machine system
JP2014194662A (en) * 2013-03-28 2014-10-09 Fujitsu Ltd Data retrieval method, data retrieval program and repeating device
JP2015041319A (en) * 2013-08-23 2015-03-02 株式会社リコー Data management device, data management method, and program
JP2016151822A (en) * 2015-02-16 2016-08-22 富士通株式会社 Storage system, storage control device, and storage control program
JP2019511779A (en) * 2016-03-18 2019-04-25 オラクル・インターナショナル・コーポレイション System and method for providing data residency protection using a remote proxy

Also Published As

Publication number Publication date
JP4672518B2 (en) 2011-04-20

Similar Documents

Publication Publication Date Title
US10719567B2 (en) Database query processing on encrypted data
US9875370B2 (en) Database server and client for query processing on encrypted data
US9652512B2 (en) Secure matching supporting fuzzy data
EP3093784B1 (en) Client computer for querying a database stored on a server via a network
JP3969467B2 (en) Network system, transmission / reception method, transmission device, reception device, and recording medium
JP5611598B2 (en) Encryption key container on USB token
US20210004373A1 (en) Facilitating queries of encrypted sensitive data via encrypted variant data objects
JP4672518B2 (en) Information processing apparatus, information processing apparatus control method, and program
EP3278263B1 (en) Computing on encrypted data using deferred evaluation
US20210357516A1 (en) Method for duplexing database
US10657273B2 (en) Systems and methods for automatic and customizable data minimization of electronic data stores
US20220067206A1 (en) Token-based data security systems and methods with embeddable markers in unstructured data
EP3707635B1 (en) Online determination of result set sensitivity
US20140137265A1 (en) System and Method For Securing Critical Data In A Remotely Accessible Database
US20230379158A1 (en) Snapshot transfer for cloud-based storage across accounts
US20210374119A1 (en) Data update apparatus and data update method
KR102235775B1 (en) Personal information processing agency and management method and computer program
US20240143839A1 (en) Token-based data security systems and methods with cross-referencing tokens in freeform text within structured document
US20230177207A1 (en) Information processing apparatus, information processing method, and non-transitory computer readable medium
JP2017215785A (en) Authority test device and program
US20220123925A1 (en) Security enhanced blockchain system based on data double encryption and decryption
JP2001298447A (en) Electronic data acquisition method, electronic data delivery method and storage medium
CN113935046A (en) Data processing method, device, equipment and storage medium
JP2022084349A (en) Computer system and digital asset disposal method
JP2004086421A (en) Document management method, document management device, document management program, and recording medium recording it

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071214

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101015

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101026

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101224

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110118

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110119

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140128

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees