データベースおよび情報端末の表示方法
【課題】データベースにおける実体間の多対多のリレーションシップを、ひとつの画面上で単純に表示し、かつ制御する。
【解決手段】多対多のリレーションシップを持つ2つの実体に属するインスタンス、および前記2つの実体間のリレーションシップを表すチェックボックス等を表示装置に表示し、インスタンスまたはチェックボックスを入力装置で選択することで、リレーションシップの表示または入力をおこなう。
【解決手段】多対多のリレーションシップを持つ2つの実体に属するインスタンス、および前記2つの実体間のリレーションシップを表すチェックボックス等を表示装置に表示し、インスタンスまたはチェックボックスを入力装置で選択することで、リレーションシップの表示または入力をおこなう。
【発明の詳細な説明】
【技術分野】
【0001】
本願発明は、データベースおよび情報端末の表示方法に関し、より詳細には、データベースシステム、データモデル、リレーションシップ、リレーショナルデータベース、情報端末、表示装置、オペレーティングシステム、アプリケーションソフトウェア、通信機器に関する。
【背景技術】
【0002】
実世界の事象をデータベース上で表現し、これを管理運営する際、一般的には先ず、事象を論理的に表現した論理データモデルを作成し、これをデータベースシステムの要件に従って構造化する。
【0003】
論理データモデルの基本となるのは、データベースとして表現する対象物である実体と、実体間の相互関係を表すリレーションシップである。複数の実体同士のリレーションシップを論理的に表現する手段としては、実体相関図(ER(Entity−Relationship)図)などが用いられる。
【0004】
実体間に存在するリレーションシップが表す写像対応は、1対1の場合、1対多の場合、または多対多の場合がある。論理データモデルの構造化においては、正規化により、一般に多対多のリレーションシップに対応して、新たな実体を定義して、1対多または1対1のリレーションシップに変換する。具体的には、多対多のリレーションシップを持つ双方の実体の二つの主キーを組み合わせた複合キーを主キーとする新たな実体を定義し、この新たな実体に対して1対1または1対多のリレーションシップを定義することで、実体の間に存在していた多対多のリレーションシップを除去する。
【0005】
このように、正規化により、論理データモデルから多対多のリレーションシップを排除して、同種の属性を二つ以上持つ非正規形の実体をデータモデルから除き、冗長性を排除したデータモデルに構造化する(特許文献1)。
【特許文献1】特開平9−319629
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかし、一般に多対多のリレーションシップを排除するために、新たに定義した実体に属するインスタンスの数は、正規化以前の多対多のリレーションシップを構成していた二つの実体よりも増える。たとえば、インスタンス数nの実体Aと、インスタンス数mの実体Bとの間にn:mのリレーションシップがあり、これを正規化のために新たな実体Cを定義した時、実体Cに属するインスタンスの数は最大でn×mとなる。また実体Cをマルチセットとすると、実体Cに属するインスタンスの数はn×mを越える場合もある。
【0007】
もし、データベースシステムの利用者が、実体Aに属する特定のインスタンスとリレーションシップを持つ、実体Bに属するインスタンスを検索して表示したい場合には、データベースマネジメントシステム(DBMS)は、前記実体Cに属するインスタンスの中から、検索要求を受けた実体Aの主キーを、複合キーの一方として持つ実体Cに属するインスタンスを検索して表示する。
【0008】
逆にデータベースシステムの利用者が、実体Bに属する特定のインスタンスとリレーションシップを持つ、実体Aのインスタンスのみを検索して表示したい場合には、DBMSは、前記実体Cに属するインスタンスの中から、検索要求を受けた実体Bの主キーを、複合キーの他方として持つ実体Cに属するインスタンスを検索して表示する。
【0009】
たとえば、図1に示す一例では、「名前」という実体と、「科目」という実体の間に、図1aに示すような履修についての多対多のリレーションシップが存在するとする。「Brown」、「Fleming」、「Chen」、および「Smith」の4つが実体「名前」に属するインスタンスであり、「数学」、「英語」、「理科」、「歴史」、および「社会」の5つが実体「科目」に属するインスタンスである。したがって、このリレーションシップの基数は4対5である。ただし、図1aでは、後に示すフローチャートの簡略化のために、nを整数として「名前」に属する各々のインスタンスをN(n)、「科目」に属する各々のインスタンスをS(n)と表している。これを表すER図は図1bのようになる。このリレーションシップはこれを正規化する過程では、「履修」という新たな実体を定義することで、「名前」および「科目」から「履修」への2つの一対多のリレーションシップに変換する。この「履修」という実体を表すER図は図2のように、また表は図3のようになる。この操作によって、冗長性は排除されたが、新たに定義された実体「履修」に属するインスタンス数は、「名前」および「科目」に属するインスタンス数よりも増えている。
【0010】
従って、たとえばSQL言語で「SELECT * FROM 履修;」というコマンドを入力することによって、「履修」という実体を表現しようとすると、図3に示すとおりに複雑となるため、「履修」という実体に属するすべてのインスタンスを一覧表示することはあまり行われない。
【0011】
通常、このような状態で、このデータベースの利用者が名前「Chen」の履修した科目の一覧を表示させる場合には、「Chen」を検索キーとして「履修」という実体を検索し、これを図4のような表で表示する。また、「数学」と「歴史」を履修した人の一覧を表示するには、「数学」および「歴史」を検索キーとして「履修」という実体を検索し、これを図5のような表で表示する。さらに、「名前」と「科目」の間の多対多のリレーションシップを入力、変更する場合にも、一度図4または図5のような一対多のリレーションシップで表示した上で入力、変更する。しかし、従来のこの方法によれば、「名前」から「科目」、または「科目」から「名前」のどちらかの一対多のリレーションシップしか画面上に表示できず、このためデータベースの利用者にとっては、表示および入力のための手間がかかり、かつ図1のような多対多のリレーションシップの全体像の表示が難しいという問題があった。
【0012】
すなわち、多対多のリレーションシップの直感的な表示および制御や操作は、一般にDBMSで使われる一対多のリレーションシップによる表示方法では実現が難しかった。
【0013】
本願発明は、このような事情に鑑みてなされたものであり、データベースおける実体間の多対多のリレーションシップを、ひとつの画面上で単純に表示し、かつ制御することができるような表示および制御のための装置の方法を提供することを目的とする。
【課題を解決するための手段】
【0014】
本願発明の一実施形態によると、第1の実体と第2の実体との間のリレーションシップを格納するデータベースと、第1のペインと第2のペインを表示するとともに、前記第1のペイン中に前記第1の実体に属する第1のインスタンス群からなる第1のリストを表示し、前記第2のペイン中には前記第2の実体に属する第2のインスタンス群からなる第2のリストを表示する第1表示手段と、前記第1のインスタンス群から1または複数の第1の特定インスタンスが選択されると、前記データベース中を検索し、前記第2のインスタンス群の各々について、前記第1の特定インスタンスとのリレーションシップ表示する第2の表示手段と、前記第2のインスタンス群から1または複数の第3の特定インスタンスが選択されると、前記データベース中を検索し、前記第1のインスタンス群の各々について、前記第3の特定インスタンスとのリレーションシップを表示する第3の表示手段と、を有するシステムが提供される。
【0015】
本願発明の一実施形態によると、第1の実体と第2の実体との間のリレーションシップを格納するデータベースと、第1のペインと第2のペインを表示するとともに、前記第1のペイン中に前記第1の実体に属する第1のインスタンス群からなる第1のリストを表示し、前記第2のペイン中には前記第2の実体に属する前記第2のインスタンス群からなる第2のリストを表示する第1表示手段とからなる情報端末の表示方法において、前記第1のインスタンス群から1または複数の第1の特定インスタンスが選択されると、前記データベース中を検索し、前記第2のインスタンス群の各々について、前記第1の特定インスタンスとのリレーションシップを表示し、前記第2のインスタンス群から1または複数の第3の特定インスタンスが選択されると、前記データベース中を検索し、前記第1のインスタンス群の各々について、前記第3の特定インスタンスとのリレーションシップを表示することを特徴とする情報端末の表示方法が提供される。
【0016】
本願発明の一実施形態によると、第1の実体と第2の実体との間のリレーションシップを格納するデータベースと、第1のペインと第2のペインを表示するとともに、前記第1のペイン中に前記第1の実体に属する第1のインスタンス群からなる第1のリストを表示し、前記第2のペイン中には前記第2の実体に属する第2のインスタンス群からなる第2のリストを表示する第1表示手段と、前記第1のインスタンス群から第1の特定インスタンス及び第2の特定インスタンスが選択されると、前記データベース中を検索し、前記第2のインスタンス群に含まれる、前記第1の特定インスタンスと前記第2の特定インスタンスに第1の所定の条件で第1のリレーションシップを持つ第3の特定インスタンスについて、前記第1の特定インスタンスおよび前記第2の特定インスタンスとの前記第1のリレーションシップを第1の形態で表示するとともに、前記第1の特定インスタンスと前記第2の特定インスタンスに第2の所定の条件で第2のリレーションシップを持つ第4の特定インスタンスについて、前記第1の特定インスタンスおよび前記第2の特定インスタンスとの前記第2のリレーションシップを第2の形態で表示する第2の表示手段と、を有するシステムが提供される。
【0017】
本願発明の一実施形態によると、第1の実体と第2の実体との間のリレーションシップを格納するデータベースと、第1のペインと第2のペインを表示するとともに、前記第1のペイン中に前記第1の実体に属する第1のインスタンス群からなる第1のリストを表示し、前記第2のペイン中には前記第2の実体に属する第2のインスタンス群からなる第2のリストを表示する第1表示手段と、前記第1のインスタンス群から1または複数の第1の特定インスタンスが選択されると、前記データベース中を検索し、前記第2のインスタンス群の各々について、前記第1の特定インスタンスとのリレーションシップを表示する第2の表示手段とからなり、前記第1のインスタンス群から1または複数の前記第1の特定インスタンスが選択され、かつ前記第2の表示手段によって表示された、前記第1の特定インスタンスと前記第2のインスタンス群の各々とのリレーションシップのうちの1または複数の任意のリレーションシップを選択すると、前記任意のリレーションシップが前記データベースより削除されることを特徴とするシステムが提供される。
【0018】
本願発明の一実施形態によると、第1の実体と第2の実体との間のリレーションシップを格納するデータベースと、第1のペインと第2のペインを表示するとともに、前記第1のペイン中に前記第1の実体に属する第1のインスタンス群からなる第1のリストを表示し、前記第2のペイン中には前記第2の実体に属する第2のインスタンス群からなる第2のリストを表示する第1表示手段と、前記第1のインスタンス群から1または複数の第1の特定インスタンスが選択されると、前記データベース中を検索し、前記第2のインスタンス群の各々について、前記第1の特定インスタンスとのリレーションシップを表示する第2の表示手段とからなり、前記第2のインスタンス群のなかで前記第1の特定インスタンスとのリレーションシップが前記データベースに存在しない第3の特定インスタンスを選択すると、前記第1の特定インスタンスと前記第3の特定インスタンスとのリレーションシップが前記データベースに追加されることを特徴とするシステムが提供される。
【0019】
別の観点からすれば、本願発明の一実施形態によると、第1の実体に属する複数の第1のインスタンスと第2の実体に属する複数の第2のインスタンスとの間に存在する一または複数のリレーションシップを格納するデータベースと、前記複数の第1のインスタンスの中から一または複数の前記第1のインスタンスが選択されると、前記データベースを検索し、前記複数の第2のインスタンスの各々について、選択された前記一または複数の前記第1のインスタンスとの間に存在する第1のリレーションシップを求め、前記複数の第2のインスタンスから一または複数の前記第2のインスタンスが選択されると、前記データベースを検索し、前記複数の第1のインスタンスの各々について、選択された前記一または複数の前記第2のインスタンスとの間に存在する第2のリレーションシップを求めるマイクロプロセッサと、第1のペインと第2のペインを表示する表示装置であって、前記複数の第1のインスタンスを含む第1のリストを前記第1のペイン中に表示し、前記複数の第2のインスタンスを含む第2のリストを前記第2のペイン中に表示し、前記第1のリレーションシップまたは前記第2のリレーションシップを前記第1のペイン及び前記第2のペインに表示する表示装置と、を有することを特徴とするデータベースシステムが提供される。
【0020】
また、本願発明の一実施形態によると、第1の実体に属する複数の第1のインスタンスと第2の実体に属する複数の第2のインスタンスとの間に存在する一または複数のリレーションシップを格納するデータベースと、前記複数の第1のインスタンスから第3のインスタンス及び第4のインスタンスが選択されると、前記複数の第2のインスタンスのうち、前記第3のインスタンスと前記第4のインスタンスに第1の所定の条件で第1のリレーションシップが存在する一または複数の第5のインスタンスを前記データベースより検索し、前記複数の第2のインスタンスのうち、前記第3のインスタンスと前記第4のインスタンスに第2の所定の条件で第2のリレーションシップが存在する一または複数の第6のインスタンスを前記データベースより検索するマイクロプロセッサと、第1のペインと第2のペインを表示する表示装置であって、前記複数の第1のインスタンスを含む第1のリストを前記第1のペイン中に表示し、前記複数の第2のインスタンスを含む第2のリストを前記第2のペイン中に表示し、前記第3のインスタンスおよび前記第4のインスタンスと前記第5のインスタンスとの間に存在する前記第1のリレーションシップを第1の形態で表示し、前記第3のインスタンスおよび前記第4のインスタンスと前記第6のインスタンスとのに存在する前記第2のリレーションシップを第2の形態で表示する表示装置と、を有するデータベースシステムが提供される。
【0021】
また、本願発明の一実施形態によると、第1の実体に属する複数の第1のインスタンスと第2の実体に属する複数の第2のインスタンスとの間に存在する一または複数のリレーションシップを格納するデータベースと、第1のペインと第2のペインを表示し、前記第1のペイン中に前記複数の第1のインスタンスを含む第1のリストを表示し、前記第2のペイン中に前記複数の第2のインスタンスを含む第2のリストを表示する表示装置とを有する情報端末の表示方法において、前記複数の第1のインスタンスから一または複数の第1のインスタンスが選択されると、前記データベースを検索し、前記複数の第2のインスタンスの各々について、選択された前記一または複数の前記第1のインスタンスとの間に存在する第1のリレーションシップを求め、前記第1のリレーションシップを前記表示装置に表示し、前記複数の第2のインスタンスから一または複数の第2のインスタンスが選択されると、前記データベースを検索し、前記複数の第1のインスタンスの各々について、選択された前記一または複数の前記第2のインスタンスとの間に存在する第2のリレーションシップを求め、前記第2のリレーションシップを前記表示装置に表示することを特徴とする情報端末の表示方法が提供される。
【発明の効果】
【0022】
本願発明の表示および制御のための情報端末には、データベースにおける実体間の多対多のリレーションシップを一画面上で単純に表示し、かつ多対多のリレーションシップを容易に制御、操作することができる。
【発明を実施するための最良の形態】
【0023】
以下に本願発明を実施するための現在考えられる最善の形態について説明する。本願発明の範囲は、添付特許請求の範囲によって明確に定義されているため、この説明は限定的な意味に解釈すべきではなく、単に発明の一般原理を例示する目的で行う。
【0024】
本願発明は、様々な情報端末または通信端末で利用可能である。ここで使われる情報端末または通信端末は、パーソナル・コンピュータ、サーバ、携帯型情報端末、有線電話機、携帯電話機、ゲーム機、テレビ、ビデオレコーダ、カメラ、ビデオカメラ、携帯型音楽プレーヤーなど何でもよく、さらにここで例として示す機器に限定されず、グラフィカル・ユーザ・インタフェイス(以下GUIと称する)が利用可能な表示装置、およびそのGUI上のオブジェクトを制御可能なボタン、キーボード、マウス、タッチ・センサ、グラフィック・タブレット、トラックボール、ジョイスティックなどの入力装置を具える機器であれば何でもよい。
【0025】
本願発明の一実施形態によると、前記ハードウェアを構成する各要素と、データベースにおける多対多のリレーションシップの表示および制御や操作のためのソフトウェア(以下、多対多RMSと称する)とが協調することで、その効果を得ることができる。図6に、本願発明の実施形態の一例として、情報端末の構成要素をブロック図で示す。なお、図6に示す情報端末の構成は典型的なものであるが、これを限定的に解釈すべきではなく、特定の実施形態にあわせて変更することができる。たとえば、これらの他に、光ディスク記憶媒体、オーディオ入出力装置、プリンタ、および類似の装置など、他の周辺機器が接続されていてもよい。またこの情報端末の主たる機能も、情報の記憶、処理、他端末やサーバとの通信、ネットワークにおける情報の中継など、何であってもよい。
(実施形態1)
【0026】
まず、はじめに前記図6のブロック図、および図7に示すフローチャートを用いて、本願発明による、多対多のリレーションシップの表示および入力装置の概要を説明する。その後、図7中の各ステップで実行される方法が、図6に一例として示すハードウェア資源とどのように協調して実現されるかを図13、図14、図15、図16、図17、および図18のフローチャートを用いて詳しく説明する。
【0027】
本願発明による実施形態の一例では、この情報端末はマイクロプロセッサ601を有し、以下に述べるすべての処理は、主記憶装置604にロードされたアプリケーションソフトウェアが、同じく主記憶装置604にロードされたオペレーティングシステム605に手続きを伝え、これがバス603を通じてマイクロプロセッサに命令することによって実行される。
【0028】
まず前記オペレーティングシステム605が主記憶装置604にロードされた状態で、さらに外部記憶装置に記憶された多対多RMS606が主記憶装置604にロードされる。ここで、この情報端末の利用者が、キーボード608、またはマウス609などの入力装置を通じて、外部記憶装置602に記憶された履修科目データベース614の中から、表示または制御したい情報を指定すると、前記多対多RMSは、指示された情報の含まれる実体やリレーションシップに関する情報の一部または全部を主記憶装置604にロードする。図6に示す一例では、ここでロードした情報を、履修テーブル610と呼ぶ。この状態で、前記多対多RMS606は、表示装置612に表示されたグラフィカル・ユーザ・インタフェイス(以下GUI称する)613上の多対多RMSウィンドウ615に、前記図1に一例として示した実体「名前」および実体「科目」に属する各インスタンスを、たとえば図8のように表示する(ステップS701)。
【0029】
すなわち、多対多RMSウィンドウ615の内部に、「学年」、「名前」、そして「科目」という見出しを有する3つの領域が設けられる。「学年」という見出しを有する領域には、学年という実体に属するインスタンスである「1」、「2」、「3」、そして「4」を含むリストが表示されている。「名前」という見出しを有する領域には、名前という実体に属するインスタンスである「Brown」、「Fleming」、「Chen」、そして「Smith」を含むリストが表示されている。「科目」という見出しを有する領域には、科目という実体に属するインスタンスである「数学」、「英語」、「理科」、「歴史」、そして「社会」を含むリストが表示されている。このように、実体に属するインスタンスが表示される領域を「ペイン(pane)」と呼ぶ。ペインは一つのウィンドウ境界線などにより区切って得られる領域である。境界線は明示的に表示されないこともある。ペインには見出しが表示されない場合もある。また、見出しが表示される場合でも、見出しはインスタンスの上に表示されず、横に表示されたり、下に表示されたりする場合もある。ペインはウィンドウの中のサブウィンドウとして実現される。あるいは、一つのペインが一つのウィンドウによって実現される場合もある。
【0030】
なお、以下の説明では、ペインとそこにインスタンスが表示されている実体とを同一視する場合がある。例えば、「実体Eに属するインスタンスが表示されているペイン」を「実体E」と簡略化して表現する場合がある。
【0031】
続いて、この情報端末の利用者は、表示されたインスタンスの中から、「名前」または「科目」に属する一つ以上の任意のインスタンスを選択する(ステップS702)。例えば、「名前」に属する一または複数のインスタンスの表示に対してマウスのクリック操作を行う。すると、選択されたインスタンスが属する「名前」という実体でない他方の実体である「科目」に属する各々のインスタンスに、マークを表示することができる領域が表示される。例えば、チェックボックスが表示される(ステップS704またはS708)。そして、多対多RMSを実現するプログラムなどはマイクロプロセッサを動作させて、前記選択された「名前」に属するインスタンスとの間にリレーションシップが存在する「科目」に属するインスタンスを、前記履修テーブルを検索することで求める(ステップS705またはS721)。
【0032】
ここに、「名前」のインスタンスとの間にリレーションシップが存在する「科目」のインスタンスとは、「名前」に属するインスタンスと「科目」のインスタンスとの組み合わせ(タプル(tuple)あるいはレコード)が、履修テーブル610に存在することをいう。また、履修テーブル610に存在する「名前」に属するインスタンスと「科目」のインスタンスとの組み合わせ各々のことを、「名前」に属するそのインスタンスと「科目」のそのインスタンスとの間に存在するリレーションシップという。したがって、ステップS705またはS721において、マイクロプロセッサは、選択された「名前」のインスタンスの各々について、履修テーブルに存在する組み合わせのうち「名前」の列にそのインスタンスが存在する組み合わせを検索し、検索された組み合わせから「科目」の列の値を読出す。なお、「実体に属するインスタンス」のことを「実体のインスタンス」と表現する場合がある。
【0033】
例えば、図6において、“Brown:N(0)”と“数学:S(0)”とのtupleが履修テーブル610の第1行に存在している。したがって、“Brown”と“数学”との間にはリレーションシップが存在する。あるいは、“Brown”との間にリレーションシップが存在する科目のインスタンスとしては、“数学”がある、ともいえる。また、“Brown”に対して“数学”が関連付けられているという表現を用いることもできる。逆に、“数学”に対して“Brown”が関連付けられているという表現を用いることも可能である。
【0034】
その結果、選択された名前のインスタンスとリレーションシップが存在する科目のインスタンスに対応して表示されたチェックマークの内部にマークが表示される(ステップS706またはS722)。たとえば図9aに示す一例では、実体「名前」の中のインスタンス「Chen」が選択されており、その結果、実体「科目」のインスタンスの中で「英語」、「歴史」および「社会」に強調の表示などとして、チェックマーク「レ」が「履修」のリレーションシップを表示するためのサブペイン84に表示される。これは、前記図1および図6の履修テーブル610で示したとおり、「Chen」が「英語」、「歴史」、および「社会」を履修していることを表している。また、「数学」および「理科」の左側のチェックボックスは空であり、これによって「数学」および「理科」は「Chen」によって履修されていないことを表している。サブペイン84は、ペイン83の内部を境界線でさらに区切って得られる領域である。ただし、「履修」のリレーションシップはサブペインに表示されることに限定されず、例えば、Chenが履修する英語、歴史、そして社会の科目名の表示を例えばフォントを変えて表示するなど、任意の方法で強調するようにしてもよい。
【0035】
また、インスタンスは複数選択してもよい。たとえば図9bに示す一例では、実体「名前」の中から「Chen」に加えて「Brown」の、二つのインスタンスが選択されている。この場合でも前記と同様のステップによって、この二つのインスタンスについて、「科目」のインスタンスとの間のリレーションシップの存在が表示されている。図9bに示す一例では、「歴史」の左側に付けられたチェックマーク「レ」96によって、選択された「名前」のインスタンスのすべて、ここでは「Brown」と「Chen」の両方によって、「歴史」が履修されていることを表している。また、たとえば「数学」の左側に付けられたチェックマーク「−」98によって、選択された「名前」のインスタンスの一部、ここでは「Brown」のみによって「数学」が履修されていることを表している。以上のステップの詳細は後に図13および図14を使って詳しく説明する。
【0036】
またさらに、たとえば図9aの状態から、この情報端末の利用者はいつでも、マウス609などを使って、カーソル618を移動させることにより、多対多RMSウィンドウ615に表示された他の一つ以上の任意のインスタンスを選択することによって、逆方向を含む、他のインスタンスとの間に存在するリレーションシップを表示することもできる。たとえば図9aや図9bに示す状態から、図10に示す一例のように、多対多RMSウィンドウ615に表示された実体「科目」のインスタンスが表示されているペイン83の中から、「数学」103および「歴史」102を選択することができる。すると、前記実体「名前」に属するインスタンスに対してリレーションが存在する、実体「科目」に属するインスタンスを強調などして表示した場合と同様に(ステップS708、S709、およびS710)、今度は実体「科目」に属するインスタンスに対してリレーションシップが存在する、実体「名前」に属するインスタンスが表示される。これにより、逆方向の多対多のリレーションシップを表示することができる。図10に示す一例では、「Brown」の左側に表示されたチェックマーク「レ」104によって、「数学」と「英語」の両方が「Brown」によって履修されていることが表示されている。またたとえば、「Fleming」の左側に表示されたチェックマーク「−」105によって、Flemingは、選択された実体「科目」の中の一部、すなわちこの場合は「数学」か「歴史」のどちらかを履修していることを示している。以上のステップの詳細は、後に図13および図15を使って詳しく説明する。
【0037】
以上のように、本願発明による情報端末では、この情報端末の利用者が表示装置612上のGUI613のカーソル618を、マウス609などを使って移動させ、一度選択するのみで、二つの実体の間にある多対多のリレーションシップを、双方向で容易に表示させることができる。
【0038】
さらに、本願発明によれば、二つの実体間の多対多のリレーションシップを双方向で表示させるのみではなく、そのリレーションシップに変更を加えるための入力を、前記GUI613を通じて簡単に行うこともできる。たとえば、図9bに示す状態を出発点にして以下で説明する。図9bの状態で、この情報端末の利用者が、理科の左側にあるチェックボックス99の表示までマウス609によってカーソル移動させた上で、ここでボタンを下押しすることでクリックする(ステップS708)。ここでクリック前はこのチェックボックスは空だったので(ステップS709)、このチェックボックスに「レ」を表示させ(ステップS710)、その結果、多対多RMSウィンドウは図11に示す状態となる。さらに、ステップS701で選択されている実体「名前」の二つのインスタンス「Brown」および「Chen」との組み合わせ、すなわち、{Brown」、「理科」}および{「Chen」、「理科」}を、前記履修テーブル610に追加する(ステップS711)。以上のステップの詳細は、後に図16および図17を使って詳しく説明する。
【0039】
さらに、この状態で、この情報端末の利用者は、続けて表示されたリレーションシップの入力(追加)あるいは変更を行うか、もしくは別のリレーションシップの表示を行うかを選択できる(ステップS713)。たとえば続けてリレーションシップの入力を行う場合には、前記図11の状態で、この情報端末の利用者が、「歴史」の左側にあるチェックボックス96の表示までマウス609によってカーソル移動させた上で、ここでボタンを下押しすることでクリックする(ステップS708)。ここでクリック前はこのチェックボックスは「レ」が表示されていたので(ステップS709)、このチェックボックスにあった「レ」を削除(ステップS714)し、その結果、多対多RMSウィンドウは図12に示す状態となる。次に別のリレーションシップの表示をおこなう場合には、図7の前記ステップS713より、ステップS702に戻る。この入力または表示の選択は、多対多RMSウィンドウGUI上の、チェックボックスをクリックするか、または任意のインスタンスを選択するか、のどちらかの一つの操作をおこなうことによって、簡単に選択できる。以上のステップの詳細は、後に図16および図18を使って詳しく説明する。
【0040】
なお、本実施形態においてチェックマーク「レ」や「−」は、実体間のリレーションシップをあわす記号として例示したに過ぎず、前記チェックボックスに表示されるチェックマークは、このほかの記号、アイコン、画像データ、文字、数字など何であってもよい。たとえば、前記図10において、「レ」および「−」のチェックマークの代わりに実体「名前」のインスタンスの各々の左側のチェックボックスに、各々の名前が履修している科目の数を、数字で表示するような方法によっても、同様に、二つの実体間の多対多のリレーションシップを双方向で容易に表示させることができる。また、実体間の多対多のリレーションシップの表示および制御に使われる前記および後記チェックボックスは、所謂チェックボックスである必要はなく、選択または何らかの入力ができる窓、アイコン、図形など何であってもよい。
【0041】
また、これまでの図6を参照した説明では、多対多RMSプログラム、および履修テーブルともに、この情報端末の主記憶装置上に存在している一例を利用して、本願発明の基本原理を説明したが、これは通信装置620を経由して、ネットワークの他端に接続されたサーバ内の任意の記憶装置に存在してもよい。この場合には、この情報端末の利用者が、キーボード608やマウス609を操作することによって、多対多RMSウィンドウ613に表示されたインスタンスやチェックボックスを選択またはクリックする動作をおこなうと、それをウェブブラウザがコマンドに変換して、通信装置620を経由してサーバに送る。これを受け取ったサーバは、その記憶装置上にある履修テーブルに対して、前記各ステップと同様の手順で検索、追加、削除または変更の処理を行い、および表示する多対多RMSウィンドウを、再びネットワークを通じてこの情報端末に送る。これを通信装置620で受け取ったこの情報端末が、ウェブブラウザ621によって表示装置のGUI613上に前記のような多対多RMSウィンドウを表示する。
【0042】
次に、前記図7に示した各々のステップで実行される方法が、図6に一例として示すハードウェア資源とどのように協調して実現されるかを図13、図14、図15、図16、図17、および図18のフローチャートを用いて詳しく説明する。
【0043】
まず、図13を参照して、任意のインスタンスを選択するまでのステップを説明する。前記オペレーティングシステム605が主記憶装置604にロードされた状態で、さらに外部記憶装置に記憶された多対多RMS606が主記憶装置604にロードされる。ここで、この情報端末の利用者が、キーボード608、またはマウス609などの入力装置を通じて、外部記憶装置602に記憶された履修科目データベース614の中から、表示または制御したい情報を指定すると、前記多対多RMSは、指示された情報の含まれる実体やリレーションシップに関する情報の一部または全部を主記憶装置604にロードする。図6に示す一例では、まずこの情報端末の利用者が、多対多RMS606の指示に従い、表示制御装置611が表示装置612上に表示したグラフィカル・ユーザ・インタフェイス(以下GUIと称する)613内に表示された、履修のリレーションシップを表示するための多対多RMSウィンドウ615の中にある学年選択用ウィンドウ616の中から、第4学年を表す項目617を、マウス609で選択する操作を行う(ステップS1301)。すると多対多RMS606は、第4学年の名前、および第4学年の学生が履修している科目を、外部記憶装置602に記憶されている履修科目データベース614から検索し、これらを主記憶装置604にロードした上、履修テーブル610として記憶する(ステップS1302)。次にこの主記憶装置604上の履修テーブル610で表される実体「名前」のインスタンスと実体「科目」のインスタンスをGUI614の中の多対多RMSウィンドウ615中に表示する(ステップS1303)。ここで、実体「名前」および「科目」のすべてのインスタンスが表示されてもよく、またはさらに何らかの選択ウィンドウを表示させ、これに対する操作をマウスやキーボードで行うことで履修テーブル610のレコードから絞り込んだ上で、各々の実体のインスタンスの任意の一部を表示させてもよい。この状態では、これら2つの実体間にある多対多のリレーションシップは、多対多RMSウィンドウ615には表示されていない。ここで、以下の処理の繰り返し処理に利用する整数の変数i、k、およびrをそれぞれ宣言する(ステップS1304)。これらは各々、名前N(i)、科目S(k)、および履修テーブル610におけるレコード番号に使われる変数である。また、後の処理でGUI表示につかうための整数配列、FS(k)(ただし図6の一例ではk=0、1、2、3、4)、およびFN(i)(ただし図6の一例ではi=0、1、2、3)も合わせて宣言する。FS(k)は科目の各インスタンスに関連づけられたフラグであり、たとえば図6の一例ではFS(3)は科目の「歴史」というインスタンスに関連づけられたフラグである。同様にFN(i)は名前の各インスタンスに関連づけられたフラグであり、たとえば図6の一例ではFN(2)は「Chen」という名前のインスタンスに関連づけられたフラグである。
【0044】
次に、この端末の利用者は、前記多対多RMSウィンドウ615に表示された実体「名前」のインスタンスのうちの任意のn個、または実体「科目」のインスタンスのうちの任意のn個のどちらかを、マウス609を操作して、GUI613上のカーソル618を、GUI上で移動させることによって選択する(ステップS1305)。すると、選択した実体ではない、もう一方の実体の各インスタンスに関連づけられたチェックボックスが表示される(ステップS1306、S1307)。図9aに示す一例では、この情報端末の利用者が、マウス609を操作して、GUI613上のカーソル618を、GUI上で移動させ、実体「名前」に属するインスタンスが表示されているペイン81に表示された4つのインスタンスの中から「Chen」92を選択する(ステップS1305)。前記のように多対多RMSウィンドウ615では、実体「名前」に属するインスタンスが表示されているペイン81から任意の数のインスタンスを選択できるが、この図9aに示すのは、その中の一例を示しているにすぎず、図9aの一例ではn=1である。この図9aの一例では選択したのは「名前」のインスタンスであるので、「科目」の各々のインスタンス、すなわち「数学」、「英語」、「理科」、「国語」、および「社会」の各々の左側に対応するチェックボックスが表示されている(ステップS1306)。この図9aの一例では、選択されたのは実体「名前」のインスタンスであるので、次の処理は図14へと移る。
【0045】
次に、図14に示す一例を用いて、前記ステップで実体「科目」の左側に表示されたチェックボックスにチェックマークを表示して、実体「名前」と実体「科目」との間のリレーションシップを表示するためのステップについて説明する。まずは繰り返し処理のための変数、i、k、r、および、すべてのkについてFS(k)を0に初期化する(ステップS1402)。前記のように、図9aに示す一例では、「Chen」が選択されているが、ここで履修テーブル610によれば「Chen」はN(2)である。したがって、i=0から始まるiに関する分岐(ステップS1409)とインクリメント処理(S1404)による繰り返し処理において、第一の分岐(ステップS1403)が真となるのは「Chen」を表すi=2の場合のみである。したがってこの場合のみ、第二の分岐(ステップS1405)、rに関するインクリメント処理(ステップS1407)、および第三の分岐(ステップS1408)から成る、rについての繰り返し処理によって、「Chen」であるN(2)が、主記憶装置604上の履修テーブル610の中から検索される。履修テーブル610の名前のインスタンスT1(r)の中で、ChenであるN(2)と一致するレコードrが発見されると、第二の分岐(ステップS1405)が真となり、そのレコードにある科目T2(r)に関連づけられた前記FS(k)の値に対して1のインクリメントされる(ステップS1406)。すなわち、S(k)=T2(r)となるkの値を求め、F(k)の値に1を加算してF(k)の次の値とする。図9aに示す一例では、「Chen」であるN(2)は、図6を参照すると、第4学年履修テーブル中のr=3、4、および5で一致が発見される。このため、発見された各々のレコードにある科目「英語」S(1)、「歴史」S(3)、および「社会」S(4)の各々に関連づけられたフラグFS(1)、FS(3)、およびFS(4)が各々1インクリメントされる。この結果、図9aに示す一例では、以上の処理の結果、「科目」の各々のインスタンスに関連づけられたフラグは、FS(0)=FS(2)=0となり、FS(1)=FS(3)=FS(4)=1となる。以上が、選択されたインスタンスである「Chen」の、実体「科目」への写像対応を主記憶装置604上にある履修テーブル610から検索する処理(ステップS705)である。
【0046】
次に、検索された写像対応を表示装置上のGUI中にある、多対多RMSウィンドウ615の中に表示する処理に移る。kに関するインクリメント処理(ステップS1415)および第六の分岐(ステップS1416)による、k=0から始まる繰り返し処理によって、実体「科目」のすべてについて、以下の処理を行うことで、選択されたインスタンス「Chen」が属する実体「名前」に対する実体「科目」のインスタンスとの間に存在するリレーションシップを表示する。まず、第四の分岐(ステップS1410)において、条件式FS(k)=0が真である場合には、多対多RMSウィンドウ615中の「科目」のインスタンスS(k)の左にあるチェックボックスにはいずれのチェックも付けない。もし何らかのチェックが付いている場合には、これを消去する(ステップS1412)。これは、前記ステップS1305で選択した実体「名前」のインスタンスで表される名前が、このS(k)という科目を履修していないことを表現している。条件式FS(k)=0が偽である場合には、第五の分岐(ステップS1411)でFS(k)=nであるかどうかを調べる。nは前記ステップS1305で選択した名前の数であるから、もしこの第五の分岐の条件式が真であるならば、多対多RMSウィンドウ615中の「科目」のインスタンスS(k)のチェックボックスにチェックマーク「レ」を表示する(ステップS1413)。これは、ステップS1305で選択した人の全てが、S(k)という科目を履修していることを表現している。また第五の分岐の条件式が偽である場合には、多対多RMSウィンドウ615中の「科目」のインスタンスS(k)のチェックボックスS(k)の左のチェックボックスには、チェックマーク「−」を表示する(ステップS1414)。これは、ステップS702で選択した人の一部が、S(k)という科目を履修していることを表現している。図9aに示す一例では、選択した人の数は「Chen」のみでn=1であり、前記のようにFS(0)=FS(2)=0、かつFS(1)=FS(3)=FS(4)=1であるから、図9aの「英語」、「歴史」、および「社会」の左に各々表示されるチェックボックス95、96、および97には、チェックマーク「レ」が表示されており、また「数学」および「理科」の左に各々表示されているチェックボックス98および99には何も表示されていない。このようにして、図9aに示されたような、多対多RMSウィンドウにおけるリレーションシップの表示が行われる。なお、検索およびチェックマーク表示のためのアルゴリズムは、この図14のフローチャートで示したものに限定されず、結果として図9aに示す表示がなされるアルゴリズムであれば何でもよい。
【0047】
例えば、FSやFNの配列を用いるのではなく、関係データベースシステムにより実現される集合演算により、検索を行い、チェックマークなどの表示を行うアルゴリズムを用いることもできる。図9bにおいて、選択されたBrownが履修している科目の集合を求め、選択されたChenが履修している科目の集合を求め、それらの集合の積集合に含まれる歴史に「レ」のマークを付け、それらの集合の和集合から積集合を引いた集合に含まれる数学、英語、社会に「−」のマークを付けるようにしてもよい。
【0048】
また、本願発明によれば、以上の処理によって「Chen」の履修している科目が図9aのようにチェックマークによって表示されている状態で、他のインスタンスについてのリレーションシップを明示的な検索処理のための操作をおこなうことなく容易に表示できる。図14における第七の分岐(ステップS1417)で「続ける」を選択し、さらに、第八の分岐で新たな表示を選択(ステップS1418)した場合には、図7における選択操作(ステップS702またはS1305)にジャンプする。なおこれらステップS1417およびステップS1408は、この情報端末の利用者が明示的な操作をおこなう必要はなく、単に多対多RMSウィンドウに表示された、任意のインスタンスを選択する操作をおこなえば、表示、すなわち図13へのジャンプとなり、任意のチェックボックスをクリックすれば入力、すなわち図16へのジャンプとなる。
【0049】
本願発明では、複数のインスタンスを選択してその写像対応を表示装置上のGUIに表示させることができる。図9bに示す一例では、前記図9aに示す状態から、さらに前記図13における選択操作(ステップS1305で)に移行し、マウス609を操作し、表示装置612に表示したGUI613上にあるカーソル618を移動させ、「Chen」に加えて「Brown」を選択している。このようにGUI上で利用者を複数選択するための方法としては、キーボードのいずれかのキーを押しながら、マウスで「Brown」をクリックする方法や、GUI613上に「名前」のインスタンス選択用の別ウィンドウを生成して、それに対してマウスまたはキーボードで入力する方法などがあるが、これらに限らずどのような方法でもよい。
【0050】
再び図14を参照すると、この図9bに示す一例においては、「Brown」および「Chen」を表すN(0)およびN(2)の二つが選択されており、n=2である。この一例でも、前記処理と全く同様にステップS1402からS1409までの検索処理S705によって、選択されたインスタンスである「Chen」および「Brown」の実体「科目」への写像対応を主記憶装置604上にある履修テーブル610から検索した結果として、以下が得られる。実体「科目」の各々のインスタンスに関連づけられたフラグは「数学」がFS(0)=1、「英語」がFS(1)=1、「理科」がFS(2)=0、「歴史」がFS(3)=2、そして「社会」がFS(4)=1となる。
【0051】
さらにこれらの検索結果をもとに、図14に示す表示処理S706の各ステップによって、図9bのような画面が、表示装置612上のGUI613に表示された多対多RMSウィンドウ615に表示される。ここでは実体「科目」のインスタンスを表す項目のうちで、「歴史」の左のチェックボックス96にはチェックマーク「レ」が表示される。これは、「Brown」と「Chen」の両方が「歴史」を履修していることを表している。また、「理科」を左のチェックボックス99には、チェックマークが表示されておらず、これは「Brown」も「Chen」も「理科」を履修していないことを表している。一方、「数学」、「英語」、および「社会」の左の各々のチェックボックス88、85、および87には、チェックマーク「−」が表示されており、これは「Brown」および「Chen」のどちらか一方がこれらの科目を履修していることを表している。
【0052】
これまで図9で示したように、この情報端末の利用者は、実体「名前」の一つまたは複数のインスタンスを選択することによって、各々のインスタンスの実体「科目」の各インスタンスへのリレーションシップ、すなわち図9の一例では、各々の名前が履修している科目を、GUI上にある、多対多RMSウィンドウ615に、簡単に表示することができる。
【0053】
この状態でいつでも、この情報端末の利用者は、マウス609などを操作し、カーソル618を移動させることによって、実体「科目」の一つ以上の任意のインスタンスを選択することができる。たとえば、図10に示すGUIの一例では、この情報端末の利用者が、実体「科目」のインスタンスのなかから、「数学」および「歴史」の二つを、マウスを操作して選択している(ステップS1305)。再び図13を参照すると、ここで選択したのは、「科目」のインスタンスであるので、実体「名前」の各々のインスタンスの左側に各々に対応するチェックボックス104、105、106、および107がペイン101に表示される(ステップS1307)。
【0054】
以降の処理について、図15に示すフローチャートを使って説明する。ただし、処理の詳細なステップについては、前記図14を使って説明した、実体「名前」の任意のインスタンスを選択し、実体「科目」への写像対応を表示させた場合のステップとほぼ同じであるため、適宜省略して説明する。図10に示す一例では、多対多RMSウィンドウ615上で、「数学」と「歴史」が選択されている。したがって、図15の第一の分岐(ステップS1501)では、k=0およびk=3のときのみが真となり、第二の分岐以降の主記憶装置604上にある履修テーブル内の検索が行われ(ステップS1502)、一致したレコードの名前に関連づけられたフラグがインクリメントされる(ステップS1503)。一連の検索処理(ステップS705)の結果、図10に示す一例では、実体「名前」の各々のインスタンスに関連づけられたフラグは、「Brown」がFN(0)=2、「Fleming」がNF(1)=1、「Chen」がNF(2)=1、そして「Smith」がNF(3)=0となる。
【0055】
さらにこれらの検索結果をもとに、図15に示す表示処理(ステップS706)の各ステップによって、表示装置612上のGUI613に表示された多対多RMSウィンドウ615の、実体「名前」のインスタンスを表す項目のうちで、「Brown」の左のチェックボックス104にはチェックマーク「レ」が表示される。これは、「Brown」は「数学」と「歴史」の両方を履修していることを表している。また、「Fleming」および「Chen」の左のチェックボックスには105および106には、チェックマーク「−」が表示される。これは、「Fleming」および「Chen」が「数学」と「歴史」のうちのどちらか一方を履修していることを表している。さらに「Smith」の左のチェックボックス107にはなにもチェックマークが表示されていない。これは、「Smith」が「数学」と「歴史」のどちらも履修していなことを表している。
【0056】
さらに、この図10に示す状態で、この情報端末の利用者は、いつでも実体「名前」の一つ以上の任意のインスタンス、または実体「科目」の一つ以上の任意のインスタンスを、マウス609などを操作し、GUI613上のカーソル618を移動させることによって選択することができる。これは、図15に示すステップ第八の分岐(ステップS1518)から、図13に示すステップS1305にいつでも遷移できることを示している。
【0057】
以上で、本実施形態における、主記憶装置上にあるデータベースのテーブルにおける、多対多のリレーションシップを柔軟に表示する方法を説明した。これによれば、多対多のリレーションシップを持つ二つの実体間の、任意のインスタンス間に存在する一または複数のリレーションシップを柔軟に、かつ単純に表示することができる。次に、本願発明による方法を用いて、前記の各ステップで表示された多対多のリレーションシップを表示するだけでなく、変更し、あるいは表示された実体間の新たなリレーションシップを、キーボードやマウスなどを使って入力し、主記憶装置上のテーブルに変更を加える方法について説明する。
【0058】
たとえば、図14または図15に各々示す一例においては、既に述べたように、この情報端末の利用者がマウス609などを用いて、実体「名前」、または実体「科目」の他のインスタンスを多対多RMSウィンドウ615上で選択すると、図14または図15における第七の分岐(ステップS1418またはS1518)で表示が選択され、図13のステップS1305にジャンプし、実体「名前」の任意のインスタンスから実体「科目」のインスタンスへの、またはその逆の写像対応を表示することができる。
【0059】
しかし、一方で図14または図15に各々の示す一例においては、この情報端末の利用者がマウス609などを用いて、各々の「名前」や「科目」のインスタンスではなくチェックボックスをクリックすることによって、表示されている実体間のリレーションシップを変更したり、新たなリレーションシップを入力したりできる。
【0060】
ここで再び図9bを参照すると、いま、表示装置上で、実体「名前」のインスタンスのうちで「Brown」および「Chen」が選択された結果、主記憶装置上の履修テーブルのデータをもとに、「歴史」にチェックマーク「レ」が、また「数学」、「英語」、および「社会」にチェックマーク「−」が、「理科」には何もチェックマークが表示されていない。これは、たとえば前記選択された「Brown」および「Chen」は、「理科」を履修していないことを表している。
【0061】
この状態で、この情報端末の利用者が「Brown」と「Chen」の両方が「理科」を履修するという、新たなリレーションシップを追加入力したいとすると、マウス609を操作し、GUI613上のカーソル618を「理科」の左にあるチェックボックス99上に移動させ、ここでマウスのボタンを下押しすることでクリックする(ステップS1601)。図9bの状態では、このチェックボックスには何も表示されていないので、図16における第一および第二の分岐を経て、前記で選択したチェックボックスにチェックマーク「レ」を表示し(ステップS1302)、図11に示す状態となる。この操作によって、GUI613上の多対多RMSウィンドウ615において、「Bronw」および「Chen」が「理科」を履修しているというリレーションシップが新たに入力および表示されたが、主記憶装置上にある履修テーブルには、この時点ではこれらのリレーションシップは追加されていない。
【0062】
次に図17を参照して、前記リレーションシップの変更が主記憶装置上にある履修テーブルに追加される方法を説明する。まず、「名前」のインスタンス、および履修テーブルの各レコード、の各々についての繰り返し用変数i、およびrをすべて0に初期化する(ステップS1701)。次に第一の分岐(ステップS1702)、第六の分岐(ステップS1712)、およびiに関するインクリメント処理(ステップS1703)による繰り返し処理で、S1305において選択された名前N(i)のみに、以下のレコード追加処理をおこなう。図11に示す一例では、「Brown」および「Chen」が選択されているので、この二つのインスタンスのみについて、以下の処理をおこなう。
【0063】
次に、現在の履修テーブル610に、検索対象のリレーションシップを表すレコードが存在するかどうかを判定するためのフラグFlgを0に初期化する(ステップS1704)。そして第二の分岐(ステップS1705)、第四の分岐(ステップS1709)、およびrに関するインクリメント処理(ステップS1708)による繰り返し処理によって、「名前」が前記ステップS1305において選択されたインスタンスであり、かつその履修している「科目」が前記ステップS1601で選択されたインスタンスS(a)であるようなレコードrを、履修テーブルから検索する(ステップS1705およびS1706)。このようなレコードが見つかった場合には、前記フラグFlgに1を代入する(ステップS1707)。前記rに関する繰り返し処理の度に、多対多RMSは、Flgの値を検証し(ステップS1710)、このようなレコードが見つからなかった場合には、履修テーブルにレコード{N(i)、S(a)}を追加する(ステップS1711)。図11に示す一例では、図6における履修テーブル610で、前記ステップS1602でチェックマーク「レ」が追加された実体「科目」のインスタンス「理科」について、{N(i)=「Brown」、S(a)=「理科」}および{N(i)=「Chen」、S(a)=「理科」}の二つのレコードはいずれも検索されないため、この二つのレコードが、主記憶装置604に記憶された履修テーブル610に追加される。
【0064】
以上が、本願発明において、チェックマークの付いていない「科目」のインスタンスをマウスでクリックすることで、チェックマークを付け、またその写像対応を主記憶装置上の履修テーブルに追加するための方法である。また、同様の方法で、チェックマーク「−」の付いている場合、複数選択された「名前」のインスタンスの一部と写像対応がある「科目」のインスタンスの、チェックボックスをマウスでクリックすることで、チェックマークを付け、その写像対応を主記憶装置上の履修テーブルで修正することもできる。
【0065】
たとえば、図11に示す一例においては、実体「名前」のインスタンス「Brown」および「Chen」が選択されている状態で、数学の左のチェックボックスにはチェックマーク「−」が表示されている。これは、「Brown」および「Chen」のどちらか一方が、「数学」を履修しているというリレーションシップを表している。実体「履修」に対応するリレーションシップをこの情報端末の利用者が、「Brown」および「Chen」の両方が「数学」を履修しているというリレーションシップに変更したいとする。この情報端末の利用者は、マウス609を操作し、GUI613上のカーソル618を「数学」の左にあるチェックボックス上に移動させ、ここでマウスのボタンを一度下押しすることでクリックする(ステップS1601)。この場合にも、図16に示す二つの分岐処理の結果、「数学」の左にチェックボックスには「レ」が表示される。
【0066】
次に、再び図17を参照すると、前記「Brown」および「Chen」のリレーションシップを追加したステップ同様に、名前および履修テーブルのレコードに関する繰り返し処理を行い、図6に示す主記憶装置604上にある履修テーブル610中にない、{N(i)=「Chen」、S(a)=「数学」}のレコードを追加する。この場合、{N(i)=「Brown」、S(a)=「数学」}のレコードはr=0として履修テーブル610に存在するので、ステップS1707においてFlgに1が代入される結果、履修テーブル610に追加する処理(ステップS1711)は実行されない。
【0067】
また同様に、図11に示す一例においては、実体「名前」のインスタンス「Brown」および「Chen」が選択されている状態で、「歴史」の左のチェックボックスにはチェックマーク「レ」が表示されている。これは、「Brown」および「Chen」の両方が「歴史」を履修しているというリレーションシップを表している。この情報端末の利用者が、このリレーションシップを削除し、この両名とも「歴史」を履修していない状態に変更したいとする。この情報端末の利用者は、マウス609を操作し、GUI613上のカーソル618を「歴史」の左にあるチェックボックス上に移動させ、ここでマウスのボタンを一度下押しすることでクリックする(ステップS1601)。すると、多対多RMS606が図16に示す分岐処理の結果「歴史」の左のチェックボックスを空にする(ステップS1603)。
【0068】
次に図18を参照して、前記リレーションシップの変更が主記憶装置上にある履修テーブルに反映される方法を説明する。まず、「名前」のインスタンス、および履修テーブルの各レコード、の各々についての繰り返し用変数i、およびrをすべて0に初期化する(ステップS1801)。次に第一の分岐(ステップS1802)、第五の分岐(ステップS1809)、およびiに関するインクリメント処理(ステップS1803)による、N(i)に関する繰り返し処理で、前記ステップS702または前記ステップS1305において選択された名前N(i)のみに、以下のレコード追加処理をおこなう。図11に示す一例では、「Brown」および「Chen」が選択されているので、この二つのインスタンスのみについて、以下の処理をおこなう。
【0069】
次に、現在の履修テーブル610に、前記ステップS702またはステップS1305で選択した実体「名前」のインスタンスと、前記ステップS708またはステップS1601で選択した実体「科目」のインスタンスS(a)の間のリレーションシップを表すレコードが存在するかどうかを、第二の分岐(ステップS1804)、第四の分岐(ステップS1808)、およびインクリメント処理(ステップS107)による、rに関する繰り返し処理によって検索する。図11に示す一例では、前記ステップS1601で「歴史」のチェックボックスをクリックした結果、r=1である{N(i)=「Brown」、S(a)=「歴史」}、およびr=4である{N(i)=「Chen」、S(a)=「歴史」}の二つが、第三の分岐(ステップS1805)の分岐によって検索され、これらが主記憶装置604に記憶された履修テーブル610から削除される(ステップS1806)。
【0070】
なお、前記概略図である図7のステップS708において、「科目」のインスタンスの中で、任意の一つのチェックボックスをクリックした場合について、図16、図17、および図18を使って詳細を説明した。一方、図7のステップS724において、「名前」のインスタンスの中で、任意の一つのチェックボックスをクリックした場合については、これと同様であるので、説明を省略している。
【0071】
本願発明によれば、従来の方法と比べて以下に示す二つの効果が得られる。
【0072】
第一の効果は、二つの実体間の多対多のリレーションシップを、一回のマウスボタンクリックなど、単純な操作で、かつ双方向で表示できる点である。いま、「名前」と「科目」の二つの実体の間のリレーションシップを考える。たとえば前記図1に示す一例では、従来の方法によれば、「名前」から「科目」へのリレーションシップを表示するには、「Chen」を検索キーとして、主記憶装置604上の第4学年履修テーブル610を検索することで、図4のような結果を表示装置上に表示す必要があった。ここで表示されている内容は、本願発明による図9aと等価である。従来の方法と比べた本願発明の効果は、この状態から、次に「科目」から「名前」への逆方向の写像対応を表示させる際に、情報端末の利用者による操作が簡単になり、なおかつ単純な表示が可能となる点である。
【0073】
たとえば、従来の方法によれば、図4に示す状態から、次に「数学」および「歴史」を履修している人のリストを得たい場合には、この情報端末の利用者は、「数学」および「英語」を検索キーとして前記第4学年履修テーブル610を検索する操作を明示的に、キーボード608やマウス609を利用して行う必要があった。たとえば、従来の方法によれば、図4の状態から問い合わせ画面を呼び出した後、たとえばSQL言語で「SELECT 名前 FROM 第4学年履修テーブル WHERE 科目=‘数学’OR‘歴史’;」という入力をおこない、図5に示すようなテーブルを表示させる必要があった。しかし、本願発明によれば、図4に相当する図9aの状態から、同様に「数学」および「歴史」を履修している人のリストを得たい場合には、何ら新しい検索依頼のための画面を呼び出すことなく、そのままGUI613上の多対多RMSウィンドウ615で「数学」および「歴史」を、マウス609で選択するだけで図9bに示すような実体「科目」から実体「名前」への図9aとは逆方向のリレーションシップが表示される。図5と図9bで表示されている内容は等価である。つまり、多対多のリレーションシップを持つ二つの実体において、片方の実体から他方の実体へのリレーションシップを表示した状態から、1回のクリックで逆方向のリレーションシップを表示できる。この結果、従来の方法に比べてこの情報端末の利用者は、双方向のリレーションシップを行き来しながら、二つの実体間の複雑なリレーションシップを理解できるという効果がある。
【0074】
第二の効果は、二つの実体間の多対多のリレーションシップの、追加、削除、または変更が、二回のマウスボタンクリックなど、単純な操作で、かつ双方向でおこなえる点である。従来の方法によれば、たとえばまず「Chen」を検索して図4を表示した後、さらにリレーションシップの追加、削除、または変更用の新たなウィンドウを表示させ、その中のオブジェクトに対して入力するなどすることで、リレーションシップの変更をおこなう必要があった。本願発明による方法では、図7の状態からまず、「Chen」をマウスでクリックするなどして選択し、次に科目のインスタンスの各々に表示されるチェックボックスをやはりマウスでクリックする、という2つの操作のみで、実体「名前」から実体「科目」への、またはその逆の任意のリレーションシップを追加、削除、または変更できるようになる。
【0075】
以上、「名前」および「科目」という二つの実体の間の、「履修」に関する多対多のリレーションシップを一例として、本願発明の基本原理を説明したが、本願発明は表示装置におけるどのような実体間のリレーションシップの表示、または入力装置を用いたデータベースへの入力にも利用できる。ここで扱う情報は、あらゆる文字情報、画像情報、数値など何であってもよい。図19aの一例では、実体「写真」1901と実体「開示先」1903の間の多対多のリレーションシップを、本願発明による方法で、表示装置上に表示している。この情報端末の利用者が、マウスなどを操作して表示装置上のカーソル1909を動かし、実体「写真」のインスタンスの一つである、「湖」1908を選択した結果、実体「開示先」に表示されている二つのインスタンスのうち、「太田智久」の左に表示されたチェックボックス1907に、チェックマーク「レ」が表示されている。これは、この情報端末の利用者が、「湖」の写真を「太田智久」に開示していることを表している。
【0076】
この状態でいつでも、この情報端末の利用者は、マウスなどを操作することで、カーソルを移動させ、「開示先」の任意のインスタンスを選択できる。たとえば、図19bに示す一例では、この情報端末の利用者が実体「開示先」のインスタンスである「ベティートーマス」1910および「太田智久」1911を選択した結果、実体「写真」の各々のインスタンスの左にチェックボックスが表示され、さらにチェックマークによって、リレーションシップが表示されている。図19bに示す一例では、チェックボックス1912にはチェックマークが表示されていないことから、実体「写真」のインスタンスである「博物館」はこの両名には開示されておらず、チェックボックス1913にはチェックマーク「−」が表示されていることから、「湖」はこの両名の一部に開示されており、さらにチェックボックス1914にはチェックマーク「レ」が表示されていることから、この両名ともに開示されていることを表している。
【0077】
このように本願発明を「写真」と「開示先」という二つの実体に適用することで、「特定の人物に開示している写真はどれか」というリレーションシップと、それとは逆方向となる「特定の写真を開示している人物は誰か」という双方向のリレーションシップを、1回のマウスクリックによって自由に表示できる。このため、本願発明の情報端末の利用者は、開示対象と開示者という複雑な多対多のリレーションシップの全体像を容易に把握し、また同様にリレーションシップの追加、変更、削除などを簡単に行える。
【0078】
さらに、多対多RMSウィンドウの各々の実体には、各々独立したインスタンス絞り込み用ウィンドウを具えていてもよい。図19に示す一例では、実体「写真」を、各々のインスタンスに関連づけられたキーワードを使って絞り込むための絞り込みウィンドウ1902を具え、これを操作することによって、実体「写真」のインスタンス用ウィンドウ1901に表示させる写真を絞り込むことができる。同様に、実体「開示先」についても、各々のインスタンスに関連づけられたキーワードを使って絞り込むためのウィンドウ1904を具え、これによって実体「開示先」のインスタンス表示用1903に表示させる名前を絞り込むことができる。各々の実体の絞り込み操作は独立しているが、表示された各々のインスタンス間のリレーションシップの表示および入力方法は、既に述べた各ステップ従って、本願発明による情報端末によって実行される。
【0079】
(実施形態2)
本願発明の他の実施形態の一例によると、数多くの情報の中から、簡単な操作で情報端末の利用者が必要とする情報だけを絞り込んだ上で、表示装置に表示させることができる。以下では、本願発明の実施形態の一例として、電話帳または住所録などにおける、連絡先名前の絞り込み処理方法について説明する。
【0080】
現在の方法によれば、データベース上に存在する数多くの情報(以下インスタンスと称する)から、情報端末の利用者の必要な情報を絞り込むための方法としては、以下の二つが広く使われている。
【0081】
第一の従来方法は、各々のインスタンスを、ツリー構造を持った分類先(以下フォルダと称する)に分類して管理し、情報端末の利用者が必要な情報を絞り込む際には、そのツリー構造を上位から下位へと辿ることで、表示装置に表示するインスタンスの数を減らしてゆく方法である。たとえば、図20に示す一例におけるツリー構造を有するデータベースにおいて、営業部に属する「Johnson」2001を探すためには、図21に例示するようなツリー構造を表すGUIを用い、分類先2101に表示される個々のリストを、上の階層から順番に、マウスなどを操作し、カーソル2102を移動、選択することによって、「営業部」を選択すると、「名前」の欄2104に「営業部」に属する「Brown」および「Johnson」が表示される。
【0082】
この第一の従来の方法は、上位である大分類から下位である小分類を順に選択して行くという、検索性の高い優れた方法である。しかし現実のデータベースでは、たとえば図20に示す「Frank」2002のように、一つのインスタンスが複数の分類先に属している場合に、絞り込み、および分類操作が困難であるという問題があった。たとえば、ツリー構造のデータベースにおいては、図20に示す3つの「Frank」2002が同一のインスタンスであることを認識できない。
【0083】
この問題を解決するために使われる従来の第二の方法が、タグ付けと呼ばれるものである。これは、名前の各々のインスタンスに、1つ以上のタグを付けた状態でデータベースに保存し、それを検索する方法である。このタグ付けでは、図20の情報を、たとえば図22に示す形態で、データベースに保存する。たとえば、この情報端末の利用者が、数多くのインスタンスである名前のなかから、高校時代の友人を検索したい場合には、「高校」というタグを検索キーとして図22に示したテーブルの「タグ」の列2201を検索して、「Miller」2202、「Fox」2203、および「Jonse」2204の3つのインスタンスを得る。このような方法では、1つのインスタンスが複数のタグを持つことができるため、前述のツリー構造フォルダの方法における問題は解決する。しかし、このタグ付けの方法によれば、特にタグの数が多い場合には、タグを階層化して管理することが難しいために、タグの検索が困難であるという問題があった。また、ツリー構造を持つ分類先による検索では可能である、同じ名前を持つ複数のタグが使えないという問題もある。たとえば図20に示す一例では、「会社」というフォルダは「仕事」の下位にある「会社2003、および「友人」の二階層下位の「会社」2004の二つがある。ツリー構造を持たないタグ付けでは、この二つの会社を区別する方法がない。したがって、図20では、たとえば「Brown」は会社に属するが、図22の表記では「Brown」は「会社」に属しているとは認識できない。
【0084】
すなわち、従来の第一の方法、および従来の第二の方法のどちらを利用するかは、本質的には、一つのインスタンスを複数の分類先に分類することが困難であるという問題と、階層化したツリー構造によるインスタンスの管理が困難であるという、二つの問題の二者択一の問題に帰するものであった。
【0085】
しかし、本願発明によれば、前記二つの、従来の方法における問題をともに解決することができる。たとえば、図20および図21に例示した、ツリー構造のフォルダへの分類、およびタグ付けされたテーブルは共に、タグまたはフォルダという実体と、名前という実体の間の多対多のリレーションシップであるととらえることができる。このため、前記実施形態1において詳細に説明した、多対多のリレーションシップの表示および入力に関する方法およびその情報端末が適用できる。
【0086】
すなわち、第1の実体に属する複数の第1のインスタンスがツリー構造などの階層構造を成すノードであり、第2の実体に属する複数の第2のインスタンスがそれらのノードに関連づけられているとする。例えば、第1のインスタンスが「営業部」、「開発部」などの部署であり、第2のインスタンスが部署に属する人であるような場合である。この場合、ある第1のインスタンスに、ある第2のインスタンスが関連付けられているならば、その第1のインスタンスの上位の階層の第1のインスタンスにもその第2のインスタンスが関連付けられているとする。例えば、「営業部」に「Brown」が属していれば、「営業部」の上位の階層の「会社」、「仕事」にも「Brown」が属するとする。このようなデータ構造を有する第1の実体と第2の実体との間には、一般的には多対多のリレーションシップが存在することになる。このような場合のリレーションシップの表示、操作や制御にも本願発明は適用可能である。
【0087】
また、ツリー構造などの階層構造は、例えばツリーのルートノードを最上位のノードとし、ノードの上位と下位の関係を表すテーブルを用いて、表すことができる。
【0088】
なお、以下では本願発明におけるタグまたはフォルダと等価な用語として従来の方法と区別するために「カテゴリー」という用語を用いる。また、下記の説明において、実体「カテゴリー」と実体「名前」の間の多対多のリレーションシップについて、表示装置上に表示されたチェックボックス、およびチェックマーク「レ」および「−」によって双方向に表示するものとする。なお、マウスなどを操作してチェックボックスを選択することで、双方向で入力するために、ソフトウェアとハードウェア資源と協調してこれを実現する方法については、前記実施形態1において説明した手段と同様であるため、ここでは省略し、その結果として表示装置に表示される効果を説明する。
【0089】
図20に一例として示した、ツリー構造のカテゴリーと名前との多対多のリレーションシップを表示および入力する、本願発明の方法による絞り込みのための方法を、図23から図25に示す。このウィンドウは、実体「カテゴリー」のインスタンス表示用のウィンドウ2302および、実体「名前」のインスタンス表示用のウィンドウ2303よりなる。まず、図23aを参照すると、この情報端末の利用者が、表示装置上のカーソル2304を移動させ、実体「カテゴリー」の階層化されたインスタンスのひとつである「友人」を選択する。その結果、実体「名前」用のウィンドウ2303には、図20における友人の下層のカテゴリーに属する全ての人、「Davis」、「Donnelly」、「Fleming」、「Fox」、「Frank」、「Jones」および「Miller」の7名が表示される。次に図23bを参照すると、この情報端末の利用者が「友人」の下層にあたる「その他」2306を選択すると、前記の7名の中から「その他」の下の階層に属するすべての人「Davis」、「Fleming」、「Frank」、および「Jones」に4名に絞り込まれる。さらに図23cを参照すると、その下層のカテゴリーである「テニス」2307を選択することで、前記4名が「Davis」、「Frank」、および「Jones」の3名に絞り込まれている。ここまでは前記従来の第一の方法である、ツリー構造のフォルダによる絞り込みの表示および入力と同じ方法である。
【0090】
次に図24を参照すると、この端末の利用者が実体「カテゴリー」のインスタンスの中から「開発部」、および「テニス」の二つを選択した場合、実体「名前」のインスタンスを表すウィンドウには、「開発部」または「テニス」のカテゴリーに属する人の名前が、名前用ウィンドウ2303に表示される。従来の第一の方法、すなわちツリー構造のフォルダによれば、図20に示す一例では「Frank」2002は、「開発部」のフォルダにも、「テニス」のフォルダにも存在するため、図24のようにフォルダを複数選択すると、「名前」用のウィンドウ2303には、二つの「Frank」が表示されてしまった。本願発明による方法では、実体「カテゴリー」のインスタンスである「開発部」および「テニス」は、実体「名前」のインスタンスである「Frank」とは多対一のリレーションシップとして、前記実施形態1において詳しく説明した方法によって、データベースの情報をもとに表示される。すなわちデータベース上では実体「カテゴリー」のインスタンスである「開発部」、および「テニス」と関連づけられている「Frank」は、実体「名前」の一つの「Frank」とリレーションシップをもっていることが認識できる。したがって、本願発明による方法では、図24に示すように、ツリー構造と同じ操作によって「名前」を絞り込んだ上で、「開発部」と「テニス」を共に選択しても、「名前」用ウィンドウ2303に「Frank」が重複して表示されることがなく、「Davis」、「Frank」、および「Jones」の、「開発部」または「テニス」のどちらかに属している人の名前が表示される。
【0091】
図24の状態から、この情報端末の利用者は、いつでも実体「名前」に表示されている任意のインスタンスを、マウスなどを利用して、表示装置上のカーソル2304を移動させることで、選択できる。たとえば図25aに一例として示すように、「Jones」2501を選択すると、実体「カテゴリー」の各々のインスタンスに対応するチェックボックスが表示される。これは、「Jones」と、実体「カテゴリー」のリレーションシップを表しており、「Jones」は「テニス」2504に属しており、したがってその上位にある「その他」2503、およびさらにその上位にある「友人」2502にも属していることが、各々のチェックマーク「レ」によって表示されている。さらに、「Jones」は、「高校」2506のカテゴリーにも属しており、したがってその上位の「学校」2505にも属していることが同じく、各々のチェックマーク「レ」によって表示されている。
【0092】
前記実施形態1で説明したように、この図25aに示す状態からはいつでも、他の実体「名前」のインスタンスを選択して、その「カテゴリー」に対するリレーションシップを表示したり、実体「カテゴリー」の任意のインスタンスを選択して、そのカテゴリーに属する名前をウィンドウ2303に表示させることができ、さらに、「カテゴリー」の各インスタンスに表示されたチェックボックスにカーソル2304を移動させ、マウスでクリックするなどの方法で、表示されたリレーションシップを更新、削除したり、新たなリレーションシップを追加することもできる。
【0093】
さらに、実体「カテゴリー」および実体「名前」の各々のインスタンスは、複数選択して、それらのインスタンスのリレーションシップを表示または変更、削除、追加などの入力をおこなうことができる。図25bに示す一例では、図24の状態から、「Frank」および「Jonse」の二つのインスタンスが選択された結果として、「Frank」および「Jonse」の両方が属している「カテゴリー」のインスタンスにはチェックマーク「レ」が、どちらかが属している「カテゴリー」のインスタンスにはチェックマーク「−」が各々表示されている。
【0094】
このように、本実施形態2によれば、実体「カテゴリー」のインスタンスが、前記従来の第一の方法と同様のツリー構造を持っているため、前記従来の第一の方法における絞り込みが容易であり、かつ前記実施形態1で説明した効果を得ることができ、そのため前記従来の第二の方法であるタグ付けの利点と同様の一つの「名前」のインスタンスが複数の「カテゴリー」のインスタンスと関連づけることの利点も享受できる。
【0095】
なお、本実施形態2で扱うことのできる実体は何でもよい。たとえば名前だけでなく、住所、電子メールアドレス、電話番号などのあらゆる文字情報や、写真などのあらゆる画像データ、数値情報など何でもよく、これらの実体を効率よく検索および絞り込みが可能な情報端末を提供する。また前記実施形態1と同様に、本実施形態において、情報端末の各構成要素と協調して動作するプログラムや、データベースは、この情報端末の記憶装置にあってもよいし、またはネットワークの他端に存在するサーバ上にあってもよい。
【0096】
前記実施形態1と、本実施形態2は、ともに二つの実体間の多対多のリレーションシップを、双方向で容易に表示、および変更、追加、および削除の入力を行える情報端末を提供している。一方実施形態1および2の違いは、実施形態1が二つ実体間の、双方向のインスタンスおよびリレーションシップの表示が対称であるのに対し、実施形態2は非対称な点である。具体的には、実施形態2において、実体「カテゴリー」のインスタンスを選択した場合、実体「名前」の各々のインスタンスには、実施形態1で表示されたリレーションシップを表示および入力するためのチェックボックスは表示されない。また、実施形態1の場合、片方の実体のインスタンスを選択しても、他方の実体の表示されるインスタンスは変化しないが、実施形態2の場合は、実体「カテゴリー」のインスタンスを選択した場合、これによって表示される実体「名前」のインスタンスが変化し、実体「カテゴリー」の階層が下位に移動する度に、実体「名前」のインスタンスが絞り込まれる。実施形態2では、このようにして、カテゴリーを使った容易な情報の分類、および検索が可能となる。
【0097】
以上のまとめとして、第1の実体に属する複数の第1のインスタンスと第2の実体に属する複数の第2のインスタンスとの間に存在する一または複数のリレーションシップを格納するデータベースと、前記複数の第1のインスタンスの中から一または複数の前記第1のインスタンスが選択されると、前記データベースを検索し、前記複数の第2のインスタンスの各々について、選択された前記一または複数の前記第1のインスタンスとの間に存在する第1のリレーションシップを求め、前記複数の第2のインスタンスから一または複数の前記第2のインスタンスが選択されると、前記データベースを検索し、前記複数の第1のインスタンスの各々について、選択された前記一または複数の前記第2のインスタンスとの間に存在する第2のリレーションシップを求めるマイクロプロセッサと、第1のペインと第2のペインを表示する表示装置であって、前記複数の第1のインスタンスを含む第1のリストを前記第1のペイン中に表示し、前記複数の第2のインスタンスを含む第2のリストを前記第2のペイン中に表示し、前記第1のリレーションシップまたは前記第2のリレーションシップを前記第1のペイン及び前記第2のペインに表示する表示装置と、を有することを特徴とする第1のデータベースシステムが提供される。
【0098】
また、第1のデータベースシステムにおいて、前記表示装置は、前記第1のリレーションシップまたは前記第2のリレーションシップを表示する際に、前記第1のリレーションシップまたは前記第2のリレーションシップが存在する前記第1のインスタンスまたは/および前記第2のインスタンスの強調表示を行うことを特徴とする第2のデータベースシステムが提供される。
【0099】
また、第2のデータベースシステムにおいて、前記表示装置は、前記選択された前記一または複数の前記第1のインスタンスとの間に前記第1のリレーションシップが存在する前記第2のインスタンスを強調表示し、前記選択された前記一または複数の前記第2のインスタンスとの間に前記第2のリレーションシップが存在する前記第1のインスタンスを強調表示することを特徴とする第3のデータベースシステムが提供される。
【0100】
また、第3のデータベースシステムにおいて、前記表示装置は、前記第1のインスタンスまたは前記第2のインスタンスの前記強調表示を行う場合、前記第1のインスタンスまたは前記第2のインスタンスとともに、内部にマークを表示可能な表示領域を表示し、前記第1のインスタンスまたは前記第2のインスタンスの強調表示は、前記表示領域内にマークを表示することにより行うことを特徴とする第4のデータベースシステムが提供される。
【0101】
また、第4のデータベースシステムにおいて、前記表示領域内に表示される前記マークは、前記強調表示が行われる前記第1のインスタンスとの間に前記第2のリレーションシップが存在する前記第2のインスタンスまたは前記強調表示が行われる前記第2のインスタンスとの間に前記第1のリレーションシップが存在する前記第1のインスタンスの数に応じて変化することを特徴とする第5のデータベースシステムが提供される。
【0102】
また、第4のデータベースシステムにおいて、前記表示領域がチェックボックスであることを特徴とする第6のデータベースシステムが提供される。
【0103】
また、第2のデータベースシステムにおいて、前記強調表示は、前記第1のインスタンスまたは/および前記第2のインスタンスを文字列により表示する際のフォントの変更により行われることを特徴とする第7のデータベースシステムが提供される。
【0104】
また、第1のデータベースにおいて、前記マイクロプロセッサは、前記第1のペインに表示された前記複数の第1のインスタンスから一または複数の前記第1のインスタンスが選択され、かつ前記第2のペインに表示された前記複数の第2のインスタンスから一または複数の前記第2のインスタンスが選択されると、選択された前記一または複数の前記第1のインスタンスの各々と選択された前記一または複数の前記第2のインスタンスの各々との間に存在する前記リレーションシップを前記データベースより削除することを特徴とする第8のデータベースシステムが提供される。
【0105】
また、第1のデータベースシステムにおいて、前記マイクロプロセッサは、前記複数の第1のインスタンスから一または複数の前記第1のインスタンスが選択された状態において、前記第2のペインに表示された前記複数の第2のインスタンスから一または複数の前記第2のインスタンスが選択されると、選択された前記一または複数の前記第1のインスタンスの各々と選択された前記一または複数の前記第2のインスタンスの各々との間に前記リレーションシップを前記データベースに格納することを特徴とする第9のデータベースシステムが提供される。
【0106】
また、第9のデータベースシステムにおいて、前記マイクロプロセッサは、選択された前記一または複数の前記第1のインスタンスの各々と選択された前記一または複数の前記第2のインスタンスの各々とのうち、前記データベースにリレーションシップが格納されていない場合に、前記第1のインスタンスと前記第2のインスタンスとの組み合わせを前記データベースに格納することを特徴とする第10のデータベースシステムが提供される。
【0107】
また、第1のデータベースシステムにおいて、前記第1の実体に属する複数の第1のインスタンスは階層構造を成しており、前記第1のインスタンスと前記第2のインスタンスとの間にリレーションシップが存在すれば、前記階層構造において前記第1のインスタンスの上位の第1のインスタンスと前記第2のインスタンスとの間にもリレーションシップが存在することを特徴とする第11のデータベースシステムが提供される。
【0108】
また、第1の実体に属する複数の第1のインスタンスと第2の実体に属する複数の第2のインスタンスとの間に存在する一または複数のリレーションシップを格納するデータベースと、前記複数の第1のインスタンスから第3のインスタンス及び第4のインスタンスが選択されると、前記複数の第2のインスタンスのうち、前記第3のインスタンスと前記第4のインスタンスに第1の所定の条件で第1のリレーションシップが存在する一または複数の第5のインスタンスを前記データベースより検索し、前記複数の第2のインスタンスのうち、前記第3のインスタンスと前記第4のインスタンスに第2の所定の条件で第2のリレーションシップが存在する一または複数の第6のインスタンスを前記データベースより検索するマイクロプロセッサと、第1のペインと第2のペインを表示する表示装置であって、前記複数の第1のインスタンスを含む第1のリストを前記第1のペイン中に表示し、前記複数の第2のインスタンスを含む第2のリストを前記第2のペイン中に表示し、前記第3のインスタンスおよび前記第4のインスタンスと前記第5のインスタンスとの間に存在する前記第1のリレーションシップを第1の形態で表示し、前記第3のインスタンスおよび前記第4のインスタンスと前記第6のインスタンスとのに存在する前記第2のリレーションシップを第2の形態で表示する表示装置と、を有する第12のデータベースシステムが提供される。
【0109】
第12のデータベースシステムにおいて、前記マイクロプロセッサは、前記複数の第2のインスタンスから前記一または複数の第5のインスタンスとして、前記第3のインスタンスと前記第4のインスタンスとの両方の間に前記リレーションシップが存在するインスタンスを検索し、前記複数の第2のインスタンスから前記一または複数の第6のインスタンスとして、前記第3のインスタンスと前記第4のインスタンスとのどちらか一方の間に前記リレーションシップが存在するインスタンスを検索する第13のデータベースシステムが提供される。
【0110】
また、第1の実体に属する複数の第1のインスタンスと第2の実体に属する複数の第2のインスタンスとの間に存在する一または複数のリレーションシップを格納するデータベースと、第1のペインと第2のペインを表示し、前記第1のペイン中に前記複数の第1のインスタンスを含む第1のリストを表示し、前記第2のペイン中に前記複数の第2のインスタンスを含む第2のリストを表示する表示装置とを有する情報端末の表示方法において、前記複数の第1のインスタンスから一または複数の第1のインスタンスが選択されると、前記データベースを検索し、前記複数の第2のインスタンスの各々について、選択された前記一または複数の前記第1のインスタンスとの間に存在する第1のリレーションシップを求め、前記第1のリレーションシップを前記表示装置に表示し、前記複数の第2のインスタンスから一または複数の第2のインスタンスが選択されると、前記データベースを検索し、前記複数の第1のインスタンスの各々について、選択された前記一または複数の前記第2のインスタンスとの間に存在する第2のリレーションシップを求め、前記第2のリレーションシップを前記表示装置に表示することを特徴とする情報端末の第1の表示方法が提供される。
【0111】
また、第1の表示方法において、前記第1のリレーションシップまたは前記第2のリレーションシップの表示は、前記第1のリレーションシップまたは前記第2のリレーションシップが存在する前記第1のインスタンスまたは/および前記第2のインスタンスを強調して表示することを特徴とする、情報端末の第2の表示方法が提供される。
【0112】
また、第2の表示方法において、前記第1のリレーションシップまたは前記第2のリレーションシップの表示は、前記選択された前記一または複数の前記第1のインスタンスとの間に前記第1のリレーションシップが存在する前記第2のインスタンスを強調表示し、前記選択された前記一または複数の前記第2のインスタンスとの間に前記第2のリレーションシップが存在する前記第1のインスタンスを強調表示することを特徴とする、情報端末の第3の表示方法が提供される。
【0113】
また、第3の表示方法において、前記第1のインスタンスまたは前記第2のインスタンスの強調表示を行う場合、前記第1のインスタンスまたは前記第2のインスタンスとともに、内部にマークを表示可能な表示領域を表示し、前記第1のインスタンスまたは前記第2のインスタンスの強調表示は、前記表示領域内にマークを表示することにより行うことを特徴とする、情報端末の第4の表示方法が提供される。
【0114】
また、第4の表示方法において、前記表示領域内に表示される前記マークを、前記強調表示が行われる前記第1のインスタンスとの間に前記第2のリレーションシップが存在する前記第2のインスタンスまたは前記強調表示が行われる前記第2のインスタンスとの間に前記第1のリレーションシップが存在する前記第1のインスタンスの数に応じて変化させることを特徴とする、情報端末の第5の表示方法が提供される。
【0115】
また、第4の表示方法において、前記表示領域がチェックボックスである、情報端末の第6の表示方法が提供される。
【0116】
また、第2の表示方法において、前記第1のインスタンスまたは/および前記第2のインスタンスを強調して表示することは、前記第1のインスタンスまたは/および前記第2のインスタンスを文字列に表示する際のフォントの変更により行われることを特徴とする、情報端末の第7の表示方法が提供される。
【0117】
また、別の観点として、第1の実体と第2の実体との間のリレーションシップを格納するデータベースと、第1のペインと第2のペインを表示するとともに、前記第1のペイン中に前記第1の実体に属する第1のインスタンス群からなる第1のリストを表示し、前記第2のペイン中には前記第2の実体に属する第2のインスタンス群からなる第2のリストを表示する第1表示手段と、前記第1のインスタンス群から1または複数の第1の特定インスタンスが選択されると、前記データベース中を検索し、前記第2のインスタンス群の各々について、前記第1の特定インスタンスとのリレーションシップ表示する第2の表示手段と、前記第2のインスタンス群から1または複数の第3の特定インスタンスが選択されると、前記データベース中を検索し、前記第1のインスタンス群の各々について、前記第3の特定インスタンスとのリレーションシップを表示する第3の表示手段と、を有する第14のデータベースシステムが提供される
【0118】
また、第1の実体と第2の実体との間のリレーションシップを格納するデータベースと、
第1のペインと第2のペインを表示するとともに、前記第1のペイン中に前記第1の実体
に属する第1のインスタンス群からなる第1のリストを表示し、前記第2のペイン中には
前記第2の実体に属する前記第2のインスタンス群からなる第2のリストを表示する第1
表示手段とからなる情報端末の表示方法において、前記第1のインスタンス群から1または複数の第1の特定インスタンスが選択されると、前記データベース中を検索し、前記第2のインスタンス群の各々について、前記第1の特定インスタンスとのリレーションシップを表示し、前記第2のインスタンス群から1または複数の第3の特定インスタンスが選択されると、前記データベース中を検索し、前記第1のインスタンス群の各々について、前記第3の特定インスタンスとのリレーションシップを表示することを特徴とする情報端末の第8の表示方法が提供される。
【0119】
また、第1の実体と第2の実体との間のリレーションシップを格納するデータベースと、
第1のペインと第2のペインを表示するとともに、前記第1のペイン中に前記第1の実体
に属する第1のインスタンス群からなる第1のリストを表示し、前記第2のペイン中には
前記第2の実体に属する第2のインスタンス群からなる第2のリストを表示する第1表示
手段と、前記第1のインスタンス群から第1の特定インスタンス及び第2の特定インスタンスが選択されると、前記データベース中を検索し、前記第2のインスタンス群に含まれる、前記第1の特定インスタンスと前記第2の特定インスタンスに第1の所定の条件で第1のリレーションシップを持つ第3の特定インスタンスについて、前記第1の特定インスタンスおよび前記第2の特定インスタンスとの前記第1のリレーションシップを第1の形態で表示するとともに、前記第1の特定インスタンスと前記第2の特定インスタンスに第2の所定の条件で第2のリレーションシップを持つ第4の特定インスタンスについて、前記第1の特定インスタンスおよび前記第2の特定インスタンスとの前記第2のリレーションシップを第2の形態で表示する第2の表示手段と、を有する第15のデータベースシステムが提供される。
【0120】
また、第1の実体と第2の実体との間のリレーションシップを格納するデータベースと、第1のペインと第2のペインを表示するとともに、前記第1のペイン中に前記第1の実体に属する第1のインスタンス群からなる第1のリストを表示し、前記第2のペイン中には前記第2の実体に属する第2のインスタンス群からなる第2のリストを表示する第1表示手段と、前記第1のインスタンス群から1または複数の第1の特定インスタンスが選択されると、前記データベース中を検索し、前記第2のインスタンス群の各々について、前記第1の特定インスタンスとのリレーションシップを表示する第2の表示手段とからなり、前記第1のインスタンス群から1または複数の前記第1の特定インスタンスが選択され、かつ前記第2の表示手段によって表示された、前記第1の特定インスタンスと前記第2のインスタンス群の各々とのリレーションシップのうちの1または複数の任意のリレーションシップを選択すると、前記任意のリレーションシップが前記データベースより削除されることを特徴とする第16のデータベースシステムが提供される。
【0121】
また、第1の実体と第2の実体との間のリレーションシップを格納するデータベースと、第1のペインと第2のペインを表示するとともに、前記第1のペイン中に前記第1の実体に属する第1のインスタンス群からなる第1のリストを表示し、前記第2のペイン中には前記第2の実体に属する第2のインスタンス群からなる第2のリストを表示する第1表示手段と、前記第1のインスタンス群から1または複数の第1の特定インスタンスが選択されると、前記データベース中を検索し、前記第2のインスタンス群の各々について、前記第1の特定インスタンスとのリレーションシップを表示する第2の表示手段とからなり、前記第2のインスタンス群のなかで前記第1の特定インスタンスとのリレーションシップが前記データベースに存在しない第3の特定インスタンスを選択すると、前記第1の特定インスタンスと前記第3の特定インスタンスとのリレーションシップが前記データベースに追加されることを特徴とする第17のデータベースシステムが提供される。
【図面の簡単な説明】
【0122】
【図1a】多対多のリレーションシップの一例を表す図である。
【図1b】多対多のリレーションシップの一例を表す図である。
【図2】正規化後の一対多のリレーションシップの一例を表すER図である。
【図3】従来の方法による多対多のリレーションシップの表示画面の一例の説明図である。
【図4】従来の方法による一対多のリレーションシップの表示画面の一例の説明図である。
【図5】従来の方法による逆方向一対多のリレーションシップの一例を表す図である。
【図6】本願発明による情報端末の構成要素の説明図である。
【図7】本願発明の各ステップの概要を説明するフロー図である。
【図8】データベース選択画面の説明図である。
【図9a】本願発明による多対多のリレーションシップの表示画面の説明図である。
【図9b】本願発明による多対多のリレーションシップの表示画面の説明図である。
【図10】本願発明による逆方向多対多のリレーションシップの表示画面の説明図である。
【図11】本願発明による多対多のリレーションシップの追加方法の説明図である。
【図12】本願発明による多対多のリレーションシップの削除方法の説明図である。
【図13】インスタンス選択の詳細ステップを説明するフロー図である。
【図14】リレーションシップ表示の詳細ステップを説明するフロー図である。
【図15】リレーションシップ表示の詳細ステップを説明するフロー図である。
【図16】リレーションシップ変更表示の詳細ステップを説明するフロー図である。
【図17】リレーションシップ追加の詳細ステップを説明するフロー図である。
【図18】リレーションシップ削除の詳細ステップを説明するフロー図である。
【図19a】本願発明の情報開示表示および制御への応用を説明する図である。
【図19b】本願発明の情報開示表示および制御への応用を説明する図である。
【図20】ツリー構造の分類を説明する図である。
【図21】ツリー構造の分類を使い検索対象を絞り込む方法の説明図である。
【図22】タグ付けによる分類を説明する図である。
【図23a】本願発明による検索対象絞り込みの説明図である。
【図23b】本願発明による検索対象絞り込みの説明図である。
【図23c】本願発明による検索対象絞り込みの説明図である。
【図24】本願発明による検索対象絞り込みの説明図である。
【図25a】本願発明による検索対象分類方法の説明図である。
【図25b】本願発明による検索対象分類方法の説明図である。
【符号の説明】
【0123】
615 多対多RMSウィンドウ
618 カーソル
81 ペイン
83 ペイン
84 サブペイン
96 チェックボックス
【技術分野】
【0001】
本願発明は、データベースおよび情報端末の表示方法に関し、より詳細には、データベースシステム、データモデル、リレーションシップ、リレーショナルデータベース、情報端末、表示装置、オペレーティングシステム、アプリケーションソフトウェア、通信機器に関する。
【背景技術】
【0002】
実世界の事象をデータベース上で表現し、これを管理運営する際、一般的には先ず、事象を論理的に表現した論理データモデルを作成し、これをデータベースシステムの要件に従って構造化する。
【0003】
論理データモデルの基本となるのは、データベースとして表現する対象物である実体と、実体間の相互関係を表すリレーションシップである。複数の実体同士のリレーションシップを論理的に表現する手段としては、実体相関図(ER(Entity−Relationship)図)などが用いられる。
【0004】
実体間に存在するリレーションシップが表す写像対応は、1対1の場合、1対多の場合、または多対多の場合がある。論理データモデルの構造化においては、正規化により、一般に多対多のリレーションシップに対応して、新たな実体を定義して、1対多または1対1のリレーションシップに変換する。具体的には、多対多のリレーションシップを持つ双方の実体の二つの主キーを組み合わせた複合キーを主キーとする新たな実体を定義し、この新たな実体に対して1対1または1対多のリレーションシップを定義することで、実体の間に存在していた多対多のリレーションシップを除去する。
【0005】
このように、正規化により、論理データモデルから多対多のリレーションシップを排除して、同種の属性を二つ以上持つ非正規形の実体をデータモデルから除き、冗長性を排除したデータモデルに構造化する(特許文献1)。
【特許文献1】特開平9−319629
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかし、一般に多対多のリレーションシップを排除するために、新たに定義した実体に属するインスタンスの数は、正規化以前の多対多のリレーションシップを構成していた二つの実体よりも増える。たとえば、インスタンス数nの実体Aと、インスタンス数mの実体Bとの間にn:mのリレーションシップがあり、これを正規化のために新たな実体Cを定義した時、実体Cに属するインスタンスの数は最大でn×mとなる。また実体Cをマルチセットとすると、実体Cに属するインスタンスの数はn×mを越える場合もある。
【0007】
もし、データベースシステムの利用者が、実体Aに属する特定のインスタンスとリレーションシップを持つ、実体Bに属するインスタンスを検索して表示したい場合には、データベースマネジメントシステム(DBMS)は、前記実体Cに属するインスタンスの中から、検索要求を受けた実体Aの主キーを、複合キーの一方として持つ実体Cに属するインスタンスを検索して表示する。
【0008】
逆にデータベースシステムの利用者が、実体Bに属する特定のインスタンスとリレーションシップを持つ、実体Aのインスタンスのみを検索して表示したい場合には、DBMSは、前記実体Cに属するインスタンスの中から、検索要求を受けた実体Bの主キーを、複合キーの他方として持つ実体Cに属するインスタンスを検索して表示する。
【0009】
たとえば、図1に示す一例では、「名前」という実体と、「科目」という実体の間に、図1aに示すような履修についての多対多のリレーションシップが存在するとする。「Brown」、「Fleming」、「Chen」、および「Smith」の4つが実体「名前」に属するインスタンスであり、「数学」、「英語」、「理科」、「歴史」、および「社会」の5つが実体「科目」に属するインスタンスである。したがって、このリレーションシップの基数は4対5である。ただし、図1aでは、後に示すフローチャートの簡略化のために、nを整数として「名前」に属する各々のインスタンスをN(n)、「科目」に属する各々のインスタンスをS(n)と表している。これを表すER図は図1bのようになる。このリレーションシップはこれを正規化する過程では、「履修」という新たな実体を定義することで、「名前」および「科目」から「履修」への2つの一対多のリレーションシップに変換する。この「履修」という実体を表すER図は図2のように、また表は図3のようになる。この操作によって、冗長性は排除されたが、新たに定義された実体「履修」に属するインスタンス数は、「名前」および「科目」に属するインスタンス数よりも増えている。
【0010】
従って、たとえばSQL言語で「SELECT * FROM 履修;」というコマンドを入力することによって、「履修」という実体を表現しようとすると、図3に示すとおりに複雑となるため、「履修」という実体に属するすべてのインスタンスを一覧表示することはあまり行われない。
【0011】
通常、このような状態で、このデータベースの利用者が名前「Chen」の履修した科目の一覧を表示させる場合には、「Chen」を検索キーとして「履修」という実体を検索し、これを図4のような表で表示する。また、「数学」と「歴史」を履修した人の一覧を表示するには、「数学」および「歴史」を検索キーとして「履修」という実体を検索し、これを図5のような表で表示する。さらに、「名前」と「科目」の間の多対多のリレーションシップを入力、変更する場合にも、一度図4または図5のような一対多のリレーションシップで表示した上で入力、変更する。しかし、従来のこの方法によれば、「名前」から「科目」、または「科目」から「名前」のどちらかの一対多のリレーションシップしか画面上に表示できず、このためデータベースの利用者にとっては、表示および入力のための手間がかかり、かつ図1のような多対多のリレーションシップの全体像の表示が難しいという問題があった。
【0012】
すなわち、多対多のリレーションシップの直感的な表示および制御や操作は、一般にDBMSで使われる一対多のリレーションシップによる表示方法では実現が難しかった。
【0013】
本願発明は、このような事情に鑑みてなされたものであり、データベースおける実体間の多対多のリレーションシップを、ひとつの画面上で単純に表示し、かつ制御することができるような表示および制御のための装置の方法を提供することを目的とする。
【課題を解決するための手段】
【0014】
本願発明の一実施形態によると、第1の実体と第2の実体との間のリレーションシップを格納するデータベースと、第1のペインと第2のペインを表示するとともに、前記第1のペイン中に前記第1の実体に属する第1のインスタンス群からなる第1のリストを表示し、前記第2のペイン中には前記第2の実体に属する第2のインスタンス群からなる第2のリストを表示する第1表示手段と、前記第1のインスタンス群から1または複数の第1の特定インスタンスが選択されると、前記データベース中を検索し、前記第2のインスタンス群の各々について、前記第1の特定インスタンスとのリレーションシップ表示する第2の表示手段と、前記第2のインスタンス群から1または複数の第3の特定インスタンスが選択されると、前記データベース中を検索し、前記第1のインスタンス群の各々について、前記第3の特定インスタンスとのリレーションシップを表示する第3の表示手段と、を有するシステムが提供される。
【0015】
本願発明の一実施形態によると、第1の実体と第2の実体との間のリレーションシップを格納するデータベースと、第1のペインと第2のペインを表示するとともに、前記第1のペイン中に前記第1の実体に属する第1のインスタンス群からなる第1のリストを表示し、前記第2のペイン中には前記第2の実体に属する前記第2のインスタンス群からなる第2のリストを表示する第1表示手段とからなる情報端末の表示方法において、前記第1のインスタンス群から1または複数の第1の特定インスタンスが選択されると、前記データベース中を検索し、前記第2のインスタンス群の各々について、前記第1の特定インスタンスとのリレーションシップを表示し、前記第2のインスタンス群から1または複数の第3の特定インスタンスが選択されると、前記データベース中を検索し、前記第1のインスタンス群の各々について、前記第3の特定インスタンスとのリレーションシップを表示することを特徴とする情報端末の表示方法が提供される。
【0016】
本願発明の一実施形態によると、第1の実体と第2の実体との間のリレーションシップを格納するデータベースと、第1のペインと第2のペインを表示するとともに、前記第1のペイン中に前記第1の実体に属する第1のインスタンス群からなる第1のリストを表示し、前記第2のペイン中には前記第2の実体に属する第2のインスタンス群からなる第2のリストを表示する第1表示手段と、前記第1のインスタンス群から第1の特定インスタンス及び第2の特定インスタンスが選択されると、前記データベース中を検索し、前記第2のインスタンス群に含まれる、前記第1の特定インスタンスと前記第2の特定インスタンスに第1の所定の条件で第1のリレーションシップを持つ第3の特定インスタンスについて、前記第1の特定インスタンスおよび前記第2の特定インスタンスとの前記第1のリレーションシップを第1の形態で表示するとともに、前記第1の特定インスタンスと前記第2の特定インスタンスに第2の所定の条件で第2のリレーションシップを持つ第4の特定インスタンスについて、前記第1の特定インスタンスおよび前記第2の特定インスタンスとの前記第2のリレーションシップを第2の形態で表示する第2の表示手段と、を有するシステムが提供される。
【0017】
本願発明の一実施形態によると、第1の実体と第2の実体との間のリレーションシップを格納するデータベースと、第1のペインと第2のペインを表示するとともに、前記第1のペイン中に前記第1の実体に属する第1のインスタンス群からなる第1のリストを表示し、前記第2のペイン中には前記第2の実体に属する第2のインスタンス群からなる第2のリストを表示する第1表示手段と、前記第1のインスタンス群から1または複数の第1の特定インスタンスが選択されると、前記データベース中を検索し、前記第2のインスタンス群の各々について、前記第1の特定インスタンスとのリレーションシップを表示する第2の表示手段とからなり、前記第1のインスタンス群から1または複数の前記第1の特定インスタンスが選択され、かつ前記第2の表示手段によって表示された、前記第1の特定インスタンスと前記第2のインスタンス群の各々とのリレーションシップのうちの1または複数の任意のリレーションシップを選択すると、前記任意のリレーションシップが前記データベースより削除されることを特徴とするシステムが提供される。
【0018】
本願発明の一実施形態によると、第1の実体と第2の実体との間のリレーションシップを格納するデータベースと、第1のペインと第2のペインを表示するとともに、前記第1のペイン中に前記第1の実体に属する第1のインスタンス群からなる第1のリストを表示し、前記第2のペイン中には前記第2の実体に属する第2のインスタンス群からなる第2のリストを表示する第1表示手段と、前記第1のインスタンス群から1または複数の第1の特定インスタンスが選択されると、前記データベース中を検索し、前記第2のインスタンス群の各々について、前記第1の特定インスタンスとのリレーションシップを表示する第2の表示手段とからなり、前記第2のインスタンス群のなかで前記第1の特定インスタンスとのリレーションシップが前記データベースに存在しない第3の特定インスタンスを選択すると、前記第1の特定インスタンスと前記第3の特定インスタンスとのリレーションシップが前記データベースに追加されることを特徴とするシステムが提供される。
【0019】
別の観点からすれば、本願発明の一実施形態によると、第1の実体に属する複数の第1のインスタンスと第2の実体に属する複数の第2のインスタンスとの間に存在する一または複数のリレーションシップを格納するデータベースと、前記複数の第1のインスタンスの中から一または複数の前記第1のインスタンスが選択されると、前記データベースを検索し、前記複数の第2のインスタンスの各々について、選択された前記一または複数の前記第1のインスタンスとの間に存在する第1のリレーションシップを求め、前記複数の第2のインスタンスから一または複数の前記第2のインスタンスが選択されると、前記データベースを検索し、前記複数の第1のインスタンスの各々について、選択された前記一または複数の前記第2のインスタンスとの間に存在する第2のリレーションシップを求めるマイクロプロセッサと、第1のペインと第2のペインを表示する表示装置であって、前記複数の第1のインスタンスを含む第1のリストを前記第1のペイン中に表示し、前記複数の第2のインスタンスを含む第2のリストを前記第2のペイン中に表示し、前記第1のリレーションシップまたは前記第2のリレーションシップを前記第1のペイン及び前記第2のペインに表示する表示装置と、を有することを特徴とするデータベースシステムが提供される。
【0020】
また、本願発明の一実施形態によると、第1の実体に属する複数の第1のインスタンスと第2の実体に属する複数の第2のインスタンスとの間に存在する一または複数のリレーションシップを格納するデータベースと、前記複数の第1のインスタンスから第3のインスタンス及び第4のインスタンスが選択されると、前記複数の第2のインスタンスのうち、前記第3のインスタンスと前記第4のインスタンスに第1の所定の条件で第1のリレーションシップが存在する一または複数の第5のインスタンスを前記データベースより検索し、前記複数の第2のインスタンスのうち、前記第3のインスタンスと前記第4のインスタンスに第2の所定の条件で第2のリレーションシップが存在する一または複数の第6のインスタンスを前記データベースより検索するマイクロプロセッサと、第1のペインと第2のペインを表示する表示装置であって、前記複数の第1のインスタンスを含む第1のリストを前記第1のペイン中に表示し、前記複数の第2のインスタンスを含む第2のリストを前記第2のペイン中に表示し、前記第3のインスタンスおよび前記第4のインスタンスと前記第5のインスタンスとの間に存在する前記第1のリレーションシップを第1の形態で表示し、前記第3のインスタンスおよび前記第4のインスタンスと前記第6のインスタンスとのに存在する前記第2のリレーションシップを第2の形態で表示する表示装置と、を有するデータベースシステムが提供される。
【0021】
また、本願発明の一実施形態によると、第1の実体に属する複数の第1のインスタンスと第2の実体に属する複数の第2のインスタンスとの間に存在する一または複数のリレーションシップを格納するデータベースと、第1のペインと第2のペインを表示し、前記第1のペイン中に前記複数の第1のインスタンスを含む第1のリストを表示し、前記第2のペイン中に前記複数の第2のインスタンスを含む第2のリストを表示する表示装置とを有する情報端末の表示方法において、前記複数の第1のインスタンスから一または複数の第1のインスタンスが選択されると、前記データベースを検索し、前記複数の第2のインスタンスの各々について、選択された前記一または複数の前記第1のインスタンスとの間に存在する第1のリレーションシップを求め、前記第1のリレーションシップを前記表示装置に表示し、前記複数の第2のインスタンスから一または複数の第2のインスタンスが選択されると、前記データベースを検索し、前記複数の第1のインスタンスの各々について、選択された前記一または複数の前記第2のインスタンスとの間に存在する第2のリレーションシップを求め、前記第2のリレーションシップを前記表示装置に表示することを特徴とする情報端末の表示方法が提供される。
【発明の効果】
【0022】
本願発明の表示および制御のための情報端末には、データベースにおける実体間の多対多のリレーションシップを一画面上で単純に表示し、かつ多対多のリレーションシップを容易に制御、操作することができる。
【発明を実施するための最良の形態】
【0023】
以下に本願発明を実施するための現在考えられる最善の形態について説明する。本願発明の範囲は、添付特許請求の範囲によって明確に定義されているため、この説明は限定的な意味に解釈すべきではなく、単に発明の一般原理を例示する目的で行う。
【0024】
本願発明は、様々な情報端末または通信端末で利用可能である。ここで使われる情報端末または通信端末は、パーソナル・コンピュータ、サーバ、携帯型情報端末、有線電話機、携帯電話機、ゲーム機、テレビ、ビデオレコーダ、カメラ、ビデオカメラ、携帯型音楽プレーヤーなど何でもよく、さらにここで例として示す機器に限定されず、グラフィカル・ユーザ・インタフェイス(以下GUIと称する)が利用可能な表示装置、およびそのGUI上のオブジェクトを制御可能なボタン、キーボード、マウス、タッチ・センサ、グラフィック・タブレット、トラックボール、ジョイスティックなどの入力装置を具える機器であれば何でもよい。
【0025】
本願発明の一実施形態によると、前記ハードウェアを構成する各要素と、データベースにおける多対多のリレーションシップの表示および制御や操作のためのソフトウェア(以下、多対多RMSと称する)とが協調することで、その効果を得ることができる。図6に、本願発明の実施形態の一例として、情報端末の構成要素をブロック図で示す。なお、図6に示す情報端末の構成は典型的なものであるが、これを限定的に解釈すべきではなく、特定の実施形態にあわせて変更することができる。たとえば、これらの他に、光ディスク記憶媒体、オーディオ入出力装置、プリンタ、および類似の装置など、他の周辺機器が接続されていてもよい。またこの情報端末の主たる機能も、情報の記憶、処理、他端末やサーバとの通信、ネットワークにおける情報の中継など、何であってもよい。
(実施形態1)
【0026】
まず、はじめに前記図6のブロック図、および図7に示すフローチャートを用いて、本願発明による、多対多のリレーションシップの表示および入力装置の概要を説明する。その後、図7中の各ステップで実行される方法が、図6に一例として示すハードウェア資源とどのように協調して実現されるかを図13、図14、図15、図16、図17、および図18のフローチャートを用いて詳しく説明する。
【0027】
本願発明による実施形態の一例では、この情報端末はマイクロプロセッサ601を有し、以下に述べるすべての処理は、主記憶装置604にロードされたアプリケーションソフトウェアが、同じく主記憶装置604にロードされたオペレーティングシステム605に手続きを伝え、これがバス603を通じてマイクロプロセッサに命令することによって実行される。
【0028】
まず前記オペレーティングシステム605が主記憶装置604にロードされた状態で、さらに外部記憶装置に記憶された多対多RMS606が主記憶装置604にロードされる。ここで、この情報端末の利用者が、キーボード608、またはマウス609などの入力装置を通じて、外部記憶装置602に記憶された履修科目データベース614の中から、表示または制御したい情報を指定すると、前記多対多RMSは、指示された情報の含まれる実体やリレーションシップに関する情報の一部または全部を主記憶装置604にロードする。図6に示す一例では、ここでロードした情報を、履修テーブル610と呼ぶ。この状態で、前記多対多RMS606は、表示装置612に表示されたグラフィカル・ユーザ・インタフェイス(以下GUI称する)613上の多対多RMSウィンドウ615に、前記図1に一例として示した実体「名前」および実体「科目」に属する各インスタンスを、たとえば図8のように表示する(ステップS701)。
【0029】
すなわち、多対多RMSウィンドウ615の内部に、「学年」、「名前」、そして「科目」という見出しを有する3つの領域が設けられる。「学年」という見出しを有する領域には、学年という実体に属するインスタンスである「1」、「2」、「3」、そして「4」を含むリストが表示されている。「名前」という見出しを有する領域には、名前という実体に属するインスタンスである「Brown」、「Fleming」、「Chen」、そして「Smith」を含むリストが表示されている。「科目」という見出しを有する領域には、科目という実体に属するインスタンスである「数学」、「英語」、「理科」、「歴史」、そして「社会」を含むリストが表示されている。このように、実体に属するインスタンスが表示される領域を「ペイン(pane)」と呼ぶ。ペインは一つのウィンドウ境界線などにより区切って得られる領域である。境界線は明示的に表示されないこともある。ペインには見出しが表示されない場合もある。また、見出しが表示される場合でも、見出しはインスタンスの上に表示されず、横に表示されたり、下に表示されたりする場合もある。ペインはウィンドウの中のサブウィンドウとして実現される。あるいは、一つのペインが一つのウィンドウによって実現される場合もある。
【0030】
なお、以下の説明では、ペインとそこにインスタンスが表示されている実体とを同一視する場合がある。例えば、「実体Eに属するインスタンスが表示されているペイン」を「実体E」と簡略化して表現する場合がある。
【0031】
続いて、この情報端末の利用者は、表示されたインスタンスの中から、「名前」または「科目」に属する一つ以上の任意のインスタンスを選択する(ステップS702)。例えば、「名前」に属する一または複数のインスタンスの表示に対してマウスのクリック操作を行う。すると、選択されたインスタンスが属する「名前」という実体でない他方の実体である「科目」に属する各々のインスタンスに、マークを表示することができる領域が表示される。例えば、チェックボックスが表示される(ステップS704またはS708)。そして、多対多RMSを実現するプログラムなどはマイクロプロセッサを動作させて、前記選択された「名前」に属するインスタンスとの間にリレーションシップが存在する「科目」に属するインスタンスを、前記履修テーブルを検索することで求める(ステップS705またはS721)。
【0032】
ここに、「名前」のインスタンスとの間にリレーションシップが存在する「科目」のインスタンスとは、「名前」に属するインスタンスと「科目」のインスタンスとの組み合わせ(タプル(tuple)あるいはレコード)が、履修テーブル610に存在することをいう。また、履修テーブル610に存在する「名前」に属するインスタンスと「科目」のインスタンスとの組み合わせ各々のことを、「名前」に属するそのインスタンスと「科目」のそのインスタンスとの間に存在するリレーションシップという。したがって、ステップS705またはS721において、マイクロプロセッサは、選択された「名前」のインスタンスの各々について、履修テーブルに存在する組み合わせのうち「名前」の列にそのインスタンスが存在する組み合わせを検索し、検索された組み合わせから「科目」の列の値を読出す。なお、「実体に属するインスタンス」のことを「実体のインスタンス」と表現する場合がある。
【0033】
例えば、図6において、“Brown:N(0)”と“数学:S(0)”とのtupleが履修テーブル610の第1行に存在している。したがって、“Brown”と“数学”との間にはリレーションシップが存在する。あるいは、“Brown”との間にリレーションシップが存在する科目のインスタンスとしては、“数学”がある、ともいえる。また、“Brown”に対して“数学”が関連付けられているという表現を用いることもできる。逆に、“数学”に対して“Brown”が関連付けられているという表現を用いることも可能である。
【0034】
その結果、選択された名前のインスタンスとリレーションシップが存在する科目のインスタンスに対応して表示されたチェックマークの内部にマークが表示される(ステップS706またはS722)。たとえば図9aに示す一例では、実体「名前」の中のインスタンス「Chen」が選択されており、その結果、実体「科目」のインスタンスの中で「英語」、「歴史」および「社会」に強調の表示などとして、チェックマーク「レ」が「履修」のリレーションシップを表示するためのサブペイン84に表示される。これは、前記図1および図6の履修テーブル610で示したとおり、「Chen」が「英語」、「歴史」、および「社会」を履修していることを表している。また、「数学」および「理科」の左側のチェックボックスは空であり、これによって「数学」および「理科」は「Chen」によって履修されていないことを表している。サブペイン84は、ペイン83の内部を境界線でさらに区切って得られる領域である。ただし、「履修」のリレーションシップはサブペインに表示されることに限定されず、例えば、Chenが履修する英語、歴史、そして社会の科目名の表示を例えばフォントを変えて表示するなど、任意の方法で強調するようにしてもよい。
【0035】
また、インスタンスは複数選択してもよい。たとえば図9bに示す一例では、実体「名前」の中から「Chen」に加えて「Brown」の、二つのインスタンスが選択されている。この場合でも前記と同様のステップによって、この二つのインスタンスについて、「科目」のインスタンスとの間のリレーションシップの存在が表示されている。図9bに示す一例では、「歴史」の左側に付けられたチェックマーク「レ」96によって、選択された「名前」のインスタンスのすべて、ここでは「Brown」と「Chen」の両方によって、「歴史」が履修されていることを表している。また、たとえば「数学」の左側に付けられたチェックマーク「−」98によって、選択された「名前」のインスタンスの一部、ここでは「Brown」のみによって「数学」が履修されていることを表している。以上のステップの詳細は後に図13および図14を使って詳しく説明する。
【0036】
またさらに、たとえば図9aの状態から、この情報端末の利用者はいつでも、マウス609などを使って、カーソル618を移動させることにより、多対多RMSウィンドウ615に表示された他の一つ以上の任意のインスタンスを選択することによって、逆方向を含む、他のインスタンスとの間に存在するリレーションシップを表示することもできる。たとえば図9aや図9bに示す状態から、図10に示す一例のように、多対多RMSウィンドウ615に表示された実体「科目」のインスタンスが表示されているペイン83の中から、「数学」103および「歴史」102を選択することができる。すると、前記実体「名前」に属するインスタンスに対してリレーションが存在する、実体「科目」に属するインスタンスを強調などして表示した場合と同様に(ステップS708、S709、およびS710)、今度は実体「科目」に属するインスタンスに対してリレーションシップが存在する、実体「名前」に属するインスタンスが表示される。これにより、逆方向の多対多のリレーションシップを表示することができる。図10に示す一例では、「Brown」の左側に表示されたチェックマーク「レ」104によって、「数学」と「英語」の両方が「Brown」によって履修されていることが表示されている。またたとえば、「Fleming」の左側に表示されたチェックマーク「−」105によって、Flemingは、選択された実体「科目」の中の一部、すなわちこの場合は「数学」か「歴史」のどちらかを履修していることを示している。以上のステップの詳細は、後に図13および図15を使って詳しく説明する。
【0037】
以上のように、本願発明による情報端末では、この情報端末の利用者が表示装置612上のGUI613のカーソル618を、マウス609などを使って移動させ、一度選択するのみで、二つの実体の間にある多対多のリレーションシップを、双方向で容易に表示させることができる。
【0038】
さらに、本願発明によれば、二つの実体間の多対多のリレーションシップを双方向で表示させるのみではなく、そのリレーションシップに変更を加えるための入力を、前記GUI613を通じて簡単に行うこともできる。たとえば、図9bに示す状態を出発点にして以下で説明する。図9bの状態で、この情報端末の利用者が、理科の左側にあるチェックボックス99の表示までマウス609によってカーソル移動させた上で、ここでボタンを下押しすることでクリックする(ステップS708)。ここでクリック前はこのチェックボックスは空だったので(ステップS709)、このチェックボックスに「レ」を表示させ(ステップS710)、その結果、多対多RMSウィンドウは図11に示す状態となる。さらに、ステップS701で選択されている実体「名前」の二つのインスタンス「Brown」および「Chen」との組み合わせ、すなわち、{Brown」、「理科」}および{「Chen」、「理科」}を、前記履修テーブル610に追加する(ステップS711)。以上のステップの詳細は、後に図16および図17を使って詳しく説明する。
【0039】
さらに、この状態で、この情報端末の利用者は、続けて表示されたリレーションシップの入力(追加)あるいは変更を行うか、もしくは別のリレーションシップの表示を行うかを選択できる(ステップS713)。たとえば続けてリレーションシップの入力を行う場合には、前記図11の状態で、この情報端末の利用者が、「歴史」の左側にあるチェックボックス96の表示までマウス609によってカーソル移動させた上で、ここでボタンを下押しすることでクリックする(ステップS708)。ここでクリック前はこのチェックボックスは「レ」が表示されていたので(ステップS709)、このチェックボックスにあった「レ」を削除(ステップS714)し、その結果、多対多RMSウィンドウは図12に示す状態となる。次に別のリレーションシップの表示をおこなう場合には、図7の前記ステップS713より、ステップS702に戻る。この入力または表示の選択は、多対多RMSウィンドウGUI上の、チェックボックスをクリックするか、または任意のインスタンスを選択するか、のどちらかの一つの操作をおこなうことによって、簡単に選択できる。以上のステップの詳細は、後に図16および図18を使って詳しく説明する。
【0040】
なお、本実施形態においてチェックマーク「レ」や「−」は、実体間のリレーションシップをあわす記号として例示したに過ぎず、前記チェックボックスに表示されるチェックマークは、このほかの記号、アイコン、画像データ、文字、数字など何であってもよい。たとえば、前記図10において、「レ」および「−」のチェックマークの代わりに実体「名前」のインスタンスの各々の左側のチェックボックスに、各々の名前が履修している科目の数を、数字で表示するような方法によっても、同様に、二つの実体間の多対多のリレーションシップを双方向で容易に表示させることができる。また、実体間の多対多のリレーションシップの表示および制御に使われる前記および後記チェックボックスは、所謂チェックボックスである必要はなく、選択または何らかの入力ができる窓、アイコン、図形など何であってもよい。
【0041】
また、これまでの図6を参照した説明では、多対多RMSプログラム、および履修テーブルともに、この情報端末の主記憶装置上に存在している一例を利用して、本願発明の基本原理を説明したが、これは通信装置620を経由して、ネットワークの他端に接続されたサーバ内の任意の記憶装置に存在してもよい。この場合には、この情報端末の利用者が、キーボード608やマウス609を操作することによって、多対多RMSウィンドウ613に表示されたインスタンスやチェックボックスを選択またはクリックする動作をおこなうと、それをウェブブラウザがコマンドに変換して、通信装置620を経由してサーバに送る。これを受け取ったサーバは、その記憶装置上にある履修テーブルに対して、前記各ステップと同様の手順で検索、追加、削除または変更の処理を行い、および表示する多対多RMSウィンドウを、再びネットワークを通じてこの情報端末に送る。これを通信装置620で受け取ったこの情報端末が、ウェブブラウザ621によって表示装置のGUI613上に前記のような多対多RMSウィンドウを表示する。
【0042】
次に、前記図7に示した各々のステップで実行される方法が、図6に一例として示すハードウェア資源とどのように協調して実現されるかを図13、図14、図15、図16、図17、および図18のフローチャートを用いて詳しく説明する。
【0043】
まず、図13を参照して、任意のインスタンスを選択するまでのステップを説明する。前記オペレーティングシステム605が主記憶装置604にロードされた状態で、さらに外部記憶装置に記憶された多対多RMS606が主記憶装置604にロードされる。ここで、この情報端末の利用者が、キーボード608、またはマウス609などの入力装置を通じて、外部記憶装置602に記憶された履修科目データベース614の中から、表示または制御したい情報を指定すると、前記多対多RMSは、指示された情報の含まれる実体やリレーションシップに関する情報の一部または全部を主記憶装置604にロードする。図6に示す一例では、まずこの情報端末の利用者が、多対多RMS606の指示に従い、表示制御装置611が表示装置612上に表示したグラフィカル・ユーザ・インタフェイス(以下GUIと称する)613内に表示された、履修のリレーションシップを表示するための多対多RMSウィンドウ615の中にある学年選択用ウィンドウ616の中から、第4学年を表す項目617を、マウス609で選択する操作を行う(ステップS1301)。すると多対多RMS606は、第4学年の名前、および第4学年の学生が履修している科目を、外部記憶装置602に記憶されている履修科目データベース614から検索し、これらを主記憶装置604にロードした上、履修テーブル610として記憶する(ステップS1302)。次にこの主記憶装置604上の履修テーブル610で表される実体「名前」のインスタンスと実体「科目」のインスタンスをGUI614の中の多対多RMSウィンドウ615中に表示する(ステップS1303)。ここで、実体「名前」および「科目」のすべてのインスタンスが表示されてもよく、またはさらに何らかの選択ウィンドウを表示させ、これに対する操作をマウスやキーボードで行うことで履修テーブル610のレコードから絞り込んだ上で、各々の実体のインスタンスの任意の一部を表示させてもよい。この状態では、これら2つの実体間にある多対多のリレーションシップは、多対多RMSウィンドウ615には表示されていない。ここで、以下の処理の繰り返し処理に利用する整数の変数i、k、およびrをそれぞれ宣言する(ステップS1304)。これらは各々、名前N(i)、科目S(k)、および履修テーブル610におけるレコード番号に使われる変数である。また、後の処理でGUI表示につかうための整数配列、FS(k)(ただし図6の一例ではk=0、1、2、3、4)、およびFN(i)(ただし図6の一例ではi=0、1、2、3)も合わせて宣言する。FS(k)は科目の各インスタンスに関連づけられたフラグであり、たとえば図6の一例ではFS(3)は科目の「歴史」というインスタンスに関連づけられたフラグである。同様にFN(i)は名前の各インスタンスに関連づけられたフラグであり、たとえば図6の一例ではFN(2)は「Chen」という名前のインスタンスに関連づけられたフラグである。
【0044】
次に、この端末の利用者は、前記多対多RMSウィンドウ615に表示された実体「名前」のインスタンスのうちの任意のn個、または実体「科目」のインスタンスのうちの任意のn個のどちらかを、マウス609を操作して、GUI613上のカーソル618を、GUI上で移動させることによって選択する(ステップS1305)。すると、選択した実体ではない、もう一方の実体の各インスタンスに関連づけられたチェックボックスが表示される(ステップS1306、S1307)。図9aに示す一例では、この情報端末の利用者が、マウス609を操作して、GUI613上のカーソル618を、GUI上で移動させ、実体「名前」に属するインスタンスが表示されているペイン81に表示された4つのインスタンスの中から「Chen」92を選択する(ステップS1305)。前記のように多対多RMSウィンドウ615では、実体「名前」に属するインスタンスが表示されているペイン81から任意の数のインスタンスを選択できるが、この図9aに示すのは、その中の一例を示しているにすぎず、図9aの一例ではn=1である。この図9aの一例では選択したのは「名前」のインスタンスであるので、「科目」の各々のインスタンス、すなわち「数学」、「英語」、「理科」、「国語」、および「社会」の各々の左側に対応するチェックボックスが表示されている(ステップS1306)。この図9aの一例では、選択されたのは実体「名前」のインスタンスであるので、次の処理は図14へと移る。
【0045】
次に、図14に示す一例を用いて、前記ステップで実体「科目」の左側に表示されたチェックボックスにチェックマークを表示して、実体「名前」と実体「科目」との間のリレーションシップを表示するためのステップについて説明する。まずは繰り返し処理のための変数、i、k、r、および、すべてのkについてFS(k)を0に初期化する(ステップS1402)。前記のように、図9aに示す一例では、「Chen」が選択されているが、ここで履修テーブル610によれば「Chen」はN(2)である。したがって、i=0から始まるiに関する分岐(ステップS1409)とインクリメント処理(S1404)による繰り返し処理において、第一の分岐(ステップS1403)が真となるのは「Chen」を表すi=2の場合のみである。したがってこの場合のみ、第二の分岐(ステップS1405)、rに関するインクリメント処理(ステップS1407)、および第三の分岐(ステップS1408)から成る、rについての繰り返し処理によって、「Chen」であるN(2)が、主記憶装置604上の履修テーブル610の中から検索される。履修テーブル610の名前のインスタンスT1(r)の中で、ChenであるN(2)と一致するレコードrが発見されると、第二の分岐(ステップS1405)が真となり、そのレコードにある科目T2(r)に関連づけられた前記FS(k)の値に対して1のインクリメントされる(ステップS1406)。すなわち、S(k)=T2(r)となるkの値を求め、F(k)の値に1を加算してF(k)の次の値とする。図9aに示す一例では、「Chen」であるN(2)は、図6を参照すると、第4学年履修テーブル中のr=3、4、および5で一致が発見される。このため、発見された各々のレコードにある科目「英語」S(1)、「歴史」S(3)、および「社会」S(4)の各々に関連づけられたフラグFS(1)、FS(3)、およびFS(4)が各々1インクリメントされる。この結果、図9aに示す一例では、以上の処理の結果、「科目」の各々のインスタンスに関連づけられたフラグは、FS(0)=FS(2)=0となり、FS(1)=FS(3)=FS(4)=1となる。以上が、選択されたインスタンスである「Chen」の、実体「科目」への写像対応を主記憶装置604上にある履修テーブル610から検索する処理(ステップS705)である。
【0046】
次に、検索された写像対応を表示装置上のGUI中にある、多対多RMSウィンドウ615の中に表示する処理に移る。kに関するインクリメント処理(ステップS1415)および第六の分岐(ステップS1416)による、k=0から始まる繰り返し処理によって、実体「科目」のすべてについて、以下の処理を行うことで、選択されたインスタンス「Chen」が属する実体「名前」に対する実体「科目」のインスタンスとの間に存在するリレーションシップを表示する。まず、第四の分岐(ステップS1410)において、条件式FS(k)=0が真である場合には、多対多RMSウィンドウ615中の「科目」のインスタンスS(k)の左にあるチェックボックスにはいずれのチェックも付けない。もし何らかのチェックが付いている場合には、これを消去する(ステップS1412)。これは、前記ステップS1305で選択した実体「名前」のインスタンスで表される名前が、このS(k)という科目を履修していないことを表現している。条件式FS(k)=0が偽である場合には、第五の分岐(ステップS1411)でFS(k)=nであるかどうかを調べる。nは前記ステップS1305で選択した名前の数であるから、もしこの第五の分岐の条件式が真であるならば、多対多RMSウィンドウ615中の「科目」のインスタンスS(k)のチェックボックスにチェックマーク「レ」を表示する(ステップS1413)。これは、ステップS1305で選択した人の全てが、S(k)という科目を履修していることを表現している。また第五の分岐の条件式が偽である場合には、多対多RMSウィンドウ615中の「科目」のインスタンスS(k)のチェックボックスS(k)の左のチェックボックスには、チェックマーク「−」を表示する(ステップS1414)。これは、ステップS702で選択した人の一部が、S(k)という科目を履修していることを表現している。図9aに示す一例では、選択した人の数は「Chen」のみでn=1であり、前記のようにFS(0)=FS(2)=0、かつFS(1)=FS(3)=FS(4)=1であるから、図9aの「英語」、「歴史」、および「社会」の左に各々表示されるチェックボックス95、96、および97には、チェックマーク「レ」が表示されており、また「数学」および「理科」の左に各々表示されているチェックボックス98および99には何も表示されていない。このようにして、図9aに示されたような、多対多RMSウィンドウにおけるリレーションシップの表示が行われる。なお、検索およびチェックマーク表示のためのアルゴリズムは、この図14のフローチャートで示したものに限定されず、結果として図9aに示す表示がなされるアルゴリズムであれば何でもよい。
【0047】
例えば、FSやFNの配列を用いるのではなく、関係データベースシステムにより実現される集合演算により、検索を行い、チェックマークなどの表示を行うアルゴリズムを用いることもできる。図9bにおいて、選択されたBrownが履修している科目の集合を求め、選択されたChenが履修している科目の集合を求め、それらの集合の積集合に含まれる歴史に「レ」のマークを付け、それらの集合の和集合から積集合を引いた集合に含まれる数学、英語、社会に「−」のマークを付けるようにしてもよい。
【0048】
また、本願発明によれば、以上の処理によって「Chen」の履修している科目が図9aのようにチェックマークによって表示されている状態で、他のインスタンスについてのリレーションシップを明示的な検索処理のための操作をおこなうことなく容易に表示できる。図14における第七の分岐(ステップS1417)で「続ける」を選択し、さらに、第八の分岐で新たな表示を選択(ステップS1418)した場合には、図7における選択操作(ステップS702またはS1305)にジャンプする。なおこれらステップS1417およびステップS1408は、この情報端末の利用者が明示的な操作をおこなう必要はなく、単に多対多RMSウィンドウに表示された、任意のインスタンスを選択する操作をおこなえば、表示、すなわち図13へのジャンプとなり、任意のチェックボックスをクリックすれば入力、すなわち図16へのジャンプとなる。
【0049】
本願発明では、複数のインスタンスを選択してその写像対応を表示装置上のGUIに表示させることができる。図9bに示す一例では、前記図9aに示す状態から、さらに前記図13における選択操作(ステップS1305で)に移行し、マウス609を操作し、表示装置612に表示したGUI613上にあるカーソル618を移動させ、「Chen」に加えて「Brown」を選択している。このようにGUI上で利用者を複数選択するための方法としては、キーボードのいずれかのキーを押しながら、マウスで「Brown」をクリックする方法や、GUI613上に「名前」のインスタンス選択用の別ウィンドウを生成して、それに対してマウスまたはキーボードで入力する方法などがあるが、これらに限らずどのような方法でもよい。
【0050】
再び図14を参照すると、この図9bに示す一例においては、「Brown」および「Chen」を表すN(0)およびN(2)の二つが選択されており、n=2である。この一例でも、前記処理と全く同様にステップS1402からS1409までの検索処理S705によって、選択されたインスタンスである「Chen」および「Brown」の実体「科目」への写像対応を主記憶装置604上にある履修テーブル610から検索した結果として、以下が得られる。実体「科目」の各々のインスタンスに関連づけられたフラグは「数学」がFS(0)=1、「英語」がFS(1)=1、「理科」がFS(2)=0、「歴史」がFS(3)=2、そして「社会」がFS(4)=1となる。
【0051】
さらにこれらの検索結果をもとに、図14に示す表示処理S706の各ステップによって、図9bのような画面が、表示装置612上のGUI613に表示された多対多RMSウィンドウ615に表示される。ここでは実体「科目」のインスタンスを表す項目のうちで、「歴史」の左のチェックボックス96にはチェックマーク「レ」が表示される。これは、「Brown」と「Chen」の両方が「歴史」を履修していることを表している。また、「理科」を左のチェックボックス99には、チェックマークが表示されておらず、これは「Brown」も「Chen」も「理科」を履修していないことを表している。一方、「数学」、「英語」、および「社会」の左の各々のチェックボックス88、85、および87には、チェックマーク「−」が表示されており、これは「Brown」および「Chen」のどちらか一方がこれらの科目を履修していることを表している。
【0052】
これまで図9で示したように、この情報端末の利用者は、実体「名前」の一つまたは複数のインスタンスを選択することによって、各々のインスタンスの実体「科目」の各インスタンスへのリレーションシップ、すなわち図9の一例では、各々の名前が履修している科目を、GUI上にある、多対多RMSウィンドウ615に、簡単に表示することができる。
【0053】
この状態でいつでも、この情報端末の利用者は、マウス609などを操作し、カーソル618を移動させることによって、実体「科目」の一つ以上の任意のインスタンスを選択することができる。たとえば、図10に示すGUIの一例では、この情報端末の利用者が、実体「科目」のインスタンスのなかから、「数学」および「歴史」の二つを、マウスを操作して選択している(ステップS1305)。再び図13を参照すると、ここで選択したのは、「科目」のインスタンスであるので、実体「名前」の各々のインスタンスの左側に各々に対応するチェックボックス104、105、106、および107がペイン101に表示される(ステップS1307)。
【0054】
以降の処理について、図15に示すフローチャートを使って説明する。ただし、処理の詳細なステップについては、前記図14を使って説明した、実体「名前」の任意のインスタンスを選択し、実体「科目」への写像対応を表示させた場合のステップとほぼ同じであるため、適宜省略して説明する。図10に示す一例では、多対多RMSウィンドウ615上で、「数学」と「歴史」が選択されている。したがって、図15の第一の分岐(ステップS1501)では、k=0およびk=3のときのみが真となり、第二の分岐以降の主記憶装置604上にある履修テーブル内の検索が行われ(ステップS1502)、一致したレコードの名前に関連づけられたフラグがインクリメントされる(ステップS1503)。一連の検索処理(ステップS705)の結果、図10に示す一例では、実体「名前」の各々のインスタンスに関連づけられたフラグは、「Brown」がFN(0)=2、「Fleming」がNF(1)=1、「Chen」がNF(2)=1、そして「Smith」がNF(3)=0となる。
【0055】
さらにこれらの検索結果をもとに、図15に示す表示処理(ステップS706)の各ステップによって、表示装置612上のGUI613に表示された多対多RMSウィンドウ615の、実体「名前」のインスタンスを表す項目のうちで、「Brown」の左のチェックボックス104にはチェックマーク「レ」が表示される。これは、「Brown」は「数学」と「歴史」の両方を履修していることを表している。また、「Fleming」および「Chen」の左のチェックボックスには105および106には、チェックマーク「−」が表示される。これは、「Fleming」および「Chen」が「数学」と「歴史」のうちのどちらか一方を履修していることを表している。さらに「Smith」の左のチェックボックス107にはなにもチェックマークが表示されていない。これは、「Smith」が「数学」と「歴史」のどちらも履修していなことを表している。
【0056】
さらに、この図10に示す状態で、この情報端末の利用者は、いつでも実体「名前」の一つ以上の任意のインスタンス、または実体「科目」の一つ以上の任意のインスタンスを、マウス609などを操作し、GUI613上のカーソル618を移動させることによって選択することができる。これは、図15に示すステップ第八の分岐(ステップS1518)から、図13に示すステップS1305にいつでも遷移できることを示している。
【0057】
以上で、本実施形態における、主記憶装置上にあるデータベースのテーブルにおける、多対多のリレーションシップを柔軟に表示する方法を説明した。これによれば、多対多のリレーションシップを持つ二つの実体間の、任意のインスタンス間に存在する一または複数のリレーションシップを柔軟に、かつ単純に表示することができる。次に、本願発明による方法を用いて、前記の各ステップで表示された多対多のリレーションシップを表示するだけでなく、変更し、あるいは表示された実体間の新たなリレーションシップを、キーボードやマウスなどを使って入力し、主記憶装置上のテーブルに変更を加える方法について説明する。
【0058】
たとえば、図14または図15に各々示す一例においては、既に述べたように、この情報端末の利用者がマウス609などを用いて、実体「名前」、または実体「科目」の他のインスタンスを多対多RMSウィンドウ615上で選択すると、図14または図15における第七の分岐(ステップS1418またはS1518)で表示が選択され、図13のステップS1305にジャンプし、実体「名前」の任意のインスタンスから実体「科目」のインスタンスへの、またはその逆の写像対応を表示することができる。
【0059】
しかし、一方で図14または図15に各々の示す一例においては、この情報端末の利用者がマウス609などを用いて、各々の「名前」や「科目」のインスタンスではなくチェックボックスをクリックすることによって、表示されている実体間のリレーションシップを変更したり、新たなリレーションシップを入力したりできる。
【0060】
ここで再び図9bを参照すると、いま、表示装置上で、実体「名前」のインスタンスのうちで「Brown」および「Chen」が選択された結果、主記憶装置上の履修テーブルのデータをもとに、「歴史」にチェックマーク「レ」が、また「数学」、「英語」、および「社会」にチェックマーク「−」が、「理科」には何もチェックマークが表示されていない。これは、たとえば前記選択された「Brown」および「Chen」は、「理科」を履修していないことを表している。
【0061】
この状態で、この情報端末の利用者が「Brown」と「Chen」の両方が「理科」を履修するという、新たなリレーションシップを追加入力したいとすると、マウス609を操作し、GUI613上のカーソル618を「理科」の左にあるチェックボックス99上に移動させ、ここでマウスのボタンを下押しすることでクリックする(ステップS1601)。図9bの状態では、このチェックボックスには何も表示されていないので、図16における第一および第二の分岐を経て、前記で選択したチェックボックスにチェックマーク「レ」を表示し(ステップS1302)、図11に示す状態となる。この操作によって、GUI613上の多対多RMSウィンドウ615において、「Bronw」および「Chen」が「理科」を履修しているというリレーションシップが新たに入力および表示されたが、主記憶装置上にある履修テーブルには、この時点ではこれらのリレーションシップは追加されていない。
【0062】
次に図17を参照して、前記リレーションシップの変更が主記憶装置上にある履修テーブルに追加される方法を説明する。まず、「名前」のインスタンス、および履修テーブルの各レコード、の各々についての繰り返し用変数i、およびrをすべて0に初期化する(ステップS1701)。次に第一の分岐(ステップS1702)、第六の分岐(ステップS1712)、およびiに関するインクリメント処理(ステップS1703)による繰り返し処理で、S1305において選択された名前N(i)のみに、以下のレコード追加処理をおこなう。図11に示す一例では、「Brown」および「Chen」が選択されているので、この二つのインスタンスのみについて、以下の処理をおこなう。
【0063】
次に、現在の履修テーブル610に、検索対象のリレーションシップを表すレコードが存在するかどうかを判定するためのフラグFlgを0に初期化する(ステップS1704)。そして第二の分岐(ステップS1705)、第四の分岐(ステップS1709)、およびrに関するインクリメント処理(ステップS1708)による繰り返し処理によって、「名前」が前記ステップS1305において選択されたインスタンスであり、かつその履修している「科目」が前記ステップS1601で選択されたインスタンスS(a)であるようなレコードrを、履修テーブルから検索する(ステップS1705およびS1706)。このようなレコードが見つかった場合には、前記フラグFlgに1を代入する(ステップS1707)。前記rに関する繰り返し処理の度に、多対多RMSは、Flgの値を検証し(ステップS1710)、このようなレコードが見つからなかった場合には、履修テーブルにレコード{N(i)、S(a)}を追加する(ステップS1711)。図11に示す一例では、図6における履修テーブル610で、前記ステップS1602でチェックマーク「レ」が追加された実体「科目」のインスタンス「理科」について、{N(i)=「Brown」、S(a)=「理科」}および{N(i)=「Chen」、S(a)=「理科」}の二つのレコードはいずれも検索されないため、この二つのレコードが、主記憶装置604に記憶された履修テーブル610に追加される。
【0064】
以上が、本願発明において、チェックマークの付いていない「科目」のインスタンスをマウスでクリックすることで、チェックマークを付け、またその写像対応を主記憶装置上の履修テーブルに追加するための方法である。また、同様の方法で、チェックマーク「−」の付いている場合、複数選択された「名前」のインスタンスの一部と写像対応がある「科目」のインスタンスの、チェックボックスをマウスでクリックすることで、チェックマークを付け、その写像対応を主記憶装置上の履修テーブルで修正することもできる。
【0065】
たとえば、図11に示す一例においては、実体「名前」のインスタンス「Brown」および「Chen」が選択されている状態で、数学の左のチェックボックスにはチェックマーク「−」が表示されている。これは、「Brown」および「Chen」のどちらか一方が、「数学」を履修しているというリレーションシップを表している。実体「履修」に対応するリレーションシップをこの情報端末の利用者が、「Brown」および「Chen」の両方が「数学」を履修しているというリレーションシップに変更したいとする。この情報端末の利用者は、マウス609を操作し、GUI613上のカーソル618を「数学」の左にあるチェックボックス上に移動させ、ここでマウスのボタンを一度下押しすることでクリックする(ステップS1601)。この場合にも、図16に示す二つの分岐処理の結果、「数学」の左にチェックボックスには「レ」が表示される。
【0066】
次に、再び図17を参照すると、前記「Brown」および「Chen」のリレーションシップを追加したステップ同様に、名前および履修テーブルのレコードに関する繰り返し処理を行い、図6に示す主記憶装置604上にある履修テーブル610中にない、{N(i)=「Chen」、S(a)=「数学」}のレコードを追加する。この場合、{N(i)=「Brown」、S(a)=「数学」}のレコードはr=0として履修テーブル610に存在するので、ステップS1707においてFlgに1が代入される結果、履修テーブル610に追加する処理(ステップS1711)は実行されない。
【0067】
また同様に、図11に示す一例においては、実体「名前」のインスタンス「Brown」および「Chen」が選択されている状態で、「歴史」の左のチェックボックスにはチェックマーク「レ」が表示されている。これは、「Brown」および「Chen」の両方が「歴史」を履修しているというリレーションシップを表している。この情報端末の利用者が、このリレーションシップを削除し、この両名とも「歴史」を履修していない状態に変更したいとする。この情報端末の利用者は、マウス609を操作し、GUI613上のカーソル618を「歴史」の左にあるチェックボックス上に移動させ、ここでマウスのボタンを一度下押しすることでクリックする(ステップS1601)。すると、多対多RMS606が図16に示す分岐処理の結果「歴史」の左のチェックボックスを空にする(ステップS1603)。
【0068】
次に図18を参照して、前記リレーションシップの変更が主記憶装置上にある履修テーブルに反映される方法を説明する。まず、「名前」のインスタンス、および履修テーブルの各レコード、の各々についての繰り返し用変数i、およびrをすべて0に初期化する(ステップS1801)。次に第一の分岐(ステップS1802)、第五の分岐(ステップS1809)、およびiに関するインクリメント処理(ステップS1803)による、N(i)に関する繰り返し処理で、前記ステップS702または前記ステップS1305において選択された名前N(i)のみに、以下のレコード追加処理をおこなう。図11に示す一例では、「Brown」および「Chen」が選択されているので、この二つのインスタンスのみについて、以下の処理をおこなう。
【0069】
次に、現在の履修テーブル610に、前記ステップS702またはステップS1305で選択した実体「名前」のインスタンスと、前記ステップS708またはステップS1601で選択した実体「科目」のインスタンスS(a)の間のリレーションシップを表すレコードが存在するかどうかを、第二の分岐(ステップS1804)、第四の分岐(ステップS1808)、およびインクリメント処理(ステップS107)による、rに関する繰り返し処理によって検索する。図11に示す一例では、前記ステップS1601で「歴史」のチェックボックスをクリックした結果、r=1である{N(i)=「Brown」、S(a)=「歴史」}、およびr=4である{N(i)=「Chen」、S(a)=「歴史」}の二つが、第三の分岐(ステップS1805)の分岐によって検索され、これらが主記憶装置604に記憶された履修テーブル610から削除される(ステップS1806)。
【0070】
なお、前記概略図である図7のステップS708において、「科目」のインスタンスの中で、任意の一つのチェックボックスをクリックした場合について、図16、図17、および図18を使って詳細を説明した。一方、図7のステップS724において、「名前」のインスタンスの中で、任意の一つのチェックボックスをクリックした場合については、これと同様であるので、説明を省略している。
【0071】
本願発明によれば、従来の方法と比べて以下に示す二つの効果が得られる。
【0072】
第一の効果は、二つの実体間の多対多のリレーションシップを、一回のマウスボタンクリックなど、単純な操作で、かつ双方向で表示できる点である。いま、「名前」と「科目」の二つの実体の間のリレーションシップを考える。たとえば前記図1に示す一例では、従来の方法によれば、「名前」から「科目」へのリレーションシップを表示するには、「Chen」を検索キーとして、主記憶装置604上の第4学年履修テーブル610を検索することで、図4のような結果を表示装置上に表示す必要があった。ここで表示されている内容は、本願発明による図9aと等価である。従来の方法と比べた本願発明の効果は、この状態から、次に「科目」から「名前」への逆方向の写像対応を表示させる際に、情報端末の利用者による操作が簡単になり、なおかつ単純な表示が可能となる点である。
【0073】
たとえば、従来の方法によれば、図4に示す状態から、次に「数学」および「歴史」を履修している人のリストを得たい場合には、この情報端末の利用者は、「数学」および「英語」を検索キーとして前記第4学年履修テーブル610を検索する操作を明示的に、キーボード608やマウス609を利用して行う必要があった。たとえば、従来の方法によれば、図4の状態から問い合わせ画面を呼び出した後、たとえばSQL言語で「SELECT 名前 FROM 第4学年履修テーブル WHERE 科目=‘数学’OR‘歴史’;」という入力をおこない、図5に示すようなテーブルを表示させる必要があった。しかし、本願発明によれば、図4に相当する図9aの状態から、同様に「数学」および「歴史」を履修している人のリストを得たい場合には、何ら新しい検索依頼のための画面を呼び出すことなく、そのままGUI613上の多対多RMSウィンドウ615で「数学」および「歴史」を、マウス609で選択するだけで図9bに示すような実体「科目」から実体「名前」への図9aとは逆方向のリレーションシップが表示される。図5と図9bで表示されている内容は等価である。つまり、多対多のリレーションシップを持つ二つの実体において、片方の実体から他方の実体へのリレーションシップを表示した状態から、1回のクリックで逆方向のリレーションシップを表示できる。この結果、従来の方法に比べてこの情報端末の利用者は、双方向のリレーションシップを行き来しながら、二つの実体間の複雑なリレーションシップを理解できるという効果がある。
【0074】
第二の効果は、二つの実体間の多対多のリレーションシップの、追加、削除、または変更が、二回のマウスボタンクリックなど、単純な操作で、かつ双方向でおこなえる点である。従来の方法によれば、たとえばまず「Chen」を検索して図4を表示した後、さらにリレーションシップの追加、削除、または変更用の新たなウィンドウを表示させ、その中のオブジェクトに対して入力するなどすることで、リレーションシップの変更をおこなう必要があった。本願発明による方法では、図7の状態からまず、「Chen」をマウスでクリックするなどして選択し、次に科目のインスタンスの各々に表示されるチェックボックスをやはりマウスでクリックする、という2つの操作のみで、実体「名前」から実体「科目」への、またはその逆の任意のリレーションシップを追加、削除、または変更できるようになる。
【0075】
以上、「名前」および「科目」という二つの実体の間の、「履修」に関する多対多のリレーションシップを一例として、本願発明の基本原理を説明したが、本願発明は表示装置におけるどのような実体間のリレーションシップの表示、または入力装置を用いたデータベースへの入力にも利用できる。ここで扱う情報は、あらゆる文字情報、画像情報、数値など何であってもよい。図19aの一例では、実体「写真」1901と実体「開示先」1903の間の多対多のリレーションシップを、本願発明による方法で、表示装置上に表示している。この情報端末の利用者が、マウスなどを操作して表示装置上のカーソル1909を動かし、実体「写真」のインスタンスの一つである、「湖」1908を選択した結果、実体「開示先」に表示されている二つのインスタンスのうち、「太田智久」の左に表示されたチェックボックス1907に、チェックマーク「レ」が表示されている。これは、この情報端末の利用者が、「湖」の写真を「太田智久」に開示していることを表している。
【0076】
この状態でいつでも、この情報端末の利用者は、マウスなどを操作することで、カーソルを移動させ、「開示先」の任意のインスタンスを選択できる。たとえば、図19bに示す一例では、この情報端末の利用者が実体「開示先」のインスタンスである「ベティートーマス」1910および「太田智久」1911を選択した結果、実体「写真」の各々のインスタンスの左にチェックボックスが表示され、さらにチェックマークによって、リレーションシップが表示されている。図19bに示す一例では、チェックボックス1912にはチェックマークが表示されていないことから、実体「写真」のインスタンスである「博物館」はこの両名には開示されておらず、チェックボックス1913にはチェックマーク「−」が表示されていることから、「湖」はこの両名の一部に開示されており、さらにチェックボックス1914にはチェックマーク「レ」が表示されていることから、この両名ともに開示されていることを表している。
【0077】
このように本願発明を「写真」と「開示先」という二つの実体に適用することで、「特定の人物に開示している写真はどれか」というリレーションシップと、それとは逆方向となる「特定の写真を開示している人物は誰か」という双方向のリレーションシップを、1回のマウスクリックによって自由に表示できる。このため、本願発明の情報端末の利用者は、開示対象と開示者という複雑な多対多のリレーションシップの全体像を容易に把握し、また同様にリレーションシップの追加、変更、削除などを簡単に行える。
【0078】
さらに、多対多RMSウィンドウの各々の実体には、各々独立したインスタンス絞り込み用ウィンドウを具えていてもよい。図19に示す一例では、実体「写真」を、各々のインスタンスに関連づけられたキーワードを使って絞り込むための絞り込みウィンドウ1902を具え、これを操作することによって、実体「写真」のインスタンス用ウィンドウ1901に表示させる写真を絞り込むことができる。同様に、実体「開示先」についても、各々のインスタンスに関連づけられたキーワードを使って絞り込むためのウィンドウ1904を具え、これによって実体「開示先」のインスタンス表示用1903に表示させる名前を絞り込むことができる。各々の実体の絞り込み操作は独立しているが、表示された各々のインスタンス間のリレーションシップの表示および入力方法は、既に述べた各ステップ従って、本願発明による情報端末によって実行される。
【0079】
(実施形態2)
本願発明の他の実施形態の一例によると、数多くの情報の中から、簡単な操作で情報端末の利用者が必要とする情報だけを絞り込んだ上で、表示装置に表示させることができる。以下では、本願発明の実施形態の一例として、電話帳または住所録などにおける、連絡先名前の絞り込み処理方法について説明する。
【0080】
現在の方法によれば、データベース上に存在する数多くの情報(以下インスタンスと称する)から、情報端末の利用者の必要な情報を絞り込むための方法としては、以下の二つが広く使われている。
【0081】
第一の従来方法は、各々のインスタンスを、ツリー構造を持った分類先(以下フォルダと称する)に分類して管理し、情報端末の利用者が必要な情報を絞り込む際には、そのツリー構造を上位から下位へと辿ることで、表示装置に表示するインスタンスの数を減らしてゆく方法である。たとえば、図20に示す一例におけるツリー構造を有するデータベースにおいて、営業部に属する「Johnson」2001を探すためには、図21に例示するようなツリー構造を表すGUIを用い、分類先2101に表示される個々のリストを、上の階層から順番に、マウスなどを操作し、カーソル2102を移動、選択することによって、「営業部」を選択すると、「名前」の欄2104に「営業部」に属する「Brown」および「Johnson」が表示される。
【0082】
この第一の従来の方法は、上位である大分類から下位である小分類を順に選択して行くという、検索性の高い優れた方法である。しかし現実のデータベースでは、たとえば図20に示す「Frank」2002のように、一つのインスタンスが複数の分類先に属している場合に、絞り込み、および分類操作が困難であるという問題があった。たとえば、ツリー構造のデータベースにおいては、図20に示す3つの「Frank」2002が同一のインスタンスであることを認識できない。
【0083】
この問題を解決するために使われる従来の第二の方法が、タグ付けと呼ばれるものである。これは、名前の各々のインスタンスに、1つ以上のタグを付けた状態でデータベースに保存し、それを検索する方法である。このタグ付けでは、図20の情報を、たとえば図22に示す形態で、データベースに保存する。たとえば、この情報端末の利用者が、数多くのインスタンスである名前のなかから、高校時代の友人を検索したい場合には、「高校」というタグを検索キーとして図22に示したテーブルの「タグ」の列2201を検索して、「Miller」2202、「Fox」2203、および「Jonse」2204の3つのインスタンスを得る。このような方法では、1つのインスタンスが複数のタグを持つことができるため、前述のツリー構造フォルダの方法における問題は解決する。しかし、このタグ付けの方法によれば、特にタグの数が多い場合には、タグを階層化して管理することが難しいために、タグの検索が困難であるという問題があった。また、ツリー構造を持つ分類先による検索では可能である、同じ名前を持つ複数のタグが使えないという問題もある。たとえば図20に示す一例では、「会社」というフォルダは「仕事」の下位にある「会社2003、および「友人」の二階層下位の「会社」2004の二つがある。ツリー構造を持たないタグ付けでは、この二つの会社を区別する方法がない。したがって、図20では、たとえば「Brown」は会社に属するが、図22の表記では「Brown」は「会社」に属しているとは認識できない。
【0084】
すなわち、従来の第一の方法、および従来の第二の方法のどちらを利用するかは、本質的には、一つのインスタンスを複数の分類先に分類することが困難であるという問題と、階層化したツリー構造によるインスタンスの管理が困難であるという、二つの問題の二者択一の問題に帰するものであった。
【0085】
しかし、本願発明によれば、前記二つの、従来の方法における問題をともに解決することができる。たとえば、図20および図21に例示した、ツリー構造のフォルダへの分類、およびタグ付けされたテーブルは共に、タグまたはフォルダという実体と、名前という実体の間の多対多のリレーションシップであるととらえることができる。このため、前記実施形態1において詳細に説明した、多対多のリレーションシップの表示および入力に関する方法およびその情報端末が適用できる。
【0086】
すなわち、第1の実体に属する複数の第1のインスタンスがツリー構造などの階層構造を成すノードであり、第2の実体に属する複数の第2のインスタンスがそれらのノードに関連づけられているとする。例えば、第1のインスタンスが「営業部」、「開発部」などの部署であり、第2のインスタンスが部署に属する人であるような場合である。この場合、ある第1のインスタンスに、ある第2のインスタンスが関連付けられているならば、その第1のインスタンスの上位の階層の第1のインスタンスにもその第2のインスタンスが関連付けられているとする。例えば、「営業部」に「Brown」が属していれば、「営業部」の上位の階層の「会社」、「仕事」にも「Brown」が属するとする。このようなデータ構造を有する第1の実体と第2の実体との間には、一般的には多対多のリレーションシップが存在することになる。このような場合のリレーションシップの表示、操作や制御にも本願発明は適用可能である。
【0087】
また、ツリー構造などの階層構造は、例えばツリーのルートノードを最上位のノードとし、ノードの上位と下位の関係を表すテーブルを用いて、表すことができる。
【0088】
なお、以下では本願発明におけるタグまたはフォルダと等価な用語として従来の方法と区別するために「カテゴリー」という用語を用いる。また、下記の説明において、実体「カテゴリー」と実体「名前」の間の多対多のリレーションシップについて、表示装置上に表示されたチェックボックス、およびチェックマーク「レ」および「−」によって双方向に表示するものとする。なお、マウスなどを操作してチェックボックスを選択することで、双方向で入力するために、ソフトウェアとハードウェア資源と協調してこれを実現する方法については、前記実施形態1において説明した手段と同様であるため、ここでは省略し、その結果として表示装置に表示される効果を説明する。
【0089】
図20に一例として示した、ツリー構造のカテゴリーと名前との多対多のリレーションシップを表示および入力する、本願発明の方法による絞り込みのための方法を、図23から図25に示す。このウィンドウは、実体「カテゴリー」のインスタンス表示用のウィンドウ2302および、実体「名前」のインスタンス表示用のウィンドウ2303よりなる。まず、図23aを参照すると、この情報端末の利用者が、表示装置上のカーソル2304を移動させ、実体「カテゴリー」の階層化されたインスタンスのひとつである「友人」を選択する。その結果、実体「名前」用のウィンドウ2303には、図20における友人の下層のカテゴリーに属する全ての人、「Davis」、「Donnelly」、「Fleming」、「Fox」、「Frank」、「Jones」および「Miller」の7名が表示される。次に図23bを参照すると、この情報端末の利用者が「友人」の下層にあたる「その他」2306を選択すると、前記の7名の中から「その他」の下の階層に属するすべての人「Davis」、「Fleming」、「Frank」、および「Jones」に4名に絞り込まれる。さらに図23cを参照すると、その下層のカテゴリーである「テニス」2307を選択することで、前記4名が「Davis」、「Frank」、および「Jones」の3名に絞り込まれている。ここまでは前記従来の第一の方法である、ツリー構造のフォルダによる絞り込みの表示および入力と同じ方法である。
【0090】
次に図24を参照すると、この端末の利用者が実体「カテゴリー」のインスタンスの中から「開発部」、および「テニス」の二つを選択した場合、実体「名前」のインスタンスを表すウィンドウには、「開発部」または「テニス」のカテゴリーに属する人の名前が、名前用ウィンドウ2303に表示される。従来の第一の方法、すなわちツリー構造のフォルダによれば、図20に示す一例では「Frank」2002は、「開発部」のフォルダにも、「テニス」のフォルダにも存在するため、図24のようにフォルダを複数選択すると、「名前」用のウィンドウ2303には、二つの「Frank」が表示されてしまった。本願発明による方法では、実体「カテゴリー」のインスタンスである「開発部」および「テニス」は、実体「名前」のインスタンスである「Frank」とは多対一のリレーションシップとして、前記実施形態1において詳しく説明した方法によって、データベースの情報をもとに表示される。すなわちデータベース上では実体「カテゴリー」のインスタンスである「開発部」、および「テニス」と関連づけられている「Frank」は、実体「名前」の一つの「Frank」とリレーションシップをもっていることが認識できる。したがって、本願発明による方法では、図24に示すように、ツリー構造と同じ操作によって「名前」を絞り込んだ上で、「開発部」と「テニス」を共に選択しても、「名前」用ウィンドウ2303に「Frank」が重複して表示されることがなく、「Davis」、「Frank」、および「Jones」の、「開発部」または「テニス」のどちらかに属している人の名前が表示される。
【0091】
図24の状態から、この情報端末の利用者は、いつでも実体「名前」に表示されている任意のインスタンスを、マウスなどを利用して、表示装置上のカーソル2304を移動させることで、選択できる。たとえば図25aに一例として示すように、「Jones」2501を選択すると、実体「カテゴリー」の各々のインスタンスに対応するチェックボックスが表示される。これは、「Jones」と、実体「カテゴリー」のリレーションシップを表しており、「Jones」は「テニス」2504に属しており、したがってその上位にある「その他」2503、およびさらにその上位にある「友人」2502にも属していることが、各々のチェックマーク「レ」によって表示されている。さらに、「Jones」は、「高校」2506のカテゴリーにも属しており、したがってその上位の「学校」2505にも属していることが同じく、各々のチェックマーク「レ」によって表示されている。
【0092】
前記実施形態1で説明したように、この図25aに示す状態からはいつでも、他の実体「名前」のインスタンスを選択して、その「カテゴリー」に対するリレーションシップを表示したり、実体「カテゴリー」の任意のインスタンスを選択して、そのカテゴリーに属する名前をウィンドウ2303に表示させることができ、さらに、「カテゴリー」の各インスタンスに表示されたチェックボックスにカーソル2304を移動させ、マウスでクリックするなどの方法で、表示されたリレーションシップを更新、削除したり、新たなリレーションシップを追加することもできる。
【0093】
さらに、実体「カテゴリー」および実体「名前」の各々のインスタンスは、複数選択して、それらのインスタンスのリレーションシップを表示または変更、削除、追加などの入力をおこなうことができる。図25bに示す一例では、図24の状態から、「Frank」および「Jonse」の二つのインスタンスが選択された結果として、「Frank」および「Jonse」の両方が属している「カテゴリー」のインスタンスにはチェックマーク「レ」が、どちらかが属している「カテゴリー」のインスタンスにはチェックマーク「−」が各々表示されている。
【0094】
このように、本実施形態2によれば、実体「カテゴリー」のインスタンスが、前記従来の第一の方法と同様のツリー構造を持っているため、前記従来の第一の方法における絞り込みが容易であり、かつ前記実施形態1で説明した効果を得ることができ、そのため前記従来の第二の方法であるタグ付けの利点と同様の一つの「名前」のインスタンスが複数の「カテゴリー」のインスタンスと関連づけることの利点も享受できる。
【0095】
なお、本実施形態2で扱うことのできる実体は何でもよい。たとえば名前だけでなく、住所、電子メールアドレス、電話番号などのあらゆる文字情報や、写真などのあらゆる画像データ、数値情報など何でもよく、これらの実体を効率よく検索および絞り込みが可能な情報端末を提供する。また前記実施形態1と同様に、本実施形態において、情報端末の各構成要素と協調して動作するプログラムや、データベースは、この情報端末の記憶装置にあってもよいし、またはネットワークの他端に存在するサーバ上にあってもよい。
【0096】
前記実施形態1と、本実施形態2は、ともに二つの実体間の多対多のリレーションシップを、双方向で容易に表示、および変更、追加、および削除の入力を行える情報端末を提供している。一方実施形態1および2の違いは、実施形態1が二つ実体間の、双方向のインスタンスおよびリレーションシップの表示が対称であるのに対し、実施形態2は非対称な点である。具体的には、実施形態2において、実体「カテゴリー」のインスタンスを選択した場合、実体「名前」の各々のインスタンスには、実施形態1で表示されたリレーションシップを表示および入力するためのチェックボックスは表示されない。また、実施形態1の場合、片方の実体のインスタンスを選択しても、他方の実体の表示されるインスタンスは変化しないが、実施形態2の場合は、実体「カテゴリー」のインスタンスを選択した場合、これによって表示される実体「名前」のインスタンスが変化し、実体「カテゴリー」の階層が下位に移動する度に、実体「名前」のインスタンスが絞り込まれる。実施形態2では、このようにして、カテゴリーを使った容易な情報の分類、および検索が可能となる。
【0097】
以上のまとめとして、第1の実体に属する複数の第1のインスタンスと第2の実体に属する複数の第2のインスタンスとの間に存在する一または複数のリレーションシップを格納するデータベースと、前記複数の第1のインスタンスの中から一または複数の前記第1のインスタンスが選択されると、前記データベースを検索し、前記複数の第2のインスタンスの各々について、選択された前記一または複数の前記第1のインスタンスとの間に存在する第1のリレーションシップを求め、前記複数の第2のインスタンスから一または複数の前記第2のインスタンスが選択されると、前記データベースを検索し、前記複数の第1のインスタンスの各々について、選択された前記一または複数の前記第2のインスタンスとの間に存在する第2のリレーションシップを求めるマイクロプロセッサと、第1のペインと第2のペインを表示する表示装置であって、前記複数の第1のインスタンスを含む第1のリストを前記第1のペイン中に表示し、前記複数の第2のインスタンスを含む第2のリストを前記第2のペイン中に表示し、前記第1のリレーションシップまたは前記第2のリレーションシップを前記第1のペイン及び前記第2のペインに表示する表示装置と、を有することを特徴とする第1のデータベースシステムが提供される。
【0098】
また、第1のデータベースシステムにおいて、前記表示装置は、前記第1のリレーションシップまたは前記第2のリレーションシップを表示する際に、前記第1のリレーションシップまたは前記第2のリレーションシップが存在する前記第1のインスタンスまたは/および前記第2のインスタンスの強調表示を行うことを特徴とする第2のデータベースシステムが提供される。
【0099】
また、第2のデータベースシステムにおいて、前記表示装置は、前記選択された前記一または複数の前記第1のインスタンスとの間に前記第1のリレーションシップが存在する前記第2のインスタンスを強調表示し、前記選択された前記一または複数の前記第2のインスタンスとの間に前記第2のリレーションシップが存在する前記第1のインスタンスを強調表示することを特徴とする第3のデータベースシステムが提供される。
【0100】
また、第3のデータベースシステムにおいて、前記表示装置は、前記第1のインスタンスまたは前記第2のインスタンスの前記強調表示を行う場合、前記第1のインスタンスまたは前記第2のインスタンスとともに、内部にマークを表示可能な表示領域を表示し、前記第1のインスタンスまたは前記第2のインスタンスの強調表示は、前記表示領域内にマークを表示することにより行うことを特徴とする第4のデータベースシステムが提供される。
【0101】
また、第4のデータベースシステムにおいて、前記表示領域内に表示される前記マークは、前記強調表示が行われる前記第1のインスタンスとの間に前記第2のリレーションシップが存在する前記第2のインスタンスまたは前記強調表示が行われる前記第2のインスタンスとの間に前記第1のリレーションシップが存在する前記第1のインスタンスの数に応じて変化することを特徴とする第5のデータベースシステムが提供される。
【0102】
また、第4のデータベースシステムにおいて、前記表示領域がチェックボックスであることを特徴とする第6のデータベースシステムが提供される。
【0103】
また、第2のデータベースシステムにおいて、前記強調表示は、前記第1のインスタンスまたは/および前記第2のインスタンスを文字列により表示する際のフォントの変更により行われることを特徴とする第7のデータベースシステムが提供される。
【0104】
また、第1のデータベースにおいて、前記マイクロプロセッサは、前記第1のペインに表示された前記複数の第1のインスタンスから一または複数の前記第1のインスタンスが選択され、かつ前記第2のペインに表示された前記複数の第2のインスタンスから一または複数の前記第2のインスタンスが選択されると、選択された前記一または複数の前記第1のインスタンスの各々と選択された前記一または複数の前記第2のインスタンスの各々との間に存在する前記リレーションシップを前記データベースより削除することを特徴とする第8のデータベースシステムが提供される。
【0105】
また、第1のデータベースシステムにおいて、前記マイクロプロセッサは、前記複数の第1のインスタンスから一または複数の前記第1のインスタンスが選択された状態において、前記第2のペインに表示された前記複数の第2のインスタンスから一または複数の前記第2のインスタンスが選択されると、選択された前記一または複数の前記第1のインスタンスの各々と選択された前記一または複数の前記第2のインスタンスの各々との間に前記リレーションシップを前記データベースに格納することを特徴とする第9のデータベースシステムが提供される。
【0106】
また、第9のデータベースシステムにおいて、前記マイクロプロセッサは、選択された前記一または複数の前記第1のインスタンスの各々と選択された前記一または複数の前記第2のインスタンスの各々とのうち、前記データベースにリレーションシップが格納されていない場合に、前記第1のインスタンスと前記第2のインスタンスとの組み合わせを前記データベースに格納することを特徴とする第10のデータベースシステムが提供される。
【0107】
また、第1のデータベースシステムにおいて、前記第1の実体に属する複数の第1のインスタンスは階層構造を成しており、前記第1のインスタンスと前記第2のインスタンスとの間にリレーションシップが存在すれば、前記階層構造において前記第1のインスタンスの上位の第1のインスタンスと前記第2のインスタンスとの間にもリレーションシップが存在することを特徴とする第11のデータベースシステムが提供される。
【0108】
また、第1の実体に属する複数の第1のインスタンスと第2の実体に属する複数の第2のインスタンスとの間に存在する一または複数のリレーションシップを格納するデータベースと、前記複数の第1のインスタンスから第3のインスタンス及び第4のインスタンスが選択されると、前記複数の第2のインスタンスのうち、前記第3のインスタンスと前記第4のインスタンスに第1の所定の条件で第1のリレーションシップが存在する一または複数の第5のインスタンスを前記データベースより検索し、前記複数の第2のインスタンスのうち、前記第3のインスタンスと前記第4のインスタンスに第2の所定の条件で第2のリレーションシップが存在する一または複数の第6のインスタンスを前記データベースより検索するマイクロプロセッサと、第1のペインと第2のペインを表示する表示装置であって、前記複数の第1のインスタンスを含む第1のリストを前記第1のペイン中に表示し、前記複数の第2のインスタンスを含む第2のリストを前記第2のペイン中に表示し、前記第3のインスタンスおよび前記第4のインスタンスと前記第5のインスタンスとの間に存在する前記第1のリレーションシップを第1の形態で表示し、前記第3のインスタンスおよび前記第4のインスタンスと前記第6のインスタンスとのに存在する前記第2のリレーションシップを第2の形態で表示する表示装置と、を有する第12のデータベースシステムが提供される。
【0109】
第12のデータベースシステムにおいて、前記マイクロプロセッサは、前記複数の第2のインスタンスから前記一または複数の第5のインスタンスとして、前記第3のインスタンスと前記第4のインスタンスとの両方の間に前記リレーションシップが存在するインスタンスを検索し、前記複数の第2のインスタンスから前記一または複数の第6のインスタンスとして、前記第3のインスタンスと前記第4のインスタンスとのどちらか一方の間に前記リレーションシップが存在するインスタンスを検索する第13のデータベースシステムが提供される。
【0110】
また、第1の実体に属する複数の第1のインスタンスと第2の実体に属する複数の第2のインスタンスとの間に存在する一または複数のリレーションシップを格納するデータベースと、第1のペインと第2のペインを表示し、前記第1のペイン中に前記複数の第1のインスタンスを含む第1のリストを表示し、前記第2のペイン中に前記複数の第2のインスタンスを含む第2のリストを表示する表示装置とを有する情報端末の表示方法において、前記複数の第1のインスタンスから一または複数の第1のインスタンスが選択されると、前記データベースを検索し、前記複数の第2のインスタンスの各々について、選択された前記一または複数の前記第1のインスタンスとの間に存在する第1のリレーションシップを求め、前記第1のリレーションシップを前記表示装置に表示し、前記複数の第2のインスタンスから一または複数の第2のインスタンスが選択されると、前記データベースを検索し、前記複数の第1のインスタンスの各々について、選択された前記一または複数の前記第2のインスタンスとの間に存在する第2のリレーションシップを求め、前記第2のリレーションシップを前記表示装置に表示することを特徴とする情報端末の第1の表示方法が提供される。
【0111】
また、第1の表示方法において、前記第1のリレーションシップまたは前記第2のリレーションシップの表示は、前記第1のリレーションシップまたは前記第2のリレーションシップが存在する前記第1のインスタンスまたは/および前記第2のインスタンスを強調して表示することを特徴とする、情報端末の第2の表示方法が提供される。
【0112】
また、第2の表示方法において、前記第1のリレーションシップまたは前記第2のリレーションシップの表示は、前記選択された前記一または複数の前記第1のインスタンスとの間に前記第1のリレーションシップが存在する前記第2のインスタンスを強調表示し、前記選択された前記一または複数の前記第2のインスタンスとの間に前記第2のリレーションシップが存在する前記第1のインスタンスを強調表示することを特徴とする、情報端末の第3の表示方法が提供される。
【0113】
また、第3の表示方法において、前記第1のインスタンスまたは前記第2のインスタンスの強調表示を行う場合、前記第1のインスタンスまたは前記第2のインスタンスとともに、内部にマークを表示可能な表示領域を表示し、前記第1のインスタンスまたは前記第2のインスタンスの強調表示は、前記表示領域内にマークを表示することにより行うことを特徴とする、情報端末の第4の表示方法が提供される。
【0114】
また、第4の表示方法において、前記表示領域内に表示される前記マークを、前記強調表示が行われる前記第1のインスタンスとの間に前記第2のリレーションシップが存在する前記第2のインスタンスまたは前記強調表示が行われる前記第2のインスタンスとの間に前記第1のリレーションシップが存在する前記第1のインスタンスの数に応じて変化させることを特徴とする、情報端末の第5の表示方法が提供される。
【0115】
また、第4の表示方法において、前記表示領域がチェックボックスである、情報端末の第6の表示方法が提供される。
【0116】
また、第2の表示方法において、前記第1のインスタンスまたは/および前記第2のインスタンスを強調して表示することは、前記第1のインスタンスまたは/および前記第2のインスタンスを文字列に表示する際のフォントの変更により行われることを特徴とする、情報端末の第7の表示方法が提供される。
【0117】
また、別の観点として、第1の実体と第2の実体との間のリレーションシップを格納するデータベースと、第1のペインと第2のペインを表示するとともに、前記第1のペイン中に前記第1の実体に属する第1のインスタンス群からなる第1のリストを表示し、前記第2のペイン中には前記第2の実体に属する第2のインスタンス群からなる第2のリストを表示する第1表示手段と、前記第1のインスタンス群から1または複数の第1の特定インスタンスが選択されると、前記データベース中を検索し、前記第2のインスタンス群の各々について、前記第1の特定インスタンスとのリレーションシップ表示する第2の表示手段と、前記第2のインスタンス群から1または複数の第3の特定インスタンスが選択されると、前記データベース中を検索し、前記第1のインスタンス群の各々について、前記第3の特定インスタンスとのリレーションシップを表示する第3の表示手段と、を有する第14のデータベースシステムが提供される
【0118】
また、第1の実体と第2の実体との間のリレーションシップを格納するデータベースと、
第1のペインと第2のペインを表示するとともに、前記第1のペイン中に前記第1の実体
に属する第1のインスタンス群からなる第1のリストを表示し、前記第2のペイン中には
前記第2の実体に属する前記第2のインスタンス群からなる第2のリストを表示する第1
表示手段とからなる情報端末の表示方法において、前記第1のインスタンス群から1または複数の第1の特定インスタンスが選択されると、前記データベース中を検索し、前記第2のインスタンス群の各々について、前記第1の特定インスタンスとのリレーションシップを表示し、前記第2のインスタンス群から1または複数の第3の特定インスタンスが選択されると、前記データベース中を検索し、前記第1のインスタンス群の各々について、前記第3の特定インスタンスとのリレーションシップを表示することを特徴とする情報端末の第8の表示方法が提供される。
【0119】
また、第1の実体と第2の実体との間のリレーションシップを格納するデータベースと、
第1のペインと第2のペインを表示するとともに、前記第1のペイン中に前記第1の実体
に属する第1のインスタンス群からなる第1のリストを表示し、前記第2のペイン中には
前記第2の実体に属する第2のインスタンス群からなる第2のリストを表示する第1表示
手段と、前記第1のインスタンス群から第1の特定インスタンス及び第2の特定インスタンスが選択されると、前記データベース中を検索し、前記第2のインスタンス群に含まれる、前記第1の特定インスタンスと前記第2の特定インスタンスに第1の所定の条件で第1のリレーションシップを持つ第3の特定インスタンスについて、前記第1の特定インスタンスおよび前記第2の特定インスタンスとの前記第1のリレーションシップを第1の形態で表示するとともに、前記第1の特定インスタンスと前記第2の特定インスタンスに第2の所定の条件で第2のリレーションシップを持つ第4の特定インスタンスについて、前記第1の特定インスタンスおよび前記第2の特定インスタンスとの前記第2のリレーションシップを第2の形態で表示する第2の表示手段と、を有する第15のデータベースシステムが提供される。
【0120】
また、第1の実体と第2の実体との間のリレーションシップを格納するデータベースと、第1のペインと第2のペインを表示するとともに、前記第1のペイン中に前記第1の実体に属する第1のインスタンス群からなる第1のリストを表示し、前記第2のペイン中には前記第2の実体に属する第2のインスタンス群からなる第2のリストを表示する第1表示手段と、前記第1のインスタンス群から1または複数の第1の特定インスタンスが選択されると、前記データベース中を検索し、前記第2のインスタンス群の各々について、前記第1の特定インスタンスとのリレーションシップを表示する第2の表示手段とからなり、前記第1のインスタンス群から1または複数の前記第1の特定インスタンスが選択され、かつ前記第2の表示手段によって表示された、前記第1の特定インスタンスと前記第2のインスタンス群の各々とのリレーションシップのうちの1または複数の任意のリレーションシップを選択すると、前記任意のリレーションシップが前記データベースより削除されることを特徴とする第16のデータベースシステムが提供される。
【0121】
また、第1の実体と第2の実体との間のリレーションシップを格納するデータベースと、第1のペインと第2のペインを表示するとともに、前記第1のペイン中に前記第1の実体に属する第1のインスタンス群からなる第1のリストを表示し、前記第2のペイン中には前記第2の実体に属する第2のインスタンス群からなる第2のリストを表示する第1表示手段と、前記第1のインスタンス群から1または複数の第1の特定インスタンスが選択されると、前記データベース中を検索し、前記第2のインスタンス群の各々について、前記第1の特定インスタンスとのリレーションシップを表示する第2の表示手段とからなり、前記第2のインスタンス群のなかで前記第1の特定インスタンスとのリレーションシップが前記データベースに存在しない第3の特定インスタンスを選択すると、前記第1の特定インスタンスと前記第3の特定インスタンスとのリレーションシップが前記データベースに追加されることを特徴とする第17のデータベースシステムが提供される。
【図面の簡単な説明】
【0122】
【図1a】多対多のリレーションシップの一例を表す図である。
【図1b】多対多のリレーションシップの一例を表す図である。
【図2】正規化後の一対多のリレーションシップの一例を表すER図である。
【図3】従来の方法による多対多のリレーションシップの表示画面の一例の説明図である。
【図4】従来の方法による一対多のリレーションシップの表示画面の一例の説明図である。
【図5】従来の方法による逆方向一対多のリレーションシップの一例を表す図である。
【図6】本願発明による情報端末の構成要素の説明図である。
【図7】本願発明の各ステップの概要を説明するフロー図である。
【図8】データベース選択画面の説明図である。
【図9a】本願発明による多対多のリレーションシップの表示画面の説明図である。
【図9b】本願発明による多対多のリレーションシップの表示画面の説明図である。
【図10】本願発明による逆方向多対多のリレーションシップの表示画面の説明図である。
【図11】本願発明による多対多のリレーションシップの追加方法の説明図である。
【図12】本願発明による多対多のリレーションシップの削除方法の説明図である。
【図13】インスタンス選択の詳細ステップを説明するフロー図である。
【図14】リレーションシップ表示の詳細ステップを説明するフロー図である。
【図15】リレーションシップ表示の詳細ステップを説明するフロー図である。
【図16】リレーションシップ変更表示の詳細ステップを説明するフロー図である。
【図17】リレーションシップ追加の詳細ステップを説明するフロー図である。
【図18】リレーションシップ削除の詳細ステップを説明するフロー図である。
【図19a】本願発明の情報開示表示および制御への応用を説明する図である。
【図19b】本願発明の情報開示表示および制御への応用を説明する図である。
【図20】ツリー構造の分類を説明する図である。
【図21】ツリー構造の分類を使い検索対象を絞り込む方法の説明図である。
【図22】タグ付けによる分類を説明する図である。
【図23a】本願発明による検索対象絞り込みの説明図である。
【図23b】本願発明による検索対象絞り込みの説明図である。
【図23c】本願発明による検索対象絞り込みの説明図である。
【図24】本願発明による検索対象絞り込みの説明図である。
【図25a】本願発明による検索対象分類方法の説明図である。
【図25b】本願発明による検索対象分類方法の説明図である。
【符号の説明】
【0123】
615 多対多RMSウィンドウ
618 カーソル
81 ペイン
83 ペイン
84 サブペイン
96 チェックボックス
【特許請求の範囲】
【請求項1】
第1の実体に属する複数の第1のインスタンスと第2の実体に属する複数の第2のインスタンスとの間に存在する一または複数のリレーションシップを格納するデータベースと、
前記複数の第1のインスタンスの中から一または複数の前記第1のインスタンスが選択されると、前記データベースを検索し、前記複数の第2のインスタンスの各々について、選択された前記一または複数の前記第1のインスタンスとの間に存在する第1のリレーションシップを求め、前記複数の第2のインスタンスから一または複数の前記第2のインスタンスが選択されると、前記データベースを検索し、前記複数の第1のインスタンスの各々について、選択された前記一または複数の前記第2のインスタンスとの間に存在する第2のリレーションシップを求めるマイクロプロセッサと、
第1のペインと第2のペインを表示する表示装置であって、前記複数の第1のインスタンスを含む第1のリストを前記第1のペイン中に表示し、前記複数の第2のインスタンスを含む第2のリストを前記第2のペイン中に表示し、前記第1のリレーションシップまたは前記第2のリレーションシップを前記第1のペイン及び前記第2のペインに表示する表示装置と、
を有することを特徴とするデータベースシステム。
【請求項2】
前記表示装置は、前記第1のリレーションシップまたは前記第2のリレーションシップを表示する際に、前記第1のリレーションシップまたは前記第2のリレーションシップが存在する前記第1のインスタンスまたは/および前記第2のインスタンスの強調表示を行うことを特徴とする請求項1に記載のデータベースシステム。
【請求項3】
前記表示装置は、前記選択された前記一または複数の前記第1のインスタンスとの間に前記第1のリレーションシップが存在する前記第2のインスタンスを強調表示し、前記選択された前記一または複数の前記第2のインスタンスとの間に前記第2のリレーションシップが存在する前記第1のインスタンスを強調表示することを特徴とする請求項2に記載のデータベースシステム。
【請求項4】
前記表示装置は、前記第1のインスタンスまたは前記第2のインスタンスの前記強調表示を行う場合、前記第1のインスタンスまたは前記第2のインスタンスとともに、内部にマークを表示可能な表示領域を表示し、前記第1のインスタンスまたは前記第2のインスタンスの強調表示は、前記表示領域内にマークを表示することにより行うことを特徴とする請求項3に記載のデータベースシステム。
【請求項5】
前記表示領域内に表示される前記マークは、前記強調表示が行われる前記第1のインスタンスとの間に前記第2のリレーションシップが存在する前記第2のインスタンスまたは前記強調表示が行われる前記第2のインスタンスとの間に前記第1のリレーションシップが存在する前記第1のインスタンスの数に応じて変化することを特徴とする請求項4に記載のデータベースシステム。
【請求項6】
前記表示領域がチェックボックスであることを特徴とする請求項4に記載のデータベースシステム。
【請求項7】
前記強調表示は、前記第1のインスタンスまたは/および前記第2のインスタンスを文字列により表示する際のフォントの変更により行われることを特徴とする請求項2に記載のデータベースシステム。
【請求項8】
前記マイクロプロセッサは、前記第1のペインに表示された前記複数の第1のインスタンスから一または複数の前記第1のインスタンスが選択され、かつ前記第2のペインに表示された前記複数の第2のインスタンスから一または複数の前記第2のインスタンスが選択されると、選択された前記一または複数の前記第1のインスタンスの各々と選択された前記一または複数の前記第2のインスタンスの各々との間に存在する前記リレーションシップを前記データベースより削除することを特徴とする請求項1に記載のデータベースシステム。
【請求項9】
前記マイクロプロセッサは、前記複数の第1のインスタンスから一または複数の前記第1のインスタンスが選択された状態において、前記第2のペインに表示された前記複数の第2のインスタンスから一または複数の前記第2のインスタンスが選択されると、選択された前記一または複数の前記第1のインスタンスの各々と選択された前記一または複数の前記第2のインスタンスの各々との間に前記リレーションシップを前記データベースに格納することを特徴とする請求項1に記載のデータベースシステム。
【請求項10】
前記マイクロプロセッサは、選択された前記一または複数の前記第1のインスタンスの各々と選択された前記一または複数の前記第2のインスタンスの各々とのうち、前記データベースにリレーションシップが格納されていない場合に、前記第1のインスタンスと前記第2のインスタンスとの組み合わせを前記データベースに格納することを特徴とする請求項9に記載のデータベースシステム。
【請求項11】
前記第1の実体に属する複数の第1のインスタンスは階層構造を成しており、前記第1のインスタンスと前記第2のインスタンスとの間にリレーションシップが存在すれば、前記階層構造において前記第1のインスタンスの上位の第1のインスタンスと前記第2のインスタンスとの間にもリレーションシップが存在することを特徴とする請求項1に記載のデータベースシステム。
【請求項12】
第1の実体に属する複数の第1のインスタンスと第2の実体に属する複数の第2のインスタンスとの間に存在する一または複数のリレーションシップを格納するデータベースと、
前記複数の第1のインスタンスから第3のインスタンス及び第4のインスタンスが選択されると、前記複数の第2のインスタンスのうち、前記第3のインスタンスと前記第4のインスタンスに第1の所定の条件で第1のリレーションシップが存在する一または複数の第5のインスタンスを前記データベースより検索し、前記複数の第2のインスタンスのうち、前記第3のインスタンスと前記第4のインスタンスに第2の所定の条件で第2のリレーションシップが存在する一または複数の第6のインスタンスを前記データベースより検索するマイクロプロセッサと、
第1のペインと第2のペインを表示する表示装置であって、前記複数の第1のインスタンスを含む第1のリストを前記第1のペイン中に表示し、前記複数の第2のインスタンスを含む第2のリストを前記第2のペイン中に表示し、前記第3のインスタンスおよび前記第4のインスタンスと前記第5のインスタンスとの間に存在する前記第1のリレーションシップを第1の形態で表示し、前記第3のインスタンスおよび前記第4のインスタンスと前記第6のインスタンスとのに存在する前記第2のリレーションシップを第2の形態で表示する表示装置と、
を有するデータベースシステム。
【請求項13】
前記マイクロプロセッサは、前記複数の第2のインスタンスから前記一または複数の第5のインスタンスとして、前記第3のインスタンスと前記第4のインスタンスとの両方の間に前記リレーションシップが存在するインスタンスを検索し、前記複数の第2のインスタンスから前記一または複数の第6のインスタンスとして、前記第3のインスタンスと前記第4のインスタンスとのどちらか一方の間に前記リレーションシップが存在するインスタンスを検索する請求項12に記載のデータベースシステム。
【請求項14】
第1の実体に属する複数の第1のインスタンスと第2の実体に属する複数の第2のインスタンスとの間に存在する一または複数のリレーションシップを格納するデータベースと、
第1のペインと第2のペインを表示し、前記第1のペイン中に前記複数の第1のインスタンスを含む第1のリストを表示し、前記第2のペイン中に前記複数の第2のインスタンスを含む第2のリストを表示する表示装置とを有する情報端末の表示方法において、
前記複数の第1のインスタンスから一または複数の第1のインスタンスが選択されると、前記データベースを検索し、前記複数の第2のインスタンスの各々について、選択された前記一または複数の前記第1のインスタンスとの間に存在する第1のリレーションシップを求め、前記第1のリレーションシップを前記表示装置に表示し、
前記複数の第2のインスタンスから一または複数の第2のインスタンスが選択されると、前記データベースを検索し、前記複数の第1のインスタンスの各々について、選択された前記一または複数の前記第2のインスタンスとの間に存在する第2のリレーションシップを求め、前記第2のリレーションシップを前記表示装置に表示することを特徴とする情報端末の表示方法。
【請求項15】
前記第1のリレーションシップまたは前記第2のリレーションシップの表示は、前記第1のリレーションシップまたは前記第2のリレーションシップが存在する前記第1のインスタンスまたは/および前記第2のインスタンスを強調して表示することを特徴とする請求項14に記載の、情報端末の表示方法。
【請求項16】
前記第1のリレーションシップまたは前記第2のリレーションシップの表示は、前記選択された前記一または複数の前記第1のインスタンスとの間に前記第1のリレーションシップが存在する前記第2のインスタンスを強調表示し、前記選択された前記一または複数の前記第2のインスタンスとの間に前記第2のリレーションシップが存在する前記第1のインスタンスを強調表示することを特徴とする請求項15に記載の、情報端末の表示方法。
【請求項17】
前記第1のインスタンスまたは前記第2のインスタンスの強調表示を行う場合、前記第1のインスタンスまたは前記第2のインスタンスとともに、内部にマークを表示可能な表示領域を表示し、前記第1のインスタンスまたは前記第2のインスタンスの強調表示は、前記表示領域内にマークを表示することにより行うことを特徴とする請求項16に記載の、情報端末の表示方法。
【請求項18】
前記表示領域内に表示される前記マークを、前記強調表示が行われる前記第1のインスタンスとの間に前記第2のリレーションシップが存在する前記第2のインスタンスまたは前記強調表示が行われる前記第2のインスタンスとの間に前記第1のリレーションシップが存在する前記第1のインスタンスの数に応じて変化させることを特徴とする請求項17に記載の、情報端末の表示方法。
【請求項19】
前記表示領域がチェックボックスである請求項17に記載の、情報端末の表示方法。
【請求項20】
前記第1のインスタンスまたは/および前記第2のインスタンスを強調して表示することは、前記第1のインスタンスまたは/および前記第2のインスタンスを文字列に表示する際のフォントの変更により行われることを特徴とする請求項15に記載の、情報端末の表示方法。
【請求項1】
第1の実体に属する複数の第1のインスタンスと第2の実体に属する複数の第2のインスタンスとの間に存在する一または複数のリレーションシップを格納するデータベースと、
前記複数の第1のインスタンスの中から一または複数の前記第1のインスタンスが選択されると、前記データベースを検索し、前記複数の第2のインスタンスの各々について、選択された前記一または複数の前記第1のインスタンスとの間に存在する第1のリレーションシップを求め、前記複数の第2のインスタンスから一または複数の前記第2のインスタンスが選択されると、前記データベースを検索し、前記複数の第1のインスタンスの各々について、選択された前記一または複数の前記第2のインスタンスとの間に存在する第2のリレーションシップを求めるマイクロプロセッサと、
第1のペインと第2のペインを表示する表示装置であって、前記複数の第1のインスタンスを含む第1のリストを前記第1のペイン中に表示し、前記複数の第2のインスタンスを含む第2のリストを前記第2のペイン中に表示し、前記第1のリレーションシップまたは前記第2のリレーションシップを前記第1のペイン及び前記第2のペインに表示する表示装置と、
を有することを特徴とするデータベースシステム。
【請求項2】
前記表示装置は、前記第1のリレーションシップまたは前記第2のリレーションシップを表示する際に、前記第1のリレーションシップまたは前記第2のリレーションシップが存在する前記第1のインスタンスまたは/および前記第2のインスタンスの強調表示を行うことを特徴とする請求項1に記載のデータベースシステム。
【請求項3】
前記表示装置は、前記選択された前記一または複数の前記第1のインスタンスとの間に前記第1のリレーションシップが存在する前記第2のインスタンスを強調表示し、前記選択された前記一または複数の前記第2のインスタンスとの間に前記第2のリレーションシップが存在する前記第1のインスタンスを強調表示することを特徴とする請求項2に記載のデータベースシステム。
【請求項4】
前記表示装置は、前記第1のインスタンスまたは前記第2のインスタンスの前記強調表示を行う場合、前記第1のインスタンスまたは前記第2のインスタンスとともに、内部にマークを表示可能な表示領域を表示し、前記第1のインスタンスまたは前記第2のインスタンスの強調表示は、前記表示領域内にマークを表示することにより行うことを特徴とする請求項3に記載のデータベースシステム。
【請求項5】
前記表示領域内に表示される前記マークは、前記強調表示が行われる前記第1のインスタンスとの間に前記第2のリレーションシップが存在する前記第2のインスタンスまたは前記強調表示が行われる前記第2のインスタンスとの間に前記第1のリレーションシップが存在する前記第1のインスタンスの数に応じて変化することを特徴とする請求項4に記載のデータベースシステム。
【請求項6】
前記表示領域がチェックボックスであることを特徴とする請求項4に記載のデータベースシステム。
【請求項7】
前記強調表示は、前記第1のインスタンスまたは/および前記第2のインスタンスを文字列により表示する際のフォントの変更により行われることを特徴とする請求項2に記載のデータベースシステム。
【請求項8】
前記マイクロプロセッサは、前記第1のペインに表示された前記複数の第1のインスタンスから一または複数の前記第1のインスタンスが選択され、かつ前記第2のペインに表示された前記複数の第2のインスタンスから一または複数の前記第2のインスタンスが選択されると、選択された前記一または複数の前記第1のインスタンスの各々と選択された前記一または複数の前記第2のインスタンスの各々との間に存在する前記リレーションシップを前記データベースより削除することを特徴とする請求項1に記載のデータベースシステム。
【請求項9】
前記マイクロプロセッサは、前記複数の第1のインスタンスから一または複数の前記第1のインスタンスが選択された状態において、前記第2のペインに表示された前記複数の第2のインスタンスから一または複数の前記第2のインスタンスが選択されると、選択された前記一または複数の前記第1のインスタンスの各々と選択された前記一または複数の前記第2のインスタンスの各々との間に前記リレーションシップを前記データベースに格納することを特徴とする請求項1に記載のデータベースシステム。
【請求項10】
前記マイクロプロセッサは、選択された前記一または複数の前記第1のインスタンスの各々と選択された前記一または複数の前記第2のインスタンスの各々とのうち、前記データベースにリレーションシップが格納されていない場合に、前記第1のインスタンスと前記第2のインスタンスとの組み合わせを前記データベースに格納することを特徴とする請求項9に記載のデータベースシステム。
【請求項11】
前記第1の実体に属する複数の第1のインスタンスは階層構造を成しており、前記第1のインスタンスと前記第2のインスタンスとの間にリレーションシップが存在すれば、前記階層構造において前記第1のインスタンスの上位の第1のインスタンスと前記第2のインスタンスとの間にもリレーションシップが存在することを特徴とする請求項1に記載のデータベースシステム。
【請求項12】
第1の実体に属する複数の第1のインスタンスと第2の実体に属する複数の第2のインスタンスとの間に存在する一または複数のリレーションシップを格納するデータベースと、
前記複数の第1のインスタンスから第3のインスタンス及び第4のインスタンスが選択されると、前記複数の第2のインスタンスのうち、前記第3のインスタンスと前記第4のインスタンスに第1の所定の条件で第1のリレーションシップが存在する一または複数の第5のインスタンスを前記データベースより検索し、前記複数の第2のインスタンスのうち、前記第3のインスタンスと前記第4のインスタンスに第2の所定の条件で第2のリレーションシップが存在する一または複数の第6のインスタンスを前記データベースより検索するマイクロプロセッサと、
第1のペインと第2のペインを表示する表示装置であって、前記複数の第1のインスタンスを含む第1のリストを前記第1のペイン中に表示し、前記複数の第2のインスタンスを含む第2のリストを前記第2のペイン中に表示し、前記第3のインスタンスおよび前記第4のインスタンスと前記第5のインスタンスとの間に存在する前記第1のリレーションシップを第1の形態で表示し、前記第3のインスタンスおよび前記第4のインスタンスと前記第6のインスタンスとのに存在する前記第2のリレーションシップを第2の形態で表示する表示装置と、
を有するデータベースシステム。
【請求項13】
前記マイクロプロセッサは、前記複数の第2のインスタンスから前記一または複数の第5のインスタンスとして、前記第3のインスタンスと前記第4のインスタンスとの両方の間に前記リレーションシップが存在するインスタンスを検索し、前記複数の第2のインスタンスから前記一または複数の第6のインスタンスとして、前記第3のインスタンスと前記第4のインスタンスとのどちらか一方の間に前記リレーションシップが存在するインスタンスを検索する請求項12に記載のデータベースシステム。
【請求項14】
第1の実体に属する複数の第1のインスタンスと第2の実体に属する複数の第2のインスタンスとの間に存在する一または複数のリレーションシップを格納するデータベースと、
第1のペインと第2のペインを表示し、前記第1のペイン中に前記複数の第1のインスタンスを含む第1のリストを表示し、前記第2のペイン中に前記複数の第2のインスタンスを含む第2のリストを表示する表示装置とを有する情報端末の表示方法において、
前記複数の第1のインスタンスから一または複数の第1のインスタンスが選択されると、前記データベースを検索し、前記複数の第2のインスタンスの各々について、選択された前記一または複数の前記第1のインスタンスとの間に存在する第1のリレーションシップを求め、前記第1のリレーションシップを前記表示装置に表示し、
前記複数の第2のインスタンスから一または複数の第2のインスタンスが選択されると、前記データベースを検索し、前記複数の第1のインスタンスの各々について、選択された前記一または複数の前記第2のインスタンスとの間に存在する第2のリレーションシップを求め、前記第2のリレーションシップを前記表示装置に表示することを特徴とする情報端末の表示方法。
【請求項15】
前記第1のリレーションシップまたは前記第2のリレーションシップの表示は、前記第1のリレーションシップまたは前記第2のリレーションシップが存在する前記第1のインスタンスまたは/および前記第2のインスタンスを強調して表示することを特徴とする請求項14に記載の、情報端末の表示方法。
【請求項16】
前記第1のリレーションシップまたは前記第2のリレーションシップの表示は、前記選択された前記一または複数の前記第1のインスタンスとの間に前記第1のリレーションシップが存在する前記第2のインスタンスを強調表示し、前記選択された前記一または複数の前記第2のインスタンスとの間に前記第2のリレーションシップが存在する前記第1のインスタンスを強調表示することを特徴とする請求項15に記載の、情報端末の表示方法。
【請求項17】
前記第1のインスタンスまたは前記第2のインスタンスの強調表示を行う場合、前記第1のインスタンスまたは前記第2のインスタンスとともに、内部にマークを表示可能な表示領域を表示し、前記第1のインスタンスまたは前記第2のインスタンスの強調表示は、前記表示領域内にマークを表示することにより行うことを特徴とする請求項16に記載の、情報端末の表示方法。
【請求項18】
前記表示領域内に表示される前記マークを、前記強調表示が行われる前記第1のインスタンスとの間に前記第2のリレーションシップが存在する前記第2のインスタンスまたは前記強調表示が行われる前記第2のインスタンスとの間に前記第1のリレーションシップが存在する前記第1のインスタンスの数に応じて変化させることを特徴とする請求項17に記載の、情報端末の表示方法。
【請求項19】
前記表示領域がチェックボックスである請求項17に記載の、情報端末の表示方法。
【請求項20】
前記第1のインスタンスまたは/および前記第2のインスタンスを強調して表示することは、前記第1のインスタンスまたは/および前記第2のインスタンスを文字列に表示する際のフォントの変更により行われることを特徴とする請求項15に記載の、情報端末の表示方法。
【図1a】
【図1b】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図20】
【図21】
【図22】
【図9a】
【図9b】
【図19a】
【図19b】
【図23a】
【図23b】
【図23c】
【図24】
【図25a】
【図25b】
【図1b】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図20】
【図21】
【図22】
【図9a】
【図9b】
【図19a】
【図19b】
【図23a】
【図23b】
【図23c】
【図24】
【図25a】
【図25b】
【公開番号】特開2008−310800(P2008−310800A)
【公開日】平成20年12月25日(2008.12.25)
【国際特許分類】
【出願番号】特願2008−110564(P2008−110564)
【出願日】平成20年4月21日(2008.4.21)
【出願人】(506183731)リプレックス株式会社 (20)
【Fターム(参考)】
【公開日】平成20年12月25日(2008.12.25)
【国際特許分類】
【出願日】平成20年4月21日(2008.4.21)
【出願人】(506183731)リプレックス株式会社 (20)
【Fターム(参考)】
[ Back to top ]