The application is a U.S. Patent application the 08/593rd, No. 118 part continuation application (application on February 1st, 1996), described application is a U.S. Patent application the 08/582nd, part continuation application (procurator's document number 23134/90100 of No. 062, apply for Dec 20 nineteen ninety-five, denomination of invention is " data retrieval method and a device with multiple source capacity "), list in this, with for referencial use.
Embodiment
Describe of the present invention aspect some before, provide the various forms of canned data to help to understand the present invention.By being provided, several examples (comprising the example of accounting information and the example of science or technical information) can accomplish this point.Table 1 relatively may be by the data type of two different company's storages.Table 1 attempts to show the accounting of two companies and notional tissue of out of Memory, and may not be the information (also can be the information that is stored in the database though if necessary) that is stored in the database.
The example of table 1. accounting organization
The #2 of #1 company of company
Accounts | Accounts |
Cash | Cash |
The payment accounts | The #1 of bank |
Payable account | The #2 of bank |
| The #3 of bank |
| Deposit |
| Check |
| Payable account |
| Part |
| Consultant |
| Receivable accounts |
| Sell |
| Profit |
The example of table 1. accounting organization
The #2 of #1 company of company
The employee | The employee |
Salesman # |
1 | Sell |
Salesman #2 | Salesman #1 |
| Salesman #2 |
| Investigation |
| Investigator # |
1 |
| Investigator #2 |
Plan | Plan |
Investigation | Investigation |
Sell | Chemistry |
| Biomedical |
| Sell |
| Old product |
| New method (lines) |
Product | Product |
Product # |
1 | Old production line |
Product # |
2 | Production line #1 |
| Product 1 |
| Product 2 |
| Production line #2 |
| Product 3 |
| Product 4 |
| The new production line |
| Production line #3 |
| Product 5 |
| Product 6 |
| Production line 4 |
| Product 7 |
| Product 8 |
| Subsidiary company |
| The #1 of subsidiary company |
| The #2 of subsidiary company |
In first example of table 1, company's 1 qualified accounts information, employee information, plan information and product information, and have four accounts parts.The account information of company 1 comprises three compositions: cash, payable account and receivable accounts.Company keeps its salesman's inventory, with two kinds of plans (investigating and sale) trace information and keep its product inventory.Second example of table 1 is longer (but simplification) example.In this example, accounts have a plurality of compositions on a rank.Though the accounts of company 2 have following kind: cash, payable account and receivable accounts, each kind has subclass, and some subclasses have meticulousr division.Similarly, employee, plan and product information are divided into several kinds and subclass, and company 2 also has tracked addition item (such as, subsidiary company).
Table 1 expression, though consider data source and/difference between the data storage companies before, the structure of company and/or its select to organize the method for its information to cause the difference of a system to another system.For example, if company 1 and company 2 are clients of accountant, he wants to make the report and the analysis (perhaps making for these two companies) of unanimity or modular system, that will be very difficult, even the identical database software of company 1 and company 2 utilizations, even and in this software through the accounting information of tissue with similar type.So, use previous method, the general requirement artificially analyzed and understood information in table 1, so that according to the database of those companies, for two companies provide unanimity or standardization report and analysis.
Still owing to consider accounting information, the information-storing device of several types can be used for the accounting information of storage company 1 and/or company 2.For example, can store information as one or more flat files.Notice that at least according to some purposes, " flat file " information stores is not real Database Systems.Yet at least some embodiment, the present invention can hold flat file data and other database and non-database storing method.
Fig. 1 schematically illustrates the information of the company 2 that how to use a plurality of flat file storage lists 1.Though Fig. 1 illustrates information and may appear on the plurality of sheets of paper with written form, in fact, can data storage on computer-readable media (such as, on the hard disk as described below).The form of Fig. 1 is to attempt to illustrate the logical organization to the data of a plurality of files of 101f by composing document 101a, each file comprise file identification information 104 (as shown in Figure 1) as title or header information 104a, 104b and a plurality of record (as shown in Figure 1) as information row 106a, 106b, 106c, each record has a plurality of fields (forming as shown in Figure 1 row 108a, 108b, 108c, 108d).For the personnel that are familiar with programming technique, be used to store with visit data with have or reflect as shown in Figure 1 logical line and the method and apparatus of array structure be known.Can use the present invention together in conjunction with a plurality of flat file information stores programs.The example of these information stores programs comprises the Accounting with trade name Simply
TMSell with MAS-90.
The data of forming by logical organization as shown in Figure 1 are stored with a plurality of different-formats.For example, in one embodiment, in the branch open file on data storage the hard disk in PC of flat file 101a in each file of 101f.Fig. 2 illustrates the directory/file structure that can be used for storing this file, wherein as shown in Figure 1 All Files is stored in a plurality of sub-directories.Known for the personnel that are familiar with this technical field, even various file is formed TOC level as shown in Figure 2, also can physically be stored in them on the hard disk on a plurality of disconnected positions.Multiple form can be used for data storage hereof.At Fig. 3 A to these examples shown in the 3C.In the example of Fig. 3 A, file comprises header information, then is the storage first record 106a, the second record 106b etc.In the example of Fig. 3 A, the utilization fixed-length data, wherein, each record 106a, 106b have identical length 304 (that is the position of, occupying fixed qty).In the example of Fig. 3 A, also comprise regular length from 308a to 308d in each intrarecord each field.
Fig. 3 B illustrates another kind of fixed-length data storage means, the wherein order to be listed as, rather than the sequential storage data (storing all data continuously, is all descriptions etc. then) to go.In the example of Fig. 3 B, it is very useful, recording mechanism indication 322 being stored the part of header (for example, as) in order to help to find desired data.In the regular length system (for example, shown in Fig. 3 A or 3B), can find particular data for set a distance (that is, given figure place) one section of the beginning part of leaving data.For example, in Fig. 3 A, if known header 302 has the length of 4 bytes, and known record length 304 is 8 bytes, need to find data message so at the first record 106a of byte number 5 beginnings, and the second record 106b that need find in byte number 13 beginnings etc.
Fig. 3 C is illustrated in field rather than the data storage in the given length field to delimit.In delimiting form, special symbol (that is, with the different bit pattern of arbitrary pattern that is used to store data) is used for making marks to the tail end or the beginning part of record and/or field.In the embodiment shown in Fig. 3 C, use two different special symbols, one is used for partly making marks to the beginning of record, and another is used for partly making marks to the beginning of field.These symbols are shown respectively in Fig. 3 C, and as colon and branch, they represent arbitrary bit pattern or symbol.In the data layout of Fig. 3 C, can discern the information of the data message of the expression first record 106a, as the information after the first new record symbol 324a and before the first newer field symbol 324b.Data message from the second record 106b is after the second new record symbol 326a, and the information before next newer field symbol 326b etc.Many other forms that are used for canned data are feasible.As seen, the variation of data memory format brings the problem of the data of different types of another visit, coordination and combined information storage system again the explanation from Fig. 3 A to 3C.Before, (for example want direct visit information, maintenance data base management system or other do not read the software of canned data) the knowledge that needs data memory format (such as, in some cases, need obtain this knowledge by the example of analyzing stored information).So accountant's the needs that satisfy the canned data of the company 1 want access list 1 and company 2 not only require the information about the logical organization of data, its logical directories structure (Fig. 2), also require the information about data memory format (Fig. 3 A is to 3C).
Outside the information of storage, also there is multiple other possibility as the flat file data.Fig. 4 A illustrates of the information of considering relational database and may organize to 4F.In the example of 4F, store first traffic table 402 at Fig. 4 A, it has a plurality of record 406a to 406d.Note, the record shown in Fig. 4 A in some aspects with similar (that is, comprise data segment, describe section and amount section) shown in Fig. 1.In the example of Fig. 4 A, each record provides the additional index section.Traffic table in the example of Fig. 4 A does not comprise header information as shown in Figure 1, and includes only single traffic table Fig. 4 A (rather than as many tables from table 101a to 101f among the embodiment of Fig. 1).In the Relational database shown in Fig. 4 A to Fig. 4 F, provide the add list that can reflect tissue as shown in Figure 1.For example, statement of account 412 comprises all categories table as shown in table 1, and index 414 is relevant with each accounts simultaneously.Similarly, employee's table 416 comprises the employee's of table 1 name, and each name has relative index 418.In addition, for each name, in Fig. 4 C the expression people whether with sell people (sales force) or relevant with investigation people (reflecting level as shown in table 1).In addition, also comprise the position of a field with the expression employee.Various plans, product and the subsidiary company of the company 2 of the tissue of Additional Forms (not shown) to list reflection table 1 can be provided.
Fig. 4 D illustrates chained list 422, and its expression is for each record of traffic table 402, and required any record and other watch chain connect.For example, if the first professional 406a is and the relevant business of bank's 1 component (bankno.1 component) of cash account, provide record 428 so, it represent for the business record with index value 1, and suitable accounts reference is to have that of index 424.Similarly, also can make and linking with employee's table 416 or other table (not shown).So, although in Fig. 1, need each possible combination (heap file that may cause relatively complicated mechanics of accounting) for accounts, subsidiary company, product, plan etc., and in the embodiment of Fig. 4 A to 4F, only need single traffic table 402, wherein chained list Figure 42 2 provides in the embodiment in figure 1 because known business is stored in the information which flat file obtains.
In typical relational database, only the information (for example, the business of the particular employee of those specific accounts) of some criterion is satisfied in identification or demonstration.In some database software, can store these criterions or " inquiry " for for example using when the needs selective information.Fig. 4 E illustrates the table of a plurality of such inquiries of storage (for example, utilization structural query language (structured query language) (SQL)).The method of data can reflection company be analyzed or is organized in the inquiry of using in the certain database system.So, may may wish to understand and/or can duplicate the data analysis of inquiring the sort of type that (Fig. 4 E) is represented by various storages to make report and the interested accountant of analytical standardization according to the information in this database.
In addition, polytype database allows the user to design form (perhaps being used for showing or being used for printing), and in some cases, allows user storage to limit the information of this form (for example, repeating the form of usefulness).Then, can store another table or table group (not shown) and combine, to preserve information about these forms as the part of Relational database or with it.
Can be with multiple diverse ways, storing in information and the structure shown in Fig. 4 A to 4F.Fig. 5 illustrates the directories/files hierarchical structure that can be used to store a plurality of design tables, chained list, questionnaire and/or form company.Can multiple different data layout (, perhaps being familiar with known other form of personnel of this technical field) for those such as, any in as shown in Figure 3A those store these data.
Another example that can various form canned datas is science or technical information.In Fig. 6, provide flat file system to be used for for example surface temperature information of meteorological survey with storage.In the example of Fig. 6, each file 602a, 602b, 602c storage is used for the information by the specific occasion shown in its header 604 and measuring unit (for example, degrees Fahrenheit or degree centigrade).For each record 606a, 606b, 606c, data hourly in a day with read and be stored in the field of separating.Fig. 7 A to Fig. 7 D illustrates the relational database system that is used to store such data.Tables of data 702 comprises all observed results, and the 704a of measuring unit of each observed result and index 704b.Table 706 (Fig. 7 B) and 708 (Fig. 7 C) can be used for expression for being stored in Fig. 7 A (shown in its index value 704b), and the position relevant with this data point reaches the index value of the time on the date relevant with this data point.Though simplified the example of Fig. 6 and 7A to 7D, for those those skilled in the art, how to set up be used to store more complicated data (such as, weather data comprises wind speed and direction etc.) infosystem of group is conspicuous.So, if the researcher wants to make the information from two weather data sources to interrelate, the method that so just can use the front is (in one of them information stores system as shown in Figure 6, and another information stores is in the system shown in Fig. 7 A to 7F), so that need be by consultant or other analysis expert structure information storage and the tissue shown in Fig. 6 and 7A to 7D, and common development is with allowing the wherein combination of data or this way access data of coordination.
Fig. 8 is the block scheme of system according to an embodiment of the invention, uses for overcoming above-mentioned difficulty about visit, coordination or the data data on different information systems.In the embodiment of Fig. 8, main procedure 802 starts required various driver 804a, 804b, 804c, the 804d of information in several data source 806a, 806b, 806c, 806d as binding analysis and/or visit selectively.For the ease of discussing, as the above-mentioned source data 806a to 806d of Fig. 8 can be by be used for tissue or storage data (such as, aforesaid flat file system, database, spreadsheet etc.) multiple program or the data of storage of one of system or generation.The processing of Fig. 8 and data can reside in one or more computing machines.In one embodiment, under the Local Area Network situation of (it comprises network server computer and associated hard disk or other memory device and one or more client computer), implement this processing.In one embodiment, on client computer, carry out main procedure 802, and information source 806 and the data file that is used for new database 808 are stored in the hard disk relevant with the webserver (or other data storage).In many other structures, can implement the present invention, such as on computing machine on the single computing machine, in a plurality of non-networkings, their utilizations by communication link (such as, wide area network, modem communication) computing machine by link such as Internet.Can use polytype computing machine to carry out the present invention, comprise mainframe computer or PC, such as, by IBM (for example, computer based 386,486 or Pentium or Pentium II type), Apple, such as, macintosh computer) and " clone " product of these computing machines).In one embodiment, utilization dos operating system and/or the of Microsoft form or Win95 customer interface are implemented this processing.
Here those that are called as driver 804a to 804d should not obscured mutually with that class data filter that provides in some database program.In general, data filter is to be used for can determining criterion according to the user, selects the inquiry or the logic testing type of certain and/or field.The driver 804a to 804d that will describe in detail below on the other hand, has the multiple processing capacity of analyzing and visiting dissimilar source datas.In another embodiment, with the method that after those skilled in the art understand this instructions, can understand, provide functional module 804 (DLL) as dynamic link storehouse (dynamic linklibraries) with them.The structure of driver 804a to 8094d be used for to the data source of one or more types carry out computing (such as, the data file that the particular data library produces is carried out computing).According to the characteristic of database program, may need sometimes to have and for example be used for by two two drivers that separate of the database software packet generation data file of version separately.In some cases, the single driver that might provide the data file that can softwares (or the database of the different editions of given brand or other software) dissimilar in conjunction with utilization two kinds (or multiple) or brand produces to use together.
In general, the source data 806a to 06d that implements as Fig. 8 can be arbitrary computer-readable information source.This example comprises flat file source data, hierarchical data base, Relational database, spreadsheet etc.Though Fig. 8 has illustrated an embodiment that four data sources are arranged, can not have only the individual data source or under situation, use the present invention by five or five above data sources.Though can illustrate under the situation of each data source 806a to 806d at utilization software dissimilar or brand and use the present invention, also use the present invention under the situation that can produce two or more data sources at database or other software by same brand or type.As an example, the information that first driver can constitute that the information of the data file that produces from utilization dBase II for retrieval is used, second driver can constitute the data file that produces from utilization dBaseIII for retrieval is used, the 3rd driver can constitute for retrieval from using flat file system (such as Simply Accounting
TM) information of the data file that produces is used and the 4 wheel driven dynamic program can constitute the information use of the data file that produces from utilization Microsofy Access for retrieval.
In case data source is analyzed back (will describe in detail as following), just available several different methods is used the result of this analysis, comprise the information of user capture in data source is provided, be used to view or edit, duplicate some or all of data preferably strengthen simultaneously it (as described below) to create new database, to create data sheet (be used to check, print, store, transmission etc.), inquiry etc.
In the embodiment of Fig. 8, after 804 couples of source data 806a to 806d of main procedure 802 utilization drivers analyze, can create one or more new database 808, it comprises the data from one or more various data source 806a to 806d.In one embodiment, create a new database for each data source.May need for example to use the standard database technology (such as, when these databases have similar as a result the time) come in conjunction with two or more such databases.In another embodiment, a database 806 can comprise from two or more data sources (for example, if company's database of utilization or other data source are stored marketing information and another database or other data source that are used to store employee information).If necessary, for example use form author 810, new database or database 808 can be used to generate form, and if necessary, for example maintenance data base management system 812 or other data 814 can be used to it to enter, check or analyze data.In one embodiment, database 808 is Microsoft Access databases, it comprise have one or more guides, template, wave filter and/or tool box software (as by those attributes Microsoft Access programming personnel understood those) the base sign indicating number, be used for for example providing database report and analysis (such as, outputting standard financial statement).In one embodiment, provide finance and managerial report software conduct for from Bellvuw, the Timeline of WA, expansion and the change of the name of an article MVTM that Inc. can fetch.
Preferably also comprise one in the analytic system for generating or being provided for certain purpose or organizing the form of certain group or the module that screen display is constructed.For example, in the embodiment of Fig. 8, (for example preferably use steering tool or diagram selector switch, between bar chart and percentage map (pie chart), select, select during the reporting period, select season or week form etc.), provide user interface easy to use to executive information system (EIS) 815, and the data analysis of structure output in various spreadsheets, expression diagram or Print Form.In one embodiment, provide the menu of various Data Views, the view that has generated or checked automatically comprising utilization aforesaid automatic accumulation (roll-up) generative process to the executor.
In one embodiment, owing to used for example 802 processing, strengthened the operation processing capacity of the information in new database or the database 808.This be from information with generate, show or the meaning of the analysis of the data that output is not shown or exports or relation or utilization source data 806a to 806d on.
Fig. 9 is the synoptic diagram of various driver 804a to 804d.Each driver comprises the processing or the function 901 to 910 of a plurality of qualifications.Every kind of function can comprise computer program instructions 912, for example, implements and carry out one or more following and steps as shown in figure 10.In one embodiment, every kind of function 901-910 can call subroutine or process.The function 901 to 910 that limits in given driver 804b comprises the function that must differently carry out or carry out according to source data 806a, 806b.So, for example, about being designed to be used for being chosen on the hard disk or being stored in 901 of function of some catalogue of the out of Memory memory storage of information needed, select the process of catalogue will design 806 type according to the source, different, for example, erect image can be compared the example of Fig. 2 visible such with the example of Fig. 5.Correspondingly, the programming 912 of implementing function 1 in the first driver 804a is different with the programming code of corresponding function in being implemented in the second driver 804b.In this way, each driver limits one or more processing procedures and carries out function with these processes of the different qualities that is used for holding two or more dissimilar sources designs by design.For example, Figure 11 A illustrates the combination represented with false code and selects and/or select the part of that class process that catalogue uses together for bibliographic structure as shown in Figure 2, and Figure 11 B illustrates the appropriate section of selecting or select the false code of the process that catalogue uses with bibliographic structure as shown in Figure 5.How those those skilled in the art constitute driver to carry out the identical function of two kinds of dissimilar source datas as can be known from the example of Figure 11 A and 11B.Though Fig. 9 illustrates the functional block with 10 kinds of functions, the present invention can use together with how many different functional blocks of function.Can construction system, wherein the difference in functionality piece limits difference in functionality and/or constitutes one or more functions to provide or to return null value or constant or information.
1002 can start with various procedures, and it is a kind of method as shown in figure 10.In one embodiment, utilization is stored in the method for implementing Figure 10 such as the computer program on the medium of disk, CD-ROM or other non-volatile media, and (for example pass through to computing machine, by keyboard, mouse etc.) send instruction with start-up routine (that is, being contained in the storer and executive routine) to program.In addition, program also can be started by another program.For example, in one embodiment, new database 808 is Microsoft Access databases, it can comprise routine (such as, so-called " guide (wizard) "), with start-up routine, simultaneously program (Figure 10) is visited data in information source 806 successively to provide or new database 808 more.In this embodiment, guide is used for display reminding or " dialog box " are very useful in order to solicit user input (for example, step 1020) as required, thereby user interface has and the corresponding to surface of user interface that is used for data 808.
In process as shown in figure 10, the first step that begins after 1002 in process is identification and initialization dynamic driving program 1004.For this reason, can add with modular form or the deletion driver (for example, in order to hold new or data of different types source on) the meaning, thinks that driver 804 is dynamic.For example, beginning is a system with four drivers as shown in Figure 8 to the system that the user provides, and buys, connects from information service, network, Internet under the data dress there or by writing the additional drives program of client's driver but can add in the future from the software retailer.Because module, the dynamic nature of driver are not known available which driver in advance, so when starting 1002 programs, program just identifies its available driver.In one embodiment, be used to have the disk or the catalogue of the file of (part) file name that presets or file extension by search.In one embodiment, the program selected portion (for example, header information) that can also further analyze each file with proof by these filenames and/file of extension name identification is required driver.Make the driver initialization so that comprise identification and be connected the driver function and initialization data in each driver.
Then, whether deterministic process is imported or is upgraded 1006.In input, at first carry out a process, wherein visit all or most of data in data source and structure and they are stored into new database.In renewal, carry out a process, wherein the selected portion of a visit data and/or structure is (for example, to guarantee that message reflection in new database 808 may be added to nearest variation or the condiment on the data source 806.Under typical situation, when the system of Fig. 8 visits or use information from given data source for the first time,, import if when perhaps more variation or condiment are added on the data source.Generally, regularly (for example, every day, wait weekly) carried out and upgraded, so that data in source data 806 and data sync in new database 808.In one embodiment, for input or to upgrade 1006 selection be that (that is, unless by upgrading process access particular data source for the first time) carries out automatically.In another embodiment, by input (for example, selecting utilization pointing device etc. by keyboard) is provided, allow the user to select in input with between upgrading.
If select 1008 inputs, main procedure 802 function that begins to carry out one or more drivers is to select to search for 1010 catalogue so.Be loaded into or will be decided by to visit which kind of source data by the driver 804 that main procedure 802 is called.Particularly, for given data source 806a, main procedure 802 utilization driver 804b, wherein constitute described with driver to hold this source data 806a type.If visit is more than one data source 806, main procedure 802 will be used any driver 804 that is constituted for every kind of source data 806 so.Preferably, according to characteristic (such as, size and the structure or the out of Memory hereof of the title of file and/or catalogue (perhaps " extension name "), number, file), the type in the automatic specified data of file structure source.In another embodiment, allow the user or require type that subscriber's meter shows data source (for example, be used to create the software brand name or the version number of data source file by identification, perhaps whether wish that by the expression user process only searches for the search that this domain file or execution comprise network file).
Last in step 1010, main procedure 802 visits are for the catalogue listing of the storage of all data sources 806 search, as what discerned by the driver 804 of identification in step 1004.After step 1010, main procedure 802 is packed into or is obtained or the another kind of function 902 of calling function piece 804a to 804d, in order to import data search selected catalogue in step 1010 of 1012.With according to how the method for information stores in different pieces of information source 806, come search directory 1012.For example, for the source data of some types, it is just enough to discern the file with a certain filename and/or a certain file extension.And, then need to scan the data in various files have a certain structure or content (for example, in the header portion of file or other place) with identification file for the source data 806 of other type.So structure disparate modules 804 is so that " search directory " function 902 to be provided with diverse ways, to accept different data source 806.
If upgrade 1014 rather than import 1008, may not choose and search directory, this is because when begin to import, the method that can visit afterwards with main procedure 802 has stored the result of the function 901,902 of selection and search directory.So, use this canned data, main procedure 802 just can be discerned data previous input or that upgraded.In one embodiment, the redundant data (that is, appeared in the new database 808 data) that prevents to pack into is very useful.In general, entirely more under the news, mainly in step 1016, discern new or the data through changing (because last input or upgrade), thereby at least some data in database 808 are not reinstalled.In one embodiment, pack in order to prevent redundant data, system wishes that identification did not change the data of (because being last input or renewal).In general, if follow the tracks of this process, last in process makes data and information synchronization in source data 806 in new database 808, (that is, it comprises the result and the data of the data source 806 under the current state that is illustrated in them exactly).
In the embodiment of Figure 10, in order to give the user input or the chance of new data more, perhaps select to prevent to import or upgrade the chance of some data, show that 1018 are transfused to or the identification of data updated.Organize the method for the data representation that will upgrade or import for demonstration, will be decided by the kind of the data source of being visited, and provide it in response to calling or starting of the function in one of driver 804 (902a).For example, constitute in conjunction with as the function 902a of the driver that uses together of Fig. 4 A to the 4F subsidiary company's table in can indicator gauge 430 (Fig. 4 F), to give the chance that the user imported or upgraded the data of some companies rather than other company.Preferably, the user can select one or more companies from the form that shows.For the tissue of other type or the data in the data source, can be repeatedly demonstration (allow to select for a certain user 416, some proves 412 specific data, this depends on the Presentation Function 902a that how to write or constitute driver) in selecting step 1018,1020 to show.
As will be discussed later in detail, in some cases, after producing new database 808, the user can continue to use original information source 806a-806d to produce, store, edit, and in other cases, can check data.So the database of quite being familiar with already 806 that the present invention and user want to continue to use, user interface etc. are compatible.Yet, in this case, preferably upgrade new database 808 frequently, to be reflected in the data new or among the information source 806a-806d through editing, (perhaps final updating) because new database 808, is (or recent renewal) of creating at first so can this thing happens.It is a kind of that to carry out this method for updating be to repeat to produce the whole process of database 808 (as described below).Yet, in many cases, because the major part of original new database of creating 808 do not change and is still effective, so that this is an efficient is very low.So, according to one embodiment of present invention, provide process to allow only to be used for the data (because final updating database 808, so be changed) of self-information source 806a-806d with regard to renewable new database 808.
The frequency that database 808 must upgrade depends on the frequency of the various application that are made of database 808.So, if just jede Woche accessing database 808 is once, so every day more new database 808 just become meaningless.In addition, the customizing messages that is included in the renewal can change according to the application that is made of new database 808.So,, do not need that so jede Woche is made data updated (for example, being used for the area sells) and comprise in the past if come quarterly the plant produced data are done the management audit.Preferably, create and one or more profiles of the various types of renewals of area definition, and preferably, also create and storage time calendar.Schedule be used to limit moment of automatically performing this renewal (that is, do not ask for help start a this renewal " list schedule in " in or remember it.Preferably, arrange different renewal profiles to carry out in the different moment or at interval, such as, by such schedule is provided, it for example upgrades in the season that automatically performs the area sale renewal process and the data of arranging production before the sales meeting weekly weekly before season production reexamination.
Owing to utilize the different people of the system of Fig. 8 can use the different piece (for example, information source 806a-806d or new database 808) of system to carry out the operation of every day.Can store profile and new database 822, legacy data storehouse 824a-824d (if having the information that is used for being stored in information source 806a-806d suitable " writing permission ") or both have concurrently.
There is multiple scheme to can be used to create profile.It can comprise order (selecting or button) such as, menu with allow customer requirements to create to upgrade profile (for example, by predetermined screen table sequence or dialog box sequence, such as, provided by Microsoft Access Wizards).Can also the automatically prompting user decision whether create or edit profile, for example, (perhaps the frequency of maintenance data has surpassed current profile renewal frequency for these data) no matter when the user requires the printing reports of current screen or maintenance data not limiting.In one embodiment, list the database table of each field of database 808 by establishment and create profile 822, and for each such field, whether expression exists identification name or title and current renewal frequency or the existing profile at interval that upgrades this database, this profile.
Outside the automatic time arrangement was upgraded, the best option that also provides requirement at any time to upgrade to the system user of Fig. 8 preferably was provided at any pre-qualification and upgrades and select the option that maybe will demand perfection and upgrade in the profile.If necessary, system can remind the user to determine whether should (as mentioned above) stores as profile wanting the data updated group.System also can provide the profile tabulation that has existed or limited, thereby the user can select pre-the qualification in the profile, rather than selects in data presented (such as, subsidiary company's table).
In some cases, can pre-determine often input or renewal all available information, and the function 902a of the driver of using only can enter program main procedure 802 from database (" full renewal ").For example,, can determine that the available surface temperature that records from various places always is included in each input and the renewal with respect to the data source shown in Fig. 7 A to 7D.In one embodiment, provide a kind of demonstration to the user, it can indicate the position of user-selected data.For example can show the catalogue that to visit, sub-directory and the file that contains information.Also can be used as a kind of option provides a kind of selection will visit the chance of which catalogue to the user.
In case the time made decision in for example the 1018th and 1020 steps, be about to input or data updated so, total information is mounted into system 1022.If when needing the information of the data source of visit more than two or two, so, can serial (promptly, use on first data source of first module and carry out step 1022 to 1046, then on second data source of the suitable driver of utilization, carry out step 1022 to 1046, or the like) or parallel carry out (that is, on each desired data source of the suitable driver of utilization, carrying out step before the step of carrying out the back on each information module).
General information comprises the information about the structure of the data in data source.The type of the general information of being loaded onto in this step 1022 changes according to all kinds of source data.For example, for writing or constituting the function of using together for combination such as the database shown in Fig. 4 A to 4F 903, general information can comprise accounts identification or other classification of for example using in data source 806.On the other hand, if constitute or write the function 903 of driver 804, for using together in conjunction with data source as shown in Figure 1, what need so to determine in data source, will use part, but in this case, will determine this information by a plurality of flat files of the 101a to 101f that in data source 806, finds.General information also can comprise such information, such as, in database 806, limit and how much plan 112, how many products 114 and/or production line 116 or how many subsidiary companies 118.General information also can comprise first month in Business Name, fiscal year and any out of Memory that generally can once be packed into (this is opposite with the information of for example packing into, in the circulation of generally packing into) in step 1024,1033 and 1036.If in constituting, provide " general information of packing into " function 903 for the driver that uses together in conjunction with data source as shown in Figure 6, the general information of can in step 1022, packing into so (such as, the positional number 612 in database).
Main procedure 802 is also called or is started suitable driver or module 804 function 904 with the data definition 1024 of packing into.Data definition can comprise such as the text name, field size, data type (character string, integer or the decimal number that are stored in as the identifier of particular data classification or classification in the data source 806; Decimal digits) with for the similar characteristics of various data.Preferably, the data definition of packing into comprises data interrogation obtaining to be stored in the architecture of the information in the data source or the required information of expression of structure and the data element in data source, as comprise in generation for one or more new database 808 of required all structures of the form of on new database, carrying out or analysis type and data desired.From the data interrogation " data definition of packing into " step can be consistent with any data source in fact and identification store on request on the meaning of canonical form (for example, be used to report and analyze) of data source and say that it is intelligent inquiry.In the example of Fig. 4 A to 4F, the required information of architecture of expression source data for example comprises, the title of four accounts parts (accounts, company, employee and place) and data type (for example, numeral or character string) and store the required length of any character string accounts part.In the example of Fig. 6, the required information of architecture of expression data source comprises the title of storage accounts parts (place and date) and the parameter title that is used for these data (unit).Inquiry can comprise other optional data (for example, invoice number) that identification can be loaded into.The particular type of the inquiry of carrying out is by the decision of the characteristic of analyzed particular source, thus be used for the different of each driver 804.Generally speaking, be used in function executing in the driver 804 step of data or information 1022,1024,1033,1036 of packing into, and carry out the step of preservation information 1026,1028,1030,1032,1034,1038 by main procedure 802.
So file or other data store organisation in the new database 808 are discerned or be created in to main procedure 802 identification or create database 1026 promptly,, wherein new database 808 as the position of preserving the information of packing into from data source or source 806.Upgrading does not generally need to create new database or database table, generally just is added to simply on the already present table that exists in the database because upgrade.
Then, main procedure 802 is called the appropriate functional 905 of one or more drivers, creating tables of data 1028, with its come from the data storage of source data to new database 808.The method of creating database table is preferably considered the method for data and data source structure and utilization new database 808 (for example, being used for analyzing, generating form etc.).Because the particular table of creating in data source 806 (for example depends on, determined in step 1022 and 1024) information characteristic and change, be because the function that the driver 804 of the certain database that is used to visit structure provides so create database table 1028.For example, when writing or constituting " establishment database table " function 905 for when using together such as the data source shown in Fig. 4 A to 4F, the database table of creating for example comprises, statement of account, employee's table, subsidiary company table (it can be the accumulation of accounts) and details table (following detailed description) are although constituting for comprising location tables, tables of data, timetable, cell list and details table in conjunction with " the establishment database table " that write or provide in the driver that uses together as Fig. 7 A to 7D.Preferably, the table of creating in new database 808 has a kind of structure or structure can accept on the meaning of any data definition that finds from various data sources 806 or structure from it, and this structure is dynamic.In one embodiment, plan is mainly used in output such as the information that generates report and analyze with new database 808, and preferably following formation with provide best output performance (such as, for the high flexibility of output and obtainable data analysis type and the relative execution fast of this analysis and/or output).Because this, if it provide be better than some other various may structures speed and the speed and the dirigibility of the output of dirigibility, so output speed and or dirigibility on make the database optimization.So, be in this reason, " optimization " may not necessarily require mathematical accurate optimization.The table of three kinds of general types is provided in step 1028 in one embodiment: multiple table (comprising the accumulation table at the appropriate time), at least one is shown in detail and at least one enters table.Preferably, for every kind of method provides one type table, wherein can be to particular data point or record sort.For example, if in driver 804 (constitute it for using), provide " establishment tables of data " function 905 as Fig. 4 A to 4F, new database so as shown in figure 12 will comprise a plurality of kind tables 1202, and it comprises all possible accounts classification of for example listing accounts 1203, be listed in subsidiary company's table 1230 of all possible subsidiary company that finds in the data source 806, list the product table 1232 of all products that are recorded in the data source 806, list employee's table 1216 of all employees that are recorded in the data source 806 and list all places that is recorded in the data source 806, the location tables 1234 of sales region etc.In an illustrated embodiment, each record in each kind table 1202 or project are relevant with the index that is used for following details table.
In embodiment as shown in figure 12, detailed table 1240 is provided, wherein in case put together, it just has and is used for that each accounts enters or at the record of the business in data source or source 806.In the embodiment of Figure 12, provide field 1244 (that is, data segment 1242b, a description section 1242c, amount section 1242d and digital section 1242e).Provide index segment 1242a, with the identifier or the call number of storing each record.In addition, for each record, provide field separately with the representation of storage for every kind any adequate information that in the general information step 1022 of packing into, limits, in the example of Figure 12, comprise accounts kind 1242f, the kind 1242g of subsidiary company, product category 1242h and employee's kind 1242i.Generally speaking, need provide as analyzing or the required so much different field (that is, kind) of output data, they appear in the data source 806.So,, be very useful so have the accounts kind owing to wish form of classifying of output by professional relevant item.In addition, for required accounting purpose, need print form separately or print wherein by the form of subsidiary company's classify traffic for each subsidiary company, be very useful so have the kind 1242g of subsidiary company.Generally speaking, for every kind of required method selecting, divide into groups, report, print or analyze data, can provide the field of separating in the table 1240 in detail.The structure of the structure of the structure of as shown in figure 12 database and data source shown in Fig. 4 A to 4F and data source as shown in Figure 1 compared have very big contrast.For example, in the structure shown in Fig. 4 A to 4F, at wherein specific transactions (Fig. 4 A) and the relevant method of specific accounts (Fig. 4 B) shown in the chained list that separates (Fig. 4 D), and in the embodiment of Figure 12, in its field of the index stores of suitable accounts 1242f in the identical recordings that comprises business information 1244.So, though have the database 808 of table as shown in figure 12 can be stored in as shown in Figure 1 database or the database shown in Fig. 4 A to 4F in the information that finds, different in the structure of the database in the example of Figure 12 and architecture and as shown in Figure 1 database or the data source shown in Fig. 4 A to 4F.Similarly, the related data library structure of Figure 12 is different with flat file structure as shown in Figure 1, is similar although be stored in two information categories in the tissue.
Main procedure 802 can be constituted and be used for preserving general information 1030 (in step 1022, being loaded into) and preserve data definition 1032 (in step 1024, being loaded into), for example, in the add list that in database 808, provides (for example, for the step afterwards among Figure 10 and/or in the renewal of carrying out afterwards, use).The suitable function 908 of the one or more drivers 804 of main procedure 802 utilizations, the data definition sign indicating number (for example, field length, data type) the various forms that are used for creating in step 1028 (1033) is encased in the new database 808 and goes.In one embodiment, the accumulating information of also packing at this moment.Generally speaking, accumulating information refers to be used to limit the information of the subcategory (that is the project team in a kind table) of data.As an example, as shown in figure 12, employee's kind table can relevant with position or area code (for example, discerning position or place or the zone that responsibility maybe should be taken in each employee of company place).For example, there are many sales forces in company, and each sales force is relevant with the sales region.As another example, can accumulate the various products of company or aggregate into product line.By being defined for the field 1238 of position accumulation code, the form that the structure of Figure 12 suitably illustrates by the sales region classification is feasible.Accumulation also can be used for providing the statistical study (for example, on average, means, standard deviation etc.) of group data.Though in the example of Figure 12, the field of the field of position accumulation code 1238 as employee's kind table 1216 is shown, can also provides location field 1238 in detail if necessary.
The function that accumulates code 908 of packing into is carried out method of operating and is depended on to be used to constitute with the type of the source data 806 of running and change, and provide its function as various drivers 804, thereby different programming instructions can be provided, use for dissimilar source datas.As an example, in constituting, can provide " definition accumulation code " function 908 for the driver 804 that uses together in conjunction with the database shown in Fig. 4 A to 4F.In this example, location field has defined in employee's table 416, and it can directly be used for position code, and opposite in embodiment as shown in Figure 1, does not have the expression of the employee's 120 relevant with specific plane file 101a position.So in one embodiment, the position accumulation can not be the data that the data source among Fig. 1 obtains.Yet if for example there is another file that the home address of each employee in company is provided, the residence status that can use each salesman for example so is to determine the answerable sales region of this salesman, so can limit position accumulation code in theory.In addition, function can comprise that visit can be used for defining the information of accumulation code " to limit the accumulation code ".For example, in conjunction with data source as shown in Figure 6, " definition of data accumulation " function 908 can comprise that this stands in the Northern Hemisphere still at station, the Southern Hemisphere for 612 expressions of each potential temperature station, and can create the hemisphere code on this basis.In some cases, provide word identification and/key word of search in database is required to limit additional accumulation and/or structure.
In some cases, the accumulation code be not used in data source with as analyzing or the information on the basis of grouped data (the hemisphere accumulation code that for example, is used for the data source of Fig. 6) is correlated with.So in these cases, providing the accumulation code to comprise provides by additional unit is provided automatically, these parts are (perhaps not used at least) the enhancing data that can not utilize for the information that illustrates or analyze in data source 806.Preferably, data are divided into kind, by depth analysis they are classified then for the data of data source.
System can constitute in order to identification and add some form relation, and this relation is determined by definite degree of the structure of the data among the information source 806a-806f or these data.For example, marketing information can have the sale by sales territory (perhaps represent, perhaps for example use aforesaid salesman address to infer) tissue in information source 806a-806d.According to embodiments of the invention, (pack into by other group, two or more vice presidents, each president is responsible for two or more sales regions) can also check or analyze these zones, can in information source 806a-806d, clearly find or therefrom infer the relation of vice president and sales region.
Preferably, have only data representation to check that according to the accumulation criterion data are significant, just limit this additional accumulation or enhancing.For example, in one embodiment, do not add automatically to strengthen or additional relationships, unless there is value for specific fields or parameter more than one, but preferably, less than the quantity of the accumulation that changes this field or parameter.For example, if having at least two different vice presidents to be responsible for different zones, so according to checking that with the corresponding sales volume of each vice president it is significant selling.Yet in the example of Fig. 6-7, if all report places are arranged on the torrid areas, system can not check weather data and create accumulation or enhancing automatically according to the kind of snowfall so, because all station reports comprise zero for snowfall in this example.So in Service Database, system checks preferably data in source database 806a-806d are to determine for example whether to have a plurality of salesmen, a plurality of area and/or a plurality of product.If in field, a plurality of values are arranged for the various records of database, so can construction system with field provide option with check according to this field data (for example, have value (such as, sell, expense etc. average or summation) average or summation.In one embodiment, obtain this value by creating Microsoft Excel " pivot " table.
As an example, with reference to Fig. 4 A-4E, the table of available Fig. 4 D determines which employee is relevant with this business for any business.Table 4C is used to determine whether this employee is relevant with the Northwest, southwest or Central District concerning given employee.If all business are all relevant with the employee of Central District, so just needn't show the business in area.Yet, if the employee in the business of table among the 4D zone different with at least two is relevant, the business (and/or as from business of the definite specific accounts type of Fig. 4 B) that so can construction system shows the position of being correlated with by the employee relevant with this business or region separation with automatic generation on average or the accumulation of summation.
Except limiting accumulation, handle and also can store optional reference field.Generally speaking, optional reference field refers to generally to be not used in the field of the data of grouping such as free text section (note, p.m.entry section, invoice number etc.), and be meant be included in form etc. required.
After pack into data definition code and accumulation, these data definition codes and accumulation are kept in the new database 808 (for example, to be provided kind is listed in the various kind tables 1202.In a looping fashion, execution is packed into and is preserved data definition and accumulation code 1033,1034, to pack into and to preserve particular types (in the example of Fig. 4 A-4F, specific accounts, company, employee and position)
In reexamination, according to shown in embodiment, step 1024 limits kind (for example, accounts, company, employee and position) and its data type (for example, character string or numeral).The 1028th step was created in the catalogue listing (with the table of other definition in 1022 steps) of definition in 1024 steps.The 1032nd step preserved data definition by a standard scale.Step 1033 and 1034 is packed into and is preserved data definition and accumulation code.
In processing, though the option about data structure is set in the new database 808, but not as in the data of the theme of source data 806 (for example, accounting enter or at the business under the situation of accounting source data, temperature data under meteorological temperature source data conditions) the new database 808 of packing into.Therefore, main procedure 802 call or be enabled in function 909 in the suitable driver 804 with the data 1036 of packing into, preserve data 1038 and re-treatment 1039, until packing into and preserving 1040 all required data.So,, provide the data of example from one or more data sources 806 to new database 808 in this end that constitutes 1036,1038,1040.
When the process by utilization Figure 10 makes up two or more data sources of the software generation with different structure and/or utilization different brands or type, can make data have common database structure (for example, as shown in figure 12) from dissimilar sources.This helps for the general characterization of the analysis of data and report or standardization, preferably, and their dirigibility and speed of optimization so that output to be provided.
In the example of Figure 10, can set up now, main procedure 802 and if necessary, carry out data interrogation (such as, summarize inquiry 1042).Generally speaking, can set up three kinds of inquiries.First kind of inquiry can be provided, and all new database 808 that it is created for the process of utilization Figure 10 are common, such as the several inquiry that enters that enters number or arrive given data area (for example, per season) that is provided to detailed table.At least partly depend on general information and, can set up another kind of inquiry with respect to one or more data sources 806 (comprise the accumulation that has been provided, therefore provide its part if necessary) particularly for particular source as driver 804.Can provide the third inquiry, to duplicate or to be included in inquiry or the form of using in the raw data source (for example, shown in Fig. 4 E).
After new database 808 was provided, according to an embodiment, system carries out certain audit automatically or checks audit, and was normal with the proof system operation.Can comprise various inspections.Can compare the data sample in new database 808 (perhaps, if necessary, all data) with the corresponding data in the 806-806d of source, not have destroyed with the proof data.Can check that there is desired structure in new database 808 with proof.For example, under the situation of accounting database, can self-verifying new database 808 to determine to occur desired accounts part.Can check and have or not empty group (such as by determining accumulation, or other limited enhancing non-NULL) in the new database 808.
In case provide and prove new database 808, and set up suitable inquiry, main procedure 802 can be closed form and database 1044, and dynamic driving program 1046 (for example, discharging storer).
Though main application of the present invention be in conjunction with provide to the data in one or more data sources carry out standardization and/report and the analysis that strengthen, but can also pass through maintenance data base management system (for example, MicrosoftAccess , Excel , FoxPro , Btrieve etc.) binding data enters and data storage utilization the present invention.Though consider, main application of the present invention comprises that continuing employing original source data 806 is used for input and storage, simultaneously for being used for reporting the original source data 806 of copy of preserving the identical information of new database 808 with analysis purpose, but by at first it being stored in the new database 808 as mentioned above, after this data download or output are arrived dissimilar source data 806c from the information of new database 808, can also use the present invention that the data of a kind of source data 806a of example, b are transferred to another kind (for example, 806c).
According to the above description, can see a plurality of advantage of the present invention.Utilization of the present invention makes report and analytical standardization, and with have nothing to do different of brand of used data source with kind.The invention provides the system that can be optimised or the output or the improvement performance of report data are provided.The invention provides the data report and the analysis ability of comparing and being enhanced with the data division and the analysis of data source.By the perfect inquiry of source data, because accounting system, the present invention can be reflected in the proof list of setting up in the data source.In one embodiment, handle accumulation, optional reference field, the accounting cycle information of extracting some or all of qualifications.By carrying out these work automatically and eliminating (reducing) demand for manual analysis, compared with former method the present invention was more laborsaving timesaving again, in some cases, took several days in the method before can in a few minutes or n hour, being provided at or new database 808 that several week just can finish.In one embodiment, can constitute driver 804 to detect, to analyze and in new database 808, to remain on any confidentiality of using in the data source 806, password, authority etc.Like this, except keeping with raw data source 806, system's actuator needn't keep groups such as accounts new or that separate, password, authority for new database 808.Preferably, can construction system with in predetermined space (such as, every day, jede Woche etc.) carry out essence and upgrade.
Also can use multiple variation of the present invention and change.Aspects more of the present invention can be used, and others needn't be used.For example, may provide new database 808, and needn't limit new or the annex accumulation.Though in the above description, can provide various drivers 804 as the dll file that separates, and from by additional dll file is stored in the appropriate command, can simply add on required so much meaning and say, various drivers 804 are dynamic, but invention can be operated, wherein provide the function of carrying out by this functional block as part or the subroutine called by main procedure 802 (but piece of not separated storage).
Though the method with preferred embodiment (wherein, having some variation and change) is described the present invention, can carry out other variation and change to it, limits the present invention by following claims.