(57)【要約】【課題】  データベースに新しいフィールドを含むデータが追加されたときに、アプリケーションがそのフィールドをただちに利用できるようにする。【解決手段】  データベース１に１つ以上のフィールドで構成された新規レコード１１が追加格納されると、新規フィールド検出手段７が追加格納された新規レコード１１中から新規フィールド１２を検出し、検出したことを示す新規フィールド検出情報を通知し、また新規フィールド情報取得手段８が新規フィールド検出手段７で検出された新規フィールド１２の属性情報を取得し、これを通知し、アプリケーション通知手段１０が通知された新規フィールド検出情報と属性情報とをアプリケーション４に通知する。【選択図】        図１
2008052542.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上のフィールドで構成された複数のレコードを格納するデータベースと、
前記データベースに格納された前記複数のレコードを利用するアプリケーションと、
前記データベースに１つ以上のフィールドで構成された新規レコードを追加格納するデータ追加手段と、
前記データ追加手段により追加格納された前記新規レコード中から新規フィールドを検出し、この新規フィールドを検出したことを示す新規フィールド検出情報を通知する新規フィールド検出手段と、
前記新規フィールド検出手段により検出された新規フィールドの属性情報を取得し、取得した属性情報を通知する新規フィールド情報取得手段と、
前記新規フィールド検出手段により通知された前記新規フィールド検出情報と前記新規フィールド情報取得手段により通知された前記属性情報とを前記アプリケーションに通知するアプリケーション通知手段と、
を備えたことを特徴とするデータベース管理装置。
【請求項２】
フィールド名とデータ型とデータ長とデータ内容とにより構成された前記属性情報を格納するフィールド情報管理手段を備え、
前記新規フィールド検出手段は、前記データベースに追加格納された新規フィールドの属性情報と前記フィールド情報管理手段に格納された属性情報とに基づいて前記新規レコードに新規フィールドが存在するか否か判定することにより、前記新規レコード中から新規フィールドを検出することを特徴とする請求項１記載のデータベース管理装置。
【請求項３】
前記新規レコードの新規フィールドの属性情報を推定するフィールド属性情報推定手段を備え、
前記新規フィールド検出手段は、前記フィールド属性情報推定手段により推定された新規フィールドの属性情報と前記フィールド情報管理手段に格納された属性情報とに基づいて前記新規レコードに新規フィールドが存在するか否か判定することにより、前記新規レコード中から新規フィールドを検出することを特徴とする請求項２記載のデータベース管理装置。
【請求項４】
前記属性情報を格納する外部データベースとを備え、
前記新規フィールド情報取得手段は、前記新規フィールド検出手段により検出された新規フィールドの属性情報を外部データベースに格納された属性情報の中から取得し、取得した属性情報を通知することを特徴とする請求項１記載のデータベース管理装置。
【請求項５】
前記新規レコードは、この新規レコードを構成する複数のフィールドの属性情報が格納された属性情報取得先のＵＲＬが付加され、
前記新規レコードに付加された前記ＵＲＬに基づいて前記新規フィールドの属性情報を取得する属性情報ＵＲＬ取得手段を備え、
前記新規フィールド情報取得手段は、前記属性情報ＵＲＬ取得手段により取得された新規フィールドの属性情報を取得することを特徴とする請求項１記載のデータベース管理装置。
【請求項６】
前記新規フィールドを前記アプリケーションで処理するために必要な特別コードと追加データとを取得する追加データ取得手段と、
前記追加データ取得手段により取得された前記特別コードと前記追加データとを前記アプリケーションに送信する追加データ送信手段とを備えたことを特徴とする請求項１記載のデータベース管理装置。
【請求項７】
前記アプリケーション通知手段は、前記新規フィールド検出情報と前記属性情報とを通知した前記アプリケーションの情報を通知し、
前記アプリケーション通知手段により通知された前記アプリケーションの情報に基づいて前記新規フィールド検出情報と前記属性情報とが前記アプリケーションで処理不可の時には処理可能なアプリケーションに更新するアプリケーション更新手段を備えたことを特徴とする請求項１記載のデータベース管理装置。
【請求項８】
前記新規レコードとこの新規レコードを構成する新規フィールドの属性情報とを送信するデータ送信元と、
前記データ送信元により送信された前記新規レコードと前記属性情報とを無線通信を介して受信するデータ受信手段とを備え、
前記新規フィールド検出手段は、前記データ受信手段により受信された前記新規レコード中から新規フィールドを検出し、この新規フィールドを検出したことを示す新規フィールド検出情報を前記アプリケーション通知手段に通知し、
前記新規フィールド情報取得手段は、前記データ受信手段により受信された前記属性情報を取得し、取得した属性情報を前記アプリケーション通知手段に通知することを特徴とする請求項１記載のデータベース管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データベースに新しいデータが追加格納されたときのデータベースの管理システムに関するものである。
【背景技術】
【０００２】
現在、最も広く使われているデータベース管理システムは、表によってデータを管理するリレーショナルデータベース（ＲＤＢ）であるが、近年、非特許文献１等で解説されているＸＭＬデータベース（ＸＭＬ-ＤＢ）が注目されている。ＸＭＬ-ＤＢは、ＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ Ｍａｒｋｕｐ Ｌａｎｇｕａｇｅ）形式の情報をそのまま格納できるデータベースである。ＲＤＢが厳密なスキーマ(データ構造)を前提としたデータベース管理システム（ＤＢＭＳ）であり、後から新しいフィールドを追加するのが困難であるのに対して、ＸＭＬ-ＤＢはスキーマの変更に対して寛容で、新しいフィールドを含むデータを追加することが容易である。
一方、特許文献１には、複数のアプリケーションに共通の部分プログラムをオブジェクトコードで管理するデータベースで、データベースのデータ構造や、格納されているオブジェクトコードの更新を検出してアプリケーションに通知し、それに応じてアプリケーションが必要なオブジェクトコードをデータベースから取得する装置および方法が示されている。
【非特許文献１】山田祥寛著「ＸＭＬデータベース入門」翔泳社出版、２００６年４月１０日
【特許文献１】特許第３５５９５７１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来のＸＭＬ-ＤＢは、新しいフィールドを含むデータを追加することはできるが、それをアプリケーションに通知する機能は持っていなかった。例えば、カーナビのＰＯＩ（Ｐｏｉｎｔ  Ｏｆ  Ｉｎｔｅｒｅｓｔ／地点データ）情報がＸＭＬ形式で記述されてデータ放送等で配信され、データ放送受信アプリが受信したＰＯＩをＸＭＬ-ＤＢに格納し、ナビゲーションを行うアプリがＸＭＬ-ＤＢに格納されたＰＯＩを利用する(地図上に表示する等)場合を考えると、受信したＰＯＩに新しいフィールド（例えば、それまでＸＭＬ-ＤＢに格納されていなかった「お店の評判」フィールド）が含まれていても、ナビゲーションを行うアプリは、それをただちに知ることができず、利用することができなかった。
【０００４】
一方、特許文献１に示されている装置および方法では、「データ構造の更新を検出する手段」、「スキーマの変更を通知」という記述はあるが、データが追加されたときに、そのデータに新しいフィールドが含まれていることを検出する手段も、そのフィールドの情報(データ型、データ長等)を取得する手段も明記されていないため、新しいフィールドを利用するための情報が不足しており、上記のＸＭＬ-ＤＢの課題を解決することはできなかった。
この発明は上記のような問題点を解決するためになされたもので、新しいフィールドを含むデータが追加されたときに、そのフィールドに関する情報とともにアプリケーションをも通知することにより、アプリケーションがそのフィールドをただちに利用できるようにすることを目的とする。
【課題を解決するための手段】
【０００５】
この発明に係るデータベース管理システムは、１つ以上のフィールドで構成された複数のレコードを格納するデータベースと、
前記データベースに格納された前記複数のレコードを利用するアプリケーションと、
前記データベースに１つ以上のフィールドで構成された新規レコードを追加格納するデータ追加手段と、
前記データ追加手段により追加格納された前記新規レコード中から新規フィールドを検出し、この新規フィールドを検出したことを示す新規フィールド検出情報を通知する新規フィールド検出手段と、
前記新規フィールド検出手段により検出された新規フィールドの属性情報を取得し、取得した属性情報を通知する新規フィールド情報取得手段と、
前記新規フィールド検出手段により通知された前記新規フィールド検出情報と前記新規フィールド情報取得手段により通知された前記属性情報とを前記アプリケーションに通知するアプリケーション通知手段と、を備えたものである。
【発明の効果】
【０００６】
この発明は、データベースに１つ以上のフィールドで構成された新規レコードが追加格納されると、新規フィールド検出手段が追加格納された新規レコード中から新規フィールドを検出し、検出したことを示す新規フィールド検出情報を通知し、また新規フィールド情報取得手段が新規フィールド検出手段で検出された新規フィールドの属性情報を取得し、これを通知し、アプリケーション通知手段が通知された新規フィールド検出情報と属性情報とをアプリケーションに通知することにより、アプリケーションが通知された情報に基づいて新規レコードの新規フィールドを新規レコードの追加後にすぐに利用することができる。
【発明を実施するための最良の形態】
【０００７】
実施の形態１．
図１は、実施の形態１のデータベース管理システムの構成図である。
図１において、データベース１は、レコード２（２ａ、２ｂ、・・・２ｍ）の単位でデータを格納し、各レコード２は１つ以上のフィールドから構成される。１つ以上のアプリケーション４がデータベース１を利用する。データベース１内の各フィールドの属性情報(フィールド名、データ型、データ長、データ内容など)は、フィールド情報管理手段５によって管理される。
データ追加手段６は、新規レコード１１をデータベース１に追加する。また、新規フィールド検出手段７はデータ追加手段６によりデータベース１に追加された新規レコード１１の中から新規フィールド１２を検出する手段であり、新規フィールド情報取得手段８は新規フィールド１２の属性情報を取得する手段である。
また、フィールド属性情報推定手段９は新規レコード１１中の新規フィールド１２の内容からその属性情報を推定する手段であり、アプリケーション通知手段１０は、データベース１に追加された新規レコード１１中に新規フィールド１２が検出されたことを示す新規フィールド検出情報と、新規フィールド１２の属性情報とをアプリケーション４に通知する手段である。
【０００８】
次に、動作について説明する。
図２は、データベース管理システムの処理動作を示すフローチャートである。
まず、データ追加手段６が新規レコード１１をデータベース１に追加する（ステップＳ１）。新規レコード１１は、ＸＭＬで表現されていても、他の形式で表現されていてもよい。また、データ追加手段６によるデータ追加の具体的方法は、専用のアプリケーションプログラムによってファイルから読み込む方法、人間の手入力による方法など、どの方法でも構わない。
【０００９】
次に、新規フィールド検出手段７は、新規レコード１１の各フィールドのフィールド名とフィールド情報管理手段５に格納されている各フィールドの属性情報とを比較することによって、新規レコード１１の各フィールド中に新規フィールド１２が存在するか否かを判定する（ステップＳ２）。これにより、新規フィールド検出手段７は、新規レコード１１中の新規フィールド１２を検出することができる。例えば、新規レコード中の各フィールド名とフィールド情報管理手段５に格納されているフィールド名とを比較して、同一のフィールド名が、フィールド情報管理手段５に格納されていなかった場合に、そのフィールドを新規フィールド１２と判定する。
【００１０】
次に、新規フィールド情報取得手段８は、新規フィールド検出手段７によって検出された新規フィールド１２の属性情報を取得する（ステップＳ３）。この属性情報は、フィールドのデータそのものからフィールド属性情報推定手段９によって推定されたものである。例えば、数字「０」〜「９」のみから構成されていたら、そのデータ型を整数と推定する、データ全体が引用符「’」や「”」で囲まれていたら、そのデータ型を文字列と推定する等である。
【００１１】
次に、新規フィールド検出手段７は、データ追加手段６によりデータベース１に追加された新規レコード１１に新規フィールド１２が検出されたことを示す新規フィールド検出情報をアプリケーション通知手段１０に通知し（ステップＳ４）、新規フィールド情報取得手段８は新規フィールド１２の属性情報をアプリケーション通知手段１０に通知する（ステップＳ５）。
【００１２】
次に、アプリケーション通知手段１０は、新規フィールド検出情報と新規フィールド１２の属性情報とをアプリケーション４に通知する（ステップＳ６）。これにより、アプリケーション４は、データベース１に新規レコード１１が追加され、新規レコード１１に新規フィールド１２が存在することと、新規フィールド１２の属性情報について把握することができる。
【００１３】
以上のように本実施の形態によれば、新規フィールド１２が追加されたこと、およびその属性情報をただちにアプリケーション４に通知するようにしているので、アプリケーション４は、通知された情報に基づいて新規レコード１１の新規フィールド１２を、新規レコード１１の追加後すぐに利用することができる。例えば、新規フィールド１２のデータ型が整数であった場合は、整数型として画面に表示する等である。
【００１４】
実施の形態２．
実施の形態１では新規フィールド１２の属性情報をフィールド属性情報推定手段９によって推定していたが、本実施の形態では新規フィールド１２の属性情報を外部のデータベースから取得する場合について説明する。
図３は、実施の形態２のデータベース管理システムの構成図であり、図１と同一符号は同一又は相当部分を示し説明を省略する。
図３において、１３は新規フィールド１２の属性情報を問い合わせるための外部データベース問い合わせ手段、１４はフィールドの属性情報を格納した外部データベース、１５は外部データベース１４との間で通信を行うための通信手段である。
次に動作について説明する。
【００１５】
本実施の形態の動作は、新規フィールド１２の属性情報を取得する部分のみが、実施の形態１と異なるため、その部分のみ説明する。
新規フィールド情報取得手段８は、新規フィールド１２と判定された各フィールドについて、その属性情報を取得する。属性情報は、外部データベース問い合わせ手段１３から通信手段１５を経由して外部データベース１４に問い合わせを行うことによって取得する。例えば、新規フィールド１２のフィールド名に基づいて外部データベース１４で検索を実行し、その属性情報を外部データベース１４から取得する。
【００１６】
以上のように本実施の形態によれば、新規フィールド１２の属性情報を外部データベース１４から取得するようにしたため、より正確な属性情報を得ることが可能となる。これは、例えばインターネットやデータ放送などで広く配布されるデータをデータベース１に追加する場合で、配布されるデータの属性情報が、外部データベース１４に格納され、公開されている場合に用いることができる手法である。
【００１７】
実施の形態３．
実施の形態２では外部データベース１４が１つに固定されていたが、本実施の形態では追加されるデータによって属性情報の入手先が異なる場合について説明する。
図４は、実施の形態３のデータベース管理システムの構成図であり、図３と同一符号は同一又は相当部分を示し説明を省略する。
図４において、１６は新規フィールド１２の属性情報取得先のＵＲＬを取得する属性情報ＵＲＬ取得手段、１７は新規レコード１１に付加してデータ提供元から送られてくる属性情報ＵＲＬである。
【００１８】
次に動作について説明する。
本実施の形態の動作は、新規フィールド１２の属性情報を取得する部分のみが、実施の形態１と異なるため、その部分のみ説明する。
新規フィールド情報取得手段８は、新規フィールド１２と判定された各フィールドについて、その属性情報を取得する。新規レコード１１には、その中に含まれる各フィールドの属性情報が格納されているＵＲＬ（属性情報ＵＲＬ１７）が付加されており、属性情報ＵＲＬ取得手段１６は、その属性情報ＵＲＬ１７を取得して、通信手段１５を経由して、そのＵＲＬで指定された外部データベース１４で検索を実行し、新規フィールド１２の属性情報を外部データベース１４から取得する。
【００１９】
以上のように本実施の形態によれば、新規フィールド１２の属性情報を、追加される新規レコード１１毎に異なる属性情報ＵＲＬで指定される外部データベースから取得するようにしたため、データの提供元が個別に属性情報を提供できるようになり、より細かい情報の提供が可能となる。
【００２０】
実施の形態４．
実施の形態１では、新規フィールド１２がデータベース１に追加されたことと新規フィールド１２の属性情報をアプリケーション４に通知していたが、本実施の形態では新規フィールド１２を処理するためのコードおよび追加データもアプリケーション４に送信する場合について説明する。
図５は、実施の形態４のデータベース管理システムの構成図であり、図１と同一符号は同一又は相当部分を示し説明を省略する。
図５において、１８は新規フィールド１２をアプリケーション４で処理するために必要なコードおよび追加データを取得する追加データ取得手段、１９は新規フィールド１８で取得したコードや追加データをアプリケーション４に送信する追加データ手段である。
【００２１】
次に動作について説明する。
本実施の形態の動作は、新規フィールド１２がデータベース１に追加されたことと新規フィールド１２の属性情報をアプリケーション４に通知するまでの動作については実施の形態１と同一であるため、その後の動作のみについて説明する。
新規フィールド情報取得手段８は、新規フィールド１２をアプリケーション４で処理するのに特別なコードや追加データが必要な場合は、新規フィールド処理用コードおよび追加データ取得手段１８により、それらのコードや追加データを取得して、新規フィールド処理用コードおよび追加データ送信手段１９によりアプリケーション４に送信する。
【００２２】
このように特別なコードや追加データが必要になるのは、新規フィールド１２のデータ型がそれまでデータベース１内になかった新しいデータ型であった場合や、そのデータ型を処理するコードが(処理速度の面などで)改良された場合などである。また、新規フィールド処理用コードおよび追加データ取得手段１８は、具体的には、外部のファイルサーバなどである。
【００２３】
以上のように本実施の形態によれば、新規フィールド１２をアプリケーション４で処理するのに必要なコードや追加データを取得してアプリケーション４に送信するようにしたので、新規フィールド１２のデータ型がそれまでデータベース１内になかった新しいデータ型であった場合でも、アプリケーション４で正しく処理することができる。
例えば、新規フィールド１２がＪＰＥＧ形式の画像データで、それまでアプリケーション４がＪＰＥＧ形式のデータを表示できなった場合に、ＪＰＥＧ形式の画像を表示するＤＬＬ形式のライブラリをアプリケーション４に送って、アプリケーション４で新規フィールド１２のデータ(ＪＰＥＧ形式の画像)を表示できるようにしたり、新規フィールド１２がＪＩＳ第二水準文字を含む日本語文字列で、それまでＪＩＳ第一水準のフォントしかなかった場合に、ＪＩＳ第二水準のフォントを追加データとしてアプリケーション４に送って、アプリケーション４で新規フィールド１２のデータ(ＪＩＳ第二水準文字)を表示できるようにしたりすることができる。
【００２４】
実施の形態５．
実施の形態４では、新規フィールド１２を処理するためのコードおよび追加データをアプリケーション４に送信していたが、本実施の形態では新規フィールド１２を処理するためにアプリケーション４そのものを更新する場合について説明する。
図６は、実施の形態５のデータベース管理システムの構成図であり、図１と同一符号は同一又は相当部分を示し説明を省略する。
図６において、２０はアプリケーション４の更新を行うためのアプリケーション更新手段である。
【００２５】
次に動作について説明する。
本実施の形態の動作は、新規フィールド１２がデータベース１に追加されたことと新規フィールド１２の属性情報をアプリケーション４に通知するまでの動作については実施の形態１と同一であるため、その後の動作のみについて説明する。
アプリケーション通知手段１０は、新規フィールド１２の情報を通知したアプリケーション４の情報をアプリケーション更新手段２０に通知する。
【００２６】
アプリケーション更新手段２０はアプリケーション４がどのデータ型のデータを処理可能であるかを管理しており、アプリケーション通知手段１０から通知された新規フィールド１２のデータ型が、アプリケーション４で処理できないデータ型だった場合に、そのアプリケーション４の更新を行う。アプリケーション４の更新は、アプリケーション４全体を入れ替えても、(一般的に行われている)差分更新でもよい。また、アプリケーション４の更新用のデータ(全体または差分)は、ネットワーク経由で外部のサーバから取得する等、任意の方法で取得してよい。
【００２７】
以上のように本実施の形態によれば、新規フィールド１２のデータ型がアプリケーション４で処理できないデータ型だった場合にアプリケーション４を更新するようにしたので、新規フィールド１２のデータの処理が可能なようにアプリケーション４を更新することができる。
【００２８】
実施の形態６．
実施の形態１では、新規レコード１１と新規フィールド１２の情報を別の入手元から取得していたが、本実施の形態ではこれらを同一の無線によるデータ送信元から取得する場合について説明する。
図７は、実施の形態６のデータベース管理システムの構成図であり、図１と同一符号は同一又は相当部分を示し説明を省略する。
図７において、２１は無線によるデータ受信手段、２２はデータ送信元である。
【００２９】
次に動作について説明する。
まず、データ送信元２２が送信した新規レコード１１が、無線によるデータ受信手段２１によって受信され、データ追加手段６によってデータベース１に追加される。無線の種類としては、データ放送、ＤＳＲＣ、無線ＬＡＮ、Ｂｌｕｅｔｏｏｔｈなど、何でも良い。又、データが送信されるタイミングは、一定周期ごとでも、本システムを搭載した機器(例えば、携帯電話、ＰＣ、自動車)が、データ送信元に接近した時点など、いつでも良い（特に前者はデータ放送、後者はＤＳＲＣや無線ＬＡＮの場合に想定されるタイミングである）。
【００３０】
データ送信元２２は、データ自体だけではなく、そのデータに含まれるフィールドの属性情報も送信する。送信するタイミングは、データ自体と同時でも、異なる時点でもよい。例えば、２４時間以内に送信したデータのフィールド属性情報を２時間間隔でデータ放送により送信する等の方法が考えられる。
【００３１】
次に新規フィールド検出手段７は、新規レコードの各フィールドについて、フィールド情報管理手段５に格納されている各フィールドの属性情報と比較することによって、そのフィールドが新規フィールド１２であるかどうか判定を行う。例えば、新規レコード中の各フィールド名とフィールド情報管理手段５に格納されているフィールド名とを比較して、同一のフィールド名が、フィールド情報管理手段５に格納されていなかった場合に、そのフィールドを新規フィールド１２と判定する。
【００３２】
次に、新規フィールド情報取得手段８は、新規フィールド１２と判定された各フィールドについて、その属性情報を取得する。属性情報は、データ送信元２２から送られ、無線によるデータ受信手段２１で受信したフィールド属性情報から取得する。
次に新規フィールド検出手段７は新規フィールド１２が検出されたことをアプリケーション通知手段１０に通知し、新規フィールド情報取得手段８は新規フィールド１２の属性情報をアプリケーション通知手段１０に通知する。アプリケーション通知手段１０は、さらにこれらをアプリケーション４に通知する。
【００３３】
以上のように本実施の形態によれば、無線で送信されたデータにより新規フィールド１２が追加されたこと、およびその属性情報をただちにアプリケーション４に通知するようにしているので、アプリケーション４は、通知された情報に基づいて新規レコード１１の新規フィールド１２を、新規レコード１１の追加後すぐに利用することができる。例えば、データ放送によって配信されたPOI情報に、新しいフィールドとして「お店の評判」フィールドが含まれていた場合、アプリケーション４は、その情報をただちに利用することができる。
【図面の簡単な説明】
【００３４】
【図１】実施の形態１のデータベース管理システムの構成図。
【図２】実施の形態１におけるデータベース管理システムの処理動作を示すフローチャート。
【図３】実施の形態２のデータベース管理システムの構成図。
【図４】実施の形態３のデータベース管理システムの構成図。
【図５】実施の形態４のデータベース管理システムの構成図。
【図６】実施の形態５のデータベース管理システムの構成図。
【図７】実施の形態６のデータベース管理システムの構成図。
【符号の説明】
【００３５】
１  データベース、２  レコード、４  アプリケーション、５  フィールド情報管理手段、６  データ追加手段、７  新規フィールド検出手段、８  新規フィールド情報取得手段、９  フィールド属性情報推定手段、１０  アプリケーション通知手段、１１  新規レコード  １２  新規フィールド、１３  外部データベース問い合わせ手段、１４  外部データベース、１５  通信手段、１６  属性情報ＵＲＬ取得手段、  １７  属性情報ＵＲＬ、１８  追加データ取得手段、１９  追加データ送信手段、２０  アプリケーション更新手段、２１  データ受信手段、２２  データ送信元。
【図１】
2008052542.tif 000003
【図２】
2008052542.tif 000004
【図３】
2008052542.tif 000005
【図４】
2008052542.tif 000006
【図５】
2008052542.tif 000007
【図６】
2008052542.tif 000008
【図７】
2008052542.tif 000009