(57)【特許請求の範囲】
【請求項１】
評価式をＣＮＦ展開又はＤＮＦ展開することで評価展開式を生成する展開機構と、
上記評価展開式の持つ条件式の実行関係を条件式に対しての充足評価結果に応じて管理するとともに、その実行関係から導出される上記評価展開式に対しての最終的な評価結果を管理する条件式評価ブロックと、
上記評価展開式の持つ条件式を同一のものについては共通化する態様に従いつつ管理する条件式管理域と、
上記条件式管理域に管理される条件式に対応付けて、該条件式に対しての充足評価結果を格納する評価結果格納域と、
評価対象のレコードが与えられるときに、上記評価結果格納域を初期化してから、上記条件式評価ブロックの管理データをトレースすることで、評価対象のレコードが上記評価式を充足するのか否か評価し、かつ、その評価にあたって、上記評価展開式の持つ条件式に対しての充足評価結果を対応の上記評価結果格納域に格納するとともに、上記評価展開式の持つ条件式の充足評価に入る前に、対応の上記評価結果格納域を参照することで充足評価結果が得られるときには、その充足評価結果を利用して評価処理を実行する評価機構とを備えることを、
特徴とするデータ評価システム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、評価式をＣＮＦ展開又はＤＮＦ展開することで評価展開式を生成して、評価対象のレコードがその評価展開式の条件を充足するか否かを評価していくよう処理するデータ評価システムに関し、特に、高速に評価処理を実行できるようにするデータ評価システムに関する。
【０００２】
リレーショナルデータベースでは、管理レコードの中から与えられた検索式を充足するレコードを抽出していく検索処理を実行することになる。リレーショナルデータベースの有効利用を図るためにも、この検索処理を高速で実行できるようにしていく必要がある。
【０００３】
【従来の技術】
リレーショナルデータベースは、図１２に示すように、表データＴ１を管理するときにあって、ユーザから、Ｃ１項目の値が“２０”を持ち、かつＣ２項目の値が“３０”を持つか、Ｃ３項目の値が“４０”を持ち、かつＣ４項目の値が“５０”を持つレコードのＣ５項目の値を検索せよという
0003574458.tif 000002
という評価式が与えられると、表データＴ１から１つずつレコードを読み出していって、その読み出したレコードがこの評価式を充足しているか否かを評価して、この評価式を充足するレコードの持つＣ５項目の値を検索結果テーブルに格納していくという検索処理を実行する。
【０００４】
この検索処理では、コンピュータで処理可能とするために、ＡＮＤ結合／ＯＲ結合で記述されるＷＨＥＲＥ句部分の評価式を、ＣＮＦ展開（括弧の中がＯＲ条件で記述されていて、それらの括弧がＡＮＤ条件でつながる条件展開形式）や、ＤＮＦ展開（括弧の中がＡＮＤ条件で記述されていて、それらの括弧がＯＲ条件でつながる条件展開形式）の展開形式に変換していく。
【０００５】
従来では、このＣＮＦ展開／ＤＮＦ展開にあって、評価展開式に記述される各条件式対応に条件式内容を管理するという構成を採っていた。
【０００６】
【発明が解決しようとする課題】
ＣＮＦ展開／ＤＮＦ展開は、評価式全体の条件を保持しながら一定の規則に従った形式に変換するための展開方式であり、この展開方式で生成される評価展開式は同一の条件式を複数持つ場合がある。
【０００７】
しかしながら、このような従来技術に従っていると、このようなときに、同一の条件式内容であるにもかかわらず、各条件式対応に別々に同一の条件式内容が管理されるという構成が採られることになる。
【０００８】
これから、従来技術に従っていると、評価展開式が同一の条件式を複数持つときに、読み出したレコードに対して、同一の条件式を何度も繰り返し評価していくことになるという問題点があった。すなわち、従来技術に従っていると、評価対象のレコードに対して検索式を充足しているか否かを高速に評価できないという問題点があったのである。
【０００９】
本発明はかかる事情に鑑みてなされたものであって、評価式をＣＮＦ展開又はＤＮＦ展開することで評価展開式を生成して、評価対象のレコードがその評価展開式の条件を充足するか否かを評価していくよう処理するデータ評価システムにあって、この評価処理を高速に実行できるようにする新たなデータ評価システムの提供を目的とする。
【００１０】
【課題を解決するための手段】
図１に本発明の原理構成を図示する。
図中、１は本発明を具備するデータ処理装置、２はデータ処理装置１の評価対象となるレコードを管理するリレーショナルデータベース等のデータベースである。
【００１１】
データ処理装置１は、展開機構１０と、評価展開式管理域１１と、評価結果格納域１２と、読出機構１３と、評価機構１４と、検索結果テーブル１５とを備える。
【００１２】
展開機構１０は、レコードに対しての評価式をＣＮＦ展開又はＤＮＦ展開することで評価展開式を生成する。
評価展開式管理域１１は、展開機構１０の生成した評価展開式を管理する。評価展開式管理域１１は、この管理処理を実行するために、生成された評価展開式の持つ条件式を同一のものについては共通化する態様に従いつつ管理する構成を採る条件式管理域１１０と、評価展開式の持つ条件式の実行関係を条件式に対しての充足評価結果に応じて管理するとともに、その実行関係から導出される評価展開式に対しての最終的な評価結果を管理する構成を採る条件式評価ブロック１１１とを備える。
【００１３】
評価結果格納域１２は、条件式管理域１１０に対応して備えられて、条件式管理域１１０に管理される条件式に対しての充足評価結果を格納する。読出機構１３は、データベース２から評価対象のレコードを読み出す。
【００１４】
評価機構１４は、評価対象のレコードが評価展開式の規定する条件を充足しているか否かを評価する。この評価機構１４は、この評価処理を実行するために、条件式管理域１１０に管理される条件式を充足するか否かを評価する構成を採る評価手段１４０と、評価手段１４０の評価結果を対応の評価結果格納域１２に格納する構成を採る格納手段１４１と、評価結果格納域１２の評価結果を参照する構成を採る参照手段１４２とを備える。
【００１５】
検索結果テーブル１５は、評価機構１４の評価結果を格納する。
【００１６】
【作用】
本発明では、評価展開式管理域１１は、展開機構１０が評価式をＣＮＦ展開又はＤＮＦ展開することで評価展開式を生成すると、この生成された評価展開式に対応する条件式管理域１１０／条件式評価ブロック１１１を生成することで、この生成された評価展開式を管理する構成を採る。このとき、評価展開式管理域１１は、生成された評価展開式が同一の条件式を複数持つ場合には、その条件式を共通化して管理するように条件式管理域１１０を生成する構成を採る。
【００１７】
このようにして、評価展開式が評価展開式管理域１１に管理されると、評価機構１４の評価手段１４０は、読出機構１３の読み出す評価対象のレコードが与えられると、評価結果格納域１２を初期化してから、その評価対象のレコードを使って条件式評価ブロック１１１の管理データをトレースしていくことで、評価対象のレコードが評価展開式を充足するか否かを判断していく。このとき、格納手段１４１は、評価展開式の持つ条件式に対しての充足評価結果を対応の評価結果格納域１２に格納していき、参照手段１４２は、評価手段１４０が評価展開式の持つ条件式の充足評価処理に入る前、対応の評価結果格納域１２を参照して、既に充足評価結果が格納されている場合には、その充足評価結果を評価手段１４０に通知するとともに、格納されていない場合には、その旨を評価手段１４０に通知していく。
【００１８】
そして、評価手段１４０は、この参照手段１４２からの通知を受けて、既に条件式の充足評価処理を終了しているものについては、その条件式についての充足評価処理を省略して、参照手段１４２から通知される充足評価結果を利用しつつ、条件式評価ブロック１１１の管理データをトレースしていくことで評価展開式を充足するか否かを判断していく。
【００１９】
このように、本発明では、評価式をＣＮＦ展開又はＤＮＦ展開することで評価展開式を生成して、評価対象のレコードがその評価展開式の条件を充足するか否かを評価していくときにあって、評価展開式が同一の条件式を複数持つときには、その条件式に対しての充足評価処理を１回のみ実行して、後はその充足評価処理の結果を利用するように構成するものであることから、従来よりも高速に評価対象のレコードが評価展開式の条件を充足するか否かを評価できるようになる。
【００２０】
【実施例】
以下、リレーショナルデータベースに適用した実施例に従って本発明を詳細に説明する。
【００２１】
図１で説明した展開機構１０は、検索式として表される評価式をＣＮＦ展開又はＤＮＦ展開することで評価展開式を生成する。図２に、展開機構１０の実行するＣＮＦ展開処理の処理フローを図示する。
【００２２】
この図２の処理フローに示すように、展開機構１０は、先ず最初に、ステップ１で、評価式を記述形式で表現する。例えば、評価式が
（（条件式▲１▼  ａｎｄ  条件式▲２▼）  ｏｒ
（条件式▲３▼  ａｎｄ  （条件式▲４▼  ｏｒ  条件式▲５▼  ｏｒ  条件式▲６▼）））  ａｎｄ  条件式▲７▼
である場合には、図３に示すようなＡＮＤ結合ブロック／ＯＲ結合ブロックのつながりの記述形式で表現するのである。
【００２３】
次に、ステップ２で、記述形式中に現れるＡＮＤ結合ブロック／ＯＲ結合ブロックを単純な形式のＡＮＤ結合／ＯＲ結合に展開する。図４に、ＡＮＤブロックの展開処理、図５に、ＯＲブロックの展開処理を図示する。このＡＮＤ結合／ＯＲ結合への展開処理は、図４及び図５の展開処理を再帰的に呼び出すことで実行することになる。ここで、図４（ａ）は、「（条件式▲１▼  ａｎｄ  条件式▲２▼）」を例にし、図４（ｂ）は、「（条件式▲１▼  ｏｒ  条件式▲２▼）ａｎｄ  条件式▲３▼」を例にし、図５（ａ）は、「（条件式▲１▼  ｏｒ  条件式▲２▼）」を例にし、図５（ｂ）は、「（条件式▲１▼  ａｎｄ    条件式▲２▼）ｏｒ（条件式▲３▼    ａｎｄ  条件式▲４▼）を例にしている。
【００２４】
この図４（ａ）に示すように、ＡＮＤ結合ブロックの展開は、ＡＮＤ結合の条件式を縦方向のポインタで接続することで実行するものであり、また、図４（ｂ）に示すように、条件式ブロックの代わりにＯＲ結合ブロックがポイントされている場合には、ＯＲ結合の展開処理を呼び出し、ＯＲ結合を展開した後にＡＮＤ結合の条件式を縦方向のポインタで接続することで実行する。
【００２５】
そして、この図５（ａ）に示すように、ＯＲブロックの展開は、ＯＲ結合の条件式を横方向のポインタで接続することで実行するものであり、また、図５（ｂ）に示すように、ＡＮＤ結合がポイントされている場合には、ＡＮＤ結合の条件式の直積を求めて横方向のポインタで接続することで実行する。但し、条件式ブロックの代わりにＡＮＤ結合ブロックがポイントされている場合には、ＡＮＤ結合の展開処理を呼び出し、ＡＮＤ結合を展開した後に条件式の直積を求めて横方向のポインタで接続することで実行する。
【００２６】
このステップ２の展開処理を実行すると、図３に示した記述形式は図６に示すようなものに展開されることになる。
続いて、ステップ３で、ステップ２の処理に従って展開された各レベルのＡＮＤ結合を切断することでＣＮＦ展開形式に変換する。この切断処理は、「（条件式▲１▼  ｏｒ  （条件式▲２▼  ａｎｄ  条件式▲３▼）」を例にする図７に示すように、ＭレベルのＡＮＤ結合を切断する場合には、１レベル上位の条件式ブロックを複写してＭレベルの条件式ブロックとＯＲ結合で接続することで実行する。
【００２７】
このようにして、展開機構１０は、図２の処理フローを実行することで、評価式をＣＮＦ展開することで評価展開式を生成するのである。
図８に、展開機構１０により生成される
（（条件式▲１▼  ａｎｄ  条件式▲２▼）  ｏｒ
（条件式▲３▼  ａｎｄ  （条件式▲４▼  ｏｒ  条件式▲５▼  ｏｒ  条件式▲６▼）））  ａｎｄ  条件式▲７▼
という評価式に対しての評価展開式である
（条件式▲１▼  ｏｒ  条件式▲３▼）
ａｎｄ  （条件式▲１▼  ｏｒ  条件式▲４▼  ｏｒ  条件式▲５▼  ｏｒ  条件式▲６▼）
ａｎｄ  （条件式▲２▼  ｏｒ  条件式▲３▼）
ａｎｄ  （条件式▲２▼  ｏｒ  条件式▲４▼  ｏｒ  条件式▲５▼  ｏｒ  条件式▲６▼）
ａｎｄ  （条件式▲７▼）
を図示する。
【００２８】
図１で説明したように、評価展開式管理域１１は、展開機構１０が評価展開式を生成すると、この生成された評価展開式に対応する条件式管理域１１０／条件式評価ブロック１１１を生成することで、この生成された評価展開式を管理する構成を採る。このとき、評価展開式管理域１１は、生成された評価展開式が同一の条件式を複数持つ場合には、その条件式を共通化して管理するように条件式管理域１１０を生成する構成を採る。そして、この条件式管理域１１０に対応して、評価結果格納域１２が生成されることになる。
【００２９】
図９に、図８の評価展開式により生成される条件式管理域１１０、条件式評価ブロック１１１及び評価結果格納域１２の一実施例を図示する。ここで、条件式評価ブロック１１１の「真」欄は、評価対象のレコードがその条件式に対して真値を示すときに次に実行する条件式のエントリー番号を表しており、「偽」欄は、評価対象のレコードがその条件式に対して偽値を示すときに次に実行する条件式のエントリー番号を表している。また、「真」欄に「ー」が登録されているときには、評価対象のレコードが評価展開式の条件を充足することを表しており、「偽」欄に「ー」が登録されているときには、評価対象のレコードが評価展開式の条件を充足しないことを表している。
【００３０】
図１で説明したように、評価機構１４は、評価対象のレコードを使って条件式評価ブロック１１１の管理データをトレースしていくことで、評価対象のレコードが評価展開式を充足するか否かを判断していくよう処理することになる。
【００３１】
図１０に、この評価機構１４の実行する処理フローの一実施例を図示する。次に、この処理フローに従って、本発明の実行する評価処理の一実施例について詳細に説明する。
【００３２】
評価機構１４は、読出機構１３から評価対象のレコードを受け取ると、図１０の処理フローに示すように、先ず最初に、ステップ１で、評価結果格納域１２を初期化する。次に、ステップ２で、条件式評価ブロック１１１のエントリー番号を表示することになる変数Ｎに“１”を設定する。続いて、ステップ３で、Ｎ番目のエントリーの条件式に対応付けられる評価結果格納域１２に充足評価結果が格納されているか否かを判断する。
【００３３】
このステップ３の判断で、評価済でない条件式であると判断するときには、ステップ４に進んで、評価対象のレコードがＮ番目のエントリーの条件式を充足するか否かを評価して、続くステップ５で、その評価結果を対応の評価結果格納域１２に格納する。一方、ステップ３の判断で、評価済の条件式であると判断するときには、ステップ６に進んで、Ｎ番目のエントリーの条件式に対応付けられる評価結果格納域１２から評価結果を取得する。
【００３４】
ステップ５／ステップ６の処理を終了すると、続いて、ステップ７で、得られた評価結果が「真」を表示しているのか、「偽」を表示しているかを判断して、「真」を表示していると判断するときには、ステップ８に進んで、条件式評価ブロック１１１の「真」欄に登録されているエントリー番号を変数Ｎに設定し、「偽」表示していると判断するときには、ステップ９に進んで、条件式評価ブロック１１１の「偽」欄に登録されているエントリー番号を変数Ｎに設定する。
【００３５】
このステップ８／ステップ９の処理で、「真」／「偽」欄にエントリー番号が登録されておらずに「ー」が登録されていることがあるので、続くステップ１０で、この「ー」が登録されているか否かを判断して、「ー」が登録されていないとき、すなわちエントリー番号が登録されているときには、ステップ３に戻っていく。
【００３６】
一方、「ー」が登録されていると判断するときには、ステップ１１に進んで、その「ー」が「真」欄に登録されているのか、「偽」欄に登録されているのかを判断して、「真」欄に登録されていると判断するときには、ステップ１２に進んで、評価対象のレコードが評価展開式の条件を充足することを判断し、「偽」欄に登録されていると判断するときには、ステップ１３に進んで、評価対象のレコードが評価展開式の条件を充足しないことを判断して処理を終了する。
【００３７】
このようにして、評価機構１４は、評価展開式が同一の条件式を複数持つときには、その条件式に対しての充足評価処理については１回のみ実行して、後はその充足評価処理の結果を利用するように処理していくことで、評価対象のレコードが評価展開式の条件を充足するか否かを判断していくよう処理する。これに対して、従来技術では、図１１に示すように、評価展開式に複数の同一の条件式が記述されるときにあっても、これを共通化して管理する構成を採らないことから、同一の条件式に対して充足評価処理を繰り返していくという構成を採っていた。これから、本発明に従うことで、従来技術よりも高速に評価展開式の条件を充足するか否かを評価できるようになる。
【００３８】
図示実施例について説明したが、本発明はこれに限定されるものではない。例えば、実施例ではＣＮＦ展開された評価展開式に従って本発明を開示したが、ＤＮＦ展開された評価展開式に対してもそのまま適用できる。また、実施例ではリレーショナルデータベースの検索処理に適用した実施例に従って本発明を開示したが、データベースの検索処理に限られることなく、あらゆるデータの評価システムにそのまま適用できる。
【００３９】
【発明の効果】
以上説明したように、本発明によれば、評価式をＣＮＦ展開又はＤＮＦ展開することで評価展開式を生成して、評価対象のレコードがその評価展開式の条件を充足するか否かを評価していくよう処理するデータ評価システムにあって、この評価処理を高速に実行できるようになる。
【図面の簡単な説明】
【図１】本発明の原理構成図である。
【図２】展開機構の実行する処理フローである。
【図３】ＣＮＦ展開処理の説明図である。
【図４】ＣＮＦ展開処理の説明図である。
【図５】ＣＮＦ展開処理の説明図である。
【図６】ＣＮＦ展開処理の説明図である。
【図７】ＣＮＦ展開処理の説明図である。
【図８】ＣＮＦ展開処理の説明図である。
【図９】評価展開式管理域の一実施例である。
【図１０】評価機構の実行する処理フローの一実施例である。
【図１１】従来技術の説明図である。
【図１２】検索処理の説明図である。
【符号の説明】
１      データ処理装置
２      データベース
１０    展開機構
１１    評価展開式管理域
１２    評価結果格納域
１３    読出機構
１４    評価機構
１５    検索結果テーブル
１１０  条件式管理域
１１１  条件式評価ブロック
１４０  評価手段
１４１  格納手段
１４２  参照手段
【図１】
0003574458.tif 000003
【図２】
0003574458.tif 000004
【図３】
0003574458.tif 000005
【図４】
0003574458.tif 000006
【図５】
0003574458.tif 000007
【図６】
0003574458.tif 000008
【図７】
0003574458.tif 000009
【図８】
0003574458.tif 000010
【図９】
0003574458.tif 000011
【図１０】
0003574458.tif 000012
【図１１】
0003574458.tif 000013
【図１２】
0003574458.tif 000014