JP4045283B2 - Data management apparatus and data management method - Google Patents
Data management apparatus and data management method Download PDFInfo
- Publication number
- JP4045283B2 JP4045283B2 JP2005266092A JP2005266092A JP4045283B2 JP 4045283 B2 JP4045283 B2 JP 4045283B2 JP 2005266092 A JP2005266092 A JP 2005266092A JP 2005266092 A JP2005266092 A JP 2005266092A JP 4045283 B2 JP4045283 B2 JP 4045283B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- value
- search
- tree
- value 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.)
- Active
Links
Images
Description
本発明は、データ管理装置に関し、特に、データの階層構造を有するデータ管理装置および方法に関する。 The present invention relates to a data management apparatus, and more particularly to a data management apparatus and method having a hierarchical structure of data.
階層構造を有するデータの管理方法として、Exensible markup language(XML)などで記述された階層構造データを管理する方法が知られている。例えば、RDB(Relational Database)およびOODB(Object Oriented Database)で管理する方法がある。 As a method for managing data having a hierarchical structure, a method for managing hierarchical structure data described in an Extensible markup language (XML) is known. For example, there is a method of managing with RDB (Relational Database) and OODB (Object Oriented Database).
図33は、階層構造データにおけるデータ構造の一例を示す図である。
同図において、各データは親と子の関係を有する。例えば、売上管理2201を親とすると、商品2202、顧客2203および売上2204が子となる。また、商品2202を親とすると、商品名2205および商品価格2206が子となる。さらに、売上管理2201を親とすると子である商品2202の子にあたる商品名2205および商品価格2206は孫となる。また、親と子との間は枝とよばれる線で結ばれる。
FIG. 33 is a diagram illustrating an example of a data structure in the hierarchical structure data.
In the figure, each data has a parent-child relationship. For example, if
図34は、図33に示すデータ構造における商品2202、商品名2205および商品価格2206に対し、配置されるデータの値の一例を示した図である。図34に示すように、商品2202に対し4つのデータである商品A2301、商品B2302、商品C2303および商品D2304が設定される。商品A2301の子データには、商品2202の子構造となる商品名2205に「AAA」2305が設定され、商品価格2206に「30000」2309が設定される。同様に、商品B2302の子データとして「BBB」2306および「60000」2310が設定される。商品C2303の子データとして「CCC」2307および「20000」2311が設定される。商品D2304の子データとして「ABC」2308および「70000」2312が設定される。このように、図33に示す各データの構造に対し、図34に示すように複数のデータが設定される。
FIG. 34 is a diagram showing an example of data values arranged for the
このような階層データの管理方法として、階層データの階層構造の関係をテーブルとして表現する方法がある(例えば、特許文献1)。
しかしながら、従来の階層データ管理方法では、複数の条件に対するデータの検索を行う場合に、最初の条件に対する検索結果から、次の検索を行う途中経過において、階層データの階層構造の関係を格納したテーブルから、毎回、対応するデータの関係を確認しなくてはならず、検索に時間がかかるという問題がある。 However, in the conventional hierarchical data management method, when searching for data for a plurality of conditions, a table storing the relationship of the hierarchical structure of hierarchical data in the middle of performing the next search from the search result for the first condition Therefore, it is necessary to check the relationship of the corresponding data every time, and there is a problem that it takes time to search.
図35は、従来の階層データ管理方法の検索動作のフローチャートである。例えば、図33に示す階層構造データのデータ構造および図34に示すデータの値において、1.商品名2205に「A」がつき、2.商品価格2206が50000円以上という二つの条件にあてはまる商品2202を検索する場合について説明する。
FIG. 35 is a flowchart of the search operation of the conventional hierarchical data management method. For example, in the data structure of the hierarchical structure data shown in FIG. 33 and the data values shown in FIG. 1. “A” is added to the
まず、上記検索条件1.および2.が入力される(S21)。次に、商品名2205に該当する全てのデータを取得する(S22)。すなわち、データ2305〜2308が取得される。取得されたデータ2305〜2308の中から「A」のつくデータを取得する(S23)。すなわち、「AAA」2305および「ABC」2308が取得される。さらに、検索条件2.で検索を行うために(S24でNo)、検索条件1.で絞り込まれたデータに対応する商品価格2206の構造に対応するデータを取得する(S22)。すなわち、データ2309および2312が取得される。このとき、従来のデータ管理方法では、階層構造の関係を格納したテーブルと検索条件1.で絞り込まれたデータが持つ固有のIDとから対応する商品価格2206のデータを割り出す必要がある。次に、データ2309および2312からデータの値が50000以上のデータを取得する(S23)。すなわち、データの値が「70000」であるデータ2312が取得される。前記二つの検索条件による検索が終了したので(S24でYes)、検索結果として、データ2312の親データである商品A2301を表示する(S25)。このときも、データ2312から商品A2301を割り出すために、階層構造の関係を示すテーブルを用いる必要がある。このように、従来の階層データ管理方法は、検索を行う途中経過において、階層データの階層構造の関係を格納したテーブルから、対応するデータの関係を確認しなくてはならず、検索に時間がかかるという問題がある。
First, the
そこで、本発明は、階層構造データを高速で検索することができるデータ管理装置およびデータ管理方法を提供することを目的とする。 Therefore, an object of the present invention is to provide a data management apparatus and a data management method that can search hierarchical structure data at high speed.
上記目的を達成するために、本発明に係るデータ管理装置は、階層構造を定義する複数の構造データを格納する構造格納手段と、前記各構造データに対応する複数の値データを格納するデータ格納手段と、ユーザが入力した検索対象および検索条件に対応する前記値データを検索するデータ検索手段とを備え、前記値データは、前記構造データにより定義された階層構造において、相互に親子の関係を有し、前記データ格納手段は、前記複数の値データに含まれる2以上の世代間において親子の関係を有するデータを一つの木として識別するための木IDを格納し、前記データ検索手段は、前記木IDを用い検索を行う。 In order to achieve the above object, a data management apparatus according to the present invention comprises a structure storage means for storing a plurality of structure data defining a hierarchical structure, and a data storage for storing a plurality of value data corresponding to each structure data. And data search means for searching for the value data corresponding to the search target and search condition input by the user, wherein the value data has a parent-child relationship in a hierarchical structure defined by the structure data. And the data storage means stores a tree ID for identifying data having a parent-child relationship between two or more generations included in the plurality of value data as one tree, and the data search means Search using the tree ID.
これにより、木IDをデータの検索に用いることで、前記値データのみから、ユーザの入力した検索対象および検索条件に対応したデータを高速に検索することができる。 Thus, by using the tree ID for data search, data corresponding to the search target and search condition input by the user can be searched at high speed only from the value data.
また、前記複数の構造データは、前記各構造データを一意に決定する構造IDと、前記各構造データの親データの構造IDを示す親構造IDとを有する。 The plurality of structure data includes a structure ID for uniquely determining each structure data and a parent structure ID indicating a structure ID of parent data of each structure data.
また、前記階層値データは、前記複数の値データは、前記各値データを一意に決定するデータIDと、前記各値データの親データのデータIDを示す親データIDと、前記各値データに対応する構造データが有する構造IDとを有する。 The hierarchical value data includes a plurality of value data, a data ID for uniquely determining each value data, a parent data ID indicating a data ID of parent data of each value data, and each value data. And the structure ID of the corresponding structure data.
これにより、前記構造データを変更するだけで簡単にデータの構造を変更することができる。よって、前記データ管理装置は、特定のデータ構造を持つデータ管理にのみ用いるのでなく、汎用的に、広い用途のデータ管理に使用することができる。また、値データに構造ID901が含まれることにより、値データに対応する構造データの情報が含まれる。これにより、値データは、構造データにより定義される構造に対応するデータであることが保障される。すなわち、ユーザが誤って構造に対応しないデータを配置することを防止することができる。
As a result, the data structure can be easily changed simply by changing the structure data. Therefore, the data management apparatus can be used not only for data management having a specific data structure but also for general-purpose and wide-use data management. Further, since the
また、前記データ検索手段は、前記検索対象に対応する値データを取得し、取得した各値データの木IDを取得し、取得した各木IDを有する値データを絞り込み、絞り込んだ値データに対し、前記検索条件で検索し、前記検索された各値データの木IDを有する値データを検索結果として出力する。 In addition, the data search means acquires value data corresponding to the search target, acquires a tree ID of each acquired value data, narrows down the value data having each acquired tree ID, The search is performed under the search condition, and the value data having the tree ID of each searched value data is output as a search result.
これにより、木ID単位で検索結果を出力するので、検索結果から、直ちに有効な情報を含むデータの一覧を出力することができる。 Thereby, since the search result is output in units of tree IDs, a list of data including valid information can be immediately output from the search result.
また、前記データ管理装置は、さらに、ユーザが指定した情報を前記構造データおよび値データから照会するデータ照会手段を備え、前記データ照会手段は、前記ユーザが指定した情報に対応する値データに含まれる第一の値データを取得し、第一の値データの構造IDを親構造IDに持つ構造データを取得し、前記取得した構造データの構造IDを持つ1以上の値データを取得し、第一の値データおよび前記1以上の値データから階層構造データを作成し、前記作成された階層構造データを表示する。 The data management device further includes data inquiry means for inquiring information specified by a user from the structure data and value data, and the data inquiry means is included in value data corresponding to the information specified by the user. To obtain the first value data, obtain the structure data having the structure ID of the first value data as the parent structure ID, obtain one or more value data having the structure ID of the obtained structure data, and Hierarchical structure data is created from one value data and the one or more value data, and the created hierarchical structure data is displayed.
また、同一の親データIDを有する値データは、同一の木IDを有する。
これにより、同じ親をもつ値データは、同一の木IDが設定されるので、前記データ照会手段は、親データから子データを照会する時に、木IDの変化を監視せずに、構造IDの変化のみを監視すればよい。よって、データ照会部の処理量は減少し、照会動作が高速に処理できる。
Further, value data having the same parent data ID has the same tree ID.
Thereby, since the same tree ID is set for the value data having the same parent, the data inquiry means does not monitor the change of the tree ID when inquiring the child data from the parent data. Only changes should be monitored. Therefore, the processing amount of the data inquiry unit is reduced, and the inquiry operation can be processed at high speed.
また、前記データ管理装置は、さらに、前記値データおよび前記構造データを編集する編集手段と、前記編集手段により第一のユーザがデータの編集を行っている場合に、第二のユーザが編集を行えないように排他制御を行う排他制御手段とを備え、前記排他制御手段は、排他制御をデータID単位で行う。 In addition, the data management device further includes an editing unit that edits the value data and the structure data, and when the first user is editing data by the editing unit, the second user edits the data. Exclusive control means for performing exclusive control so that it cannot be performed, and the exclusive control means performs exclusive control in units of data IDs.
また、前記複数の値データには、他の値データの木IDをデータ値とする値データが含まれ、前記照会手段は、前記他の値データの木IDをデータ値とする値データの照会結果として、前記木IDを持つ値データのデータ値を参照し、出力する。 Further, the plurality of value data includes value data having a tree value of another value data as a data value, and the inquiry means inquires about the value data having a tree ID of the other value data as a data value. As a result, the data value of the value data having the tree ID is referenced and output.
これにより、木IDを用いることで、従来のように複数のテーブルまたは結合文を用いなくても、簡単に他のデータを参照することができる。 Thus, by using the tree ID, other data can be easily referred to without using a plurality of tables or join statements as in the prior art.
また、前記複数の構造データには、他の構造データとの関係を定義し、対応する値データをデータ格納部に有しない仮想型データが含まれ、前記照会手段は、前記仮想型データの他の構造データとの関係の定義に従い、照会結果を出力する。 The plurality of structural data includes virtual type data that defines a relationship with other structural data and does not have corresponding value data in the data storage unit, and the inquiry means includes the virtual type data. The query result is output according to the definition of the relationship with the structure data.
これにより、データ格納部には実際に格納していない情報を表示することができ、格納するデータの削減をすることができる。 As a result, information that is not actually stored can be displayed in the data storage unit, and data to be stored can be reduced.
また、前記仮想型データには、値データが他の値データから参照されている情報を定義する仮想型データが含まれ、前記照会手段は、前記参照された値データが、前記参照した値データから参照されている情報を照会結果として出力する。 The virtual type data includes virtual type data defining information in which the value data is referred to by other value data, and the inquiry means includes the referenced value data as the referenced value data. The information referenced from is output as a query result.
これにより、データ格納部には実際に格納していない、データが他のデータから参照されている情報を表示することができ、格納するデータの削減をすることができる。 As a result, information that is not actually stored in the data storage unit and that is referred to by other data can be displayed, and the data to be stored can be reduced.
なお、本発明は、このようなデータ管理装置として実現することができるだけでなく、データ管理装置に含まれる特徴的な手段をステップとするデータ管理方法として実現したり、そのような特徴的なステップをコンピュータに実行さえるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、CD−ROM等の記録媒体やインターネット等の伝送媒体を介して流通させることができるのは言うまでもない。 Note that the present invention can be realized not only as such a data management apparatus but also as a data management method using characteristic means included in the data management apparatus as a step. Can be realized as a program that can be executed by a computer. Needless to say, such a program can be distributed via a recording medium such as a CD-ROM or a transmission medium such as the Internet.
本発明は、階層構造データを高速で検索するデータ管理装置および方法を提供することができる。 The present invention can provide a data management apparatus and method for retrieving hierarchical structure data at high speed.
以下、本発明に係るデータ管理装置の実施の形態について、図面を参照しながら詳細に説明する。 Embodiments of a data management apparatus according to the present invention will be described below in detail with reference to the drawings.
(実施の形態1)
まず、本実施の形態におけるデータ管理装置の構成を説明する。
(Embodiment 1)
First, the configuration of the data management apparatus in the present embodiment will be described.
図1は、本実施の形態におけるデータ管理装置を含むデータ管理システムの構成を示す図である。 FIG. 1 is a diagram showing a configuration of a data management system including a data management apparatus according to the present embodiment.
図1に示すデータ管理システム5は、階層構造データのデータ管理を行うシステムであり、データ管理装置1と、ユーザ端末2および3と、ネットワーク4とを備える。
A data management system 5 shown in FIG. 1 is a system that manages data of hierarchical structure data, and includes a
データ管理装置1は、ネットワーク4を介し、ユーザ端末2および3と接続される。
複数のユーザ端末2および3より、データ管理装置1にアクセスが行われる。
The
The
図2は、データ管理装置1のブロック構成を示す図である。
データ管理装置1は、階層構造データの照会、検索および編集等を行う装置であり、IO制御部10と、ユーザ認証部11と、データ格納部12と、構造格納部14と、データ照会部16と、木検索部17と、データ編集部18と、構造編集部19と、排他制御部20とを備える。
FIG. 2 is a diagram illustrating a block configuration of the
The
IO制御部10は、ネットワーク5を介してユーザ端末2より行われるアクセスの制御、および、ネットワーク5を介してユーザ端末2へのデータの出力を制御する通信インターフェイス等である。
The
ユーザ認証部11は、データ管理装置1にアクセスしてきたユーザの認証を行う。
データ格納部12は、階層構造データのデータ値を定義する値データ13を格納するハードディスク等である。
The
The
構造格納部14は、階層構造データの構造を定義する構造データ15を格納するハードディスク等である。
The
データ照会部16は、データ格納部12および構造格納部14に格納されている値データ13および構造データ15から、階層構造データを形成し、IO制御部10に出力する。
The
木検索部17は、データ格納部12および構造格納部14に格納されている値データ13および構造データ15から、特定のデータを検索し、データ照会部16に出力する。
The
データ編集部18は、データ格納部12に格納されている値データ13を編集する。
構造編集部19は、構造格納部14に格納されている構造データ15を編集する。
The
The
排他制御部20は、データ編集部18および構造編集部19で値データ13および構造データ15の編集が行われているか否かを監視する。また、値データ13および構造データ15の編集が行われている場合には、排他制御部20は、編集を行っているユーザとは別のユーザが、編集が行われているデータの編集を行えないようにする。
The
次に本実施の形態におけるデータ管理装置1の格納する階層構造データのデータ形式について説明する。
Next, the data format of the hierarchical structure data stored in the
図3は、構造データ15における親と子との関係の一例を示す図である。
図3に示すように、例えば、親である売上30の下の階層に、売上日付31、顧客32および合計金額33の3つの子が構成されている。以下、図3に示すような階層構造データにおける親と子からなるデータ構成を木構造定義と呼ぶ。
FIG. 3 is a diagram illustrating an example of a relationship between a parent and a child in the
As shown in FIG. 3, for example, three children of a sales date 31, a customer 32, and a
図4は、図3に示した木構造定義に従い、格納される実際の情報を示した図である。
図4に示すように、例えば、図3で示した売上30の値として「売上A」41が設定され、売上日付31の値として「2005/7/10」42が設定され、顧客32の値として「山本太郎」43が設定され、合計金額32の値として「50000」44が設定されている。以下、図4に示すような、木構造定義に従い格納される実際の情報を木構造データと呼ぶ。
FIG. 4 is a diagram showing actual information stored in accordance with the tree structure definition shown in FIG.
As shown in FIG. 4, for example, “sales A” 41 is set as the value of
木構造データは、一つの木構造定義に対して複数個設定できる。図5は、図3に示した木構造定義に従い、3つの木構造データが設定された例を示す図である。以下、図5に示すような一つの木構造定義に従い設定された、複数の情報を林構造データと呼ぶ。すなわち、林構造データは、木構造データの集合である。 A plurality of tree structure data can be set for one tree structure definition. FIG. 5 is a diagram showing an example in which three tree structure data are set in accordance with the tree structure definition shown in FIG. Hereinafter, a plurality of information set according to one tree structure definition as shown in FIG. 5 is referred to as forest structure data. That is, the forest structure data is a set of tree structure data.
図6は、構造データ15におけるデータ構造の一例を示す図である。
図6に示すように、一つの根(root)である売上管理60に対し、商品61、顧客62および売上63が子として設定されている。また、商品61を親とすると、商品名64および商品価格65が子として設定されている。ここで、商品61、商品名64および商品価格65は、木構造定義77を形成している。同様に、顧客62、顧客名66、顧客住所67および売上履歴68は、木構造定義78を形成している。このように、複数の木構造定義の集まりとして階層構造が形成される。以下、図6に示すような、木構造定義の集まりを森構造定義と呼ぶ。
FIG. 6 is a diagram illustrating an example of a data structure in the
As shown in FIG. 6, a product 61, a customer 62, and a sales 63 are set as children for a sales management 60 that is one root. If the product 61 is a parent, a product name 64 and a product price 65 are set as children. Here, the product 61, the product name 64, and the product price 65 form a
図7は、図6に示す森構造定義に従い、格納される実際の情報を示した図である。
図7に示すように、各木構造に従い、林構造データが設定される。例えば、図6に示す木構造定義77の商品61に対し「SH−00A」が設定され、商品名64に対し「商品A」が設定され、商品価格65に対し「500000」が設定されている。以下、図7に示すように、森構造定義に従い、格納される情報を森構造データと呼ぶ。
FIG. 7 is a diagram showing actual information stored in accordance with the forest structure definition shown in FIG.
As shown in FIG. 7, forest structure data is set according to each tree structure. For example, “SH-00A” is set for the product 61 of the
データ管理装置1は、森構造定義および森構造データを格納することで、階層構造データを管理する。森構造定義は、構造格納部14の構造データ15として格納される。森構造データはデータ格納部12の値データ13として格納される。
The
以下、構造格納部14に格納される構造データ15のデータ形式について説明する。
図9は、構造データ15の一例を示す図である。
Hereinafter, the data format of the
FIG. 9 is a diagram illustrating an example of the
構造データ15は、構造ID901と、親構造ID902と、構造名903と、構造型904と、構造区分905と、定義情報906とを有する。
The
構造ID901は、各データの構造を一意に特定するIDであり、各データの構造ごとに個別の構造ID901が設定される。
The
親構造ID902は、各データの構造の親にあたるデータの構造の構造ID901である。親構造ID902には、既に構造格納部14に構造データ15として格納されている構造ID901を指定しなければならない。また、最上層のデータの構造は、親構造ID902を持たない。
The
構造名903は、各データの構造の名前が設定される。
構造型904は、各データの構造の型を示し、以下に示す3つの構造型904に分類される。
In the
The
1.木構造の親にあたるデータの構造の型であり、対応する情報はデータ格納部12に
値データ13として格納される(以下、「林型」と呼ぶ。)。
2.対応する情報はデータ格納部12に値データ13として格納されず、データ照会部
16において作成される(以下、「仮想型」と呼ぶ。)。例えば、数式および他の
データから参照されている情報など。
3.上記1.および2.以外の型で、対応する情報はデータ格納部12に値データ13
として格納される(以下、「値型」と呼ぶ。)。例えば、テキストおよび数値など
。
1. This is the type of data structure that is the parent of the tree structure, and the corresponding information is stored as
2. Corresponding information is not stored as
3. Above 1. And 2. The corresponding information is stored in the
(Hereinafter referred to as “value type”). For example, text and numbers.
構造区分905は、構造型904の構造の区分を示す。構造型904が「値型」の構造は以下の4つの構造区分905に分類される。
A
1.「ルート」:森構造データの最上階層のデータ構造(一番上の根部分)であり、構
造およびデータは1つしか存在しない。また、構造区分905が「ルート」の構造
は、親構造を持たない。構造区分905が「ルート」の構造は、構造型904が「
値型」、「林型」および「仮想型」の子構造を設定することができる。
2.「フィールド」:子構造を設定できる。構成区分905が「フィールド」の構造に
対応するデータは、親データに対し複数のデータを設定することができる。
3.「レコードリンク」:他の構造に対応するデータの参照を設定できる。構造区分9
05が「レコードリンク」の構造は、参照する構造の構造ID902を設定する。
また、子構造を設定できない。
4.「ディレクトリ」:構造型904が「値型」および「仮想型」の子構造を設定でき
る。構成区分が「ディレクトリ」の構造に対応するデータは、1個のみ設定できる
。
1. “Root”: The data structure at the top level of the forest structure data (the root portion at the top), and there is only one structure and data. Also, the structure whose
Child structures of “value type”, “forest type” and “virtual type” can be set.
2. "Field": A child structure can be set. A plurality of data can be set for the parent data as the data corresponding to the structure of the field “structure” 905.
3. “Record link”: Data reference corresponding to another structure can be set. Structural division 9
For the structure with 05 “record link”, the
Also, the child structure cannot be set.
4). “Directory”: A child structure having a
また、構造型904が「林型」の構造は以下の構造区分905が設定される。
The
1.「レコード」:構造型904が「値型」、「林型」および「仮想型」の子構造を設
定できる。構造区分905が「レコード」の構造に対応するデータは、親データに
対し複数のデータを設定することができる。
1. “Record”: A child structure having a
また、構造型904が「仮想型」の構造は以下の3つの構造区分905に分類される。
In addition, the structure whose
1.「被レコードリンク」:構造区分905が「レコードリンク」の構造より、参照さ
れていることを設定する。自身の構造に対応するデータを参照している構造の構造
ID901が設定される。
2.「祖先データ」:自身の祖先データ(親データ、および、親データの親データ等)
を表示することができる。構造区分905が「祖先データ」の構造は、祖先構造の
構造ID901が設定される。
3.「計算フィールド」:設定された計算式の計算結果を表示する。計算式には数値デ
ータをデータとして設定されている構造の構造IDが設定される。
1. “Recorded link”: It is set that the
2. “Ancestral data”: own ancestor data (parent data, parent data of parent data, etc.)
Can be displayed. The
3. “Calculation field”: Displays the calculation result of the set calculation formula. The structure ID of a structure in which numerical data is set as data is set in the calculation formula.
定義情報906は、親データに対する、最小発生回数、最大発生回数、データ種類(例えば、文字、数値、日付、画像等のバイナリファイル。)、仮想型の表示内容(例えば、数式および他のデータからの参照。)およびセキュリティ情報等の関連情報が設定される。
The
定義情報906に設定される最小発生回数および最大発生回数は、親データに設定される子データの数が定義される。すなわち、最小発生回数は、そのデータ構造を持つ値データ13が、親データに対して存在しなければならない最小の数が定義される。最大発生回数は、そのデータ構造を持つ値データ13が、親データに対して存在しなければならない最大の数が定義される。例えば、図10に示す木構造では、「名前」82に最小発生回数=1、最大発生回数=1が定義されている。これにより、「顧客」81にデータが設定された場合、必ず名前82にデータを設定しなくてはならない。また、2個以上のデータを設定してもいけない。また、拠点83に最小発生回数=0、最大発生回数=3が設定されている。これにより、「顧客」81にデータが設定された場合でも、拠点83に対応するデータを設定しなくともよい。また、拠点83に対応するデータを3個まで設定してもよい。図11は、示す図10に示す木構造に対応する木構造データの一例を示す図である。例えば、図11に示す木構造データ91では、「名前」82に「山本太郎」が設定され、「拠点」83にデータが設定されていない。木構造データ92では、「名前」82に「山本太郎」が設定され、「拠点」83に「自宅」が設定されている。木構造データ93では、「名前」82に「山本太郎」が設定され、「拠点」83に二つのデータ「自宅」および「勤務先」が設定されている。このように、定義情報906に最小発生回数および最大発生回数を設定することで、ユーザが誤って構造に合わないデータを設定してしまうことを防止することができる。
The minimum number of occurrences and the maximum number of occurrences set in the
次に、データ格納部12に格納される値データ13のデータ形式について説明する。
図12は、値データ13の一例を示す図である。
Next, the data format of the
FIG. 12 is a diagram illustrating an example of the
値データ13は、データID1001と、親データID1002と、構造ID901と、木ID1003と、値1004とを有する。
The
データID1001は、各データを一意に特定するIDであり、各データに個別のデータID1001が設定される。
The
親データID1002は、各データの親にあたるデータのデータID1001である。親データID1002には、既にデータ納部12の値データ13として格納されているデータのデータID1001を指定しなければならない。また、最上層のデータは、親データID1002をもたない。
The
構造ID901は、構造格納部14に格納されている構造データ15の構造ID901である。ここでは、各データに対応する構造の構造ID901が設定される。値データ13の構造ID901には、構造型904が仮想型の構造の構造ID901は指定できない。
The
木ID1003は、2以上の世代間において親子の関係を有するデータを一つの木として識別するためのIDである。すなわち、親データ、子データ、孫データおよび子孫にあたるデータのうち特定の世代のデータを一つの木として認識するためのIDである。木ID1003は、各データの構造の構造型904が林型である場合は、データ格納部12の値データ13に既に設定されていない新しいIDが設定される。各データの構造の構造型904が林型以外である場合は、木ID1003に親データの木ID1003が設定される。すなわち、子構造を有する構造の構造型904を値型または林型に設定することで、同一の木ID1003が設定されるデータの範囲を設定することができる。例えば、図8に示すように、階層構造データに木ID1003が設定される。図中の数字は各データに設定された木ID1003を示す。
値1004は、各データに格納される実際のデータ値である。値1004には、文字、数値、日付、画像等のバイナリファイルおよび他のデータの木ID1003等が設定される。
A
このように、本実施の形態におけるデータ管理装置1は、値データ13および構造データ15の二つのデータを持つ。これにより、構造データ15を変更するだけで簡単にデータの構造を変更することができる。従来のデータ管理装置では、情報の形態が変化した場合には、関係するデータベースの格納定義情報を変更しなくてはならない。すなわち、関連する列定義情報を示すテーブルを書き換える必要がある。一方、本実施の形態におけるデータ管理装置1では、図9に示す構造データ15に、データを一行付け足すだけで、データの構造を付け足すことができる。すなわち、簡単にデータの構造を変更することができる。これにより、本実施の形態におけるデータ管理装置1は、特定のデータ構造を持つデータ管理にのみ用いるのでなく、汎用的に、広い用途のデータ管理に使用することができる。
As described above, the
また、値データ13には、構造ID901が含まれる。すなわち、値データ13には、対応する構造データ15の情報が含まれる。これにより、値データ13は、構造データ15により定義される構造に対応するデータであることが保障される。従来のデータ管理装置では、意図しないデータが格納されてしまうことがある。例えば、図34に示すように、商品A2301の子データとしてデータの構造である商品名2205に対応する「AAA」2305が配置されている。従来のデータ管理装置は、商品名2205に対応するデータとして、例えば、顧客名Aといった関係のないデータが配置されてしまう可能性がある。一方、本実施の形態におけるデータ管理装置1は、値データ13に対応する構造データ15の情報が含まれるので、構造に対応しないデータが配置されない。すなわち、ユーザが誤って構造に対応しないデータを配置することを防止することができる。
Further, the
また、同時に多数のユーザが情報の修正を行う場合、あるユーザがデータの一部を修正中には、他のユーザがそのデータの修正をできないように、排他制御を行う必要がある。値データ13の各データは、データID1001、構造ID901および木ID1003の3つのIDを持つ。これにより、排他制御部20は、データID1001単位、構造ID901単位および木ID単位1003で排他制御を行うことができる。つまり、目的にあった単位で排他制御を行うことができる。よって、従来に比べ排他制御を容易に行うことができる。
When a large number of users modify information at the same time, it is necessary to perform exclusive control so that other users cannot modify the data while a user is modifying a part of the data. Each data of the
次に本実施の形態におけるデータ管理装置1による階層データの照会動作について説明する。
Next, the inquiry operation of hierarchical data by the
図13は、データ管理装置1に格納されている階層データの照会動作のフローチャートである。
FIG. 13 is a flowchart of the inquiry operation of the hierarchical data stored in the
まず、ユーザ端末2からネットワーク5を介してデータ管理装置1のIO制御部10にアクセスが行われる(S1)。
First, the
ユーザのアクセスに対し、ユーザ認証部11によりユーザの認証が行われる(S2)。例えば、入力されたユーザIDおよびパスワードとユーザ認証部11が格納しているユーザデータとを比較することで、ユーザの認証を行う。また、ユーザ認証部11は、ユーザデータより、ユーザの属するグループを判定し、ユーザが照会または編集可能なデータの情報をデータ照会部16、データ編集部18および構造編集部19に送る。
For user access, the
図14にユーザ認証部11が格納しているユーザデータの一例を示す。ユーザデータは、ユーザ名1401と、パスワード1402と、グループ1403とを有する。例えば、図14に示すように、ユーザデータ1404にはユーザ名1401として「tanaka」、パスワード1402として「2181」が設定される。また、グループ1403として「システム管理者」が設定されており、例えば、ユーザ「tanaka」には、全データの照会および編集が許可される。また、ユーザデータ1405のグループ1403は「グループAユーザ」が設定されており、例えば、グループAに属するデータの照会および値データ13の編集が許可される。ユーザデータ1406のグループ1403には、「グループB管理者」が設定されており、例えば、グループBに属するデータの照会、値データ13の編集および構造データ15の編集が許可される。また、どのグループ1403に属するユーザがどの値データ13および構造データ15を照会または編集できるかは、構造データ15の定義情報906にセキュリティ情報として格納される。
FIG. 14 shows an example of user data stored in the
正規のユーザでない場合(S2でNo)、アクセスは拒否される。
正しいユーザIDおよびパスワードが入力されると(S2でYes)、アクセスが許可される。図15は、データ管理装置1のトップページ画面の一例を示す図である。
If it is not an authorized user (No in S2), access is denied.
When the correct user ID and password are input (Yes in S2), access is permitted. FIG. 15 is a diagram illustrating an example of the top page screen of the
ユーザにより照会されるデータのデータID1001が入力される(S3)。例えば、データID1001の入力は、Webページ上で、対応する項目をクリックすることで入力される。ここでは、データID=14−5が入力された場合について説明する。また、図12に示す値データ13が、データ格納部12に格納されているとする。図9に示す構造データが、構造格納部14に格納されているとする。この場合、例えば、図15に示すトップページ画面において、受注1201がクリックされる。
A
データ照会部16は、入力されたデータID=14−5に対応するデータ1005をデータ格納部12から取得する(S4)。
The
データ照会部16は、データ1005の構造ID901がS14であるので、親構造ID903がS14となるデータの構造907、908および909を構造格納部14から取得する(S5)。
Since the
データ照会部16は、取得したデータの構造907、908および909の構造型904が仮想型であるか否かを判定する(S6)。
The
取得したデータの構造907および908の構造型904は値型であり、データの構造909の構造型904は林型であるので(S6でNo)、データ照会部16は、構造907、908および909の各構造ID901に対応するデータをデータ格納部12から取得する。すなわち、データ照会部16は、構造907の構造ID901がS141なので、構造ID901にS141をもつデータ1006をデータ格納部12から取得する。また、データ照会部16は、構造908の構造ID901がS142なので、構造ID901にS142をもつデータ1007をデータ格納部12から取得する。また、データ照会部16は、構造909の構造ID901がS143なので、構造ID901にS143をもつデータ1008および1009を取得する(S7)。
Since the
データ照会部16は、ステップS4で取得したデータ1005の一階層下に、ステップS7で取得したデータ1006、1007、1008および1009を配置する。これにより、図16に示す階層構造データが作成される(S8)。
The
次に階層構造データの全データが取得されたか否かを判定する(S9)。データ1008および1009は、子データを持っているので(S9でNo)、データ照会部16は、データ1008のデータID1001=143−6を入力データIDとしてステップS3〜S5の処理を行う。データ照会部16は、ステップS5においてデータ1008の構造ID901=S143を親構造ID902にもつデータの構造910、911、912および913を取得する。
Next, it is determined whether or not all the hierarchical structure data has been acquired (S9). Since the
取得されたデータの構造910、911および912の構造型904は値型であるので(S6でNo)、データ照会部16は、データの構造910、911および912の構造ID901であるS1432、S1433、S1434と同一の構造ID901をもつデータ1010〜1015を取得する。
Since the
ここで、データの構造908は、構造区分905が「レコードリンク」であり、定義情報906として「S13の木ID」が設定されている。また、データの構造908に対応するデータ1007の値1004は「T3」が設定されている。このように、他のデータの木ID1003を値1004に設定することで、他のデータを参照することができる。すなわち、データ1007にはデータ1016の値1004である「KK−00A」が参照される。また、木ID1003=T3であり、データ1016の一下層に配置されているデータ1017および1018も、データ1007から参照することができる。同様に、データの構造1431は、構造区分905が「レコードリンク」であり、定義情報906として「S12の木ID」が設定されている。また、データの構造1431に対応するデータ1010および1013の値1004は「T1」および「T2」である。よって、データ1010には、木ID1003=T1であるデータ1019〜1021が参照される。データ1013には、木ID1003=T2であるデータ1022〜1024が参照される。このように、データ管理装置1は、木ID1003を用いることで、従来のように複数のテーブルまたは結合文を用いなくても、簡単に他のデータを参照することができる。
Here, in the
ステップS5で取得されたデータの構造913の構造型904は仮想型であるので(S6でYes)、データ照会部16は、データの構造913の定義情報に従いデータを作成する。データ照会部16は、構造913の構造区分905が「計算フィールド」であるので、定義情報906に設定された数式の計算結果を出力する。すなわち、データ照会部16は、データの構造913の定義情報906であるS1432×S1433に、構造ID901=S1432をもつデータ1011の値1004=3、および、構造ID901=S1433をもつデータ1012の値1004=450000を代入する。これにより、データ照会部16は、データの構造913の値1004=3×450000=1350000を作成する。同様に、データの構成913の定義情報であるS1432×S1433に、構造ID901=S1432をもつデータ1014の値1004=4、および、構造ID901=S1433をもつデータ1015の値1004=300000を代入する。これにより、データ照会部16は、データの構造913の値1004=3×450000=1200000を作成する(S10)。このように、構造型904が仮想型であり、構造区分905が「計算フィールド」のデータの構造を用いることで、データ格納部12に格納される値データ13にデータを格納しなくても、構造データ15に数式を設定するだけで、照会時には数式の算出結果として値を表示することができる。これにより、データ格納部12に格納される値データ13のデータ量を削減することができる。
Since the
データ照会部16は、ステップS5で取得したデータの構造910〜913にS7で取得したデータ1010〜1015、および、S10で作成した仮想型データの値を配置する。これにより、図17に示す階層構造が作成される(S8)。
The
階層構造データの全てのデータが配置されたので(S9でYes)、処理を終了する。ステップS8で作成された階層構造データは、IO制御部10およびネットワーク5を介してユーザ端末2に照会結果として表示される。例えば図18に示すようなWebページの画面が表示される。
Since all the data of the hierarchical structure data has been arranged (Yes in S9), the process ends. The hierarchical structure data created in step S8 is displayed as a query result on the
上記照会動作の説明において、仮想型のデータとして、データの構造913のように数式が定義されているデータを説明したが、これ以外に、データが他のデータから参照されていることを示す仮想型のデータがある。例えば、図9に示すデータの構造914は、構造型904が仮想型で構造区分905が「被レコードリンク」であり、定義情報906に「S142が自身を示すもの」と設定されている。構造ID901=S142であるデータの構造908は、構造区分905が「レコードリンク」であり、定義情報に「S13の木ID」が設定されている。また、データの構造914の親構造であるデータの構造915は、構造ID901=S13である。すなわち、構造区分905が「被レコードリンク」であるデータの構造914の親構造にあたるデータの構造915は、データの構造908から参照されている。よって、データの構造914は、親構造915を参照しているデータの構造908に対応するデータ1007の情報から、親構造915がどのデータから参照されているかを判定することができる。例えば、データ1006の木ID1003=T5であるので、自身の木ID1003=T3が、木ID1003=T5から参照されていることが分かる。このように構造型904が仮想型で構造区分905が「被レコードリンク」のデータの構造を用いることにより、自身の親データおよび自身の親データと同一の木ID1003を持つデータがどのデータから参照されているかを表示することができる。これにより、データ格納部12に格納されている値データ13にデータを作成しなくても、構造データ15にどの構造から参照されているかを設定することで、自身の親データおよび自身の親データと同一の木ID1003を持つデータがどのデータから参照されているかを表示することができる。これにより、データ格納部12に格納される値データ13のデータ量を削減することができる。
In the above description of the inquiry operation, data having a mathematical expression defined as
次に、本実施の形態におけるデータ管理装置1の検索動作について説明する。
図19は、本実施の形態におけるデータ管理装置1の検索動作のフローチャートである。
Next, the search operation of the
FIG. 19 is a flowchart of the search operation of the
本実施の形態におけるデータ管理装置1の検索動作は、データ格納部12に対し検索対象および検索条件に一致するデータの木ID1003を取得する。これにより、木検索部17は、データ格納部12に対し単純な検索命令の組み合わせで処理することができるので、検索を高速で行うことができる。
In the search operation of the
図20は、データ格納部12に格納される値データ13の一例を示す図である。
以下、図20に示す値データ13の検索について説明する。なお、図9に示す構造データ15が、構造格納部14に格納されているとする。
FIG. 20 is a diagram illustrating an example of the
Hereinafter, the search of the
ユーザにより、検索対象および検索条件が入力される(S11)。例えば、検索対象は商品とする。また、検索条件は、商品価格が400000以上、および、商品名に「A」が含まれるとする。 A search target and search conditions are input by the user (S11). For example, the search target is a product. Further, it is assumed that the search condition includes a product price of 400,000 or more, and “A” is included in the product name.
木検索部17は、図20に示す値データ13から、検索対象である商品のデータを取得する(S12)。すなわち、商品の構造ID901=S12であるので、図21に示すように構造ID901=S12であるデータ1701、1704、1707、1710、1713、1716、1719および1722を取得する。
The
木検索部17は、取得したデータ1701、1704、1707、1710、1713、1716、1719および1722の木ID1003=T1〜T8を取得する。木検索部17は、図20の値データ13に対し、取得した木ID1003=T1〜T8に対応したデータ1701〜1724を取得する(S13)。
The
木検索部17は、取得したデータ1701〜1724のなかで、検索条件である値=400000以上の商品価格のデータを取得する(S14)。すなわち、木検索部17は、商品価格の構造ID901=S122であるので、構造ID901=S122であるデータ1703、1706、1709、1712、1715、1718、1721および1724を取得する。さらに、木検索部17は、図22に示すように、データ1703、1706、1709、1712、1715、1718、1721および1724のなかで、値が400000以上のデータ1703、1709、1718および1721を取得する。
The
木検索部17は、S11で入力された検索条件に対し全ての条件で検索が行われたか否かを判定する(S15)。この場合(S15でNo)、続いて商品名に「A」が含まれる商品という検索条件で検索がおこなわれる。
The
木検索部17は、商品価格が400000以上の条件で絞り込まれた図22に示すデータ1703、1709、1718および1721の木ID1003であるT1、T3、T6およびT7を取得する。木検索部17は、図20に示す値データ13に対し、取得した木ID1003であるT1、T3、T6およびT7に対応したデータ1701〜1703、1707〜1709および1716〜1721を取得する(S13)。
The
木検索部17は、取得したデータ1701〜1703、1707〜1709および1716〜1721のなかで、商品名の構造ID901=S121と同じ構造ID901であるデータ1702、1708、1717および1721を取得する。さらに、木検索部17は、図23に示すように、データ1702、1708、1717および1721のなかで、値に「A」を含むデータ1702および1720を取得する(S14)。
The
このように、木検索部17は、ステップS13において、木ID1003による絞込みを行った後に、ステップS14で検索条件での検索を行う。これにより、一度目の検索で絞り込まれたデータに対応する二度目の検索条件の構造をもつデータを、木ID1003および構造ID901から簡単に絞り込むことができる。よって、木検索部17は、複数の検索条件に対し高速で検索を行うことができる。また、上述した検索動作の例では、検索条件は2種類であるが、検索条件の項目数が増えれば、データ管理装置1は、より効果的に検索を行うことができる。
As described above, the
ステップS11で入力された検索条件の全てに対しデータ絞込みが終了したので(S15でYes)、木検索部17は、検索結果をデータ照会部16に出力する。データ照会部16は、検索結果に対応するデータを照会し、IO制御部10およびネットワーク5を介し、ユーザ端末2に出力する(S16)。図24は、データ管理装置1の検索結果の出力表示画面の一例を示した図である。図24に示すように、検索結果は、図23に示すデータ1702および1720の木ID1003であるT1およびT7の商品として表示される。すなわち、木ID1003単位で、データ1701および1719と、データ1701およびデータ1719の各子データ1702、1703、1720および1721とが表示される。このように木検索部17は、木ID1003単位で検索結果を出力するので、検索結果から、直ちに有効な情報を含むデータの一覧を出力することができる。
Since the data narrowing has been completed for all the search conditions input in step S11 (Yes in S15), the
上述した説明では、検索結果として出力されたデータは、2世代の親子関係を有する(親データと子データとのみからなる)データに同一の木ID1003が設定されている。しかし、データの種類によっては、親データと子データのみを検索結果として出力しても十分な情報を出力できない場合がある。
In the above description, the
図25および図26は、構造データ15の一例を示す図である。また、図27は、図25に示す構造データ15に対応する値データ13を示す図である。図28は、図26に示す構造データ15に対応する値データ13を示す図である。
FIG. 25 and FIG. 26 are diagrams showing an example of the
図25に示す構造データ15では構造2401の構造型904が林型であるのに対し、図26に示す構造データ15はで構造2501の構造型904が値型となっている。これにより、図27に示すデータ2601および2602の木ID1003にはT3が設定され、データ2603〜2605の木ID1003にはT4が設定される。一方、図28に示すデータ2701〜2705の木ID1003にはT3が設定される。すなわち、親データの構造型904を林型または値型に設定することにより、同一の木ID1003を持つデータの木の範囲が変更される。また、図27および図28に示す値データ13は、共に図29に示すデータとして配置される。
In the
例えば、図27および図28の値データ13に対し、電話番号の条件で検索を行った場合を説明する。図27の値データ13では、電話番号に対応するデータ2605より、木ID1003=T4が取得される。これにより、検索結果として、図30に示すように、木ID1003=T4のデータ2603〜2605が表示される。しかしながら、ユーザが電話番号から顧客の名前を知りたい場合には、この情報では不十分である。一方、図28の値データ13では、電話番号に対応するデータ2705より、木ID1003=T3が取得される。これにより、検索結果として、図29に示すように、木ID1003=T3のデータ2701〜2705が表示される。よって、ユーザは必要な情報を直ちに得ることができる。このように、構造型904を変更することで、任意の木のデータに対し一つの木ID1003を設定することができる。これにより、検索結果として、必要なデータ群を直ちに出力することができる。
For example, a case will be described in which search is performed on the
以上のように、本実施の形態におけるデータ管理装置1は、階層構造データの検索動作において、木ID1003によるデータの絞込みを行う。これにより、複数の条件での検索がある場合でも、検索範囲を容易に絞り込むことができ、高速に検索を行うことができる。また、本実施の形態におけるデータ管理装置1は、木ID1003単位で検索結果を出力するので、検索結果から、直ちに有効な情報を含むデータの一覧を出力することができる。また、本実施の形態におけるデータ管理装置1は、木IDを用いることで、従来のように複数のテーブルまたは結合文を用いなくても、簡単に他のデータを参照することができる。また、構造型904が仮想型のデータをもちいることで、データ格納部12には実際に格納していない情報を表示することができる。これにより、データ格納部12に格納される値データ13のデータ量を削減することができる。また、本実施の形態におけるデータ管理装置1は、値データ13および構造データ15の二つのデータを持つ。これにより、構造データを変更するだけで簡単にデータの構造を変更することができる。よって、本実施の形態におけるデータ管理装置1は、特定のデータ構造を持つデータ管理にのみ用いるのでなく、汎用的に、広い用途のデータ管理に使用することができる。また、値データ13には、対応する構造データ15の情報が含まれる。これにより、値データ13は、構造データ15により定義される構造に対応するデータであることが保障される。すなわち、ユーザが誤って構造に対応しないデータを配置することを防止することができる。さらに、本実施の形態におけるデータ管理装置1は、木ID1003を用いることで、木単位で排他制御が行え、簡単に排他制御を行うことができる。
As described above, the
以上、本発明の実施の形態に係るデータ管理装置について説明したが、本発明は、この実施の形態に限定されるものではない。 Although the data management apparatus according to the embodiment of the present invention has been described above, the present invention is not limited to this embodiment.
例えば、図1では、ネットワークに2つのユーザ端末が接続されているが、ユーザ端末の数はこれにかぎらない。 For example, in FIG. 1, two user terminals are connected to the network, but the number of user terminals is not limited to this.
また、上記実施の形態は、ネットワークを介してユーザがWebページにアクセスし、データ管理装置を使用する方法を用いているが、ソフトウェアとして、端末のハードディスクに保存する、または、CD−ROM等の情報記録媒体を介して使用してもよい。 Moreover, although the said embodiment uses the method in which a user accesses a web page via a network and uses a data management apparatus, it saves to a hard disk of a terminal as software, or CD-ROM etc. It may be used via an information recording medium.
(実施の形態2)
実施の形態1におけるデータ管理装置1の値データ13では、親データに対し複数の子データが設定された場合、各子データの間で構造ID901および木ID1003が両方異なる場合がある。例えば、図12に示す値データ13において、データ1007は、構造ID901=S142であり木ID1003=T5である。データ1008は、構造ID901=S143であり木ID1003=T6である。このように、同じ親をもつデータの構造ID901および木ID1003が両方異なる場合があると、次のような問題が生じる。データ照会部16による照会動作において、親データの複数の子データを参照する時に、構造ID901および木ID1003の両方を常に監視する必要がある。これにより、データ照会部16の処理量が増え、照会動作が高速に処理できないという問題がある。
(Embodiment 2)
In the
実施の形態2では、同じ親をもつデータの構造ID901および木ID1003が両方異なる場合がなく、照会動作を高速に処理できるデータ管理装置1について説明する。なお、実施の形態1と同様の構成および動作に関しては説明を省略する。
In the second embodiment, the
実施の形態1では、構造型904が「値型」の構造の構造区分905として4個の分類を示したが、実施の形態2では以下に示す5個目の分類が追加される。
In the first embodiment, the four classifications are shown as the
5.「テーブル」:構造型904が「林型」の子構造を1個のみ設定できる。構成区分
が「テーブル」の構造に対応するデータは、1個のみ設定できる。
5. “Table”: Only one child structure whose
また、実施の形態2では、構造型が「林型」の構造の構造区分905である「レコード」の定義が以下のように変更される。
Further, in the second embodiment, the definition of “record” that is the
1.「レコード」:構造型904が「値型」および「仮想型」の子構造を設定できる。
構造区分905が「レコード」の構造に対応するデータは、親データに対し複数の
データを設定することができる。
1. “Record”: A child structure having a
For the data corresponding to the structure whose
さらに、実施の形態2では、構造区分905の「ルート」の定義が以下のように変更される。
Furthermore, in the second embodiment, the definition of the “root” in the
1.「ルート」:森構造データの最上階層のデータ構造(一番上の根部分)であり、構
造およびデータは1つしか存在しない。また、構造区分905が「ルート」の構造
は、親構造を持たない。構造区分905が「ルート」の構造は、構造型904が「
値型」および「仮想型」の子構造を設定することができる。
1. “Root”: The data structure at the top level of the forest structure data (the root portion at the top), and there is only one structure and data. Also, the structure whose
Child structures of “value type” and “virtual type” can be set.
図31は、実施の形態2における構造データ15の一例を示す図である。
図9に示す実施の形態1において構造909の構造型904に林型が設定されている。図31に示す構造3101および構造3102が、構造909に対応する。構造3101の構造型904に「値型」が設定され、構造区分905に「テーブル」が設定される。また、構造3102の構造型904に「林型」が設定され、構造区分905に「レコード」が設定される。このように、実施の形態2では、実施の形態1で構造型904に「林型」が設定されていた構造に対し、構造型904が「値型」であり構造区分905が「テーブル」の構造が設定され、構造区分905が「テーブル」の構造3101の子構造として、構造型904が「林型」の構造3102が設定される。
FIG. 31 is a diagram illustrating an example of the
In
図32は、図31に示す構造データ15に対応する値データ13を示す図である。
図32に示すように、構造区分905が「テーブル」の構造3101に対応するデータ3201は木ID1003=T5となり、同じ親データ3202を親にもつデータ3203および3204と同一の木ID1003が設定される。このように、同じ親をもつデータは、同一の木ID1003が設定されるので、データ照会部16は、親データから子データを照会する時に、木ID1003の変化を監視せずに、構造ID904の変化のみを監視すればよい。よって、データ照会部16の処理量は減少し、照会動作が高速に処理できる。
FIG. 32 is a diagram showing
As shown in FIG. 32, the
本発明は、データ管理装置および方法に適用でき、特に階層構造データを備えるデータ管理装置および方法に適用できる。 The present invention can be applied to a data management apparatus and method, and in particular to a data management apparatus and method having hierarchical structure data.
1 データ管理装置
2、3 ユーザ端末
4 ネットワーク
5 データ管理システム
10 IO制御部
11 ユーザ認証部
12 データ格納部
13 値データ
14 構造格納部
15 構造データ
16 データ照会部
17 木検索部
18 データ編集部
19 構造編集部
20 排他制御部
30〜33、60〜75、81〜83、906〜915、2201〜2208、2401、2501、3101〜3103 構造
41〜44、1005〜1024、1701〜1724、2301〜2312、2601〜2605、2701〜2705、3201〜3204 データ
77、78 木構造定義
91〜93 木構造データ
901 構造ID
902 親構造ID
903 構造名
904 構造型
905 構造区分
906 定義情報
1001 データID
1002 親データID
1003 木ID
1004 値
1401 ユーザ名
1402 パスワード
1403 グループ
1404〜1406 ユーザデータ
DESCRIPTION OF
902 Parent structure ID
903
1002 Parent data ID
1003 Tree ID
1004
Claims (13)
前記各構造データに対応する複数の値データを前記構造格納手段に格納される前記テーブルと異なるテーブルとして格納するデータ格納手段と、
ユーザが入力した検索対象および検索条件に対応する前記値データを検索するデータ検索手段とを備え、
前記値データは、前記構造データにより定義された階層構造において、相互に親子の関係を有し、
前記各構造データは、
当該構造データを一意に決定する構造IDを有し、
前記各値データは、
文字、数値、又は画像であるデータ値と、
前記複数の値データに含まれる2以上の世代間において親子の関係を有するデータを一つの木として識別するための識別子であり、2以上の世代間において親子の関係を有する値データに対して同一の値が付与される木IDと、
当該値データを一意に決定するデータIDと、
当該値データに対応する構造データが有する構造IDとを有し、
前記検索対象は、前記複数の構造データのうち、子となる構造データを有する1つの構造データの構造IDを示す情報であり、
前記検索条件は、
前記検索対象より下の階層の構造データの構造IDを示す第一情報と、
前記第一情報により示される構造IDを有する前記値データが有する前記データ値の条件を示す第二情報とを有し、
前記データ検索手段は、
前記検索対象により示される構造IDを有する値データを取得し、
取得した各値データが有する木IDを取得し、
取得した各木IDを有し、かつ前記第一情報により示される構造IDを有する値データを絞り込み、
絞り込んだ値データのうち、前記第二情報に示される条件を満たすデータ値を有す値データを検索する
ことを特徴とするデータ管理装置。 Structure storage means for storing a plurality of structure data defining a hierarchical structure as a table ;
Data storage means for storing a plurality of value data corresponding to each structure data as a table different from the table stored in the structure storage means ;
Data search means for searching for the value data corresponding to the search target and search condition input by the user,
The value data has a parent-child relationship with each other in the hierarchical structure defined by the structure data,
Each of the structural data is
Having a structure ID that uniquely determines the structure data;
Each value data is
Data values that are text, numbers, or images;
An identifier for identifying data having a parent-child relationship between two or more generations included in the plurality of value data as one tree, and the same for value data having a parent-child relationship between two or more generations and wood ID that of value is given,
A data ID for uniquely determining the value data;
And the structure ID of the structure data corresponding to the value data,
The search target is information indicating a structure ID of one structure data having child structure data among the plurality of structure data.
The search condition is:
First information indicating a structure ID of structure data in a hierarchy below the search target;
Second value indicating a condition of the data value of the value data having the structure ID indicated by the first information;
The data search means includes
Gets a value data have a more structured ID indicated in the search target,
Gets the tree ID to each value data obtained has,
Have a respective tree ID obtained, and refine the values data that have a structure ID indicated by the first information,
A data management device , wherein value data having a data value satisfying a condition indicated by the second information is searched from the narrowed value data.
前記各構造データの親データの構造IDを示す親構造IDを有する
ことを特徴とする請求項1記載のデータ管理装置。 Each structural data further includes:
The data management apparatus according to claim 1, further comprising a parent structure ID indicating a structure ID of parent data of each structure data.
前記各値データの親データのデータIDを示す親データIDを有する
ことを特徴とする請求項2記載のデータ管理装置。 Each value data further includes:
The data management device according to claim 2, further comprising a parent data ID indicating a data ID of parent data of each value data.
前記検索対象により示される構造IDを有する値データを取得し、
取得した各値データが有する木IDを取得し、
取得した各木IDを有し、かつ前記第一の検索条件が有する前記第一情報により示される構造IDを有する値データを絞り込み、
絞り込んだ値データのうち、前記第一の検索条件が有する前記第二情報に示される条件を満たすデータ値を有する値データを検索し、
検索した各値データが有する木IDを取得し、
取得した各木IDを有し、かつ前記第二の検索条件が有する前記第一情報により示される構造IDを有する値データを絞り込み、
絞り込んだ値データのうち、前記第二の検索条件が有する前記第二情報に示される条件を満たすデータ値を有する値データを検索し、
前記第二の検索条件で検索された各値データが有する木IDを有する値データを検索結果として出力する
ことを特徴とする請求項3記載のデータ管理装置。 When the search condition includes a first search condition and a second search condition each having the first information and the second information , the data search means
Gets a value data have a more structured ID indicated in the search target,
Gets the tree ID to each value data obtained has,
Have a respective tree ID obtained, and refine the values data having a structure ID indicated by the first information the first search condition has,
Among the refined value data, search for value data having a data value that satisfies the condition indicated by the second information of the first search condition,
It gets the tree ID with each value data search,
Have a respective tree ID obtained, and refine the values data having a structure ID indicated by the first information the second search condition has,
Among the refined value data, search for value data having a data value that satisfies the condition indicated by the second information that the second search condition has ,
The data management apparatus according to claim 3, wherein value data having a tree ID included in each value data searched under the second search condition is output as a search result.
ユーザが指定したデータIDに関する情報を前記構造データおよび前記値データから照会するデータ照会手段を備え、
前記データ照会手段は、
前記ユーザが指定したデータIDを有する第一の値データを取得し、
第一の値データの構造IDを親構造IDに持つ構造データを取得し、
前記取得した構造データの構造IDを持つ1以上の値データを取得し、
第一の値データおよび前記1以上の値データから階層構造データを作成し、
前記作成された階層構造データを表示する
ことを特徴とする請求項3または4記載のデータ管理装置。 The data management device further includes:
Data inquiry means for inquiring information on the data ID designated by the user from the structure data and the value data;
The data inquiry means includes
Obtaining first value data having a data ID designated by the user ;
Obtain structure data having the structure ID of the first value data as the parent structure ID,
Obtaining one or more value data having a structure ID of the obtained structure data;
Creating hierarchical structure data from the first value data and the one or more value data;
The data management apparatus according to claim 3 or 4, wherein the created hierarchical structure data is displayed.
ことを特徴とする請求項5記載のデータ管理装置。 The data management apparatus according to claim 5, wherein the value data having the same parent data ID has the same tree ID.
前記値データおよび前記構造データを編集する編集手段と、
前記編集手段により第一のユーザがデータの編集を行っている場合に、第二のユーザが編集を行えないように排他制御を行う排他制御手段とを備え、
前記排他制御手段は、排他制御を木ID単位で行う
ことを特徴とする請求項3、4、5または6記載のデータ管理装置。 The data management device further includes:
Editing means for editing the value data and the structure data;
An exclusive control means for performing exclusive control so that the second user cannot edit when the first user is editing data by the editing means,
The data management apparatus according to claim 3, 4, 5, or 6, wherein the exclusive control unit performs exclusive control in units of tree IDs.
前記照会手段は、前記他の値データの木IDをデータ値とする値データの照会結果として、前記木IDを持つ値データのデータ値を参照し、出力する
ことを特徴とする請求項5または6記載のデータ管理装置。 The plurality of value data includes value data whose data value is a tree ID of other value data,
The inquiry means refers to and outputs the data value of the value data having the tree ID as a result of inquiry of the value data having the tree ID of the other value data as a data value. 6. The data management device according to 6.
前記照会手段は、前記仮想型データの他の構造データとの関係の定義に従い、照会結果を出力する
ことを特徴とする請求項8記載のデータ管理装置。 The plurality of structure data includes virtual type data that defines a relationship with other structure data and does not have corresponding value data in the data storage unit,
The data management apparatus according to claim 8, wherein the inquiry means outputs an inquiry result in accordance with a definition of a relationship between the virtual data and other structure data.
前記照会手段は、前記参照された値データが、前記参照した値データから参照されている情報を照会結果として出力する
ことを特徴とする請求項9記載のデータ管理装置。 The virtual type data includes virtual type data defining information in which the value data is referred to by other value data,
The data management apparatus according to claim 9, wherein the inquiry unit outputs, as an inquiry result, information in which the referenced value data is referred to from the referenced value data.
前記各構造データに対応する複数の値データを前記構造格納手段に格納される前記テーブルと異なるテーブルとして格納するデータ格納ステップと、
ユーザが入力した検索対象および検索条件に対応する前記値データを検索するデータ検索ステップとをコンピュータが実行するデータ管理方法であって、
前記値データは、前記構造データにより定義された階層構造において、相互に親子の関係を有し、
前記各構造データは、
当該構造データを一意に決定する構造IDを有し、
前記各値データは、
文字、数値、又は画像であるデータ値と、
前記複数の値データに含まれる2以上の世代間において親子の関係を有するデータを一つの木として識別するための識別子であり、2以上の世代間において親子の関係を有する値データに対して同一の値が付与される木IDと、
当該値データを一意に決定するデータIDと、
当該値データに対応する構造データが有する構造IDとを有し、
前記検索対象は、前記複数の構造データのうち、子となる構造データを有する1つの構造データの構造IDを示す情報であり、
前記検索条件は、
前記検索対象より下の階層の構造データの構造IDを示す第一情報と、
前記第一情報により示される構造IDを有する前記値データが有する前記データ値の条件を示す第二情報とを有し、
前記データ検索ステップで、コンピュータが、
前記検索対象により示される構造IDを有する値データを取得し、
取得した各値データが有する木IDを取得し、
取得した各木IDを有し、かつ前記第一情報により示される構造IDを有する値データを絞り込み、
絞り込んだ値データのうち、前記第二情報に示される条件を満たすデータ値を有す値データを検索する
ことを特徴とするデータ管理方法。 A structure storing step for storing a plurality of structure data defining a hierarchical structure as a table ;
A data storage step of storing a plurality of value data corresponding to each structure data as a table different from the table stored in the structure storage means ;
A data management method in which a computer executes a data search step of searching for the value data corresponding to a search target and a search condition input by a user,
The value data has a parent-child relationship with each other in the hierarchical structure defined by the structure data,
Each of the structural data is
Having a structure ID that uniquely determines the structure data;
Each value data is
Data values that are text, numbers, or images;
An identifier for identifying data having a parent-child relationship between two or more generations included in the plurality of value data as one tree, and the same for value data having a parent-child relationship between two or more generations and wood ID that of value is given,
A data ID for uniquely determining the value data;
And the structure ID of the structure data corresponding to the value data,
The search target is information indicating a structure ID of one structure data having child structure data among the plurality of structure data.
The search condition is:
First information indicating a structure ID of structure data in a hierarchy below the search target;
Second value indicating a condition of the data value of the value data having the structure ID indicated by the first information;
In the data search step, a computer
Gets a value data have a more structured ID indicated in the search target,
Gets the tree ID to each value data obtained has,
Have a respective tree ID obtained, and refine the values data that have a structure ID indicated by the first information,
A data management method comprising: searching for value data having a data value satisfying the condition indicated by the second information from the narrowed value data.
前記各構造データに対応する複数の値データを前記構造格納手段に格納される前記テーブルと異なるテーブルとして格納するデータ格納ステップと、
ユーザが入力した検索対象および検索条件に対応する前記値データを検索するデータ検索ステップとを含み、
前記値データは、前記構造データにより定義された階層構造において、相互に親子の関係を有し、
前記各構造データは、
当該構造データを一意に決定する構造IDを有し、
前記各値データは、
文字、数値、又は画像であるデータ値と、
前記複数の値データに含まれる2以上の世代間において親子の関係を有するデータを一つの木として識別するための識別子であり、2以上の世代間において親子の関係を有する値データに対して同一の値が付与される木IDと、
当該値データを一意に決定するデータIDと、
当該値データに対応する構造データが有する構造IDとを有し、
前記検索対象は、前記複数の構造データのうち、子となる構造データを有する1つの構造データの構造IDを示す情報であり、
前記検索条件は、
前記検索対象より下の階層の構造データの構造IDを示す第一情報と、
前記第一情報により示される構造IDを有する前記値データが有する前記データ値の条件を示す第二情報とを有し、
前記データ検索ステップで、
前記検索対象により示される構造IDを有する値データを取得し、
取得した各値データが有する木IDを取得し、
取得した各木IDを有し、かつ前記第一情報により示される構造IDを有する値データを絞り込み、
絞り込んだ値データのうち、前記第二情報に示される条件を満たすデータ値を有す値データを検索する
データ管理方法をコンピュータに実行させることを特徴とするプログラム。 A structure storing step for storing a plurality of structure data defining a hierarchical structure as a table ;
A data storage step of storing a plurality of value data corresponding to each structure data as a table different from the table stored in the structure storage means ;
A data search step for searching for the value data corresponding to the search target and search condition entered by the user,
The value data has a parent-child relationship with each other in the hierarchical structure defined by the structure data,
Each of the structural data is
Having a structure ID that uniquely determines the structure data;
Each value data is
Data values that are text, numbers, or images;
An identifier for identifying data having a parent-child relationship between two or more generations included in the plurality of value data as one tree, and the same for value data having a parent-child relationship between two or more generations and wood ID that of value is given,
A data ID for uniquely determining the value data;
And the structure ID of the structure data corresponding to the value data,
The search target is information indicating a structure ID of one structure data having child structure data among the plurality of structure data.
The search condition is:
First information indicating a structure ID of structure data in a hierarchy below the search target;
Second value indicating a condition of the data value of the value data having the structure ID indicated by the first information;
In the data search step,
Gets a value data have a more structured ID indicated in the search target,
Gets the tree ID to each value data obtained has,
Have a respective tree ID obtained, and refine the values data that have a structure ID indicated by the first information,
A program for causing a computer to execute a data management method for searching for value data having a data value satisfying a condition indicated by the second information among the narrowed value data.
前記各構造データに対応する複数の値データを前記構造格納手段に格納される前記テーブルと異なるテーブルとして格納するデータ格納ステップと、
ユーザが入力した検索対象および検索条件に対応する前記値データを検索するデータ検索ステップとを含み、
前記値データは、前記構造データにより定義された階層構造において、相互に親子の関係を有し、
前記各構造データは、
当該構造データを一意に決定する構造IDを有し、
前記各値データは、
文字、数値、又は画像であるデータ値と、
前記複数の値データに含まれる2以上の世代間において親子の関係を有するデータを一つの木として識別するための識別子であり、2以上の世代間において親子の関係を有する値データに対して同一の値が付与される木IDと、
当該値データを一意に決定するデータIDと、
当該値データに対応する構造データが有する構造IDとを有し、
前記検索対象は、前記複数の構造データのうち、子となる構造データを有する1つの構造データの構造IDを示す情報であり、
前記検索条件は、
前記検索対象より下の階層の構造データの構造IDを示す第一情報と、
前記第一情報により示される構造IDを有する前記値データが有する前記データ値の条件を示す第二情報とを有し、
前記データ検索ステップで、
前記検索対象により示される構造IDを有する値データを取得し、
取得した各値データが有する木IDを取得し、
取得した各木IDを有し、かつ前記第一情報により示される構造IDを有する値データを絞り込み、
絞り込んだ値データのうち、前記第二情報に示される条件を満たすデータ値を有す値データを検索する
データ管理方法をコンピュータに実行させるプログラムを記録したコンピュータ読取可能な記録媒体。 A structure storing step for storing a plurality of structure data defining a hierarchical structure as a table ;
A data storage step of storing a plurality of value data corresponding to each structure data as a table different from the table stored in the structure storage means ;
A data search step for searching for the value data corresponding to the search target and search condition entered by the user,
The value data has a parent-child relationship with each other in the hierarchical structure defined by the structure data,
Each of the structural data is
Having a structure ID that uniquely determines the structure data;
Each value data is
Data values that are text, numbers, or images;
An identifier for identifying data having a parent-child relationship between two or more generations included in the plurality of value data as one tree, and the same for value data having a parent-child relationship between two or more generations and wood ID that of value is given,
A data ID for uniquely determining the value data;
And the structure ID of the structure data corresponding to the value data,
The search target is information indicating a structure ID of one structure data having child structure data among the plurality of structure data.
The search condition is:
First information indicating a structure ID of structure data in a hierarchy below the search target;
Second value indicating a condition of the data value of the value data having the structure ID indicated by the first information;
In the data search step,
Gets a value data have a more structured ID indicated in the search target,
Gets the tree ID to each value data obtained has,
Have a respective tree ID obtained, and refine the values data that have a structure ID indicated by the first information,
A computer-readable recording medium storing a program for causing a computer to execute a data management method for searching for value data having a data value satisfying a condition indicated by the second information among the narrowed value data.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005266092A JP4045283B2 (en) | 2005-09-13 | 2005-09-13 | Data management apparatus and data management method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005266092A JP4045283B2 (en) | 2005-09-13 | 2005-09-13 | Data management apparatus and data management method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007079872A JP2007079872A (en) | 2007-03-29 |
JP4045283B2 true JP4045283B2 (en) | 2008-02-13 |
Family
ID=37940119
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005266092A Active JP4045283B2 (en) | 2005-09-13 | 2005-09-13 | Data management apparatus and data management method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4045283B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9015733B2 (en) * | 2012-08-31 | 2015-04-21 | Facebook, Inc. | API version testing based on query schema |
-
2005
- 2005-09-13 JP JP2005266092A patent/JP4045283B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2007079872A (en) | 2007-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7293018B2 (en) | Apparatus, method, and program for retrieving structured documents | |
CN100535894C (en) | Database object script generation method and system | |
JP4947245B2 (en) | Information retrieval apparatus, information retrieval method, computer program, and data structure | |
US7974981B2 (en) | Multi-value property storage and query support | |
US7827478B2 (en) | Dynamic generation of form pages for accessing a database | |
JP2001056810A (en) | Database access system | |
KR101254544B1 (en) | Arrangement generation method and recording medium storing computer program for excuting the same | |
US20090187581A1 (en) | Consolidation and association of structured and unstructured data on a computer file system | |
CA2461871A1 (en) | An efficient index structure to access hierarchical data in a relational database system | |
JP2000348061A (en) | Semi-structured document information integrating retrieval device, semi-structured document information extracting device, its method and recording medium for storing its program | |
US20080313107A1 (en) | Data management apparatus and method | |
JP2006524376A (en) | Generic database schema | |
JP4207417B2 (en) | Document management device | |
CN107291951B (en) | Data processing method, device, storage medium and processor | |
WO2015022951A1 (en) | Automatic screen generation device, automatic screen generation program, and automatic screen generation method | |
CN104462461A (en) | Form null value check processing method and device | |
JP4045283B2 (en) | Data management apparatus and data management method | |
CN116414854A (en) | Data asset query method, device, computer equipment and storage medium | |
JP3842576B2 (en) | Structured document editing method and structured document editing system | |
JP4186452B2 (en) | Document management device | |
JP2002297601A (en) | Method and device for structured document management, and program | |
JP2004118543A (en) | Method for retrieving structured document, and method, device and program for supporting retrieval | |
JP2006039810A (en) | Device for supporting classification | |
JP6836185B2 (en) | File management device, file management system, file management method, and program | |
JP2013114331A (en) | Index management program, index management device and retrieval system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070315 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20070315 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20070410 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070417 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070516 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070814 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071001 |
|
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: 20071113 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071119 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4045283 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101122 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131122 Year of fee payment: 6 |
|
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 |
|
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 |