(57)【特許請求の範囲】
【請求項１】
データベース内の複数のデータテーブルを示すデータベースマップを生成するための、コンピューター実施方法であって、
前記データベースから、前記複数のデータテーブルのリストを取得する動作と、
前記複数のデータテーブルの第１のデータテーブルに対応する第１のタイルの、前記データベースマップにおける相対的なサイズおよび位置を決定する動作であって、前記第１のタイルは多角形からなり、前記第１のタイルの前記位置は、前記第１のタイルの少なくとも１つの縁部または隅部が、前記第１のデータテーブルに関係する前記複数のデータテーブルの別のものに対応する、前記データベースマップ内の第２のタイルに隣接するように決定される、動作と、
ユーザーインターフェースにおいて前記データベースマップを表示する動作であって、前記ユーザーインターフェースは、前記第１のタイルに対応する前記第１のデータテーブルに含まれたデータを現すために、ユーザーが前記データベースマップをナビゲートおよびズームすることを可能にする、１つまたは複数の制御部を備える、動作と
を行うための実行命令をコンピューターシステムが実行する、方法。
【請求項２】
前記第１のタイルの相対的な幅は、前記データベース内における前記第１のデータテーブルと他のデータテーブルと間の関係の数に対応し、前記第１のタイルの相対的な高さは、前記第１のデータテーブルに含まれたレコードの数に対応する、請求項１に記載のコンピューター実施方法。
【請求項３】
前記多角形が、正方形または直立した矩形の１つからなる、請求項１又は２に記載のコンピューター実施方法。
【請求項４】
関係の数が最も大きな前記データテーブルに対応するタイルは、前記データベースマップの中心近くに配置される、請求項１〜３のいずれか一項に記載のコンピューター実施方法。
【請求項５】
コンピューター実行可能命令を記憶したコンピューター可読記憶媒体であって、前記命令は、コンピューターによって実行されたときに、
データベースからデータテーブルのリストを取得することと、
前記リスト内の各データテーブルに対する関係の数に従ってデータテーブルの前記リストを順序付けすることと、
データテーブルの前記リスト内で最も大きな関係の数を有する第１のデータテーブルに対応する第１のタイルを、データベースマップの最新レイアウトに配置することと、
データテーブルの前記リスト内の次のデータテーブルに対応する新しいタイルを含む、前記データベースマップの可能なレイアウトのリストを生成することであって、可能なレイアウトの前記リスト内の各可能なレイアウトは、前記新しいタイルを配置する場所を生成するように分割された、１つの既存のタイルを有する前記最新レイアウトを備える、生成することと、
可能なレイアウトの前記リスト内の前記可能なレイアウトのそれぞれに対するエネルギーを計算することと、
前記データベースマップの前記最新レイアウトとして、最も大きなエネルギーを有する前記可能なレイアウトを、前記可能なレイアウトのリストから選択することと、
前記データベースマップ内に対応するタイルを配置するためのデータテーブルが、データテーブルの前記リスト内にまだほかにあるかどうかを判定することと、
前記データベースマップ内に対応するタイルを配置するためのデータテーブルが、データテーブルの前記リスト内にまだほかにあると判定されるとすぐに、前記データベースマップ内に対応するタイルを配置するためのデータテーブルが、データテーブルの前記リスト内にほかになくなるまで前記生成すること、計算すること、および選択することの動作を繰り返すことと
を前記コンピューターに行わせる、コンピューター可読記憶媒体。
【請求項６】
前記可能なレイアウトのそれぞれに対する前記エネルギーを計算することが、前記データベースマップ内の各タイルの縁部であって、前記データベース内において前記タイルに対応するデータテーブルが関係する前記データテーブルに対応する別のタイルに接する、縁部に沿った単位の総数を求めることを含む、請求項５に記載のコンピューター可読記憶媒体。
【請求項７】
可能なレイアウト内の既存のタイルを、２つの正方形タイルを結果として生じるように水平に分割、または２つの直立した矩形を結果として生じるように垂直に分割することができる、請求項５又は６に記載のコンピューター可読記憶媒体。
【請求項８】
データベースからデータベースマップを生成するシステムであって、
コンピューターと、
前記コンピューター上で実行するデータベース視覚化モジュールであって、
前記データベースからデータテーブルのリストを取得すること、
前記リスト内の各データテーブルに対する関係の数に従ってデータテーブルの前記リストを順序付けすること、
データテーブルの前記リスト内の各データテーブルに対応するタイルに対する相対的なサイズを計算すること、
前記データベースマップの最新レイアウトの中心に、データテーブルの前記リスト内で最も大きな関係の数を有する第１のデータテーブルに対応する前記タイルを配置すること、
データテーブルの前記リスト内の次のデータテーブルに対応する前記タイルを含む、前記データベースマップの可能なレイアウトのリストを生成することであって、可能なレイアウトの前記リスト内の各可能なレイアウトは、前記タイルが、前記最新レイアウト内の既存のタイルの縁部および隅部上に配置された複数のスロットのうちの１つに適合する前記次のデータテーブルに対応する前記最新レイアウトを備える、生成すること、
可能なレイアウトの前記リスト内の可能なレイアウトのそれぞれに対するエネルギーを計算すること、
前記データベースマップの前記最新レイアウトとして、最も大きなエネルギーを有する前記可能なレイアウトを、可能なレイアウトの前記リストから選択すること、
前記データベースマップ内に対応するタイルを配置するためのデータテーブルが、データテーブルの前記リスト内にまだほかにあるかどうかを判定すること、ならびに
前記データベースマップ内に対応するタイルを配置するためのデータテーブルが、データテーブルの前記リスト内にまだほかにあると判定されるとすぐに、前記データベースマップ内に対応するタイルを配置するためのデータテーブルが、データテーブルの前記リスト内にほかになくなるまで前記生成すること、計算すること、および選択することの動作を繰り返すことを
行うように構成された、データベース視覚化モジュールと
を備えるシステム。
【請求項９】
前記可能なレイアウトのそれぞれに対する前記エネルギーを計算することが、前記次のデータテーブルに対応する前記タイルの中心と、前記データベース内において前記次のデータテーブルが関係するデータテーブルに対応するタイルとの間の、距離の逆数の合計を計算することを含む、請求項８に記載のシステム。
【請求項１０】
タイルの相対的な幅は、前記データベース内における前記対応するデータテーブルと、
他のデータテーブルとの間の関係の数から計算され、前記タイルの相対的な高さは前記対応するデータテーブルに含まれたレコードの数から計算される、請求項８又は９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リレーショナルデータベースを視覚化するマップに基づく方法に関する。
【背景技術】
【０００２】
[0001]リレーショナルデータベースは、データが、財務記録、医療記録、個人情報、ならびに製造および物流データなどの現実世界の項目にマップする、業務アプリケーションのデータ記憶機構を実現するためにしばしば用いられる。初心者のユーザーとっても、リレーショナルデータベースは、視覚化および理解するのが難しいものである場合がある。リレーショナルデータベースを探索および照会する従来の形は、個々のテーブルのビューに重点が置かれる。リレーショナルデータベースがますます常態化するのに従って、テーブルの数が増加し、各テーブル内の人間が読める列の数が減少し、隔離されたいずれかのテーブルを見ることによってデータベースを理解することがより難しくなり得る。
【０００３】
[0002]従来のデータベース視覚化ツールは、リレーショナルデータベース内のすべてのテーブルを、それらのテーブルがどのように関係するかということと共に示す、エンティティ関係（ｅｎｔｉｔｙ−ｒｅｌａｔｉｏｎｓｈｉｐ：「ＥＲ」）図などの図をユーザーが生成することを可能にすることができる。テーブルはスキーマを含んだ箱として描かれ、テーブル間の関係は箱を接続する線として示される。線上またはそれらの端点上のマーカーは、接続されたテーブルが共有する関係の種類を示すことができる。しかし、これらの図は、中程度の大きさのリレーショナルデータベースでさえも理解するのに複雑すぎる場合がある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
リレーショナルデータベースを視覚化するマップに基づく方法を提供する。
【課題を解決するための手段】
【０００５】
[0003]上記の考察およびその他について、本明細書に本開示が示される。
[0004]本明細書では、リレーショナルデータベースの視覚的マップを生成し操作する技術が述べられる。本明細書で述べられる技術を利用することにより、リレーショナルデータベース内のテーブルをデータベースマップとして視覚的に表現する、データベース視覚化に対する新奇な隠喩（novel metaphor）を実現することができる。データベースマップは、データベース内の互いに関係するテーブルが、データベースマップにおいてできるだけ互いに接近して現れるように生成することができる。このようにして密に接続されたまたは関係付けられたテーブルのグループを諸領域内に一緒に表示することができる。これは、一般に表面上にテーブルを手動で配置することをユーザーに強制する、あるいはアルファベット順または他の単純なメトリックに基づく既定の配置を有する従来のＥＲ図に対して改善をもたらすことができる。
【０００６】
[0005]さらにテーブルは始めに、テーブルの名前および／または他の文字ラベルを含んだタイルとして視覚化されるが、ユーザーにはデータベース内のテーブルの内容を探索するために、データベースマップを探索、検索、およびズームする機能が提供される。このようにしてユーザーに示される最初のビューは、オブジェクトおよびそれらの関係の仕方についての高レベルの概観をもたらし、一方、ユーザーが望むように、それらの下にあるデータをユーザーが明らかにすることを可能にする。これは、しばしば示される詳細が多すぎて全体像を把握することが困難である従来のＥＲ図に対する別の改善をもたらすことができる。
【０００７】
[0006]実施形態によれば、データベースからデータテーブルのリストが取得され、各データテーブルに対する関係の数に従って順序付けされる。リスト内の各データテーブルに対応するタイルを含んだデータベースマップが生成され、関係するデータテーブルに対応するタイルは、可能な場合はタイルの少なくとも１つの縁部または隅部に沿って隣接する。各タイルの表示属性は、対応するデータテーブルの特性を反映するように調整することができる。次いでデータベースマップはユーザーインターフェースにおいてユーザーに表示することができ、表示されたタイルに対応するデータテーブルに含まれたデータを現すように、ユーザーがユーザーインターフェースにおいてデータベースマップをナビゲートおよびズームすることを可能にする制御部が設けられる。
【０００８】
[0007]上述の主題は、コンピューターによって制御される装置、コンピュータープロセス、コンピューティングシステムとして、またはコンピューター可読媒体などの製品として実施できることが理解されるべきである。これらおよび様々な他の特徴は、以下の「発明を実施するための形態」および関連する図面の概説を読むことにより明らかになるであろう。
【０００９】
[0008]この「発明の概要」は、以下の「発明を実施するための形態」でさらに詳しく述べられる選ばれた概念を簡略化した形で紹介するために示される。この「発明の概要」は、特許請求される主題の主要な特徴または本質的な特徴を特定するものではなく、特許請求される主題の範囲を限定するためにこの「発明の概要」が用いられることを意図するものでもない。さらに特許請求される主題は、本開示のいずれかの部分において記載されたいずれかまたはすべての不利点を解決する実装形態に限定されない。
【図面の簡単な説明】
【００１０】
【図１】[0009]本明細書に示される実施形態によってもたらされる例示の動作環境およびいくつかのソフトウェアコンポーネントの態様を示すブロック図である。
【図２Ａ】[0010]本明細書で述べられる実施形態による、リレーショナルデータベースのデータベースマップを表示しナビゲートするための例示のユーザーインターフェースを示す画面の図である。
【図２Ｂ】本明細書で述べられる実施形態による、リレーショナルデータベースのデータベースマップを表示しナビゲートするための例示のユーザーインターフェースを示す画面の図である。
【図２Ｃ】本明細書で述べられる実施形態による、リレーショナルデータベースのデータベースマップを表示しナビゲートするための例示のユーザーインターフェースを示す画面の図である。
【図３】[0011]本明細書で述べられる実施形態による、「空間分割（space-dividing）」レイアウトを用いてリレーショナルデータベースのデータベースマップを生成する１つの方法を示すフロー図である。
【図４】[0012]本明細書で述べられる実施形態による、例示のリレーショナルデータベース内のいくつかのテーブルを、テーブル間の関係と共に示すＥＲ図である。
【図５Ａ】[0013]本明細書で述べられる実施形態による、空間分割レイアウトを用いたリレーショナルデータベースのデータベースマップの生成に関する他の詳細を示すブロック図である。
【図５Ｂ】本明細書で述べられる実施形態による、空間分割レイアウトを用いたリレーショナルデータベースのデータベースマップの生成に関する他の詳細を示すブロック図である。
【図６】[0014]本明細書で述べられる実施形態による、「縁部接着（edge-adhesion）」レイアウトを用いてリレーショナルデータベースのデータベースマップを生成する別の方法を示すフロー図である。
【図７Ａ】[0015]本明細書で述べられる実施形態による、縁部接着レイアウトを用いたリレーショナルデータベースのデータベースマップの生成に関する他の詳細を示すブロック図である。
【図７Ｂ】本明細書で述べられる実施形態による、縁部接着レイアウトを用いたリレーショナルデータベースのデータベースマップの生成に関する他の詳細を示すブロック図である。
【図８】[0016]本明細書に示される実施形態の態様を実施することができるコンピューティングシステムのための、例示のコンピューターハードウェアおよびソフトウェアーキテクチャを示すブロック図である。
【発明を実施するための形態】
【００１１】
[0017]以下の詳細説明は、リレーショナルデータベースの視覚的マップを生成し操作する技術を対象とする。本明細書で述べられる主題は、コンピューターシステム上のオペレーティングシステムおよびアプリケーションプログラムの実行と共に実行するプログラムモジュールとの一般の関連において示されるが、当業者には他の実装形態を、他のタイプのプログラムモジュールとの組み合わせにおいて行えることが認識されるであろう。一般にプログラムモジュールは、ルーチン、プログラム、コンポーネント、データ構造体、および特定のタスクを行うまたは特定の抽象データタイプを実施する他のタイプの構造体を含む。さらに当業者には本明細書で述べられる主題は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラマブルの民生用電子機器、ミニコンピューター、メインフレームコンピューターなどを含む他のコンピューターシステム構成を用いて実施できることが理解されるであろう。
【００１２】
[0018]以下の詳細な説明では、本明細書の一部となり、例示として特定の実施形態または例を示す添付の図面を参照する。添付の図面では複数の図を通して同様な番号は同様な要素を示す。
【００１３】
[0019]図１は本明細書に示される実施形態による、リレーショナルデータベースの視覚的マップを生成し操作するためのいくつかのソフトウェアコンポーネントを含む、例示の動作環境１００を示す。環境１００はコンピューターシステム１０２を含む。コンピューターシステム１０２は、パーソナルコンピューター（「ＰＣ」）、デスクトップワークステーション、ラップトップ、ノートブック、モバイルデバイス、携帯情報端末（「ＰＤＡ」）などのユーザーコンピューティングデバイスを表すことができる。あるいはコンピューターシステム１０２は、１つまたは複数のアプリケーションサーバー、Ｗｅｂサーバー、データベースサーバー、ネットワーク機器、専用ハードウェアデバイス、および／または他のサーバーコンピューターまたは当技術分野で知られているユーザーコンピューティングデバイスに動作可能に接続された、ユーザーコンピューティングデバイスを表すことができる。コンピューターシステム１０２は図１に示されるように、ディスプレイデバイス１０６、ならびにキーボードおよび／またはマウスなどの１つまたは複数の入力デバイス１０８を通してユーザー１０４によってアクセスされる。
【００１４】
[0020]実施形態によればデータベース視覚化モジュール１１０は、リレーショナルデータベースから視覚的データベースマップを生成し、ユーザー１０４にデータベースマップをナビゲートするためのサービスをもたらすコンピューターシステム１０２上で実行する。データベース視覚化モジュール１１０は、コンピューターシステム１０２のユーザーコンピューティングデバイス上でローカルに実行することができ、またはユーザーコンピューティングデバイス上で実行するクライアントアプリケーションによってアクセスされる、Ｗｅｂサーバーなどのサーバーコンピューター上で実行することができる。データベース視覚化モジュール１１０はハードウェア、ソフトウェア、またはそれら２つの組み合わせとして実装することができる。データベース視覚化モジュール１１０は、ワシントン州レッドモンドのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐ．からのＭＩＣＲＯＳＯＦＴ（登録商標）ＡＣＣＥＳＳ（登録商標）データベースソフトウェアなどのリレーショナルデータベース管理システム（ｒｅｌａｔｉｏｎａｌ  ｄａｔａｂａｓｅ  ｍａｎａｇｅｍｅｎｔ  ｓｙｓｔｅｍ：「ＲＤＢＭＳ」）のアドインまたはコンポーネントとすることができ、コンピューターシステム１０２上にいくつかのアプリケーションプログラムモジュールおよび他のコンポーネントを含むことができる。
【００１５】
[0021]データベース視覚化モジュール１１０は、データベースマップを生成するためにデータベース１１２にアクセスする。データベース１１２は、リレーショナルデータベースまたは当技術分野で知られている他のデータ記憶機構とすることができ、データを記憶するためのいくつかのデータテーブル１１４を含んでいる。データベース１１２はまた、データテーブル１１４間の関係など、データベースの構造または「スキーマ」を規定するメタデータ１１６を含むことができる。一実施形態によれば本明細書でより詳しく述べられるように、データベース視覚化モジュール１１０は、メタデータ１１６を用いて、データベース１１２内のデータテーブル１１４を表すデータベースマップを生成することができ、ディスプレイデバイス１０６上にデータベースマップをユーザー１０４に表示することができる。
【００１６】
[0022]図２Ａ〜２Ｃは、データベース視覚化モジュール１１０によって表示される例示のユーザーインターフェース２００の一例を示す。ユーザーインターフェース２００は、データベースマップ２０４がその中に示されるウィンドウ２０２を含む。実施形態によればデータベースマップ２０４は、図２Ａに示されるようにいくつかのタイル２０６Ａ〜２０６Ｎ（本明細書では全体としてタイル２０６と呼ぶ）を含む。各タイル２０６は、データテーブル１１４などのデータベース１１２内の単一のオブジェクトに対応する。以下で図３および図６に関連してより詳しく述べられるように、タイル２０６Ａ〜２０６Ｎは、対応するデータテーブル１１４間の関係に従ってデータベースマップ２０４内に配置される。データベース視覚化モジュール１１０は、データベースマップ２０４を生成するために、データテーブル１１４間の関係をデータベース１１２内のメタデータ１１６から求めることができる。
【００１７】
[0023]各タイル２０６には、図２Ａに示されるようなテーブル名などの、対応するデータテーブル１１４の識別子を用いてラベルを付けることができる。各タイルのラベルは、テーブル内の行数など、対応するデータテーブル１１４に関する他の情報をもたらすことができる。実施形態によれば各タイル２０６のサイズは、以下でより詳しく述べられるように、データベース内の対応するデータテーブル１１４の相対的重要度、データテーブルに対する関係の数、データテーブル内のレコードの数、またはこれらの組み合わせに関連付けることができる。さらに各タイル２０６の他の属性を、対応するデータテーブル１１４の特性に関連付けることができる。例えば比較的大きな数の関係またはレコードを有するデータテーブル１１４に対応するタイル２０６はより濃い色で色付けすることができ、比較的少ない関係またはレコードを有するテーブルに対応するタイルは薄い色で色付けすることができる。対応するデータテーブル１１４の他の特性を反映するように、非限定的にタイルの網掛け、タイルのラベルに用いられるフォント、タイルの枠線の太さまたは質を含む、各タイル２０６の他の属性をデータベース視覚化モジュール１１０によって調整できることが理解されるであろう。
【００１８】
[0024]他の実施形態によればデータベース視覚化モジュール１１０は、ユーザー１０４が、データベースマップ２０４を操作することを可能にする機能をもたらすことができる。例えばデータベース視覚化モジュール１１０は、例えばユーザー１０４がマウスでポイント制御部を操作することによって、データベース１１２内のデータテーブル１１４に対応する特定のタイル２０６Ａを選択すること可能にするポインター制御部２０８を提供することができる。データベース視覚化モジュール１１０はまた、ユーザー１０４がウィンドウ２０２内のデータベースマップ２０４をパンしズームすることを可能にする、１組のナビゲーション制御部２１０を提供することができる。
【００１９】
[0025]一実施形態によれば、タイル２０６Ａなどの特定のタイルが閾値のサイズを超えるようなズームレベルまで、データベースマップ２０４がズームされた場合は、図２Ｂに示されるようにタイル上のラベルは、データグリッド２１２、またはデータベース１１２からの対応するデータテーブル１１４内のレコードを示す他の表示に置き換えることができる。他の実施形態では特定のタイル２０６Ａをダブルクリックすることによってデータベース視覚化モジュール１１０に、対応するデータテーブル１１４からのレコードを含んだデータグリッド２１２をタイル２０６Ａ内に表示しながら、そのタイルをマップ内の中心に配置させ、適切なズームレベルまでデータベースマップ２０４をズームさせることができる。
【００２０】
[0026]データベース視覚化モジュール１１０はさらに、ユーザー１０４が特定のデータに対してデータベース１１２を検索することを可能にする、１組の検索制御部２１４を提供することができる。例えば検索制御部２１４は、「ＨＥＡＬＴＨ」などの検索文字列またはキーワードの入力を可能にすることができる。ユーザー１０４が検索制御部２１４内に文字をタイプするのに従って、データベース視覚化モジュール１１０はデータテーブル１１４またはデータベース１１２内の語句の索引を検索することができる。次いでデータベース視覚化モジュール１１０は図２Ｃに示されるように、検索文字列またはキーワードを含んだデータテーブル１１４に対応するデータベースマップ２０４内のタイル２０６Ｇ〜２０６Ｈをタイルの表示属性を変更することにより、およびまたは検索したデータを含んでいないデータテーブル１１４に対応するタイル２０６をビューからフェードすることによって強調表示することができる。
【００２１】
[0027]一実施形態では、データベースマップ２０４内で１つのタイル２０６だけが強調されて残ったときは、ユーザー１０４はキーボード上のキーを押すことによってデータベース視覚化モジュール１１０に、検索したデータを含む対応するデータテーブル１１４からのレコードを含んだタイル内にデータグリッド２１２を示しながら、タイル上で中心に配置させ、データベースマップ２０４をズームさせることができる。当技術分野で知られている、データベース１１２内でデータを検索する他の方法を、検索制御部２１４を用いてデータベース視覚化モジュール１１０によって実施できることが理解されるであろう。
【００２２】
[0028]次に図３および図６を参照すると、本明細書に示される実施形態に関する他の詳細が示される。図３および図６に関して述べられる論理演算は、（１）コンピューターによって実施される一連の作用、またはコンピューティングシステム上で稼働するプログラムモジュールとして、および／または（２）コンピューティングシステム内の相互接続された機械論理回路または回路モジュールとして、実施されることが理解されるべきである。実装は、コンピューティングシステムの性能および他の要件に応じた選択の問題である。したがって本明細書で述べられる論理演算は、動作、構造デバイス（structural device）、作用、またはモジュールとして様々に呼ばれる。これらの動作、構造デバイス、作用、またはモジュールは、ソフトウェアにて、ファームウェアにて、特定用途デジタルロジックにて、およびそれらの組み合わせにおいて実現することができる。また、本明細書で図に示され述べられるものより多いまたは少ない動作を行い得ることが理解されるべきである。動作はまた、述べられるものとは異なる順序で行うことができる。
【００２３】
[0029]図３は一実施形態による、「空間分割」レイアウトを用いてデータベース１１２からデータベースマップ２０４を生成する１つのルーチン３００を示す。空間分割レイアウトではデータベースマップ２０４は、全体的に正方形の形状を維持しながら、データベース１１２内における各データテーブル１１４に対するタイル２０６を含む。さらにデータベース１１２内のデータテーブル１１４間の関係または「親近性（affinity）」は、データベースマップ２０４内のタイル２０６のレイアウトを通して反映される。一実施形態によればルーチン３００は、コンピューターシステム１０２および／または他のサーバーまたはコンピューティングデバイス上で実行する、データベース視覚化モジュール１１０によって行われる。ルーチン３００はまた、他のコンピューティングデバイス上で実行する他のモジュールまたはコンポーネント、またはモジュール、コンポーネント、およびコンピューティングデバイスの任意の組み合わせによって行われることが理解されるであろう。
【００２４】
[0030]ルーチン３００は動作３０２において始まり、データベース視覚化モジュール１１０はデータベース１１２からデータテーブル１１４のリストを取得し、リストを各テーブルが有する関係の数によって多い方から少ない方に順序付ける。データベース視覚化モジュール１１０は、データテーブルのスキーマを規定するデータベース１１２内のメタデータ１１６から、各データテーブル１１４に対する関係の数を求めることができる。例えば図４は、示される関係を有して、５つのデータテーブル１１４Ａ〜１１４Ｅを含んだデータベース１１２に対する、簡略化されたエンティティ関係（「ＥＲ」）図４００を示す。図４のＥＲ図４００に示されるデータベース１１２から、データベース視覚化モジュール１１０は以下の表１に示される順序付けられたテーブルのリストを生成することができる。
【００２５】
【表１】
0005965477.tif 000002
【００２６】
[0031]動作３０２からルーチン３００は動作３０４に進み、データベース視覚化モジュール１１０は最初に、順序付けられたテーブルのリスト内の第１のデータテーブル１１４に対して、データベースマップ２０４内に正方形タイル２０６を生成する。例えばデータベースマップ２０４の初期の最新レイアウト５００は、図５Ａのステップ１に示されるように、テーブル３  １１４Ｃに対応する正方形タイル２０６Ａを備えることができる。次いでルーチン３００は動作３０４から動作３０６に進み、データベース視覚化モジュール１１０は、順序付けられたテーブルのリスト内の次のデータテーブル１１４を含んだデータベースマップ２０４のための可能な新しいレイアウトのリスト５０４を生成する。
【００２７】
[0032]一実施形態によれば、可能な新しいレイアウトのリスト５０４内の各レイアウトは、追加されるべき次のデータテーブル１１４に対応する新しいタイルのための新しい場所を生成するように、１つの既存のタイル２０６が２つに分割された状態で、最新レイアウト５００と同一の配置を備える。例えば図５Ａのステップ２に示されるように、テーブル３  １１４Ｃに対する最新のタイル２０６Ａは、分割線５０２によって示されるように分割され、テーブル２  １１４Ｂに対する新しいタイルをデータベースマップ２０４に追加するための、可能な新しいレイアウトのリストに対する２つのレイアウトを生成する。一実施形態では既存のタイル２０６の分割は、２つの正方形タイルを結果として生じるように水平、または図５Ａのステップ２におけるタイル２０６Ａの分割線５０２によって示される分割で示されるように、２つの直立した矩形、すなわち幅より高さが大きい矩形を結果として生じるように垂直となる。
【００２８】
[0033]動作３０６からルーチン３００は動作３０８に進み、データベース視覚化モジュール１１０は、データベースマップ２０４においてデータテーブル１１４の親近性を視覚的に反映するためのレイアウトの能力を定量化する、可能な新しいレイアウトのリスト５０４内の各レイアウトに対する「エネルギー」を計算する。一実施形態によれば各レイアウトのエネルギーは、データベース１１２内において第１のタイルに対応するデータテーブルが関係する、データテーブル１１４に対応する別のタイルに接する、各タイル２０６の縁部に沿ったピクセルまたは他の単位の総数を表す。次に動作３１０ではデータベース視覚化モジュール１１０は、可能な新しいレイアウトのリスト５０４から、データベースマップ２０４に対する新しい最新レイアウト５００として、最も高い計算されたエネルギーを有するレイアウトを選択する。例えば図５Ａのステップ２に示される２つの可能な新しいレイアウトから、データベース視覚化モジュール１１０は、データテーブル３  １１４Ｃに対応する分割されたタイル２０６Ａと共に、順序付けられたデータテーブルのリストからのデータテーブル２  １１４Ｂに対応する新しいタイル２０６Ｂを含んだ、ステップ３に示されるレイアウト５００を選択することができる。
【００２９】
[0034]ルーチン３００は動作３１０から動作３１２に進み、データベース視覚化モジュール１１０は、順序付けられたテーブルのリスト内にデータベースマップ２０４に追加すべきデータテーブル１１４がまだほかにあるかどうかを判定する。データテーブル１１４がまだほかにある場合はルーチン３００は動作３０６に戻り、データベース視覚化モジュール１１０は、図５Ａのステップ４に示されるような、順序付けられたテーブルのリスト内のデータテーブル１  １１４Ａなどの次のデータテーブルのためのタイルを含んだ、データベースマップ２０４のための可能な新しいレイアウトの新しいリスト５０４を生成する。可能な新しいレイアウトの新しいリスト５０４から、データベース視覚化モジュール１１０は、動作３０８および３１０に関連して上述したように、および図５Ａのステップ５に示されるように、新しい最新レイアウト５００として最も高い計算されたエネルギーを有する、次のデータテーブル１１４Ａのためのタイル２０６Ｃを含んだレイアウトを選択する。動作３０６から３１０は、データテーブル４  １１４Ｄの場合の図５Ａのステップ６および７、ならびにデータテーブル４  １１４Ｅの場合の図５Ｂのステップ８および９に示されるように、順序付けられたテーブルのリスト内の残りのデータテーブルに対して反復的に続けられる。
【００３０】
[0035]動作３１２においてデータベース視覚化モジュール１１０が、順序付けられたテーブルのリスト内でデータベースマップ２０４に追加すべきデータテーブル１１４がほかにないと判定した場合は、ルーチン３００は終了する。上述の空間分割レイアウトルーチン３００を、図４のＥＲ図４００に示されるデータベース１１２に適用することにより、データベース視覚化モジュール１１０は、図５Ｂの「結果」に示されるものと同様なデータベースマップ２０４を結果として生成できることが理解されるであろう。次いでデータベース視覚化モジュール１１０は、生成されたデータベースマップ２０４を、図２Ａ〜２Ｃに関連して上述したユーザーインターフェース２００においてユーザー１０４に表示することができる。
【００３１】
[0036]図６は別の実施形態による、「縁部接着」レイアウトを用いてデータベース１１２からデータベースマップ２０４を生成する別のルーチン６００を示す。縁部接着レイアウトでは、データベース１１２内におけるデータテーブル１１４の「親近性」を、タイル２０６のレイアウトを通して反映することに加えて、データベースマップ２０４内の各タイルの相対的なサイズを、対応するデータテーブルの特性に関連付けることができる。例えばタイル２０６の相対的な幅は対応するデータテーブル１１４に対する関係の数に関連付けることができ、タイルの相対的な高さはテーブル内のレコードの数に関連付けることができる。一実施形態によればルーチン６００は、コンピューターシステム１０２および／または他のサーバーまたはコンピューティングデバイス上で実行する、データベース視覚化モジュール１１０によって行われる。ルーチン６００はまた、他のコンピューティングデバイス上で実行する他のモジュールまたはコンポーネント、またはモジュール、コンポーネント、およびコンピューティングデバイスの任意の組み合わせによって行われることが理解されるであろう。
【００３２】
[0037]ルーチン６００は動作６０２において始まり、データベース視覚化モジュール１１０はデータベースからデータテーブル１１４のリストを取得し、リストを各テーブルが有する関係の数によって多い方から少ない方に順序付ける。以下に示されるように、このデータテーブル１１４の順序付けは、最も多い関係を有するデータテーブル１１４がマップの中心または中心近くに置かれたデータベースマップ２０４を結果として生成することができる。動作３０２に関連して上述したように、データベース視覚化モジュール１１０は、データテーブルのスキーマを規定するデータベース１１２内のメタデータ１１６から、各データテーブル１１４に対する関係の数を求めることができる。図４のＥＲ図４００に示される例示のデータベース１１２を用いて、データベース視覚化モジュール１１０は上記の表１に示される順序付けられたテーブルのリストを生成することができる。
【００３３】
[0038]動作６０２からルーチン６００は動作６０４に進み、データベース視覚化モジュール１１０は、順序付けられたテーブルのリスト内の各データテーブル１１４Ａ〜１１４Ｅに対応する各タイル２０６Ａ〜２０６Ｅの相対的なサイズを計算する。一実施形態によればデータベース視覚化モジュール１１０は、対応するデータテーブル１１４に対する関係の相対的な数から各タイル２０６の幅を計算し、対応するデータテーブル内のレコードの数とリスト内の他のデータテーブル内のレコードの数との関連でタイルの高さを計算する。さらにデータベース視覚化モジュール１１０は、必要に応じてタイルの高さを少なくともタイルの幅と同じになるように増加することによって、いずれのタイル２０６の幅もその高さより大きくならないことを確実にすることができる。その結果として、縁部接着レイアウトによって生成されたデータベースマップ２０４内に正方形または直立した矩形のいずれかのタイル２０６となることが理解されるであろう。例えば上記の表１に示された順序付けられたテーブルのリスト内のデータテーブル１１４から、データベース視覚化モジュール１１０は、データベースマップ２０４に含めるために、図７Ａのステップ１に示されるような相対的な高さおよび幅を有する対応するタイル２０６Ａ〜２０６Ｅを生成することができる。
【００３４】
[0039]他の実施形態では、関係の数、レコードの数、一意キーの数、またはデータベース１１２内のデータテーブル１１４の他の特性の他の組み合わせを、データベースマップ２０４のための各タイル２０６の相対的な幅および／または高さを計算するのにデータベース視覚化モジュール１１０によって利用することができる。次に動作６０６ではデータベース視覚化モジュール１１０は、順序付けられたデータテーブルのリスト内の第１のデータテーブル１１４に対応するタイル２０６を、データベースマップ２０４の中心に配置する。例えばデータベースマップ５００の初期の最新レイアウト５００は、図７Ａのステップ２に示されるようにデータテーブル３  １１４Ｃに対応するタイル２０６Ａを備えることができる。
【００３５】
[0040]ルーチン６００は動作６０６から動作６０８に進み、データベース視覚化モジュール１１０は、順序付けられたテーブルのリスト内の次のデータテーブル１１４に対応するタイル２０６を含んだデータベースマップ２０４のための、可能な新しいレイアウトのリストを生成する。可能な新しいレイアウトのリストを生成するためにデータベース視覚化モジュール１１０は、最新レイアウト５００内のタイルの周りのスロット７０２Ａ〜７０２Ｈ（本明細書では全体としてスロット７０２と呼ぶ）のリストを生成することができる。スロット７０２はレイアウト内の既存のタイル２０６のそれぞれの開いている縁部および隅部において生成することができる。例えばデータベースマップ２０４に配置された最初のタイル２０６Ａから、データベース視覚化モジュール１１０は、図７Ａのステップ２に示されるような８個のスロット７０２Ａ〜７０２Ｈのリストを生成することができる。
【００３６】
[0041]図７Ａおよび７Ｂに示される最新レイアウト５００内の既存のタイル２０６の周りの利用可能なスロット７０２の番号付けは例示のためのみに示され、スロットは図示のものとは異なる順序または方向で番号付けできることが理解されるであろう。さらにデータベース視覚化モジュール１１０によって、図に示され本明細書に記載するよりも多いまたは少ないスロット７０２を特定することができる。一実施形態によれば可能な新しいレイアウトのリストは、新しいタイルがレイアウト内のいずれの既存のタイルとも重ならないように、それぞれの開いているスロット７０２内に適合する順序付けられたテーブルのリスト内の次のデータテーブル１１４に対応するタイル２０６を有する最新レイアウト５００を備える。例えば、順序付けられたテーブルのリスト内の次のデータテーブル、データテーブル２  １１４Ｂに対応するタイル２０６Ｂに対しては、可能な新しいレイアウトのリストは、８個の列挙されたスロット７０２Ａ〜７０２Ｈのそれぞれに配置されたタイル２０６Ｂによってデータベースマップ２０４内に最初に置かれたタイル２０６Ａを備えることができる。
【００３７】
[0042]動作６０８からルーチン６００は動作６１０に進み、データベース視覚化モジュール１１０は、可能な新しいレイアウトのリスト内の各レイアウトに対するエネルギーを計算する。一実施形態によれば各レイアウトのエネルギーは、新しく適合されたタイル２０６の中心と、データベース１１２内において新しいタイルに対応するデータテーブルが関係するデータテーブル１１４に対応するタイルとの間の、距離の逆数の合計を表す。次に動作６１２ではデータベース視覚化モジュール１１０は、可能な新しいレイアウトのリストから、データベースマップ２０４に対する新しい最新レイアウト５００として、最も高い計算されたエネルギーを有するレイアウトを選択する。例えば図７Ａのステップ２に示されるスロット７０２Ａ〜７０２Ｈのそれぞれにおけるタイル２０６Ｂに対応する８個の可能なレイアウトから、データベース視覚化モジュール１１０は、スロット１  ７０２Ａにおいてタイル２０６Ａに隣接して配置された、順序付けられたテーブルのリスト内でデータテーブル２  １１４Ｂに対応する新しいタイル２０６Ｂを含んだ、ステップ３に示されるレイアウト５００を選択することができる。
【００３８】
[0043]ルーチン６００は動作６１２から動作６１４に進み、データベース視覚化モジュール１１０は、順序付けられたテーブルのリスト内にデータベースマップ２０４に追加すべきデータテーブル１１４に対応するタイル２０６がまだほかにあるかどうかを判定する。タイル２０６がまだほかにある場合はルーチン６００は動作６０６に戻り、データベース視覚化モジュール１１０は、図７Ａのステップ３に示されるような、最新レイアウト５００内の既存のタイルの周りの新しいスロットのリストを生成し、次いで順序付けられたテーブルのリスト内の次のデータテーブルであるデータテーブル１  １１４Ａに対応するタイル２０６Ｃを含んだ、データベースマップ２０４のための可能な新しいレイアウトの新しいリストを生成する。可能な新しいレイアウトの新しいリストから、データベース視覚化モジュール１１０は、動作６１０および６１２に関連して上述したように、および図４のステップ７Ａに示されるように、新しい最新レイアウト５００として最も高い計算されたエネルギーを有する、タイル２０６Ｃを含んだレイアウトを選択する。動作６０６から６１２は、データテーブル４  １１４Ｄの場合の図７Ａのステップ５、およびデータテーブル５  １１４Ｅの場合の図７Ｂのステップ６に示されるように、順序付けられたテーブルのリスト内の残りのデータテーブルに対応するタイル２０６に対して、反復的に続けられる。
【００３９】
[0044]動作６１４においてデータベース視覚化モジュール１１０が、順序付けられたテーブルのリスト内でデータベースマップ２０４に追加すべきデータテーブル１１４に対応するタイル２０６がほかにないと判定した場合は、ルーチン６００は終了する。上述の縁部接着レイアウトルーチン６００を、図４のＥＲ図４００に示されるデータベース１１２に適用することにより、データベース視覚化モジュール１１０は、図７Ｂの「結果」に示されるものと同様なデータベースマップ２０４を結果として生成できることが理解されるであろう。次いでデータベース視覚化モジュール１１０は、生成されたデータベースマップ２０４を、図２Ａ〜２Ｃに関連して上述したユーザーインターフェース２００においてユーザー１０４に表示することができる。
【００４０】
[0045]本開示は、正方形または矩形のタイル２０６を用いたデータベースマップ２０４の生成について述べたが、データベースマップ内に示される各データテーブル１１４に対応するタイルを生成するためにデータベース視覚化モジュール１１０によって、非限定的に三角形、六角形、八角形を含む他の多角形を利用できることが理解されるであろう。他の実施形態ではデータベース視覚化モジュール１１０は、例えば従来型のＥＲ作図の記法を用いて、隣接するタイルに対応するデータテーブル１１４間に関係があればその関係を空間に示すことができるように、データベースマップ２０４内の隣接するタイル２０６間にある大きさの空間を配置することができる。
【００４１】
[0046]図８は上述のやり方でリレーショナルデータベースの視覚的マップを生成し操作するための、本明細書で述べられるソフトウェアコンポーネントを実行することができるコンピューター８００に対するコンピューターキテクチャを示す。図８に示されるコンピューターキテクチャは、従来型のデスクトップコンピューター、ラップトップ、ノートブック、ＰＤＡ、無線電話、サーバーコンピューター、または他のコンピューティングデバイスを示し、コンピューターシステム１０２または他のコンピューティングデバイス上で実行する、本明細書に示されるソフトウェアコンポーネントの態様を実行するために利用することができる。
【００４２】
[0047]図８に示されるコンピューターキテクチャは、１つまたは複数の中央処理装置（「ＣＰＵ」）８０２を含む。ＣＰＵ８０２は、コンピューター８００の動作のために必要な演算および論理演算を行う標準のプロセッサとすることができる。ＣＰＵ８０２は、１つの離散的な物理的状態から次の物理的状態に、これらの状態間を区別し変化させるスイッチング素子を操作することによって必要な動作を行う。スイッチング素子は一般に、フリップフロップなどの２つの２値状態の１つを維持する電子回路、および論理ゲートなどの１つまたは複数の他のスイッチング素子の状態の論理的組み合わせに基づいて出力状態を生じる電子回路を含むことができる。これらの基本的なスイッチング素子を組み合わせて、レジスタ、加算器−減算器、演算論理装置、浮動小数点演算ユニット、および他の論理素子を含む、より複雑な論理回路を生成することができる。
【００４３】
[0048]コンピューターキテクチャはさらに、ランダムアクセスメモリ（「ＲＡＭ」）８１４、および読取り専用メモリ８１６（「ＲＯＭ」）を含むシステムメモリ８０８、およびメモリをＣＰＵ８０２に結合するシステムバス８０４を含む。スタートアップ時などにコンピューター８００内の素子間の情報の転送を助ける基本的なルーチンを含んだ基本的な入力／出力システムは、ＲＯＭ８１６に記憶される。コンピューター８００はまた、本明細書でより詳しく述べられるオペレーティングシステム１２２、アプリケーションプログラム、および他のプログラムモジュールを記憶するための大容量記憶装置８１０を含む。
【００４４】
[0049]大容量記憶装置８１０は、バス８０４に接続された大容量記憶装置コントローラ（図示せず）を通してＣＰＵ８０２に接続される。大容量記憶装置８１０はコンピューター８００のための不揮発性記憶をもたらす。コンピューター８００は、記憶される情報を反映するように装置の物理的状態を変換することによって大容量記憶装置８１０上に情報を記憶することができる。特定の物理的状態の変換は、本明細書の異なる実装形態において、様々な要因に依存し得る。このような要因には非限定的に、大容量記憶装置を実現するために用いられる技術、大容量記憶装置が一次または二次記憶装置として特徴付けられているかどうかなどが含まれ得る。
【００４５】
[0050]例えばコンピューター８００は、大容量記憶装置コントローラに命令を発行して、磁気ディスク装置内の特定の位置の磁気特性、光記憶装置内の特定の位置の反射または屈折特性、あるいは特定のコンデンサ、トランジスタ、または固体記憶装置内の他の個別構成要素の電気的特性を変更することによって、大容量記憶装置８１０に情報を記憶することができる。本明細書の範囲および趣旨から逸脱せずに物理媒体の他の変換が可能である。コンピューター８００はさらに、大容量記憶装置内の１つまたは複数の特定の位置の物理的状態または特性を検出することによって、大容量記憶装置８１０から情報を読み出すことができる。
【００４６】
[0051]上記で簡単に述べたように、コンピューターの動作を制御するのに適したオペレーティングシステム８１８を含む、いくつかのプログラムモジュールおよびデータファイルを、コンピューター８００の大容量記憶装置８１０およびＲＡＭ８１４に記憶することができる。大容量記憶装置８１０およびＲＡＭ８１４はまた、１つまたは複数のプログラムモジュールを記憶することができる。具体的には大容量記憶装置８１０およびＲＡＭ８１４は、図１に関連して上記で詳述したデータベース視覚化モジュール１１０を記憶することができる。大容量記憶装置８１０およびＲＡＭ８１４はまた、他のタイプのプログラムモジュールまたはデータを記憶することができる。
【００４７】
[0052]上述の大容量記憶装置８１０に加えてコンピューター８００は、プログラムモジュール、データ構造体、または他のデータなどの情報を記憶し取得するために、他のコンピューター可読媒体へのアクセスを有することができる。当業者にはコンピューター可読媒体は、コンピューター可読記憶媒体および通信媒体を含む、コンピューター８００によってアクセスすることができる任意の入手可能な媒体でよいことが理解されるべきである。通信媒体は一時的な信号を含む。コンピューター可読記憶媒体は、コンピューター可読命令、データ構造体、プログラムモジュール、または他のデータなどの情報を記憶するための任意の方法または技術において実現された揮発性および不揮発性、リムーバブルおよび非リムーバブル媒体を含む。例えばコンピューター可読記憶媒体は、非限定的にＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、または他の固体メモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、ＨＤ−ＤＶＤ、ＢＬＵ−ＲＡＹ(登録商標)または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、あるいは所望の情報を記憶するために用いることができコンピューター８００によってアクセスできる任意の他の媒体を含む。
【００４８】
[0053]コンピューター可読記憶媒体は、コンピューター８００にロードされたときにコンピューターシステムを汎用コンピューティングシステムから、本明細書で述べられる実施形態を実現することができる特定用途コンピューターに変換できる、コンピューター実行可能命令を用いてエンコードすることができる。コンピューター実行可能命令は、媒体内の特定の位置の電気的、光学的、磁気的、または他の物理特性を変更することによって、コンピューター可読記憶媒体上にエンコードすることができる。これらのコンピューター実行可能命令は、上述のようにＣＰＵ８０２がどのように状態間を遷移するかを指定することによってコンピューター８００を変換する。一実施形態によればコンピューター８００は、コンピューターによって実行されたときに、図３および図６に関連して上述したリレーショナルデータベースからデータベースマップを生成するルーチン３００および６００を行う、コンピューター実行可能命令を記憶したコンピューター可読記憶媒体にアクセスすることができる。
【００４９】
[0054]様々な実施形態によればコンピューター８００は、ＬＡＮ、ＷＡＮ、インターネット、または当技術分野で知られている任意のトポロジのネットワークなどの、１つまたは複数のネットワーク８２０を通したリモートコンピューティングデバイスまたはコンピューターシステムとの論理的接続を用いたネットワーク環境において動作することができる。コンピューター８００は、バス８０４に接続されたネットワーク・インターフェース・ユニット８０６を通して、ネットワーク８２０に接続することができる。ネットワーク・インターフェース・ユニット８０６はまた、他のタイプのネットワークおよびリモートコンピューターシステムに接続するために利用できることが理解されるべきである。
【００５０】
[0055]コンピューター８００はまた、キーボード、マウス、タッチパッド、タッチスクリーン、電子スタイラス、または他のタイプの入力デバイスを含む、いくつかの入力デバイス１０８から入力を受け取って処理するための入力／出力コントローラ８１２を含むことができる。同様に入力／出力コントローラ８１２は、コンピューターモニタ、フラットパネルディスプレイ、デジタルプロジェクター、プリンター、プロッター、または他のタイプの出力デバイスなどの、ディスプレイデバイス１０６に出力を供給することができる。コンピューター８００は、図８に示される構成要素のすべてを含まなくてもよく、図８に明示的に示されていない他の構成要素を含むことができ、または図８に示されるものとは全く異なるアーキテクチャを利用できることが理解されるであろう。
【００５１】
[0056]上記に基づいて、リレーショナルデータベースの視覚的マップを生成し操作する技術が、本明細書に示されることが理解されるべきである。本明細書に示される主題について、コンピューターの構造的特徴、方法論的な作用、およびコンピューター可読記憶媒体に特有の用語において述べてきたが、添付の特許請求の範囲に規定される本発明は、必ずしも本明細書で述べられる特定の特徴、作用、または媒体に限定されないことを理解されたい。むしろ特定の特徴、作用、および媒体は、請求項を実施する例示の形として開示するものである。
【００５２】
[0057]上述の主題は例示のみのために示されたものであり、限定するものと解釈されるべきではない。示され述べられた例示の実施形態および適用例に従わずに、添付の特許請求の範囲に記載される本発明の真の趣旨および範囲から逸脱せずに、本明細書で述べられた主題に様々な変形および変更を行うことができる。
【図１】
0005965477.tif 000003
【図２Ａ】
0005965477.tif 000004
【図２Ｂ】
0005965477.tif 000005
【図２Ｃ】
0005965477.tif 000006
【図３】
0005965477.tif 000007
【図４】
0005965477.tif 000008
【図５Ａ】
0005965477.tif 000009
【図５Ｂ】
0005965477.tif 000010
【図６】
0005965477.tif 000011
【図７Ａ】
0005965477.tif 000012
【図７Ｂ】
0005965477.tif 000013
【図８】
0005965477.tif 000014