JP2014186488A - データベースにおいて外部キーを推定する方法、装置およびプログラム - Google Patents
データベースにおいて外部キーを推定する方法、装置およびプログラム Download PDFInfo
- Publication number
- JP2014186488A JP2014186488A JP2013060275A JP2013060275A JP2014186488A JP 2014186488 A JP2014186488 A JP 2014186488A JP 2013060275 A JP2013060275 A JP 2013060275A JP 2013060275 A JP2013060275 A JP 2013060275A JP 2014186488 A JP2014186488 A JP 2014186488A
- Authority
- JP
- Japan
- Prior art keywords
- column
- foreign key
- key
- computer
- actual data
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【解決手段】外部キー推定装置10は、各テーブルのカラム名に基づいて、カラム結合パターンを特定する。また、外部キー推定装置10は、各カラム結合パターンに含まれるいずれか一方のカラムについて、他方のカラムが主キーであること、一方のカラムが、そのテーブル内で唯一の主キーではないこと、および、一方のカラムに記録された実データが、すべて他方のカラムに記録された実データに含まれていること、を必要条件として、一方のカラムは他方のカラムを参照する外部キーであると推定する。
【選択図】図5
Description
複数のテーブルを含むデータベースにおいて外部キーを推定する方法であって、
コンピュータが、各テーブルについて1つ以上のカラム名を取得するステップと、
コンピュータが、各テーブルの各カラムに記録された実データを取得するステップと、
コンピュータが、前記カラム名に基づき、2つのカラムからなる対をカラム結合パターンとして特定する、カラム結合パターン特定ステップと、
各カラムが外部キーであるか否かをコンピュータが推定する、外部キー推定ステップと
を備え、
前記外部キー推定ステップにおいて、各カラム結合パターンに含まれるいずれか一方のカラムについて、
‐他方のカラムが主キーであること、
‐前記一方のカラムが、そのテーブル内で唯一の主キーではないこと、および
‐前記一方のカラムに記録された実データが、すべて前記他方のカラムに記録された実データに含まれていること
を必要条件として、一方のカラムは前記他方のカラムを参照する外部キーであると推定する。
前記テーブルのいずれかを参照するプログラムのソースコードにおいて、第1のテーブルの第1のカラムに記録された第1の実データと、第2のテーブルの第2のカラムに記録された第2の実データとの一致判定を行う一致判定命令を、コンピュータが前記カラム名に基づき抽出するステップと、
抽出された各一致判定命令について、前記第1のカラム及び前記第2のカラムからなる対を、コンピュータがカラム結合パターンとして特定するステップと、
を含んでもよい。
前記カラム結合パターン特定ステップは、異なるテーブルにおいて同一のカラム名を有する2つのカラムからなる対を、カラム結合パターンとして特定するステップを含んでもよい。
前記方法は、主キー推定ステップをさらに備え、
前記主キー推定ステップにおいて、各カラムについて、
‐そのカラムの実データが未定義値を含まないこと、および
‐そのカラムの実データが、カラム内で重複していないこと
を必要条件として、コンピュータがそのカラムを主キーであると推定してもよい。
前記コンピュータは、少なくとも1つのカラムを含む除外リストを記憶し、
前記外部キー推定ステップにおいて、いずれのカラムも前記除外リストに含まれていないことをさらに必要条件としてもよい。
各テーブルを含むER図をコンピュータが作成するステップをさらに備え、
前記ER図は、
各テーブルを表すエンティティと、
外部キーであるカラムのそれぞれについて、関連する2つのテーブルを関連付ける関連線と
を含んでもよい。
実施の形態1.
図1に、本発明の実施の形態1に係る外部キー推定装置10の構成を示す。外部キー推定装置10は、レコードおよびカラムによって構成されるテーブルを複数含むデータベースに関するデータを入力とし、そのデータベースにおいて各カラムが外部キーであるか否かを推定する装置として機能する。この機能は、本明細書に記載される方法を実行することにより実現される。外部キー推定装置10は周知のコンピュータとしての構成を含み、演算を行う演算手段20と、情報を格納する記憶手段30とを備える。演算手段20はCPU(中央処理装置)を含み、記憶手段30は半導体メモリおよびHDD(ハードディスクドライブ)等の記憶媒体を含む。
図5は、実施の形態1に係る外部キー推定装置10の処理の流れを表すフローチャートである。なお説明の便宜上、各ステップの入出力についても破線を用いて一部図示してある。
‐主キー条件1:そのカラムの実データが未定義値を含まない。
‐主キー条件2:そのカラムの実データが、カラム内で重複していない(すなわち、カラム内ですべて互いに異なっている)。
「A,BおよびCを必要条件としてXと推定する」という表現は、Xと推定されるためにはA,BおよびCのすべてが満たされることが最低限要求されるが、さらに他の条件が追加で要求される可能性を否定しないということを意味する。すなわち、A,BおよびCがすべて満たされた場合には、他の条件に応じ、Xと推定される場合もあればXでないと推定される場合もある。一方で、A,BおよびCのいずれかが満たされない場合には、他の条件に関わらず、Xではないと推定される。
「Aを十分条件としてXと推定する」という表現は、Xと推定されるためにはAさえ満たされればよく、他の条件が追加で要求される可能性はないということを意味する。すなわち、Aが満たされた場合には、他の条件に関わらず、必ずXと推定される。一方で、Aが満たされない場合には、他の条件に応じ、Xと推定される場合もあればXでないと推定される場合もある。
当然ながら、ある推定処理に対して、ある条件(または複数の条件の組合せ)を、必要条件とすると同時に十分条件とすることも可能である。
主キー条件2は、たとえばテーブル定義情報31において、そのカラムの制約に「unique」パラメータが指定されているか否かに基づいて判定することができる。または、そのカラムの実データをすべて直接参照し、重複するデータが存在するか否かを確認して判定してもよい。
‐そのカラムについてインデックスが存在している。
‐そのカラムのデータ型が、日付または日時を表すものではない。
‐そのカラムのカラム名が所定の条件を満たす。たとえば、主キーを表す可能性が高い所定の文字列を含む。どのような文字列が主キーを表す可能性が高いかは当業者が適宜決定可能であるが、たとえば、「コード」「ID」「連番」「No」「番号」等の文字列である。
図6に、主キー情報の例を示す。この例では、主キー情報は、テーブル定義情報31において各カラムのカラム定義に追加されるフラグの形式で表されているが、他の形式で表されてもよく、たとえばテーブル定義情報31とは独立したファイルとして記憶されてもよい。
次に、外部キー推定装置10は、ソースコード33から、カラムの一致判定命令を抽出する(ステップS5)。たとえば、テーブル定義情報31に含まれるカラム名に基づき(またはテーブル名およびカラム名に基づき)、ソースコード33において、第1のテーブルの第1のカラムに記録された第1の実データと、第2のテーブルの第2のカラムに記録された第2の実データとの一致判定を行う一致判定命令を抽出する。結果として、たとえば図4に示す3つのSELECT文が特定される。
図7に、実施の形態1におけるカラム結合リスト34の構成の例を示す。この例では、図4の3つのSELECT文に対応するカラム結合パターンが示されている。
‐外部キー条件1:他方のカラムが主キーである。たとえば、図7に示す3つのカラム結合パターンのうち第1のものにおいて、「商品」テーブルの「商品コード」カラムは主キーであるので(図6参照)、「受注明細」テーブルの「商品No」カラムは外部キー候補として外部キー条件1を満たす。
‐外部キー条件2:外部キー候補であるカラムは、そのテーブル内で唯一の主キーではない。すなわち、そのテーブルは、主キーを含まないか、外部キー候補以外に主キーを含む。
‐外部キー条件3:外部キー候補であるカラムに記録された実データが、他方のカラムに記録された実データと整合している。すなわち、外部キー候補であるカラムに記録された実データが、すべて他方のカラムに記録された実データに含まれている。
‐外部キー条件4:いずれのカラムも、除外リスト35に含まれていない。
図9に、実施の形態1における外部キー情報の例を示す。この例では、外部キー情報は、テーブル定義情報31において各カラムのカラム定義に追加されるフラグの形式で表されている。
外部キー情報は、他の形式で表されてもよく、たとえばテーブル定義情報31とは独立したファイルとして記憶されてもよい。
実施の形態2は、実施の形態1において、カラム結合パターン特定ステップ(図5のステップS4〜S6)の構成を変更するものである。以下、実施の形態1との相違点を説明する。
図11は、実施の形態2に係る外部キー推定装置の処理の流れを表すフローチャートである。なお説明の便宜上、各ステップの入出力についても一部図示してある。
図12に、実施の形態2において作成されるカラム結合リスト34の構成の例を示す。図2のテーブル定義情報31から、一致するカラム名の対がすべて抽出され特定されている。
実施の形態1および2では、カラム定義情報は、カラム名、データ型、データ長および制約からなるが、この他の情報を含んでもよい。たとえば、各カラムが主キーであるか否かを表す情報を含んでもよい。各カラムが主キーであるか否かを表す情報が含まれている場合には、主キー判定ステップを省略してもよい(すなわち、ステップS1において主キーに関する情報を取得し、ステップS3を省略してもよい)。
また、ER図は、図10に示すもの以外の情報を含んでもよく、図10に示す情報の一部を含まないものであってもよい。少なくとも、各テーブルを表すエンティティと、外部キーであるカラムのそれぞれについて関連する2つのテーブルを関連付ける関連線とを含んでいれば、ER図に該当すると解釈できる。
S3 主キー推定ステップ、S4〜S6,S14 カラム結合パターン特定ステップ、S7 外部キー推定ステップ。
Claims (8)
- 複数のテーブルを含むデータベースにおいて外部キーを推定する方法であって、
コンピュータが、各テーブルについて1つ以上のカラム名を取得するステップと、
コンピュータが、各テーブルの各カラムに記録された実データを取得するステップと、
コンピュータが、前記カラム名に基づき、2つのカラムからなる対をカラム結合パターンとして特定する、カラム結合パターン特定ステップと、
各カラムが外部キーであるか否かをコンピュータが推定する、外部キー推定ステップと
を備え、
前記外部キー推定ステップにおいて、各カラム結合パターンに含まれるいずれか一方のカラムについて、
‐他方のカラムが主キーであること、
‐前記一方のカラムが、そのテーブル内で唯一の主キーではないこと、および
‐前記一方のカラムに記録された実データが、すべて前記他方のカラムに記録された実データに含まれていること
を必要条件として、一方のカラムは前記他方のカラムを参照する外部キーであると推定する、データベースにおいて外部キーを推定する方法。 - 前記カラム結合パターン特定ステップは、
前記テーブルのいずれかを参照するプログラムのソースコードにおいて、第1のテーブルの第1のカラムに記録された第1の実データと、第2のテーブルの第2のカラムに記録された第2の実データとの一致判定を行う一致判定命令を、コンピュータが前記カラム名に基づき抽出するステップと、
抽出された各一致判定命令について、前記第1のカラム及び前記第2のカラムからなる対を、コンピュータがカラム結合パターンとして特定するステップと、
を含む、請求項1に記載の方法。 - 前記カラム結合パターン特定ステップは、異なるテーブルにおいて同一のカラム名を有する2つのカラムからなる対を、カラム結合パターンとして特定するステップを含む、請求項1または2に記載の方法。
- 前記方法は、主キー推定ステップをさらに備え、
前記主キー推定ステップにおいて、各カラムについて、
‐そのカラムの実データが未定義値を含まないこと、および
‐そのカラムの実データが、カラム内で重複していないこと
を必要条件として、コンピュータがそのカラムを主キーであると推定する、請求項1〜3のいずれか一項に記載の方法。 - 前記コンピュータは、少なくとも1つのカラムを含む除外リストを記憶し、
前記外部キー推定ステップにおいて、いずれのカラムも前記除外リストに含まれていないことをさらに必要条件とする、請求項1〜4のいずれか一項に記載の方法。 - 各テーブルを含むER図をコンピュータが作成するステップをさらに備え、
前記ER図は、
各テーブルを表すエンティティと、
外部キーであるカラムのそれぞれについて、関連する2つのテーブルを関連付ける関連線と
を含む、請求項1〜5のいずれか一項に記載の方法。 - 請求項1〜6のいずれか一項に記載の方法を実行するコンピュータを含む、データベースの外部キー推定装置。
- コンピュータに、請求項1〜6のいずれか一項に記載の方法を実行させるプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013060275A JP5827260B2 (ja) | 2013-03-22 | 2013-03-22 | データベースにおいて外部キーを推定する方法、装置およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013060275A JP5827260B2 (ja) | 2013-03-22 | 2013-03-22 | データベースにおいて外部キーを推定する方法、装置およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014186488A true JP2014186488A (ja) | 2014-10-02 |
JP5827260B2 JP5827260B2 (ja) | 2015-12-02 |
Family
ID=51834015
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013060275A Active JP5827260B2 (ja) | 2013-03-22 | 2013-03-22 | データベースにおいて外部キーを推定する方法、装置およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5827260B2 (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0527960A (ja) * | 1991-07-24 | 1993-02-05 | Toshiba Corp | データベース構築方法 |
JPH07281882A (ja) * | 1994-04-14 | 1995-10-27 | Mitsubishi Electric Corp | データベース正規化支援装置 |
JP2011248434A (ja) * | 2010-05-24 | 2011-12-08 | Nec Corp | データベース・レプリケーション・システム、データベース・レプリケーション方法、情報処理装置、及び、プログラム |
JP2012103847A (ja) * | 2010-11-09 | 2012-05-31 | Nec Corp | データベース移行管理装置及びその方法 |
-
2013
- 2013-03-22 JP JP2013060275A patent/JP5827260B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0527960A (ja) * | 1991-07-24 | 1993-02-05 | Toshiba Corp | データベース構築方法 |
JPH07281882A (ja) * | 1994-04-14 | 1995-10-27 | Mitsubishi Electric Corp | データベース正規化支援装置 |
JP2011248434A (ja) * | 2010-05-24 | 2011-12-08 | Nec Corp | データベース・レプリケーション・システム、データベース・レプリケーション方法、情報処理装置、及び、プログラム |
JP2012103847A (ja) * | 2010-11-09 | 2012-05-31 | Nec Corp | データベース移行管理装置及びその方法 |
Non-Patent Citations (8)
Title |
---|
CSNB199700114001; C.J Date: データベースシステム概論 原書6版, 19970325, p.629-631, 丸善株式会社 * |
CSNB201100990001; 国本 温子: 速効!図解 Access2010 総合版 第1版, 20100717, p.182-187, (株)毎日コミュニケーションズ * |
CSND199801378006; 矢澤 久雄: 'データ収集からシミュレーションまで...パソコンで究める設計技法回路設計のためのパソコン活用' トランジスタ技術 第35巻 第5号(通巻第404号), 19980501, p.268-280, CQ出版株式会社 * |
CSND200100299011; 高橋 栄司: 'データモデリングマイスターを目指して データベースよい設計/悪い設計' DB Magazine 第8巻 第13号(通巻110号), 19991201, p.100-111, 株式会社翔泳社 SHOEISHA * |
JPN6013060535; 矢澤 久雄: 'データ収集からシミュレーションまで...パソコンで究める設計技法回路設計のためのパソコン活用' トランジスタ技術 第35巻 第5号(通巻第404号), 19980501, p.268-280, CQ出版株式会社 * |
JPN6013060538; 高橋 栄司: 'データモデリングマイスターを目指して データベースよい設計/悪い設計' DB Magazine 第8巻 第13号(通巻110号), 19991201, p.100-111, 株式会社翔泳社 SHOEISHA * |
JPN6013060539; C.J Date: データベースシステム概論 原書6版, 19970325, p.629-631, 丸善株式会社 * |
JPN6014009844; 国本 温子: 速効!図解 Access2010 総合版 第1版, 20100717, p.182-187, (株)毎日コミュニケーションズ * |
Also Published As
Publication number | Publication date |
---|---|
JP5827260B2 (ja) | 2015-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Aguirre-Urreta et al. | Sample size determination and statistical power analysis in PLS using R: an annotated tutorial | |
TW498201B (en) | System and method for generating year 2000 test cases | |
US9092586B1 (en) | Version management mechanism for fluid guard ring PCells | |
EP2863311B1 (en) | Domain centric test data generation | |
KR20200093441A (ko) | 지식 그래프 중의 데이터 모델을 획득하는 방법, 장치, 기기 및 저장 매체 | |
JP2017041171A (ja) | テストシナリオ生成支援装置およびテストシナリオ生成支援方法 | |
JP6419667B2 (ja) | テストdbデータ生成方法及び装置 | |
WO2016063502A1 (ja) | 知識管理装置、知識管理方法、及び、プログラムの記録媒体 | |
JP2017045080A (ja) | 業務フロー仕様再生方法 | |
US9732593B2 (en) | Systems, methods, and computer medium to optimize storage for hydrocarbon reservoir simulation | |
US10241899B2 (en) | Test input information search device and method | |
US20130006683A1 (en) | System and method of managing testing for a healthcare systems transition | |
US8166453B2 (en) | Method and system for inconsistency resolution with cycle detection in a model-driven software environment | |
JP5827260B2 (ja) | データベースにおいて外部キーを推定する方法、装置およびプログラム | |
JP6549786B2 (ja) | データクレンジングシステム、方法、及び、プログラム | |
JP6123372B2 (ja) | 情報処理システム、名寄せ判定方法及びプログラム | |
JP2018045508A (ja) | 情報処理装置、情報処理方法、及び、プログラム | |
Zahari et al. | Data quality issues in data migration | |
JP2018028776A (ja) | ソフトウェア資産管理装置、ソフトウェア資産管理方法、および、ソフトウェア資産管理プログラム | |
JP6633009B2 (ja) | 表データ分析プログラム | |
JP5202655B2 (ja) | 業務フローチャート検索装置及びプログラム | |
JP2016126532A (ja) | 算出プログラム、情報処理装置、および算出方法 | |
Feng et al. | Seqpare: a novel metric of similarity between genomic interval sets | |
WO2021020055A1 (ja) | 設計支援システム、設計支援方法及び設計支援プログラム | |
Pham et al. | ELODU: Entity Resolution in Big Data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20141111 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20151015 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5827260 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |