JP2015200978A - データベースアクセス制御プログラム、データベースアクセス制御方法、及び情報処理装置 - Google Patents

データベースアクセス制御プログラム、データベースアクセス制御方法、及び情報処理装置 Download PDF

Info

Publication number
JP2015200978A
JP2015200978A JP2014078214A JP2014078214A JP2015200978A JP 2015200978 A JP2015200978 A JP 2015200978A JP 2014078214 A JP2014078214 A JP 2014078214A JP 2014078214 A JP2014078214 A JP 2014078214A JP 2015200978 A JP2015200978 A JP 2015200978A
Authority
JP
Japan
Prior art keywords
record
information
parent
ndb
type
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.)
Granted
Application number
JP2014078214A
Other languages
English (en)
Other versions
JP6287506B2 (ja
Inventor
銘新 王
Mingxin Wang
銘新 王
久幸 圓佛
Hisayuki Enbutsu
久幸 圓佛
眞 鈴木
Makoto Suzuki
眞 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014078214A priority Critical patent/JP6287506B2/ja
Priority to US14/664,955 priority patent/US20150286700A1/en
Publication of JP2015200978A publication Critical patent/JP2015200978A/ja
Application granted granted Critical
Publication of JP6287506B2 publication Critical patent/JP6287506B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • G06F7/24Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】NDBに対するSQLによるデータ操作の自由度を向上させるデータベースアクセス制御技術を提供する。【解決手段】レコード型間で親子関係が形成されたデータ構造を有するNDBにおける、データ操作対象となる複数のレコード型に対する、第1データ操作言語による第1操作情報を取得し、レコード型に含まれる項目情報と、レコード型の親のレコード型のレコードである親レコードを特定する親特定情報と、親レコードに属する子レコードの順序を示す子順序情報とが定義された関係定義情報を用いて、複数のレコード型間の関係を解析し、解析した関係と第1操作情報とに基づいて、NDBに対する第2データ操作言語による第2操作情報を生成し、生成した第2操作情報をNDBへ出力することにより、上記課題の解決を図る。【選択図】図4

Description

本発明は、データベースへのアクセス制御に関する。
オープン技術の発展に伴い、ネットワーク型データベース(NDB)技術者が減少している。このような背景の下、オープン技術を用いてメインフレームのNDBの既存資産(NDB資源)の保守及び運用を実現する手法がいくつか考案されている。
しかし、これらの手法のいずれも、NDBの特徴であるレコードの順序を意識した操作をできないか、もしくは厳しい条件付きで一部の機能しか実現できていない。NDBのメリットを生かせながらオープンインタフェースであるSQLを使った、より汎用的かつ実用的なアクセス手法が求められている。
例えば、第1の技術として、階層ネットワーク型データベースシステムをリレーショナル型データベースとみなし、検索・更新する技術がある(例えば、特許文献1)。第1の技術では、検索、更新、追加、削除等の条件の指示をなす入力問合せ文を解析手段により解析する。この解析結果から第1の出力として得られかつ当該条件に関与する個々のフィールドを有する夫々のレコードに対して、レコード間の関連を示すレコード関連木を結合手段にて生成して記憶手段に記憶する。更に、上記解析結果から第2の出力として得られかつ当該条件を二項演算の集合に分解してこの二項演算を構成する演算子を節とする条件木を結合手段にて生成し、レコード関連木と条件木とから階層ネットワーク型データベースをアクセスするための条件と手順を示すアクセスブロック並びを生成手段により生成する。このブロック並びを実行手段により順次解釈しつつ実行する。
また、第2の技術として、ネットワーク型データベースシステムにSQL言語を用いた操作インターフェースを提供する際に、NDBでのレコードのリンク順序が持つ意味に対応したレコードの追加処理を可能にする技術がある(例えば、特許文献2)。
また、第3の技術として、NDBをSQLでアクセスする場合、次の処理を行う技術がある(例えば、特許文献3)。第3の技術では、親レコードにデータベース内で一意となる検索キーが存在しなくても、親子となっているレコードから導出した表間ではSQL文で表の結合を指定することができ、更にその表結合の処理においてはセットを利用した高速なアクセスを可能にする。
また、第4の技術として、ネットワークデータベースとリレーショナルデータベースをアクセスするアプリケーション処理を一元的に管理する技術がある(例えば、特許文献3)。第4の技術では、データベースシステムは、データ部から成る各テーブルの各行に固有なポインタデータを持ち、データ表と順序関係表とを備える。データ表は、該ポインタデータをデータ部と共に記憶する。順序関係表は、ポインタデータをもとにネットワークデータベースに於ける階層関係とレコード間の順序関係を記憶する。データベースシステムは、ネットワークデータベースをアクセスするアプリケーション処理に於けるDML命令を、SQL命令組立手段によりSQL命令に組立て、順序関係表を介してデータ表にアクセスする。
特開平4−299459号公報 特開2001−273178号公報 特開平6−282576号公報 特開2001−325133号公報
しかしながら、第1〜第4の技術では、SQLによりデータ操作できるNDBのデータ構造が限られている。したがって、NDBに対して、リレーショナルデータベースに対するSQLによるデータ操作と同様に、レコード型の関係や項目数を意識せずに、SQLによりデータ操作することができない。
本発明は、一側面として、NDBに対するSQLによるデータ操作の自由度を向上させるデータベースアクセス制御技術を提供する。
本発明の一側面にかかるデータベースアクセス制御プログラムは、コンピュータに次の処理を実行させる。すなわち、コンピュータは、レコード型間で親子関係が形成されたデータ構造を有するネットワーク型データベースにおける、データ操作対象となる複数のレコード型に対する、第1データ操作言語による第1操作情報を取得する。
コンピュータは、関係定義情報が格納された格納部から取得した関係定義情報を用いて、複数のレコード型間の関係を解析する。関係定義情報には、レコード型に含まれる項目情報と、レコード型の親のレコード型のレコードである親レコードを特定する親情報と、親レコードに属する子レコードの順序を示す順序情報とが、レコード型毎に定義されている。コンピュータは、解析した関係と第1操作情報とに基づいて、ネットワーク型データベースに対する第2データ操作言語による第2操作情報を生成する。コンピュータは、生成した前記第2データ操作情報を前記ネットワーク型データベースへ出力する。
本発明の一側面に係るデータベースアクセス制御技術によれば、NDBに対するSQLによるデータ操作の自由度を向上させる。
第1の技術を適用して、SQLを用いて、NDBのレコードにアクセスする場合の問題点を説明するための図である。 2つのレコードタイプ間の関係が「1:1」の関係にあるNDBの場合について説明するための図である。 本実施形態に係る仮想表について説明するための図である。 本実施形態における情報処理装置の一例を示す。 本実施形態(実施例1)における情報処理装置のブロック図の一例である。 本実施形態(実施例1)におけるSQL−DML変換テーブルの一例を示す。 本実施形態(実施例1)における1つの親レコードタイプに対して子レコードタイプが複数存在する場合のNDBのデータ構造を説明するための図である。 図7の各レコードタイプに対応する仮想表定義の一例を示す。 図8の仮想表定義に基づいてユーザ側から認識される仮想表の一例を示す。 本実施形態(実施例1)における仮想表に対するデータ操作を行うためのSQLの一例を示す。 本実施形態(実施例1)におけるSQLによるNDBへの問合せ結果の一例を示す。 本実施形態(実施例1)における業務手順のフローチャートを示す。 本実施形態(実施例1)における仮想表定義生成処理(S4)の詳細フローチャートの一例を示す。 本実施形態(実施例1)におけるNDBへの問合せ処理のフローチャートの一例を示す。 本実施形態(実施例1)におけるSQL−DML変換処理(S33)のフローチャートの一例を示す。 本実施形態(実施例2)における、複数の親レコードタイプに対して複数の子レコードタイプが存在する場合のNDBのデータ構造を説明するための図である。 本実施形態(実施例2)における仮想表定義生成処理(S4)の詳細フローチャートの一例を示す。 本実施形態(実施例2)における、親レコードタイプ:子レコードタイプ=N:Nの関係の場合に生成される仮想表定義の一例を示す。 図18の仮想表定義に基づいてユーザ側から認識される仮想表の一例を示す。 本実施形態(実施例2)における、仮想表に対するデータ操作を行うためのSQLの一例を示す。 本実施形態(実施例2)におけるSQLによるNDBへの問合せ結果の一例を示す。 本実施形態の実施例1,2におけるプログラムを実行するコンピュータのハードウェア環境の構成ブロック図の一例である。
第1の技術では、NDBのレコードの必要な項目を抽出し、一つのリレーショナルデータベース(RDB)のテーブルに見せかけて、SQLによる検索、更新、追加、削除を可能にする。
しかしながら、第1の技術では、SQLによるアクセスは、事前に決めた項目しかアクセスできない。例えば、図1(A)に示すように、Aレコードタイプのレコードには項目A1、A2、A3があるとする。仮想的なテーブルイメージがA1、A3、B1が抽出されて構成されている場合は、A2をSQLで操作することはできない。
また、第1の技術では、NDBにおいて、レコードタイプ間の関係が「1:1」の関係しか対応できない。したがって、図1(B)に示すように、第1の技術は、1つのレコードタイプに複数のレコードタイプが関係付けられている「1:N」(Nは、2以上の整数)の関係には対応できない。
また、第1の技術では、NDBの階層や項目数が多くなるほど、生成される論理レコードイメージのサイズが大きくなり、RDBの列数の制限によって生成できない場合がある。
第2の技術では、事前にキーを決めて、昇順か降順でソートすることで、NDBの順序を意識した操作をできるようにする。しかしながら、第2の技術の場合も、第1の技術と同様に、レコードタイプ間の関係が「1:1」しか対応できない。なお、ソートは生成された仮想表全体単位でしかできず、特定の親レコードに関して子レコードの順番を意識した操作ができない場合がある。
順番を意識して正しく業務処理を行うには、利用者がNDBの構造を十分に理解し、適切な項目をキーに指定する必要がある。
例えば、図2(A)に示すように、レコードタイプAとレコードタイプBを有し、2つのレコードタイプ間の関係が「1:1」の関係のデータ構造であるNDBの場合について考える。レコードタイプAには2つのレコードa1,a2があり、レコードタイプBにはb1、b2、b3、及びb4の四つのレコードがある。レコードタイプA,B間の親子関係は、図2(B)で示している。レコードタイプA,Bを組み合わせて、図2(C)に示す仮想表にある。Bタイプの項目bをキーに降順で指定すると、図2(D)のようにレコードがソートされて順序がつけられる。この順序は項目ではなく、レコードの並びの順番で示されている。
また、第2の技術は、複数の利用パターンに適さない場合がある。例えば図2(D)の場合、b項目をキーに指定したことで、bの最大値を持つレコードを出力するなどの操作は容易になるが、a1の子レコードの2番目のレコードを更新するなどの操作はできなくなる。
第3の技術では、レコードタイプ1つにつき表1つが用いられ、表結合形式が採用されている。第3の技術では、それぞれのレコードタイプにキーかユニークとなる項目もしくは項目の組み合わせが必要となる。
しかしながら、NDBの場合、最上位のレコードにエントリーキーが存在するケースは多いけど、下層の子レコードにキーやユニークとなる項目が一般的に存在せず、利用できない。また、ユニークな項目の選定などで、NDBを熟知している設計者の介入が必要であり、設計者に負担がかかる。
第4の技術では、NDBのレコードタイプ毎に、データ表と順序関係表2つの表を生成し、その組み合わせで、NDBの順序を意識した操作を実現している。また、第4の技術では、順序関係表に親レコードのポインタデータ、次のデータレコードへのポインタと自分をポイントしているデータレコードへの逆ポインタを格納することで、NDBの順序を表現している。
しかしながら、第4の技術では、レコード間の関係が「1:1」の関係のデータ構造しか対応できない。第4の技術では、基本的に親レコードが決まっていると想定している。例えば、レコード間の関係が「n:1」の関係のデータ構造型の場合、すなわち1つの子レコードに複数の親レコードが存在する場合、親レコードのポインタデータの項目にどの親レコードの値を入れるかは決められない。
また、第4の技術では、レコード番号指定時の性能が悪い。NDBはレコードの順番を指定する使い方がある。例えば、Aレコードタイプの100番目のレコードを取り出す場合、Aレコードタイプの先頭レコードからポインタを99回辿る必要があり、使い勝手がよくない。
上述のように、第1〜第4の技術では、以下の2つの問題点がある。
(1)NDBにおける親レコードタイプと子レコードタイプとの間の全ての型の関係には対応できない。
例えば、図1(B)に示すように、親レコードタイプと子レコードタイプとが「1:n」型の場合、BレコードタイプはAレコードタイプと関係がある(関連性がある)が、Cレコードタイプとは関連性がない。同様に、CレコードタイプはAレコードタイプと関係がある(関連性がある)が、Bレコードタイプとは関連性がない。
このような「1:n」型のレコードタイプを一つの表にまとめるのは容易ではない。BとCのレコードタイプを全部掛け合わせることも考えられるが、冗長なデータを作り出すことになるので、RDBの仕様には合わない。
このように、第1〜第4の技術では、NDBにおける親レコードタイプと子レコードタイプとの間の全ての型には対応できない。
(2)レコードに順序を付けるにはNDBのレコードに一意性を有するキーとなる項目が存在しないといけない。
例えば、キーとなる項目によりレコードをソートすることによって、レコードの順番で、元のNDBの順序を表すことが考えられる。しかし、キーとなる項目(一意性)が存在しない場合、つまり、一意性が保証されない項目をソートする場合、ソートの論理によっては、同じ値の項目を持つレコードの順序が前後することがある。その場合、レコードの順序が元のNDBの順序とは異なる可能性があるので、誤った情報を表示することなり、最悪の場合、DB破壊につながるおそれがある。
本実施形態では、レコードタイプ毎に仮想表定義を生成する。仮想表定義には、そのレコードタイプに含まれる全ての項目と、さらに親レコードを特定できる仮想JOINキーと、その親レコードの何番目の子レコードであるかを示す仮想順序キーとが含まれる。入力されたSQLのテーブル名から、情報処理装置は、操作対象となる仮想表名(すなわち、レコードタイプ)を特定し、仮想JOINキーに基づいて、レコードタイプ間の親子関係を特定する。
さらに、情報処理装置は、仮想順序キーにより、ユーザ側から見える仮想的なリレーショナルデータベースと、情報処理装置側で実際に取り扱う物理的なNDBとの間で子レコードの並びの整合がとられる仕組みになっている。
一方、ユーザ(例えば、設計者等)側において、NDBのデータ構造及びNDBのインターフェースを意識せずに、RDBと同様に、RDBのインターフェースを用いてNDBを利用することができる。これにより、設計者がNDBを知らなくても、RDBについての知識があれば、業務アプリケーションの開発保守を容易にすることができる。
また、仮想JOINキーと仮想順序キーの組み合わせにより、NDBのレコードタイプ間の関係が表現される。そのため、子レコードにユニークとなる項目が存在しなくても、仮想JOINキーがあれば、レコードタイプ間の関連付けはできる。仮想表同士のJOIN方式を採用することで、ユーザ側において、標準SQLを用いて、NDBの全データへアクセスすることができる。
例えば、図3(A)に示すように、レコードタイプAとレコードタイプBを有し、2つのレコードタイプ間の関係が「1:1」のデータ構造を有するNDBについて考える。図3(A)及び図3(B)は、図2(A)及び図2(B)と同様なので、その説明を省略する。本実施形態によれば、図3(A)及び図3(B)のような関係にあるレコードタイプAとBそれぞれについて、図3(C)及び図3(D)に示す仮想表が論理的に存在する。ここで、仮想表が論理的に存在すると表現したのは、ユーザ側からは、レコードタイプAとレコードタイプBについて、あたかも仮想表A,Bがあるように見えるが、情報処理装置内部では、実際には物理的には存在しないからである。
例えば、図3(C)において、ユーザがa1レコードの2番目の子レコードを操作(UPDATE)したい場合は、仮想JOINキーにa1を指定し、仮想順序キーに2を指定する。これにより、標準SQLを用いてNDBに対する操作を行うことができ、特許文献2を解決できる。
このように、本実施形態によれば、仮想JOINキーと仮想順序キーによるJOIN方式を採用することにより、NDBに対するユーザ側のインターフェースとしてリレーショナルデータベースに対して用いるSQLを利用することができる。この場合、レコード間の関係が「1:1」の関係だけでなく、NDBにおける親レコードタイプと子レコードタイプとの間の全ての型に対しても、本実施形態を適用することができる。
また、本実施形態によれば、子レコードにキーとなる項目が存在しなくても、子レコード間で順序を付けることが可能になる。
図4は、本実施形態における情報処理装置の一例を示す。情報処理装置1は、操作情報取得部2、格納部3、生成部5、及び出力部6を含む。
操作情報取得部2は、レコード型間で親子関係が形成されたデータ構造を有するネットワーク型データベースにおける、データ操作対象となる複数のレコード型に対する、第1データ操作言語による第1操作情報を取得する。操作情報取得部2の一例として、受付部13が挙げられる。
格納部3は、関係定義情報4を格納する。関係定義情報4は、レコード型に含まれる項目情報と、レコード型の親のレコード型のレコードである親レコードを特定する親情報と、親レコードに属する子レコードの順序を示す順序情報とが、レコード型毎に定義されている。格納部3の一例として、格納部19が挙げられる。関係定義情報4の一例として、仮想表定義21が挙げられる。
生成部5は、格納部3から取得した関係定義情報4を用いて、複数のレコード型間の関係を解析する。生成部5は、解析した関係と第1操作情報とに基づいて、ネットワーク型データベースに対する第2データ操作言語による第2操作情報を生成する。生成部5の一例として、データ変換部17が挙げられる。
出力部6は、生成した第2データ操作情報をネットワーク型データベースへ出力する。出力部6の一例として、データ変換部17が挙げられる。
このように構成することにより、NDBに対するSQLによるデータ操作の自由度を向上させることができる。また、親レコードタイプ:子レコードタイプ=1:Nの関係に本実施形態を適用することができる。
情報処理装置1は、さらに、定義情報取得部7と、関係定義生成部8を含む。
定義情報取得部7は、ネットワーク型データベースのデータ構造が定義されたデータベース定義情報を取得する。定義情報取得部7の一例として、生成部15が挙げられる。
関係定義生成部8は、取得したデータベース定義情報から、レコード型毎に、レコード型の項目情報を抽出し、抽出した項目情報に、親特定情報と子順序情報とを追加した関係定義情報4を生成する。関係定義生成部8の一例として、生成部15が挙げられる。
このように構成することにより、ユーザ側のインターフェースとしてのリレーショナルデータベースで用いるテーブルを仮想的に存在させるための仮想表定義を生成することができる。
関係定義生成部8は、レコード型に複数の親のレコード型が存在する場合、親のレコード型毎に、親特定情報と子順序情報とを関係定義情報に追加する。
このように構成することにより、親レコードタイプ:子レコードタイプ=1:Nの関係だけでなく、親レコードタイプ:子レコードタイプ=N:Nの関係の場合も、本実施形態を適用することができる。
以下に、本実施形態の実施例について説明する。
(実施例1)
図5は、本実施形態(実施例1)における情報処理装置のブロック図の一例である。情報処理装置10には、入出力装置12が接続されている。入出力装置12は、ユーザがNDB22への操作を要求するためのSQLを入力するためのキーボード等の入力デバイス及びディスプレイ等の出力デバイスの総称である。
情報処理装置10は、SQL変換制御部11、格納部19、NDB22、NDB用データベースマネジメントシステム(DBMS)25を含む。情報処理装置10の中央処理演算装置(CPU)は、格納部19から、本実施形態に係るプログラムを読み出して、そのプログラムを実行すると、SQL変換制御部11として機能する。
SQL変換制御部11は、受付部13、解析部14、生成部15、実行部16として機能する。受付部13は、入出力装置12から、NDB上のレコードタイプを仮想的な表としてユーザが認識できるようにするための仮想表定義21の作成指示を受け付けたり、入力されたSQLを受け付けたりする。
生成部15は、受付部13からの指示に応じて、NDB22から読み出したNDB定義24に基づいて、レコードタイプ毎に仮想表定義21を生成し、その仮想表定義21を格納部19に格納する。
解析部14は、受付部13で受け付けたSQL(SELECT文,UPDATE文,INSERT文,DELETE文等)の構文を解析する。
実行部16は、解析部14で解析されたSQLをNDB用の操作言語(Data Manipulation Language:DML)に変換し、そのNDB用DMLを用いてDBMS25へ問合せを行う。実行部16は、データ変換部17、レコード順序制御部18を含む。
データ変換部17は、格納部19から読み出したSQL−DML変換テーブル20及び仮想表定義21に基づいて、解析部14で解析されたSQLからNDB用DMLへ変換する。データ変換部17は、その変換したNDB用DMLを用いてDBMS25に問合せを行う。データ変換部17は、その問合せに対して、DBMS25から、NDB22で用いる所定の形式で定義されたデータ(NDBデータ)を受けると、次の処理を行う。すなわち、データ変換部17は、そのNDBデータをRDBで用いる所定の形式で定義されるデータ(RDBデータ)に変換する(データ型の変換も含む)。
レコード順序制御部18は、データ変換部17によってNDBデータがRDBデータへ変換され、そのRDBデータのレコードを仮想表に出力する場合、レコードの出力順を制御する。
格納部19には、SQL−DML変換テーブル20、仮想表定義21、本実施形態に係るプログラム、その他のデータ等が格納されている。SQL−DML変換テーブル20は、SLQとNDB用DMLとを相互に変換するために用いるテーブルである。仮想表定義21は、レコードタイプ毎に生成されるRDBで使用される仮想的なテーブル構造を管理するためのテーブルである。
DBMS25は、NDB22を構築するためのデータベース運用及び管理を行う。DBMS25は、実行部16から渡されたNDB用DMLによる問合せ要求に基づいてNDB22へアクセスし、NDB22から問合せ要求に応じたNDBデータを取得する。
NDB22は、ネットワーク型データベースである。NDB22は、レコードデータ23、NDB定義24を含む。レコードデータ23は、NDB22が保持する各レコードタイプの実データである。
NDB定義24は、データベース定義言語(DDL)を用いて記述されたNDB22についてのデータベース定義情報である。NDB定義24には、NDB22における、レコードタイプが保持する項目、レコードタイプ間の親子関係等の定義が設定されている。
図6は、本実施形態(実施例1)におけるSQL−DML変換テーブルの一例を示す。SQL−DML変換テーブル20は、「No.」、「SQL」、「DML」の項目を含む。項目「No.」には、SQL−DML変換テーブル20の各レコードに割り振られた番号が格納されている。項目「SQL」には、リレーショナル型データベースで用いるSQLで用いる構文(SELECT文、UPDATE文,DELETE文,INSERT文,FETCH文、等)が格納されている。項目「DML」には、ネットワーク型データベースで用いるDMLであって、項目「SQL」に設定されたSQL文に対応するDMLが格納されている。
図7は、本実施形態(実施例1)における1つの親レコードタイプに対して子レコードタイプが複数存在する場合のNDBのデータ構造を説明するための図である。図7(A)に示すように、「会社」という親レコードタイプに対して、「幹部社員」と「一般社員」との2つの子レコードタイプがあるとする。
図7(B)に示すように、NDB24定義には、親レコードタイプ「会社」の定義情報と、子レコードタイプ「一般幹部」及び「一般社員」の定義情報が示されている。各定義情報にはレコードの項目情報が設定されている。
図8は、図7の各レコードタイプに対応する仮想表定義の一例を示す。生成部15は、NDB定義24を読み出して、レコードタイプ毎の仮想表定義21を生成する。具体的に、生成部15は、NDB22からNDB定義24を読み出し、NDB定義24から、レコードタイプ毎に、項目情報を取得し、その項目情報に基づいて、SQLのCREATE文に相当する定義文を用いて、仮想表定義21を生成する。
このとき、子レコードタイプの仮想表定義21には、一意のキーとして、仮想JOINキー及び仮想順序キーが定義されている。仮想JOINキーは、親レコードを特定するためのキー情報であり、外部キーに相当する。図8において、仮想表「幹部社員」及び「一般社員」の場合、仮想JOINキーは、親レコードタイプの仮想表「会社」の会社コードと結合している。仮想順序キーは、その親レコードの何番目の子レコードであるかを示すキー情報である。
図9は、図8の仮想表定義に基づいてユーザ側から認識される仮想表の一例を示す。ユーザ側では、NDB22に保持されている情報は、仮想表定義21を介することにより、仮想表で管理された情報、すなわち、図9(A)(B)(C)に示すように、あたかもリレーショナルDB上のテーブルで管理されている情報のように見える。
これにより、ユーザは、図9(A)(B)(C)の仮想表に対して、SQL文でアクセスし、RDBのようにNDB22へアクセスすることができる。
仮想表の使い方の一例として、次がある。「親のUNIQUE KEY=子の仮想JOINキー」という条件で、親レコードタイプに対応する仮想表(親仮想表)と子レコードタイプに対応する仮想表(子仮想表)とがJOINされる。これにより、親仮想表と子仮想表とを結び付けることができる。
更に、子仮想表にて、仮想順序キーを使用することで、子レコードの順番を表現でき、SQLでNDBのようなデータの格納順を考慮した操作が可能となる。また、親のUNIQUE KEYと子の仮想JOINキーは外部キーで結び付けられているので、ユーザはNDB上のレコードタイプ間の子関係を意識する必要はない。
次に、仮想表に対するデータ操作について説明する。
図10は、本実施形態(実施例1)における仮想表に対するデータ操作を行うためのSQLの一例を示す。例えば、図9(A)(B)に示す仮想表から会社名「ABC」の幹部社員一覧を出力する場合は、図10に示すSQL文が実行される。
すると、ユーザ側では、仮想表「会社」から会社名「ABC」が抽出され、その会社コードと仮想表「幹部社員」の仮想JOINキーとにより、「ABC」についての仮想表「会社」「幹部社員」とが結合されるように見える。さらに、その結合したテーブルから「会社名」、「(幹部社員の)氏名」、順番(「仮想順序キー」の名称を変更したもの)の項目を取得したレコードが取得され、出力されるように見える。
図11は、本実施形態(実施例1)におけるSQLによるNDBへの問合せ結果の一例を示す。図10のSQLによるNDBへの問合せに対して、図11に示すように、その結果をRDBへの問合せと同様のテーブル形式で得ることができる。これにより、NDBからの出力においても、RDBと同じインターフェースで出力データを得ることができる。
図12は、本実施形態(実施例1)における業務手順のフローチャートを示す。ユーザは、入出力装置12を用いて、データ操作を行う対象とするNDB22を指定する(S1)。ユーザは、その指定したNDB22に対応する仮想表定義21が格納装置20に存在するか否かを判定する(S2)。
その指定したNDBに対応する仮想表定義21が格納装置20に存在しない場合(S2で「No」)、ユーザは、NDB定義24に基づいて、仮想表定義21を自動生成する旨の指示を入出力装置12に入力する(S4)。S4の詳細については、図13で説明する。
その指定したNDBに対応する仮想表定義21が格納装置20に存在する場合(S2で「Yes」)、ユーザは、その仮想表定義21が最新のNDB定義24に対応する仮想表定義であるか否かを判定する(S3)。
その仮想表定義21が最新のNDBの定義に対応する仮想表定義でない場合(S3で「No」)、ユーザは、NDB定義24に基づいて、仮想表定義21を自動生成する旨の指示を入出力装置12に入力する(S4)。S4の詳細については、図13で説明する。
その仮想表定義21が最新のNDB定義24に対応する仮想表定義である場合(S3で「Yes」)、またはS4にて仮想表定義21が生成された場合、ユーザは、次を行う。すなわち、ユーザは、入出力装置12によりSQLを入力すると、情報処理装置10は、仮想表定義21及びSQL−DML変換テーブル20を用いて、NDB22へアクセスする(S5)。
図13は、本実施形態(実施例1)における仮想表定義生成処理(S4)の詳細フローチャートの一例を示す。生成部15は、NDB22からNDB定義24を取得し、そのNDB定義24から最上位階層のレコードタイプの定義情報を読み出す(S11)。
生成部15は、その読み出した最上位階層のレコードタイプの定義情報から、そのレコードタイプの列定義を全部取り出す(S12)。生成部15は、取り出した列定義を参照して、その列定義にエントリーキー(一意のキー)が存在するかを判定する(S13)。
取り出した列定義にエントリーキーが存在する場合(S13で「Yes」)、生成部15は、エントリーキーをユニークキーとして定義する(S14)。取り出した列定義にエントリーキーが存在しない場合(S13で「No」)、生成部15は、列定義に、シーケンシャルな値を持つ1つの列(仮想順序キー)を追加し、その列に設定される値をユニークキーとして定義する(S15)。
生成部15は、S14またはS15で調整した列情報に基づいて、CREATE文を用いて仮想表(RDB表)定義21を作成する(S16)。
生成部15は、取得したNDB定義24から、次の階層のレコードタイプの定義情報が存在するかを判定する(S17)。次の階層のレコードタイプの定義情報が存在する場合(S17で「Yes」)、生成部15は、そのレコードタイプの定義情報を読み込む(S18)。
生成部15は、S18で読み込んだレコードタイプの定義情報から、そのレコードタイプの列定義を全部取り出す(S19)。
生成部15は、S18で読み込んだレコードタイプの1つ上の階層のレコードタイプに対応する仮想表定義21に定義されたユニークキーを有する列情報を、S18で読み込んだレコードタイプの列定義に追加し、その列情報を外部キーとして定義する(S20)。この外部キーとして追加した列情報は、仮想JOINキーに相当する。
生成部15は、さらに、列定義に、シーケンシャルな値を持つ1つの列(仮想順序キー)を追加する(S21)。
生成部15は、S20及びS21で追加した仮想JOINキーと仮想順序キーとをユニークキーとして定義し、仮想表(RDB表)定義21を作成する(S22)。
これにより、NDB22に格納されたNDB定義24を用いて、最上位階層のレコードタイプから下位階層のレコードタイプに向かって順次、レコードタイプ毎の仮想表定義21が作成される。
図14は、本実施形態(実施例1)におけるNDBへの問合せ処理のフローチャートの一例を示す。ユーザは、入出力装置12を用いて、NDB22へ問い合わせるためのSQL文(SELECT、UPDATE、DELETE、INSERT、FETCH等)を入力する。例えば、図10に示すSQLが入力される。受付部13は、入出力装置12から入力されたSQL文を受け付ける(S31)。
解析部14は、受け付けたSQL文の構文を解析し、SQLで記載された条件を抽出する(S32)。
データ変換部17は、仮想表とNDBの列名との対応関係、及びSQL−DML変換表20に基づいて、解析したSQL文をNDB用DMLに変換する(S33)。S33の処理については、図15で詳述する。
データ変換部17は、変換したNDB用DMLを用いて、DBMS25にアクセス要求をする。DBMS25は、そのアクセス要求に応じてそのNDB用DMLを実行し、NDB22からNDBデータを取り出し、そのNDBデータを実行部16へ渡す。データ変換部17は、DBMS25からNDBデータを受け取る(S34)。
データ変換部17は、DBMS25からNDBデータを受け取ると、そのNDBデータをRDB形式に変換する(S35)。
実行部16は、変換して得られたRDBデータを、入出力装置12に応答する(S36)。
図15は、本実施形態(実施例1)におけるSQL−DML変換処理(S33)のフローチャートの一例を示す。データ変換部17は、取得したSQLから、操作(選択、更新、挿入、削除等)の対象となる仮想表の名称及びその仮想表の項目名を抽出する(S41)。
データ変換部17は、格納部19から、抽出した仮想表名に対応する仮想表定義21を取得し、仮想表定義21から仮想表名に対応するレコードタイプ名を取得する(S42)。データ変換部17は、仮想表定義21から、抽出した項目名に対応する項目を検索する(S43)。
データ変換部17は、SQL−DML変換テーブル20から、SQLの種類に対応するNDB用DMLを取得する(S44)。データ変換部17は、SQLの条件式をNDB用DMLの条件式に変換する(S45)。
例えば、仮想表AA,BBから項目A1=XXXのレコード(項目A1,B1)を抽出する場合、データ変換部17は、SQL文「SELECT A1,B1 FROM AA,BB WHERE A1=XXX」を取得する。この場合、データ変換部17は、仮想表定義21の仮想JOINキーから仮想表AA,BBの関係、すなわち親子関係を判別する。それから、データ変換部17は、「MOVE」により親レコードタイプAAの親レコードから子レコードタイプBBの先頭レコードへ移動し、「GET ANY」により子レコードから、項目A1=XXXを有する子レコードを検索するDMLを作成する。
また、例えば、仮想表AAから項目A1=XXXのレコードの項目A1の値をZに更新する場合、データ変換部17は、SQL文「UPDATE AA SET A1=Z WHERE A1=XXX」を取得する。この場合、データ変換部17は、「MOVE」によりレコードタイプAAの先頭レコードへ移動し、「GET ANY」「GET NEXT」により項目A1=XXXのレコードを検索して読み込み、「NODIFY」によりA1の値をZに更新するDMLを作成する。
また、例えば、仮想表AAから項目A1=XXXのレコードを削除する場合、データ変換部17は、SQL文「DELETE FROM AA WHERE A1=XXX」を取得する。この場合、データ変換部17は、「MOVE」によりレコードタイプAAの先頭レコードへ移動し、「GET ANY」「GET NEXT」により項目A1=XXXのレコードを検索して読み込み、「ERASE」によりそのレコードを削除するDMLを作成する。
また、例えば、仮想表AAに項目A1=XXXのレコードを追加する場合、データ変換部17は、SQL文「INSERT INTO AA SELECT A1=XXX」を取得する。この場合、データ変換部17は、「MOVE」によりレコードタイプAAの先頭レコードへ移動し、「STORE」により項目A1=XXXを有するレコードを、子レコード群の先頭または末尾に追加するDMLを作成する。
データ変換部17は、S44〜S45で取得したDML及び変換した条件文を実行可能なように整形する(S46)。
実施例1によれば、NDBのデータ操作について、あたかもRDBにおけるテーブルに対するデータ操作を行うように、SQLを使用することができる。その結果、NDBについてのデータ構造やNDBの入出力に関するインターフェースを認識せずに、ユーザ側としては、NDBをRDBとして使用することができる。
(実施例2)
実施例1では、1つの親レコードタイプに対して、1または複数の子レコードタイプが存在する場合における仮想表の利用形態について説明した。それに対して、実施例2では、複数の親レコードタイプに対して、1または複数の子レコードタイプが存在する場合における仮想表の利用形態について説明する。なお、実施例2の情報処理装置の構成及び機能に関して、実施例1と同様のものは同じ符号を付し、その説明を省略する。
図16は、本実施形態(実施例2)における、複数の親レコードタイプに対して複数の子レコードタイプが存在する場合のNDBのデータ構造を説明するための図である。図16(A)で示しているのは複数の親レコードタイプに対して子レコードタイプも複数存在するパターンである。親レコードタイプ「銀行」に対して、2つの子レコードタイプ「企業」、「個人」がある。また、親レコードタイプ「証券」に対して、2つの子レコードタイプ「企業」、「個人」がある。
逆に、「個人」という子レコードタイプに対して、2つの親レコードタイプ「銀行」、「証券」が存在する。図16(A)の各レコードタイプの項目情報は、図16(B)で示している。また、子レコードタイプ「企業」に対して、2つの親レコードタイプ「銀行」、「証券」も存在する。
このように、図16(A)は、親レコードタイプ:子レコードタイプ=N:Nのパターンである。なお、親レコードタイプ:子レコードタイプ=N:1のパターンは、「銀行」、「証券」、「個人」の3つのレコードタイプ、または「銀行」、「証券」、「企業」の3つのレコードタイプで表せる。親レコードタイプ:子レコードタイプ=N:1のパターンについて処理の流れや使い方は、親レコードタイプ:子レコードタイプ=N:Nと同じである。
次に、親レコードタイプ:子レコードタイプ=N:Nの関係の場合の仮想表定義の生成について説明する。親レコードタイプ:子レコードタイプ=N:Nの関係の場合も、図13のフローを用いて、仮想表定義を生成する。この場合、図13のフローを最上位階層のレコードタイプ毎行う。
図17は、本実施形態(実施例2)における仮想表定義生成処理(S4)の詳細フローチャートの一例を示す。実施例2において、実施例1と相違する処理は、S4において、以下で説明する処理であり、それ以外は実施例1と同じである。
生成部15は、NDB22からNDB定義24を取得し、そのNDB定義24から最上位階層のレコードタイプのうち、未処理の1つのレコードタイプの定義情報を読み出す(S11a)。その後、図13のS12〜S22を行う。これにより、1つの最上位階層のレコードタイプから下位階層のレコードタイプに向かって順次、レコードタイプ毎の仮想表定義が作成される。
そのNDB定義24に、未処理の最上位階層のレコードタイプがある場合(S23で「Yes」)、生成部15は、NDB定義24から、次の未処理の最上位階層のレコードタイプの定義情報を取得し(S11a)、S12〜S22の処理を行う。
生成部15は、最上位階層のレコードタイプの全てについて、S12〜S22の処理を実行する。
図18は、本実施形態(実施例2)における、親レコードタイプ:子レコードタイプ=N:Nの関係の場合に生成される仮想表定義の一例を示す。図18の仮想表定義は、図16(A)、(B)で示されるNDBのデータ構造を図17の処理により生成された仮想表定義である。
図18に示すように、親レコードタイプ:子レコードタイプ=N:Nの関係の場合、親レコードタイプの仮想表定義は、親レコードタイプ:子レコードタイプ=1:Nの場合と同じである。しかし、子レコードタイプの仮想表定義には、親レコードタイプ毎に、仮想JOINキーと仮想順序キーとが含まれる。
図19は、図18の仮想表定義に基づいてユーザ側から認識される仮想表の一例を示す。図18の仮想表定義に基づくと、NDBのデータベースは、図19のように見える。仮想表の使い方は1:Nの場合と同様である。
次に、図20及び図21を用いて、親レコードタイプ:子レコードタイプ=N:Nの関係の場合の仮想表の使い方の一例を説明する。
図20は、本実施形態(実施例2)における、仮想表に対するデータ操作を行うためのSQLの一例を示す。例えば、企業毎の総資産を出力しようとする場合は、図20のSQL文を実行する。
図21は、本実施形態(実施例2)におけるSQLによるNDBへの問合せ結果の一例を示す。図20のSQL文を実行した場合、図21の結果が得られる。
実施例2によれば、複数の親レコードタイプに対して複数の子レコードタイプが存在する場合のNDBのデータ構造に対しても、実施例1と同様に仮想表定義を作成することができる。これにより、NDBのデータ構造に関わらず、SQLによりNDBのデータ操作を行うことができる。
本実施形態(実施例1,2)によれば、レコード型の項目に、親レコード型のレコードの特定情報と、子レコードの順序情報とを加えた関係定義を用いてSQLをNDB用DMLに変換する。これにより、NDB22に対するSQLによるデータ操作の自由度を向上させることができる。また、ユーザ側からは、NDBのデータ構造やレコードタイプの列数等を意識せずに、RDBのインターフェースを用いて、NDBに対するデータ操作を行うことができる。また、レコードタイプ間の関係も、仮想JOINキーを用いて、あたかも仮想表をJOINする感覚で取り扱うことができる。また、子レコードも仮想順序キーにより管理されているので、ユーザは、NDBにおける子レコードの順序に依存するデータ操作も、仮想表に対するデータ操作で取り扱うことができる。
図22は、本実施形態の実施例1,2におけるプログラムを実行するコンピュータのハードウェア環境の構成ブロック図の一例である。コンピュータ11は、CPU32、ROM33、RAM36、通信I/F34、記憶装置37、出力I/F31、入力I/F35、読み取り装置38、バス39、出力機器41、入力機器42によって構成されている。
ここで、CPUは、中央演算装置を示す。ROMは、リードオンリメモリを示す。RAMは、ランダムアクセスメモリを示す。I/Fは、インターフェースを示す。バス39には、CPU32、ROM33、RAM36、通信I/F34、記憶装置37、出力I/F31、入力I/F35、及び読み取り装置38が接続されている。読み取り装置38は、可搬型記録媒体を読み出す装置である。出力機器41は、出力I/F31に接続されている。入力機器42は、入力I/F35に接続にされている。
記憶装置37としては、ハードディスク、フラッシュメモリ、磁気ディスクなど様々な形式の記憶装置を使用することができる。記憶装置37またはROM33には、CPU32をSQL変換制御部11として機能させるプログラム、NDB22、SQL−DML変換テーブル20、仮想表定義21等が格納されている。
CPU32は、記憶装置37等に格納した上記実施形態で説明した処理を実現するプログラムを読み出し、当該プログラムを実行する。
上記実施形態で説明した処理を実現するプログラムは、プログラム提供者側から通信ネットワーク40、および通信I/F34を介して、例えば記憶装置37に格納されてもよい。また、上記実施形態で説明した処理を実現するプログラムは、市販され、流通している可搬型記憶媒体に格納されていてもよい。この場合、この可搬型記憶媒体は読み取り装置38にセットされて、CPU32によってそのプログラムが読み出されて、実行されてもよい。可搬型記憶媒体としてはCD−ROM、フレキシブルディスク、光ディスク、光磁気ディスク、ICカード、USBメモリ装置など様々な形式の記憶媒体を使用することができる。このような記憶媒体に格納されたプログラムが読み取り装置38によって読み取られる。
また、入力機器42には、キーボード、マウス、電子カメラ、ウェブカメラ、マイク、スキャナ、センサ、タブレットなどを用いることが可能である。また、出力機器41には、ディスプレイ、プリンタ、スピーカなどを用いることが可能である。また、ネットワーク40は、インターネット、LAN、WAN、専用線、有線、無線等の通信網であってよい。
なお、本発明は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
1 報処理装置
2 操作情報取得部
3 格納部
4 関係定義情報
5 生成部
6 出力部
7 定義情報取得部
8 関係定義生成部
10 情報処理装置
11 SQL変換制御部
12 入出力装置
13 受付部
14 解析部
15 生成部
16 実行部
17 データ変換部
18 レコード順序制御部
19 格納部
20 SQL−DL変換テーブル
21 仮想表定義
22 NDB
23 レコードデータ
24 NDB定義
25 DBMS

Claims (5)

  1. コンピュータに、
    レコード型間で親子関係が形成されたデータ構造を有するネットワーク型データベースにおける、データ操作対象となる複数のレコード型に対する、第1データ操作言語による第1操作情報を取得し、
    前記レコード型に含まれる項目情報と、該レコード型の親のレコード型のレコードである親レコードを特定する親情報と、該親レコードに属する子レコードの順序を示す順序情報とが、レコード型毎に定義された関係定義情報が格納された格納部から取得した該関係定義情報を用いて、前記複数のレコード型間の関係を解析し、解析した前記関係と前記第1操作情報とに基づいて、前記ネットワーク型データベースに対する第2データ操作言語による第2操作情報を生成し、
    生成した前記第2データ操作情報を前記ネットワーク型データベースへ出力する
    処理を実行するデータベースアクセス制御プログラム。
  2. 前記コンピュータに、さらに、
    前記ネットワーク型データベースのデータ構造が定義されたデータベース定義情報を取得し、
    取得した前記データベース定義情報から、前記レコード型毎に、前記レコード型の項目情報を抽出し、抽出した該項目情報に、前記親特定情報と前記子順序情報とを追加した前記関係定義情報を生成する
    ことを特徴とする請求項1に記載のデータベースアクセス制御プログラム。
  3. 前記レコード型に複数の親のレコード型が存在する場合、該親のレコード型毎に、前記親特定情報と前記子順序情報とを前記関係定義情報に追加する
    ことを特徴とする請求項1に記載のデータベースアクセス制御プログラム。
  4. レコード型間で親子関係が形成されたデータ構造を有するネットワーク型データベースにおける、データ操作対象となる複数のレコード型に対する、第1データ操作言語による第1操作情報を取得する操作情報取得部と、
    前記レコード型に含まれる項目情報と、該レコード型の親のレコード型のレコードである親レコードを特定する親情報と、該親レコードに属する子レコードの順序を示す順序情報とが、レコード型毎に定義された関係定義情報を格納する格納部と、
    前記格納部から取得した前記関係定義情報を用いて、前記複数のレコード型間の関係を解析し、解析した前記関係と前記第1操作情報とに基づいて、前記ネットワーク型データベースに対する第2データ操作言語による第2操作情報を生成する生成部と、
    生成した前記第2データ操作情報を前記ネットワーク型データベースへ出力する出力部と、
    を備えることを特徴とする情報処理装置。
  5. コンピュータが、
    レコード型間で親子関係が形成されたデータ構造を有するネットワーク型データベースにおける、データ操作対象となる複数のレコード型に対する、第1データ操作言語による第1操作情報を取得し、
    前記レコード型に含まれる項目情報と、該レコード型の親のレコード型のレコードである親レコードを特定する親情報と、該親レコードに属する子レコードの順序を示す順序情報とが、レコード型毎に定義された関係定義情報が格納された格納部から取得した該関係定義情報を用いて、前記複数のレコード型間の関係を解析し、解析した前記関係と前記第1操作情報とに基づいて、前記ネットワーク型データベースに対する第2データ操作言語による第2操作情報を生成し、
    生成した前記第2データ操作情報を前記ネットワーク型データベースへ出力する
    ことを特徴とするデータベースアクセス制御方法。
JP2014078214A 2014-04-04 2014-04-04 データベースアクセス制御プログラム、データベースアクセス制御方法、及び情報処理装置 Active JP6287506B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014078214A JP6287506B2 (ja) 2014-04-04 2014-04-04 データベースアクセス制御プログラム、データベースアクセス制御方法、及び情報処理装置
US14/664,955 US20150286700A1 (en) 2014-04-04 2015-03-23 Recording medium having stored thereon database access control program, method for controlling database access, and information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014078214A JP6287506B2 (ja) 2014-04-04 2014-04-04 データベースアクセス制御プログラム、データベースアクセス制御方法、及び情報処理装置

Publications (2)

Publication Number Publication Date
JP2015200978A true JP2015200978A (ja) 2015-11-12
JP6287506B2 JP6287506B2 (ja) 2018-03-07

Family

ID=54209933

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014078214A Active JP6287506B2 (ja) 2014-04-04 2014-04-04 データベースアクセス制御プログラム、データベースアクセス制御方法、及び情報処理装置

Country Status (2)

Country Link
US (1) US20150286700A1 (ja)
JP (1) JP6287506B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016194808A (ja) * 2015-03-31 2016-11-17 オムロン株式会社 プログラマブルロジックコントローラ、データ収集装置、データベースアクセス方法およびデータベースアクセスプログラム
US20190377801A1 (en) * 2018-06-11 2019-12-12 Deloitte Development Llc Relational data model for hierarchical databases

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06282576A (ja) * 1993-03-27 1994-10-07 Nec Corp ネットワーク型データベースのリレーショナルアクセス方式
JPH1091494A (ja) * 1996-09-19 1998-04-10 Hitachi Ltd データベース操作プログラムの変換方法および変換装置
JP2000267909A (ja) * 1999-03-19 2000-09-29 Hitachi Software Eng Co Ltd データベースシステム
JP2000267906A (ja) * 1999-03-19 2000-09-29 Mitsubishi Electric Corp データベースモデル変換方法
JP2001273178A (ja) * 2000-03-28 2001-10-05 Hitachi Software Eng Co Ltd データベース制御装置およびシステム
JP2001325133A (ja) * 2000-03-09 2001-11-22 Fujitsu Ltd ハイブリッドデータベースシステム
JP2002073389A (ja) * 2000-08-31 2002-03-12 Hitachi Software Eng Co Ltd ネットワーク型データベースのキャッシング方法
JP2004259075A (ja) * 2003-02-27 2004-09-16 Fujitsu Ltd リレーショナルデータベースにおける階層型データのマッピングプログラム、装置、および方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
HK1020419A2 (en) * 1999-03-16 2000-03-17 Shi Piu Joseph Fong Frame model for universal database in database reengineering and integration
US7130862B2 (en) * 2003-08-15 2006-10-31 International Business Machines Corporation Methods, systems and computer program prodcuts for validation of XML instance documents using Java classloaders

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06282576A (ja) * 1993-03-27 1994-10-07 Nec Corp ネットワーク型データベースのリレーショナルアクセス方式
JPH1091494A (ja) * 1996-09-19 1998-04-10 Hitachi Ltd データベース操作プログラムの変換方法および変換装置
JP2000267909A (ja) * 1999-03-19 2000-09-29 Hitachi Software Eng Co Ltd データベースシステム
JP2000267906A (ja) * 1999-03-19 2000-09-29 Mitsubishi Electric Corp データベースモデル変換方法
JP2001325133A (ja) * 2000-03-09 2001-11-22 Fujitsu Ltd ハイブリッドデータベースシステム
JP2001273178A (ja) * 2000-03-28 2001-10-05 Hitachi Software Eng Co Ltd データベース制御装置およびシステム
JP2002073389A (ja) * 2000-08-31 2002-03-12 Hitachi Software Eng Co Ltd ネットワーク型データベースのキャッシング方法
JP2004259075A (ja) * 2003-02-27 2004-09-16 Fujitsu Ltd リレーショナルデータベースにおける階層型データのマッピングプログラム、装置、および方法

Also Published As

Publication number Publication date
US20150286700A1 (en) 2015-10-08
JP6287506B2 (ja) 2018-03-07

Similar Documents

Publication Publication Date Title
AU2018272840B2 (en) Automated dependency analyzer for heterogeneously programmed data processing system
US11593369B2 (en) Managing data queries
US10521427B2 (en) Managing data queries
Dourish No SQL: The shifting materialities of database technology
US11663033B2 (en) Design-time information based on run-time artifacts in a distributed computing cluster
US9146955B2 (en) In-memory, columnar database multidimensional analytical view integration
US10579678B2 (en) Dynamic hierarchy generation based on graph data
JP2018067279A (ja) データプロパティ認識のための装置、プログラム、及び方法
CN105956087A (zh) 数据及代码版本管理系统及方法
US20220269702A1 (en) Intelligent annotation of entity-relationship data models
Spoth et al. Adaptive schema databases
Yangui et al. ETL based framework for NoSQL warehousing
Gómez et al. An approach to the co-creation of models and metamodels in Enterprise Architecture Projects.
US20140067853A1 (en) Data search method, information system, and recording medium storing data search program
JP5555550B2 (ja) データ変換方法、その装置およびそのプログラム
JP6287506B2 (ja) データベースアクセス制御プログラム、データベースアクセス制御方法、及び情報処理装置
Miao et al. ModelHUB: lifecycle management for deep learning
Jumagaliyev et al. CadaML: A modeling language for multi-tenant cloud application data architectures
Paneva-Marinova et al. Intelligent Data Curation in Virtual Museum for Ancient History and Civilization
Mou et al. Visual orchestration and autonomous execution of distributed and heterogeneous computational biology pipelines
CN109739835A (zh) 一种数据版本保存方法及装置
KR102573563B1 (ko) 제1원리적 자연어 데이터 분석 시스템, 그리고 그 방법
JP7269244B2 (ja) サービス管理アプリケーションインターフェースにおいてグローバリゼーション機能を提供するためのシステムおよび方法
KR101969531B1 (ko) 데이터 집단 내 계층정보를 자동으로 추출하고 시각화하는 방법
JP2005202612A (ja) データベース生成プログラム作成装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171017

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171013

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171115

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180122

R150 Certificate of patent or registration of utility model

Ref document number: 6287506

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150