(57)【要約】  データベースを２つの検索ステップで検索する方法と装置。特に光学媒体上の蓄積データの検索を、検索に要する時間について、最適化することを目的とする。この目的のため、検索を２段階で行うことを提案する。第１の検索ステップに於いて、ディスク記憶媒体上のデータベース全体をスキャンする。これと並行して行う第２の検索ステップに於いて、第１の検索ステップから得られた中間結果を検索する。これにより、ディスク上のスキップの回数を低減でき、その結果、特に光学ドライブの場合に於いて、検索速度を増すことができる。
2007519098.tif 000002
【特許請求の範囲】
【請求項１】
ディスク記憶媒体上のデータベースを検索する方法であって、
前記ディスク記憶媒体上の前記データベース全体をスキャンする第１の検索ステップを実行し、
前記第１の検索ステップから中間結果を出力し、
前記第１の検索ステップから得られた前記中間結果に於いて第２の検索ステップを実行し、
前記第２の検索ステップから最終結果を出力する、方法。
【請求項２】
前記第１の検索ステップに於けるデータの処理速度が、データの読み込み速度と少なくとも同程度である、請求項１記載の方法。
【請求項３】
前記第１の検索ステップに於いて、テキスト検索のみが行われる、請求項１または請求項２記載の方法。
【請求項４】
前記第１の検索ステップが、専らセクタ番号による分類に基づく降順または昇順での、インデックス・リストからの検索場所へのスキップを伴う、上記全請求項のうちの１つの請求項に記載の方法。
【請求項５】
前記中間結果が、前記第２の検索ステップに於いて検索される１つ以上の補助結果から成る、上記全請求項のうちの１つの請求項に記載の方法。
【請求項６】
前記データベースが動的であり且つフラグメントの形態で利用可能であり、個々のフラグメントが連続して読み込まれ、読み取りヘッドが各フラグメント相互間を専ら一方向にスキップする、上記全請求項のうちの１つの請求項に記載の方法。
【請求項７】
前記データが、前記ディスク記憶媒体上でＥＣＣブロックに記憶されている、上記全請求項のうちの１つの請求項に記載の方法。
【請求項８】
前記ディスク記憶媒体が光学ディスクである、上記全請求項のうちの１つの請求項に記載の方法。
【請求項９】
ディスク記憶媒体上のデータベースを検索する装置であって、
前記ディスク記憶媒体上の前記データベース全体をスキャンする第１の検索ステップを実行する検索機構と、
前記第１の検索ステップから得られた中間結果を記憶し、および、それを出力するメモリ機構と、を有し、
前記検索機構が、前記第１の検索ステップから得られた前記中間結果に於いて第２の検索ステップを実行して、該第２の検索ステップから得られた最終結果を出力するようにも設計されている、装置。
【請求項１０】
前記第１の検索ステップに在る前記検索機構に於けるデータの処理速度が、前記検索機構へのデータの最大読み込み速度または瞬時読み込み速度と少なくとも同程度である、請求項９記載の装置。
【請求項１１】
前記第１の検索ステップの期間の間、前記検索機構に於いて、専らテキスト検索を行える、請求項９または請求項１０記載の装置。
【請求項１２】
前記第１の検索ステップが、専らセクタ番号による分類に基づく降順または昇順で、インデックス・リストからの検索場所への前記検索機構のスキップを伴う、請求項９から請求項１１の各請求項のうちの１つの請求項に記載の装置。
【請求項１３】
前記メモリ機構に記憶できる前記中間結果が、前記第２の検索ステップに於いて前記検索機構により検索できる１つ以上の補助結果から成る、請求項９から請求項１２の各請求項のうちの１つの請求項に記載の装置。
【請求項１４】
前記データベースが動的であり且つフラグメントの形態で利用可能であり、個々のフラグメントが前記検索機構に連続して読み込まれ、読み取りヘッドが各フラグメント相互間で専ら一方向にスキップできる、請求項９から請求項１３の各請求項のうちの１つの請求項に記載の装置。
【請求項１５】
前記検索機構と前記メモリ機構がＥＣＣブロックの処理に適している、請求項９から請求項１４の各請求項のうちの１つの請求項に記載の装置。
【請求項１６】
前記ディスク記憶媒体が光学ディスクである、請求項９から請求項１５の各請求項のうちの１つの請求項に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスク記憶媒体、特に、ＣＤ−ＲＯＭまたはＤＶＤ−ＲＯＭ上のデータベースを検索する方法と、その方法に対応するデータベース検索装置とに関する。
【背景技術】
【０００２】
データベース・システムは、通常、固定的または動的な蓄積データにアクセスする。このような蓄積データは、通常、ハードディスクに記憶されているが、携帯電話用のＴ９音声データベースの場合のように、ＲＯＭに記憶されていることもある。また、例えば電話帳等がＣＤ−ＲＯＭまたはＤＶＤ−ＲＯＭ上に記憶されていることは、周知事項である。
【０００３】
しかし、一般的に、動的なデータベースは、光学媒体に記憶されない。その理由は、光学媒体は、ハードディスクに比べて、書き換え回数が制限されており、且つ、スキップに要する時間が長い為である。それ故、光学媒体に於いて、込み入ったクエリで検索をすると、非常に時間が掛る。
【０００４】
従って、本発明の目的は、特に光学媒体上でのデータベースの検索を最適化することである。
【発明の開示】
【０００５】
(発明の概要)
本発明は、ディスク記憶媒体上のデータベースを検索する方法であって、ディスク記憶媒体上のデータベース全体をスキャンする第１の検索ステップを実行し、この第１の検索ステップから得られた中間結果を出力し、この第１の検索ステップから得られた中間結果に於いて第２の検索ステップを実行し、この第２の検索ステップから得られた最終結果を出力する方法によって、上記目的を達成する。
【０００６】
また、本発明は、ディスク記憶媒体上のデータベースを検索する装置を提供する。この装置は、ディスク記憶媒体上のデータベース全体をスキャンする第１の検索ステップを実行する検索機構と、この第１の検索ステップから得られた中間結果を記憶し、および、それを出力するメモリ機構とを有し、上記検索機構は、この第１の検索ステップから得られた中間結果に於いて第２の検索ステップを実行して、この第２の検索ステップから得られた最終結果を出力するようにも設計されている。
【０００７】
本発明は、ディスク記憶媒体、特に光学ディスク上での検索に要する読み取りヘッドのスキップ数を可能な限り低減するという考えに基づいている。これによって、検索時間を著しく最小化できる。これは、第１の検索ステップを精密化するための検索動作が、ディスクに頼る必要なく、高速メモリ機構を利用できるためである。
【０００８】
第１の検索ステップに於けるデータの処理速度は、データの読み込み速度と少なくとも同程度であることが望ましい。これは、検索深度（ｓｅａｒｃｈ  ｄｅｐｔｈ）を読み込み速度に整合させることによって、実現できる。これは、第１の検索ステップの期間の間にディスク上の読み取り動作が中断されることなく、且つ、時間を要するリターン・スキップの必要が無いことを意味している。
【０００９】
第１の検索ステップでは、パターン検索（パターン・マッチ）だけが行われるように出来る。このパターン検索は、例えば、大量の演算を必要とする比較動作とは対照的に、非常に迅速に実行できる。インデックス・リストを使用して検索を行う場合、第１の検索ステップが、専らセクタ番号による分類に基づく降順または昇順による各検索場所へのスキップを行えるようにすると、有利である。これによって、平均スキップ距離も低減できる。
【００１０】
第１の検索ステップの期間の間に得られた中間結果には１つ以上の補助結果（ｓｕｂｒｅｓｕｌｔ）が含まれており、これらの補助結果がそれぞれ第２の検索ステップに於いて検索されるように構成できる。これは、例えば、第１の検索ステップが個々のサブツリーを送り出すことができ、これらのサブツリーが、第２の検索ステップに於いて、具体的要素に従って、間引かれることを意味している。
【００１１】
一推奨変形例では、データベースが動的であり且つフラグメントの形態で利用可能であり、個々のフラグメントが連続して読み込まれ、読み取りヘッドが各フラグメント相互間で専ら一方向にスキップする。これも、同様に、スキップ数が必要不可欠な最小限値を超えることを防止する。特に、これも、各スキップが一方向のみに行われるので、スキップ距離を最小限にできる。
【００１２】
セキュリティの理由により、ディスク記憶媒体上のデータは、ＥＣＣ（誤り訂正符号）ブロックに記憶されている。その場合、スキップ数の低減が益々重要になる。これは、ＥＣＣブロックが常に全部読み取る必要があり、ディスク上のスキップが、通常、ブロックの開始点に移動する必要がある為である。
【００１３】
前述の如く、ディスク記憶媒体は、ＣＤ或いはＤＶＤのような光学ディスクであることが望ましい。これらの光学ディスクの場合、読み取りヘッドの移動がハードディスクに比べて非常に遅く、従って、本発明の方法は、顕著な効果が期待できる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の方法の概略を示す添付図面を参照して、本発明を更に詳しく説明する。
【００１５】
以下更に詳しく述べる実施例は、本発明の推奨実施例である。
【００１６】
本発明は、第１の検索ステップに於いて、蓄積データを全検索し、その際、プロセッサ機能の観点から単純で、粗く（ｃｏａｒｓｅ）、且つ、迅速な検索を行う第１の処理（スレッド）によって、ディスク上のデータベースの全検索を実現する。この場合、蓄積データは、セクタの番号付けの観点からディスク上で可能な限り連続して、検索される。これによって、ドライブによる難儀なピックアップ・スキップの回数を低減できる。
【００１７】
次に、各検索ヒットは、第２の検索ステップに送られる。これは、適合するデータが、第１の検索ステップから第２の検索ステップに転送されること、即ち、第１の処理から、これと並行して実行される第２の処理へと転送されることを意味している。第１の検索ステップは、第２の検索ステップから得られる結果を待たずに、直ぐにその粗い検索を継続する。
【００１８】
第２の検索ステップは、比較演算等のより複雑な検索タスクを担当するが、これは、通常、より多くのＣＰＵ演算機能を要する。この検索処理は、これと並行して行われる第１の検索ステップの第２の処理（スレッド）に於ける粗い検索とは無関係に行われる。
【００１９】
このように処理を分割することは、例えば、ＸＭＬデータベースのような階層構造テキスト対応のデータベースの場合、特に重要である。このようなデータベースへの検索クエリには、テキスト、要素名、および、属性名が含まれることが多い。例えば、検索クエリが、エリック・クラプトン（Ｅｒｉｃ  Ｃｌａｐｔｏｎ）による「ワンダフル・トゥナイト（Ｗｏｎｄｅｒｆｕｌ  ｔｏｎｉｇｈｔ）」という曲についての音楽データベースの検索である場合、第１の検索ステップは、記憶された蓄積データを高速テキスト・スキャンで検索する。具体例として、歌手「エリック・クラプトン」に関するヒットと、曲「ワンダフル・トゥナイト」に関するヒットとを求めて、音楽データベースを検索する。この種の検索に要する演算機能は、限定された機能だけで良い。これに必要な演算機能は、例えば、テキスト検索が行われる際の誤り許容度に従って、および、検索が大文字・小文字の区別をするか否かに従って、異なる。
【００２０】
根本的には、使用に供される演算機能は、限定される。この演算機能は、蓄積データに対する粗く高速で連続したスキャンに使用される。ここで留意すべき点は、光学ディスクは、ハードディスクに比べて、１つのセクタからもう１つ別の任意のセクタにスキップするのに要する時間が非常に長い（最長１秒）が、連続した各ディスク・セクタの継続読み込みは、ハードディスクの場合に比べて、ほんの僅かに遅いだけである。従って、本発明は、蓄積データのこの継続スキャンを最大限に利用することを意図するものである。このための前提条件は、粗い第１の検索ステップが、プロセッサに過重な負担を掛けないことである。これは、第１の検索ステップに於ける処理に要する時間が少なく済むＣＰＵによって実現される。これは、ドライブ、即ち、ピックアップが、蓄積データの各セクタを直ちに第１の段階に送ることが出来ることを意味する。本構成以外では、ピックアップによる難儀なリターン・スキップが実際に強制されることになる。
【００２１】
従って、粗い第１の検索は、確定ヒットではなく、推定ヒットを出力する。具体例を挙げると、第１の検索ステップは、音楽データベース内の「エリック・クラプトン」および／または「ワンダフル・トゥナイト」を含む全てのエントリ（ｅｎｔｒｙ）をヒットとして出力する。これは、エリック・クラプトンによるその他の曲、および、探している歌のその他の歌い手も、中間結果として記録されることを意味する。これらの推定ヒットは、直接、独立した第２の検索処理に送られる。この第２の検索処理は、精密な検索を行い、これによって実際のヒットが確認される。従って、この検索処理は、演算の観点から更に複雑な検索を実施する検索部分、例えば、しばしばＸＭＬデータベースに使用される複雑なＸＰａｔｈ式を実施するような検索部分である。この具体例では、「エリック・クラプトン」についてのヒットが、見出し語の「ワンダフル・トゥナイト」について、検索されるか、或いは、その逆で検索される。このように、最終結果として、探している歌手と探している曲とが含まれるデータベース・エントリの出力が可能である。
【００２２】
この２段階処理手順の利点として、予選択検索処理である第１の検索処理は、必要な演算機能が可能な限り少なくて済み、且つ、蓄積データを、スキップ数が低減された継続スキャン処理で、検索できる。この結果、蓄積データのスキャン速度を最大限にできる。第２の検索処理は、第１の検索処理より低い優先度で実行され、残りの演算機能を使用して、最終的なヒットを特定する。
【００２３】
この処理は、データがＣＤ−ＲＯＭおよびＤＶＤ−ＲＯＭ上に固定的に蓄積されている場合、当然、実行時間の利点が有るが、蓄積データが光学ディスク上でフラグメントの形態で利用可能な場合（これは特に動的に蓄積されたデータの場合に当て嵌まる）、更に一層効果的である。
【００２４】
例
第１の検索ステップでは、ＸＭＬ要素名、ＸＭＬ属性名、ＸＭＬ要素値（テキスト）、ＸＭＬ属性値（テキスト）およびＸＭＬネーム空間についての検索が可能である。この例では、例えば論理ＡＮＤ関数と論理ＯＲ関数のような同時に求められる各検索モジュールの論理合成も、演算機能が十分であるため、可能である。これは、第１の段階の検索深度が、利用可能な演算機能に依存していることを意味する。換言すれば、この例では、個々のヒットは、リアルタイムで、即ち、データが読み込まれるのと同時に、実際に論理合成できる。これは、第１の検索ステップが階層構造に設計されていることを意味する。次に、第１の検索ステップは、各サブツリー（ｓｕｂｔｒｅｅ）をリターン（ｒｅｔｕｒｎ）する。これらのサブツリーは、例えば、全ての必要とする要素名、属性名、および、数値テキスト（ｖａｌｕｅ  ｔｅｘｔ）を含む要素である。
【００２５】
第２の段階に於いて、検索が精密化される、即ち、ここで更に複雑な検索要件が組み込まれる。この更に複雑な検索要件とは、例えば、各要素の順序、比較演算、および、第１の検索ステップでは検査できないようなその他の論理従属性のものである。
【００２６】
図１は、検索の並列処理の流れを示している。時間ｔに亘る連続バーによって表された第１の検索ステップが中断なしに蓄積データ全体を検索する一方、第２の検索ステップは、第１の検索ステップからの各ヒットのみを受け付ける。次に、これらのヒットが詳しく検索される。各第２の検索ステップは、残りの利用可能な演算機能を使用した別個のＣＰＵ処理である。従って、第１の検索ステップは、第２の検索ステップにより妨げられることはない。第１の検索ステップは、本来、光学ディスクの特性の故に、時間を要する処理であるから、ボトルネック（障害）になっていた。従って、本処理構成では、各段階を用いて当該処理から時間を要する検査を移管することによって、当該処理が停滞するの防止している。従って、所定の演算機能を用いて、それに対応する最大限の速度で、検索を行うことが可能である。
【００２７】
検索速度は、検索すべきデータが可能な限りセクタの昇順に光学媒体上に記憶されていることによって、増大可能である。
【００２８】
本発明の検索は、特に、インデックス・リストが検索用に使用されない場合に、有効である。しかし、インデックス・リストが利用可能な場合、インデックスを用いた検索は、より適切であることが多い。但し、インデックス・リストが、蓄積データ内に於ける様々な所にスキップする必要があることを意味する場合には、平均のスキップ回数を減らす目的で、インデックス・リストからの各スキップ点の検索と、その各スキップ点へのスキップとを、セクタ番号の昇順の分類に基づいて行えば、効果的である。
【００２９】
インデックス・リストが具体的な検索クエリのみに適するので、実際、あらゆるデータベースは、特定の複雑な検索クエリについての全検索に依存することになる。これは、本発明が、あらゆるデータベースに、効果的に利用できることを意味している。
【００３０】
要するに、本発明の最大の利点は、スキップ時間が比較的長く、且つ、統一したまとまりの有る各セクタの迅速な読み取りが可能な光学ドライブを使用する場合に、実現できる。これらの光学媒体上の大量蓄積データを、非常に速い速度で且つ限られた演算機能で、検索可能になる。セクタ番号の昇順での継続読み取りは、ＥＣＣ（誤り訂正符号）ブロック全部を読み取り、データベースに関係の有る全てのセクタをスキャンする。ＥＣＣブロックは、ＤＶＤの場合、２０４８ビットを有するセクタ１６個から成り、ブルーレイ・ディスクの場合、２０４８ビットを有するセクタ３２個から成る。セクタをただ１個だけ調べるのにも、これらのブロック全部を読み取る必要がある。この目的のため、例えば、ブルーレイ・ディスクでは、内径に於ける略全ディスク回転が必要である。従って、ディスク全体に亘るスキップは、例外的なものにすべきであり、本発明では、実質的に回避できる。
【００３１】
本発明の原理は、当然、ハードディスク上の蓄積データにも適している。しかし、その場合、平均的なスキップ時間が光学ディスクの場合に比べて数桁小さいので、期待できる利点も小さい。また、ハードディスク上の各セクタは、ＥＣＣブロックにパックされていない。
【図面の簡単な説明】
【００３２】
【図１】本発明の方法による検索の並列処理の流れを概略的に示す図である。
【図１】
2007519098.tif 000003
【国際調査報告】
2007519098.tif 000004
2007519098.tif 000005
2007519098.tif 000006