JP2006172446A - 複合データアクセス - Google Patents
複合データアクセス Download PDFInfo
- Publication number
- JP2006172446A JP2006172446A JP2005340352A JP2005340352A JP2006172446A JP 2006172446 A JP2006172446 A JP 2006172446A JP 2005340352 A JP2005340352 A JP 2005340352A JP 2005340352 A JP2005340352 A JP 2005340352A JP 2006172446 A JP2006172446 A JP 2006172446A
- Authority
- JP
- Japan
- Prior art keywords
- data
- query
- computer
- concept table
- concept
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/40—Data acquisition and logging
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99943—Generating database or data structure, e.g. via user interface
Abstract
【課題】概念テーブルにある複合データのさまざまな態様を実行する方法、システム、およびコンピュータ読取可能媒体によって、テーブル形式の複合データを、概念テーブルに追加すること。
【解決手段】概念テーブルは、少なくとも複合データ型を含むテーブルである。複合データ型は、「グループ化」されて単一の新しいデータ型を形成する1または複数のスカラ列および/または他の複合型である。まず、信号を受信し、複合データ型をテーブルに追加する。1または複数のデータテーブルが作成される。さらに、1または複数のデータテーブルへのリンクが概念テーブルに作成される。この複合データは、複数のデータテーブルのスカラ値にマッピングできる。複合データは、データモデリング法によって入力され、カーソリング法によってアクセスされ、クエリ拡張法によってクエリを行ってもよい。
【選択図】図1
【解決手段】概念テーブルは、少なくとも複合データ型を含むテーブルである。複合データ型は、「グループ化」されて単一の新しいデータ型を形成する1または複数のスカラ列および/または他の複合型である。まず、信号を受信し、複合データ型をテーブルに追加する。1または複数のデータテーブルが作成される。さらに、1または複数のデータテーブルへのリンクが概念テーブルに作成される。この複合データは、複数のデータテーブルのスカラ値にマッピングできる。複合データは、データモデリング法によって入力され、カーソリング法によってアクセスされ、クエリ拡張法によってクエリを行ってもよい。
【選択図】図1
Description
本発明は、一般に、ソフトウェアアプリケーションに関し、より詳細には、データベース等の、データを格納し、報告するソフトウェアアプリケーションに関する。さらに詳細には、本発明の態様は、そのようなソフトウェアアプリケーションでのデータの格納、およびクエリに関する。
膨大なデータを管理するために、スプレッドシートやデータベースアプリケーション等のコンピュータソフトウェアアプリケーションが開発され、論理的にデータを編成し、また格納してきた。通常のスプレッドシートやデータベースアプリケーションは、情報に関する多くのレコードを含み、また、この各レコードは、所定数のフィールドを備える。データベースに関しては、データベース管理システムが通常は用いられ、データベースをより簡単に操作するためのソフトウェアツールを提供する。データベース管理システムの例としては、例えば、Microsoft(登録商標) AccessやMicrosoft(登録商標) SQL Serverがある。データベースを用いれば、ユーザは、一般に、スプレッドシートでは利用できない複合データの相互関係を構築できる。このため、データベースの機能は増強されるが、その一方、データベースアプリケーションを、新規ユーザが習得するのはより難しいものとなる。
通常のデータベース管理システムでは、ユーザに、データを追加、修正、または消去する機能、フィルタを用いたデータをクエリする機能、およびデータベース中のレコードを報告する機能が提供される。データベース中のデータは、通常は、行と列とを用いて表される。フィールドは、行と列との交わる部分である。一般に、任意の所定のフィールドは、単一のスカラデータ値のみを含んでよい。データのクエリには、通常は、構造化クエリ言語(SQL)等のクエリ言語形式がとられる。このようなクエリは、ローカルに保有しているデータ上で行われる場合もあるし、実行するためにデータベースサーバに実行依頼される場合もある。
データベースは、複数の値が並んだ平板構造のテーブルではなく、階層構造のデータを含む場合もある。例えば、発行追跡アプリケーションでは、各発行は、1人または複数の人に割り当てられる。従って、ユーザは、複数のリンクテーブルを用いて、この種の階層構造をモデル化し、複数のテーブルのデータを結合する比較的複雑なクエリを用いて、このテーブルにクエリを行わなければならない。より具体的には、発行に関するテーブル、発行が割り当てられた可能性がある全ての人を含む、人に関するもう1つ別のテーブル、および発行を人に割り当てる連結テーブルがあるかもしれない。このようなテーブル階層の設定は、ユーザには面倒で紛らわしいもので、データベースアプリケーションを用いるのが初めてのユーザには、なおさらそうである。また、このような階層構造全体にわたってクエリを行うことは、複数のテーブルにわたってクエリを行うという複雑さと同様に問題があり、特に、クエリ言語に関する深い知識を持たないユーザの場合はなおさら問題がある。
これらの考慮事項およびその他に鑑み、本発明はなされた。
本発明により、コンピュータ実施方法およびコンピュータ読取可能媒体が、複合データを概念テーブルに追加するために提供される。概念テーブルは、少なくとも複合データ型を含むテーブルである。複合データ型は、「グループ化」されて単一の新しいデータ型を形成する1または複数のスカラ列および/または他の複合型である。まず、信号を受信し、複合データ型をテーブルに追加する。1または複数のデータテーブルが作成される。さらに、1または複数のデータテーブルへのリンクが概念テーブルに作成される。
他の態様によれば、本発明は、概念テーブルのデータをモデル化するコンピュータ実施方法およびコンピュータ読取可能媒体に関する。まず、1または複数のデータ値を格納する信号を受信する。この概念テーブルの構造が分析され、1または複数のデータテーブルへの1または複数のマッピングが判定される。最後に、データは、1または複数のデータテーブルに格納される。
さらに他の態様によれば、本発明は、概念テーブルのクエリを拡張するコンピュータ実施方法およびコンピュータ読取可能媒体に関する。まず、概念テーブルのクエリを受信する。次に、概念テーブルの構造が分析され、1または複数の拡張規則が、クエリに適用される。最後に、拡張したクエリが発行される。
さらに他の態様によれば、本発明は、概念テーブルでカーソリングを行うコンピュータ実施方法およびコンピュータ読取可能媒体に関する。まず、概念テーブルの複合データにアクセスする信号を受信する。この複合データに関連する1または複数のマッピングが読み取られる。最後に、このマッピングを用いて、1または複数のデータテーブルからのスカラデータが読み取られる。
さらに他の態様によれば、本発明は、概念テーブルモデル化のためのシステムに関する。データモデリングモジュールは、複合データをこのテーブルに追加し、複合データを1または複数のデータテーブルに格納する。クエリ拡張モジュールは、概念テーブルのクエリを拡張して1または複数のデータテーブルのクエリを含む。カーソリングモジュールは、概念テーブルの複合データを検索する。
本発明は、コンピュータ処理、コンピューティングシステム、あるいは、コンピュータプログラム製品またはコンピュータ読取可能媒体などの製品として実施してもよい。このコンピュータ読取可能媒体は、コンピュータシステムが読むことができ、かつコンピュータ処理を実行するための命令からなるコンピュータプログラムを符号化するコンピュータストレージ媒体であってもよい。コンピュータプログラム読取可能媒体もまた、コンピューティングシステムが読むことができ、かつコンピュータ処理を実行するための命令からなるコンピュータプログラムを符号化するキャリア上の伝播信号であってもよい。
本発明を特徴付けるこれらの、および様々な他の特徴および利点は、以下の詳細な記述を解釈し、添付図面を検討することで明らかになろう。
図1は、データベース管理システム内の製品オーダデータベースのテーブル102を示すスクリーンショットである。このテーブル102には、複数の行と列のデータからなるテーブルが含まれる。各データ列は、一般的には、データレコードを有する。また、データベースの各データ列は、一般的には、同種のデータ要素を含むとみなすことができる。例えば、注文ID列104は、数値形式のデータ要素を含み、顧客列106は、英数字文字列形式のデータを含み、注文日付列108は、日付形式のデータを含むという具合である。単一レコードに対する注文ID列は、そのレコードの注文IDフィールドに対応する。このようにフィールドが集合して、列を構成する。当業者には当然のことながら、多くの他の種類のデータをデータベースに保存でき、さらに、データベース管理システム内のテーブルを用いて表示できる。本発明によって、データの複合的な階層構造を、簡単なデータベーステーブル(見た目はデータベーステーブル102と似ているが、構造的には異なる)の概念化によってモデル化でき、その結果、複数のテーブルにわたる複雑なクエリを作り、さらに複数のテーブル間を前にいったり、後ろにいったりしてデータを見る、操作するという煩わしい操作からユーザを解放する。
本発明は、コンピュータシステムとして実施されることから、図2に、本発明の実施形態を実施できる適切なコンピューティングシステム環境の例を示す。このシステムの最も基本的な構成では、システム200は、少なくとも処理装置202とメモリ204とを備える。その構成とその種のコンピューティング装置では、メモリ204は揮発性(RAM等)であってもよいし、不揮発性(ROM、フラッシュメモリ等)であってもよいし、あるいはそれら2つの組合せであってもよい。この最も基本的な構成を、図2に破線206で示す。
このメモリ204に加えて、システムは、少なくとも1つの他の形式のコンピュータ読取可能媒体を含んでもよい。コンピュータ読取可能媒体は、システム200がアクセスできる、入手可能なあらゆる媒体であることができる。限定するわけではないが、一例としては、コンピュータ読取可能媒体は、コンピュータ記憶装置媒体と通信媒体とを備えてもよい。
コンピュータストレージ媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、あるいはその他のデータ等の情報を格納するためのあらゆる方法または技術で実施する揮発性および不揮発性であって、取り外し可能および取り外し不可能な媒体が含まれる。メモリ204、取り外し可能な記憶装置208、および取り外し不可能な記憶装置210は、全て、コンピュータ記憶装置媒体の例である。このコンピュータ記憶装置媒体には、限定するわけではないが、RAM、ROM、EPROM、EEPROM、フラッシュメモリ、または他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)、または他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、または他の磁気記憶装置、あるいは、所望の情報を格納するために用いることができ、かつシステム200がアクセスできる他のあらゆる媒体が含まれる。このようなコンピュータ記憶装置媒体のいずれがシステム200の一部であってもよい。
システム200は、また、このシステムが他の装置と通信するのを可能にする通信接続部212を含んでもよい。この通信接続部212は、通信媒体の一例である。通常、通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、あるいは他のデータを、搬送波あるいは他のトランスポート機構等の変調データ信号を具現し、さらに、あらゆる情報配信媒体を含む。「変調データ信号」という用語は、信号中の情報を符号化する方法で設定または変換した1または複数の特性を有する信号を意味する。限定するわけではないが、一例としては、通信媒体には、有線ネットワークや直接配線接続等の有線媒体、および音声、RF、赤外線、他の無線媒体等の無線媒体が含まれる。本明細書で用いるコンピュータ読取可能媒体という用語は、記憶媒体および通信媒体のいずれも含む。
ある実施形態によれば、このシステム200は、入力装置214および/または出力装置216等の周辺装置を含む。例示的な入力装置214としては、限定するわけではないが、キーボード、コンピュータマウス、ペン、またはスタイラス、音声入力装置、触覚入力装置等を含む。また、例示的な出力装置216としては、限定するわけではないが、ディスプレイ、スピーカ、プリンタ等を含む。本発明の目的にとって、ディスプレイは主要な出力装置である。このような装置は、当該技術ではよく知られたものであり、従って、ここでは詳細には記述しない。
コンピューティング環境を考慮しながら、本発明の各種実施形態を具現化するプロセスを実施するために行う論理動作を参照して、以下の図を説明する。これらの論理動作は、(1)コンピュータが実施する一連のステップ、あるいはコンピューティングシステム上で走るプログラムモジュールとして、および/または(2)コンピューティングシステム内の相互接続された機械論理回路、あるいは回路モジュールとして実施される。これは、本発明を実施するコンピューティングシステムの性能要件に左右される選択の問題である。従って、本明細書に記載の本発明の実施形態を構成する論理動作は、オペレーション、構造手段、アクト、あるいはモジュール等、さまざまに呼ばれる。当業者には当然のことながら、このオペレーション、構造手段、アクト、およびモジュールは、本明細書に添付の請求項に列挙されている本発明の精神と範囲から逸脱することなく、ソフトウェア、ファームウェア、特殊用途のデジタル論理、およびこれらの組合せで実施できる。
図3に、本発明の一実施形態によるモジュールを示す。ユーザインタフェースモジュールにより、ユーザは、データの表示、修正、クエリ、および操作を行うことができる。従って、ユーザの、データモデリングモジュール304、クエリ拡張モジュール306、カーソルモデリングモジュール308との対話は、ユーザインタフェースモジュール302を介して行う。同様に、これらのモジュール304、306、308からのデータは、ユーザインタフェースモジュール302を介して表示される。
ユーザインタフェース302は、テーブルの階層パラメータをデータモデリングモジュール304に渡す。さらに、データモデリングモジュール304からフィードバックを受信して、さらにテーブルの定義を示し、あるいはテーブルの修正を行うことでユーザをサポートすることもある。また、ユーザインタフェースモジュール302は、ユーザが行うクエリをクエリ拡張モジュール306に渡し、同様に、クエリ拡張モジュール306からクエリの結果を受信する。さらに、ユーザインタフェースモジュール302は、ユーザからのデータに関するリクエストを、データ検索のためにカーソリングモジュール308に渡し、同様に、検索したデータをカーソリングモジュール308から受信する。
一実施形態では、ユーザインタフェースモジュール302は、1または複数のモジュール304、306、308からの戻りデータを、ディスプレイ上に直接レンダリングする。また、代替の実施形態では、ユーザインタフェースモジュール302は、アプリケーションプログラムインタフェース(API)を用いて表示を更新する。
データモデリングモジュール304は、概念テーブルの作成と修正とを可能にする。概念テーブルは、複合(スカラではない)データを、別のテーブル形式で含むことができると共に、複合データも含むことができるデータテーブルである。データテーブルは、通常、スカラデータのみを含み、場合によっては、数字、英数字文字列、分数等を含んでもよい。複合データは、1または複数の入れ子テーブルを含んでもよく、その入れ子テーブル自身が、さらに別のレベルの入れ子テーブルを含んでもよい。概念テーブルは、このように階層的に相関した多くのテーブルを、任意に含むことができる。従って、概念テーブル内の所定のフィールドは、別のテーブルのフィールドに完全に、物理的にマッピングしてもよい。さらに、この物理的なマッピングとその結果とは、ユーザには全く見えない。データモデリングモジュール304は、ユーザが概念テーブルに対して指定したパラメータを、ユーザインタフェース302から受信してもよい。
一実施形態では、概念テーブルは、スカラデータを含む1または複数のデータテーブルとして格納される。この概念テーブル内にだけ存在するスカラデータ値は、マッピングされないスカラ値に対し特に割り当てられたデータテーブルに格納される。データテーブルに物理的にマッピングする1または複数のデータ値は、そのデータテーブル310に物理的に格納できるように、データモデリングモジュール304によって「シュレッドされる」。その結果、ユーザは、単一の概念テーブルを取り扱うだけですみ、この概念テーブルを、格納のために複数の階層テーブルに変換するという複雑さはユーザには見えない。同様に、シュレッディングの実施は、必ずしも新たな複雑さをデータベースの記憶エンジンまたはデータベースのクエリプロセッサにもたらすことはない。
ある実施形態では、概念テーブルのデータ値は、複合列がテーブルに追加されると、適当なデータテーブルにシュレッドされる。また、代替の実施形態では、概念テーブルのデータ値は、ユーザからのセーブコマンドを受信すると、適当なデータテーブルにシュレッドされる。さらに別の実施形態では、概念テーブルのデータ値は、値の変更が検出されるたびに適当なデータテーブルにシュレッドされる。
クエリ拡張モジュール306は、ユーザインタフェースモジュール302から概念テーブルへのクエリを受信し、その概念テーブルの階層構造に基づき、そのクエリを拡張する。一実施形態では、クエリ拡張モジュール306は、その概念テーブルの階層構造に基づき、開発者が定義した一組の規則を用いてクエリを拡張する。例示的なクエリ拡張規則の一組を、下記の表1〜12に記載する。
代替実施形態では、クエリ拡張モジュール306は、関連するデータテーブルのサブセットを、単一のデータテーブルに一緒に結合する(「join」:データベース分野での技術用語で、結合する「combine」と類似)ことによってクエリを拡張し、概念テーブルへのクエリを、その単一のデータテーブルに対し実行する。別の代替実施形態では、クエリ拡張モジュール306は、概念テーブルがリンクする全てのデータテーブル310を、関連性とは無関係に、単一のデータテーブルに結合することによってクエリを拡張し、概念テーブルへのクエリを、その単一のデータテーブルに対し実行する。
ある実施形態では、クエリ拡張モジュール306は、データテーブル310に対し、直接、クエリを行う。代替実施形態では、クエリ拡張モジュール306は、拡張したクエリを、実行するためにデータベースサーバにサブミットする。この実施形態では、クエリプロセッサやデータベースサーバの変更を必ずしも必要とはしない。
カーソリングモジュール308は、概念テーブルの読み取りとナビゲーションとを可能にする。概念テーブルを開くために、ユーザインタフェース302を介して信号を受信すると、カーソリングモジュール308は、存在するデータテーブルへの全てのマッピングを分析する。このデータテーブルからスカラデータ値がマッピングを用いて検索され、検索されたスカラデータ値は、表示のため、ユーザインタフェース302に戻される。
ユーザが、データテーブルを含んだ概念テーブルのフィールドを選択すると、そのフィールドでテーブルマッピングが参照される。マッピングされたデータテーブルのスナップショットがとられ、その結果が、概念テーブルに表示される。一実施形態では、加えてマッピングした先のデータテーブルを、そのコンテンツが変化できないように編集に対してロックする。代替実施形態では、マッピングした先のデータテーブルはロックされずに、その代わり、定期的に更新がチェックされ、表示された概念テーブルに伝達される。
当業者には当然のことながら、図3と併せて提示した例示的実施形態は、データテーブルを含む可能性がある概念テーブルを伴ったが、請求範囲に記載の発明の範囲を逸脱することなく、適宜、多くのレベルの間接的手段を用いることができる。例えば、概念テーブルは、1または複数の概念テーブルを含んでもよく、その1または複数の概念テーブル自体も、さらに他の概念テーブルを含んでもよい。この場合、無限ループ、つまり、(直接的にせよ、間接的にせよ)それ自体を参照する概念テーブルであり、無数の間接的手段を作成しないように注意しなければならない。
ある実施形態では、データモデリングモジュール304は、データストアを原子的に行うことができる。これは、所定のいかなるデータストアの試みにおいても、データテーブルの全てが更新されるか、データテーブルは全く更新されないかのいずれかであることを意味する。同様に、データテーブルが遷移状態の間は、データの読み取りは回避されることもある。原子データテーブルへの書き込みは、セマフォ、ファイルロック、あるいは当業者には既知の他の方法によって行われてもよく、ロールバック(1または複数の保留中の書き込みを取り消すこと)を組込んでもよい。
図4は、本発明の一実施形態に従って、概念テーブルが作成される場合の動作フロー図である。受信動作402では、ユーザからの信号を受信し、複合データ型を、既存テーブルまたは概念テーブルに追加する。この信号は、ユーザインタフェースを介してユーザから、または自動コンピュータ処理や、その他の入力源から受信してもよい。この受信が、少なくともデータテーブルを作成するために、作成動作404を起動する。
作成動作404では、複合データと関連したいかなるスカラ値をも含むために、少なくとも1つのデータテーブルを作成する。複合データフィールドに入ったデータは、概念テーブルが格納されると、対応するデータテーブルにシュレッドされる。一実施形態では、作成された各データテーブルは、1または複数のデータベースファイルの形式をとる。他の実施形態では、生成された各データテーブルは、1または複数のデータベースファイル内でデータ構造の形式をとる。さらに他の実施形態では、作成動作404は、加えて1または複数のスカラ値を、各作成されたデータテーブル内でデフォルト値に初期化する。また、一実施形態では、適切なデータテーブルが既に存在していれば、作成動作404を省略してもよく、データテーブルは、単にリンクされるだけでよい。
作成動作404に続いてリンク動作406では、1または複数のリンクを、作成動作404で作成した1または複数のデータテーブルに対応する概念テーブルに追加する。複合データフィールドがカーソリング(図3と併せて上述し、また、図7と併せて下記で説明する)によって選択されると、リンクはデータテーブルを検索(locate)するのに用いてよい。また、複合データフィールド内でスカラ値が追加され、あるいは修正されると(図3と併せて上記で説明)、リンクはデータテーブルを検索するのに用いてもよい。
判定動作408では、複合データを入れるために、追加テーブルが必要かどうかを判定する。もっと多くのテーブルが必要であれば、このフローはYESに分岐し、作成動作404に戻る。これ以上のテーブルが必要でなければ、フローはNOに分岐し、フローの終了410に至る。
いったんフローの終了410に至ると、複合データは、カーソリング(図3と併せて上記で、また、図7と併せて下記で説明)を用いて表示や操作が行われ、さらにシュレッディング(図3と併せて上述し、また、図5と併せて下記で説明する)によって、格納されてもよい。
一実施形態では、既存のデータテーブルを、概念テーブルに挿入してもよい。このような実施形態では、検証動作(不図示)でデータテーブルの存在を検証し、作成動作404は省略されるであろう。
図5は、本発明の一実施形態による動作フロー図であり、ここでは、概念テーブルからのデータがシュレッドされ、対応する1または複数のデータテーブルに格納される。
受信動作502は、概念テーブルに関連する1または複数の複合データ値を格納する信号を受信する。この信号は、ユーザが、データベース管理アプリケーション内でデータを明らかに格納した結果であってもよいし、または、修正データを同期させる自動プロセスの結果であってもよい。この受信動作502で信号を受信すると、分析動作504が起動する。
分析動作504では、複合データが格納される際に経由する概念テーブルを分析し、その概念テーブルの構造を判定する。この構造データに基づき、決定動作506では、データテーブル内のロケーションへの1または複数のマッピングを判定する。これらのマッピングは、1組のデータテーブル座標、データテーブルを含むメモリロケーションに対するポインタ、データテーブルファイルネーム、固有のレコード識別番号、またはデータをアドレス指定する他の手段でも、以上のあらゆる組合せの形を取ってもよい。
格納動作508では、概念テーブルからの1または複数のデータ値を、そのデータ値個別のデータテーブルに、上記マッピングを用いて格納する。その際、概念テーブルのデータは、すでに、うまくシュレッドされている。このデータは、カーソリング(図3と併せて上述し、また、図7と併せて下記で説明する)によって、後で「まとめられる(unshredded)」場合もある。ある実施形態では、格納動作508でデータストアを原子的に行う。また、他の実施形態では、格納動作508で、格納が全て完了しなかった状態をロールバックすることができる。
図6は、本発明の一実施形態による動作フロー図であり、ここでは、概念テーブルのクエリが、シュレッドされたデータを処理するために拡張される。受信動作602では、概念テーブルへのクエリを受信する。一実施形態では、このクエリは、ユーザによってテキスト形式で入れられてもよい。また、他の実施形態では、このクエリは、グラフィカルユーザインタフェースを用いて一部または全てが構成されてもよい。さらに他の実施形態では、このクエリは、コンピュータが自動的に生成してもよい。
分析動作604では、複合データがクエリされる際に経由する概念テーブルを分析し、その概念テーブルの構造を、データテーブルへのあらゆる関連マッピングとともに判定する。このマッピングは、(図5と併せて上述したような)さまざまな形式をとることが可能である。
判定動作606では、分析動作604で得られた構造データとマッピングとを、一組の拡張規則と併せて用い、クエリに適した規則があるかどうか、さらにその規則が拡張を必要としているかどうかを判定する。クエリに適した規則がない場合、または、適応可能な規則によって、拡張が完了したと決定された場合は、フローはNOに分岐し、発行動作610に進む。あるいは、1または複数の規則がクエリに適している場合は、フローはYESに分岐し、適用動作608に進む。
1または複数の拡張規則が、クエリに用いるのに適している場合は、適用動作608で、その規則に従ってクエリを拡張する。一実施形態では、適用動作で、クエリの拡張の一部として、新しいクエリを作成してもよい。いくつかの例示的拡張規則を、下記の表1〜12に記載する。そこには、データを評価する前に、複数のデータテーブルを一緒に組み合わせるJOINなどのSQL文を用いた拡張も含まれる。当業者には当然のことながら、判定動作606および適用動作608は、クエリが十分に拡張し、発行動作610がいつでもクエリを発行できるようになるまでは、繰り返し行ってもよい。2つ以上の規則は、さまざまな順番で適用することができ、1規則は、クエリの拡張において2回以上適用することができる。クエリのインクリメントな拡張を実施する実施形態では、クエリの拡張規則は、互いに直交が保たれており、このため、かなり簡単である。クエリのインクリメントな拡張を実施する実施形態では、データ構造は、インクリメントな拡張規則を適用した中間結果を格納する必要がある場合もある。また、代替実施形態では、複数のクエリ拡張規則を、適用動作608にて適用してもよい。
発行動作610では、判定および適用動作606、608にて拡張されたクエリを発行する。ある実施形態では、発行動作610で、直接、データベースのデータへのクエリを行う。また、代替実施形態では、発行動作610で、データベースサーバにクエリを送信する。
図7は、本発明の一実施形態による動作フロー図であり、ここでは、カーソリングによって、シュレッドされた概念テーブルからデータを検索することができる。受信動作702では、信号を受信し、概念テーブルの複合データを開く。この信号は、表示しなければならない複合データを含む既存の概念テーブルを、ユーザが開くことによって発生させてもよいし、また複合データを含む概念テーブルのフィールドに、ユーザがカーソルを移動させることによって発生させてもよい。あるいは、ユーザが生成したその他の入力、またはコンピュータが生成した入力によって発生させてもよい。
読み取り動作704では、概念テーブルに関連付けられたデータテーブルのロケーションへの1または複数のマッピングを読み取る。上記で論じたように、このマッピングは、さまざまな形式をとってもよい。次に、検索動作706で、マッピングによって示されたデータテーブルからスカラデータ値を検索する。検索動作706で検索したスカラ値は、概念テーブルに追加するのに用いられ、この概念テーブルは、表示動作708で表示される。
表示動作708では、検索動作706で検索したスカラ値を含む概念テーブルを表示する。一実施形態では、この概念テーブルを表示動作708にて直接、画面上にレンダリングしてもよく、また、他の実施形態では、アプリケーションプログラムインターフェース(API)によってレンダリングを行ってもよく、さらに、他の想定内の実施形態では、当業者に既知である他のデータ表示法を用いてもよい。
当業者には当然のことながら、本願明細書中で主張する実施形態は、複合データ型を用いるデータベースやスプレッドシートアプリケーションのコンテキストで用いることができるばかりではなく、Microsoft(登録商標) Sharepointなどのコラボレーティブサービス用パッケージソフトのコンテキストでも用いることができる。このようなパッケージソフトは、複数の値を含むソフト専用の複合データ型(例えば、多項選択、添付ファイルなど)を内蔵している場合がある。これらの複合データ型も、本願明細書中で論じる例示的な実施形態と実質的に同様に扱うことが可能である。
特定の一実施形態では、1組のSQLクエリ拡張規則は、クエリ拡張モジュール306(図3)、および判定動作606と適用動作608(図6)で用いられる。いくつかのSQLクエリ拡張規則からなる例示的1組を表1〜11に表す。これらの規則は、複合性が変化するという状況に対処する。一例では(表1)、かなり単純なSELECTクエリが拡張される。単純なSELECTクエリは、グループ化が行われない、あるいは集約がないクエリとして定義される。複合スカラフィールドについてなんら制約が設けられていない場合は、拡張クエリでは、親テーブルのみを参照すればよい。クエリのWHERE節で、複合スカラについて制約が設けられている場合は、テーブルと複合データ型との間の結合を行わなければならない(基本的な例として、表1を参照)。WHERE節にあるフィルタは、必要に応じて修正し、テーブルの複合列の代わりに複合データ型を参照しなければならない。SELECT節にあるフィールドは、適切なテーブルリファレンスを用いて、同様に修正しなければならない。複合スカラに関する左結合ではない結合を、テーブルと別のテーブルとの間で行わなければならない場合は、拡張したクエリは、親テーブルとその複合テーブルとを結合するためのサブクエリを含むことになる(基本的な例として、表4を参照)。未拡張のクエリのWHERE節にNOTがあれば、このNOTは、[Table].[Complex Column] NOT IN (SELECT [Complex Column] FROM [Table] JOIN [Flat Table] ON [Table].[Complex Column] = [Flat Table].[Foreign Key] WHERE [Flat Table].[Complex Scalar] = value)に変換されることになる。
表4〜11に、集約クエリに対する拡張規則を図示する。そのような規則の1つは、複合型の集約が、テーブルと複合データ型との左結合(LEFT JOIN)に対し、実行されることである。また、もう1つ別の規則は、さまざまな複合型の集約が、未拡張のクエリにある場合は、その各集約複合型は、サブクエリを用いて計算することになる、ということである。また、HAVING節(表10)があれば、外部クエリでは、WHERE節に変換されることになる。HAVING節が、集約SELECTリスト中で別段参照されない複合型を参照する場合は、新たなサブクエリが作成され、テーブルと複合型とを結合することができる。
表1:複合スカラに対するフィルタの例
表2:複数の複合スカラに対するフィルタの例
表3:複合スカラを結合する場合のサブクエリの例
表4:複合型に関する集約の例
表5:同じ複合スカラに対して制約がある複合型に関する集約
表6:異なる複合スカラに対して制約がある複合型に関する集約の例
表7:複合スカラ1および複合スカラ2に対して制約がある複合型1に関する集約の例
表8:複合型1および複合型2に関する集約の例
表9:複合スカラ1および複合スカラ2に対して制約がある複合型1および複合型2に関する集約の例
表10:HAVING節における複合型の例
表11:HAVING節に複合型2がある複合型1に関する集約の例
以上説明した各種実施形態は、図示のためにのみ与えられるものであり、本発明を限定するものとみなしてはならない。当業者であれば、本明細書で図示し、説明した実施形態や用途例に従うことなく、かつ、以下の請求項に記載する本発明の真の精神と範囲から逸脱することなく、本発明を構成してもよいさまざまな修正形態や変更形態が即座に分かるであろう。
102 テーブル
104 注文ID列
106 顧客列
108 注文日付列
104 注文ID列
106 顧客列
108 注文日付列
Claims (18)
- 概念テーブルに複合データを追加するコンピュータ実施方法であって、
前記概念テーブルに複合データを追加する信号を受信するステップと、
1または複数のデータテーブルを作成するステップと、
前記1または複数のデータテーブルへのリンクを作成するステップと
を有することを特徴とするコンピュータ実施方法。 - 前記複合データは、データテーブルを含むことを特徴とする請求項1に記載のコンピュータ実施方法。
- 前記複合データは、概念テーブルを含むことを特徴とする請求項1に記載のコンピュータ実施方法。
- 請求項1に記載のコンピュータ実施方法であって、前記概念テーブルのデータをモデル化するステップをさらに有し、前記データのモデル化するステップは、
1または複数のデータ値を格納する信号を受信するステップと、
前記概念テーブルの構造を分析するステップと、
1または複数のデータテーブルへの1または複数のマッピングを判定するステップと、
前記1または複数のデータテーブルにデータを格納するステップと
を含むことを特徴とする前記コンピュータ実施方法。 - 請求項1に記載のコンピュータ実施方法であって、さらに前記概念テーブルのクエリを拡張するステップを有し、前記クエリを拡張するステップは、
概念テーブルのクエリを受信するステップと、
前記概念テーブルの構造を分析するステップと、
1または複数の拡張規則を前記クエリに適用するステップと、
前記クエリを発行するステップと
を含むことを特徴とする前記コンピュータ実施方法。 - 前記クエリへの前記1または複数の拡張規則の適用を増加的に行うことを特徴とする請求項5に記載のコンピュータ実施方法。
- 複数の前記1または複数の拡張規則を同一オペレーションで適用しても良いことを特徴とする請求項5に記載のコンピュータ実施方法。
- 前記クエリへの前記1または複数の拡張規則の適用するステップは、
前記概念テーブルのモデルに複数のデータテーブルを組み合わせるステップと、
前記クエリを、前記概念テーブルの前記モデルへ適用するステップと
をさらに含むことを特徴とする請求項5に記載のコンピュータ実施方法。 - 前記クエリの発行するステップは、実行のために前記クエリをデータベースサーバにサブミットするステップをさらに含むことを特徴とする請求項5に記載のコンピュータ実施方法。
- 前記クエリの発行するステップは、前記データベースのデータに直接アクセスするステップをさらに含むことを特徴とする請求項5に記載のコンピュータ実施方法。
- 請求項1に記載のコンピュータ実施方法であって、前記概念テーブルでのカーソリングするステップをさらに有し、前記カーソリングするステップは、
前記概念テーブルの複合データにアクセスする信号を受信するステップと、
前記複合データに関連する1または複数のマッピングを読み取るステップと、
前記マッピングを用いて1または複数のデータテーブルからスカラデータを検索するステップと
を含むことを特徴とする前記コンピュータ実施方法。 - 前記概念テーブルに前記スカラデータを表示するステップをさらに有することを特徴とする請求項11に記載のコンピュータ実施方法。
- コンピューティングシステムにアクセス可能であり、かつ請求項1に記載の方法を行うためのコンピュータプログラムを符号化することを特徴とするコンピュータ読取可能媒体。
- 複合データをテーブルに追加し、複合データを1または複数のデータテーブルに格納するデータモデリングモジュールと、
1または複数のデータテーブルのクエリを含む概念テーブルのクエリを拡張するクエリ拡張モジュールと、
概念テーブルの複合データを検索するカーソリングモジュールと
を備えたことを特徴とする前記概念テーブルモデル化のシステム。 - 前記クエリ拡張モジュールおよび前記カーソリングモジュールからの結果を表示する表示モジュールをさらに備えたことを特徴とする請求項14に記載のシステム。
- コンピューティングシステムにアクセス可能であり、かつ概念テーブルのデータをモデル化するコンピュータプログラムを符号化するコンピュータ読取可能媒体であって、
1または複数のデータ値を格納する信号を受信するステップと、
前記概念テーブルの構造を分析するステップと、
1または複数のデータテーブルへの1または複数のマッピングを判定するステップと、
前記1または複数のデータテーブルにデータを格納するステップと
を備えたことを特徴とする前記コンピュータ読取可能媒体。 - 請求項16に記載のコンピュータ読取可能媒体であって、前記コンピュータプログラムは概念テーブルのクエリを拡張するステップをさらに備え、前記拡張は、
概念テーブルのクエリを受信するステップと、
前記概念テーブルの構造を分析するステップと、
前記クエリに1または複数の拡張規則を適用するステップと、
前記クエリを発行するステップと
を含むことを特徴とする前記コンピュータ読取可能媒体。 - 請求項16に記載のコンピュータ読取可能媒体であり、前記コンピュータプログラムはさらに概念テーブルでのカーソリングするステップを備え、前記カーソリングするステップは、
概念テーブルの複合データにアクセスする信号を受信するステップと、
前記複合データに関連する1または複数のマッピングを読み取るステップと、
前記マッピングを用いて1または複数のデータテーブルからスカラデータを検索するステップと
を含むことを特徴とする前記コンピュータ読取可能媒体。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/013,619 US7890532B2 (en) | 2004-12-15 | 2004-12-15 | Complex data access |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006172446A true JP2006172446A (ja) | 2006-06-29 |
Family
ID=35559324
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005340352A Pending JP2006172446A (ja) | 2004-12-15 | 2005-11-25 | 複合データアクセス |
Country Status (10)
Country | Link |
---|---|
US (1) | US7890532B2 (ja) |
EP (1) | EP1672540A1 (ja) |
JP (1) | JP2006172446A (ja) |
KR (1) | KR101213798B1 (ja) |
CN (1) | CN1790324B (ja) |
AU (1) | AU2005225020B2 (ja) |
BR (1) | BRPI0504995A (ja) |
CA (1) | CA2526045C (ja) |
MX (1) | MXPA05012291A (ja) |
RU (1) | RU2406115C2 (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080104498A1 (en) * | 2006-10-25 | 2008-05-01 | International Business Machines Corporation | Dynamically Merging Columns Within a Table |
US9317494B2 (en) * | 2007-04-03 | 2016-04-19 | Sap Se | Graphical hierarchy conversion |
WO2009090437A1 (en) * | 2008-01-16 | 2009-07-23 | SZILÁGYI, Zoltàn | Database and a method for creating thereof |
KR100926336B1 (ko) * | 2008-02-29 | 2009-11-10 | 나문수 | 관계 기반 애플리케이션 매핑 방법 및 이를 실현시키기위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체 |
US8001155B2 (en) * | 2008-06-20 | 2011-08-16 | Microsoft Corporation | Hierarchically presenting tabular data |
US8200668B2 (en) * | 2008-06-24 | 2012-06-12 | Microsoft Corporation | Scalar representation for a logical group of columns in relational databases |
US9665620B2 (en) | 2010-01-15 | 2017-05-30 | Ab Initio Technology Llc | Managing data queries |
US9116955B2 (en) * | 2011-05-02 | 2015-08-25 | Ab Initio Technology Llc | Managing data queries |
US8868545B2 (en) * | 2011-12-29 | 2014-10-21 | Teradata Us, Inc. | Techniques for optimizing outer joins |
EP3726375B1 (en) | 2013-12-06 | 2023-02-01 | AB Initio Technology LLC | Source code translation |
US9483545B2 (en) * | 2014-05-30 | 2016-11-01 | International Business Machines Corporation | Grouping data in a database |
US10437819B2 (en) | 2014-11-14 | 2019-10-08 | Ab Initio Technology Llc | Processing queries containing a union-type operation |
US10417281B2 (en) | 2015-02-18 | 2019-09-17 | Ab Initio Technology Llc | Querying a data source on a network |
US11093223B2 (en) | 2019-07-18 | 2021-08-17 | Ab Initio Technology Llc | Automatically converting a program written in a procedural programming language into a dataflow graph and related systems and methods |
CN111930532B (zh) * | 2020-07-09 | 2023-11-17 | 智盈未来(西安)信息技术有限公司 | 航电数据集成方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0713821A (ja) * | 1993-06-29 | 1995-01-17 | Hitachi Software Eng Co Ltd | データの編集方法 |
JPH113257A (ja) * | 1997-06-13 | 1999-01-06 | Fujitsu Ltd | リレーショナルデータベース管理装置,中間リンクテーブル自動作成処理方法およびプログラム記憶媒体 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6061690A (en) * | 1997-10-31 | 2000-05-09 | Oracle Corporation | Apparatus and method for storage of object collections in a database system |
US6122644A (en) | 1998-07-01 | 2000-09-19 | Microsoft Corporation | System for halloween protection in a database system |
JP2001056810A (ja) * | 1999-06-07 | 2001-02-27 | Kawasaki Steel Systems R & D Corp | データベースアクセスシステム |
JP3211956B2 (ja) * | 1999-08-31 | 2001-09-25 | 勲 清水 | データベースシステム |
US6564203B1 (en) | 2000-02-24 | 2003-05-13 | Oracle Corporation | Defining instead-of triggers over nested collection columns of views |
US6892204B2 (en) | 2001-04-16 | 2005-05-10 | Science Applications International Corporation | Spatially integrated relational database model with dynamic segmentation (SIR-DBMS) |
JP3860992B2 (ja) * | 2001-11-09 | 2006-12-20 | 株式会社ターボデータラボラトリー | データの結合・提示方法、および、データ結合・提示プログラム |
US6931391B2 (en) * | 2002-06-21 | 2005-08-16 | Microsoft Corporation | Systems and methods for generating prediction queries |
US7152073B2 (en) * | 2003-01-30 | 2006-12-19 | Decode Genetics Ehf. | Method and system for defining sets by querying relational data using a set definition language |
US7433886B2 (en) | 2003-10-24 | 2008-10-07 | Microsoft Corporation | SQL language extensions for modifying collection-valued and scalar valued columns in a single statement |
RU36541U1 (ru) | 2003-12-23 | 2004-03-10 | Григорьев Евгений Александрович | Объектно-ориентированная система управления реляционными базами данных |
-
2004
- 2004-12-15 US US11/013,619 patent/US7890532B2/en not_active Expired - Fee Related
-
2005
- 2005-10-17 AU AU2005225020A patent/AU2005225020B2/en not_active Ceased
- 2005-10-26 KR KR1020050101096A patent/KR101213798B1/ko active IP Right Grant
- 2005-11-08 CA CA2526045A patent/CA2526045C/en not_active Expired - Fee Related
- 2005-11-11 BR BRPI0504995-4A patent/BRPI0504995A/pt not_active IP Right Cessation
- 2005-11-15 CN CN2005101250293A patent/CN1790324B/zh not_active Expired - Fee Related
- 2005-11-15 MX MXPA05012291A patent/MXPA05012291A/es active IP Right Grant
- 2005-11-24 EP EP05111223A patent/EP1672540A1/en not_active Ceased
- 2005-11-25 JP JP2005340352A patent/JP2006172446A/ja active Pending
- 2005-12-14 RU RU2005139141/08A patent/RU2406115C2/ru not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0713821A (ja) * | 1993-06-29 | 1995-01-17 | Hitachi Software Eng Co Ltd | データの編集方法 |
JPH113257A (ja) * | 1997-06-13 | 1999-01-06 | Fujitsu Ltd | リレーショナルデータベース管理装置,中間リンクテーブル自動作成処理方法およびプログラム記憶媒体 |
Also Published As
Publication number | Publication date |
---|---|
CA2526045A1 (en) | 2006-06-15 |
AU2005225020A1 (en) | 2006-05-04 |
MXPA05012291A (es) | 2006-06-19 |
KR20060067812A (ko) | 2006-06-20 |
CN1790324A (zh) | 2006-06-21 |
BRPI0504995A (pt) | 2006-09-12 |
CN1790324B (zh) | 2010-06-16 |
CA2526045C (en) | 2013-03-12 |
RU2005139141A (ru) | 2007-06-20 |
US7890532B2 (en) | 2011-02-15 |
EP1672540A1 (en) | 2006-06-21 |
AU2005225020B2 (en) | 2010-09-30 |
US20060129572A1 (en) | 2006-06-15 |
RU2406115C2 (ru) | 2010-12-10 |
KR101213798B1 (ko) | 2012-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101213798B1 (ko) | 복합 데이터 액세스 | |
AU2020260374B2 (en) | Building reports | |
US7822795B2 (en) | Apparatus and methods for displaying and determining dependency relationships among subsystems in a computer software system | |
US7925672B2 (en) | Metadata management for a data abstraction model | |
US7734619B2 (en) | Method of presenting lineage diagrams representing query plans | |
US7599924B2 (en) | Relationship management in a data abstraction model | |
EP1585036A2 (en) | Management of parameterized database queries | |
US20160092554A1 (en) | Method and system for visualizing relational data as rdf graphs with interactive response time | |
US20070299860A1 (en) | System and method for comparative analysis of business intelligence data | |
US20110246535A1 (en) | Apparatus and Method for Constructing Data Applications in an Unstructured Data Environment | |
US8135697B2 (en) | Search-friendly templates | |
US6931414B1 (en) | Creating visual data models combining multiple inter-related model segments | |
Fouché et al. | Foundations of SQL server 2008 R2 business intelligence | |
US20060136804A1 (en) | Generating a relational view for a base model schema | |
Zhao | SQL Pocket Guide | |
Langit | Using SSAS |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081112 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110426 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110726 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20111025 |