Abstract:
A data storage control system includes an expression-format changing device for changing applied data to data having a prescribed expression format, a storage device for storing data readably, a storage controller for accessing the storage device and reading data that has been stored in the storage device or writing data, the expression format of which has been change by the expression-format changing device, to the storage device in accordance with an applied read/write command, and a command execution device, to which an applied command is entered, for applying a read/write command to the storage controller in accordance with the entered command.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS  
       [0001]     The present application is a Divisional of U.S. application Ser. No. 10/068,895, which was filed on Feb. 11, 2002. 
     
    
     BACKGROUND OF THE INVENTION  
       [0002]     1. Field of the Invention  
         [0003]     This invention relates to a database system, a data-storage control system, a database server and a method of controlling operation of the database server.  
         [0004]     2. Description of the Related Art  
         [0005]     A database system includes a command execution unit and a search unit for searching a database in which data has been stored. If a command is applied to the command execution unit, the command execution unit applies a search command to the search unit, which responds by searching the database. Data representing the search results is supplied from the search unit to the command execution unit so that the data is output.  
         [0006]     In a case where a database search is conducted using a search technique different from the search technique of the search unit connected to the command execution unit, another search unit must be used in place of the search unit connected to the command execution unit. However, the procedure through which commands and data are exchanged by the command execution unit and search unit is known only to the party that manufactured the command execution unit and search unit. This means that substituting another search unit for the search unit connected to the command execution unit is not conceivable. In order to conduct a database search using a search technique different from that of a search unit connected to a command execution unit, both the command execution unit and the search unit must be modified in accordance with the search technique.  
         [0007]     If data is image data or the like, image data having a variety of expression formats, such as image data representing an image of the original size or image data representing a thumbnail image, is stored in a database. If both original-image data and thumbnail-image data have been stored in a database, applying a search command makes it possible to find the corresponding original-image data or thumbnail-image data by a search.  
         [0008]     However, if image data having an expression format specified by a search command does not exist in a case where only one type of image data, namely the original-image data or thumbnail-image data, has been stored in the database, this image data cannot be found even though the image data having the other expression format is present. For example, when a search command for image data that is thumbnail-image data has been applied, a hit regarding original-image data will not be obtained even though original-image data corresponding to this thumbnail-image data exists. This means that the search command must be applied again upon changing the expression format. In other words, a search command for original-image data must be applied again.  
         [0009]     Furthermore, if the result of a search is failure to obtain a hit in a particular database, the same search command must be applied to other databases.  
       DISCLOSURE OF THE INVENTION  
       [0010]     Accordingly, an object of the present invention is to so arrange it that a search unit can be exchanged by disconnecting it from a command execution unit.  
         [0011]     Another object of the present invention is to make it unnecessary to re-apply a search command upon changing the expression format thereof.  
         [0012]     A database system according to a first aspect of the present invention comprises a database in which data has been stored in accessible form; a search device (search means) for accessing the database in accordance with an applied search command and searching data that has been stored in the database; a command execution device (command execution means), to which a command is entered, for applying a search command to the search device in accordance with this entered command; and a first interface for separably connecting the search device and the command execution device.  
         [0013]     In accordance with the first aspect of the present invention, a first interface is provided. Since the first interface connects the search device and the command execution device in such a manner that the two can be separated from each other, the search device connected to the command execution device can be disconnected and a different search device can be connected to the command execution device. This means that a search device employing a desired search technique can be connected to the command execution device.  
         [0014]     Preferably, the database further comprises a storage device for storing data readably; a storage controller for accessing the storage device and reading data that has been stored in the storage device or writing data to the storage device in accordance with an applied read/write command; and a second interface for separably connecting the storage controller and the command execution device. In this case, the command execution device would apply the read/write command to the storage controller in accordance with the entered command (or in accordance with the results of the search conducted by the search device).  
         [0015]     A second interface is provided. Since the second interface connects the storage controller and the command execution device in such a manner that the two can be separated from each other, the storage controller connected to the command execution unit can be disconnected and a different storage controller can be connected to the command execution device. This means that a desired storage controller can be connected to the command execution device.  
         [0016]     A data storage control system according to a second aspect of the present invention comprises an expression-format changing device (expression-format changing means) for changing applied data to data having a prescribed expression format; a storage device for storing data in readably; a storage controller for accessing the storage device and reading data that has been stored in the storage device or writing data, the expression format of which has been changed by the expression-format changing device, to the storage device in accordance with an applied read/write command; and a command execution device, to which an applied command is entered, for applying a read/write command to the storage controller in accordance with the entered command.  
         [0017]     In accordance with the second aspect of the present invention, applied data is changed to data of a prescribed expression format by the expression-format changing device. Data whose expression format has been changed is written to the storage device by the storage controller. As a result, data having a prescribed expression format is written to the storage device. If a command for applying a search command having the prescribed expression format written to the storage device is applied, then data that has been stored in the database can be found.  
         [0018]     Data generating means (a data generating device) may be provided. If a command is applied for the purpose of extracting data having a specific expression format from data that has been stored in the storage device, this data (e.g., thumbnail-image data) having the specific expression format does not exist but data that is substantially the same (e.g., original-image data) except for the expression format does exist, the data generating device generates data having the specific expression format from the data that is substantially the same.  
         [0019]     An interface for separably connecting the expression-format changing device, the storage control device and the command execution device may be provided.  
         [0020]     A database server according to a third aspect of the present invention comprises a first receiving device for receiving a search command transmitted via a network; a search device for searching the database based upon the search command received by the first receiving device; a transmitting device for transmitting the search command, which has been received by the first receiving device, to another database server; a second receiving device for receiving data, which represents search results, transmitted from the other database server in accordance with transmission of the search command to the other database server by the transmitting device; and an output device for outputting, in mutually correlated form, data representing search results obtained by the search by the search device and data representing search results received by the second receiving device.  
         [0021]     The third aspect of the present invention provides also an operation control method applied to the above-described database server. Specifically, the third aspect of the invention provides a method of controlling operation of a database server, comprising the steps of receiving a search command transmitted via a network; searching a database based upon the received search command; transmitting the received search command to another database server; receiving data, which represents search results, transmitted from the other database server in accordance with transmission of the search command to the other database server; and outputting, in mutually correlated form, data representing search results obtained by the search and data representing received search results.  
         [0022]     In accordance with the third aspect of the present invention, a search command transmitted via a network is received and a database is searched based upon the received search command. The received search command is transmitted to other database servers as well.  
         [0023]     Another database server that has received the search command conducts a database search to find the relevant data. The data that is found is sent from the server of the other database to the database server that transmitted the search command.  
         [0024]     Data transmitted from the server of the other database and found as a result of the search by this other database server is received by the database server that received the search command. The data found by the server of the other database is correlated with the data found by the search conducted by the database that received the search command via the network. The correlated data is output.  
         [0025]     Thus, merely by receiving a single search command, a search can be conducted not only by a single database server that received the search command but also by other database servers.  
         [0026]     Other features and advantages of the present invention will be apparent from the following description taken in conjunction with the accompanying drawings, in which like reference characters designate the same or similar parts throughout the figures thereof. drawings, in which like reference characters designate the same or similar parts throughout the figures thereof. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0027]      FIG. 1  illustrates the relationship between a client computer and database servers;  
         [0028]      FIG. 2  is a block diagram illustrating the electrical construction of a database server;  
         [0029]      FIGS. 3   a  and  3   b  illustrate an example of an attribute table;  
         [0030]      FIG. 4  illustrates a table of expression formats;  
         [0031]      FIG. 5  illustrates the relationship between images of stored expression formats and image identification numbers;  
         [0032]      FIG. 6  is a flowchart illustrating processing for conducting a search of image data;  
         [0033]      FIG. 7  is a flowchart illustrating processing for command execution; and  
         [0034]      FIG. 8  is a flowchart illustrating processing for data acquisition. 
     
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT  
       [0035]     A preferred embodiment of the present invention will now be described with reference to the drawings.  
         [0036]      FIG. 1 , which illustrates a preferred embodiment of the invention, shows the relationship between a client computer  1  and a plurality of database servers  2 ,  3  and  10  connected to a network.  
         [0037]     The client computer  1  and database servers  2 ,  3  and  10  are capable of communicating with one another via the network, and image data has been stored in each of the database servers  2 ,  3  and  10 . been designated.) The entered search command is transmitted from the client computer  1  to the designated first database server  10 . The latter receives the search command and its image data is searched in accordance with the received search command.  
         [0038]     The search command entered from the client computer  1  is transferred further to the second database server  2  and third database server  3  besides the first database server  10  designated by the client computer  1 . Search processing is executed by the second database server  2  and third database server  3  and image data found by the search is transmitted from the second database server  2  and third database server  3  to the first database server  10 .  
         [0039]     Data retrieved by the search of database servers  2 ,  3  and  10  is transmitted from the first database server  10  to the client computer  1 .  
         [0040]     The foregoing will become clearer from the description that follows.  
         [0041]      FIG. 2  is a block diagram illustrating the electrical construction of the first database server  10 . The second database server  2  and third database server  3  are constructed in a manner similar to that of the first database server  10 .  
         [0042]     The first database server  10  includes a large-capacity hard disk  19  in which image data representing images of a large number of frames has been stored. Image data is read from and written to the hard disk  19  by a data storage unit  18 .  
         [0043]     The first database server  10  includes a relational database management system (RDBMS)  16  in which attribute information regarding the image data that has been written to the hard disk  19  has been stored in table form. The attribute information in the RDBMS  16  is searched by a search unit  15 .  
         [0044]      FIGS. 3   a  and  3   b  illustrate an attribute table that has been stored in the RDBMS  16 .  FIG. 3   b  illustrates the attribute table of  FIG. 3   a  in greater detail.  
         [0045]     As shown in  FIG. 3   a , attribute information contained in the attribute table includes the identification number (No.) of an image represented by image data that has been stored in the large-capacity hard disk  19 , the telephone number (Tel) of the owner (the copyright owner) of the image, the age (Age) of the owner of the image, and the name (Name) of the owner of the image, etc.  
         [0046]     As shown in  FIG. 3   b , these items of attribute information have been stored in further detail in correspondence with identification numbers. By specifying an identification number, one can ascertain the image data corresponding to this identification number and detailed attribute information concerning the image represented by this image data.  
         [0047]     The search command transmitted from the client computer  1  as mentioned above is received by a command receiving unit  11  via the network. The received search command is input to a command resending unit  12 .  
         [0048]     The search command is transmitted to the second and third database servers  2 ,  3  in addition to the first database server  10  by the command resending unit  12 . Image-data search processing is executed by the second and third database servers  2 ,  3  in a manner similar to that of the first database server  10 . Image data retrieved by the search processing is sent back to the first database server  10  from the second and third database servers  2 ,  3 .  
         [0049]     The search command received by command receiving unit  11  is input also to a command execution unit  13  via the command resending unit  12 . The command execution unit  13  applies the search command of the RDBMS  16  to the search unit  15 . The search command from the command execution unit  13  is input to the search unit  15 , whereby processing is executed to search the RDBMS  16 . Provided between the command execution unit  13  and search unit  15  is a search interface  14  for connecting the command execution unit  13  and search unit  15  in such a manner that the two can be separated from each other.  
         [0050]     The search unit  15  that has been connected to the command execution unit  13  can be replaced by another search unit by virtue of the search interface  14 . The RDBMS  16  can be searched by utilizing a search unit that employs a search technique different from that of the search unit that has been connected to the command execution unit  13 . It is assumed that the command execution unit  13  and search unit  15  have been manufactured by the same maker and that the user knows the procedure for reading data (transmitting data) between the command execution unit  13  and search unit  15 . Even if the search unit  15  that has been connected to the command execution unit  13  is replaced by a new search unit, therefore, the user will know the procedure by which reading between the new search unit and command execution unit  13  is performed. A search unit suited to the command execution unit  13  can be connected.  
         [0051]     Similarly, a storage interface  17  is provided between the command execution unit  13  and data storage unit  18 . By thus providing the storage interface  17 , the data storage unit  18  that has been connected to the command execution unit  13  can be replaced by another data storage unit.  
         [0052]     An expression-format converter  20  is further connected to the storage interface  17 . The expression-format converter  20  converts the size (resolution) of an image represented by image data (i.e., implements an expression-format conversion). Though the same subject is represented by the conversion of expression format, image data representing a plurality of images of different sizes conversion). Though the same subject is represented by the conversion of expression format, image data representing a plurality of images of different sizes is generated. Image data representing a plurality of images generated by the expression-format converter  20  is written to the large-capacity hard disk  19  by the data storage unit  18 .  
         [0053]      FIG. 4  illustrates expression formats, which are converted by the expression-format converter  20 , and the content of each format.  
         [0054]     Examples of expression formats are Original (which indicates original-image data); Card [an image of 300×300 pixels for a personal computer, this being JPEG (Joint Photographic Experts Group) data]; Thumbnail (an image of 80×80 pixels for a personal computer, this being JPEG data); cellular phone A (cell phones A- 1  to A- 6 ) [GIF (Graphics Interchange Format) image data for cell phones]; cellular phone B (cell phones B- 1  to B- 4 ) [PNG (Portable Network Graphics) image data for cell phones]; and Print (image data for print preview, this being JPEG data of 80×60 pixels).  
         [0055]     The table regarding such expression formats has been stored beforehand in the expression-format converter  20 . When image data is written to the large-capacity hard disk  19 , the original-image data is converted to the expression formats of the expression-format table that has been stored in the expression-format converter  20 . The image data obtained by the conversion is written to the hard disk  19 .  
         [0056]     When image data having an expression format not present in the expression-format table that has been stored in the expression-format converter  20 , the new expression format is stored in the expression-format table. If the image data is applied after the new expression format is stored, this image data is capacity hard disk  19 . Accordingly, image data that has been written to the hard disk  19  is not necessarily image data corresponding to all expression formats. Thus the types of expression formats stored differ for every image.  
         [0057]     For example, if an image is one whose image identification number is No.  1 , as shown in  FIG. 5 , then image data having the expression formats Original, Card, Thumbnail, Cell Phone A- 1 , Cell Phone A- 2  and Print (this image data represents substantially the same image of a subject and differs only in terms of image size) will have been stored on the large-capacity hard disk  19 . If an image is one whose image identification number is No.  2 , then image data having the expression formats Original, Card, Cell Phone A- 1 , Cell Phone B- 1 , Cell Phone B- 2  and Print will have been stored on the large-capacity hard disk  19 . If an image is one whose image identification number is No.  3 , then image data having the expression formats Original, Thumbnail, Cell Phone B- 1 , Cell Phone B- 2  and Print will have been stored on the large-capacity hard disk  19 . It goes without saying that at least image data having the Original expression format will have been stored on the hard disk  19 .  
         [0058]      FIG. 6  is a flowchart illustrating processing for searching image data.  
         [0059]     If a search command transmitted from the client computer  1  is received by the command receiving unit  11  of the first database server  10  (step  31 ), as described above, then it is determined whether the received search command can be transferred to the other servers  2  and  3  (step  32 ). A search command is accompanied by data for the purpose of determining whether the search command can be transferred, and the determination as to whether the search command can be transferred is made based upon the attached data.  
         [0060]     If it is determined that transfer is possible (“YES” at step  32 ), then the search command is transferred to the servers  2  and  3  by the command resending unit  12  (step  33 ). If it is determined that transfer is not possible (“NO” at step  32 ), then the processing of step  33  is skipped.  
         [0061]     Processing for searching image data is executed based upon the received search command (step  34 ). Image data is read out of the hard disk  19  by the search. The details of search processing will be described below. Processing for searching the image data is executed by the second database server  2  and third database server  3  as well and the results of this search are received by the command resending unit  12  of the first database server  10  (“YES” at step  35 ).  
         [0062]     The results of the search by the first database server  10  and the results of the searches by the second database server  2  and third database server  3  are combined by the command execution unit  13  (step  36 ). More specifically, the items of retrieved image data are correlated in such a manner that the images represented by the image data obtained by the search results will be displayed in one window. The combined search results are transmitted from a result output unit  21  to the client computer  1  via the network. The images retrieved by the search are displayed on the display screen of the display unit of client computer  1 .  
         [0063]     The image data retrieved by the searches at the database servers  2  and  3  also are applied to the command execution unit  13 . These results are combined in the command execution unit  13 , as mentioned above, and thumbnail images corresponding to the search command are displayed. Thus, by designating a single expression format, image data having this expression format is obtained with regard to all images that have been stored on the hard disk  19 . Since the search command is transferred to the other database servers  2  and  3  as well, many search results are obtained merely by applying a search command a single time.  
         [0064]      FIG. 7  is a flowchart illustrating processing for command execution (this processing corresponds to that of step  34  in  FIG. 6 ).  
         [0065]     The content of a received search command is interpreted by the command execution unit  13  (step  41 ). When the content of the search command is interpreted, the search unit  15  is detected (step  42 ), whereupon the search unit  15  searches the RDBMS  16  based upon the search command (step  43 ). By searching the RDBMS  16 , an image identification number corresponding to image data to be found is extracted.  
         [0066]     Next, the data storage unit  18  is detected by the command execution unit  13  (step  44 ). Data representing the extracted image identification number is applied to the data storage unit  18  via the search interface  14 , command execution unit  13  and storage interface  17 . Image data corresponding to the extracted image identification number is read from the large-scale hard disk  19  by the data storage unit  18  (step  45 ). Processing for reading (acquiring) image data will be described later in greater detail. The image data read from the hard disk  19  is subjected to predetermined processing so as to be displayable (i.e., results are generated) (step  46 ).  
         [0067]      FIG. 8  is a flowchart of processing for acquiring data (this processing corresponds to that of step  45  in  FIG. 7 ).  
         [0068]     In which area of the hard disk  19  the image data corresponding to the extracted image identification number has been stored is detected from this image identification number (i.e., the location of the data is determined) (step  51 ). The expression formats of the image data that has been stored in the detected area are checked.  
         [0069]     If data having an expression format designated by the search command is already present in the hard disk  19  (“YES” at step  52 ), then the image data having the corresponding expression format is read from the hard disk  19  (step  54 ).  
         [0070]     If data having the designated expression format has not been written to the hard disk  19  (“NO” at step  52 ), then the original-image data specified by the image identification number extracted from the RDBMS  16  is read from the hard disk  19 . This read original-image data is then applied to the expression-format converter  20 , where it is converted to image data having the designated expression format (step  53 ). A mark indicating that the data has been obtained as the result of a search is attached to the read image data (i.e., data is determined) (step  55 ).  
         [0071]     For example, if the client computer  1  applies the following as a search command: “SELECT IMAGE AS THUMBNAIL FROM TABLE WHERE AGE=35” (which means that images of a record in which age agrees with 35 are to be acquired in the thumbnail expression format), then the attribute table that has been stored in the RDBMS  16  is searched and identification numbers for which age agrees with 35 are found. Data representing the identification number of a found image is applied to the data storage unit  18 . From among items of image data corresponding to the identification number of the found image, image data having the thumbnail expression format is read by the data storage unit  18 . With regard to image data that has not been stored on the hard disk  19  and has the thumbnail expression format, the original-image data is applied to the expression-format converter  20 , which proceeds to generate image data having the thumbnail expression format. The read image data having the thumbnail expression format and the generated image data having the thumbnail expression format is applied to the command execution unit  13 .  
         [0072]     Though the foregoing embodiment is described as being implemented by hardware, it goes without saying that partial implementation by software is possible.  
         [0073]     As many apparently widely different embodiments of the present invention can be made without departing from the spirit and scope thereof, it is to be understood that the invention is not limited to the specific embodiments thereof except as defined in the appended claims.