Source: http://www.google.com/patents/US5446886?dq=7,194,691
Timestamp: 2017-02-19 19:36:27
Document Index: 453061479

Matched Legal Cases: ['art 1', 'art 2', 'art 3', 'art 4', 'art 8', 'art 4', 'art 5', 'art 6', 'art 8', 'art 7', 'art 1', 'art 6', 'art 1', 'art 2', 'art 1', 'art 6', 'art 6', 'art 6', 'art 6', 'art 6', 'art 4', 'art 6', 'art 6', 'art 3', 'art 2', 'art 4', 'art 5', 'art 5', 'art 4', 'art 6', 'art 8', 'art 4', 'art 2', 'art 6', 'art 6', 'art 7']

Patent US5446886 - System from optimizing query processing of multi-attribute distributed ... - Google PatentsSearch Images Maps Play YouTube News Gmail Drive More »Sign inPatentsA distributed database system includes a communication network having a plurality of nodes each with a distributed database, a local process part for extracting relations from each database by performing local processes at each node when a query including multi-attribute relations thereof is input, a...http://www.google.com/patents/US5446886?utm_source=gb-gplus-sharePatent US5446886 - System from optimizing query processing of multi-attribute distributed relations using local relation tuple numbers to choose semijoinsAdvanced Patent SearchTry the new Google Patents, with machine-classified Google Scholar results, and Japanese and South Korean patents.Publication numberUS5446886 APublication typeGrantApplication numberUS 08/031,207Publication dateAug 29, 1995Filing dateMar 12, 1993Priority dateMar 12, 1992Fee statusPaidPublication number031207, 08031207, US 5446886 A, US 5446886A, US-A-5446886, US5446886 A, US5446886AInventorsHong LiOriginal AssigneeRicoh Company, Ltd.Export CitationBiBTeX, EndNote, RefManPatent Citations (5), Non-Patent Citations (4), Referenced by (98), Classifications (15), Legal Events (4) External Links: USPTO, USPTO Assignment, EspacenetSystem from optimizing query processing of multi-attribute distributed relations using local relation tuple numbers to choose semijoins
US 5446886 AAbstract
A distributed database system includes a communication network having a plurality of nodes each with a distributed database, a local process part for extracting relations from each database by performing local processes at each node when a query including multi-attribute relations thereof is input, a degree setting part for setting a degree number of each of the extracted relations, a relation set part for arranging relation sets each containing relations having the same degree number by grouping the extracted relations according to the degree number, an extraction part for extracting single-attribute relations from each relation set so that the single-attribute relations are added to a first relation set having the lowest degree number, a semijoin operating part for repeatedly semijoining two relations of a only relation set only when the quantity of transfer data resulting from the semijoining is decreased, so that a derived relation is added to a next relation set, and a control part for allowing the semijoin operating part to sequentially perform the semijoining and adding so that each derived relation is added to the transfer data.
1. A distributed database system for a communication network having a plurality of nodes, each of which nodes includes a distributed database, said distributed database system comprising:local process means for extracting relations from each database of said communication network by performing local processes at each of said nodes of said communication system when a query including multi-attribute relations is input from one of said nodes; degree setting means for setting a degree number of each of said extracted relations from said local process means based on (A) tuple numbers of single-attribute relations derived from said multi-attribute relations and (B) a tuple number of each of said multi-attribute relations; relation set means for arranging a plurality of relation sets, each of which relation sets contains relations having the same degree number in ascending order by grouping said extracted relations from said local process means according to the degree number set by said degree setting means, wherein said relation sets include a first relation set containing relations with the lowest degree number; extraction means for extracting single-attribute relations from each of said relation sets arranged by said relation set means so that said single-attribute relations are added to said first relation set; semijoin operating means for repeatedly semijoining two relations of a relation set when a quantity of transfer data after said semijoining is detected to be smaller than a quantity of transfer data before said semijoining, and for adding derived relations resulting from said semijoining to a following relation set among the plurality of relation sets arranged by said relation set means; and control means or allowing said semijoin operating means to sequentially perform said semijoining and said adding for all of the plurality of relation sets arranged by said relation set means, starting from said first relation set and ending at a relation set having the highest degree number, so that each derived relation resulting from said semijoining is added to the transfer data. 2. A distributed database system according to claim 1, further comprising:first means for detecting whether or not a derived relation, resulting from said semijoining by said semijoin operating means, is a high-level relation; and second means for dividing said derived relation into low-level relations when said derived relation is detected to be a high-level relation. 3. A distributed data base system according to claim 2, wherein:said semijoin operating means semijoins two relations from among said low-level relations from said second means when it is detected that the quantity of transfer data resulting from said semijoining of said two relations is decreased, so that each derived relation resulting from said semijoining is added to a next relation set among the plurality of relation sets arranged by said relation set means. 4. A distributed database system according to claim 1, wherein:said semijoin operating means includes said degree setting means. 5. A distributed database system according to claim 1, wherein said semijoin operating means includes:first means for detecting whether or not a derived relation resulting from said semijoining by said semijoin operating means is a high-level relation, the high-level relation having a degree number greater than half of the maximum number of attributes included in the multi-attribute relations of the query. 6. A distributed database system according to claim 1, wherein said semijoin operating means includes:second means for dividing a derived relation resulting from said semijoining by said semijoin operating means into low-level relations, each of which low-level relations has a degree number smaller than half of the maximum number of attributes included in the multi-attribute relations of the query, when said derived relation is detected to be a high-level relation. 7. A distributed database system according to claim 1, wherein:said control means obtains the transfer data by adding each derived relation to the transfer data, so that the transfer data is transmitted to said node. 8. A distributed database system according to claim 1, further comprising:means for sorting relations, included in each relation set of the relation sets arranged by said relation set means, according to the size of each relation in ascending order. 9. A distributed database system according to claim 1, further comprising:means for detecting whether or not the quantity of the transfer data, after said semijoining is performed by said semijoin operating means, is smaller than the quantity of the transfer data before said semijoining is performed. 10. A distributed database system according to claim 1, wherein:said degree setting means sets a degree number of a multi-attribute relation to a value "m" in accordance with the following equations and inequalities: K1=min[t1, t2, . . . , tn] K2=min [t1×t2, t1×t3, . . . , tn-1 xtn ] Kn=t1×t2×. . . ×tn K1&#8806;K2&#8806;. . . &#8806;Km&#8806;T&lt;Km+1&#8806;. . . &#8806;Kn wherein: T is a tuple number of said multi-attribute relation, ti (i=1,2, . . . ,n) are tuple numbers of single-attribute relations derived from said multi-attribute relation, and Ki are integers derived from the tuple numbers of the single-attribute relations. Description
The present invention generally relates to a distributed database system, and more particularly to a distributed database system for optimizing a sequence of query processes when a query including relations joined together with respect to multiple attributes thereof is input.
With recent development of computer systems and network technology, it is highlighted that distributed database systems, rather than centralized database systems, would be useful to efficiently store, retrieve and manipulate information in the distributed databases. However, a distributed database system still has some unresolved problems. One such problem is that it is difficult to efficiently perform the query processes for the distributed databases in response to an input query. Thus, the data transfer cost of the distributed database system is relatively high.
A paper entitled "Optimization of Tree Distributed Query" by H. Li and H. Sato (IPSJ Database System SIG Report 64-6; IPSJ Programming Language SIG Report 26-3, September 1990) discloses the use of semijoins between relations in order to reduce the quantity of data of relations and to decrease the total transmission time incurred when the tree distributed query processes are performed associated with the databases.
A paper entitled "Discussion on Optimization of Distributed Query Processing" by H. Li and H. Sato (IPSJ Database System SIG Report 64-6, March 1988) discloses a proposed approach for optimizing the transmission time and the response time in the distributed query processes associated with the databases. In the above mentioned paper, the uses of joins between multi-attribute relations and of semijoins between multi-attribute relations are discussed.
However, in the existing distributed database system, it is impossible to efficiently perform a sequence of query processes associated with distributed databases if a query including multi-attribute relations joined together with respect to the multiple attributes thereof is input. A query is a request for extracting information from the databases.
Next, a description will be given of the method for generating the semijoin between two relations. A derived relation resulting from the semijoin generation by this method is called a reducer, and this reducer serves to reduce the size of data to be transmitted. A query process of a distributed database system is performed in three major procedures. In a first procedure, local processes including projection operations, selection operations and joining operations are performed. In a second procedure, the size of data of relations to be transmitted is reduced. In a third procedure, the required operations are performed, and the data is transmitted to a node of the communication network from which a query was issued. When the second procedure is performed, the size of data to be transmitted is decreased by generating semijoins between single-attribute relations only.
FIGS. 1A-1E show a regular join between two relations and two semijoins between the relations derived from two distributed databases. The join between two relations A and B in FIGS. 1A and 1B is generated with respect to the attribute "a" as shown in FIG. 1C, and the resulting data includes all items of data of the two relations. A first semijoin between the two relations is generated with respect to the attribute "a" of the relation A as shown in FIG. 1D. The item "al" of the attribute "a" is shared by the two relations A and B. From this first semijoin, a tuple including the items "a2" and "b2" in the relation A is reduced. A second semijoin between the two relations A and B is generated with respect to the attribute "b" as shown in FIG. 1E. The item "b2" of the attribute "b" is shared by the two relations. From the second semijoin, a tuple including the items "al" and "b3" in the relation B is reduced. Generally, the quantity of data resulting from the semijoin generation is smaller than the quantity of data resulting from the regular join generation, as shown in FIGS. 1C-1E.
Accordingly, it is a general object of the present invention to provide an improved distributed database system in which the above described problems are eliminated.
Another, more specific object of the present invention is to provide a distributed database system which uses an optimized sequence of query processes for distributed databases when a query including relations joined together with respect to multiple attributes thereof is input such that the required data transfer cost is minimized. The above-mentioned objects of the present invention are achieved by a distributed database system for a communication network having a plurality of nodes each having a distributed database, which system includes a local process part for extracting relations from each database of the communication network by performing local processes at each of the nodes of the communication network when a query including multi-attribute relations is input from one of the nodes, a detection part for detecting a degree number for each of the extracted relations of the local process part, a relation set part for arranging a plurality of relation sets each of which contains relations having the same degree number in ascending order by grouping the extracted relations of the local process part according to the degree number detected by the detection part, the relation sets including a first relation set containing relations having the lowest degree number, an extraction part for extracting single-attribute relations from each of the relation sets of the relation set part so that the single-attribute relations are added to the first relation set, a semijoin operating part for repeatedly semijoining two relations of a relation set when a quantity of transfer data after the semijoining is detected to be smaller than a quantity of transfer data before the semijoining, and for adding derived relations resulting from the semijoining to a following relation set among the plurality of relation sets arranged by the relation set part for allowing the semijoin operating part to sequentially perform the semijoining and the adding for all of the plurality of relation sets arranged by the relation set part, starting from the first relation set and ending at a relation set having the highest degree number, so that each derived relation resulting from the semijoining is added to the transfer data.
According to the present invention, it is possible to efficiently perform the query processes for the distributed databases when a query including multi-attribute relations is input. The efficiency of the distributed database system is highly increased from that of the existing distributed database system due to the use of the degree number for each relation. It is possible to remarkably reduce the data transfer cost for the query processes.
FIGS. 1A, 1B, 1C, 1D, and 1E (which may be collectively referred to herein as "FIG. 1"), are diagrams showing a join between two relations and semijoins between the relations used in a distributed database system according to the prior art;
FIG. 2 is a block diagram showing an embodiment of a distributed database system according to the present invention;
FIG. 3 is a flow chart for explaining an optimized sequence of query processes performed by the distributed database system shown in FIG. 2;
FIGS. 4A through 4D are diagrams for explaining query processes performed when a query is input from a node of a communication network; and
FIGS. 5A through 5D are diagrams showing the details of some distributed databases and the results of the associated equations according to the present invention.
A description will be given of query processes performed, on a communication network having a plurality of nodes each of which includes a distributed database, when a query is input. FIG. 4A shows a communication network having three nodes (1) through (3) each of which includes a distributed database. The node (1) has a distributed database DDB1 in which a relation R1(a,b) (where "a" and "b" are two attributes of the relation R1) is described, the node (2) has a distributed database DDB2, and the node (3) has a distributed database DDB3 in which a relation R3(a,b) is described.
In the communication network shown in FIG. 4A, a query, which is a request for extracting information from the distributed databases in the communication network, is input from the node (2). For example, if a query R(a,b)=R1(a,b),R3(a) (where "*" denotes a relational operator indicating a join between relations) is provided, three query processes shown in FIGS. 4B through 4D are possible.
In the first query process shown in FIG. 4B, data of the relation R1(a,b) is transmitted from the node (1) to the node (2), and data of the relation R3(a) is transmitted from the node (3) to the node (2). In the second query process shown in FIG. 4C, data of the relation R3(a) is transmitted from the node (3) to the node (1) so that a semijoin is generated, and data of the relation R1(a,b) is transmitted from the node (1) to the node (2). In the third query process shown in FIG. 4D, data of the relation R1(a) is transmitted from the node (1) to the node (3) after a semijoin was generated, and data of the relation R3(a) is transmitted from the node (3) to the node (1) after a semijoin was generated, and data of the relation R1(a,b) is transmitted from the node (1) to the node (2).
The distributed database system according to the present invention uses an optimized sequence of query processes for the distributed databases so as to minimize the required data transfer cost.
Next, a description will be given of a distributed database system in which the sequence of query processes for the distributed databases is optimized.
In the distributed database system according to the present invention, it is assumed that the query processes associated with the distributed databases are performed on a computerized communication network having a plurality of nodes each of which includes a distributed database at a local site. Thus, the cost required for performing the query processes is only that of the data transfer cost in the communication network. This data transfer cost C is expressed by the following equation:
C=Co+a X                                                   (1)
where "Co" is the start-up cost, "a" is the cost needed to transmit one unit of data on the communication networks and "X" is the quantity of data being transmitted. For the sake of convenience, the unit data transfer cost "a" is assumed to be equal to 1.
It is assumed that each node of the communication network includes a distributed relational database at a local site, and that a query is input from one node of the communication network. The query processes associated with the distributed databases are performed between two or more nodes of the communication network. It is assumed that the relations are dispersed at the network sites. If there are two or more relations having the same items in a database, only one of the relations is previously chosen. It is assumed that data is uniformly distributed on each relation, and that attributes are statistically independent from each other. The above mentioned assumptions are normally used in a distributed database system. The distributed database system according to the present invention uses an optimized sequence of query processes for the databases when a query including relations joined together with respect to multiple (two or more) attributes thereof is input.
Next, the schema used in the distributed database system of the present invention will be described. As described above, the distributed database system of the present invention uses an optimized sequence of query processes for distributed databases when a query including relations joined together with respect to multiple attributes thereof is input.
Hereinafter, "R" (or "U") denotes a relation or its tuple, and "a" "b" "c", . . . , denote attributes of a relation. "R (a, b, c)" denotes a relation having attributes "a" "b" and "c" "R(a)" denotes a relation having an attribute "a". "t" (or "T") denotes a tuple number of a relation, and "ta" denotes a tuple number of a relation R(a). "Da" denotes the size of the range of an attribute "a". "pa" denotes the selectivity of a relation R(a), which is indicated by the formula: pa=ta/Da.
The following notations are also used in the distributed database system according to the present invention. "R(a)" indicates a relation or a tuple of the relation. "|R|" indicates the size of a relation R. "tab" indicates the tuple number of a relation R(a,b) having the attributes "a" and "b". A notation "R1→R2" indicates that data of a relation R1 is transmitted to a relation R2, and a semijoin bwtween the relations is generated at a site of the relation R2.
Next, the selectivities of multi-attribute relations and the semijoins between multi-attribute relations will be described. Conventionally, in order to determine the selectivity of a relation R(a,b), the selectivity pa (=ta/Da) of a single-attribute relation R(a) and the selectivity pb (=tb/Db) of a single-attribute relation R(b) are used. Generally, with respect to the tuple number "ta" the tuple number "tb" and the tuple number "tab" of the relation R(a,b), the following inequality is satisfied.
tab&#8806;ta×tb                                     (2)
The following formula is derived from the inequality (2) above.
tab/(Da×Db)&#8806;pa×pb(=(ta×tb)/(Da×Db)) (3)
Therefore, the selectivity "pab" of the relation R(a,b) is obtained as follows.
pab=tab/(Da×Db)                                      (4)
Accordingly, the selectivity "p" of a multi-attribute relation R(a1,a2, . . . ,an) having a tuple number t is indaited as follows.
p=t/(Da1×Da2×. . . ×Dan)                 (5)
When a semijoin between multi-attribute relations is generated by making use of the selectivities of the multi-attribute relations, such a semijoin can be generated in accordance with the associative law which is the same as that for a single-attribute relation. Hence, a tuple number t' after generation of the semijoin between the multi-attribute relation having the selectivity "p" and a relation "R" having a tuple number "t" becomes as follows.
t'=t×p                                               (6)
The expected value R'(b) of the tuple number with respect to the non-joined attribute "b" is
R'(b)=min [t×p, tb].                                 (7)
This formula (7) is an approximation of the formula (6). As described above, the following inequality is generally satisfied.
tab&lt;&lt;ta×tb                                           (8)
Thus, the following inequality is satisfied.
pab&lt;&lt;pa×pb                                           (9)
It is apparent from the inequality (9) that the selectivity when a semijoin between multi-attribute relations with respect to the attributes "a" and "b" is generated is smaller than or equal to the sum of the selectivity when a semijoin with respect to the attribute "a" is generated and the selectivity when a semijoin with respect to the attribute "b" is generated.
Accordingly, it is possible to effectively reduce the quantity of data to be transmitted by generating a semijoin between multi-attribute relations with respect to multiple attributes thereof. However, some duplicate data of the same attribute may appear if a semijoin with respect to only one attribute is generated.
Next, the degree number of a multi-attribute relation used by the distributed database system according to the present invention will be described.
If each item of data of a relation in a database can be specified using data of one attribute of the relation only, the degree number of the relation is equal to 1. In a case in which a relation including employee records has one attribute of identification number, each employee of the employee records is specified with a known identification number only, and the degree number of the relation in this case is equal to 1. However, in another case, the identification number is unknown and it is necessary to use, for example, the employee name and the birth date in order to specify each employee of the records. In such a case, the degree number of the relation is equal to 2.
Generally, a multi-attribute relation R(a1,a2, . . . ,an) has a tuple number T, and each of single-attribute relations R(ai) (i=1,2, . . . ,n) has a tuple number ti. In the distributed database system according to the present invention, integers Ki (i=1,2, . . . ,n) with respect to the relation R are defined as follows.
K1=min[t1, t2, . . . , tn]
K2=min [t1×t2, t1×t3, . . . , tn-1 ×tn ]
Kn=t1×t2 ×. . . ×tn                      (10)
According to the definitions of the integers Ki, the following inequalities are satisfied.
K1&#8806;K2&#8806;. . . Kn                               (11)
K1&#8806;T&#8806;Kn                                      (12)
If the following inequalities are satisfied:
K1&#8806;K2&#8806;. . . &#8806;Km&#8806;T&lt;Km+1 &#8806;. . . &#8806;Kn (13)
the degree number d(R) of the relation R is defined to be equal to the number "m" that is "d(R)=m".
FIG. 5A shows a table in which associated data of a relation R(a,b,c) having the degree number equal to 1 is indicated. The tuple numbers of the single-attribute relations R(a), R(b), and R(c) are respectively; t1=80, t2=100, and t3=60. In accordance with the above equations (10), the values of the integers Ki (i=1,2,3) with respect to the relation R(a,b,c) are obtained as follows.
K1=t3=60
K2=t3×t1=60×80=4800
K3=t1×t2×t3=60×80×100=480000
Since the tuple number T of the relation R(a,b,c) is equal to 100,
K1(=60)&lt;T(=100)&lt;K2(=4800).
Hence, it is possible to detect that the degree number of the relation in the table shown in FIG. 5A is equal to 1.
FIG. 5B shows a table in which associated data of a relation R(a,b,c) having the degree number equal to 2 is indicated. According to the table shown in FIG. 5B, the associated data is the same as that of the table shown in FIG. 5A, except that the tuple number of the relation R(a,b,c) is equal to 5000. Since the tuple number T of the relation R(a,b,c) is equal to 5000 as shown in the table of FIG. 5B, the following inequalities are satisfied:
K2 (=4800)&lt;T (=5000)&lt;K3 (=480000).
Thus, the degree number of the relation R(a,b,c) shown in FIG. 5B is equal to 2.
There are three important factors which must be evaluated when a first relation having multiple attributes at one node of a communication network is transmitted to another node so that the first relation is joined to a second relation. The first factor is the quantity of data to be transmitted from one node to another. The data transfer cost varies depending on the data quantity.
The second factor is whether or not the quantity of data of the second relation is reduced by generating a join between the relations. If the quantity of data of the second relation is reduced due to the semijoin, the semijoin between the relations is said to have a benefit. This factor is influenced by the above described selectivity of the relation data to be transmitted.
The third factor is the effect of associated data between the attributes of the transfer data. When a projection of the first relation is made on the second relation and then the resulting relation is transmitted, the quantity of duplicate data is reduced. Although the selectivity is increased each time a projection is made, the degree number of a relation R having "n" attributes is not greater than the degree number of a derived relation R' as the result of the projection. It is obvious that the value of the degree number of the relation R' lies between 1 and "n".
Assuming that "T" is the tuple number of the relation R and "T'" is the tuple number of the derived relation as the result of the projection, the inequality: T'≦T is satisfied. Assuming that "Ki" (1≦i≦n) are integers used to calculate the degree number of the relation R, and that "Ki'" are integers used to calculate the degree number of the derived relation R', the inequality: Ki'>Ki is satisfied. Especially, the degree number of a derived relation when it is derived from a relation with the degree number equal to 1 is also equal to 1.
Next, the degree number of the relation R when a semijoin is generated using the relation R will be described. Assume that the tuple number of a relation R(a1,a2, . . . ,an) is denoted by "T" the selectivity of a relation R1(a1) is denoted by "p", the tuple number of a derived relation R' is denoted by "T'", the tuple number of the relation R for each attribute is denoted by "ti" (i=1,2, . . . , n) , and the tuple number of the derived relation R' for each attribute is denoted by "ti'". The following equation is satisfied.
T'=T×p                                               (14)
The following inequality is derived from the above equation (14).
T'&lt;K'm+1                                                   (15)
For the sake of convenience, the conditions: t2≦t3≦. . . tn are assumed. From the above equation (14), the following equation is obtained: ##EQU1## If the tuple number T' appears in the result of calculation of the equation (16), the equation (15) is always satisfied. If the tuple number T' does not appear there, the equation (16) is equivalent to the following equation.
K'm+1=min[t1xpxt2x . . . xtm+1, t2xt3x . . . xtm+2]        (17)
It is apparent from the equations (14), (16) and (17) that the equation (16) is satisfied.
Accordingly, two principles can be obtained. The first principle is that the degree number of a derived relation is not greater than the degree number of the input relation having "n" attributes when a semijoin between the relations is generated. In most cases, the degree number of the derived relation is less than that of the input relation when such a semijoin is generated. The second principle is that the degree number of a derived relation is not greater than the degree number of the input relation having "n" attributes when a semijoin is generated using a single-attribute relation from the input relation. The expected value of the tuple number for a non-joined attribute of a derived relation is calculated in accordance with the above equation (7). It is possible that the degree number of a derived relation after a semijoin is generated is equal to 1 if the selectivity p is suitably preset such that the inequality: T'≦t2 is satisfied.
Generally, when the degree number of a relation is small, little duplicate data appears in a derived relation. When an input relation (any of the input relations included in the query) having "n" attributes has a degree number equal to "m" (m>1), much duplicate data may appear in a single-attribute relation derived from the input relation. Hereinafter, a relation having a degree number "m" greater than half of the attribute number "n" (m>n/2) is called a high-level relation, and a relation having a degree number "m" smaller than half of the attribute number "n" (m<n/2) is called a low-level relation. According to the present invention, the data transfer cost can be remarkably reduced by dividing a high-level relation having a number of attributes into low-level relations having fewer attrbibutes than the high-level relation.
FIG. 2 shows a preferred embodiment of the distributed database system according to the present invention. The distributed database system of the present invention is applied to a communication network having a plurality of nodes each including a distributed database, and the distributed database system uses an optimized sequence of transfer processes associated with distributed databases when a query including input relations joined together with respect to multiple attributes thereof is input.
The distributed database system shown in FIG. 2 includes a local process part 1, a relation set part 2, an extraction part 3, a semijoin operating part 4, and a control part 8. The semijoin operating part 4 includes a semijoin part 5 and a degree setting part 6. The control part 8 includes a transfer data part 7 in which the transfer data is generated as a result of the query processes is generated.
The local process part 1 extracts relations from each database of the communication network by performing local processes at each of the nodes of the communication network when a query including multi-attribute relations is input from one of the nodes. The degree setting part 6 sets a degree number of each of the extracted relations from the local process part 1 in accordance with the above-mentioned formulas (10) through (13).
The relation set part 2 arranges a plurality of relation sets each of which contains relations having the same degree number in ascending order by grouping the extracted relations of the local process part 1 according to the degree number detected by the degree setting part 6, the relation sets including a first relation set containing relations having the lowest degree number.
The degree setting part 6 includes a decision part 6a and a division part 6b. The decision part 6a detects whether or not a derived relation resulting from the joining by the semijoin operating part 4 is a high-level relation having a degree number greater than half of the number of attributes of any of the input relations. The division part 6b divides the above-mentioned derived relation into low-level relations each having a degree number smaller than half of the number of attributes of any of the input relations when the decision part 6a detects that the above-mentioned derived relation is a high-level relation.
The extraction part 3 extracts single-attribute relations from each of the relation sets of the relation set part 2 so that the single-attribute relations are added to the first relation set.
The semijoin operating part 4 repeatedly semijoins two relations of a relation set when a quantity of transfer data after the semijoining is detected to be smaller than a quantity of transfer data before the semijoining, and adds derived relations resulting from the semijoining to a following relation set among the plurality of relation sets arranged by the relation set part. The semijoin part 5 detects whether or not the quantity of data to be transmitted as a result of the semijoining of the two relations is less than the quantity of data to be transmitted before the semijoining is performed. The semijoining part 5 generates a semijoin between the two relations when it detects that a derived relation resulting from the semijoin has the benefit.
In addition, the semijoin operating part 4 semijoins two relations from among the low-level relations of the division part 6b in the above described manner.
The control part 8 allows the semijoin operating part 4 to sequentially perform the above mentioned semijoining and adding for all of the plurality of relation sets arranged by the relation set part 2, starting from the first relation set and ending at a relation set having the highest degree number, so that each derived relation resulting from the semijoining is added to the transfer data. The thus obtained transfer data is transmitted to the above-mentioned node.
FIG. 3 shows a sequence of query processes used by the distributed database system of the present invention shown in FIG. 2. The sequence of the query processes is performed by the distributed database system such that the data transfer cost is minimized. When it is detected that a semijoin generated using a relation has a benefit as mentioned above, the relation is joined and a derived realtion resulting from the joining is transmitted. Generally, if the semijoin has the benefit, the cost incurred when the derived relation data is transmitted after the semijoin is generated is smaller than the cost incurred when the unjoined relation data is directly transmitted without generating any semijoin.
When a query including relations joined with respect to multiple attributes thereof is input to a communication network having a plurality of nodes, the sequence of query processes shown in FIG. 3 is performed by the distributed database system shown in FIG. 2. Step S10 performs local processes at each node of the communication network to extract relations from the distributed database. A degree number for each of the extracted relations is detected by the degree setting part 6 shown in FIG. 2. The local processes performed in step S10 include projection operations, selection operations, and joining operations for each relation of the query.
Step S20 groups the extracted relations in step S10 according to the degree number detected by the degree setting part 6, so that a number of relation sets each containing relations with the same degree number are arranged in ascending order. Generally, the relation sets "Gi" include one or more relations having the degree number "i" (1≦i≦n). Especially, the relation set including relations with the lowest degree number is referred to as the first relation set G1. Usually, the degree number of the first relation set G1 is equal to 1, and the first relation set G1 includes single-attribute relations only.
Step S30 extracts single-attribute relations from each of the relation sets obtained in step S20 excluding the first relation set G1. The extracted single-attribute relations are added to the first relation set G1. Step S40 repeats the following steps S41 through S44 for each of the relation sets obtained in step S20. This step is sequentially performed from the first relation set G1 to the relation set having the highest degree number.
Step S41 sorts the relations of each relation set according to the size of each relation in ascending order. Step S42 generates a semijoin between two relations in each relation set when it is detected that the semijoin has a benefit. Each derived relation as a result of the semijoin is added to the transfer data (which becomes the response to the query) of the transfer data part 7 in step S42. This step is sequentially performed from the relation of the smallest size in the relation set to the relation of the greatest size in the relation set. Generally, when it is detected that a semijoin between a first relation and a second relation has no benefit, the first relation is eliminated. However, if the first relation has no attribute being shared by the second relation, the first relation is not eliminated.
When a derived relation in step S42 is detected as being a high-level relation, step S43 divides the high-level relation into low-level relations. In step S43, a semijoin between a low-level relation having the smallest size and a relation having the next smallest size is generated when it is detected that the semijoin has a benefit. This procedure is repeated until the relation of the greatest size of the relation set is processed.
Step S44 adds a derived relation resulting from the joining in the target relation set in step S42 to a next relation set which follows the target relation set in the ascending arrangement order. When two or more relations remain unprocessed in the target relation set as a result of the step S43 mentioned above, step S44 adds the remaining relations to a next relation set which follows the target relation set in the ascending arrangement order. In the case of the relation set having the highest degree number, the derived relations are added to the transfer data in step S44.
Step S50 decides whether unjoined relations are transmitted to the transfer data without generating any semijoin or the relations derived as a result of the above mentioned procedures in steps S41-S44 are transmitted to the transfer data after the corresponding semijoin is generated.
In order to reduce the response time needed in response to the query associated with the query processes, it is desirable that the single-attribute relations extracted from each relation set are added to each relation set in step S30, and that the procedures of steps S41-S44 are performed for the respective relation sets in parallel.
FIG. 5C shows the details of a distributed database for which a sequence of query processes is performed by the distributed database system shown in FIG. 2. The distributed database shown in FIG. 5C contains a low-level relation R1(a,b) with the degree number equal to 1, a high-level relation R2(a,b,c) with the degree number equal to 2, and a high-level relation R3(a,b,c) with the degree number equal to 3. The sequence of query processes performed according to the present invention when a query including the relations R1, R2 and R3 joined with respect to the attributes (a,b,c) is input will be described.
In the example shown in FIG. 5C, the start-up cost Co is equal to 5, After the local processes are performed in step S10, step S20 groups the relations according to the degree number so that three relation sets Gi=[R1], G2=[R2], and G3=[R3] are arranged.
Step S30 extracts single-attribute relations R2(a), R3(a) and R3(c) from each of the relations R2 and R3, and adds these relations to the relation set G1 having the lowest degree number. The resulting relation set Gi' at this time is indicated as follows.
G1'=[R3(a),R2(b),R3(c),R1]
According to the procedures of steps S41-S44, the following query process is selected.
R3 (a)→R1. Because a semijoin generated with the relation R2(b) has no benefit, the relation R2(b) is not added to the relation set G2. The relation R3(a) is joined to the relation R1, and the resulting relation R1'(a,b) and the relation R3(c) are added to the relation set G2. The tuple number of the relation R1' is equal to 24 (=80×0.3). The resulting relation set G2' is as follows.
G2'=[R1'(a,b),R3(c),R2]
According to the procedures of steps S41-S44, the relation R1' is transmitted to the relation R2 so that a semijoin between the two relations is generated. A derived relation resulting from the semijoin is added to the relation set G3. Because a semijoin generated using the relation R3(c) has no benefit, the relation R3(c) is not added to the relation set G3. Step S50 decides that the following sequence of query processes is to be selected.
R3(a)→R1→R2→R3→
The data transfer cost needed for the above mentioned sequence of query processes is calculated as shown in FIG. 5C.
FIG. 5D shows the details of another distributed database for which a sequence of query processes is performed. The distributed database shown in FIG. 5D includes a low-level relation R1(b) with the degree number equal to 1, a low-level relation R2(a,b) with the degree number equal to 1, a high-level relation R3(a,b) with the degree number equal to 2, and a high-level relation R4(a,b,c) with the degree number equal to 2. The sequence of query processes performed according to the present invention when a query including the relations R1, R2, R3 and R4 joined with respect to the attributes (a,b,c) is input will be described.
In this example, the start-up cost Co is equal to 5. After the steps S10-30 are performed, the resulting relation sets are:
G1'=[R4(a),R3(b),R4(c),R1,R2], G2=[R3,R4]
According to the procedures of steps S41-S44 performed for the relation set G1', the following query process is selected:
R4(a)→R2.
The relation R4(a) is joined to the relation R2 so that the resulting relation R2'(a,b) is generated. The resulting relation R2'(a,b), the relation R4(c), and the relation R1 are added to the relation set G2. The relation R3(b) is not added to the relation set G2 because a semijoin generated using the relation R3(b) has no benefit. Thus, the relation set G2'=[R2'(a,b),R4(c),R1,R3,R4] is obtained.
According to the procedures of steps S41-S44, the following sequence of query processes is selected.
R2'(a,b)→R3(a,b)→R4(a,b,c)→
The resulting relation R4'(b) is transmitted to the relation R1 so that a semijoin between the two relations is generated. After the semijoin is generated, the resulting relation data is transmitted to the node from which the query is issued. The response to the query is generated at this node from the transfer data.
R'4(b)→R1→
Accordingly, the sequence of the query processes to be selected is
R4(a)→R2(a,b)→R3(a,b)→R4(a,b,c)→R'4(b)→R1→
The data transfer cost needed for the sequence of the query processes is calculated as shown in FIG. 5D.
Next, a description will be given of the selectivity of the multi-attribute relation when it is joined to another relation.
The selectivity when a semijoin between a relation R(a,b, . . .) and a relation R(a,b) is generated with respect to the two attributes (a,b) will be described. Assuming that a tuple number "tr" of the relation R(a,b) is selected, the selectivity "pr" of the relation R(a,b) at this time is indicated by the equation: pr=tr/(Da×Db)
When the tuple number tr of the relation R(a,b) is selected, the expected value E[ta] of a tuple number ta of a relation R(a) is determined using the following approximation: ##EQU2## The expected value E[tb] is determined in the same manner. It is assumed that the tuple number t of the relation R(a,b), the tuple number ta of the relation R(a), and the tuple number tb of the relation R(b) are given. A specific tuple t1 of the relation R(a,b) to be joined is considered, and the probability "Pa" of the value of this tuple t1 being included in the attribute "a" of the relation R(a,b) and the probability "Pb" of the value of this tuple t1 being included in the attribute "b" of the relation R(a,b) are indicated as follows.
Pa=ta/Da, Pb=tb/Db                                         (23)
When these equations are satisfied, the conditional probability "Pab" of the value of the tuple t1 being included in the attribute "ab" of the relation R(a,b) is:
Pab=t/(ta×tb).                                       (24)
The records of the attribute "ab" of the relation R(a,b) are selected from among "ta×tb" records. The following equation is derived from the above mentioned equations (23) and (24).
P=Pa×Pb×Pab=t/(Da×Db)                    (25)
According to this equation (25), it is possible to determine the selectivity "p" of the relation R(a,b). The equation (25) is in accordance with the above equation (21), and the selectivity of the relation R(a,b) determined by using the equation (25) is reasonable.
The above mentioned equations can be extended in order to determine the selectivity in the case of a multi-attribute relation having three or more attributes.
According to the present invention, several relations having multiple attributes can be processed so as to reduce the quantity of data to be transmitted, such that the total transmittion time is minimized. Also, a high-level relation is transformed into low-level relations, and each of the low-level relations is processed so as to reduce the quantity of data to be transmitted.
According to the present invention, it is necessary to check the degree numbers as well as the selectivities for achieving an optimized sequence of query processes, and this may increase the load on the communication network. However, it is a minor problem in an actual distributed database system because the quantity of additional data due to the degree numbers and the selectivities being checked is relatively small.
As described in the foregoing, according to the present invention, it is possible to efficiently perform the query processes associated with the distributed databases when a query including multi-attribute relations joined together with respect to the multiple attributes thereof is input. The efficiency of the distributed database system is increased due to the use of the degree numbers of the relations. According to the present invention, it is possible to remarkably reduce the data transfer cost or the total transmission time.
Patent CitationsCited PatentFiling datePublication dateApplicantTitleUS4769772 *Feb 28, 1985Sep 6, 1988Honeywell Bull, Inc.Automated query optimization method using both global and parallel local optimizations for materialization access planning for distributed databasesUS4811207 *Mar 6, 1986Mar 7, 1989Oki Electric Industry Company, Ltd.Join operation processing system in distributed data base management systemUS5121494 *Oct 5, 1989Jun 9, 1992Ibm CorporationJoining two database relations on a common field in a parallel relational database fieldUS5241648 *Feb 13, 1990Aug 31, 1993International Business Machines CorporationHybrid technique for joining tablesUS5325525 *Apr 4, 1991Jun 28, 1994Hewlett-Packard CompanyMethod of automatically controlling the allocation of resources of a parallel processor computer system by calculating a minimum execution time of a task and scheduling subtasks against resources to execute the task in the minimum time* Cited by examinerNon-Patent CitationsReference1H. Li and H. Sato, "Discussion on Optimization of Distributed Query Processing", IPSJ Database System SIG Report 64-6, Mar., 1988.2H. Li and H. Sato, "Optimization of Tree Query in Distributed Database System", IPSJ Database System SIG Report 64-6, IPSJ Programming Language SIG Report 26-3, Sep., 1990.3 *H. Li and H. Sato, Discussion on Optimization of Distributed Query Processing , IPSJ Database System SIG Report 64 6, Mar., 1988.4 *H. Li and H. Sato, Optimization of Tree Query in Distributed Database System , IPSJ Database System SIG Report 64 6, IPSJ Programming Language SIG Report 26 3, Sep., 1990.* Cited by examinerReferenced byCiting PatentFiling datePublication dateApplicantTitleUS5600829 *Sep 2, 1994Feb 4, 1997Wisconsin Alumni Research FoundationComputer database matching a user query to queries indicating the contents of individual database tablesUS5694591 *May 2, 1995Dec 2, 1997Hewlett Packard CompanyReducing query response time using tree balancingUS5740423 *Dec 28, 1995Apr 14, 1998Csg Systems, Inc.System and method for accessing distributed data on a plurality of databasesUS5745746 *Jun 24, 1996Apr 28, 1998International Business Machines CorporationMethod for localizing execution of subqueries and determining collocation of execution of subqueries in a parallel databaseUS5815556 *Dec 2, 1994Sep 29, 1998Telefonaktiebolaget L M EricssonMethod and apparatus for extracting a subset of data wanted by a customer from a group of subsets of data wanted by different customersUS5899997 *Apr 1, 1997May 4, 1999Transparency Systems, Inc.Object-oriented query mechanismUS5978577 *Mar 17, 1995Nov 2, 1999Csg Systems, Inc.Method and apparatus for transaction processing in a distributed database systemUS6321241Jul 2, 1998Nov 20, 2001Brio Technology, Inc.Cross tab analysis and reporting methodUS6609100 *Mar 7, 1997Aug 19, 2003Lockhead Martin CorporationProgram planning management systemUS6990458Aug 28, 1997Jan 24, 2006Csg Systems, Inc.System and method for computer-aided technician dispatch and communicationUS7496683 *Jul 27, 2006Feb 24, 2009International Business Machines CorporationMaximization of sustained throughput of distributed continuous queriesUS7562342Dec 2, 2004Jul 14, 2009International Business Machines CorporationMethod and apparatus for incrementally processing program annotationsUS7584200 *Jan 31, 2005Sep 1, 2009International Business Machines CorporationGraphical database navigator with relation level controlUS7636712Nov 14, 2006Dec 22, 2009Microsoft CorporationBatching document identifiers for result trimmingUS7644050Dec 2, 2004Jan 5, 2010International Business Machines CorporationMethod and apparatus for annotation-based behavior extensionsUS7680779Jan 26, 2007Mar 16, 2010Sap AgManaging queries in a distributed database systemUS7725344Dec 16, 2004May 25, 2010Csg Systems, Inc.System and method for computer-aided technician dispatch and communicationUS7769747Dec 2, 2004Aug 3, 2010International Business Machines CorporationMethod and apparatus for generating a service data object based service pattern for an enterprise Java beans modelUS7792851 *Dec 2, 2004Sep 7, 2010International Business Machines CorporationMechanism for defining queries in terms of data objectsUS7797302Dec 15, 2007Sep 14, 2010Expanse Networks, Inc.Compiling co-associating bioattributesUS7818310Aug 31, 2007Oct 19, 2010Expanse Networks, Inc.Predisposition modificationUS7844609May 9, 2007Nov 30, 2010Expanse Networks, Inc.Attribute combination discoveryUS7853584 *Dec 5, 2006Dec 14, 2010International Business Machines CorporationMulti-partition query governor in a computer database systemUS7882100Jan 24, 2005Feb 1, 2011Sybase, Inc.Database system with methodology for generating bushy nested loop join treesUS7917438Sep 10, 2008Mar 29, 2011Expanse Networks, Inc.System for secure mobile healthcare selectionUS7933912Jan 3, 2008Apr 26, 2011Expanse Networks, Inc.Compiling co-associating bioattributes using expanded bioattribute profilesUS8024348Aug 8, 2007Sep 20, 2011Expanse Networks, Inc.Expanding attribute profilesUS8051033May 13, 2007Nov 1, 2011Expanse Networks, Inc.Predisposition prediction using attribute combinationsUS8055643Sep 9, 2010Nov 8, 2011Expanse Networks, Inc.Predisposition modificationUS8065324Oct 26, 2010Nov 22, 2011Expanse Networks, Inc.Weight and diet attribute combination discoveryUS8135703Sep 28, 2010Mar 13, 2012International Business Machines CorporationMulti-partition query governor in a computer database systemUS8185461Apr 4, 2011May 22, 2012Expanse Networks, Inc.Longevity analysis and modifiable attribute identificationUS8200509Sep 10, 2008Jun 12, 2012Expanse Networks, Inc.Masked data record accessUS8209319Aug 9, 2010Jun 26, 2012Expanse Networks, Inc.Compiling co-associating bioattributesUS8224835Aug 12, 2011Jul 17, 2012Expanse Networks, Inc.Expanding attribute profilesUS8255403Dec 30, 2008Aug 28, 2012Expanse Networks, Inc.Pangenetic web satisfaction prediction systemUS8326648Mar 1, 2011Dec 4, 2012Expanse Networks, Inc.System for secure mobile healthcare selectionUS8386519Dec 30, 2008Feb 26, 2013Expanse Networks, Inc.Pangenetic web item recommendation systemUS8452619May 31, 2012May 28, 2013Expanse Networks, Inc.Masked data record accessUS8458097Mar 1, 2011Jun 4, 2013Expanse Networks, Inc.System, method and software for healthcare selection based on pangenetic dataUS8458121Oct 13, 2011Jun 4, 2013Expanse Networks, Inc.Predisposition prediction using attribute combinationsUS8606761Mar 15, 2008Dec 10, 2013Expanse Bioinformatics, Inc.Lifestyle optimization and behavior modificationUS8655899Jun 29, 2012Feb 18, 2014Expanse Bioinformatics, Inc.Attribute method and systemUS8655908Oct 13, 2011Feb 18, 2014Expanse Bioinformatics, Inc.Predisposition modificationUS8655915Jan 16, 2013Feb 18, 2014Expanse Bioinformatics, Inc.Pangenetic web item recommendation systemUS8788283May 4, 2012Jul 22, 2014Expanse Bioinformatics, Inc.Modifiable attribute identificationUS8788286Jan 3, 2008Jul 22, 2014Expanse Bioinformatics, Inc.Side effects prediction using co-associating bioattributesUS9031870Jan 30, 2012May 12, 2015Expanse Bioinformatics, Inc.Pangenetic web user behavior prediction systemUS9170992Jan 9, 2012Oct 27, 2015Expanse Bioinformatics, Inc.Treatment determination and impact analysisUS9262472 *Apr 26, 2012Feb 16, 2016Hewlett Packard Enterprise Development LpConcatenation for relationsUS20030069797 *Aug 28, 1997Apr 10, 2003Clfford A. HarrisonSystem and method for computer-aided technician dispatch and communicationUS20040088307 *Feb 1, 2002May 6, 2004Axel Von BergenData structure for information systemsUS20040093329 *Feb 1, 2002May 13, 2004Axel Von BergenDatabase system and query optimiserUS20050094772 *Dec 16, 2004May 5, 2005Csg Systems, Inc.System and method for computer-aided technician dispatch and communicationUS20060027386 *Aug 2, 2005Feb 9, 2006Thomas & Betts International, Inc.Floor box with voltage dividerUS20060122971 *Dec 2, 2004Jun 8, 2006International Business Machines CorporationMethod and apparatus for generating a service data object based service pattern for an enterprise java beans modelUS20060122973 *Dec 2, 2004Jun 8, 2006International Business Machines CorporationMechanism for defining queries in terms of data objectsUS20060123017 *Dec 2, 2004Jun 8, 2006International Business Machines CorporationMethod and apparatus for annotation-based behavior extensionsUS20060123332 *Dec 2, 2004Jun 8, 2006International Business Machines CorporationMethod and apparatus for incrementally processing program annotationsUS20060167865 *Jan 24, 2005Jul 27, 2006Sybase, Inc.Database System with Methodology for Generating Bushy Nested Loop Join TreesUS20060173881 *Jan 31, 2005Aug 3, 2006International Business Machines CorporationGraphical database navigator with relation level controlUS20070074887 *Dec 4, 2006Apr 5, 2007Thomas & Betts International, Inc.Floor box with voltage dividerUS20080028095 *Jul 27, 2006Jan 31, 2008International Business Machines CorporationMaximization of sustained throughput of distributed continuous queriesUS20080114730 *Nov 14, 2006May 15, 2008Microsoft CorporationBatching document identifiers for result trimmingUS20080133447 *Dec 5, 2006Jun 5, 2008Eric Lawrence BarsnessMulti-partition query governor in a computer database systemUS20080228698 *May 9, 2007Sep 18, 2008Expanse Networks, Inc.Creation of Attribute Combination DatabasesUS20080228699 *May 9, 2007Sep 18, 2008Expanse Networks, Inc.Creation of Attribute Combination DatabasesUS20080228703 *Aug 8, 2007Sep 18, 2008Expanse Networks, Inc.Expanding Attribute ProfilesUS20080228705 *Jan 11, 2008Sep 18, 2008Expanse Networks, Inc.Predisposition Modification Using Co-associating BioattributesUS20080228723 *May 13, 2007Sep 18, 2008Expanse Networks, Inc.Predisposition Prediction Using Attribute CombinationsUS20080228727 *Aug 31, 2007Sep 18, 2008Expanse Networks, Inc.Predisposition ModificationUS20080228730 *Jan 3, 2008Sep 18, 2008Expanse Networks, Inc.Compiling Co-associating Bioattributes Using Expanded Bioattribute ProfilesUS20080228735 *Mar 15, 2008Sep 18, 2008Expanse Networks, Inc.Lifestyle Optimization and Behavior ModificationUS20080228751 *May 9, 2007Sep 18, 2008Expanse Networks, Inc.Attribute Combination DiscoveryUS20080228767 *Mar 12, 2008Sep 18, 2008Expanse Networks, Inc.Attribute Method and SystemUS20080228768 *Mar 12, 2008Sep 18, 2008Expanse Networks, Inc.Individual Identification by AttributeUS20080228797 *Aug 8, 2007Sep 18, 2008Expanse Networks, Inc.Creation of Attribute Combination Databases Using Expanded Attribute ProfilesUS20080228818 *Dec 15, 2007Sep 18, 2008Expanse Networks, Inc.Compiling Co-associating BioattributesUS20090043795 *Jan 3, 2008Feb 12, 2009Expanse Networks, Inc.Side Effects Prediction Using Co-associating BioattributesUS20100063830 *Sep 10, 2008Mar 11, 2010Expanse Networks, Inc.Masked Data Provider SelectionUS20100063843 *Sep 10, 2008Mar 11, 2010Expanse Networks, Inc.Masked Data Record AccessUS20100063930 *Sep 10, 2008Mar 11, 2010Expanse Networks, Inc.System for Secure Mobile Healthcare SelectionUS20100076950 *Sep 10, 2008Mar 25, 2010Expanse Networks, Inc.Masked Data Service SelectionUS20100169262 *Dec 30, 2008Jul 1, 2010Expanse Networks, Inc.Mobile Device for Pangenetic WebUS20100169313 *Dec 30, 2008Jul 1, 2010Expanse Networks, Inc.Pangenetic Web Item Feedback SystemUS20100169340 *Dec 30, 2008Jul 1, 2010Expanse Networks, Inc.Pangenetic Web Item Recommendation SystemUS20100169342 *Dec 30, 2008Jul 1, 2010Expanse Networks, Inc.Pangenetic Web Satisfaction Prediction SystemUS20100325108 *Aug 9, 2010Dec 23, 2010Expanse Networks, Inc.Compiling Co-associating BioattributesUS20110022585 *Sep 28, 2010Jan 27, 2011International Business Machines Corp.Multi-partition query governor in a computer database systemUS20110153355 *Mar 1, 2011Jun 23, 2011Expanse Networks, Inc.System for Secure Mobile Healthcare SelectionUS20110184656 *Apr 4, 2011Jul 28, 2011Expanse Networks, Inc.Efficiently Determining Condition Relevant Modifiable Lifestyle AttributesUS20110184944 *Apr 4, 2011Jul 28, 2011Expanse Networks, Inc.Longevity analysis and modifiable attribute identificationUS20130290352 *Apr 26, 2012Oct 31, 2013Qiming ChenConcatenation for relationsUSRE37965 *Jun 2, 2000Jan 7, 2003International Business Machines CorporationMethod for localizing execution or subqueries and determining collocation of execution of subqueries in a parallel databaseEP1350189A1 *Dec 3, 2001Oct 8, 2003Required Technologies, Inc.Value-instance-connectivity-computer-implemented databaseEP1350189A4 *Dec 3, 2001Apr 2, 2008Required Technologies IncValue-instance-connectivity-computer-implemented databaseEP1950671A1Dec 11, 2007Jul 30, 2008Sap AgManaging queries in a distributed database systemWO1997024685A1 *Dec 23, 1996Jul 10, 1997Tele-Communications, Inc.System and method for accessing distributed data* Cited by examinerClassifications U.S. Classification707/714, 707/E17.032, 707/966, 707/999.002, 707/752, 707/999.009International ClassificationG06F17/30, G06F12/00Cooperative ClassificationY10S707/99939, G06F17/30545, G06F17/30498, Y10S707/966, Y10S707/99932European ClassificationG06F17/30S4P8N, G06F17/30S4P4P3JLegal EventsDateCodeEventDescriptionMar 12, 1993ASAssignmentOwner name: RICOH COMPANY, LTD., JAPANFree format text: ASSIGNMENT OF ASSIGNORS INTEREST.;ASSIGNOR:LI, HONG;REEL/FRAME:006488/0061Effective date: 19930304Feb 22, 1999FPAYFee paymentYear of fee payment: 4Dec 20, 2002FPAYFee paymentYear of fee payment: 8Feb 2, 2007FPAYFee paymentYear of fee payment: 12RotateOriginal ImageGoogle Home - Sitemap - USPTO Bulk Downloads - Privacy Policy - Terms of Service - About Google Patents - Send FeedbackData provided by IFI CLAIMS Patent Services