Patent Abstract:
A system and method enable the selection of database records for editing and writing. A database record is queried for the size of the data fields contained therein. The size of the data field is compared to the field width limitation of a storage database. When it is determined that the data field displays a size greater than the size of the field width limitation of the storage database, a computing device extends the size of the limitation to accommodate the new database record data field. When the size of the limitation is expanded, the new database record is written to the storage database. The system and method may optionally include the input of a user at the final steps, wherein the user may optionally approve or disapprove the extension of the size of the field width limitation.

Full Description:
FIELD OF THE INVENTION 
       [0001]    The present invention relates to the relatedness of two or more databases that are within an electronic communications network. The present invention more particularly relates to the alteration of a destination database metadata to match those of a source database. 
       BACKGROUND OF THE INVENTION 
       [0002]    The subject matter discussed in the background section should not be assumed to be prior art merely as a result of its mention in the background section. Similarly, a problem mentioned in the background section or associated with the subject matter of the background section should not be assumed to have been previously recognized in the prior art. The subject matter in the background section merely represents different approaches, which in and of themselves may also be inventions. 
         [0003]    The prior art enables transfer of data between source and destination databases, but fails to efficiently solve the problem of mismatches between software records stored on source and destination databases, and between the metadata associated with the software records. The previously existing methods of data transfer do not efficiently automate the process by which software metadata is altered when discrepancies are discovered between the source and destination databases; the process by which metadata is edited is currently largely manual and thus time-consuming. There is therefore a long-felt need to provide a method and system that provide increased efficiencies in software metadata editing and coordination. 
       SUMMARY AND OBJECTS OF THE INVENTION 
       [0004]    Towards these objects and other objects that will be made obvious in light of the present disclosure, a system and method are provided that enable receiving a software record having data associated with specific data fields, wherein the actual magnitude of at least some of the received datum exceed in size a previously established memory size limitation of a receiving database as specified by a metadata of the relevant receiving database. Further provided in the method of the present invention (hereinafter the “invented method”) is a process by which a new data width size limitation of a target computing device, wherein the size of the data field of the received software record may be the template by which the new size limitation is generated. 
         [0005]    According to an additional aspect of the invented method, the first computing device may additionally render the size error to a user, and may subsequently receive input from the user regarding alteration of the data field limitation. 
         [0006]    According to alternate embodiments of the invented method, an invented computational device is provided. The invented computational device (hereinafter, “invented device”) includes: a memory coupled with a processor, wherein the memory and processor are enabled to run database management software; the capacity for database generation; the capacity for receiving and interpreting software record metadata; the capacity to determine whether and how to alter the metadata of a software record; the capacity to write software records to on or more databases; the capacity to render information to a user; and the capacity to receive instructions from a user. 
         [0007]    This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. 
     
    
     
       BRIEF DESCRIPTION OF THE FIGURES 
         [0008]    These, and further features of the invention, may be better understood with reference to the accompanying specification and drawings depicting the preferred embodiment, in which: 
           [0009]      FIG. 1  is a flowchart of an overview of the invented method, whereby the metadata of designated records are modified within a target database; 
           [0010]      FIG. 2  is a flowchart of a preferred embodiment of process step  1 . 18  of the process of  FIG. 1 , wherein the a selected target metadata width value is set to be equal to an observed value of a data assigned to a data field of a target record; 
           [0011]      FIG. 3  is a flowchart of an alternate preferred embodiment of process step  1 . 18  of the process of  FIG. 1 , wherein the a selected target metadata width value is incrementally increased to be made equal to or greater than an observed value of a data assigned to a data field of a target record; 
           [0012]      FIG. 4  is a flowchart of an additional alternate preferred embodiment of process step  1 . 18  of the process of  FIG. 1 , wherein the a selected target metadata width value is increased to a width value selected from a set of preset values as accessible to the target client; 
           [0013]      FIG. 5  is a flowchart of an additional aspect of the invented method whereby a source server facilitates the invented method; 
           [0014]      FIG. 6  is a diagram of an electronic communications network, comprising a target client, a target database, a source database, and a source server, the target client and the source server bidirectionally communicatively coupled by means of one or more of a channel, the Internet, a communications network, a LAN and/or a WAN; 
           [0015]      FIG. 7  is a block diagram of the target client of  FIG. 1 ; 
           [0016]      FIG. 8  is a block diagram of the source server of  FIG. 1 ; 
           [0017]      FIG. 9  is a block diagram of an exemplary target metadata of a target database of  FIG. 1 ; 
           [0018]      FIG. 10  is a block diagram of an exemplary source metadata of a source database of  FIG. 1 ; and 
           [0019]      FIG. 11  is a block diagram of an exemplary target record of a target database of  FIG. 1 . 
       
    
    
     DETAILED DESCRIPTION 
       [0020]    Referring now generally to the Figures, and particularly to  FIG. 1  and  FIG. 6 ,  FIG. 1  is a flowchart of an aspect of the invented method that may be performed by means of a bi-directional electronic communications network  100  wherein a target computer system  102  (hereinafter, “target client”  102 ) receives and modifies target metadata column width values TWV. 01 -TWV.N 1  of a target database metadata  104  (hereinafter, “target metadata”  104 ) of a target database  106 . In step  1 . 02  the target client  102  determines whether one or more source records  108 .A- 108 .N or a file comprising source records  108 .A- 108 .N, and optionally with a corresponding source metadata  110  has been received from a source server  109 . When the target client  102  determines in step  1 . 02  that no source record  108 .A- 108 .N or file of source records  108 .A- 108 .N has been received, the target client  102  executes alternate operations in step  1 . 04 . 
         [0021]    Alternatively, when the determination in step  1 . 02  is that one or more source records  108 .A- 108 .N or a file of source records  108 .A- 108 .N and optionally with a corresponding source metadata  110  has been received, the target client  102  reads a first selected, or a next sequentially ordered, source record  108 .A- 108 .N in step  1 . 06 . In step  1 . 08  the target client  102  determines whether an end of file marker EFM has been read in step  1 . 06  to indicate that a final source record  108 .A- 108 .N of a file has been received and read in step  1 . 06 . When the determination in step  1 . 08  is that an end of file marker EFM as received in step  1 . 02  has been read in step  1 . 06 , the target client  102  executes alternate operations in step  1 . 04 . 
         [0022]    Alternatively, when the determination in step  1 . 08  is that no end of file marker EFM has not been read in step  1 . 06 , the target client  102  advances to step  1 . 10 , wherein the target client  102  accepts a first or next sequentially ordered source record  108 .A- 108 .N and writes the contents of the selected source record  108 .A- 108 .N into a target record  112 .A- 112 .N of the selected target database  106  contained within a target memory  102 A of the target client  102 . In step  1 . 12 , the target client  102  determines whether a size exception is found between the target metadata  104  of the target database  106  and the content of the source record  108 .A- 108 .N as read into the target record  112 .A- 112 .N in step  1 . 10 . When no size exception is determined in step  1 . 12 , the target client  102  returns to step  1 . 06  and to read another received and sequentially source record  108 .A 108 .N. 
         [0023]    It is understood that the Nth value of the target records  112 .A- 112 .N and source records  108 .A- 108 .N element numbers is unrelated to the N 1  value of the target metadata column width values TWV. 01 -TWV.N 1 . 
         [0024]    Alternatively, when a size exception determination is found by the target client  102  in step  1 . 12 , the target client  102  proceeds to step  1 . 14 , wherein the target client  102  sets a first counter C 1  to an initialization value, such as a null or a zero value and sets a column count maximum value C 1 max, wherein the column count maximum value C 1 max indicates the number of columns values TWV. 01 -TWV.N 1  indicated in the target metadata  104 . In step  1 . 16  the target client  102  determines whether an actual data length size DLS.C 1 , or data width, of a first selected data field or next sequentially ordered data field DF.C 1  of the target record  112 .A- 112 .N is greater than a corresponding allocated target column width value TWV.C 1 , or allocation, of the target metadata  104  of the target database  106  allows. It is understood in the flowchart process steps of the Figures that (a.) the textual indicator of DATA WIDTH indicates an observed data size DLS.C 1  of a currently examined data field DF.C 1 ; and (b.) the textual indicator of allocation indicates a numerical value of a target metadata column width value TWV.c 1   
         [0025]    When the determination in step  1 . 16  is that the actual data length size DLS.C 1  of the instant selected data field DF.C 1  of the target record  112 .A- 112 .N excepted in step  1 . 12  is not greater than a target metadata column width value TWV.C 1  corresponding to the data length size DLS.C 1  of the currently selected data of the instant data field DF. 01 -DF.N of the target metadata  104  allows, the target client  102  proceeds onto step  1 . 20  and determines whether there are additional unexamined columns data field columns of the currently examined target record  112 .A- 112 .N. 
         [0026]    It is understood that the nominal value is used herein to denote a final element of a set of values within each series of values presented herein. It is further understood that the column count maximum value C 1 max preferably equals or is equivalent to a N 1  target database column count value N 1  of the target metadata column width values TWV. 01 -TWV.N 1 . It is also understood that the target database column count value N 1  value of the plurality of target records  112 .A- 112 .N is unrelated to the nominal length parameter value indicator N 2  of the actual data length sizes DLS. 01 -DLS.N 2 . 
         [0027]    It is understood that the N 2 th value actual data length sizes DLS. 01 -DLS.N 2  is unrelated to the Nth value of the target records  112 .A- 112 .N and source records  108 .A- 108 .N element numbers. 
         [0028]    In the alternative, when the determination in step  1 . 16  is that than the currently examined data field length size DLS.C 1  is greater than a corresponding target metadata column width value TWV.C 1  of the target metadata  104 , the target client  102  increases the size of the corresponding target metadata column width value TWV.C 1  in step  1 . 18 . In step  1 . 18 , the size of the metadata column value TWV.C 1  is altered by increasing the size of the metadata column value TWV.C 1  to be equal to or optionally greater than the data field length size DLS.C 1  of the currently examined data field DF.C 1 . 
         [0029]    Alternately or additionally, the size of the currently selected metadata column value TWV.C 1  may optionally be altered by increasing the size of the metadata column by an arbitrary, previously determined range R. 1 -R.N to the next highest prerecorded range R. 1 -R.N. 
         [0030]    In step  1 . 20  the target client  102  determines whether the first counter value C 1  is greater than or equal to a maximum first counter value C 1 max, wherein the maximum first counter value C 1 max corresponds to a final N 1 th value of the plurality of target width values TWV. 01 -TWV.N 1  of the target metadata  104 . 
         [0031]    When the determination in step  1 . 20  is negative, the first counter C 1  is incremented to equal the previous value of the first counter C 1  plus one in step  1 . 22 . Upon execution of step  1 . 22 , the target client  102  proceeds to step  1 . 16 . In the alternative, when the determination in step  1 . 20  is that the counter C 1  is equal or greater than the column count maximum value Cmax, the target client  102  proceeds to step  1 . 16 , and reads a subsequent and sequentially ordered source record  108 .A- 108 .N. 
         [0032]    Referring now generally to the Figures, and particularly to  FIG. 1  and  FIG. 2 ,  FIG. 2  presents is a preferred embodiment of step  1 . 18  whereby in step  200  the target metadata column width value TWV.C 1 , or ALLOCATION, selected in the most recent instantiation of step  1 . 16  is set equal to the actual data the data field length size DLS.C 1 , or DATA WIDTH, of the examined data field DF.C 1  as selected in the most recent instantiation of step  1 . 16 . 
         [0033]    Referring now generally to the Figures, and particularly to  FIG. 1  and  FIG. 3 ,  FIG. 3  presents is an alternate preferred embodiment of step  1 . 18  wherein the selected target metadata column width value TWV.C 1  selected in the most recent instantiation of step  1 . 16  is incremented by a whole number value M in step  3 . 00 . Step  3 . 00  is reinstantiated until the target metadata column width value TWV.C 1  selected in the most recent instantiation of step  1 . 16  is increased to be equal to or greater than the value of to the actual data the data field length size DLS.C 1  as selected in the most recent instantiation of step  1 . 16 . 
         [0034]    Referring now generally to the Figures, and particularly to  FIG. 1  and  FIG. 4 ,  FIG. 4  presents is an additional alternate preferred embodiment of step  1 . 18  wherein the current allocated data width value, i.e. the target metadata column width value TWV.C 1 , selected in the most recent instantiation of step  1 . 16 , is increased to a range R.X selected from a preset group of range values R. 01 -R.MAX. It is understood that the range values R. 01 -R.MAX are ordered to increase in value as they are sequentially examined and selected range R.X is chosen as revised value in step  4 . 00  of the currently selected target metadata column width value TWV.C 1 . In the execution of step  4 . 00  the currently selected target metadata column width value TWV.C 1  is made equal to a selected range value R.X, wherein the selected range R.X is the smallest range R. 01 -R.MAX that is larger than the current data length value of the currently examined data length DLS.C 1 . 
         [0035]    Referring now generally to the Figures, and particularly to  FIG. 5 ,  FIG. 5  is a flowchart of an aspect of the invented method whereby the source server  109  receives a request for source metadata  110  and/or source records  108 .A- 108 .N, and transmits source metadata  110  and/or source records  108 .A- 108 .N to the target client  102 . In step  5 . 02  the source server  109  determines whether a request has been received for source metadata  110 . When the determination in step  5 . 02  is negative, the source server  109  executes alternate operations. Alternatively, when the determination in step  5 . 02  is positive, the source server  109  transmits the source metadata  110  from the source server  109  to the target client  102 . In step  5 . 08  the source server  109  determines whether a request has been received from the target client  102  for the source records  108 .A- 108 .N. When the determination in step  5 . 08  is negative, the source server  109  executes alternate operations. In the alternative, when the determination in step  5 . 08  is positive, the source server  109  transmits the source records  108 .A- 108 .N to the target client  102  in step  5 . 10 . The source server subsequently executes alternate operations in step  5 . 12 . 
         [0036]    Referring now generally to the Figures, and particularly to  FIG. 6 ,  FIG. 6  is a diagram of an electronic communications network, comprising the target client  102 , the source server  109 , the target database  106  and a source database  600 , wherein the target client  102  and the source server  109  are bidirectionally coupled by means of a bi-directional communications channel  602 , wherein the bi-directional communications channel  602  may be or comprise the Internet  604 , a communications network  606 , a local access network (“LAN”)  608  and/or a wide area network (“WAN”)  610 . The target database  106  and the source database  600 , are each preferably comprised within a separate database management system (“DBMS”) software, respectively a target DBMS  612  and a source DBMS  614 . The target DBMS  612  is accessible to, and may be wholly or partially comprised within, the target client  102 . The source DBMS  614  is accessible to, and may be wholly or partially comprised within, the source server  109 . 
         [0037]    The target DBMS  612  and/or the source DBMS  614  may be or comprise an object oriented database management system (“OODBMS”) and/or a relational database management system (“RDBMS”). More particularly, the target DBMS  612  and/or the source DBMS  614  may be or comprise one or more prior art database management systems including, but not limited to, an ORACLE DATABASE™ database management system marketed by Oracle Corporation, of Redwood City, Calif.; an MQSERIES™ database management system marketed by SyBase, Inc. of Dublin, Calif.; a Database 2™, also known as DB2™, relational database management system as marketed by IBM Corporation of Armonk, N.Y.; a Microsoft SQL Server™ relational database management system as marketed by Microsoft Corporation of Redmond, Wash.; MySQL™ as marketed by Oracle Corporation of Redwood City, Calif.; and a MONGODB™ as marketed by MongoDB, Inc. of New York City, USA; and the POSTGRESQL™ open source object-relational database management system. 
         [0038]    It is understood that the target client  102 , the source server  109 , the target DBMS  612 , and/or the source DBMS  614  may comprise a software program hosted and/or enabled by a computational system, or may be or comprise a bundled computer software and hardware product such as, (a.) a network-communications enabled THINKSTATION WORKSTATION™ notebook computer marketed by Lenovo, Inc. of Morrisville, N.C.; (b.) a NIVEUS 5200 computer workstation marketed by Penguin Computing of Fremont, Calif. and running a LINUX™ operating system or a UNIX™ operating system; (c.) a network-communications enabled personal computer configured for running WINDOWS XP™, VISTA™ or WINDOWS 7™ operating system marketed by Microsoft Corporation of Redmond, Wash.; (d.) a MACBOOK PRO™ personal computer as marketed by Apple, Inc. of Cupertino, Calif.; or (e.) other suitable computational system or electronic communications device known in the art capable of providing or enabling a web service known in the art. 
         [0039]    Referring now generally the Figures, and particularly to  FIG. 7 ,  FIG. 7  is a block diagram of the target client  102  of the electronic bi-directional communication network  100  of  FIG. 6 , wherein the target client  102  comprises the target memory  102 A, a target central processing unit (“CPU”)  102 B; a target user input module  102 C; a target display module  102 D; and a target software bus  102 E that bidirectionally communicatively couples the target CPU  102 B with the target user input module  102 C, the target display module  102 D. The target software bus  102 E is further bidirectionally coupled with a target database network interface  102 F, enabling communication with alternate computing devices by means of the electronic communications network  100  and the target CPU  102 B. The target software bus  102 E facilitates communications between the above-mentioned components of the target client  102 . The target memory  102 A of the target client  102  includes a client software operating system OPSYS  102 G. The software OPSYS  102 G of the target client  102  may be selected from freely available, open source and/or commercially available operating system software, to include but not limited to a LINUX™ or UNIX™ or derivative operating system, such as the DEBIAN™ operating system software as provided by Software in the Public Interest, Inc. of Indianapolis, Ind.; a WINDOWS VISTA™ or WINDOWS 7™ operating system as marketed by Microsoft Corporation of Redmond, Wash.; or the MAC OS X operating system or iPhone G4 OS™ as marketed by Apple, Inc. of Cupertino, Calif. 
         [0040]    The target memory  102 A further includes a target software  700 , which target software  700  empowers the target client  102  to perform the invented method as presented in the steps of  FIG. 1 , and  FIG. 2 . Further contained within the target client  102  is target metadata  104  and the target database  106 , which target database  106  contains a plurality of target records  112 .A- 112 .N which may be transmitted from the target client  102  to the source server  109 . It is understood that the target metadata  104  includes the target column width values TWV. 01 -TWV.N 1  for certain or all columns of target records  112 .A- 112 .N. It is understood that the target metadata  104  may be distributed among the target records  112 .A- 112 .N and includes individual target column width size values TWV. 01 -TWV.N 1  for some or all of the columns of each target record  112 .A- 112 .N. 
         [0041]    Referring now generally the Figures, and particularly to  FIG. 8 ,  FIG. 8  is a block diagram of the source server  109  of the network  100  of  FIG. 6 , wherein the source server  109  comprises a source central processing unit (“CPU”)  109 A; a source user input module  109 B; a source display module  109 C; and a source software bus  109 D that bidirectionally communicatively couples a the source CPU  109 A, the source user input module  109 B, the source display module  109 C and a source memory  109 E. The source software bus  109 D further bidirectionally couples the a source database network interface  109 F with the source CPU  109 A and enabling communication with alternate computing devices by means of the electronic communications network  100  and the source memory  109 E. The source software bus  109 D facilitates communications between the above-mentioned components of the source server  109 . The source memory  109 E of the source server  109  includes a server software operating system OPSYS  104 G. The software OPSYS  104 G of the source server  109  may be selected from freely available, open source and/or commercially available operating system software, to include but not limited to a LINUX™ or UNIX™ or derivative operating system, such as the DEBIAN™ operating system software as provided by Software in the Public Interest, Inc. of Indianapolis, Ind.; a WINDOWS VISTA™ or WINDOWS 7™ operating system as marketed by Microsoft Corporation of Redmond, Wash.; or the MAC OS X operating system or iPhone G4 OS™ as marketed by Apple, Inc. of Cupertino, Calif. 
         [0042]    The source memory  109 E further includes a source software  900  that empowers and directs the source server  109  to perform the invented method as presented in the steps of  FIG. 1 , and  FIG. 2 . Further contained within the source memory  109 E is source metadata  110  and the source database  600 , which source database  600  contains the plurality of source records  108 .A- 108 .N which may be transmitted from the source server  109  to the target client  102 . 
         [0043]      FIG. 9  is a block diagram of the exemplary target metadata  104  of a target database  106 , wherein the plurality of target metadata column width values TWV. 01 -TWV.N 1  are shown to be comprised within the target metadata  104 . 
         [0044]      FIG. 10  is a block diagram of the exemplary source metadata  110  of the exemplary source database  600 , wherein a plurality of source metadata column width values SWV. 01 -SWV.N 1  are shown to be comprised within the source metadata  110 .N 1   
         [0045]      FIG. 11  is a block diagram of the exemplary first target record  112 .A and shoeing a plurality of data fields DF. 01 -DF.N, wherein each data field DF. 01  has a specific actual and observed data length sizes DLS. 01 -DLS.N 2 . 
         [0046]    The foregoing description of the embodiments of the invention has been presented for the purpose of illustration; it is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Persons skilled in the relevant art can appreciate that many modifications and variations are possible in light of the above disclosure. 
         [0047]    Some portions of this description describe the embodiments of the invention in terms of algorithms and symbolic representations of operations on information. These algorithmic descriptions and representations are commonly used by those skilled in the data processing arts to convey the substance of their work effectively to others skilled in the art. These operations, while described functionally, computationally, or logically, are understood to be implemented by computer programs or equivalent electrical circuits, microcode, or the like. Furthermore, it has also proven convenient at times, to refer to these arrangements of operations as modules, without loss of generality. The described operations and their associated modules may be embodied in software, firmware, hardware, or any combinations thereof. 
         [0048]    Any of the steps, operations, or processes described herein may be performed or implemented with one or more hardware or software modules, alone or in combination with other devices. In one embodiment, a software module is implemented with a computer program product comprising a non-transitory computer-readable medium containing computer program code, which can be executed by a computer processor for performing any or all of the steps, operations, or processes described. 
         [0049]    Embodiments of the invention may also relate to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, and/or it may comprise a general-purpose computing device selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a non-transitory, tangible computer readable storage medium, or any type of media suitable for storing electronic instructions, which may be coupled to a computer system bus. Furthermore, any computing systems referred to in the specification may include a single processor or may be architectures employing multiple processor designs for increased computing capability. 
         [0050]    Embodiments of the invention may also relate to a product that is produced by a computing process described herein. Such a product may comprise information resulting from a computing process, where the information is stored on a non-transitory, tangible computer readable storage medium and may include any embodiment of a computer program product or other data combination described herein. 
         [0051]    Finally, the language used in the specification has been principally selected for readability and instructional purposes, and it may not have been selected to delineate or circumscribe the inventive subject matter. It is therefore intended that the scope of the invention be limited not by this detailed description, but rather by any claims that issue on an application based herein. Accordingly, the disclosure of the embodiments of the invention is intended to be illustrative, but not limiting, of the scope of the invention, which is set forth in the following claims.

Technology Classification (CPC): 6