(57)【特許請求の範囲】
【請求項１】
登録ＩＤを持つエントリデータを管理するデータベースに対してエントリデータを登録するときに、該データベースへの重複エントリをチェックする処理を行うデータベース管理装置であって、
登録対象のエントリデータが複数ある場合に、それらの登録対象のエントリデータの持つ登録ＩＤを構成する規定位置の文字列情報を取り出して、それらの取り出した文字列情報の一覧について記録するテーブルを作成する作成手段と、
上記データベースからエントリデータの持つ登録ＩＤを１つずつ読み出し、該登録ＩＤを構成する上記規定位置の文字列情報が上記テーブルに記録されているのか否かを判断することで、該登録ＩＤが登録対象のエントリデータの持つ登録ＩＤである可能性があるのか否かを判断する第１の判断手段と、
上記第１の判断手段が可能性ありと判断する登録ＩＤと、登録対象のエントリデータの持つ登録ＩＤとが一致するのか否かを判断することで、登録対象のエントリデータが重複エントリデータであるのか否かを判断する第２の判断手段とを備えることを、
特徴とするデータベース管理装置。
【請求項２】
登録ＩＤを持つエントリデータを管理するデータベースに対してエントリデータを登録するときに、該データベースへの重複エントリをチェックする処理を行うデータベース管理装置であって、
登録対象のエントリデータが複数ある場合に、それらの登録対象のエントリデータの持つ登録ＩＤを構成する規定位置の文字列情報を取り出して、その規定位置に位置する文字列情報の取りうる一覧について記録するテーブル構造を有して、その規定位置に位置する文字列情報の有無情報について記録するテーブルに対して、その取り出した文字列情報の存在を示す情報を記録することで、そのテーブルを作成する作成手段と、
上記データベースからエントリデータの持つ登録ＩＤを１つずつ読み出し、該登録ＩＤを構成する上記規定位置の文字列情報が上記テーブルに存在有りとして記録されているのか否かを判断することで、該登録ＩＤが登録対象のエントリデータの持つ登録ＩＤである可能性があるのか否かを判断する第１の判断手段と、
上記第１の判断手段が可能性ありと判断する登録ＩＤと、登録対象のエントリデータの持つ登録ＩＤとが一致するのか否かを判断することで、登録対象のエントリデータが重複エントリデータであるのか否かを判断する第２の判断手段とを備えることを、
特徴とするデータベース管理装置。
【請求項３】
登録ＩＤを持つエントリデータを管理するデータベースに対してエントリデータを登録するときに、該データベースへの重複エントリをチェックする処理を行うデータベース管理装置の実現に用いられるプログラムが記録されるプログラム記録媒体であって、
登録対象のエントリデータが複数ある場合に、それらの登録対象のエントリデータの持つ登録ＩＤを構成する規定位置の文字列情報を取り出して、それらの取り出した文字列情報の一覧について記録するテーブルを作成する作成処理と、
上記データベースからエントリデータの持つ登録ＩＤを１つずつ読み出し、該登録ＩＤを構成する上記規定位置の文字列情報が上記テーブルに記録されているのか否かを判断することで、該登録ＩＤが登録対象のエントリデータの持つ登録ＩＤである可能性があるのか否かを判断する第１の判断処理と、
上記第１の判断処理で可能性ありと判断する登録ＩＤと、登録対象のエントリデータの持つ登録ＩＤとが一致するのか否かを判断することで、登録対象のエントリデータが重複エントリデータであるのか否かを判断する第２の判断処理とをコンピュータに実行させるためのプログラムが記録されることを、
特徴とするプログラム記録媒体。
【請求項４】
登録ＩＤを持つエントリデータを管理するデータベースに対してエントリデータを登録するときに、該データベースへの重複エントリをチェックする処理を行うデータベース管理装置の実現に用いられるプログラムが記録されるプログラム記録媒体であって、
登録対象のエントリデータが複数ある場合に、それらの登録対象のエントリデータの持つ登録ＩＤを構成する規定位置の文字列情報を取り出して、その規定位置に位置する文字列情報の取りうる一覧について記録するテーブル構造を有して、その規定位置に位置する文字列情報の有無情報について記録するテーブルに対して、その取り出した文字列情報の存在を示す情報を記録することで、そのテーブルを作成する作成処理と、
上記データベースからエントリデータの持つ登録ＩＤを１つずつ読み出し、該登録ＩＤを構成する上記規定位置の文字列情報が上記テーブルに存在有りとして記録されているのか否かを判断することで、該登録ＩＤが登録対象のエントリデータの持つ登録ＩＤである可能性があるのか否かを判断する第１の判断処理と、
上記第１の判断処理で可能性ありと判断する登録ＩＤと、登録対象のエントリデータの持つ登録ＩＤとが一致するのか否かを判断することで、登録対象のエントリデータが重複エントリデータであるのか否かを判断する第２の判断処理とをコンピュータに実行させるためのプログラムが記録されることを、
特徴とするプログラム記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、登録ＩＤを持つエントリデータを管理するデータベースに対してエントリデータを登録するときに、そのデータベースへの重複エントリをチェックする処理を行うデータベース管理装置と、その装置の実現に用いられるプログラムが記録されるプログラム記録媒体とに関し、特に、重複エントリを高速にチェックできるようにするデータベース管理装置と、その装置の実現に用いられるプログラムが記録されるプログラム記録媒体とに関する。
【０００２】
【従来の技術】
遺伝子の本体はＤＮＡと呼ばれる物質である。ＤＮＡは４種類の塩基が一列につながって構成されている。この塩基の並びを塩基配列と言う。生物の体を構成したり、酵素などの生体内での様々な機能を担う主要な物質は蛋白質であるが、この蛋白質を構成する２０種類のアミノ酸の一列の並び一組が、遺伝子の塩基配列によって決定されている。実際には、連続した３つの塩基の並び一組が１つのアミノ酸に対応している。
【０００３】
ＤＮＡの塩基配列や蛋白質のアミノ酸配列として表される遺伝子配列は、塩基それぞれ、あるいはアミノ酸それぞれを１文字とした文字列で記述することができる。例えば、４種類の塩基は名前の頭文字を取って、Ａ、Ｔ、Ｇ、Ｃで表される。
【０００４】
文字列で表記された遺伝子配列は、ＤＮＡデータベースへと蓄積される。現在までに明らかにされた遺伝子の塩基配列は、日本、欧州、米国の共同により構築されているＤＤＢＪ／ＥＭＢＬ／ＧenＢank 国際塩基配列データベースに登録されている。
【０００５】
図９に、このＤＮＡデータベースの内部構造を図示する。このＤＮＡデータベースに登録されるＤＮＡデータには、固有のアクセッション番号（図中のＵ７５８６５）が付されており、遺伝子の塩基配列情報以外に、その遺伝子を持つ生物名や、その遺伝子から作られる蛋白質の名前などの関連情報が記述されている。同様に、蛋白質でも、ＰＩＲ／ＳＷＩＳＳ−ＰＲＯＴといったアミノ酸配列データベースが構築されている。
【０００６】
なお、上述のアクセッション番号は、これまでは、「アルファベット１文字＋数字５桁」という６桁で構成されるものが用いられてきたが、ＤＮＡデータベースに登録されるＤＮＡデータが大量になることで、最近では、「アルファベット２文字＋数字６桁」という８桁で構成されるものが用いられている。
【０００７】
このＤＮＡデータベースは、定期的にリリースされるリリースデータベースと、このリリースデータベースの発行以後に登録されたＤＮＡデータが格納されるデイリーアップデートデータベースとで構成されている。デイリーアップデートデータベースには、日々、ＤＮＡデータが登録され、このデイリーアップデートデータベースのＤＮＡデータは、数カ月毎に、リリースデータベースに追加されてリリースされることになる。
【０００８】
デイリーアップデートデータベースに登録されるＤＮＡデータには、新規のＤＮＡデータの他に、既にリリースデータベースに登録されたＤＮＡデータに修正や変更を加えたＤＮＡデータがある。これから、デイリーアップデートデータベースとリリースデータベースとに、同一のアクセッション番号を持つＤＮＡデータが存在することが起こる。更に、連続して同一のＤＮＡデータの修正や変更が行われると、デイリーアップデートデータベースに、同一のアクセッション番号を持つ複数のＤＮＡデータが存在することになる。
【０００９】
ＤＮＡデータベースの発行元機関（ＤＤＢＪ／ＥＭＢＬ／ＧenＢank ）は、新規のＤＮＡデータに対してアクセッション番号を必ずしも連続して割り当てていないなどの理由から、デイリーアップデートデータベースに登録されたＤＮＡデータ（アクセッション番号）が既にリリースデータベースに登録されているＤＮＡデータ（アクセッション番号）かどうかを判断することはできない。
【００１０】
生物学の研究のために、アクセッション番号によるデータ検索が一般的に行われているが、同一のアクセッション番号を持つＤＮＡデータが複数存在すると、データ検索によって正しい結果が得られないことから、デイリーアップデートデータベースに登録されるＤＮＡデータをリリースデータベースに追加する際、Non-Redundant 化を行う必要がある。
【００１１】
従来では、先ず全てのＤＮＡデータをエントリ（アクセッション番号）ごとに分割して、アクセッション番号をファイル名にしてディスク上でファイル展開し、新規のＤＮＡデータと更新されたＤＮＡデータとを同じ領域に同じ方法でファイル展開することで、このNon-Redundant 化を実現するという方法を採っていた。
【００１２】
この方法に従って、重複エントリが存在する場合には、同じ名称のファイルが複数存在することになり、新しいファイルによって古いファイルが上書きされることで、Non-Redundant 化が実現されることになる。そして、この展開されたファイルを再度マージすることで、完全にNon-Redundant 化されたＤＮＡデータベースが完成する。
【００１３】
【発明が解決しようとする課題】
最近では、ＤＮＡデータベースに登録されるＤＮＡデータは、年間１.5〜２倍の増加率で推移しており、今後更に増加する見込みである。
【００１４】
これから、従来技術に従ってNon-Redundant 化を実行していると、エントリの分割とファイルの結合処理とに多大な時間を要することで、２４時間以内にNon-Redundant 化の処理を完了することが困難になってきた。
【００１５】
この問題点は、ＤＮＡデータベースに限られずに、エントリデータを登録ＩＤに関係なくランダムに管理するデータベースに対して、大量のエントリデータを登録するという処理構成が採られるときにも、同様に起こることになる。
【００１６】
本発明はかかる事情に鑑みてなされたものであって、登録ＩＤを持つエントリデータを管理するデータベースに対してエントリデータを登録するときに、そのデータベースへの重複エントリを高速にチェックできるようにする新たなデータベース管理装置の提供と、その装置の実現に用いられるプログラムが記録される新たなプログラム記録媒体の提供とを目的とする。
【００１７】
【課題を解決するための手段】
この目的を達成するために、本発明のデータベース管理装置は、登録ＩＤを持つエントリデータを管理するデータベースに対してエントリデータを登録するときに、そのデータベースへの重複エントリをチェックする処理を行うために、（１）登録対象のエントリデータの持つ登録ＩＤから、その登録ＩＤを構成する規定位置の文字列情報を取り出すことで、データベースに登録されている可能性のある登録ＩＤであるのか否かの判断に用いる文字列情報を作成する作成手段と、（２）データベースからエントリデータの持つ登録ＩＤを１つずつ読み出し、その登録ＩＤを構成する上記規定位置の文字列情報と作成手段の作成した文字列情報とが一致するのか否かを判断することで、その登録ＩＤが登録対象のエントリデータの持つ登録ＩＤである可能性があるのか否かを判断する第１の判断手段と、（３）第１の判断手段が可能性ありと判断する登録ＩＤと、登録対象のエントリデータの持つ登録ＩＤとが一致するのか否かを判断することで、登録対象のエントリデータが重複エントリデータであるのか否かを判断する第２の判断手段とを備えるように構成する。
この構成を採るときに、作成手段は、登録対象のエントリデータが複数ある場合に、データベースに登録されている可能性のある登録ＩＤであるのか否かの判断に用いる文字列情報として、それらの登録対象のエントリデータの持つ登録ＩＤを構成する上記規定位置の文字列情報を取り出し、それらの取り出した文字列情報の一覧について記録するテーブルを作成することがあり、この場合には、第１の判断手段は、データベースから読み出した登録ＩＤを構成する上記規定位置の文字列情報がそのテーブルに記録されているのか否かを判断することで、その登録ＩＤが登録対象のエントリデータの持つ登録ＩＤである可能性があるのか否かを判断することになる。
また、この構成を採るときに、作成手段は、登録対象のエントリデータが複数ある場合に、データベースに登録されている可能性のある登録ＩＤであるのか否かの判断に用いる文字列情報として、それらの登録対象のエントリデータの持つ登録ＩＤを構成する上記規定位置の文字列情報を取り出し、上記規定位置に位置する文字列情報の取りうる一覧について記録するテーブル構造を有して、上記規定位置に位置する文字列情報の有無情報について記録するテーブルに対して、その取り出した文字列情報の存在を示す情報を記録することで、そのテーブルを作成することがあり、この場合には、第１の判断手段は、データベースから読み出した登録ＩＤを構成する上記規定位置の文字列情報がそのテーブルに存在有りとして記録されているのか否かを判断することで、その登録ＩＤが登録対象のエントリデータの持つ登録ＩＤである可能性があるのか否かを判断することになる。
ここで、本発明のデータベース管理装置の持つ機能は具体的にはプログラムで実現されるものであり、このプログラムは、フロッピィディスクなどに格納されたり、サーバなどのディスクなどに格納され、それらから本発明のデータベース管理装置にインストールされてメモリ上で動作することで、本発明を実現することになる。
次に、図１に示す原理構成図に従って、本発明についてさらに詳細に説明する。
ここで、図１に示す原理構成図では、登録対象のエントリデータが複数であることを想定している。
【００１８】
図中、１は本発明を具備するデータベース管理装置、２はデータベースであって、エントリデータを登録ＩＤに関係なくランダムに管理するもの、３は登録用データベースであって、データベース２への登録対象となるエントリデータを格納するものである。
【００１９】
本発明のデータベース管理装置１は、データベース２に対して登録用データベース３に格納される大量のエントリデータを登録するときに、データベース２への重複エントリをチェックする処理を行うものであって、この機能を実現するために、作成手段１０と、文字一覧テーブル１１と、ハッシュテーブル１２と、判断手段１３と、検索手段１４とを備える。
【００２０】
この作成手段１０は、登録対象のエントリデータの持つ登録ＩＤから、データベース２に登録されている可能性のある登録ＩＤであるのか否かの検索に用いる文字一覧テーブル１１やハッシュテーブル１２を作成する。
【００２１】
文字一覧テーブル１１は、作成手段１０により作成されて、登録対象のエントリデータの持つ登録ＩＤの規定位置に位置する文字の一覧を管理する。ハッシュテーブル１２は、作成手段１０により作成されて、登録ＩＤの規定位置に位置する文字の取りうる一覧に文字の有無を記録することで、登録対象のエントリデータの持つ登録ＩＤの規定位置に位置する文字の一覧を管理する。
【００２２】
判断手段１３は、データベース２からエントリデータの持つ登録ＩＤを１つずつ読み出して、その読み出した登録ＩＤが登録用データベース３に格納されているエントリデータの持つ登録ＩＤである可能性があるのか否かを判断する。検索手段１４は、登録対象のエントリデータに含まれる重複エントリデータを検索する。
【００２３】
ここで、本発明のデータベース管理装置１の持つ機能は具体的にはプログラムで実現されるものであり、このプログラムは、フロッピィディスクなどに格納されたり、サーバなどのディスクなどに格納され、それらからデータベース管理装置１にインストールされてメモリ上で動作することで、本発明を実現することになる。
【００２４】
このように構成される本発明のデータベース管理装置１では、登録用データベース３に格納されるエントリデータをデータベース２に登録する要求が発行されると、作成手段１０は、登録対象のエントリデータの持つ登録ＩＤから、文字一覧テーブル１１やハッシュテーブル１２を作成する。
【００２５】
この作成手段１０の作成処理を受けて、判断手段１３は、データベース２からエントリデータの持つ登録ＩＤを１つずつ読み出し、作成された文字一覧テーブル１１やハッシュテーブル１２を使って、その読み出した登録ＩＤが登録用データベース３に格納されているエントリデータの持つ登録ＩＤである可能性があるのか否かを判断する。
【００２６】
この判断手段１３の判断処理を受けて、検索手段１４は、判断手段１３が可能性ありと判断した登録ＩＤと、登録用データベース３に格納されるそれぞれのエントリデータの持つ登録ＩＤとを比較することで、登録用データベース３に格納される重複するエントリデータを検索する。
【００２７】
このように、本発明のデータベース管理装置１では、登録ＩＤを持つエントリデータを管理するデータベース２に対して複数のエントリデータを登録するときに、登録対象のエントリデータの持つ登録ＩＤから、文字一覧テーブル１１やハッシュテーブル１２を作成することで、データベース２に登録されている可能性のある登録ＩＤであるのか否かの判断に用いる文字列情報を作成し、それを使って、データベース２に管理されるエントリデータの持つ登録ＩＤの中から、登録対象のエントリデータの持つ登録ＩＤである可能性があるものを抽出して、その抽出した登録ＩＤと登録対象のエントリデータの持つ登録ＩＤとを比較することで、登録対象のエントリデータに含まれる重複エントリデータを検索する構成を採るので、データベース２への重複エントリを高速にチェックできるようになる。
【００２８】
【発明の実施の形態】
以下、実施の形態に従って本発明を詳細に説明する。
【００２９】
図２に、本発明のデータベース管理装置１の一実施例を図示する。図中、図１で説明したものと同じものについては同一の記号で示してある。
【００３０】
２ａはＤＮＡリリースデータベースであって、ＤＮＡデータを管理して定期的にリリースされるもの、３ａはＤＮＡアップデートデータベースであって、ＤＮＡリリースデータベース２ａの発行以後に登録されたＤＮＡデータを格納するものである。
【００３１】
本発明のデータベース管理装置１は、ＤＮＡリリースデータベース２ａに対して、ＤＮＡアップデートデータベース３ａに格納されるＤＮＡデータを登録する処理を行うものであって、テーブル作成プログラム１００と、テーブル作成プログラム１００により作成される文字一覧テーブル１１及びハッシュテーブル１２と、重複エントリ検索プログラム２００と、重複エントリ検索プログラム２００により作成される削除リスト３００と、エントリデータ登録プログラム４００とを備える。
【００３２】
ここで、テーブル作成プログラム１００や重複エントリ検索プログラム２００やエントリデータ登録プログラム４００は、フロッピィディスクや回線などを介してインストールされることになる。
【００３３】
以下、説明の便宜上、ＤＮＡデータの持つアクセッション番号は、「アルファベット２文字＋数字６桁」という８桁のみが用いられることを想定する。
【００３４】
この図２に示すように、文字一覧テーブル１１は、例えば、第１の文字一覧テーブル１１０と第２の文字一覧テーブル１１１と第３の文字一覧テーブル１１２とで構成され、ハッシュテーブル１２は、例えば、第１のハッシュテーブル１２０と第２のハッシュテーブル１２１と第３のハッシュテーブル１２２とで構成されている。
【００３５】
図３に、文字一覧テーブル１１の一実施例、図４に、ハッシュテーブル１２の一実施例を図示する。
【００３６】
図３に示すように、第１の文字一覧テーブル１１０は、ＤＮＡアップデートデータベース３ａに格納されるＤＮＡデータの持つアクセッション番号を管理対象として、それらのアクセッション番号の持つ先頭文字の一覧を管理する。そして、第２の文字一覧テーブル１１１は、それらのアクセッション番号を管理対象として、それらのアクセッション番号の持つ先頭２文字の一覧を管理する。そして、第３の文字一覧テーブル１１２は、それらのアクセッション番号を管理対象として、それらのアクセッション番号の持つ先頭３文字の一覧を管理する。
【００３７】
例えば、ＤＮＡアップデートデータベース３ａに格納されるＤＮＡデータの持つアクセッション番号がＡ、Ｃ、Ｄ、Ｗという４種類の先頭文字を持つときには、第１の文字一覧テーブル１１０は、このＡ、Ｃ、Ｄ、Ｗという４つの文字を管理するのである。
【００３８】
一方、図４に示すように、第１のハッシュテーブル１２０は、アクセッション番号の持つ数字部上３桁の取りうる数字列（０００〜９９９）と、その数字列を持つアクセッション番号が存在するのか否かを示すフラグとの対データで構成されるテーブル構造を有して、ＤＮＡアップデートデータベース３ａに格納されるＤＮＡデータの持つアクセッション番号を管理対象として、それらのアクセッション番号の持つ数字部上３桁の数字列に対となるフラグを“１”にすることで、それらのアクセッション番号の持つ数字部上３桁の数字列を管理する。
【００３９】
そして、第２のハッシュテーブル１２１は、アクセッション番号の持つ数字部中３桁の取りうる数字列（０００〜９９９）と、その数字列を持つアクセッション番号が存在するのか否かを示すフラグとの対データで構成されるテーブル構造を有して、ＤＮＡアップデートデータベース３ａに格納されるＤＮＡデータの持つアクセッション番号を管理対象として、それらのアクセッション番号の持つ数字部中３桁の数字列に対となるフラグを“１”にすることで、それらのアクセッション番号の持つ数字部中３桁の数字列を管理する。
【００４０】
そして、第３のハッシュテーブル１２２は、アクセッション番号の持つ数字部下３桁の取りうる数字列（０００〜９９９）と、その数字列を持つアクセッション番号が存在するのか否かを示すフラグとの対データで構成されるテーブル構造を有して、ＤＮＡアップデートデータベース３ａに格納されるＤＮＡデータの持つアクセッション番号を管理対象として、それらのアクセッション番号の持つ数字部下３桁の数字列に対となるフラグを“１”にすることで、それらのアクセッション番号の持つ数字部下３桁の数字列を管理する。
【００４１】
例えば、ＤＮＡアップデートデータベース３ａに格納されるＤＮＡデータの持つアクセッション番号が数字部上３桁に、“１１１”と“１２３”と“２２２”という３種類の数字列を持つときには、第１のハッシュテーブル１２０は、“１１１”の数字列に対となるフラグを“１”にし、“１２３”の数字列に対となるフラグを“１”にし、“２２２”の数字列に対となるフラグを“１”にすることで、それらのアクセッション番号の持つ数字部上３桁の数字列を管理するのである。
【００４２】
図５及び図６に、テーブル作成プログラム１００の実行する処理フローの一実施例、図７及び図８に、重複エントリ検索プログラム２００の実行する処理フローの一実施例を図示する。次に、これらの処理フローに従って、このように構成される本発明のデータベース管理装置１の処理について詳細に説明する。
【００４３】
テーブル作成プログラム１００は、ＤＮＡアップデートデータベース３ａに格納されるＤＮＡデータのＤＮＡリリースデータベース２ａへの登録要求が発行されると、図５及び図６の処理フローに示すように、先ず最初に、ステップ１で、変数ｉに初期値“１”をセットする。
【００４４】
続いて、ステップ２で、ＤＮＡアップデートデータベース３ａに格納されるｉ番目のＤＮＡデータの持つアクセッション番号を読み込む。続いて、ステップ３で、その読み込んだアクセッション番号の先頭文字を抽出する。続いて、ステップ４で、その抽出した先頭文字が既に第１の文字一覧テーブル１１０に記録されているのか否かを判断して、未だ記録されていないことを判断するときには、ステップ５に進んで、その抽出した先頭文字を第１の文字一覧テーブル１１０に記録し、既に記録されていることを判断するときには、このステップ５の処理を省略する。
【００４５】
続いて、ステップ６で、ステップ２で読み込んだアクセッション番号の先頭２文字を抽出する。続いて、ステップ７で、その抽出した先頭２文字が既に第２の文字一覧テーブル１１１に記録されているのか否かを判断して、未だ記録されていないことを判断するときには、ステップ８に進んで、その抽出した先頭２文字を第２の文字一覧テーブル１１１に記録し、既に記録されていることを判断するときには、このステップ８の処理を省略する。
【００４６】
続いて、ステップ９で、ステップ２で読み込んだアクセッション番号の先頭３文字を抽出する。続いて、ステップ１０で、その抽出した先頭３文字が既に第３の文字一覧テーブル１１２に記録されているのか否かを判断して、未だ記録されていないことを判断するときには、ステップ１１に進んで、その抽出した先頭３文字を第３の文字一覧テーブル１１２に記録し、既に記録されていることを判断するときには、このステップ１１の処理を省略する。
【００４７】
続いて、ステップ１２（図６の処理フロー）で、ステップ２で読み込んだアクセッション番号の数字部上３桁を抽出する。続いて、ステップ１３で、その抽出した数字列の指す第１のハッシュテーブル１２０のフラグが既に“１”となっているのか否かを判断して、未だ“１”となっていないことを判断するときには、ステップ１４に進んで、そのフラグを“１”とすることで、その抽出した数字列を第１のハッシュテーブル１２０に記録し、既に“１”となっているときは、このステップ１４の処理を省略する。
【００４８】
続いて、ステップ１５で、ステップ２で読み込んだアクセッション番号の数字部中３桁を抽出する。続いて、ステップ１６で、その抽出した数字列の指す第２のハッシュテーブル１２１のフラグが既に“１”となっているのか否かを判断して、未だ“１”となっていないことを判断するときには、ステップ１７に進んで、そのフラグを“１”とすることで、その抽出した数字列を第２のハッシュテーブル１２１に記録し、既に“１”となっているときは、このステップ１７の処理を省略する。
【００４９】
続いて、ステップ１８で、ステップ２で読み込んだアクセッション番号の数字部下３桁を抽出する。続いて、ステップ１９で、その抽出した数字列の指す第３のハッシュテーブル１２２のフラグが既に“１”となっているのか否かを判断して、未だ“１”となっていないことを判断するときには、ステップ２０に進んで、そのフラグを“１”とすることで、その抽出した数字列を第３のハッシュテーブル１２２に記録し、既に“１”となっているときは、このステップ２０の処理を省略する。
【００５０】
続いて、ステップ２１で、変数ｉの値を１つインクリメントし、続くステップ２２で、変数ｉの値がＤＮＡアップデートデータベース３ａに格納されるＤＮＡデータのデータ数を超えたのか否かを判断して、超えていないことを判断するときには、ステップ２に戻り、超えたことを判断するときには、全ての処理を終了する。
【００５１】
このようにして、テーブル作成プログラム１００は、ＤＮＡアップデートデータベース３ａに格納されるＤＮＡデータのＤＮＡリリースデータベース２ａへの登録要求が発行されると、ＤＮＡアップデートデータベース３ａに格納されるＤＮＡデータの持つアクセッション番号から、第１の文字一覧テーブル１１０／第２の文字一覧テーブル１１１／第３の文字一覧テーブル１１２／第１のハッシュテーブル１２０／第２のハッシュテーブル１２１／第３のハッシュテーブル１２２を作成するように処理するのである。
【００５２】
重複エントリ検索プログラム２００は、テーブル作成プログラム１００が処理が終了することで起動されると、図７及び図８の処理フローに示すように、先ず最初に、ステップ１で、変数ｉに初期値“１”をセットする。
【００５３】
続いて、ステップ２で、ＤＮＡリリースデータベース２ａに格納されるｉ番目のＤＮＡデータの持つアクセッション番号を読み込む。続いて、ステップ３で、その読み込んだアクセッション番号の先頭文字を抽出する。続いて、ステップ４で、その抽出した先頭文字が第１の文字一覧テーブル１１０に記録されているのか否かを判断して、記録されていないことを判断するときには、ＤＮＡアップデートデータベース３ａにはその読み込んだアクセッション番号を持つＤＮＡデータが存在しないことを判断して、後述するステップ１８（図８の処理フロー）に進む。
【００５４】
一方、ステップ４で、ステップ３で抽出した先頭文字が第１の文字一覧テーブル１１０に記録されていることを判断するときには、ステップ５に進んで、ステップ２で読み込んだアクセッション番号の先頭２文字を抽出する。続いて、ステップ６で、その抽出した先頭２文字が第２の文字一覧テーブル１１１に記録されているのか否かを判断して、記録されていないことを判断するときには、ＤＮＡアップデートデータベース３ａにはその読み込んだアクセッション番号を持つＤＮＡデータが存在しないことを判断して、後述するステップ１８（図８の処理フロー）に進む。
【００５５】
一方、ステップ６で、ステップ５で抽出した先頭２文字が第２の文字一覧テーブル１１１に記録されていることを判断するときには、ステップ７に進んで、ステップ２で読み込んだアクセッション番号の先頭３文字を抽出する。続いて、ステップ８で、その抽出した先頭３文字が第３の文字一覧テーブル１１２に記録されているのか否かを判断して、記録されていないことを判断するときには、ＤＮＡアップデートデータベース３ａにはその読み込んだアクセッション番号を持つＤＮＡデータが存在しないことを判断して、後述するステップ１８（図８の処理フロー）に進む。
【００５６】
一方、ステップ８で、ステップ７で抽出した先頭３文字が第３の文字一覧テーブル１１２に記録されていることを判断するときには、ステップ９に進んで、ステップ２で読み込んだアクセッション番号の数字部上３桁の数字列を抽出する。続いて、ステップ１０で、その抽出した数字列の指す第１のハッシュテーブル１２０のフラグが“１”であるのか否かを判断して、“０”であることを判断するときには、ＤＮＡアップデートデータベース３ａにはその読み込んだアクセッション番号を持つＤＮＡデータが存在しないことを判断して、後述するステップ１８（図８の処理フロー）に進む。
【００５７】
一方、ステップ１０で、ステップ９で抽出した数字列の指す第１のハッシュテーブル１２０のフラグが“１”であることを判断するときには、ステップ１１に進んで、ステップ２で読み込んだアクセッション番号の数字部中３桁の数字列を抽出する。続いて、ステップ１２（図８の処理フロー）で、その抽出した数字列の指す第２のハッシュテーブル１２１のフラグが“１”であるのか否かを判断して、“０”であることを判断するときには、ＤＮＡアップデートデータベース３ａにはその読み込んだアクセッション番号を持つＤＮＡデータが存在しないことを判断して、後述するステップ１８に進む。
【００５８】
一方、ステップ１２で、ステップ１１で抽出した数字列の指す第２のハッシュテーブル１２１のフラグが“１”であることを判断するときには、ステップ１３に進んで、ステップ２で読み込んだアクセッション番号の数字部下３桁の数字列を抽出する。続いて、ステップ１４で、その抽出した数字列の指す第３のハッシュテーブル１２２のフラグが“１”であるのか否かを判断して、“０”であることを判断するときには、ＤＮＡアップデートデータベース３ａにはその読み込んだアクセッション番号を持つＤＮＡデータが存在しないことを判断して、後述するステップ１８に進む。
【００５９】
一方、ステップ１４で、ステップ１３で抽出した数字列の指す第３のハッシュテーブル１２２のフラグが“１”であることを判断するときには、ＤＮＡアップデートデータベース３ａにステップ２で読み込んだアクセッション番号を持つＤＮＡデータが存在する可能性のあることを判断して、ステップ１５に進んで、その読み込んだアクセッション番号を持つＤＮＡデータがＤＮＡアップデートデータベース３ａに格納されているかのを検索する。
【００６０】
続いて、ステップ１６で、ステップ１５の検索結果に従って、ＤＮＡアップデートデータベース３ａにステップ２で読み込んだアクセッション番号を持つＤＮＡデータが存在するのか否かを判断して、存在することを判断するとき、すなわち、ステップ２で読み込んだアクセッション番号を持つＤＮＡデータが更新されることになるときには、ステップ１７に進んで、削除リスト３００に対して、そのアクセッション番号を記録し、存在しないことを判断するときには、このステップ１７の処理を省略する。
【００６１】
続いて、ステップ１８で、変数ｉの値を１つインクリメントし、続くステップ１９で、変数ｉの値がＤＮＡリリースデータベース２ａに格納されるＤＮＡデータのデータ数を超えたのか否かを判断して、超えていないことを判断するときには、ステップ２に戻り、超えたことを判断するときには、全ての処理を終了する。
【００６２】
このようにして、重複エントリ検索プログラム２００は、テーブル作成プログラム１００が処理が終了すると、テーブル作成プログラム１００の作成した文字一覧テーブル１１及びハッシュテーブル１２を使って、ＤＮＡリリースデータベース２ａに格納されるＤＮＡデータが更新される可能性があるのか否かを判断して、更新される可能性がある場合には、ＤＮＡアップデートデータベース３ａを検索することで、実際に更新されるのか否かを判断していくことで、更新されるＤＮＡデータの持つアクセッション番号を削除リスト３００に記録していくように処理するのである。
【００６３】
重複エントリ検索プログラム２００の処理に従って削除リスト３００が作成されると、エントリデータ登録プログラム４００は、ＤＮＡリリースデータベース２ａから削除リスト３００に記録されるアクセッション番号を持つＤＮＡデータを削除しつつ、ＤＮＡアップデートデータベース３ａに格納されるＤＮＡデータをＤＮＡリリースデータベース２ａに登録していくように処理する。
【００６４】
図示実施例に従って本発明を説明したが、本発明はこれに限定されるものではない。例えば、実施例では、ＤＮＡデータベースへの適用に従って本発明を説明したが、本発明はＤＮＡデータベースへの適用に限られるものではない。
【００６５】
【発明の効果】
以上説明したように、本発明では、登録ＩＤを持つエントリデータを管理するデータベースに対して複数のエントリデータを登録するときに、登録対象のエントリデータの持つ登録ＩＤから、データベースに登録されている可能性のある登録ＩＤであるのか否かの判断に用いる文字列情報について記録するテーブルを作成することで、データベースに登録されている可能性のある登録ＩＤであるのか否かの判断に用いる文字列情報を作成し、それを使って、データベースに管理されるエントリデータの持つ登録ＩＤの中から、登録対象のエントリデータの持つ登録ＩＤである可能性があるものを抽出して、その抽出した登録ＩＤと登録対象のエントリデータの持つ登録ＩＤとを比較することで、登録対象のエントリデータに含まれる重複エントリデータを検索する構成を採るので、データベースへの重複エントリを高速にチェックできるようになる。
【図面の簡単な説明】
【図１】本発明の原理構成図である。
【図２】本発明の一実施例である。
【図３】文字一覧テーブルの一実施例である。
【図４】ハッシュテーブルの一実施例である。
【図５】テーブル作成プログラムの処理フローである。
【図６】テーブル作成プログラムの処理フローである。
【図７】重複エントリ検索プログラムの処理フローである。
【図８】重複エントリ検索プログラムの処理フローである。
【図９】ＤＮＡデータベースの説明図である。
【符号の説明】
１    データベース管理装置
２    データベース
３    登録用データベース
１０  作成手段
１１  文字一覧テーブル
１２  ハッシュテーブル
１３  判断手段
１４  検索手段
【図１】
0003847992.tif 000002
【図２】
0003847992.tif 000003
【図３】
0003847992.tif 000004
【図４】
0003847992.tif 000005
【図５】
0003847992.tif 000006
【図６】
0003847992.tif 000007
【図７】
0003847992.tif 000008
【図８】
0003847992.tif 000009
【図９】
0003847992.tif 000010