KR100538547B1 - Data retrieval method and apparatus with multiple source capability - Google Patents

Data retrieval method and apparatus with multiple source capability Download PDF

Info

Publication number
KR100538547B1
KR100538547B1 KR1019980705075A KR19980705075A KR100538547B1 KR 100538547 B1 KR100538547 B1 KR 100538547B1 KR 1019980705075 A KR1019980705075 A KR 1019980705075A KR 19980705075 A KR19980705075 A KR 19980705075A KR 100538547 B1 KR100538547 B1 KR 100538547B1
Authority
KR
South Korea
Prior art keywords
data
information
data source
database
driver
Prior art date
Application number
KR1019980705075A
Other languages
Korean (ko)
Other versions
KR19990076947A (en
Inventor
데이비드 비 쿠치
데이비드 에프 야넬
도날드 케이 밥코크
Original Assignee
타임라인 인코퍼레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US08/593,118 external-priority patent/US5802511A/en
Application filed by 타임라인 인코퍼레이티드 filed Critical 타임라인 인코퍼레이티드
Publication of KR19990076947A publication Critical patent/KR19990076947A/en
Application granted granted Critical
Publication of KR100538547B1 publication Critical patent/KR100538547B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units

Abstract

2개 또는 그 이상의 소스 데이터 형태 중 어느 형태로도 이루어질 수 있는 데이터 소스에 포함된 정보에 관한 출력 또는 리포트의 생성이 표준화된 또는 균일한 방식으로 제공된다. 예를 들어, 새로운 데이터베이스를 정의하는데 사용하기 위해, 다양한 데이터 소스의 구조적 특성 또는 다른 특성을 식별하기 위한 프로그래밍을 포함하는, 상이한 형태의 소스 데이터에 특정한 다수의 드라이버가 제공된다. 바람직하게는, 새로운 데이터베이스는 고도의 유연성 및/또는 빠른 출력 또는 리포팅을 허용하도록 구성되거나, 또는 그렇지 않으면, 리포팅 목적을 위해 최적화된다. 일실시예에서, 본 발명은 하나 또는 그 이상의 데이터 소스로부터 하나 또는 그 이상의 균일한 데이터베이스로의 변환을 포함하며, 바람직하게는, 데이터를 편성하기 위한 하나 또는 그 이상의 주요(key) 카테고리를 생성하는 것을 포함하고, 선택적으로는, 카테고리 그룹화(groupings) 또는 롤업(rollups) 및 추가적인 데이터 또는 선택적인 레퍼런스를 생성하는 것을 포함한다. 일실시예에서, 매우 상이한 구조를 가질 수도 있는 2개 또는 그 이상의 상이한 데이터 소스에 근거할 수도 있다 할지라도, 구조의 균일도를 가진 하나 또는 그 이상의 데이터베이스가 생성된다. 상이한 데이터 소스가 자동적으로 분석되며, 이러한 분석은 정보를 편성하는데 사용하기 위해 데이터의 카테고리를 식별하고 및/또는 생성하기 위해 이용될 수 있다.The generation of an output or report on the information contained in the data source, which may be in any of two or more types of source data, is provided in a standardized or uniform manner. For example, a number of drivers are provided that are specific to different types of source data, including programming to identify structural or other characteristics of various data sources for use in defining new databases. Preferably, the new database is configured to allow a high degree of flexibility and / or rapid output or reporting, or otherwise is optimized for reporting purposes. In one embodiment, the present invention includes the conversion from one or more data sources to one or more uniform databases, preferably generating one or more key categories for organizing the data. And optionally, category groupings or rollups, and generating additional data or optional references. In one embodiment, one or more databases with uniformity of structure are created, although they may be based on two or more different data sources that may have very different structures. Different data sources are analyzed automatically, and this analysis can be used to identify and / or generate categories of data for use in organizing the information.

Description

복수의 소스 능력을 가진 데이터 검색 방법 및 장치{DATA RETRIEVAL METHOD AND APPARATUS WITH MULTIPLE SOURCE CAPABILITY}DATA RETRIEVAL METHOD AND APPARATUS WITH MULTIPLE SOURCE CAPABILITY}

본 발명은, 다수의 상이한 포맷으로 이루어질 수도 있으며, 다수의 상이한 소스 중 하나 또는 그 이상의 소스에 저장된 정보를 검색할 수 있고, 그 정보에 근거하여 리포트 및 분석을 제공할 수 있는 컴퓨터-구현 시스템에 관한 것으로서, 특히, 소스 데이터의 사람의 분석에 의존할 필요 없이 구조적(structural) 및/또는 관계적(relational) 정보를 포함하여, 다수의 포맷중 어느 포맷으로 저장된 데이터베이스 정보를 자동적으로 검색할 수 있는 컴퓨터 방법 및 장치에 관한 것이다. The present invention is directed to a computer-implemented system that may be in a number of different formats and that is capable of retrieving information stored in one or more of a number of different sources and providing reports and analysis based on the information. In particular, it is possible to automatically retrieve database information stored in any of a number of formats, including structural and / or relational information, without having to rely on human analysis of the source data. Computer method and apparatus.

관계적 또는 계층적 데이터베이스 관리 시스템, 플랫 파일 데이터 시스템, 스프레드시트(spreadsheet) 시스템 등과 같은, 컴퓨터-억세스가능 정보를 편성하기 위한 많은 방식이 개발되었다. 이들 시스템은, 회계 또는 다른 금융 정보, 과학 또는 기술 정보, 법인체 또는 회사 데이터, 성명, 주소 및 전화번호 데이터, 및 통계 데이터를 포함하여, 무수한 형태의 정보를 저장하고, 조작하고, 디스플레이하기 위해 사용된다. 많은 포맷 및 데이터 구조가 개발되었으며, 이러한 상황은 바람직한 결과 및 바람직하지 못한 결과를 모두 갖고 있다. 긍정적인 측면에서 보면, 다양한 상이한 형태의 시스템을 구비함으로써, 상이한 목적을 위해 최적화되거나(예를 들어, 데이터 분석 및 리포팅의 속도 또는 유연성과 대비하여 데이터 입력 또는 저장을 위해 최적화되거나, 법인체 데이터과 대비하여 회계 데이터에 대해 최적화되는 것 등이 있음), 또는 개인이나 법인체 선호도(preferences)에 호소할 수 있는 사용자 인터페이스 또는 다른 특성을 제공하는 상이한 시스템을 제공하는 것이 가능하다. 그러나, 이러한 정보 시스템의 증가는 예를 들어, 정보를 통합하거나 조합하기 위해 2개의 또는 그 이상의 시스템 내의 정보에 억세스하는데 유용하게 되는 상황에 있어 본질적인 장벽을 제공한다. 이와 같은 상황의 예로는, (1) 표준화된 리포트를 생성하길 원하지만, 그 각각이 회계 데이터를 상이한 형태의 데이터 소스로 관리하는 복수의 고객을 갖고 있는 회계사; (2) 균일한 리포트를 생성하길 원하지만, 상이한 부서가 상이한 법인체 또는 금융 소프트웨어를 사용하는 수개의 부서를 가진 법인체; (3) 균일한 리포트를 생성하길 원하지만, 그 회계 정보를 제1 형태 또는 브랜드의 데이터베이스(또는 다른 데이터 소스)에 관리하고, 그 법인체 정보를 제2의 다른 형태의 데이터베이스에 관리하는 법인체; (4) 공통적인 문제를 연구하고 있지만, 그 각각이 상이한 형태 또는 브랜드의 데이터베이스나 다른 데이터 소스에 데이터를 저장하고 그 저장된 데이터에 억세스하는 과학자 그룹이 있다. 본 명세서를 이해한 이후에 독자들은 다른 예가 더 있다는 것을 이해할 것이다. 또한, 몇몇 상황에서는, 원하는 모든 정보가 단일 형태의 데이터 소스 또는 단일 데이터 파일에 저장되어 있을 때 조차도, 예를 들어, 균일한 및/또는 향상된 데이터 분석 및 리포팅을 제공하도록 데이터에 억세스하는 방식을 제공하는 것이 바람직할 수 있다.Many ways have been developed for organizing computer-accessible information, such as relational or hierarchical database management systems, flat file data systems, spreadsheet systems, and the like. These systems are used to store, manipulate, and display countless forms of information, including accounting or other financial information, scientific or technical information, corporate or company data, name, address and phone number data, and statistical data. do. Many formats and data structures have been developed and this situation has both desirable and undesirable consequences. On the positive side, by having a variety of different types of systems, it can be optimized for different purposes (e.g., optimized for data entry or storage against the speed or flexibility of data analysis and reporting, or for corporate data). It may be possible to provide different systems that provide a user interface or other characteristic that may appeal to personal or corporate preferences. However, the growth of such information systems provides an inherent barrier in situations where it becomes useful to access information in two or more systems, for example to integrate or combine information. Examples of such situations include: (1) an accountant who wants to generate a standardized report, but each has a plurality of customers who manage the accounting data with different types of data sources; (2) a legal entity that wants to produce a uniform report, but where different departments have different legal entities or several departments using financial software; (3) a legal entity that wants to generate a uniform report but manages its accounting information in a database (or other data source) of the first type or brand, and manages its corporate information in a second type of database; (4) While studying common problems, there are groups of scientists, each of whom stores and accesses data in different types or brands of databases or other data sources. After understanding this specification, readers will understand that there are more examples. Furthermore, in some situations, even when all the desired information is stored in a single data source or a single data file, it provides a way to access the data, for example, to provide uniform and / or improved data analysis and reporting. It may be desirable to.

이와 같은 상황은 정보를 편성하는 방식에서의 차이 및 데이터 소스의 형태에서의 차이를 포함하여, 많은 이유로 인해 어려움을 부여한다. 몇몇 상황에서는, 동일한 데이터베이스 소프트웨어가 사용되는 경우 조차도, 유사한 카테고리의 정보가 상이한 방식으로 편성될 수도 있다. 예를 들어, 제1 데이터베이스 소프트웨어 패키지를 사용하는 제1 사례에서는, 회사의 모든 직원의 성명은 제1 테이블 또는 리스트에 저장되고, 모든 주소는 제2 테이블 또는 리스트에 저장되고, 모든 전화번호는 제3 테이블 또는 리스트에 저장되고, 어떤 성명이 어떤 주소 및 어떤 전화번호와 연관되어 있는지를 나타내기 위한 포인터 또는 링크가 저장되도록, 사용자가 회사 직원의 기록을 편성할 수도 있다. 그러나, 동일한 소프트웨어를 사용하는 다른 사례에서는, 직원 정보를 편성하는 다른 사람이 한 테이블 내의 레코드으로부터 다른 테이블의 레코드으로의 링크 또는 포인터 없이, 정보의 각각의 라인 또는 "레코드(record)"가 성명, 주소 및 전화번호를 포함하는 단일의 테이블을 제공할 수도 있다. This situation presents difficulties for many reasons, including differences in the way information is organized and differences in the form of data sources. In some situations, even if the same database software is used, similar categories of information may be organized in different ways. For example, in the first case using the first database software package, the names of all employees of the company are stored in the first table or list, all addresses are stored in the second table or list, and all telephone numbers are 3 A user may organize a company employee's record so that a pointer or link is stored in a table or list and indicates which name is associated with which address and which phone number. However, in other instances of using the same software, each line or "record" of information may appear in a statement, with or without a link or pointer from a record in one table to a record in another table by another person organizing employee information. You can also provide a single table containing addresses and phone numbers.

또한, 상이한 형태의 데이터 소스는 상이한 구조 및/또는 상이한 데이터 저장 포맷 또는 방식을 가질 수 있다. 예를 들어, 몇몇 데이터베이스 패키지는 계층적 방식(예, 트리 방식)으로 편성되지만, 다른 것은 (행과 열의 2차원 테이블에 모형화된) 관계적 데이터베이스로서 편성될 수도 있다. 또한, "플랫 파일" 형식에 스프레드시트로서 데이터를 저장하는 것과 같이, 엄밀하게 말하면, 데이터베이스 형식이 아닌 형식으로 정보가 저장될 수도 있다. 또한, 상이한 형태의 데이터 소스가 다양한 포맷으로 데이터를 저장할 수도 있다. 예를 들어, 몇몇 데이터베이스 제품은 각각의 테이블, 각각의 리포트 포맷 및 각각의 질의(query)를 하드 디스크와 같은 기억장치에 독립된 파일로서 저장하는 반면에, 다른 소프트웨어는 모든 테이블, 관계, 질의, 리포트 포맷 등을 단일 파일에 저장할 수도 있다. 몇몇의 제품은 각각의 레코드 및/또는 필드를 고정 길이 데이터로서 및/또는 파일 내의 고정 위치에 저장할 수도 있고, 반면에, 다른 제품은 한 레코드와 그 다음 레코드 사이 또는 한 레코드 내의 한 필드와 그 다음 필드 사이를 구별하기 위해 구분문자(delimiters)를 사용할 수도 있다. 2개의 상이한 소프트웨어 제품이 특정 형태의 정보를 소정의 위치에 저장하고 있는 경우 조차도, 이러한 위치가 상이한 소프트웨어 제품에 따라 서로 다를 수도 있다. 또한, 한 제품에서는 아스키(ASCII) 인코딩을 이용하고, 다른 제품에서는 복수-언어(multi-lingual)(멀티-바이트) 문자를 이용하는 것과 같이, 상이한 소프트웨어 제품에서 데이터가 서로 다르게 인코드될 수도 있다. 몇몇의 경우에는, 데이터가 압축 및/또는 암호화될 수도 있다.In addition, different types of data sources may have different structures and / or different data storage formats or manners. For example, some database packages may be organized in a hierarchical manner (eg, tree), while others may be organized as relational databases (modeled in two-dimensional tables of rows and columns). Also, strictly as if storing data as a spreadsheet in a "flat file" format, the information may be stored in a format other than a database format. In addition, different types of data sources may store data in various formats. For example, some database products store each table, each report format, and each query as independent files in storage, such as a hard disk, while other software stores all tables, relationships, queries, reports. You can also save the format in a single file. Some products may store each record and / or field as fixed length data and / or at a fixed location in the file, while other products may store one field and the next between one record and the next, or within a record. You can also use delimiters to distinguish between fields. Even if two different software products store certain types of information in certain locations, these locations may be different for different software products. In addition, data may be encoded differently in different software products, such as using ASCII encoding in one product and multi-lingual (multi-byte) characters in another. In some cases, data may be compressed and / or encrypted.

데이터 형태 사이에서의 폭넓은 변화의 관점에서 보면, 종래에는, (예를 들어, 리포트 및 분석을 표준화하고 2개 또는 그 이상의 데이터베이스로부터의 정보를 조합 또는 통합하기 위해) 저장된 정보에 억세스하고자 할 때, 컨설턴트 또는 다른 전문가는 그 구조, 관계 데이터 저장 포맷, 데이터베이스 내의 데이터의 편성 등을 이해하기 위해 개별적으로 또는 "수동적인 방식으로(manually)" 각각의 "소스" 데이터 파일 또는 데이터베이스를 분석했다. 다음에, 전문가는 원하는 억세스, 통합 또는 조합을 실현하기 위해 소스 데이터 파일 또는 데이터베이스 내의 데이터의 임포트(import) 또는 질의하는(querying) 소정의 방식을 구성하게 된다. 비록 이러한 접근방법이 실시가능하지만, 이것은 사람의 분석을 필요로 하기 때문에 노동-집약적이며, 또한, 전문가 또는 컨설턴트가 분석 작업을 완료하는데 비교적 긴 시간이 요구되고, 때로는 수행될 억세스, 통합 또는 조합을 위해 수일 또는 수주일이 요구되기 때문에 시간-소비적이다.In view of the wide variations between data types, conventionally, when trying to access stored information (eg, to standardize reports and analyzes and to combine or consolidate information from two or more databases). , Consultants or other experts analyzed each "source" data file or database individually or "manually" to understand its structure, relational data storage format, organization of data in the database, and the like. The expert will then configure some way to import or query the data in the source data file or database to achieve the desired access, integration or combination. Although this approach is feasible, it is labor-intensive because it requires human analysis, and also requires a relatively long time for an expert or consultant to complete the analytical task, sometimes requiring access, integration or combination to be performed. It is time-consuming because several days or weeks are required.

따라서, 사람의 분석에 대한 필요성을 없애면서, 다양한 포맷 또는 형식으로되거나 또는 다양한 방식으로 편성된 정보가 억세스, 조합 및/또는 통합될 수 있는 시스템을 제공하고, 따라서, 적어도 부분적으로 자동화되고, 바람직하게는 이전의 방법 보다 덜 노동-집약적이고 덜 시간-소비적인 시스템을 제공하는 것이 유용할 것이다.Thus, providing a system in which information in various formats or formats, or organized in various ways, can be accessed, combined, and / or integrated, thus eliminating the need for human analysis, and thus, at least partially automated, preferably For example, it would be useful to provide a less labor-intensive and less time-consuming system than the previous method.

도1은 플랫 파일 데이터 저장의 예를 도시하는 개략도.1 is a schematic diagram showing an example of flat file data storage.

도2는 도1에 도시된 데이터 저장과 관련하여 사용될 수 있는 형태의 디렉토리 구조를 도시하는 도면.2 illustrates a directory structure in a form that can be used in connection with the data storage shown in FIG.

도3a 내지 도3c는 도1에 도시된 데이터 저장과 관련하여 사용될 수 있는 데이터 저장 포맷의 예를 도시하는 도면.3A-3C illustrate examples of data storage formats that can be used in connection with the data storage shown in FIG.

도4a 내지 도4f는 관계 데이터베이스의 테이블에 저장된 데이터의 예를 도시하는 개략도.4A-4F are schematic diagrams showing examples of data stored in tables in a relational database.

도5는 도4a 내지 도4f에 도시된 데이터 저장과 관련하여 사용될 수 있는 형태의 디렉토리 구조를 도시하는 도면.Fig. 5 shows a directory structure in a form that can be used in connection with the data storage shown in Figs. 4A to 4F.

도6은 플랫 파일 데이터 저장의 예를 도시하는 개략도.Fig. 6 is a schematic diagram showing an example of flat file data storage.

도7a 내지 도7d는 관계 데이터베이스의 테이블에 저장된 데이터의 개략도.7A-7D are schematic diagrams of data stored in tables in a relational database.

도8은 본 발명의 일실시예에 따른 정보 검색을 위한 시스템의 블록도.8 is a block diagram of a system for retrieving information according to an embodiment of the present invention.

도9는 본 발명의 일실시예에 따른 펑션 모듈의 내용의 개략도.9 is a schematic diagram of the contents of a function module according to an embodiment of the present invention.

도10은 본 발명의 일실시예에 따른 정보 검색을 위한 프로세스의 흐름도.10 is a flow diagram of a process for retrieving information in accordance with one embodiment of the present invention.

도11a 및 도11b는 본 발명의 일실시예에 따른, 디렉토리를 선택 또는 탐색하기 위한 의사코드(pseudocode) 절차를 도시하는 도면.11A and 11B illustrate a pseudocode procedure for selecting or searching a directory, in accordance with an embodiment of the present invention.

도12는 본 발명의 일실시예에 따라 제공되는 데이터베이스(808)의 테이블에 저장된 데이터의 개략도.Figure 12 is a schematic diagram of data stored in a table of a database 808 provided in accordance with one embodiment of the present invention.

발명의 요약Summary of the Invention

본 발명은 예를 들어, 2개의 상이한 정보 저장 시스템 내의 정보에 억세스하고 그 정보의 통합 및/또는 조합을 실현하기 위해 저장된 정보에 대한 억세스를 수행하는 시스템에 관한 것이다. 바람직하게는, 본 발명의 일실시예에서, 관련된 일부 또는 모든 분석이 (사람의 분석을 필요로 하지 않고) 적절하게 프로그램된 컴퓨터를 이용하여 자동적으로 수행된다. 바람직하게는, 이 시스템은 유연성이 있는데, 그 이유는 그것이 본래부터 데이터 포맷에 제한되지 않고, 사실상 어떠한 컴퓨터-판독가능 정보 소스로부터도 데이터를 얻도록 구성될 수 있기 때문이다. 또한, 바람직하게는, 추가적인 형태, 포맷 또는 편성의 데이터에 억세스할 수 있도록 구성요소가 추가될 수 있기 때문에, 이 시스템은 확장가능하다(더욱 바람직하게는, 모듈 방식으로 확장가능하다). 본 발명의 일실시예에서, 데이터의 억세스, 통합 또는조합은 데이터 분석의 확장(enhancement)을 수반하며, 원래의 데이터 소스에 없거나 사용되지 않는 형태의 데이터 분석 및/또는 리포팅을 제공한다. 바람직하게는, 이 시스템은 수가지 형태의 데이터 소스를 통한 데이터 분석 및/또는 리포팅의 표준화를 제공하기 위해 사용될 수 있다. 본 발명의 일실시예에서, 이 시스템은 (예를 들어, 텍스트 인식, 인공지능 및/또는 전문가(expert) 시스템을 이용함으로써) 원하는 결과를 실현하기 위해, 소스 데이터 파일 또는 데이터베이스의 내용 뿐만 아니라 구조에 관한 정보도 이용한다. 일실시예에서, 이 시스템은 데이터가 분석 또는 리포팅에 이용가능하게 되는 방식을 적어도 부분적으로 제어하기 위해 이와 같은 정보를 이용한다. 일실시예에서, 이 시스템은 이와 같은 분석 및 리포트를 제공하는데 있어 이와 같은 정보를 이용한다. The present invention relates to a system for performing access to stored information, for example, to access information in two different information storage systems and to realize integration and / or combination of the information. Preferably, in one embodiment of the present invention, some or all of the relevant analyzes are performed automatically using a suitably programmed computer (without requiring human analysis). Preferably, this system is flexible because it is not inherently limited to the data format and can be configured to obtain data from virtually any computer-readable information source. Also, the system is extensible (more preferably, modularly extensible) because components may be added to allow access to additional forms, formats or organizational data. In one embodiment of the present invention, accessing, integrating or combining the data involves an enhancement of the data analysis and provides data analysis and / or reporting in a form not present or used in the original data source. Preferably, this system can be used to provide standardization of data analysis and / or reporting through several types of data sources. In one embodiment of the invention, the system is structured as well as the contents of the source data file or database to achieve the desired result (e.g., by using a text recognition, artificial intelligence and / or expert system). Also use information about. In one embodiment, the system uses this information to at least partially control how the data is made available for analysis or reporting. In one embodiment, the system uses this information to provide such analysis and reports.

2개 또는 그 이상의 소스 데이터 형태 중 어느 형태로도 이루어질 수 있는 데이터 소스에 포함된 정보에 관한 출력 또는 리포트의 생성이 표준화된 또는 균일한 방식으로 제공된다. 예를 들어, 새로운 데이터베이스를 정의하는데 사용하기 위해, 다양한 데이터 소스의 구조적 특성 또는 다른 특성을 식별하기 위한 프로그래밍을 포함하는, 상이한 형태의 소스 데이터에 특정한 다수의 드라이버가 제공된다. 바람직하게는, 새로운 데이터베이스는 고도의 유연성 및/또는 빠른 출력 또는 리포팅을 허용하도록 구성되거나, 또는 그렇지 않으면, 리포팅 목적을 위해 최적화된다. 일실시예에서, 본 발명은 하나 또는 그 이상의 데이터 소스로부터 하나 또는 그 이상의 균일한 데이터베이스로의 변환을 포함하며, 바람직하게는, 데이터를 편성하기 위한 하나 또는 그 이상의 주요(key) 카테고리를 생성하는 것을 포함하고, 선택적으로는, 카테고리 그룹화(groupings) 또는 롤업(rollups) 및 추가적인 데이터 또는 선택적인 레퍼런스를 생성하는 것을 포함한다.The generation of an output or report on the information contained in the data source, which may be in any of two or more types of source data, is provided in a standardized or uniform manner. For example, a number of drivers are provided that are specific to different types of source data, including programming to identify structural or other characteristics of various data sources for use in defining new databases. Preferably, the new database is configured to allow a high degree of flexibility and / or rapid output or reporting, or otherwise is optimized for reporting purposes. In one embodiment, the present invention includes the conversion from one or more data sources to one or more uniform databases, preferably generating one or more key categories for organizing the data. And optionally, category groupings or rollups, and generating additional data or optional references.

일실시예에서, 본 발명은 이전의 회계 또는 다른 소프트웨어에 의해 생성된 데이터 파일과 같은 기존의 데이터 파일로부터 변환된 회계 또는 다른 데이터에 근거하여 데이터베이스를 생성하거나 또는 점유(populate)한다.In one embodiment, the present invention creates or populates a database based on accounting or other data converted from existing data files, such as data files generated by previous accounting or other software.

본 발명의 일실시예에서, 이 시스템은 예를 들어, 갱신되어야 하는 데이터의 하나 또는 그 이상의 프로파일을 저장하고, 및/또는 미리정해진 시간 또는 간격으로 갱신 절차를 자동적으로 실행하도록 스케쥴을 생성 또는 정의함으로써, 새로운 데이터베이스의 일부 또는 전부를 갱신하는 것을 용이하게 하도록 구성된다.In one embodiment of the invention, the system creates or defines a schedule, for example, to store one or more profiles of data to be updated, and / or to automatically execute the update procedure at a predetermined time or interval. Thereby facilitating updating part or all of the new database.

본 발명의 일실시예에서, 예를 들어, 데이터의 소정의 필드 또는 파라미터에 대해 하나 이상의 값이 발견될 때 뷰(view)를 생성하는 것과 같이, 데이터의 바람직한 뷰를 자동적으로 식별하는 확장이 제공된다.In one embodiment of the present invention, an extension is provided that automatically identifies a preferred view of data, such as generating a view when one or more values are found for a given field or parameter of the data. do.

바람직하게는, 잠재적인 에러 또는 문제점을 검출하기 위해, 하나 또는 그 이상의 검증 또는 감사(audit) 툴이 제공된다.  Preferably, one or more verification or audit tools are provided to detect potential errors or problems.

본 발명의 관점에 관해 설명하기 전에, 본 발명의 이해를 촉진하기 위해, 정보를 저장하는 다양한 방식의 예를 제공하는 것이 유용할 것이다. 이것은 회계 정보의 예 및 과학 또는 기술 정보의 예를 포함하여 몇가지 예를 제공함으로써 실현된다. 다음의 테이블1은 2개의 다른 법인체에 의해 저장될 수 있는 데이터 형태의 비교를 제공한다. 테이블1은 2개의 법인체에 대한 회계 또는 다른 정보의 개념적인 편성을 나타내고자 하는 것이며, (비록 원하는 경우에 그렇게 될 수 있다 하더라도) 반드시 데이터베이스에 저장되게 되는 정보는 아니다. Before describing the aspects of the invention, it will be useful to provide examples of various ways of storing information to facilitate understanding of the invention. This is accomplished by providing several examples, including examples of accounting information and examples of scientific or technical information. Table 1 below provides a comparison of the data types that can be stored by two different legal entities. Table 1 is intended to represent the conceptual organization of accounting or other information for two legal entities, and is not necessarily information that will be stored in the database (although it may be so if desired).

테이블 1 : 회계 편성의 예Table 1: Example of Accounting

법인체 #1 법인체 #2            Corporation # 1 Corporation # 2

Account(계정)Account Account(계정)Account Cash(현금)      Cash Cash(현금)      Cash Accounts Payable(지불계정)      Accounts Payable Bank #1(은행 #1)            Bank # 1 Accounts Receivable(수취계정)      Accounts Receivable Bank #2(은행 #2)            Bank # 2 Bank #3(은행 #3)            Bank # 3 Savings(보통예금)                Savings Checking(당좌예금)                Checking Accounts Payable(지불계정)      Accounts Payable Parts(파트)             Parts Consultants(컨설턴트)             Consultants Accounts Receivable(수취계정)      Accounts Receivable Sales(판매)             Sales Interest(이자)             Interest

법인체 #1 법인체 #2             Corporation # 1 Corporation # 2

Employee(피고용인)Employee Employee(피고용인)Employee Salesman #1(판매원 #1)        Salesman # 1 (Salesman # 1) Sales(판매)      Sales Salesman #2(판매원 #2)        Salesman # 2 (Salesman # 2) Salesman #1(판매원 #1)          Salesman # 1 (Salesman # 1) Salesman #2(판매원 #2)          Salesman # 2 (Salesman # 2) Research(연구)      Research Researcher #1(연구원 #1)          Researcher # 1 Researcher #2(연구원 #2)          Researcher # 2 (Researcher # 2) Project(프로젝트)Project Project(프로젝트)Project Research(연구)        Research Research(연구)      Research Sales(판매)        Sales Chemical(화학)          Chemical Biomedical(생물의학)          Biomedical Sales(판매)      Sales Old Products(구제품)          Old Products New Lines(신라인)          New Lines Product(제품)Product Product(제품)Product Product #1(제품 #1)        Product # 1 Old Product Lines(구제품라인)     Old Product Lines Product #2(제품 #2)        Product # 2 Line #1(라인 #1)          Line # 1 Product 1(제품 1)               Product 1 Product 2(제품 2)               Product 2 Line #2(라인 #2)          Line # 2 Product 3(제품 3)               Product 3 Product 4(제품 4)               Product 4 New Product Lines(신제품라인)     New Product Lines Line #3(라인 #3)          Line # 3 Product 5(제품 5)               Product 5 Product 6(제품 6)               Product 6 Line #4(라인 #4)          Line # 4 Product 7(제품 7)               Product 7 Product 8(제품 8)               Product 8 Subsidiary(자회사)Subsidiary Subsidiary #1(자회사 #1)     Subsidiary # 1 (subsidiary # 1) Subsidiary #2(자회사 #2)     Subsidiary # 2 (subsidiary # 2)

테이블1의 첫 번째 예에서, 법인체 #1은 계정(account) 정보, 피고용인(employee) 정보, 프로젝트(project) 정보, 제품(product) 정보를 보유하고 있으며, 따라서, 4개의 계정 부분을 간고 있다. 법인체 #1의 계정 정보는 단지 3개의 구성요소, 즉, 현금(cash), 지불 계정(account payable) 및 수취 계정(account receivable)을 포함하고 있다. 이 법인체는 2가지 형태의 프로젝트(연구 및 판매)에 의한 그 판매원. 트랙 정보의 리스트를 보존하고, 그 제품의 리스트를 보존한다. 테이블1의 두 번째 예는 (여전히 간략화되어 있지만) 약간 긴 예이다. 본 예에서, 계정은 계층적으로 복수의 구성요소를 갖고 있다. 비록 법인체 #2의 계정이 현금, 지불 계정 및 수취 계정의 카테고리를 갖고 있지만, 이들 각각의 카테고리는 서브카테고리를 갖고 있으며, 이들 서브카테고리의 일부는 더욱 세분된 부문을 갖고 있다. 이와 유사하게, 피고용인, 프로젝트 및 제품 정보는 수개의 카테고리 및 서브카테고리로 나누어져 있으며, 법인체 #2는 자회사와 같은, 추적되는 추가적인 항목을 갖고 있다.In the first example of Table 1, legal entity # 1 holds account information, employee information, project information, and product information, thus covering four account parts. Incorporation # 1's account information includes only three components: cash, account payable and account receivable. This legal entity is its salesperson for two types of projects (research and sales) . The list of track information is saved, and the list of products is saved. The second example in Table 1 is a bit longer (although still simplified). In this example, the account has a plurality of components hierarchically. Although entity # 2's account has categories of cash, paying accounts, and receiving accounts, each of these categories has subcategories, and some of these subcategories have more subdivisions. Similarly, employee, project, and product information is divided into several categories and subcategories, and entity # 2 has additional items being tracked, such as subsidiaries.

테이블1은 데이터 소스 및/또는 데이터 저장 포맷 중에서의 차이를 고려하기 전에도, 법인체의 구조 및/또는 그 법인체가 그 정보를 편성하기 위해 선택하는 방식이 한 시스템과 다른 시스템 사이에 차이를 유발하게 된다는 것을 예시하고 있다. 예를 들어, 만일 한 계정이 고객으로서 법인체 #1 및 법인체 #2를 갖고 있고, 이들 2개의 법인체에 대해 균일한 또는 표준화된 리포팅 및 분석 시스템을 사용하길 원하는 경우에는, 법인체 #1 및 법인체 #2가 동일한 데이터베이스 소프트웨어를 사용하고 있고 그 소프트웨어 내의 회계 정보를 유사한 방식으로 편성하였다 할지라도, 그렇게 하는데 있어 상당한 어려움이 있게 된다. 그러므로, 이전의 방법을 이용하면, 법인체의 데이터베이스에 근거하여 2개 법인체에 대한 균일한 또는 표준화된 리포팅 및 분석을 제공하기 위해서는, 통상적으로 테이블1의 정보에 대한 사람의 분석 및 이해를 필요로 한다.Table 1 suggests that even before considering differences among data sources and / or data storage formats, the structure of a corporation and / or the manner in which it chooses to organize its information will cause differences between one system and another. It illustrates that. For example, if an account has corporation # 1 and corporation # 2 as customers, and wants to use a uniform or standardized reporting and analysis system for these two corporations, corporation # 1 and corporation # 2 Although using the same database software and organizing the accounting information in the software in a similar manner, there is considerable difficulty in doing so. Therefore, using the previous method, in order to provide uniform or standardized reporting and analysis of two legal entities based on the legal entity's database, it usually requires human analysis and understanding of the information in Table 1. .

여전히 회계 정보를 고려하는 것과 관련하여, 법인체 #1 및 법인체 #2의 회계 정보를 저장하기 위해, 수가지 형태의 정보 저장이 사용될 수 있다. 예를 들어, 하나 또는 그 이상의 플랫 파일로서 정보가 저장될 수 있다. 적어도 일부의 용법에 따르면, "플랫 파일" 정보 저장은 진정한 데이터베이스 시스템이 아니라는 것을 주목하자. 그럼에도 불구하고, 본 발명은 적어도 일부의 실시예에서, 플랫 파일 데이터 뿐만 아니라 다른 데이터베이스 및 비-데이터베이스 저장 방법도 수용할 수 있다.In connection with still considering accounting information, several forms of information storage can be used to store accounting information of corporation # 1 and corporation # 2. For example, the information may be stored as one or more flat files. Note that, according to at least some usages, storing "flat file" information is not a true database system. Nevertheless, the present invention may, in at least some embodiments, accommodate not only flat file data but also other databases and non-database storage methods.

도1은 테이블1의 법인체 #2에 대한 정보를 저장하기 위해 다수의 플랫 파일이 어떻게 사용될 수 있는가를 도시하는 개략도이다. 비록 도1이 정보가 다수의 서류 시트 상의 서식으로 되어 있는 것처럼 도시하고 있지만, 데이터는 실제적으로 예를 들어, 후술되는 바와 같이, 하드 디스크와 같은 컴퓨터 판독가능 매체에 저장되게 된다. 도1의 포맷은 다수의 파일(101a-101f)로 편성된 데이터의 논리적인 구조를 도시하고자한 것이며, 여기서, 각각의 파일은 도1에 타이틀 또는 헤더 정보(104a,104b)로서 도시된 파일 식별 정보(104)와 도1에 정보 라인(106a,106b,106c)으로서 도시된 다수의 레코드를 포함하고, 각각의 레코드는 (도1에서 칼럼(108a,108b,108c,108d)으로 편성된) 다수의 필드를 갖고 있다. 프로그래밍 기술 분야에 통상의 지식을 가진자에게는, 도1에 도시된 논리적인 로우 및 칼럼 구조를 갖도록 또는 반영하도록 데이터를 저장하고 억세스하기 위한 방법 및 장치가 잘 알려져 있다. 본 발명은 다수의 플랫 파일 정보 저장 프로그램과 관련하여 사용될 수 있다. 이와 같은 정보 저장 프로그램의 예로는, "Simply Accounting(상표)" 및 "MAS-90(상표)"라는 상표명으로 판매되는 프로그램이 있다.1 is a schematic diagram showing how a plurality of flat files can be used to store information for corporation # 2 in Table 1. FIG. Although FIG. 1 illustrates the information as being formatted on multiple document sheets, the data is actually stored on a computer readable medium such as a hard disk, for example, as described below. The format of FIG. 1 is intended to illustrate the logical structure of data organized into a number of files 101a-101f, where each file is a file identification shown as title or header information 104a, 104b in FIG. Information 104 and a number of records shown as information lines 106a, 106b, 106c in FIG. 1, each record (organized in columns 108a, 108b, 108c, 108d in FIG. 1); Has a field of Those skilled in the art of programming are well known methods and apparatus for storing and accessing data to have or reflect the logical row and column structures shown in FIG. The present invention can be used in connection with a number of flat file information storage programs. Examples of such information storage programs are programs sold under the trade names " Simply Accounting " and " MAS-90 ".

도1에 도시된 논리적인 구조로 편성된 데이터는 다수의 상이한 포맷으로 저장될 수 있다. 예를 들어, 일실시예에서, 각각의 플랫 파일(101a-101f) 내의 데이터는 개인용 컴퓨터의 하드 디스크 상에 독립된 파일로서 저장된다. 도2는 이와 같은 파일을 저장하기 위해 사용될 수 있는 디렉토리/파일 구조를 도시하고 있으며, 여기서, 도1에 도시된 모든 파일은 단일 서브디렉토리에 저장되어 있다. 이 기술분야에 통상의 지식을 가진자에게 잘 알려진 바와 같이, 비록 도2에 도시된 바와 같은 디렉토리 하이어라키로 편성되었다 할지라도, 다양한 파일이 하드 디스크 상에 다수의 독립된 위치에 물리적으로 저장될 수 있다. 한 파일 내에 데이터를 저장하기 위해 다수의 포맷이 사용될 수 있으며, 그 예는 도3a 내지 도3c에 도시되어 있다. 도3a의 예에서, 파일은 헤더 정보를 포함하고 있으며, 그 뒤로 제1 레코드(106a), 제2 레코드(106b) 등의 저장이 뒤따른다. 도3a의 예에서는, 각각의 레코드(106a,106b)가 동일한 길이(304)르 갖고 있는(즉, 고정된 수의 비트를 차지하는) 고정 길이 데이터 포맷이 사용된다. 도3a의 실시예에서, 각각의 레코드 내의 각 필드도 역시 고정 길이(308a-308d)를 갖고 있다. Data organized in the logical structure shown in FIG. 1 can be stored in a number of different formats. For example, in one embodiment, the data in each flat file 101a-101f is stored as a separate file on the hard disk of the personal computer. Figure 2 shows a directory / file structure that can be used to store such files, where all files shown in Figure 1 are stored in a single subdirectory. As is well known to those skilled in the art, although organized into a directory hierarchy as shown in FIG. 2, various files can be physically stored in a number of independent locations on the hard disk. . Multiple formats can be used to store data in one file, examples of which are shown in FIGS. 3A-3C. In the example of FIG. 3A, the file contains header information, followed by storage of first record 106a, second record 106b, and so forth. In the example of FIG. 3A, a fixed length data format is used in which each record 106a, 106b has the same length 304 (ie, occupies a fixed number of bits). In the embodiment of Figure 3A, each field in each record also has a fixed length 308a-308d.

도3b는 로우 순서가 아닌 컬럼 순서로 데이터가 저장되어 있는(먼저 모든 날짜가 연속되고, 그 다음에 종류가 연속되는) 다른 고정 길이 데이터 저장 방법을 도시하고 있다. 도3b의 실시예에서, 원하는 데이터를 배치하는데 도움을 주기 위해, 예를 들어, 헤더의 일부로서 레코드 수의 표시(322)를 저장하는 것이 유용할 수도 있다. 예를 들어, 도3a 또는 도3b에 도시된 바와 같이 고정 길이 시스템에서는, 데이터의 개시점으로부터 소정의 거리에(소정의 비트수에) 데이터의 특정 부분이 배치되게 된다. 예를 들어, 도3a에서, 만일 헤더(302)가 4 바이트의 길이를 갖고, 레코드 길이(304)가 8 바이트라는 것을 알고 있다면, 제1 레코드(106a)에 대한 데이터 정보는 반드시 바이트 번호 5에서 시작되고, 제2 레코드(106b)에 대한 데이터 정보는 반드시 바이트 번호 13에서 시작된다는 것을 알게 된다. Figure 3b shows another fixed length data storage method in which data is stored in column order rather than row order (first all dates are consecutive, then types are consecutive). In the embodiment of FIG. 3B, it may be useful to store an indication of the number of records 322 as part of the header, for example, to help locate the desired data. For example, in a fixed length system, as shown in Fig. 3A or 3B, a specific portion of data is arranged at a predetermined distance (at a predetermined number of bits) from the start point of the data. For example, in FIG. 3A, if the header 302 has a length of 4 bytes and the record length 304 is 8 bytes, then the data information for the first record 106a must be at byte number 5. And the data information for the second record 106b necessarily begins at byte number 13.

도3c는 고정 길이 필드가 아닌 구분된(delimited) 필드의 데이터 저장을 도시하고 있다. 구분된 포맷에서는, 레코드 및/또는 필드의 종료점 또는 개시점을 구분하기 위해, 데이터를 저장하기 위해 사용되는 패턴과는 다른 비트 패턴인, 특수한 심볼이 사용된다. 도3c에 도시된 실시예에서는, 2개의 상이한 특수 심볼이 사용되며, 하나는 레코드의 개시점을 구분하고, 다른 하나는 필드의 개시점을 구분하기위한 것이다. 이들 심볼은 도3c에서 콜론 과 세미콜론으로서 각각 표시되어 있으며, 이것은 어떤 비트 패턴 또는 심볼도 될 수 있다. 도3c의 데이터 포맷에서, 제1 레코드 심볼(324a) 다음에 오고, 제1의 새로운 필드 심볼(324b) 이전에 오는 정보로서 제1 레코드(106a)에 대한 데이터 정보를 지시하는 정보를 식별하는 것이 가능하다. 제2 레코드(106b)로부터의 데이터 정보는 제2의 새로운 레코드 심볼(326a) 다음에 오고, 그 다음의 새로운 필드 심볼(326b) 이전에 오는 정보가 된다. 정보를 저장하기 위한 많은 다른 포맷도 가능하다. 많은 데이터 저장 포맷이 상이한 형태의 정보 저장 시스템 내의 데이터를 억세스, 통합 및 조합하는데 있어 또다른 문제를 제시한다는 것은 도3a 내지 도3c로부터 명백하르 것이다. 이전에는, (데이터베이스 관리 시스템 또는 저장된 정보를 판독하기 위한 다른 소프트웨어를 이용하지 않고) 직접 정보에 억세스하길 원하는 사람은, 몇몇의 경우에는 저장된 정보의 예를 분석함으로써 획득될 수 있는 것과 같은, 데이터 저장 포맷에 대한 지식을 필요로 하였다. 그러므로, 테이블1의 법인체 #1 및 법인체 #2 모두에 대해 저장된 정보에 억세스하길 원하는 회계사의 필요성을 수용하는 것은, 데이터의 논리적인 편성(도1) 및 그 논리적인 디렉토리 구조(도2)에 관한 정보 뿐만 아니라 데이터 저장 포맷(도3a-도3c)에 관한 정보도 필요로 하게된다.Figure 3c illustrates the storage of data in delimited fields rather than fixed length fields. In the delimited format, special symbols are used, which are bit patterns different from the patterns used to store data, to distinguish the end or start points of records and / or fields. In the embodiment shown in Fig. 3C, two different special symbols are used, one to distinguish the starting point of the record and the other to distinguish the starting point of the field. These symbols are denoted as colon and semicolon respectively in FIG. 3C, which can be any bit pattern or symbol. In the data format of FIG. 3C, identifying information indicating the data information for the first record 106a as information that follows the first record symbol 324a and before the first new field symbol 324b. It is possible. The data information from the second record 106b is the information that follows the second new record symbol 326a and comes before the next new field symbol 326b. Many other formats for storing information are also possible. It will be apparent from FIGS. 3A-3C that many data storage formats present another problem in accessing, integrating and combining data in different types of information storage systems. Previously, a person wanting to access information directly (without using a database management system or other software to read stored information) may store data, such as in some cases that may be obtained by analyzing an example of stored information. Requires knowledge of the format. Therefore, accommodating the need of an accountant who wants to access the stored information for both corporation # 1 and corporation # 2 in Table 1 relates to the logical organization of data (FIG. 1) and its logical directory structure (FIG. 2). In addition to the information, information regarding the data storage format (Figs. 3A-3C) is required.

플랫 파일 데이터로서 정보를 저장하는 것에 더하여, 많은 다른 가능성이 있다. 도4a 내지 도4f는 관계 데이터베이스와 관련하여 한 가지 가능한 정보 편성을 도시하고 있다. 도4a 내지 도4f의 예에서, 다수의 레코드(406a-406d)를 가진 제1 트랜잭션 테이블(402)이 저장되어 있다. 도4a에 도시된 레코드는 몇가지 관점에서 도1에 도시된 것과 유사하며, 데이터 필드, 종류 필드, 수량 필드 및 총계 필드를 포함한다. 도4a의 예에서는, 각각의 레코드에 대해 추가적인 인덱스 필드(408)가 제공되어 있다. 도4a의 예에서 트랜잭션 테이블은 도1에 도시된 형태의 헤더 정보(104a)를 포함하고 있지 않으며, (도1의 실시예의 복수의 테이블(101a-101f)이 아닌) 단일의 트랜잭션 테이블만이 제공되어 있다. 도4a 내지 도4f에 도시된 관계 데이터베이스에는, 테이블 1에 도시된 편성을 반영할 수 있는 추가적인 테이블이 제공되어 있다. 예를 들어, 회계 테이블(412)은 테이블 1에 정의된 모든 카테고리의 리스트를 포함하고 있으며, 인덱스(414)는 각각의 계정과 연관되어 있다. 이와 유사하게, 피고용인 테이블(416)은 연관된 인덱스(418)를 각각 갖고 있는, 테이블 1의 피고용인 성명을 포함하고 있다. 또한, 도4c에는, 각각의 성명에 대해, 그 사람이 (테이블 1에 도시된 하이어라키를 반영하는) 판매집단(sales force) 및 연구집단(research force)과 관련되어 있는지 여부에 대한 표시가 있다. 또한, 피고용인 위치를 나타내기 위한 필드가 포함되어 있다. 테이블 1의 편성을 반영하는, 법인체 #2의 다양한 프로젝트, 제품 및 자회사를 기입하기 위해 추가적인 테이블(도시 안됨)이 제공될 수도 있다.In addition to storing information as flat file data, there are many other possibilities. 4A-4F illustrate one possible information organization in relation to the relational database. In the example of Figures 4A-4F, a first transaction table 402 having a plurality of records 406a-406d is stored. The record shown in FIG. 4A is similar to that shown in FIG. 1 in some respects, and includes a data field, a type field, a quantity field, and a total field. In the example of FIG. 4A, an additional index field 408 is provided for each record. In the example of FIG. 4A, the transaction table does not include the header information 104a of the type shown in FIG. 1, and only a single transaction table (not the plurality of tables 101a-101f of the embodiment of FIG. 1) is provided. It is. In the relational database shown in Figs. 4A to 4F, an additional table that can reflect the organization shown in Table 1 is provided. For example, accounting table 412 contains a list of all categories defined in table 1, and index 414 is associated with each account. Similarly, employee table 416 includes the employee name of Table 1, each having an associated index 418. Also in FIG. 4C, for each statement, there is an indication as to whether the person is associated with a sales force and a research force (which reflects the hierarchy shown in Table 1). It also contains a field to indicate the employee's location. Additional tables (not shown) may be provided to list the various projects, products, and subsidiaries of legal entity # 2, reflecting the organization of Table 1.

도4d는 트랜잭션 테이블(402)의 각각의 레코드에 대해, 다른 테이블에 대한 원하는 링크를 표시하는 링크 테이블(422)을 도시하고 있다. 예를 들어, 만일 제1 트랜잭션(406a)이 현금 계정의 은행 #1 구성요소에 관련된 트랜잭션이면, 인덱스 값 #1을 가진 트랜잭션 레코드에 대해, 인덱스 #424를 가진 적절한 계정 레퍼런스가 있다는 것을 나타내는 레코드(428)가 제공되게 된다. 이와 유사하게, 피고용인 테이블(416) 및 다른 테이블(도시 안됨)에도 링크가 만들어 질 수 있다. 그러므로, 도1에서는, 계정, 자회사, 제품, 프로젝트 등의 각각의 가능한 조합에 대해 각각의 파일을 제공할 필요가 있는 반면에(비교적 복잡한 회계 구조에 대해서는 매우 많은 수의 파일을 초래할 가능성 있음), 도1의 예에서는 어떤 플랫 파일에 트랜잭션이 저장되어 있는지 알게됨으로써 얻어지는 정보를 링크 테이블(422)이 제공하는 도4a내지 도4f의 실시예에서는 단일의 트랜잭션 테이블(402)만이 필요로 된다.4D shows a link table 422 for each record in transaction table 402 that indicates the desired link to another table. For example, if the first transaction 406a is a transaction related to the bank # 1 component of a cash account, for a transaction record with index value # 1, a record indicating that there is an appropriate account reference with index # 424 ( 428). Similarly, links may be made to the employee table 416 and other tables (not shown). Therefore, in FIG. 1, it is necessary to provide each file for each possible combination of accounts, subsidiaries, products, projects, etc. (possibly resulting in a very large number of files for comparatively complex accounting structures). In the example of Fig. 1, only a single transaction table 402 is needed in the embodiment of Figs. 4A-4F in which the link table 422 provides information obtained by knowing in which flat file the transaction is stored.

통상적인 관계 데이터베이스에서는, 예를 들어, 특정 계정 및 특정 피고용인에 대한 트랜잭션과 같이, 소정의 기준에 부합하는 정보만을 식별하고 디스플레이하는 것이 가능하다. 일부의 데이터베이스 소프트웨어에서는, 예를 들어, 선택적인 정보가 공통적으로 필요로 될 때 사용하기 위한 기준 또는 "질의(queries)"를 저장하는 것이 가능하다. 도4e는 예를 들어, 구조적 질의 언어(structured query language:SQL)를 이용하여 이와 같은 다수의 질의를 저장하는 테이블을 도시하고 있다. 특정 데이터베이스 시스템에 사용되는 질의는 회사에 의해 데이터가 분석 또는 편성되는 방식을 반영할 수도 있다. 그러므로, 이와 같은 데이터베이스 내의 정보에 근거하여 리포팅 및 분석을 표준화하는데 관심을 가질 수도 있는 회계사는 다양한 저장된 질의(도4e)에 의해 표현되는 형태의 데이터 분석에 관해 알고 및/또는 그것을 재생할 수 있게 되길 원할 수도 있다.In a typical relational database, it is possible to identify and display only information that meets certain criteria, for example, transactions for specific accounts and specific employees. In some database software, for example, it is possible to store criteria or "queries" for use when optional information is commonly needed. Figure 4E illustrates a table for storing such multiple queries, for example using a structured query language (SQL). Queries used in specific database systems may reflect the way data is analyzed or organized by the company. Therefore, an accountant who may be interested in standardizing reporting and analysis based on information in such a database may wish to be able to know and / or reproduce data analysis in the form represented by various stored queries (FIG. 4E). It may be.

또한, 사용자로 하여금, (디스플레이 또는 프린트를 위해) 리포트를 설계할 수 있도록 하고, 몇몇의 경우에는 예를 들어, 반복 사용을 위해 이와 같은 리포트를 정의하는 정보를 저장할 수 있도록 하는 많은 형태의 데이터베이스가 있다. 따라서, 이와 같은 리포트에 관한 정보를 보존하기 위해 관계 데이터베이스와 관련하여 또는 그 일부로서 다른 테이블 또는 테이블 셋트(도시 안됨)가 저장될 수도 있다.In addition, there are many types of databases that allow users to design reports (for display or print) and, in some cases, to store information that defines such reports, for example for repeated use. have. Accordingly, other tables or sets of tables (not shown) may be stored in association with or as part of a relational database to preserve information about such reports.

도4a 내지 도4f에 도시된 정보 및 구조는 많은 상이한 방식으로 저장될 수 있다. 도5는 다수의 데이터 테이블, 링크 테이블, 질의 테이블 및/또는 리포트 포맷을 저장하기 위해 사용될 수 있는 디렉토리/파일 하이어라키를 도시하고 있다. 이러한 데이터는, 이 기술분야에 통상의 지식을 가진자는 이해할 수 있게 되는 바와 같이, 도3a 내지 도3c에 도시된 포맷 또는 다른 포맷과 같은 다수의 상이한 데이터 포맷으로 저장될 수 있다.The information and structure shown in FIGS. 4A-4F can be stored in many different ways. 5 illustrates a directory / file hierarchy that may be used to store multiple data tables, link tables, query tables, and / or report formats. Such data may be stored in a number of different data formats, such as the format shown in FIGS. 3A-3C or other formats, as will be appreciated by those skilled in the art.

다양한 포맷으로 저장될 수 있는 정보의 다른 예로는 과학 또는 기술 정보가 있다. 도6에는, 예를 들어, 기상 연구(meteorological research)를 위해 지표 온도 정보를 저장하기 위한 플랫 파일 시스템이 제공되어 있다. 도6의 예에서, 각각의 파일(602a,602b,602c)은 그 헤더(604)에 도시된 특정 위치 및 측정 단위(예, 화씨 또는 섭씨)에 대한 정보를 저장한다. 각각의 레코드(606a,606b,606c)에 대해, 날짜와 각각의 시각에 대한 기록이 독립된 필드에 저장된다. 도7a 내지 도7d에는, 이러한 형태의 데이터를 저장하기 위한 관계 데이터베이스 시스템이 도시되어 있다. 데이터 테이블(702)은 모든 관측결과 및 각각의 관측결과에 대해 인덱스(704b)와 함께 측정 단위(704a)를 포함하고 있다. 테이블(706)(도7b) 및 테이블(708)(도7c)은 위치 및 하루중의 시각에 관한 정보를 저장하고 있다. (인덱스 값(704b)으로 표시된 바와 같이) 도7a에 저장된 소정의 데이터 포인트에 대해, 그 데이터 포인트와 관련된 위치 및 그 데이터 포인트와 관련된 하루중의 시각에 대한 인덱스 값을 표시하기 위해 링크 테이블(도7d)의 각각의 라인(722,724)이 사용될 수 있다. 비록 도6 및 도7a 내지 도7d의 예는 간략화되어 있지만, 이 기술분야에 통상의 지식을 가진자에게는, 풍속 및 풍향을 포함하는 기상 데이터, 라디오 음향 데이터 등과 같은 보다 복잡한 일련의 데이터를 저장하기 위해 정보 시스템을 어떻게 구성할지는 자명할 것이다. 만일 연구원이 2개의 기상 데이터 소스, 즉, 도6에 도시된 시스템에 정보를 저장하는 하나의 소스와 도7a 내지 도7d에 도시된 시스템에 정보를 저장하는 다른 소스로부터의 정보를 상호관련시키길 원하는 경우에, 이전의 방법에서는, 통상적으로, 컨설턴트 또는 다른 전문가가 도6 및 도7a 내지 도7d에 도시된 정보 저장 구조 및 편성을 분석하고, 그 데이터의 조합 또는 통합을 허용하는 방식으로 정보에 억세스하기 위한 시스템을 수동적으로 개발할 필요가 있었다.Another example of information that can be stored in various formats is scientific or technical information. 6, a flat file system is provided for storing surface temperature information, for example for meteorological research. In the example of Figure 6, each file 602a, 602b, 602c stores information about a particular location and unit of measurement (e.g., Fahrenheit or Celsius) shown in its header 604. For each record 606a, 606b, 606c, a record of the date and each time is stored in separate fields. 7A-7D, a relational database system for storing this type of data is shown. The data table 702 includes a measurement unit 704a with an index 704b for all observations and for each observation. Table 706 (FIG. 7B) and Table 708 (FIG. 7C) store information about the position and time of day. For a given data point stored in FIG. 7A (as indicated by index value 704b), a link table (FIG. Each line 722, 724 in 7d) may be used. Although the examples of FIGS. 6 and 7A-7D are simplified, those of ordinary skill in the art can store a more complex series of data, such as weather data, radio acoustic data, etc., including wind speed and wind direction. It will be clear how the information system is constructed. If a researcher wants to correlate information from two weather data sources, one source for storing information in the system shown in FIG. 6 and another source for storing information in the system shown in FIGS. 7A-7D. In the case of the previous method, a consultant or other expert typically accesses the information in a manner that allows the combination or integration of the data, analyzing the information storage structure and organization shown in FIGS. 6 and 7A-7D. It was necessary to develop a system manually.

도8은 상이한 정보 시스템 상에서 데이터를 억세스하고, 통합하고, 또는 조합하는 것과 관련하여 전술한 어려움을 극복하는데 사용하기 위한, 본 발명의 일실시예에 따른 시스템의 블록도이다. 도8의 실시예에서, 메인 프로세스(802)는 다수의 데이터 소스(806a,806b,806c,806d) 내의 정보를 분석 및/또는 억세스하는 것과 관련하여 필요로 될 때, 다양한 드라이버(804a,804b,804c,804d)를 선택적으로 활성화시킨다. 설명 목적을 위해, 도8에 도시된 소스 데이터(806a-806d)는 전술한 바와 같이, 플랫 파일 시스템, 데이터베이스, 스프레드시트 등과 같은, 데이터를 편성하거나 저장하기 위한 다수의 프로그램 또는 시스템 중 어느 것에 의해 저장되거나 생성된 데이터가 될 수 있다. 도8의 프로세스 및 데이터는 하나 또는 많은 컴퓨터 상에 존재할 수도 있다. 일실시예에서, 이 프로세스는 네트워크 서버 컴퓨터, 관련 디스크 또는 다른 기억장치, 및 하나 또는 그 이상의 클라이언트 컴퓨터를 구비한 근거리 통신망(LAN)과 관련하여 구현될 수 있다. 일실시예에서, 메인 프로세스(802)는 클라이언트 컴퓨터 상에서 실행되지만, 정보 소스(806) 및 새로운 데이터베이스(808)에 대한 데이터 파일은 네트워크 서버와 관련된 디스크(또는 다른 데이터 기억장치) 상에 저장된다. 본 발명은 인터넷 등을 통한, 광역 통신망, 모뎀 통신 등과 같은 통신 링크에 의해 링크되는 컴퓨터를 이용하여 복수의 비-네트워크 컴퓨터 또는 단일 컴퓨터와 같은 많은 다른 아키텍처로 구현될 수 있다. 본 발명을 구현하기 위해, IBM사(예, 386,486, 펜티엄, 또는 펜티엄 이상의 컴퓨터) 및 애플사(예, 매킨토시 컴퓨터)에 의해 생산된 컴퓨터 및 이와 같은 컴퓨터의 모조품과 같은 메인프레임 또는 개인용 컴퓨터를 포함하여 많은 형태의 컴퓨터가 사용될 수 있다. 일실시예에서, 프로세스는 DOS 운영체제 및/또는 마이크로소프트 윈도우 또는 윈도우 95 사용자 인터페이스를 이용하여 구현된다.8 is a block diagram of a system according to one embodiment of the present invention for use in overcoming the foregoing difficulties with respect to accessing, integrating, or combining data on different information systems. In the embodiment of Figure 8, the main process 802, as needed in connection with analyzing and / or accessing information in multiple data sources 806a, 806b, 806c, and 806d, provides various drivers 804a, 804b, Selectively activate 804c and 804d. For illustrative purposes, the source data 806a-806d shown in FIG. 8 may be generated by any of a number of programs or systems for organizing or storing data, such as flat file systems, databases, spreadsheets, etc., as described above. It can be stored or generated data. The process and data of FIG. 8 may exist on one or many computers. In one embodiment, this process may be implemented in connection with a local area network (LAN) having a network server computer, associated disks or other storage, and one or more client computers. In one embodiment, the main process 802 runs on a client computer, but the data files for the information source 806 and the new database 808 are stored on a disk (or other data storage) associated with the network server. The invention may be implemented in many different architectures, such as a plurality of non-network computers or a single computer, using a computer that is linked by a communication link, such as a wide area network, modem communication, or the like, via the Internet or the like. To implement the invention, including mainframe or personal computers, such as computers produced by IBM (eg, 386,486, Pentium, or Pentium or higher) and Apple (eg, Macintosh computers) and imitations of such computers, Many types of computers can be used. In one embodiment, the process is implemented using a DOS operating system and / or a Microsoft Windows or Windows 95 user interface.

본 명세서에서 드라이버(804a-804d)로서 언급되는 항목은 소정의 데이터베이스 프로그램에서 제공되는 형태의 데이터 필터와 혼동해서는 안된다. 데이터 필터는 통상적으로, 사용자가 결정할 수 있는 기준에 따라, 소정의 레코드 및/또는 필드를 선택하기 위한 질의 또는 논리적 테스트의 형태이다. 한편, 보다 완전하게 후술되는 바와 같이, 드라이버(804a-804d)는 상이한 형태의 소스 데이터를 분석하고 억세스하기 위한 다수의 펑션(functions)을 가진 프로세스이다. 본 발명의 일실시예에서, 펑션 모듈(804)은 이 기술분야에 통상의 지식을 가진자가 본 명세서를 이해한 이후에 이해하게 되는 방식으로 동적 링크 라이브러리(dynamic link libraries)로서 제공된다. 이들 드라이버(804a-804d)는 특정 데이터베이스 프로그램을 이용하여 생성된 데이터 파일과 같이, 하나 또는 그 이상의 데이터 소스 형태와의 연산을 위해 구성된다. 데이터베이스 프로그램의 특성에 따라, 예를 들어, 데이터베이스 소프트웨어 패키지의 2개의 독립된 버전에 의해 생성되는 데이터 파일에 대해 2개의 독립된 드라이버를 구비하는 것이 필요할 수도 있다. 소정의 상황에서는, 2개의(또는 그 이상의) 상이한 형태 또는 브랜드의 소프트웨어(또는 주어진 브랜드의 데이터베이스 또는 다른 소프트웨어)를 이용하여 생성되는 데이터 파일과 관련하여 사용될 수 있는 단일의 드라이버를 제공하는 것이 가능할 수도 있다.Items referred to herein as drivers 804a-804d should not be confused with data filters of the type provided in a given database program. A data filter is typically in the form of a query or logical test to select certain records and / or fields, depending on criteria that a user can determine. On the other hand, as will be described more fully below, drivers 804a-804d are processes with a number of functions for analyzing and accessing different types of source data. In one embodiment of the invention, the function module 804 is provided as dynamic link libraries in a manner that will be understood by those skilled in the art after understanding the specification. These drivers 804a-804d are configured for operation with one or more data source types, such as data files created using a particular database program. Depending on the nature of the database program, it may be necessary to have two independent drivers, for example, for data files created by two independent versions of the database software package. In certain circumstances, it may be possible to provide a single driver that can be used in connection with a data file generated using two (or more) different types or brands of software (or a database of a given brand or other software). have.

도8에 도시된 소스 데이터(806a-806d)는 일반적으로 어떠한 컴퓨터 판독가능 정보 소스도 될 수 있다. 그 예로는, 플랫 파일 소스 데이터, 계층 데이터베이스, 관계 데이터베이스, 스프레드시트 등이 있다. 비록 도8이 4개의 데이터 소스가 도시된 실시예를 예시하고 있지만, 본 발명은 단일의 데이터 소스만이 존재하거나 또는 5개 또는 그 이상의 데이터 소스가 존재하는 경우에도 사용될 수 있다. 비록 본 발명이 각각의 데이터 소스(806a-806d)가 다른 형태 또는 브랜드의 소프트웨어를 이용하여 생성되는 상황에 이용될 수 있지만, 또한, 2개 또는 그 이상의 데이터 소스가 동일한 브랜드 또는 형태의 데이터베이스 또는 다른 소프트웨어에 의해 생성되는 상황에 본 발명을 이용하는 것도 가능하다. 한 예로서, 제1 드라이버(804a)는 "dBaseⅡ"를 이용하여 생성된 데이터 파일로부터 정보를 검색하는데 사용하기 위해 구성되고, 제2 드라이버는 "dBaseⅢ"를 이용하여 생성된 데이터 파일로부터 정보를 검색하는데 사용하기 위해 구성되고, 제3 드라이버는 "Simply Accounting(상표)"과 같은 플랫 파일 시스템을 이용하여 생성된 데이터 파일로부터 정보를 검색하는데 사용하기 위해 구성되고, 제4 드라이버는 "Microsoft Access(상표)"를 이용하여 생성된 데이터 파일로부터 정보를 검색하는데 사용하기 위해 구성될 수 있다.Source data 806a-806d shown in FIG. 8 can generally be any computer readable information source. Examples include flat file source data, hierarchical databases, relational databases, and spreadsheets. Although Figure 8 illustrates an embodiment in which four data sources are shown, the present invention can be used even when there is only a single data source or there are five or more data sources. Although the present invention can be used in situations where each data source 806a-806d is created using a different type or brand of software, two or more data sources can also be used in the same brand or type of database or in another. It is also possible to use the invention in situations created by software. As one example, the first driver 804a is configured for use in retrieving information from a data file created using "dBaseII", and the second driver retrieves information from a data file created using "dBaseIII". The third driver is configured for use in retrieving information from data files created using a flat file system such as "Simply Accounting", and the fourth driver is "Microsoft Access ™. Can be used to retrieve information from data files created using "

(보다 완전하게 후술되는 바와 같이) 일단 데이터 소스가 분석되었으면, 이러한 분석의 결과는, 검토 또는 편집을 위해 데이터 소스 내의 정보에 대한 사용자-억세스를 제공하는 것, 새로운 데이터베이스를 생성하기 위해 데이터의 일부 또는 전부, 바람직하게는 그 확장부(후술됨)를 카피하는 것, (검토, 프린트, 저장, 전송 등을 위해) 데이터 리포트, 질의 등을 생성하는 것을 포함하여, 다양한 방식으로 사용될 수 있다.Once the data source has been analyzed (as described more fully below), the result of this analysis is to provide user-access to the information in the data source for review or editing, as part of the data to create a new database. Or all, preferably copying its extension (described below), generating data reports (for review, printing, storage, transmission, etc.), queries, and the like.

도8의 실시예에서, 메인 프로세스(804)는 드라이버(804)를 이용하여 소스 데이터(806a-806d)의 분석을 수행한 이후에, 다양한 데이터 소스(806a-806d)의 하나 또는 그 이상의 소스로부터의 데이터를 포함하는, 하나 또는 그 이상의 새로운 데이터베이스(808)를 생성할 수도 있다. 일실시예에서는, 각각의 데이터 소스에 대해 하나의 새로운 데이터베이스가 생성된다. 이와 같은 데이터베이스가 유사한 구조를 갖고 있을 때에는, 예를 들어, 표준 데이터베이스 기술을 이용하여 2개 또는 그 이상의 데이터베이스를 결합하는 것이 바람직할 수도 있다. 다른 실시예에서는, 하나의 데이터베이스(806)가 (예를 들어, 한 회사가 판매 정보를 저장하기 위해 한 데이터베이스 또는 다른 데이터 소스를 사용하고, 피고용인 정보를 저장하기 위해 다른 데이터베이스 또는 다른 데이터 소스를 사용하는 경우에) 2개 또는 그 이상의 데이터 소스로부터의 정보를 포함할 수도 있다. 새로운 데이터베이스(808)는 원하는 경우에, 예를 들어 리포트 라이터(writer)(810)를 이용하여 리포트를 생성하기 위해 사용될 수도 있으며, 또한, 원한 다면, 예를 들어, 데이터베이스 관리 시스템(812) 또는 다른 소프트웨어(814)를 이용하여 데이터를 입력, 검토 또는 분석하기 위해 사용될 수도 있다. 일실시예에서, 데이터베이스(808)는, 예를 들어, 표준 금융 리포트를 출력하는 것과 같은 데이터베이스 리포팅 및 분석을 제공하기 위해, 하나 또는 그 이상의 위저드(wizards), 템플릿(templates), 필터 및/또는 툴 키트 소프트웨어(이들 용어는 마이크로소프트 억세스 프로그래밍에 숙련된 사람은 이해할 것이다)를 가진 베이스 코드를 포함하는 Microsoft(상표) 억세스 데이터베이스이다. 일실시예에서, 금융 및 관리 리포팅 소프트웨어는 미국 워싱턴 벨리뷰 소재의 Timeline, Inc.로부터 이용할 수 있는 상표명 MV로 통용되는 확장부(extension) 또는 수정부(modification)로서 제공된다.In the embodiment of FIG. 8, after the main process 804 performs analysis of the source data 806a-806d using the driver 804, from one or more sources of the various data sources 806a-806d. One or more new databases 808 may be created that contain the data of. In one embodiment, one new database is created for each data source. When such databases have a similar structure, it may be desirable to combine two or more databases, for example, using standard database techniques. In another embodiment, one database 806 uses one database or other data source (e.g., one company stores sales information, and another database or another data source to store employee information). May include information from two or more data sources. The new database 808 may be used to generate a report, for example, using the report writer 810 if desired, and, if desired, for example, the database management system 812 or other. It may be used to enter, review or analyze data using software 814. In one embodiment, the database 808 may include one or more wizards, templates, filters, and / or to provide database reporting and analysis, for example, to output a standard financial report. A Microsoft® Access database that includes base code with toolkit software (these terms will be understood by those skilled in Microsoft Access programming). In one embodiment, the financial and management reporting software is provided as an extension or modification under the trade name MV available from Timeline, Inc., Bellevue, Washington.

바람직하게는, 분석 시스템은 특정 목적 또는 그룹을 위한 리포트 또는 스크린을 생성하거나 제공하기 위해 구성된 모듈을 포함한다. 예를 들어, 도8의 실시예에서, 이그제큐티브(executive) 정보 시스템(EIS)은 바람직하게는 이지-투-유즈(easy-to-use) 사용자 인터페이스를 갖추고 있으며, 바람직하게는, (바 차트와 파이 차트 사이에서 선택하고, 리포팅 주기를 선택하고, 계간 대 주간 리포트를 선택하는 등의 선택을 위해) 네비게이션 툴 또는 그래픽 셀렉터를 이용하여 다양한 스프레드시트, 프리젠테이션 그래픽스 또는 프린트된 형식으로 데이터의 분석을 출력하도록 구성된다. 일실시예에서, 이그제큐티브에는, 전술한 자동 롤업 생성 절차를 이용하여 자동적으로 생성 또는 검출될 수 있는 뷰를 포함하여, 다양한 데이터 뷰의 메뉴가 제공된다.Preferably, the analysis system includes a module configured to generate or provide a report or screen for a specific purpose or group. For example, in the embodiment of Figure 8, an executive information system (EIS) preferably has an easy-to-use user interface, and preferably (bar charts and Analyze your data in a variety of spreadsheet, presentation graphics, or printed formats using navigation tools or graphic selectors (to select between pie charts, select reporting intervals, select quarterly vs. weekly reports, etc.) Is configured to output. In one embodiment, the executive is provided with a menu of various data views, including views that can be automatically generated or detected using the automatic rollup generation procedures described above.

일실시예에서, 새로운 데이터베이스(808) 내의 정보는 소스 데이터(806a-806d)에 의해 또는 그것을 이용하여 디스플레이되거나 출력되지 않았던 데이터의 분석 또는 관계를 생성하고, 디스플레이 또는 출력하도록 구성된다는 점에서, 예를 들어, 메인 프로세스(802)에 의해 확장된다.In one embodiment, the information in the new database 808 is configured to generate, display or output an analysis or relationship of the data that was not displayed or output by or using the source data 806a-806d, eg For example, it is extended by the main process 802.

도9는 다양한 드라이버(804a-804d)의 개략도이다. 각각의 드라이버는 다수의 정의된 프로세스 또는 펑션(901-909)을 포함한다. 각각의 펑션은 에를 들어, 후술되는 도10에 도시된 하나 또는 그 이상의 단계를 구현하고 실행하기 위해, 컴퓨터 프로그램 명령어(912)를 포함할 수도 있다. 일실시예에서, 각각의 펑션(901-909)은 호출가능한 서브루틴 또는 절차(procedure)이다. 소정의 드라이버(804b)에서 정의된 펑션(901-909)은 소스 데이터(806a,806b)의 형태에 따라 다르게 수행 또는 실행되어야 하는 펑션을 포함한다. 그러므로, 예를 들어, 원하는 정보가 저장된 하드 디스크 또는 다른 정보 기억장치 상에서 소정의 디렉토리를 선택하도록 설계된 펑션인 펑션 1(901)에 관해서, 디렉토리를 선택하기 위한 절차는 예를 들어, 도2의 예와 도5의 예의 비교로부터 알 수 있는 바와 같이, 소스 데이터(806)의 형태에 따라 달라지게 된다. 따라서, 제1 드라이버(804a)에서 펑션 1을 구현하는 프로그래밍 코드(912)는 제2 드라이버(804b)에서 대응하는 펑션을 구현하는 프로그래밍 코드와 다를 수도 있다. 이러한 방식으로, 각각의 드라이버는 하나의 펑션을 수행하기 위해 하나 또는 그 이상의 프로세스를 정의하며, 이와 같은 절차는 2개 또는 그 이상의 상이한 형태의 소스 데이터의 상이한 특성을 수용하도록 구성된다. 예를 들어, 도11a는 도2에 도시된 디렉토리 구조와 관련하여 디렉토리를 선택 및/또는 탐색하는 것과 관련하여 사용될 수도 있는 형태의, 의사-코드로 표현된, 절차의 일부분을 도시하고, 도11b는 도5에 도시된 디렉토리 구조에 대한 디렉토리를 선택 또는 탐색하는 것과 관련하여 사용될 수도 있는 절차에 대한 의사-코드의 대응하는 부분을 도시하고 있다. 이 기술분야에 통상의 지식을 가진자는 도11a 및 도11b의 예로부터, 2개의 상이한 형태의 소스 데이터에 대해 동일한 펑션을 수행하기 위해 드라이버를 어떻게 구성해야 하는지 이해할 것이다. 비록 도9는 9개의 펑션을 가진 펑션 모듈을 도시하고 있지만, 본 발명은 보다 많거나 보다 적은 수의 펑션을 가진 펑션 모듈에 관해서도 이용될 수 있다. 상이한 펑션 모듈이 상이한 수의 펑션을 정의하고, 및/또는 하나 또는 그 이상의 펑션이 널(null)값 또는 상수값 또는 정보를 제공 또는 반송하도록 구성된 시스템을 구성하는 것이 가능하다.9 is a schematic of various drivers 804a-804d. Each driver includes a number of defined processes or functions 901-909. Each function may include computer program instructions 912, for example, to implement and execute one or more steps shown in FIG. 10 described below. In one embodiment, each function 901-909 is a callable subroutine or procedure. The functions 901-909 defined in the predetermined driver 804b include functions that need to be executed or executed differently depending on the type of the source data 806a and 806b. Thus, for example, with regard to function 1 901, which is a function designed to select a predetermined directory on a hard disk or other information storage device where desired information is stored, the procedure for selecting a directory is, for example, the example of FIG. As can be seen from the comparison of the example of FIG. 5 and FIG. 5, it depends on the type of source data 806. Accordingly, the programming code 912 for implementing the function 1 in the first driver 804a may be different from the programming code for implementing the corresponding function in the second driver 804b. In this manner, each driver defines one or more processes to perform one function, which procedure is configured to accommodate different characteristics of two or more different types of source data. For example, FIG. 11A illustrates a portion of a procedure, represented in pseudo-code, in a form that may be used in connection with selecting and / or searching a directory in connection with the directory structure shown in FIG. Shows the corresponding part of the pseudo-code for a procedure that may be used in connection with selecting or searching a directory for the directory structure shown in FIG. One of ordinary skill in the art will understand from the examples of FIGS. 11A and 11B how to configure a driver to perform the same function on two different types of source data. Although FIG. 9 shows a function module having nine functions, the present invention can be used with respect to a function module having more or fewer functions. It is possible for different function modules to define different numbers of functions, and / or to configure a system in which one or more functions are configured to provide or convey null or constant values or information.

도10에 도시된 방법을 시작하기 위해(단계 1002) 많은 절차가 사용될 수 있다. 일실시예에서, 도10의 방법은 하드 디스크, CD-ROM, 또는 비-휘발성 매체와 같은 매체 상에 저장된 컴퓨터 프로그램을 이용하여 구현되며, 이 방법은 프로그램을 런치(launch)하기 위해, 즉, 프로그램을 메모리에 로드하여 그 프로그램을 실행시키기 위해 (예를 들어, 키보드, 마스크 등을 통해) 컴퓨터로 명령을 발생함으로써 시작된다. 대안으로, 이 프로그램은 다른 프로그램에 의해 런치될 수도 있다. 예를 들어, 일실시예에서, 새로운 데이터베이스(808)는 프로그램을 런치하기 위해 소위 "위저드"로 불리는 것과 같은 루틴을 포함할 수 있는 마이크로소프트 억세스 데이터베이스이며, 이 프로그램(도10)은 다음에, 이 데이터베이스(808)를 점유하거나 갱신하기 위해 정보 소스(806) 내의 데이터에 억세스한다. 이 실시예에서는, 사용자 인터페이스가 그 데이터베이스(808)에 대한 사용자 인터페이스와 일치되는 상황을 갖게 되도록 필요할 때(예, 단계 1020에서) 사용자 입력을 요구하기 위한 목적으로 프롬프트 또는 "다이얼로그 박스"를 디스플레이하기 위해 위저드를 사용하는 것이 유용할 수 있다.Many procedures can be used to begin the method shown in FIG. 10 (step 1002). In one embodiment, the method of FIG. 10 is implemented using a computer program stored on a medium such as a hard disk, CD-ROM, or non-volatile medium, which method is used to launch a program, that is, It is initiated by loading a program into memory and generating commands to the computer (eg, via a keyboard, mask, etc.) to execute the program. Alternatively, this program may be launched by another program. For example, in one embodiment, the new database 808 is a Microsoft Access database, which may include routines such as so-called "wizards" for launching a program, which program (Figure 10), Data in information source 806 is accessed to occupy or update this database 808. In this embodiment, displaying a prompt or "dialog box" for the purpose of requesting user input as needed (e.g., at step 1020) such that the user interface matches a user interface to its database 808. It can be useful to use wizards for this.

도10에 도시된 절차에서, 개시 절차(1002) 이후의 제1 단계는 동적 드라이버를 식별하고 초기화하는 것이다(단계 1004). 이와 관련하여, 드라이버는 그것이 예를 들어, 새로운 또는 다른 형태의 데이터 소스를 수용하도록 모듈 방식으로 추가 또는 삭제될 수 있다는 점에서 동적인 것으로 간주된다. 예를 들어, 사용자는 처음에는, 4개의 드라이버를 가진 도8에 도시된 것과 같은 시스템을 갖출수도 있지만, 장래에는, 소프트웨어 판매상으로부터 구입하거나, 정보 서비스, 네트워크, 인터넷 접속 등을 통해 다운로드 받거나, 또는 주문(custom) 드라이버를 기록함으로써 추가적인 드라이버를 추가할 수도 있다. 드라이버의 모듈 특성 또는동적 특성으로 인해, 어떤 드라이버가 이용가능한지 사전에 알지 못하며, 따라서, 프로그램이 개시될 때(단계 1002), 그 프로그램은 그것에 이용가능한 드라이버를 식별한다. 일실시예에서, 이것은 소정의 (부분적인) 파일 명칭 또는 파일 확장부를 가진 파일에 대해 디스크 또는 그 디렉토리를 탐색함으로써 수행된다. 일실시예에서, 이 프로그램은 또한, 이와 같은 파일 명칭 및/또는 파일 확장부에 의해 식별된 파일이 원하는 드라이버인지 검증하기 위해, 예를 들어, 헤더 정보와 같은 각 파일의 선택된 부분을 분석할 수도 있다. 드라이버를 초기화하는 것은 일반적으로, 드라이버 펑션을 식별하고 링킹하는 것과 각각의 드라이버 내의 데이터를 초기화하는 것을 포함한다. In the procedure shown in FIG. 10, the first step after the initiation procedure 1002 is to identify and initialize the dynamic driver (step 1004). In this regard, a driver is considered dynamic in that it can be added or deleted in a modular fashion, for example to accommodate a new or other type of data source. For example, a user may initially have a system such as the one shown in Figure 8 with four drivers, but in the future, it may be purchased from a software vendor, downloaded through an information service, a network, an internet connection, or the like, or You can add additional drivers by writing a custom driver. Due to the module or dynamic characteristics of the driver, it is not known in advance which drivers are available, and therefore, when the program is started (step 1002), the program identifies the drivers available to it. In one embodiment, this is done by searching the disk or its directory for a file with a given (partial) file name or file extension. In one embodiment, the program may also analyze selected portions of each file, such as, for example, header information, to verify that the file identified by such file name and / or file extension is the desired driver. have. Initializing a driver generally includes identifying and linking driver functions and initializing data within each driver.

다음에는, 그 절차가 임포트 또는 갱신을 수행할 것인지 판단한다(단계 1006). 임포트의 경우에, 데이터 소스 내의 데이터 및 구조의 모두 또는 대부분이 억세스되어 새로운 데이터베이스로 저장되는 절차가 먼저 수행된다. 갱신의 경우에는, 예를 들어, 새로운 데이터베이스(808) 내의 정보가 데이터 소스(806)에 대해 이루어졌을 수도 있는 최근의 변경 또는 추가를 반영하도록 보장하기 위해 데이터 및/또는 구조의 선택된 부분만이 억세스되는 절차가 수행된다. 통상적인 상황에서는, 임포트는 도8의 시스템이 소정의 데이터 소스로부터의 정보를 억세스 또는 사용할 때 첫 번째로, 또는 그 데이터 소스에 대해 비교적 중요한 변경 또는 추가가 이루어진 경우에 수행되게 된다. 통상적으로, 갱신은 소스 데이터(806) 내의 데이터를 새로운 데이터베이스(808) 내의 데이터와 동기시키기 위해 규칙적인 방식으로(예, 매일 또는 매주에 한 번씩) 수행되게 된다. 일실시예에서, 임포트 또는 갱신에 대한 선택(단계 1006)은 그 절차가 특정 데이터 소스에 억세스한 첫 번째가 아닌한 갱신을 수행함으로써 자동적으로 수행된다. 다른 실시예에서, 사용자는 예를 들어, 키보드 선택을 통하거나 포인터 장치를 이용하여 입력을 제공함으로써 임포트와 갱신 사이에서 선택하도록 허용된다.Next, it is determined whether the procedure will perform an import or update (step 1006). In the case of import, a procedure is first performed in which all or most of the data and structures in the data source are accessed and stored in a new database. In the case of an update, only selected portions of the data and / or structure are accessed, for example, to ensure that the information in the new database 808 reflects recent changes or additions that may have been made to the data source 806. Procedure is performed. In a typical situation, an import will be performed first when the system of FIG. 8 accesses or uses information from a given data source, or when relatively significant changes or additions have been made to that data source. Typically, the update will be performed in a regular manner (eg, daily or weekly) to synchronize the data in the source data 806 with the data in the new database 808. In one embodiment, the selection for import or update (step 1006) is performed automatically by performing the update unless the procedure is the first to access a particular data source. In another embodiment, the user is allowed to choose between import and update, for example, by providing input through keyboard selection or using a pointer device.

만일 임포트가 선택되면(단계 1008), 메인 프로세스(802)는 탐색할 디렉토리를 선택하기 위해 하나 또는 그 이상의 드라이버의 펑션의 실행을 개시하게 된다(단계 1010). 메인 프로세스(802)에 의해 로드되거나 호출되는 드라이버(804)는 어떤 형태의 데이터 소스가 억세스되는가에 따라 달라진다. 특히, 소정의 데이터 소스(806a)에 대해, 메인 프로세스(802)는 그 형태의 소스 데이터(806a)를 수용하도록 구성된 드라이버(804b)를 사용하게 된다. 만일 하나 이상의 데이터 소스(806)가 억세스되는 경우에는, 메인 프로세스(802)는 어느 것이든지 소스 데이터(806)의 각각의 형태를 위해 구성된 드라이버(804)를 사용하게 된다. 데이터 소스의 형태는 파일 및/또는 디렉토리의 명칭(또는 "확장부"), 파일의 수, 크기 및 구조, 그 파일 내의 헤더 또는 다른 정보와 같은 특성에 근거하여 자동적으로 판단되는 것이 바람직하다. 다른 실시예에서, 사용자는 (예를 들어, 데이터 소스 파일을 생성하기 위해 사용된 소프트웨어의 브랜드명 및 버전 번호를 식별하거나, 또는 사용자가 그 절차에 의해 단지 국부적인 디스크 파일만을 탐색하길 원하는지 또는 네트워크 파일을 포함하는 탐색을 수행하길 원하는지를 표시함으로써) 데이터 소스의 형태를 표시하도록 허용되거나 요구된다. 단계(1010)의 종료 이후에, 메인 프로세스(802)는 단계(1004)에서 식별된 드라이버(804)에 의해 식별되는 바와 같은 모든 데이터 소스(806)에 대해 탐색될 디렉토리의 저장된 리스트에 억세스하게 된다. 단계(1010) 이후에, 메인 프로세스(802)는 임포트될 데이터에 대해 단계(1010)에서 선택된 디렉토리를 탐색하기 위해, 펑션 모듈(804a-804d)의 다른 펑션(902)을 로드하거나 활성화 또는 호출한다(단계 1012). 디렉토리의 탐색(단계 1012)은 정보가 상이한 데이터 소스(806)에 어떻게 저장되어 있는가에 의존하게 되는 방식으로 수행된다. 예를 들어, 일부 형태의 소스 데이터에 대해서는, 소정의 파일명 및/또는 소정의 파일 확장부를 가진 파일을 식별하는 것으로 충분할 수도 있다. 다른 형태의 데이터 소스(806)에 대해서는, 예를 들어, 파일의 헤더 부분 또는 그외의 곳에 소정의 구조 또는 내용을 가진 파일을 식별하기 위해 다양한 파일 내의 데이터를 스캐닝할 필요가 있을 수도 있다. 그러므로, 상이한 모듈(804)은 상이한 데이터 소스(806)를 수용하기 위해 상이한 방식으로 "디렉토리 탐색" 펑션(902)을 제공하도록 구성되게 된다. If import is selected (step 1008), main process 802 will begin execution of one or more driver functions to select a directory to search (step 1010). The driver 804 loaded or called by the main process 802 depends on what type of data source is accessed. In particular, for a given data source 806a, the main process 802 will use a driver 804b configured to receive that type of source data 806a. If more than one data source 806 is accessed, the main process 802 will use a driver 804 configured for each type of source data 806 in either case. The type of data source is preferably determined automatically based on characteristics such as the name of the file and / or directory (or "extension"), the number, size and structure of the file, the header or other information within the file. In another embodiment, the user may identify the brand name and version number of the software used to generate the data source file (e.g., or if the user wants to search only local disk files by the procedure or network). Allowed or required to indicate the type of data source) by indicating whether it wishes to perform a search comprising the file. After the end of step 1010, the main process 802 will access a stored list of directories to be searched for all data sources 806 as identified by the driver 804 identified in step 1004. . After step 1010, the main process 802 loads, activates, or calls another function 902 of the function modules 804a-804d to search the directory selected in step 1010 for the data to be imported. (Step 1012). The search of the directory (step 1012) is performed in a manner that will depend on how the information is stored at different data sources 806. For example, for some form of source data, it may be sufficient to identify a file with a given file name and / or a given file extension. For other forms of data source 806, it may be necessary, for example, to scan the data in the various files to identify a file having a predetermined structure or content in the header portion of the file or elsewhere. Therefore, different modules 804 are configured to provide a "directory search" function 902 in different ways to accommodate different data sources 806.

만일 임포트(단계 1008)가 아니라 갱신(단계 1014)이 수행되는 경우에는, 바람직하게는 임포트가 최초로 수행될 때, 디렉토리를 선택하고 탐색하기 위한 펑션(901,902)의 결과가 나중에 메인 프로세스(802)에 의해 억세스될 수 있는 방식으로 저장되기 때문에, 디렉토리를 선택하고 탐색할 필요가 없다. 그러므로, 이와 같은 저장된 정보를 이용하여, 메인 프로세스(802)는 이전에 임포트되거나 갱신된 데이터를 식별할 수 있게 된다. 일실시예에서, 이것은 리던던트 데이터, 즉 새로운 데이터베이스(808)에 이미 존재하는 데이터를 로딩하는 것을 방지하기에 유용하다. 일반적으로, 전면 갱신(full update)에 있어서는, 단계(1016)에서, 데이터베이스(808) 내의 기존의 적어도 일부의 데이터가 재로드되지 않게 되도록 최종 임포트 또는 갱신 이후에 새로운 또는 변경된 데이터를 식별하는 것이 바람직하다. 일실시예에서는, 리던던트 데이터의 로딩을 방지하기 위해, 시스템은 최종 임포트 또는 갱신 이후에 변경되지 않은 데이터를 식별하기 위해 시도하게 된다. 일반적으로, 만일 이러한 절차가 수반되는 경우에, 그 절차의 종료 시점에서 새로운 데이터베이스(808) 내의 데이터는 소스 데이터(806) 내의 정보와 동기되게 되는데, 즉, 이것은 그 현재의 상태에서 데이터 소스(806)의 구조 및 데이터를 정확하게 나타내는 정보를 포함하게 된다. If an update (step 1014) is performed rather than an import (step 1008), preferably, when the import is performed for the first time, the result of the functions 901,902 for selecting and navigating the directory is later sent to the main process 802. Because they are stored in a way that can be accessed by them, there is no need to select and navigate a directory. Therefore, using this stored information, the main process 802 can identify previously imported or updated data. In one embodiment, this is useful to prevent loading redundant data, that is, data that already exists in the new database 808. In general, for a full update, in step 1016 it is desirable to identify new or changed data after the last import or update so that at least some existing data in the database 808 is not reloaded. Do. In one embodiment, to prevent loading of redundant data, the system attempts to identify data that has not changed since the last import or update. In general, if such a procedure is involved, the data in the new database 808 at the end of the procedure is synchronized with the information in the source data 806, i.e., this is the data source 806 in its current state. Will contain information that accurately represents the structure and data of the.

도10의 실시예에서는, 사용자에게 임포트 또는 갱신될 데이터를 선택하거나, 또는 소정의 데이터를 임포트 또는 갱신하는 것을 중지할 것을 선택할 기회를 제공하기 위해, 임포트 또는 갱신될 데이터의 신분이 디스플레이된다(단계 1018). 갱신 또는 임포트될 데이터의 표시가 디스플레이를 위해 편성되는 방식은 어떤 형태의 데이터 소스가 억세스되는가에 의존하게 되며, 따라서, 드라이버(804)중 한 드라이버의 펑션(902a)의 호출 또는 활성화에 응답하여 제공되게 된다. 예를 들어, 도4a 내지 도4f에 도시된 데이터 소스와 관련하여 사용하기 위해 구성된 드라이버의 펑션(902a)은 사용자에게 다른 회사에 대한 것을 제외하고, 일부 회사에 대한 데이터를 임포트 또는 갱신할 기회를 제공하기 위해 테이블(430)(도4f)로부터 얻은 자회사의 리스트를 디스플레이할 수도 있다. 바람직하게는, 사용자는 디스플레이된 리스트로부터 하나 또는 그 이상의 회사를 선택할 수 있다. 선택 단계(1018,1020)에서의 디스플레이는 예를 들어, 드라이버의 디스플레이 펑션(902a)이 어떻게 기록 또는 구성되는가에 따라, 소정의 피고용인(416) 또는 소정의 계정(412)에 특정된 데이터의 선택을 디스플레이하고 허용하기 위해, 데이터 소스 내의 다른 형태의 편성 또는 데이터에 대해 반복될 수 있다. In the embodiment of Fig. 10, the identity of the data to be imported or updated is displayed in order to give the user an opportunity to select the data to be imported or updated, or to choose to stop importing or updating the given data (step). 1018). The manner in which the indication of data to be updated or imported is organized for display depends on what type of data source is accessed and, thus, is provided in response to the invocation or activation of function 902a of one of the drivers 804. Will be. For example, a function 902a of a driver configured for use in connection with the data source shown in FIGS. 4A-4F gives a user an opportunity to import or update data for some company, except for another company. A list of subsidiaries obtained from table 430 (FIG. 4F) may be displayed for presentation. Preferably, the user can select one or more companies from the displayed list. The display in the selection steps 1018 and 1020 may, for example, select the data specified for a given employee 416 or a given account 412, depending on how the display function 902a of the driver is recorded or configured. It may be repeated for other forms of organization or data in the data source to display and allow.

보다 상세하게 후술되는 바와 같이, 몇몇의 경우에는, 새로운 데이터베이스(808)가 생성된 이후에, 사용자는 데이터를 생성, 저장, 편집 및 일부의 경우에는 데이터를 검토하기 위해 원래의 정보 소스(806a-806d)를 게속해서 이용하게 된다. 그러므로, 본 발명은 사용자가 그 사용자에게 이미 친숙한 데이터베이스(806), 사용자 인터페이스 등을 계속 이용하길 원하는 상황과도 호환성이 있다. 그러나, 이러한 경우에는, 새로운 데이터베이스(808)가 최초로 생성된(또는 마지막으로 갱신된) 이후에 발생한 정보 소스(806a-806d) 내의 새로운 또는 편집된 데이터를 반영하도록, 때때로 새로운 데이터베이스(808)를 갱신하는 것이 바람직하다. 이러한 갱신을 수행하기 위한 한가지 방식은 (후술되는 바와 같이) 데이터베이스(808)를 생성하는 전체 프로세스를 반복하는 것이다. 그러나, 많은 상황에서, 이것은 비효율적이며, 그 이유는 최초에 생성된 새로운 데이터베이스(808)의 상당한 부분이 변경되지 않고 여전히 유효하기 때문이다. 그러므로, 본 발명의 일실시예에 따르면, 데이터베이스(808)의 최종 갱신 이후에 변경된 정보 소스(806a-806d)로부터의 데이터에 대해서만, 새로운 데이터베이스(808)가 갱신될 수 있도록 허용하는 절차가 제공된다.As described in more detail below, in some cases, after a new database 808 has been created, the user can create, save, edit, and in some cases, the original information source 806a- to review the data. 806d) will continue to be used. Therefore, the present invention is also compatible with situations where a user wishes to continue to use a database 806, user interface, etc., which is already familiar to the user. However, in this case, the new database 808 is sometimes updated to reflect new or edited data in the information sources 806a-806d that occurred after the new database 808 was first created (or last updated). It is desirable to. One way to perform this update is to repeat the entire process of creating the database 808 (as described below). However, in many situations this is inefficient because a significant portion of the initially created new database 808 remains unchanged and still valid. Therefore, in accordance with one embodiment of the present invention, a procedure is provided that allows a new database 808 to be updated only for data from information sources 806a-806d that have changed since the last update of the database 808. .

새로운 데이터베이스(808)가 갱신되어야 하는 빈도는 그 데이터베이스(808)의 다양한 이용이 행해지는 빈도에 의존한다. 그러므로, 일주일에 한 번씩만 억세스되는 경우에 데이터베이스(808)를 매일 갱신하는 것은 큰 의미가 없을 수도 있다. 또한, 갱신에 포함되는 특정 정보는 새로운 데이터베이스(808)에 대해 행해지는 이용에 따라 변화될 수도 있다. 그러므로, 만일 공장 생산 데이터가 관리에 의해 단지 분기별로 검토되는 경우에는, 예를 들어, 지역적인 판매를 검토하기 위해 사용될 수도 있는 매주 마다의 갱신에 이와 같은 데이터를 포함시킬 필요가 없다. 다양한 형태의 갱신을 정의하는 하나 또는 그 이상의 프로파일이 생성되어 저장되는 것이 바람직하며, 또한 스케쥴러도 생성되어 저장되는 것이 바람직하다. 스케쥴러는 (사람이 이와 같은 갱신을 개시하기 위해 "달력에 기입하거나(calendar)" 또는 기억할 필요 없이) 이와 같은 갱신을 자동적으로 실행하는 시기를 정의하기 위해 사용된다. 바람직하게는, 예를 들어, 매주 판매 회의 이전에 지역 판매 갱신 절차를 매주 한 번씩 자동적으로 실행하고, 매분기별 생산 검토 이전에 생산 데이터의 매분기별 갱신을 스케쥴링하는 스케쥴러를 제공하는 것과 같이, 상이한 갱신 프로파일이 상이한 시기 또는 간격으로 실행되도록 스케쥴링된다.The frequency with which a new database 808 should be updated depends on the frequency with which various uses of that database 808 are made. Therefore, updating the database 808 every day may not make much sense if it is accessed only once a week. In addition, the specific information included in the update may vary depending on the use made to the new database 808. Therefore, if factory production data is only reviewed quarterly by management, there is no need to include such data in a weekly update that may be used, for example, to review local sales. It is desirable that one or more profiles defining various types of updates be created and stored, and also that a scheduler be created and stored. The scheduler is used to define when to automatically execute such an update (without the need for a person to "calendar" or remember to initiate such an update). Preferably, for example, different updates are provided, such as providing a scheduler that automatically executes a regional sales update procedure once weekly prior to a weekly sales meeting and schedules a quarterly update of production data prior to a quarterly production review. Profiles are scheduled to run at different times or intervals.

도8의 시스템을 이용하는 다른 사람은 매일 매일의 운영을 위해 시스템의 다른 구성요소(예, 정보 소스(806a-806d) 또는 새로운 데이터베이스(808))를 사용할 수도 있기 때문에, 새로운 데이터베이스와 함께 프로파일(822)이 저장되거나, 또는 이전의 데이터베이스와 함께 프로파일(824a-824d)(정보 소스(806a-806d)에 정보를 저장하기 위한 적절한 "기록 허가"가 있는 경우)이 저장될 수도 있으며, 또는 둘다와 함께 저장될 수도 있다.Others using the system of FIG. 8 may use other components of the system (e.g., information sources 806a-806d or new database 808) for daily operations, so that profiles 822 with the new database may be used. ) May be stored, or the profile 824a-824d (if the information source 806a-806d has the appropriate "record permission" to store the information) with the previous database, or both together. May be stored.

프로파일을 생성하기 위해 다양한 방식이 사용될 수 있다. 사용자가 (예를 들어, 마이크로소프트 억세스 위저드에 제공된 것과 같은 미리정해진 일련의 스크린 형식 또는 다이얼로그 박스를 통해) 갱신 프로파일의 생성을 요구할 수 있도록 하기 위한 (메뉴 선택사항 또는 버튼과 같은) 명령을 포함시키는 것이 가능하다. 또한, 예를 들어, 사용자가 정의된 파일에 현재 없는 데이터를 이용하는(또는, 그 데이터에 대한 현재의 프로파일 갱신 빈도 보다 더욱 빈번하게 데이터를 이용하는) 스크린 또는 프린트된 리포트를 요구할 때마다, 사용자가 프로파일의 생성 또는 편집에 관한 결정을 행할 것을 자동적으로 촉구하는 것도 가능하다. 일실시예에서, 데이터베이스(808)의 각각의 필드를 기입하고, 각각의 필드에 대해, 그 데이터베이스를 갱신하기 위한 기존의 프로파일이 있는지 여부, 그러한 프로파일의 신분 또는 명칭 및 현재의 갱신 빈도 또는 간격을 표시하는 데이터베이스 테이블을 생성함으로써, 프로파일(822)이 생성된다. Various methods can be used to create the profile. Including commands (such as menu options or buttons) to allow the user to request the creation of an update profile (for example, via a predefined set of screen formats or dialog boxes, such as those provided in the Microsoft Access Wizard). It is possible. Further, for example, whenever a user requests a screen or printed report that uses data that is not currently in the defined file (or uses the data more frequently than the current profile update frequency for that data), the user requests a profile. It is also possible to automatically urge you to make a decision regarding the creation or editing of a. In one embodiment, fill in each field of database 808 and, for each field, whether there is an existing profile for updating that database, the identity or name of such profile, and the current update frequency or interval. By creating a database table to display, profile 822 is generated.

자동적으로 스케쥴링된 갱신 뿐만 아니라, 도8의 시스템의 사용자에게는 또한, 바람직하게도, 언제라도 갱신을 요구하기 위한 옵션이 제공되며, 또한, 바람직하게도, 사전정의된 갱신 프로파일 중에서 선택하거나 전면 갱신을 요구하기 위한 옵션이 제공된다. 만일 원한다면, 이 시스템은 갱신될 이 데이터 셋트가 (전술한 바와 같이) 프로파일로서 저장되어야 하는지에 관한 결정을 행하도록 사용자에게 촉구할 수도 있다. 이 시스템은 또한, 사용자가 (자회사의 리스트와 같은) 디스플레이된 데이터 중에서 선택하는 것이 아니라 사전정의된 프로파일 중에서 선택할 수 있도록 이미 존재하는 또는 정의된 프로파일의 리스트를 제공할 수도 있다.In addition to the automatically scheduled update, the user of the system of FIG. 8 is also preferably provided with the option to request an update at any time, and also preferably to select from a predefined update profile or request a full update. Option is provided. If desired, the system may prompt the user to make a decision as to whether this data set to be updated should be stored as a profile (as described above). The system may also provide a list of already existing or defined profiles so that the user can select from predefined profiles rather than select from displayed data (such as a list of subsidiaries).

몇몇의 경우에는, 데이터 소스로부터 이용가능한 모든 정보를 항상 임포트 또는 갱신(전면 갱신)하는 것이 바람직하다는 것이 미리 결정 될 수도 있으며, 따라서, 적용된 드라이버에 대한 펑션(902a)은 단지 프로그램 흐름을 메인 프로세스(802)로 복귀할 수 있다. 예를 들어, 도7a 내지 도7d에 도시된 데이터 소스에 관하여, 모든 위치로부터의 모든 이용가능한 지표 온도 데이터가 항상 모든 임포트 또는 갱신에 포함되는 것으로 결정될 수도 있다. 일실시예에서는, 사용자에게 정보를 포함하는 디렉토리, 서브디렉토리 및 파일의 디스플레이와 같은, 사용자의 선택에 대응하는 데이터의 위치를 나타내는 디스플레이가 제공될 수 있으며, 또한, 선택적으로는, 어떤 디렉토리 및 파일 등이 억세스될 것인지 선택하기 위한 기회가 제공될 수도 있다.In some cases, it may be predetermined that it is desirable to always import or update (front update) all information available from the data source, so that the function 902a for the applied driver merely passes the program flow to the main process ( Return to 802. For example, with respect to the data source shown in FIGS. 7A-7D, it may be determined that all available indicator temperature data from all locations is always included in every import or update. In one embodiment, a display may be provided to the user indicating the location of data corresponding to the user's selection, such as the display of directories, subdirectories, and files containing information, and optionally, any directory and file. Opportunities may be provided to choose whether or not the back will be accessed.

일단 예를 들어, 단계(1018,1020)에 의해, 어떤 데이터가 임포트 또는 갱신될 것인지 결정되면, 단계(1022)에서 일반적인 정보가 로드된다. 만일 2개 또는 그 이상의 데이터 소스로부터 정보에 억세스하는 것이 요구되는 경우에, 이것은 직렬로(즉, 제1 모듈을 이용하여 제1 데이터 소스에 대해 단계(1022-1046)를 수행하고, 그 다음에, 적절한 드라이버를 이용하여 제2 데이터 소스에 대해 단계(1022-1046)를 수행함으로써) 수행되거나, 또는 병렬로(즉, 각각의 정보 모듈 상에서 나중의 단계를 수행하기 전에 적절한 드라이버를 이용하여 각각의 원하는 데이터 소스에 대한 단계를 수행함으로써) 수행될 수 있다.Once, for example, by step 1018, 1020 it is determined which data is to be imported or updated, general information is loaded at step 1022. If it is desired to access information from two or more data sources, this is performed in series (ie, steps 1022-1046 for the first data source using the first module, and then). By performing steps 1022-1046 on the second data source using an appropriate driver, or in parallel (ie, using an appropriate driver before performing a later step on each information module). By performing the steps for the desired data source).

일반적인 정보는 데이터 소스 내의 데이터의 구조에 관한 정보를 포함한다. 단계(1022)에서 로드되는 일반적인 정보의 형태는 소스 데이터의 다양한 형태에 따라 변하게 된다. 예를 들어, 도4a 내지 도4f에 도시된 것과 같은 데이터베이스와 관련하여 사용하기 위해 기록 또는 구성된 펑션(903)에 있어서, 일반 정보는 예를 들어, 데이터 소스(806)에서 사용된 계정 또는 다른 카테고리의 신분을 포함할 수도 있다. 한편, 만일 펑션(903)이 도1에 도시된 데이터 소스와 관련하여 사용하기 위해 기록 또는 구성된 경우에는, 여전히, 얼마나 많은 구성요소가 데이터 소스에 사용되었는지 판단할 것이 요구될 수도 있지만, 이 경우에, 이 정보는 데이터 소스(806)에서 발견되는 플랫 파일(101a-101f)의 수에 의해 결정되게 된다. 일반 정보는 또한, 데이터 소스(806)에서 얼마나 많은 프로젝트(112), 얼마나 많은 제품(114) 및/또는 제품 라인(116), 또는 얼마나 많은 자회사(118)가 정의되어 있는지와 같은 정보를 포함할 수 있다. 일반 정보는 또한, 회사명, 회계년도의 첫 번째 달, 및 일반적으로, (단계(1024,1033,1036)에서 로드되는, 통상적으로는 루프에서 로드되는 정보와 대비하여) 한 번에 로드될 수 있는 다른 정보를 포함할 수 있다. 만일 "일반 정보 로딩" 펑션(903)이 도6에 도시된 데이터 소스와 관련하여 사용하기 위해 구성된 드라이버에 제공되면, 데이터베이스 내의 위치(602)의 번호와 같은 일반 정보가 단계(1022)에서 로드될 수 있다.General information includes information about the structure of the data in the data source. The form of general information loaded in step 1022 will vary depending on the various forms of source data. For example, in a function 903 recorded or configured for use in connection with a database such as that shown in FIGS. 4A-4F, the general information may be, for example, an account or other category used in the data source 806. It may also include your identity. On the other hand, if the function 903 is recorded or configured for use in connection with the data source shown in Fig. 1, it may still be required to determine how many components are used in the data source, but in this case This information will be determined by the number of flat files 101a-101f found in the data source 806. The general information may also include information such as how many projects 112, how many products 114 and / or product lines 116, or how many subsidiaries 118 are defined in the data source 806. Can be. The general information can also be loaded at a time (as opposed to the company name, the first month of the fiscal year, and, in general, the information that is loaded in steps 1024, 1033, 1036, typically loaded in a loop). May contain other information that may be present. If the " general information loading " function 903 is provided to a driver configured for use in connection with the data source shown in Figure 6, then general information such as the number of locations 602 in the database can be loaded in step 1022. Can be.

메인 프로세스(802)는 또한, 데이터 정의(definitions)를 로드하기 위해 적절한 드라이버 또는 모듈(804)의 펑션(904)을 호출 또는 활성화시킬 수 있다. 데이터 정의는 데이터 소스(806) 내의 데이터의 특정 클래스 또는 카테고리에 대한 식별자로서 저장된 텍스트명, 필드 크기, 데이터의 형태(스트링, 정수 또는 10진수, 10진 자리의 번호) 및 데이터의 다양한 카테고리에 대한 이와 유사한 특성과 같은 정보를 포함할 수 있다. 바람직하게는, 데이터 정의의 로딩은 새로운 데이터베이스 상에서 수행될 리포팅 또는 분석의 형태에 대해 필요한 모든 구조 및 데이터를 포함하게 되는 하나 또는 그 이상의 새로운 데이터베이스(808)를 생성하기 위해 요구되는 바와 같이, 데이터 소스 내의 데이터 요소 및 데이터 소스 내의 정보의 아키텍처 또는 구조의 표시를 저장하는데 필요한 정보를 얻기 위한 데이터의 문의(interrogation)를 포함한다. "데이터 정의 로딩" 단계에서의 데이터의 문의는 그것이 사실상 어떠한 데이터 소스에도 합치될 수 있고, 예를 들어, 리포팅 및 분석을 위해 데이터 소스의 표준 형식을 저장하는데 필요한 것을 식별할 수 있다는 점에서 지능형 문의이다. 도4a 내지 도4f의 예에서, 소스 데이터의 아키텍처를 표시하기 위해 필요한 정보는 예를 들어, 4개의 계정 부분의 명칭(계정, 회사, 피고용인 및 위치) 뿐만 아니라, 소정의 스트링 계정 부분을 저장하기 위해 필요한 데이터 형태(예, 수치 또는 스트링) 및 길이도 포함하게 된다. 도6의 예에서, 데이터 소스의 아키텍처를 표시하기 위해 필요한 정보는 계정 부분의 명칭(위치 및 날짜) 뿐만 아니라 그 데이터에 대해 사용된 기준의 명칭(단위)을 저장하는 것을 포함한다. 문의는 예를 들어, 송장(invoice) 번호와 같이, 로드될 수 있는 다른 선택적인 데이터를 식별하는 것을 포함할 수 있다. 수행되는 문의의 특정 형태는 분석되는 특정 데이터 소스의 특성에 의존하게 되며, 따라서, 각각의 드라이버(804)에 따라 다르다. 일반적으로, 데이터 또는 정보를 로딩하는 단계(1022,1024,1033,1036)는 드라이버(804) 내의 펑션에 의해 수행되고, 정보를 세이브하는 단계(1026,1028,1030,1032,1034,1038)는 메인 프로세스(802)에 의해 수행된다.The main process 802 may also call or activate the function 904 of the appropriate driver or module 804 to load the data definitions. Data definitions are stored as identifiers for specific classes or categories of data in data source 806, text names stored, field sizes, types of data (strings, integers or decimal numbers, decimal digits), and various categories of data. Information such as similar characteristics can be included. Preferably, the loading of data definitions is as required to create one or more new databases 808 that will contain all the structures and data necessary for the type of reporting or analysis to be performed on the new database. Interrogation of the data to obtain the information necessary to store an indication of the architecture or structure of the data element within and the information within the data source. The querying of data in the "loading data definition" phase is an intelligent query in that it can be matched to virtually any data source and can identify what is required to store the standard format of the data source, for example for reporting and analysis. to be. In the example of Figures 4A-4F, the information needed to indicate the architecture of the source data is for example stored in a given string account part as well as the names of four account parts (account, company, employee and location). It also includes the data type (eg, numeric or string) and length needed. In the example of Figure 6, the information needed to indicate the architecture of the data source includes storing the name (unit and date) of the criteria used for that data as well as the name (location and date) of the account portion. The query may include identifying other optional data that may be loaded, such as, for example, an invoice number. The particular type of query that is performed will depend on the characteristics of the particular data source being analyzed and, therefore, depends on each driver 804. In general, the steps of loading data or information (1022, 1024, 1033, 1036) are performed by a function in the driver 804, and saving the information (1026, 1028, 1030, 1032, 1034, 1038) Performed by the main process 802.

메인 프로세스(802)는 다음에, 데이터베이스 리포지토리(repository)를 식별 또는 생성하게 되는데(단계 1026), 즉, 데이터 소스(806)로부터 로드된 정보가 세이브되게 되는 위치로서 작용하게 되는 새로운 데이터베이스(808) 내의 파일 또는 다른 데이터 저장 구조를 식별 또는 생성하게 된다. 갱신은 통상적으로, 새로운 데이터베이스 또는 데이터베이스 테이블을 생성하는 것을 필요로 하지 않는데, 그 이유는 갱신이 통상적으로는 단순히 기존의 데이터베이스 내의 기존의 테이블에 추가하는 것이기 때문이다.The main process 802 then identifies or creates a database repository (step 1026), i.e., a new database 808 that acts as a location from which information loaded from the data source 806 will be saved. Identify or create a file or other data storage structure within. Updates typically do not require creating a new database or database table, because updates are typically simply adding to existing tables in an existing database.

다음에, 메인 프로세스(802)는 소스 데이터로부터 새로운 데이터베이스(808)로 세이브된 데이터를 저장하기 위해 사용되게 되는 데이터베이스 테이블을 생성하기 위해 하나 또는 그 이상의 드라이버의 적절한 펑션(905)을 호출한다(단계 1028). 데이터베이스 테이블이 생성되게 되는 방식은 바람직하게는 데이터 소스(806) 및 데이터의 구조와 예를 들어, 분석, 리포트 생성 등을 위해 새로운 데이터베이스(808)가 사용되게 되는 방식을 고려한다. 생성된 특정 테이블은 (예를 들어, 단계(1022,1024)에 의해 결정되는 바와 같이) 데이터 소스(806) 내의 정보의 특성에 따라 변화되기 때문에, 데이터베이스 테이블을 생성하는 것은(단계 1028) 억세스를 위해 사용되는 특정 데이터베이스를 위해 구성된 드라이버(804)에 의해 제공되는 펑션이다. 예를 들어, "데이터베이스 테이블 생성" 펑션(905)이 도4a 내지 도4f에 도시된 바와 같은 데이터 소스와 관련하여 사용하기 위해 기록 또는 구성되는 경우에, 생성되는 데이터베이스 테이블은 예를 들어, 계정 테이블, 피고용인 테이블, 자회사 테이블(계정의 롤업이 될 수 있음), 및 세부사항 테이블(보다 상세하게 후술됨)을 포함할 수 있으며, 반면에, 도7a 내지 도7d에 도시된 데이터베이스와 관련하여 사용하기 위해 구성된 드라이버에 기록 또는 제공된 "데이터베이스 테이블 생성" 펑션은 위치 테이블, 날짜 테이블, 시간 테이블, 단위 테이블 및 세부사항(detail) 테이블을 포함할 수 있다. 바람직하게도, 새로운 데이터베이스(808)에서 생성된 테이블은 그것이 다양한 데이터 소스(806)에서 발견될 수도 있는 사실상 어떤 형태의 데이터 정의 또는 구조도 수용할 수 있다는 점에서 동적인 구조 또는 아키텍처를 갖는다. 일실시예에서, 새로운 데이터베이스(808)는 기본적으로 리포트 및 분석을 생성하는 것과 같은 정보를 출력하기 위해 사용되도록 의도된 것이며, 따라서, 후술되는 바와 같이, 이용가능한 출력 및 데이터 분석의 형태에서의 높은 유연성 및 이와 같은 분석 및/또는 출력의 비교적 빠른 실행과 같은 우수한 출력 성능을 제공하도록 구성되는 것이 바람직하다. 이와 관련하여, 한 데이터베이스가 소정의 다른 가능한 구성의 속도 또는 유연성 보다 양호한 출력의 속도 또는 유연성을 제공한다면, 그것은 출력의 속도 및/또는 유연성에 대해 최적화된 것이다. 그러므로, 이와 관련하여, "최적화된다"는 것이 반드시 수학적으로 정확한 최적화를 요구하는 것은 아니다. 일실시예에서는, 단계(1028)에서, 3개의 일반적인 형태의 테이블, 즉, (적절한 경우에 롤업 테이블을 포함하는) 다수의 카테고리 테이블, 적어도 하나의 세부사항 테이블 및 적어도 하나의 엔트리 테이블이 제공된다. 바람직하게는, 카테고리 테이블은 특정 데이터 포인트 또는 레코드가 분류될 수 있는 각각의 방식에 대해 제공된다. 예를 들어, 만일 "데이터베이스 테이블 생성" 펑션(905)이 도4a 내지 도4f에 도시된 바와 같은 데이터베이스와 함께 사용하기 위해 구성된 드라이버(804)에서 제공되면, 도12에 도시된 바와 같이, 새로운 데이터베이스는 예를 들어, 계정의 모든 가능한 계정 카테고리를 기입하는 계정 테이블(1203), 데이터 소스(806)에서 발견되는 모든 가능한 자회사를 기입하는 자회사 테이블(1230), 데이터 소스(806)에서 주목되는 모든 제품을 기입하는 제품 테이블(1232), 데이터 소스(806)에서 주목되는 모든 피고용인을 기입하는 피고용인 테이블(1216), 및 데이터 소스(806)에서 주목되는 다양한 위치, 판매지역 등을 기입하는 위치 테이블(1234)을 포함하는 다수의 카테고리 테이블(1202)을 포함하게 된다. 도시된 실시예에서, 각각의 카테고리 테이블(1202) 내의 각각의 레코드 또는 항목은 후술되는 바와 같이 세부사항 테이블에 사용하기 위한 인덱스와 연관되어 있다.Next, the main process 802 invokes the appropriate function 905 of one or more drivers to create a database table that will be used to store the saved data from the source data into the new database 808 (step). 1028). The manner in which the database tables are created preferably takes into account the data source 806 and the structure of the data and the manner in which the new database 808 will be used, for example for analysis, report generation, and the like. Since the particular table created varies according to the nature of the information in the data source 806 (eg, as determined by steps 1022 and 1024), creating a database table (step 1028) provides access. Function provided by the driver 804 configured for the particular database used for the purpose. For example, if the "create database table" function 905 is written or configured for use in connection with a data source as shown in Figures 4A-4F, the generated database table may be, for example, an account table. , An employee table, a subsidiary table (which may be a rollup of the account), and a detail table (described in more detail below), while using in connection with the database shown in FIGS. 7A-7D. The "create database table" function written to or provided to a driver configured for this may include a location table, a date table, a time table, a unit table and a detail table. Preferably, a table created in the new database 808 has a dynamic structure or architecture in that it can accommodate virtually any form of data definition or structure that may be found in various data sources 806. In one embodiment, the new database 808 is intended to be used primarily for outputting information, such as generating reports and analysis, and therefore, as described below, high in the form of available output and data analysis. It is desirable to be configured to provide good output performance, such as flexibility and relatively fast execution of such analysis and / or output. In this regard, if one database provides a speed or flexibility of output that is better than the speed or flexibility of any other possible configuration, it is optimized for the speed and / or flexibility of the output. Thus, in this regard, "optimized" does not necessarily require mathematically accurate optimization. In one embodiment, in step 1028, three general types of tables are provided, namely a plurality of category tables (including rollup tables, where appropriate), at least one detail table and at least one entry table. . Preferably, a category table is provided for each manner in which a particular data point or record can be sorted. For example, if the " create database table " function 905 is provided in a driver 804 configured for use with a database as shown in Figs. 4A-4F, then as shown in Fig. 12, a new database is shown. For example, an account table 1203 that lists all possible account categories of an account, a subsidiary table 1230 that lists all possible subsidiaries found in the data source 806, and all products noted in the data source 806. A product table 1232 for filling out an employee table, an employee table 1216 for filling out all employees paying attention in the data source 806, and a location table for filling out various locations, sales regions, etc., which are noted in the data source 806; Will include a plurality of category tables 1202. In the illustrated embodiment, each record or item in each category table 1202 is associated with an index for use in the details table as described below.

도12에 도시된 실시예에서는, 일단 점유되면, 데이터 소스(806)에서의 각각의 회계 엔트리 또는 트랜잭션에 대한 레코드를 갖게 되는 세부사항 테이블(1240)이 제공되게 된다. 도12에 도시된 실시예에서는, 필드(1244)에 대해, 데이터 소스에서의 트랜잭션(도4a)에 대응하는, 날짜 필드(1242b), 종류 필드(1242c), 수량 필드(1242d), 및 총계 필드(1242e)가 제공된다. 각각의 레코드에 대한 식별자 번호 또는 인덱스 번호를 저장하기 위한 인덱스 필드(1242a)도 제공된다. 또한, 각각의 레코드에 대해, 계정 카테고리(1242f), 자회사 카테고리(1242g), 제품 카테고리(1242h), 및 피고용인 카테고리(1242i)를 포함하여, 도12의 예에서 일반 정보 로딩 단계(1022)에서 정의된 각각의 카테고리에 대한 적절한 정보의 표시를 저장하기 위해 독립된 필드가 제공된다. 일반적으로, 데이터를 분석 또는 컴퓨팅하기 위해 필요한 만큼, 데이터 소스(806)에 존재하는 많은 상이한 필드, 즉 카테고리를 제공하는 것이 바람직하다. 그러므로, 그 트랜잭션이 관련되어 있는 계정에 따라 트랜잭션을 그룹화하는 리포트를 출력하는 것이 바람직할 수 있기 때문에, 계정 카테고리를 구비하는 것이 유용하다. 또한, 원하는 회계 목적에 따라, 각각의 자회사에 대해 독립된 리포트를 프린트하거나 또는 트랜잭션이 자회사에 의해 그룹화되는 리포트를 프린트하는 것이 바람직할 수도 있으며, 따라서, 자회사 카테고리(1242g)를 구비하는 것이 유용하다. 일반적으로, 데이터를 선택, 그룹화, 리포팅, 프린팅 또는 분석하는 각각의 방법에 대해, 독립된 필드가 세부사항 테이블(1240)에 제공될 수도 있다.In the embodiment shown in FIG. 12, once occupied, a detail table 1240 is provided that will have a record for each accounting entry or transaction at the data source 806. In the embodiment shown in FIG. 12, for field 1244, a date field 1242b, a kind field 1242c, a quantity field 1242d, and a total field, corresponding to a transaction (FIG. 4A) at the data source. 1242e is provided. An index field 1242a is also provided for storing an identifier number or an index number for each record. In addition, for each record, including the account category 1242f, the subsidiary category 1242g, the product category 1242h, and the employee category 1242i, as defined in the general information loading step 1022 in the example of FIG. Independent fields are provided to store an indication of the appropriate information for each category. In general, it is desirable to provide as many different fields, or categories, as are present in the data source 806 as needed to analyze or compute the data. Therefore, it is useful to have an account category because it may be desirable to output a report that groups the transactions according to the account with which the transaction is associated. In addition, depending on the desired accounting purpose, it may be desirable to print an independent report for each subsidiary or to print a report in which transactions are grouped by subsidiary, thus having a subsidiary category 1242g. In general, separate fields may be provided in the detail table 1240 for each method of selecting, grouping, reporting, printing, or analyzing data.

도12에 도시된 데이터베이스의 구조는 도4a 내지 도4f에 도시된 데이터 소스의 구조 및 도1에 도시된 데이터 소스의 구조와 현저한 차이가 있을 수 있다. 예를 들어, 도4a 내지 도4f에 도시된 구조에서는, 특정 트랜잭션(도4a)이 특정 계정(도4b)과 연관되는 방식이 독립된 링크 테이블(도4d)에 표시되어 있지만, 도12의 예에서는, 적절한 계정(1242f)에 대한 인덱스가 트랜잭션 정보를 포함하는 동일한 레코드의 그 고유의 필드(1244)에 저장되게 된다. 그러므로, 비록 도12에 도시된 바와 같은 테이블을 가진 데이터베이스(808)가 도1에 도시된 바와 같은 데이터 소스아 또는 도4a 내지 도4f에 도시된 바와 같은 데이터 소스(또는 다른 방식으로 구성된 데이터 소스)에서 발견되는 정보를 저장할 수 있지만, 도12의 예의 데이터베이스의 구조 또는 아키텍처는 도1에 도시된 데이터 소스 또는 도4a 내지 도4f에 도시된 데이터 소스의 구조와는 다르다. 이와 유사하게, 비록 도12 및 도1의 2가지 구조에 저장된 정보의 형태가 유사하지만, 도12의 관계 데이터베이스 구조는 도1에 도시된 플랫 파일 구조와는 다르다.The structure of the database shown in FIG. 12 may differ significantly from the structure of the data source shown in FIGS. 4A to 4F and the structure of the data source shown in FIG. For example, in the structure shown in Figs. 4A to 4F, the manner in which a specific transaction (Fig. 4A) is associated with a specific account (Fig. 4B) is shown in an independent link table (Fig. 4D). The index for the appropriate account 1242f is then stored in its own field 1244 of the same record containing the transaction information. Therefore, although a database 808 having a table as shown in Fig. 12 is a data source as shown in Fig. 1 or a data source (or other configured data source) as shown in Figs. 4A to 4F. Although the information found in FIG. 12 may be stored, the structure or architecture of the database of the example of FIG. 12 is different from that of the data source shown in FIG. 1 or the data source shown in FIGS. 4A-4F. Similarly, although the form of the information stored in the two structures of FIG. 12 and FIG. 1 is similar, the relational database structure of FIG. 12 differs from the flat file structure shown in FIG.

메인 프로세스(802)는 예를 들어, 도10의 나중의 단계 및/또는 나중에 수행되는 갱신에 사용하기 위해, 예를 들어, 데이터베이스(808)에 제공된 추가적인 테이블에, (단계 1022에서 로드된) 일반 정보를 세이브하고(단계 1030), (단계 1024에서 로드된) 데이터 정의를 세이브하도록(단계 1032) 구성될 수 있다. The main process 802 is generic (loaded in step 1022), for example, to additional tables provided in the database 808, for example for use in later steps and / or later updates of FIG. And save the information (step 1030) and save the data definition (loaded in step 1024) (step 1032).

메인 프로세스(802)는 단계(1028)에서 생성된 테이블에 대한 데이터 정의 코드(예, 필드폭, 데이터 형태 등)를 새로운 데이터베이스(808)에 로드하기 위해, 하나 또는 그 이상의 드라이버(804)의 적절한 펑션(908)을 이용한다. 일실시예에서는, 이때 롤업 정보도 로드된다. 일반적으로, 롤업 정보는 데이터의 서브-카테고리, 즉, 한 카테고리 테이블 내의 항목의 그룹을 정의하기 위해 사용되는 정보를 말한다. 예로서, 도12에 도시된 바와 같이, 피고용인 카테고리 테이블은 예를 들어, 각각의 회사 피고용인이 배치되거나 책임을 갖고 있는 위치나 사이트 또는 지역을 식별하기 위해 위치 또는 지역과 연관될 수 있다. 예를 들어, 한 회사에 한 판매 지역과 연관된 많은 판매 피고용인이 있을 수 있다. 다른 예로서, 한 회사의 다양한 제품이 제품 라인으로 롤업되거나 또는 그룹화될 수도 있다. 위치 롤업 코드에 대한 필드(1238)를 정의함으로써, 도12의 구조는 판매 지역에 의해 그룹화된 리포트를 출력하는 것을 가능하게 만든다. 롤업은 또한, 평균치, 표준 편차 등과 같은 그룹 데이터의 통계적 분석을 제공하기 위해 사용될 수 있다. 비록 도12의 실시예에서, 위치 롤업 코드에 대한 필드(1238)가 피고용인 카테고리 테이블(1216)의 필드인 것으로 도시되어 있지만, 이 위치 필드(1238)는 또한, 원하는 경우에 세부사항 테이블에 제공될 수도 있다.The main process 802 is responsible for loading one or more drivers 804 to load the data definition code (eg, field width, data type, etc.) for the table created in step 1028 into the new database 808. Use function 908. In one embodiment, rollup information is also loaded at this time. In general, rollup information refers to information used to define a sub-category of data, that is, a group of items within a category table. By way of example, as shown in FIG. 12, an employee category table may be associated with a location or region, for example, to identify a location or site or region where each company employee is placed or responsible. For example, a company may have many sales employees associated with one sales territory. As another example, various products of one company may be rolled up or grouped into a product line. By defining a field 1238 for the location rollup code, the structure of FIG. 12 makes it possible to output a report grouped by sales territory. Rollup can also be used to provide statistical analysis of group data such as mean values, standard deviations, and the like. Although in the embodiment of Figure 12 the field 1238 for the location rollup code is shown to be a field of the employee's category table 1216, this location field 1238 may also be provided in the details table if desired. It may be.

롤업 코드를 로딩하기 위한 펑션(908)이 동작하는 방식은 그것과 함께 작용하도록 구성된 소스 데이터(806)의 형태에 따라 변화되게 되며, 따라서, 상이한 형태의 소스 데이터와 함께 사용하기 위해 상이한 프로그래밍 명령어가 제공될 수 있도록 다양한 드라이버(804)의 펑션으로서 제공된다. 일례로서, "롤업 코드 정의" 펑션(908)은 도4a 내지 도4f에 도시된 데이터베이스와 관련하여 사용하기 위해 구성된 드라이버(804)에 제공될 수 있다. 본 예에서, 위치 필드는 위치 코드 목적을 위해 직접 사용될 수 있는 피고용인 테이블(416)에 이미 정의되어 있다. 이와 대조적으로, 도1에 도시된 실시예에서는, 특정 플랫 파일(101a)과 관련된 피고용인(120)에 대한 위치의 표시가 없다. 그러므로, 일실시예에서는, 도1의 데이터 소스로부터 얻어지는 데이터에 대한 위치 롤업이 가능하지 않을 수도 있다. 그러나, 만일 예를 들어, 회사 내의 각각의 피고용인에 대한 자택주소를 제공하는 다른 파일이 존재한다면, 예를 들어, 개인이 책임질 수 있는 판매 지역을 추정하고, 따라서, 위치 롤업 코드를 추론적으로 정의하기 위해, 각 판매원의 거주 상태를 이용하는 것이 가능할 수 있다. 또한, "롤업 코드 정의" 펑션은 롤업 코드를 정의하기 위해 사용될 수 있는 정보에 대한 억세스를 포함할 수도 있다. 예를 들어, 도6에 도시된 데이터 소스와 관련하여, "롤업 코드 정의" 펑션(908)은 각각의 위치적인 기온 측정소에 대해, 그 측정소가 북반구 측정소인지 또는 남반구 측정소인지를 표시하는 테이블을 그 펑션 내에 포함할 수 있으며, 따라서, 그와 같은 것을 근거로하여 반구 롤업 코드를 생성할 수 있게 된다. 몇몇의 경우에는, 추가적인 롤업 및/또는 구조를 정의하기 위해 데이터베이스 내의 키 워드에 대한 워드 인식 및/또는 탐색을 제공하는 것이 바람직할 수 있다. The way the function 908 for loading the rollup code operates depends on the type of source data 806 configured to work with it, so that different programming instructions may be used for use with different types of source data. It is provided as a function of various drivers 804 to be provided. As an example, a “roll up code definition” function 908 may be provided to a driver 804 configured for use in connection with the database shown in FIGS. 4A-4F. In this example, the location field is already defined in the employee table 416, which can be used directly for location code purposes. In contrast, in the embodiment shown in FIG. 1, there is no indication of the location for employee 120 associated with the particular flat pile 101a. Therefore, in one embodiment, position rollup for data obtained from the data source of FIG. 1 may not be possible. However, if, for example, another file exists that provides a home address for each employee in the company, for example, it estimates the sales region to which the individual can be responsible and, therefore, speculatively defines the location rollup code. In order to do so, it may be possible to use the residence status of each salesperson. The "roll up code definition" function may also include access to information that can be used to define the roll up code. For example, with respect to the data source shown in Figure 6, the "roll up code definition" function 908 creates a table for each positional temperature station that indicates whether the station is a northern hemisphere station or a southern hemisphere station. It can be included in a function, and thus, hemispheric rollup code can be generated based on such a thing. In some cases, it may be desirable to provide word recognition and / or search for keywords in a database to define additional rollup and / or structure.

몇몇의 상황에서는, 롤업 코드가 (예를 들어, 도6의 데이터 소스에 대한 반구 롤업 코드와 같이) 데이터를 분석 또는 그룹화하기 위한 토대로서 데이터 소스에서 사용되지 않은 정보에 관련되게 된다. 그러므로, 이러한 상황에서는, 롤업 코드를 제공하는 것은 데이터 소스(806) 내의 정보를 출력하거나 분석하기 위해 이용할 수 없는(또는 적어도 사용되지 않은) 추가적인 요소를 자동적으로 제공함으로써 데이터의 확장을 제공하는 것을 수반한다. 데이터는 데이터 소스의 데이터의 철저한 분석에 의해 카테고리로 분류되고 그룹화되는 것이 바람직하다.In some situations, the rollup code is associated with information not used in the data source as a basis for analyzing or grouping the data (eg, as a hemisphere rollup code for the data source of FIG. 6). Therefore, in such a situation, providing a rollup code involves providing an extension of the data by automatically providing additional elements that are not available (or at least not used) for outputting or analyzing the information in the data source 806. do. The data is preferably classified and grouped into categories by a thorough analysis of the data of the data source.

이 시스템은 정보 소스(806a-806d) 내의 데이터 또는 그 데이터의 구조에 의존하는 명확도(degree of definiteness)에 의해 결정될 수 있는 소정의 리포팅 관계를 인식하고 추가하도록 구성될 수 있다. 예를 들어, 판매 정보는 (정보 소스(806a-806d)에서 명백한, 또는 전술한 바와 같이 판매원 주소를 이용하여 추정된) 판매 지역에 의해 편성된 판매를 포함할 수 있다. 이들 지역은 또한, 본 발명의 일실시에에 따라, 그 판매 지역에 대한 부사장의 관계가 정보 소스(806a-806d)로부터 명백하게 발견되거나 또는 추정될 수 있다면, 그 각각이 2개 또는 그 이상의 판매 지역을 책임질 수 있는 둘 또는 그 이상의 부사장에 의한 것과 같이, 다른 그룹에 의해 검토되거나 분석될 수도 있다. The system can be configured to recognize and add certain reporting relationships that can be determined by the degree of definiteness that depends on the data in the information sources 806a-806d or the structure of the data. For example, sales information may include sales organized by sales region (obvious in information sources 806a-806d or estimated using salesperson addresses as described above). These regions may also be two or more sales regions, if, in accordance with one embodiment of the present invention, the vice president's relationship to that sales region may be apparently found or estimated from information sources 806a-806d. It may be reviewed or analyzed by other groups, such as by two or more vice presidents responsible for

바람직하게는, 이와 같은 추가적인 롤업 또는 확장은 롤업 기준에 따라 데이터를 검토하는 것이 의미가 있을 수 있다는 것을 그 데이터가 나타내는 경우에만 정의된다. 예를 들어, 일실시예에서, 확장 또는 추가적인 관계는 바람직하게는, 특정 필드 또는 파라미터를 포함하는 레코드의 수 보다 적은 수의, 그 필드 또는 파라미터에 대한 하나 이상의 값이 존재하지 않는 한, 자동적으로 추가되지 않는다. 예를 들어, 만일 상이한 지역에 대한 책임이 있는 2명의 다른 부사장이 있다면, 각각의 부사장에 대응하는 판매량에 따라 판매를 조사하는 것이 의미가 있을 수도 있다. 그러나, 도6 및 도7의 예에서, 만일 모든 리포트하는 측정소가 열대 지역에 위치되어 있다면, 이 시스템은 강설량의 카테고리에 따라 기상 데이터를 검토하기 위한 롤업 또는 확장을 자동적으로 생성하지 않게 되는데, 그 이유는 본 예에서는, 모든 측정소가 강설량에 대해 제로를 보고할 것이기 때문이다. 그러므로, 사무용 데이터베이스에 있어서, 이 시스템은 바람직하게도, 예를 들어, 한명 이상의 판매원, 하나 이상의 지역 및/또는 하나 이상의 제품이 있는지 판단하기 위해 소스 데이터베이스(806a-806d) 내의 데이터를 검사하게 된다. 만일 데이터베이스의 다양한 레코드에 대한 하나의 필드에 하나 이상의 값이 존재하면, 시스템은 예를 들어, 값의 평균 또는 합계(예, 판매 평균 또는 합계, 비용 등)에 의해 그룹화되는 것과 같이, 그 필드에 따라 데이터를 검토하기 위한 옵션을 자동적으로 제공하도록 구성될 수 있다. 일실시예에서, 이것은 Microsoft Excel "pivot" 테이블을 생성함으로써 실현된다.Preferably, such additional rollup or extension is defined only if the data indicates that it may make sense to review the data according to rollup criteria. For example, in one embodiment, the extended or additional relationship is automatically automatically, unless there is one or more values for that field or parameter, preferably less than the number of records containing that particular field or parameter. Not added. For example, if there are two different vice presidents who are responsible for different regions, it may make sense to investigate sales according to the sales volume corresponding to each vice president. However, in the example of Figures 6 and 7, if all reporting stations are located in the tropics, the system will not automatically generate rollups or extensions to review weather data according to snowfall categories. This is because in this example, all stations will report zero for snowfall. Thus, for an office database, the system preferably checks the data in the source databases 806a-806d to determine if there are, for example, one or more salespeople, one or more regions, and / or one or more products. If there is more than one value in one field for various records in the database, the system may enter the field, for example, as grouped by the average or sum of the values (eg, sales average or sum, cost, etc.). Accordingly can be configured to automatically provide an option for reviewing the data. In one embodiment, this is realized by creating a Microsoft Excel "pivot" table.

일례로서, 도4a 내지 도4e를 참조하면, 도4d의 테이블은 소정의 트랜잭션에 대해, 어떤 피고용인이 그 트랜잭션과 연관되어 있는지 판단하기 위해 사용될 수 있다. 도4c는 소정의 피고용인에 대해, 그 피고용인이 북서지역, 남동지역, 또는 중앙지역과 연관되어 있는지 판단하기 위해 사용될 수 있다. 만일 모든 트랜잭션이 중앙지역의 피고용인과 연관되어 있다면, 지역에 의해 트랜잭션을 디스플레이하는데 있어서의 의미는 없다. 그러나, 도4d의 테이블에서의 트랜잭션이 적어도 2개의 상이한 지역의 피고용인과 연관되어 있다면, 시스템은 그 트랜잭션과 연관된 피고용인과 관련된 위치 또는 지역에 의해 분류된 트랜잭션의 평균 또는 합계(및/또는 도4b로부터 판단되는 바와 같은 특정 계정 형태의 트랜잭션)를 디스플레이하는 롤업을 자동적으로 생성하도록 구성될 수 있다. As an example, referring to FIGS. 4A-4E, the table of FIG. 4D may be used to determine, for a given transaction, which employee is associated with that transaction. 4C can be used for a given employee to determine if the employee is associated with a northwest region, a southeast region, or a central region. If all transactions are associated with employees in the central region, there is no meaning in displaying transactions by region. However, if a transaction in the table of FIG. 4D is associated with employees in at least two different regions, the system may average or sum (and / or from FIG. 4B) transactions classified by location or region associated with the employee associated with the transaction. Can be configured to automatically generate a rollup that displays a particular account type of transaction as determined.

롤업을 정의하는 것에 더하여, 이 프로세스는 또한 선택적 참조 필드를 저장할 수 있다. 일반적으로, 선택적 참조 필드는, 리포트에 포함시키는 것이 요구될 수도 있지만, 프리-텍스트 필드(코멘트, 메모 필드, 송장 번호 등)와 같이 데이터를 그룹화하기 위해서는 통상적으로 사용되지 않는 필드를 말한다.In addition to defining rollups, this process can also store optional reference fields. In general, an optional reference field refers to a field that is not normally used to group data, such as a pre-text field (comment, memo field, invoice number, etc.), although it may be required to include it in the report.

데이터 정의 코드 및 롤업의 로딩 이후에, 이들 데이터 정의 코드 및 롤업은 예를 들어, 다양한 카테고리 테이블(1202)로 카테고리를 기입함으로써, 새로운 데이터베이스(808)에 세이브된다(단계 1034). 단계(1033,1034)에서의 데이터 정의 및 롤업 코드의 로딩 및 세이브는 특정 카테고리(도4a 내지 도4f의 예에서, 특정 계정, 회사, 피고용인 및 위치)를 로딩하고 세이브하기 위해 루프 방식으로 수행된다(단계 1035). After loading of the data definition codes and rollups, these data definition codes and rollups are saved to the new database 808, for example by writing the categories into the various category tables 1202 (step 1034). The loading and saving of the data definition and rollup code in steps 1033 and 1034 is performed in a looped manner to load and save a specific category (in the example of FIGS. 4A-4F, a specific account, company, employee and location). (Step 1035).

다시 회고해 보면, 도시된 실시예에 따르면, 단계(1024)는 카테고리(예, 계정, 회사, 피고용인 및 위치) 뿐만 아니라 그 데이터 형태(예, 스트링 또는 수치)도 정의한다. 단계(1028)는 단계(1024)에서 정의된 카테고리 테이블(및 단계 1022에서 정의된 다른 테이블)을 생성한다. 단계(1032)는 데이터 정의를 통상적으로 한 표준 테이블에 세이브한다. 단계(1033,1034)는 데이터 정의 및 롤업 코드를 로딩하고 세이브한다.Looking back, in accordance with the illustrated embodiment, step 1024 defines the category (eg, account, company, employee and location) as well as its data type (eg string or numeric value). Step 1028 generates the category table defined in step 1024 (and other tables defined in step 1022). Step 1032 saves the data definition to one standard table. Steps 1033 and 1034 load and save the data definition and rollup code.

프로세스의 이 시점에서, 비록 데이터 구조에 관련된 정보가 새로운 데이터베이스(808)에 배치되었지만, 소스 데이터(806)의 주제가 되는 데이터(예, 회계 소스 데이터의 경우에는 회계 엔트리 또는 트랜잭션, 기상 기온 소스 데이터의 경우에는 기온 데이터)는 새로운 데이터베이스(808)로 로딩되지 않았다. 따라서, 메인 프로세스(802)는 적절한 드라이버(804) 내의 펑션(909)을 호출 또는 활성화시켜, 데이터를 로딩하고(단계 1036), 데이터를 세이브하고(단계 1038), 모든 원하는 데이터가 로딩되어 세이브될 때까지(단계 1040) 프로세스를 반복한다(단계 1039). 그러므로, 이러한 절차(1036,1038,1040)의 종료점에서, 새로운 데이터베이스(808)는 하나 또는 그 이상의 데이터 소스(806)로부터의 데이터에 의해 점유된다. At this point in the process, although information related to the data structure has been placed in the new database 808, the data that is the subject of the source data 806 (e.g., accounting entries or transactions in the case of accounting source data, Case temperature data) has not been loaded into the new database 808. Thus, the main process 802 calls or activates the function 909 in the appropriate driver 804 to load data (step 1036), save the data (step 1038), and load all desired data to be saved. The process is repeated until step 1040, step 1039. Therefore, at the end of this procedure 1036, 1038, 1040, the new database 808 is occupied by data from one or more data sources 806.

상이한 구조를 가진 및/또는 상이한 브랜드 또는 형태의 소프트웨어를 이용하여 생성된 2개 또는 그 이상의 데이터 소스가 도10의 절차를 이용하여 조합될 때, 이들 상이한 형태의 소스로부터의 데이터는 예를 들어, 도12에 도시된 바와 같은 공통 데이터베이스 구조 내로 점유될 수 있다. 이것은 바람직하게는 출력의 유연성 및 속도를 제공하도록 최적화된, 데이터에 대한 공통의 또는 표준화된 분석 및 리포팅을 용이하게 한다.When two or more data sources having different structures and / or created using different brands or types of software are combined using the procedure of FIG. 10, the data from these different types of sources may, for example, It may be occupied within a common database structure as shown in FIG. This facilitates common or standardized analysis and reporting on data, preferably optimized to provide flexibility and speed of output.

도10의 실시예에서, 메인 프로세스(802)는 이제, 요약 질의(summarization queries)와 같은 데이터 질의를 구축할 수 있으며, 원한 다면 실행할 수 있다. 일반적으로, 구축될 수 있는 적어도 3가지 형태의 질의가 있다. 세부사항 테이블 내의 엔트리의 수 또는 소정의 데이터 범위에 대한 엔트리의 수를 제공하는 질의와 같이, 도10의 절차를 이용하여 생성된 모든 새로운 데이터베이스(808)에 공통적인 것이 되는 제1 형태의 질의가 제공될 수 있다. 이미 제공되었을 수도 있는 롤업을 포함하여, 적어도 부분적으로는, 하나 또는 그 이상의 데이터 소스(806)에 관해 획득된 데이터 정의 및 일반 정보에 따라 다른 질의가 구축될 수 있으며, 그에 따라, 원하는 경우에는 특정 데이터 소스에 특정된 드라이버(804)의 일부로서 제공될 수도 있다. (예를 들어, 도4e에 도시된 바와 같은) 원래의 데이터 소스에서 사용된 질의 또는 리포트를 복제하거나 또는 포함시키기 위해 제3 형태의 질의가 제공될 수 있다.In the embodiment of FIG. 10, main process 802 can now build data queries, such as summarization queries, and execute if desired. In general, there are at least three types of queries that can be built. A first type of query that is common to all new databases 808 created using the procedure of FIG. 10, such as a query that provides the number of entries in a detail table or the number of entries for a given data range. Can be provided. Other queries may be built, at least in part, depending on the data definitions and general information obtained about one or more data sources 806, including rollups that may have already been provided, and, if desired, It may be provided as part of the driver 804 specific to the data source. A third form of query may be provided to duplicate or include a query or report used in the original data source (eg, as shown in FIG. 4E).

새로운 데이터베이스(808)가 점유된 이후에, 시스템은 일실시예에 따라, 그 시스템이 적절하게 동작했는지 검증하기 위해, 자동적으로 데이터의 소정의 감사 또는 검사를 수행하게 된다. 다양한 형태의 검사가 포함될 수 있다. 데이터가 변조되지 않았는지 검증하기 위해, 새로운 데이터베이스(808)의 데이터 샘플이 소스(806a-806d) 내의 대응하는 데이터와 비교될 수 있다. 또한, 필요한 구조가 존재하는지 검증하기 위해 새로운 데이터베이스(808)가 검사될 수 있다. 예를 들어, 회계 데이터베이스의 경우에, 새로운 데이터베이스(808)는 필요한 계정 부분이 존재하는지 판단하기 위해 자동적으로 검사될 수 있다. 롤업 또는 다른 정의된 확장이 비어있지 않다는 것을 확인하기 위한 것과 같이, 비어있는 셋트에 대해 새로운 데이터베이스(808)가 검사될 수 있다.After the new database 808 is occupied, the system will automatically perform some audit or inspection of the data, according to one embodiment, to verify that the system is operating properly. Various forms of testing may be included. To verify that the data has not been modulated, data samples of the new database 808 can be compared with corresponding data in the sources 806a-806d. In addition, a new database 808 can be checked to verify that the required structure exists. For example, in the case of an accounting database, the new database 808 may be automatically checked to determine if the required account portion exists. The new database 808 can be checked for an empty set, such as to ensure that rollups or other defined extensions are not empty.

일단 새로운 데이터베이스(808)가 점유되어 검증되고 적절한 질의가 구축되면, 메인 프로세스(802)는 예를 들어, 메모리를 비워주기 위해, 테이블 및 데이터베이스를 폐쇄하고(단계 1044) 동적 드라이버를 폐쇄할 수 있다(단계 1046).Once the new database 808 is occupied and verified and the appropriate query is built, the main process 802 can close the table and database (step 1044) and close the dynamic driver, for example to free memory. (Step 1046).

비록 본 발명이 하나 또는 그 이상의 데이터 소스 내의 데이터의 표준화된 및/또는 확장된 리포팅 및 분석을 제공하는 것과 관련된 이용에 대해 주로 고찰되었지만, 새로운 데이터베이스(808)와 관련하여 데이터베이스 관리 시스템(예, Microsoft Access, Excel, FoxPro, Btrieve, 등)을 이용한 데이터 입력 및 데이터 저장에 관해 본 발명을 이용하는 것도 가능하다. 비록 본 발명의 주된 이용이 리포팅 및 분석 목적을 위해 새로운 데이터베이스(808)에 동일한 정보의 카피를 유지하면서, 입력 및 저장을 위해 원래의 소스 데이터(806)를 계속해서 사용하는 것을 수반하게 되는 것으로 고찰되었지만, 먼저 전술한 바와 같이 새로운 데이터베이스(808)에 데이터를 저장하고, 그 다음에 새로운 데이터베이스(808)로부터의 정보를 다른 형태의 소스 데이터(806c)로 다운로드하거나 익스포트함으로써, 한 형태의 소스 데이터(806a,806b)로부터 다른 형태(예, 806c)로 데이터를 전달하기 위해 본 발명을 이용하는 것도 가능하다.Although the present invention has been primarily considered for use in connection with providing standardized and / or extended reporting and analysis of data in one or more data sources, a database management system (eg, Microsoft) in connection with a new database 808. It is also possible to use the present invention for data entry and data storage using Access, Excel, FoxPro, Btrieve, etc.). Although the primary use of the present invention is to entail continuing to use the original source data 806 for input and storage, while maintaining the same copy of information in a new database 808 for reporting and analysis purposes. However, as described above, the data is first stored in a new database 808, and then the information from the new database 808 is downloaded or exported to another form of source data 806c, thereby providing one type of source data ( It is also possible to use the present invention to transfer data from 806a, 806b to other forms (eg, 806c).

전술한 설명의 견지에서, 본 발명의 많은 장점이 이해될 수 있다. 본 발명은 사용되는 데이터의 브랜드 또는 형태의 다양성에도 불구하고, 리포팅 및 분석의 표준화를 용이하게 한다. 본 발명은 데이터를 출력 또는 리포팅하는데 있어 최적화되거나 또는 개선된 성능을 제공할 수 있는 시스템을 제공한다. 본 발명은 또한, 데이터 소스의 데이터 리포팅 및 분석에 비해 확장된 데이터 리포팅 및 분석 능력을 제공한다. 소스 데이터의 보다 복합적인 질의를 통해, 회계 시스템과 관련하여, 본 발명은 데이터 소스에 설정된 계정의 차트를 반영할 수 있다. 일실시예에서, 프로세스는 롤업, 선택적 참조 필드, 회계 기간 정보 등 정의된 정보의 일부 또는 전부를 추출한다. 태스크를 자동적으로 수행하고, 사람의 분석에 대한 필요성을 제거(또는 감소)시킴으로써, 본 발명은 이전의 방법 보다 덜 노동-집약적이고, 덜 시간-집약적이며, 몇몇의 경우에는, 이전의 방법에 의해서는 수일 또는 수주일을 필요로하게 되는 상황에서 수분 또는 수시간에 새로운 데이터베이스(808)를 점유시키는 것을 가능하게 만든다. 일실시예에서, 드라이버(804)는 데이터 소스(806)에서 사용된 보안사항, 패스워드, 허가사항 등을 새로운 데이터베이스(808)에서 검출, 분석 및 유지하도록 구성될 수 있다. 이러한 방식에 있어서, 시스템 관리자가 반드시, 원래의 데이터 소스(806)에 의해 유지되는 것에 더하여, 새로운 데이터베이스(808)에서 새로운 독립된 일련의 계정, 패스워드, 허가사항 등을 유지할 필요가 있는 것은 아니다. 바람직하게도, 이 시스템은 매일, 매주 등 실질적으로 소정의 간격으로 갱신을 수행하도록 구성될 수 있다.In view of the foregoing description, many advantages of the invention can be appreciated. The present invention facilitates standardization of reporting and analysis despite the variety of brands or forms of data used. The present invention provides a system that can provide optimized or improved performance in outputting or reporting data. The present invention also provides extended data reporting and analysis capabilities over data reporting and analysis of data sources. Through more complex queries of source data, in connection with an accounting system, the present invention may reflect a chart of accounts set up in the data source. In one embodiment, the process extracts some or all of the defined information, such as rollup, optional reference fields, fiscal period information, and the like. By performing the task automatically and eliminating (or reducing) the need for human analysis, the present invention is less labor-intensive and less time-intensive than the previous method, and in some cases, by the previous method. Makes it possible to occupy a new database 808 in minutes or hours in situations that require days or weeks. In one embodiment, the driver 804 may be configured to detect, analyze, and maintain in the new database 808 security, passwords, permissions, etc. used at the data source 806. In this manner, the system administrator does not necessarily need to maintain a new, separate set of accounts, passwords, permissions, etc., in the new database 808 in addition to being maintained by the original data source 806. Preferably, the system can be configured to perform updates at substantially predetermined intervals, such as daily, weekly, or the like.

본 발명의 다양한 변형 또는 변경도 역시 이용될 수 있다. 다른 관점을 이용하지 않고 본 발명의 일부의 관점만을 이용하는 것도 가능하다. 예를 들어, 새로운 또는 추가적인 롤업을 정의하지 않고 새로운 데이터베이스(808)를 점유시키는 것도 가능하다. 비록 전술한 설명에서, 다양한 드라이버(804)가 독립된 DLL 파일로서 제공될 수 있고, 단순히 적절한 디렉토리에 추가적인 DLL 파일을 저장함으로써 원하는 만큼 추가될 수 있지만, 펑션 모듈에 의해 수행되는 펑션이 독립적으로 저장된 모듈이 아니고 메인 프로세스(802)에 의해 호출되는 서브루틴 또는 그 일부로서 제공되는 본 발명의 실시가능한 버전을 만드는 것도 가능하다.Various modifications or variations of the present invention can also be used. It is also possible to use only some aspects of the invention without using other aspects. For example, it is also possible to occupy a new database 808 without defining new or additional rollups. Although in the foregoing description, various drivers 804 can be provided as separate DLL files, and can be added as desired by simply storing additional DLL files in the appropriate directory, the functions stored by the function modules are independently stored modules It is also possible to make a viable version of the invention provided as a subroutine or part thereof, which is called by the main process 802.

비록 본 발명이 소정의 변형 및 변경으로 양호한 실시예를 이용하여 설명되었지만, 다른 변형 및 변경도 이용될 수 있으며, 본 발명은 첨부된 청구범위에 의해 정의된다.Although the present invention has been described using the preferred embodiments with certain variations and modifications, other variations and modifications may be employed and the invention is defined by the appended claims.

Claims (53)

제1 및 제2의 상이한 데이터 소스 중 하나에 저장될 수 있는 데이터에 억세스하는 것과 관련하여 사용할 수 있는 컴퓨터로 구현되는(computer-implemented) 방법에 있어서,A computer-implemented method that can be used in connection with accessing data that can be stored in one of the first and second different data sources, 상기 제1 데이터 소스와 관련하여 사용하도록 구성된 프로그램 명령어를 포함한 제1 드라이버를 제공하는 제1 단계;Providing a first driver comprising program instructions configured for use in association with the first data source; 상기 제1 데이터 소스에 저장된 정보의 컨텐츠에 자동으로 억세스함으로써, 상기 제1 데이터 소스에 대한 사람의 분석을 필요로하지 않고, 상기 제1 데이터 소스의 데이터 구조에 관한 제1 정보를 자동으로 얻기 위해 상기 제1 드라이버를 이용하는 제2 단계; 및By automatically accessing the content of the information stored in the first data source, thereby automatically obtaining first information about the data structure of the first data source without requiring human analysis of the first data source. A second step of using the first driver; And 제1 데이터베이스에 대한 구조를 정의하기 위해 제1 정보를 이용하는 단계 - 여기서, 상기 제1 데이터베이스에 대한 구조는 상기 제1 데이터 소스의 구조와 상이하고, 상기 제1 데이터베이스에 대한 구조는 또한 상기 제2 데이터 소스의 구조와도 상이하며, 상기 제1 데이터베이스는 상기 제1 정보를 자동으로 얻기 위해 상기 제1 드라이버를 이용하는 상기 단계 이전에는 존재하지 않음 - Using first information to define a structure for a first database, wherein the structure for the first database is different than the structure of the first data source, and the structure for the first database is also the second Also different from the structure of the data source, the first database does not exist prior to the step of using the first driver to automatically obtain the first information. 를 포함하는 방법.How to include. 제1항에 있어서,The method of claim 1, 상기 제1 데이터 소스로부터의 적어도 일부의 정보를 제1 데이터베이스에 저장하기 위해 상기 제1 드라이버를 이용하는 단계Using the first driver to store at least some information from the first data source in a first database 를 더 포함하는 방법.How to include more. 제2항에 있어서,The method of claim 2, 상기 제1 데이터 소스는 제1 데이터 분석을 제공하고, The first data source provides a first data analysis, 상기 방법은 상기 제1 데이터 분석과는 상이한 상기 제1 데이터베이스에서의 데이터 분석을 제공하는 부가적인 단계를 더 포함하는The method further includes the step of providing data analysis in the first database that is different from the first data analysis. 방법.Way. 제1항에 있어서,The method of claim 1, 상기 제1 드라이버는 메인 프로세스에 의해 호출가능한 프로그래밍 코드를 포함하고, The first driver includes programming code callable by the main process, 상기 방법은, 상기 메인 프로세스의 실질적인 수정이 없는 경우에, 상기 제2 데이터 소스와 관련하여 사용하도록 구성된 프로그램 명령어를 포함하는 제2 드라이버를 제공하고 호출함으로써 상기 제2 데이터 소스의 수용을 위해 확장될 수 있는(extensible)The method may be extended for acceptance of the second data source by providing and invoking a second driver comprising program instructions configured for use in connection with the second data source in the absence of substantial modification of the main process. Extensible 방법.Way. 제1항에 있어서,The method of claim 1, 상기 방법은, 상기 제1 드라이버를 수정할 필요없이, 상기 제1 데이터 소스와는 상이한 적어도 하나의 판독가능한 데이터 소스와 함께 사용하도록 구성된 제3 드라이버를 제공하는 단계를 더 포함하는The method further includes providing a third driver configured for use with at least one readable data source different from the first data source, without the need to modify the first driver. 방법.Way. 제1 및 제2의 상이한 데이터 소스 - 상기 제1 및 제2 데이터 소스 중 적어도 하나는 적어도 제1 출력을 생성하도록 구성됨 - 중 하나에 저장될 수 있는 데이터에 억세스하는 것과 관련하여 사용할 수 있는 컴퓨터로 구현되는 방법에 있어서,A computer that can be used in connection with accessing data that may be stored in one of a first and a second different data source, wherein at least one of the first and second data sources is configured to generate at least a first output. In a method implemented, 상기 제1 데이터 소스와 관련하여 사용하도록 구성된 프로그램 명령어를 포함하는 제1 드라이버를 제공하는 단계;Providing a first driver comprising program instructions configured for use in connection with the first data source; 상기 제2 데이터 소스와 관련하여 사용하도록 구성된 프로그래밍 코드를 포함하는, 상기 제1 드라이버와는 상이한 제2 드라이버를 제공하는 단계;Providing a second driver different from the first driver, the programming code configured for use in connection with the second data source; 상기 제1 데이터 소스에 저장된 정보의 컨텐츠에 자동으로 억세스함으로써, 상기 제1 데이터 소스의 데이터 구조에 관한 제1 정보를 얻기 위해 상기 제1 드라이버를 이용하고, 상기 제2 데이터 소스의 데이터 구조에 관한 제2 정보를 얻기 위해 상기 제2 드라이버를 이용하는 단계;Using the first driver to obtain first information about the data structure of the first data source by automatically accessing content of information stored in the first data source, and relating to the data structure of the second data source. Using the second driver to obtain second information; 상기 제1 및 제2 데이터 소스와는 상이한 제1 데이터베이스에 대한 구조를 정의하기 위해 상기 제1 및 제2 정보를 이용하는 단계 - 여기서, 상기 제1 데이터베이스는 상기 제1 및 제2 정보를 얻기 위해 상기 제1 및 제2 드라이버를 이용하는 단계 이전에는 존재하지 않음 -; 및 Using the first and second information to define a structure for a first database different from the first and second data sources, wherein the first database is configured to obtain the first and second information. Does not exist prior to the step of using the first and second drivers; And 상기 제1 및 제2 데이터 소스로부터의 적어도 일부의 정보를 상기 제1 데이터베이스로 저장하기 위해 상기 제1 및 제2 드라이버를 이용하는 단계Using the first and second drivers to store at least some information from the first and second data sources into the first database. 를 포함하는 방법.How to include. 제6항에 있어서,The method of claim 6, 상기 제1 데이터베이스 내의 정보에 근거하여 적어도 제1 리포트를 생성하는 단계Generating at least a first report based on the information in the first database 를 더 포함하는 방법.How to include more. 제7항에 있어서,The method of claim 7, wherein 상기 방법은 상기 제1 리포트와는 상이한 상기 제1 출력에서의 리포트를 제공하는 부가적인 단계를 더 포함하는The method further includes providing an additional report at the first output that is different than the first report. 방법.Way. 제6항에 있어서,The method of claim 6, 각각의 드라이버는 다수의 펑션(functions)을 수행하기 위한 프로그램 명령어를 포함하는Each driver contains program instructions for performing a number of functions. 방법.Way. 제6항에 있어서,The method of claim 6, 상기 제1 데이터베이스는 데이터 출력의 속도에 대해 최적화되는The first database is optimized for the speed of data output 방법.Way. 제6항에 있어서,The method of claim 6, 상기 제1 데이터베이스는 데이터 출력의 유연성에 대해 최적화되는The first database is optimized for flexibility of data output 방법.Way. 제6항에 있어서,The method of claim 6, 상기 제1 데이터베이스는 다수의 카테고리 테이블, 적어도 하나의 세부사항 테이블 및 적어도 하나의 엔트리 테이블을 포함하는The first database includes a plurality of category tables, at least one detail table and at least one entry table. 방법.Way. 제1 및 제2의 상이한 데이터 소스 - 상기 제1 및 제2 데이터 소스 중 적어도 하나는 적어도 제1 출력을 생성하도록 구성됨 - 중 하나에 저장될 수 있는 데이터에 억세스하는 것과 관련하여 사용할 수 있는 장치에 있어서,At least one of a first and a second different data source, wherein at least one of the first and second data sources is configured to generate at least a first output. In 상기 제1 및 제2 데이터 소스에 결합되어, 다음의 단계, 즉,Coupled to the first and second data sources, the following steps, i.e. 상기 제1 데이터 소스와 관련하여 사용하도록 구성된 프로그램 명령어를 포함하는 제1 드라이버를 제공하는 단계;Providing a first driver comprising program instructions configured for use in connection with the first data source; 상기 제2 데이터 소스와 관련하여 사용하도록 구성된 프로그래밍 코드를 포함하는, 상기 제1 드라이버와는 상이한 제2 드라이버를 제공하는 단계;Providing a second driver different from the first driver, the programming code configured for use in connection with the second data source; 상기 제1 데이터 소스에 저장된 정보의 컨텐츠에 자동으로 억세스함으로써, 상기 제1 데이터 소스의 데이터 구조에 관한 제1 정보를 얻기 위해 상기 제1 드라이버를 이용하고, 상기 제2 데이터 소스의 데이터 구조에 관한 제2 정보를 얻기 위해 상기 제2 드라이버를 이용하는 단계;Using the first driver to obtain first information about the data structure of the first data source by automatically accessing content of information stored in the first data source, and relating to the data structure of the second data source. Using the second driver to obtain second information; 데이터 저장 매체에 제3 정보를 저장하기 위해 상기 제1 및 제2 정보를 이용하는 단계 - 여기서, 상기 제3 정보는 제1 데이터베이스에 대한 구조를 설명한 것이고, 상기 제1 데이터베이스는 상기 제1 및 제2 정보를 얻기 위해 상기 제1 및 제2 드라이버를 이용하기 전에는 존재하지 않음 -; 및Using the first and second information to store third information on a data storage medium, wherein the third information describes a structure for a first database, the first database being the first and second information. Does not exist before using the first and second drivers to obtain information; And 상기 제1 및 제2 데이터 소스로부터의 적어도 일부의 정보를 상기 제1 데이터베이스로 저장하기 위해 상기 제1 및 제2 드라이버를 이용하는 단계를 수행하도록 프로그램된 컴퓨터A computer programmed to perform the step of using the first and second drivers to store at least some information from the first and second data sources into the first database. 를 포함하는 장치.Device comprising a. 제1 및 제2의 상이한 데이터 소스 중 하나에 저장될 수 있는 데이터에 억세스하는 것과 관련하여 사용할 수 있는 장치에 있어서,An apparatus that can be used in connection with accessing data that can be stored in one of the first and second different data sources, 상기 제1 데이터 소스와 관련하여 사용하도록 구성된 프로그램 명령어를 포함하는 제1 드라이버 수단;First driver means including program instructions configured for use in connection with the first data source; 상기 제2 데이터 소스와 관련하여 사용하도록 구성된 프로그래밍 코드를 포함하는, 상기 제1 드라이버 수단과는 상이한 제2 드라이버 수단;Second driver means different from said first driver means, including programming code configured for use in connection with said second data source; 상기 제1 데이터 소스에 저장된 정보의 컨텐츠에 자동으로 억세스함으로써, 상기 제1 데이터 소스의 데이터 구조에 관한 제1 정보를 얻기 위해 상기 제1 드라이버를 이용하고, 상기 제2 데이터 소스의 데이터 구조에 관한 제2 정보를 얻기 위해 상기 제2 드라이버를 이용하기 위한 수단;Using the first driver to obtain first information about the data structure of the first data source by automatically accessing content of information stored in the first data source, and relating to the data structure of the second data source. Means for using the second driver to obtain second information; 제1 데이터베이스에 대한 구조를 정의하기 위해 상기 제1 및 제2 정보를 이용하기 위한 수단 - 여기서, 상기 제1 데이터베이스는 상기 제1 및 제2 정보를 얻기 위해 상기 제1 및 제2 드라이버 수단을 이용하기 전에는 존재하지 않음 -; 및Means for using the first and second information to define a structure for a first database, wherein the first database uses the first and second driver means to obtain the first and second information. Does not exist before-; And 상기 제1 및 제2 데이터 소스로부터의 적어도 일부의 정보를 상기 제1 데이터베이스로 저장하기 위해 상기 제1 및 제2 드라이버 수단을 이용하기 위한 수단Means for using the first and second driver means to store at least some information from the first and second data sources into the first database. 을 포함하는 장치.Device comprising a. 제1 및 제2의 상이한 데이터 소스 - 상기 제1 및 제2 데이터 소스 중 적어도 하나는 적어도 제1 출력을 생성하도록 구성됨 - 중 하나에 저장될 수 있는 데이터에 억세스하는 것과 관련하여 사용할 수 있는 컴퓨터 프로그램을 저장하고 있는 컴퓨터-판독가능 매체에 있어서,A computer program that can be used in connection with accessing data that may be stored in one of a first and a second different data source, wherein at least one of the first and second data sources is configured to generate at least a first output. In a computer-readable medium storing the information, 상기 컴퓨터 프로그램은, 다음의 명령어, 즉,The computer program has the following instructions, 상기 제1 데이터 소스와 관련하여 사용하도록 구성된 프로그램 명령어를 포함하는 제1 드라이버를 제공하기 위한 명령어;Instructions for providing a first driver comprising program instructions configured for use in connection with the first data source; 상기 제2 데이터 소스와 관련하여 사용하도록 구성된 프로그래밍 코드를 포함하는, 상기 제1 드라이버와는 상이한 제2 드라이버를 제공하기 위한 명령어;Instructions for providing a second driver different from the first driver, the programming code configured for use in connection with the second data source; 상기 제1 데이터 소스에 저장된 정보의 컨텐츠에 자동으로 억세스함으로써, 상기 제1 데이터 소스의 데이터 구조에 관한 제1 정보를 얻기 위해 상기 제1 드라이버를 이용하고, 상기 제2 데이터 소스의 데이터 구조에 관한 제2 정보를 얻기 위해 상기 제2 드라이버를 이용하기 위한 명령어;Using the first driver to obtain first information about the data structure of the first data source by automatically accessing content of information stored in the first data source, and relating to the data structure of the second data source. Instructions for using the second driver to obtain second information; 제1 데이터베이스에 대한 구조를 정의하기 위해 상기 제1 및 제2 정보를 이용하기 위한 명령어 - 여기서, 상기 제1 데이터베이스는 상기 제1 및 제2 정보를 얻기 위해 상기 제1 및 제2 드라이버를 이용하기 전에는 존재하지 않음 -; 및Instructions for using the first and second information to define a structure for a first database, wherein the first database uses the first and second drivers to obtain the first and second information. Never existed before; And 상기 제1 및 제2 데이터 소스로부터의 적어도 일부의 정보를 상기 제1 데이터베이스로 저장하기 위해 상기 제1 및 제2 드라이버를 이용하기 위한 명령어를 포함하는Instructions for using the first and second drivers to store at least some information from the first and second data sources into the first database. 컴퓨터-판독가능 매체.Computer-readable media. 컴퓨터로 구현되는 방법에 있어서,In a computer implemented method, 제1 및 제2의 상이한 데이터 소스 중 하나에 저장될 수 있는 데이터에 억세스하기 위한 명령어를 발생하는 드라이버를 제공하는 단계 - 여기서, 상기 드라이버는 상기 제1 데이터 소스와 관련하여 사용하도록 구성된 프로그램 명령어를 포함함 -;Providing a driver for generating instructions for accessing data that may be stored in one of the first and second different data sources, wherein the driver is configured to execute program instructions configured for use in connection with the first data source. Includes-; 상기 제1 데이터 소스에 저장된 정보의 컨텐츠에 억세스함으로써, 상기 제1 데이터 소스에 대한 사람의 분석을 필요로 하지 않고, 상기 제1 데이터 소스의 데이터 구조에 관한 정보를 자동으로 얻기 위해 상기 드라이버를 이용하는 단계 - 여기서, 상기 데이터 구조에 관한 정보는 신규 데이터베이스로부터의 정보가 저장되는 신규 데이터베이스의 최적화를 이끔 -By accessing the content of the information stored in the first data source, the driver is used to automatically obtain information about the data structure of the first data source without requiring human analysis of the first data source. Step, wherein the information about the data structure leads to optimization of the new database in which information from the new database is stored. 를 포함하는 방법.How to include. 제1 데이터 소스에 저장될 수 있는 데이터에 억세스하는 것과 관련하여 사용될 수 있는 컴퓨터로 구현되는 방법에 있어서,A computer-implemented method that can be used in connection with accessing data that can be stored at a first data source, 상기 제1 데이터 소스와 관련하여 사용하도록 구성된 프로그램 명령어를 포함하는 드라이버를 제공하는 제1 단계;Providing a driver comprising program instructions configured for use in association with the first data source; 상기 제1 데이터 소스에 저장된 정보의 컨텐츠에 자동으로 억세스함으로써, 상기 제1 데이터 소스에 대한 사람의 분석을 필요로하지 않고, 상기 제1 데이터 소스의 데이터 구조에 관한 제1 정보를 자동으로 얻기 위해 상기 드라이버를 이용하는 제2 단계; 및By automatically accessing the content of the information stored in the first data source, thereby automatically obtaining first information about the data structure of the first data source without requiring human analysis of the first data source. A second step of using the driver; And 상기 데이터 소스와는 상이한 제1 데이터베이스에 대한 구조를 정의하기 위해 상기 제1 정보를 이용하는 단계 - 여기서, 상기 제1 데이터베이스는 상기 제1 정보를 자동으로 얻기 위해 상기 제1 드라이버를 이용하는 단계 이전에는 존재하지 않고, 상기 제1 정보는 상기 제1 데이터 소스로부터의 정보가 저장되는 상기 제1 데이터베이스의 최적화를 이끔 -Using the first information to define a structure for a first database that is different from the data source, wherein the first database is present prior to using the first driver to automatically obtain the first information. Without causing the first information to lead to an optimization of the first database where information from the first data source is stored. 를 포함하는 방법.How to include. 제17항에 있어서,The method of claim 17, 상기 제1 데이터 소스는 회계(accounting) 정보를 저장하고, 상기 제1 정보는 계정(account) 부분의 식별자(identification)를 포함하는The first data source stores accounting information, wherein the first information includes an identification of an account portion. 방법.Way. 제17항에 있어서,The method of claim 17, 상기 제1 데이터 소스로부터의 데이터를 상기 제1 데이터베이스에 저장하는 단계Storing data from the first data source in the first database 를 더 포함하는 방법.How to include more. 제17항에 있어서,The method of claim 17, 상기 제1 데이터 소스에 저장된 정보를 검증하는 단계Verifying information stored at the first data source 를 더 포함하는 방법.How to include more. 제19항에 있어서,The method of claim 19, 변경된 데이터를 제공하기 위해 상기 제1 데이터베이스에 저장된 적어도 일부의 데이터를 변경하고, 상기 변경된 데이터의 적어도 일부를 상기 제1 데이터 소스에 라이트백(write-back)하는 단계Modifying at least some data stored in the first database to provide modified data, and writing back at least a portion of the changed data to the first data source 를 더 포함하는 방법.How to include more. 제19항에 있어서,The method of claim 19, 제2 데이터베이스를 생성하고, 상기 제1 데이터베이스에 저장된 적어도 일부의 데이터를 상기 제2 데이터베이스로 저장하는 단계Creating a second database and storing at least some data stored in the first database into the second database 를 더 포함하는 방법.How to include more. 제22항에 있어서,The method of claim 22, 상기 제1 및 제2 데이터베이스를 생성하는 단계는 상기 제1 및 제2 데이터베이스가 사용될 방식을 고려하여 데이터베이스 테이블을 생성하는 단계를 포함하는Generating the first and second databases includes creating a database table in consideration of the manner in which the first and second databases will be used. 방법.Way. 제22항에 있어서,The method of claim 22, 상기 제1 데이터 소스는 제1 데이터 분석을 제공하고, The first data source provides a first data analysis, 상기 방법은 상기 제1 데이터 분석과는 상이한 상기 제1 및 제2 데이터베이스 중 적어도 하나에서의 데이터 분석을 제공하는 부가적인 단계를 더 포함하는The method further includes the additional step of providing data analysis in at least one of the first and second databases different from the first data analysis. 방법.Way. 적어도 제1 출력을 생성하도록 구성되는 제1 데이터 소스에 저장될 수 있는 데이터에 억세스하는 것과 관련하여 사용할 수 있는 컴퓨터로 구현되는 방법에 있어서, A computer-implemented method that can be used in connection with accessing data that can be stored in at least a first data source configured to generate at least a first output, the method comprising: 상기 제1 데이터 소스와 관련하여 사용하도록 구성된 프로그램 명령어를 포함하는 드라이버를 제공하는 단계;Providing a driver comprising program instructions configured for use in connection with the first data source; 상기 제1 데이터 소스에 저장된 정보의 컨텐츠에 자동으로 억세스함으로써, 상기 제1 데이터 소스의 데이터 구조에 관한 제1 정보를 얻기 위해 상기 드라이버를 이용하는 단계;Using the driver to obtain first information about a data structure of the first data source by automatically accessing content of information stored in the first data source; 상기 제1 데이터 소스와는 상이한 제1 데이터베이스에 대한 구조를 정의하기 위해 상기 제1 정보를 이용하는 단계 - 여기서, 상기 제1 데이터베이스는 상기 제1 정보를 얻기 위해 상기 드라이버를 이용하는 단계 이전에는 존재하지 않고, 상기 제1 정보는 상기 제1 데이터베이스의 최적화를 이끔 -;Using the first information to define a structure for a first database that is different than the first data source, wherein the first database does not exist prior to the step of using the driver to obtain the first information. The first information causes optimization of the first database; 상기 제1 데이터 소스로부터의 적어도 일부의 정보를 상기 제1 데이터베이스로 저장하기 위해 상기 드라이버를 이용하는 단계; 및Using the driver to store at least some information from the first data source into the first database; And 상기 제1 데이터 소스 내의 모든 정보보다 적은 정보를 이용하여 상기 제1 데이터베이스를 갱신하는 단계 - 상기 갱신 단계는 상기 제1 데이터 소스로부터의 적어도 일부의 정보를 상기 제1 데이터베이스로 저장하기 위해 상기 제1 드라이버를 이용하는 단계 이후에 수행됨 -Updating the first database with less information than all the information in the first data source, wherein the updating step includes storing the first database to store at least some information from the first data source into the first database. Performed after step using driver- 를 포함하는 방법.How to include. 제25항에 있어서,The method of claim 25, 상기 갱신 단계는 상기 제1 정보의 적어도 일부를 이용하는The updating step uses at least a portion of the first information. 방법.Way. 제25항에 있어서,The method of claim 25, 상기 갱신 단계를 반복하는 단계 - 여기서, 상기 제1 데이터 소스 내의 데이터는 상기 제1 데이터베이스 내의 데이터와 동기됨 - Repeating said updating step, wherein data in said first data source is synchronized with data in said first database- 를 더 포함하는 방법.How to include more. 제25항에 있어서,The method of claim 25, 제2 데이터베이스를 생성하고, 상기 제1 데이터베이스에 저장된 적어도 일부의 데이터를 상기 제2 데이터베이스로 저장하는 단계Creating a second database and storing at least some data stored in the first database into the second database 를 더 포함하는 방법.How to include more. 제28항에 있어서,The method of claim 28, 상기 제1 데이터베이스 및 상기 제2 데이터베이스 중 적어도 하나에서의 정보에 근거하여 적어도 제1 리포트를 생성하는 단계Generating at least a first report based on information in at least one of the first database and the second database. 를 더 포함하는 방법.How to include more. 제29항에 있어서,The method of claim 29, 상기 방법은 상기 제1 리포트와는 상이한 상기 제1 출력에서의 리포트를 제공하는 부가적인 단계를 더 포함하는The method further includes providing an additional report at the first output that is different than the first report. 방법.Way. 컴퓨터로 구현되는 방법에 있어서,In a computer implemented method, 제1 데이터 소스에 저장된 데이터에 억세스하기 위한 명령어를 발생하는 드라이버를 제공하는 단계 - 여기서, 상기 드라이버는 상기 제1 데이터 소스와 관련하여 사용하도록 구성된 프로그램 명령어를 포함함 -; Providing a driver for generating instructions for accessing data stored at a first data source, wherein the driver includes program instructions configured for use in connection with the first data source; 상기 제1 데이터 소스에 대한 사람의 분석을 필요로하지 않고, 상기 제1 데이터 소스에 관한 제1 정보를 얻기 위해, 상기 제1 데이터 소스에 저장된 정보의 컨텐츠에 자동으로 액세스하도록 상기 드라이버를 이용하는 단계;Using the driver to automatically access content of information stored in the first data source to obtain first information about the first data source without requiring human analysis of the first data source. ; 상기 제1 데이터 소스로부터의 적어도 일부의 데이터를 저장하기 위해 적어도 제1 데이터베이스를 생성하는 단계 - 여기서, 상기 제1 데이터베이스는 상기 제1 정보의 적어도 일부에 근거하고, 상기 제1 정보는 상기 제1 데이터베이스의 최적화를 이끔 - ; 및Creating at least a first database to store at least some data from the first data source, wherein the first database is based on at least a portion of the first information, the first information being the first information; -Leads to optimization of the database; And 상기 제1 데이터베이스로부터의 정보를 포함하는 적어도 제2 및 제3 데이터베이스를 생성하는 단계 - 여기서, 상기 제2 및 제3 데이터베이스는 서로 상이함 -Creating at least a second and third database comprising information from the first database, wherein the second and third databases are different from each other; 를 포함하는 방법.How to include. 적어도 제1 출력을 생성하도록 구성된 제1 데이터 소스에 저장된 데이터에 억세스하는 것과 관련하여 사용할 수 있는 장치에 있어서,An apparatus that can be used in connection with accessing data stored in a first data source configured to at least generate a first output, the apparatus comprising: 상기 제1 데이터 소스에 결합되어, 다음의 단계, 즉,Coupled to the first data source, the following steps, i.e. 상기 제1 데이터 소스에 저장된 데이터에 억세스하기 위한 명령어를 발생하는 드라이버를 제공하는 단계 - 여기서, 상기 드라이버는 상기 제1 데이터 소스와 관련하여 사용하도록 구성된 프로그램 명령어를 포함함 -;Providing a driver for generating instructions for accessing data stored at the first data source, wherein the driver includes program instructions configured for use in connection with the first data source; 상기 제1 데이터 소스에 대한 사람의 분석을 필요로하지 않고, 상기 제1 데이터 소스에 관한 제1 정보를 얻기 위해, 상기 제1 데이터 소스에 저장된 정보의 컨텐츠에 자동으로 억세스하도록 상기 제1 드라이버를 이용하는 단계;The first driver may be configured to automatically access content of information stored in the first data source to obtain first information about the first data source without requiring human analysis of the first data source. Using; 상기 제1 데이터 소스로부터의 적어도 일부의 데이터를 저장하기 위해 적어도 제1 데이터베이스를 생성하는 단계 - 여기서, 상기 제1 데이터베이스는 상기 제1 정보의 적어도 일부에 근거함 -; 및Creating at least a first database to store at least some data from the first data source, wherein the first database is based on at least a portion of the first information; And 상기 제1 데이터베이스로부터의 정보를 포함하는 적어도 제2 및 제3 데이터베이스를 생성하는 단계 - 여기서, 상기 제2 및 제3 데이터베이스는 서로 상이함 - 를 수행하도록 프로그램된 컴퓨터 A computer programmed to perform at least a second and third database comprising information from the first database, wherein the second and third databases are different from each other. 를 포함하는 장치.Device comprising a. 제1 및 제2의 상이한 데이터 소스 - 상기 제1 및 제2 데이터 소스 중 적어도 하나는 적어도 제1 출력을 생성하기 위해 구성됨 - 중 하나에 저장될 수 있는 데이터에 억세스하는 것과 관련하여 사용할 수 있는 컴퓨터 프로그램을 저장하는 컴퓨터-판독가능 매체에 있어서,A computer usable in connection with accessing data that may be stored in one of a first and a second different data source, wherein at least one of the first and second data sources is configured to generate at least a first output. A computer-readable medium for storing a program, the method comprising: 상기 컴퓨터 프로그램은,The computer program, 상기 제1 데이터 소스에 저장된 데이터에 억세스하기 위한 명령어를 발생하는 드라이버를 제공하기 위한 명령어 - 여기서, 상기 드라이버는 상기 제1 데이터 소스와 관련하여 사용하도록 구성된 프로그램 명령어를 포함함 - ;Instructions for providing a driver for generating instructions for accessing data stored at the first data source, wherein the driver includes program instructions configured for use in connection with the first data source; 상기 제1 데이터 소스에 대한 사람의 분석을 필요로하지 않고, 상기 제1 데이터 소스에 관한 제1 정보를 자동으로 얻기 위해, 상기 제1 데이터 소스에 저장된 정보의 컨텐츠에 자동으로 액세스하도록 상기 드라이버를 이용하기 위한 명령어;The driver is configured to automatically access content of information stored in the first data source, without requiring human analysis of the first data source, to automatically obtain first information about the first data source. Instructions for use; 상기 제1 데이터 소스로부터의 적어도 일부의 데이터를 저장하기 위해 적어도 제1 데이터베이스를 생성하기 위한 명령어 - 여기서, 상기 제1 데이터베이스는 상기 제1 정보의 적어도 일부에 근거하고, 상기 제1 정보는 상기 제1 데이터베이스의 최적화를 이끔 -; 및Instructions for creating at least a first database for storing at least some data from the first data source, wherein the first database is based on at least a portion of the first information, the first information being the first information; 1 led to the optimization of the database-; And 상기 제1 데이터베이스로부터의 정보를 포함하는 적어도 제2 및 제3 데이터베이스를 생성하기 위한 명령어 - 여기서, 상기 제2 및 제3 데이터베이스는 서로 상이함 - 를 포함하는Instructions for creating at least a second and third database comprising information from the first database, wherein the second and third databases are different from each other. 컴퓨터-판독가능 매체.Computer-readable media. 제1 및 제2의 상이한 데이터 소스 중 하나에 저장될 수 있는 데이터에 대한 컴퓨터로 구현되는 억세스와 관련하여 사용할 수 있는 장치에 있어서,An apparatus that can be used in connection with computer-implemented access to data that can be stored in one of the first and second different data sources, 상기 제1 데이터 소스와 관련하여 사용하도록 구성된 프로그램 명령어를 포함하는 드라이버;A driver comprising program instructions configured for use in connection with the first data source; 상기 제1 데이터 소스에 저장된 정보의 컨텐츠에 자동으로 억세스함으로써, 상기 제1 데이터 소스에 대한 사람의 분석을 필요로하지 않고, 상기 제1 데이터 소스의 데이터 구조에 관한 제1 정보를 자동으로 얻기 위해 상기 드라이버를 이용하기 위한 수단; 및By automatically accessing the content of the information stored in the first data source, thereby automatically obtaining first information about the data structure of the first data source without requiring human analysis of the first data source. Means for using the driver; And 상기 데이터 소스와는 상이한 제1 데이터베이스에 대한 구조를 정의하기 위해 상기 제1 정보를 이용하기 위한 수단 - 여기서, 상기 제1 데이터베이스는 상기 제1 정보를 자동으로 얻기 위해 상기 드라이버를 이용하는 단계 이전에는 존재하지 않음 - Means for using the first information to define a structure for a first database that is different than the data source, wherein the first database exists prior to the step of using the driver to automatically obtain the first information. Never- 을 포함하는 장치.Device comprising a. 제34항에 있어서,The method of claim 34, wherein 상기 제1 데이터 소스는 제1 데이터 분석을 제공하고, The first data source provides a first data analysis, 상기 장치는 상기 제1 데이터 분석과는 상이한 상기 제1 데이터베이스에서의 데이터 분석을 제공하는 수단을 더 포함하는The apparatus further includes means for providing data analysis in the first database that is different from the first data analysis. 장치.Device. 제34항에 있어서,The method of claim 34, wherein 각각의 드라이버는 다수의 펑션을 수행하기 위한 프로그램 명령어를 포함하는Each driver contains program instructions for performing a number of functions. 장치.Device. 제34항에 있어서,The method of claim 34, wherein 상기 데이터 구조에 관한 상기 제1 정보는 상기 제1 데이터 소스에 저장된 질의(queries)로부터의 정보를 포함하는The first information about the data structure includes information from queries stored in the first data source. 장치.Device. 제34항에 있어서,The method of claim 34, wherein 상기 제1 데이터 소스는 회계 정보를 저장하고, 상기 제1 정보는 계정 부분의 식별자를 포함하는The first data source stores accounting information, the first information comprising an identifier of an account portion 장치.Device. 컴퓨터로 구현되는 방법에 있어서,In a computer implemented method, 제1 및 제2의 상이한 데이터 소스 중 하나에 저장될 수 있는 데이터에 억세스하기 위한 명령어를 발생하는 드라이버를 제공하는 단계 - 여기서, 상기 드라이버는 상기 제1 데이터 소스와 관련하여 사용하도록 구성되는 프로그램 명령어를 포함함 -;Providing a driver for generating instructions for accessing data that may be stored in one of the first and second different data sources, wherein the driver is configured to use in connection with the first data source. Including-; 상기 제1 데이터 소스에 저장된 정보의 컨텐츠에 억세스하여, 상기 데이터 소스 내의 적어도 일부의 정보를 신규 데이터베이스 내의 대응 항목을 제공하는 프로세스에 맵핑함으로써, 상기 제1 데이터 소스에 대한 사람의 분석을 필요로하지 않고, 상기 제1 데이터 소스의 데이터 구조에 관한 정보를 자동으로 얻기 위해 상기 드라이버를 이용하는 단계 - 여기서, 상기 데이터 구조에 관한 상기 정보는, 상기 제1 데이터 소스로부터의 정보가 저장되는 상기 신규 데이터베이스의 최적화를 이끔 -; 및By accessing the content of the information stored in the first data source, mapping at least some of the information in the data source to a process for providing a corresponding item in a new database, thereby requiring no human analysis of the first data source. Using the driver to automatically obtain information about the data structure of the first data source, wherein the information about the data structure is selected from the new database in which information from the first data source is stored. Led to optimization-; And 상기 신규 데이터베이스로부터 리포트를 생성하는 단계Generating a report from the new database 를 포함하는 방법.How to include. 제1 및 제2의 상이한 데이터 소스 중 하나에 저장될 수 있는 데이터에 억세스하는 것과 관련하여 사용될 수 있는 컴퓨터로 구현되는 방법에 있어서,A computer-implemented method that can be used in connection with accessing data that can be stored in one of the first and second different data sources, 상기 제1 데이터 소스와 관련하여 사용하도록 구성된 프로그램 명령어를 포함하는 제1 드라이버를 제공하는 제1 단계;Providing a first driver comprising program instructions configured for use in connection with the first data source; 상기 제1 데이터 소스에 저장된 정보의 컨텐츠에 자동으로 억세스함으로써, 상기 제1 데이터 소스에 대한 사람의 분석을 필요로하지 않고, 상기 제1 데이터 소스의 데이터 구조에 관한 제1 정보를 자동으로 얻기 위해 상기 제1 드라이버를 이용하는 제2 단계;By automatically accessing the content of the information stored in the first data source, thereby automatically obtaining first information about the data structure of the first data source without requiring human analysis of the first data source. A second step of using the first driver; 상기 데이터 소스와는 상이한 제1 데이터베이스에 대한 구조를 정의하기 위해 상기 제1 정보를 이용하는 단계 - 여기서, 상기 제1 데이터베이스는 상기 제1 정보를 자동으로 얻기 위해 상기 제1 드라이버를 이용하는 단계 이전에는 존재하지 않음 -; 및Using the first information to define a structure for a first database that is different from the data source, wherein the first database is present prior to using the first driver to automatically obtain the first information. Not-; And 상기 제1 데이터베이스 내의 정보에 근거하여 적어도 제1 리포트를 생성하는 단계Generating at least a first report based on the information in the first database 를 포함하는 방법.How to include. 제1 소스 데이터를 저장하는 적어도 제1 데이터 소스와 관련하여 사용될 수 있는 컴퓨터로 구현되는 방법 - 여기서, 상기 제1 소스 데이터는 회계 데이터를 포함하고, 상기 회계 데이터는 다수의 계정 부분을 갖는 회계 시스템에 따라 사용됨 - 에 있어서,A computer-implemented method that can be used in connection with at least a first data source that stores first source data, wherein the first source data includes accounting data, the accounting data having a plurality of account portions. Used according to 상기 제1 데이터 소스에 저장된 정보의 컨텐츠에 억세스함으로써, 상기 제1 데이터 소스에 대한 사람의 분석을 필요로하지 않고, 상기 제1 데이터 소스의 데이터 구조에 관한 정보를 자동으로 얻기 위해 컴퓨터를 이용하는 단계 - 여기서, 신규 데이터베이스가 형성되는 경우, 상기 데이터 구조에 관한 상기 정보는 상기 신규 데이터베이스를 최적화하는데 사용될 수 있는 정보를 포함함 -; 및Using a computer to automatically obtain information about the data structure of the first data source, without requiring a human analysis of the first data source by accessing content of information stored in the first data source Wherein when a new database is formed, the information about the data structure includes information that can be used to optimize the new database; And 데이터 구조에 관한 상기 정보 중 적어도 일부를 데이터 저장 장치에 저장하는 단계 Storing at least a portion of said information about a data structure in a data storage device 를 포함하는 방법.How to include. 제41항에 있어서,The method of claim 41, wherein 상기 신규 데이터베이스를 먼저 형성하지 않고, 데이터 리포지터리(repository)를 생성하는 단계Creating a data repository without first forming the new database 를 더 포함하는 방법.How to include more. 제41항에 있어서,The method of claim 41, wherein 상기 신규 데이터베이스를 형성하는 단계Forming the new database 를 더 포함하는 방법.How to include more. 제43항에 있어서,The method of claim 43, 상기 신규 데이터베이스를 형성하는 단계는 상기 제1 데이터 소스의 구조와는 상이한 구조를 갖는 상기 신규 데이터베이스를 형성하는 단계를 포함하는Forming the new database includes forming the new database having a structure different from that of the first data source. 방법.Way. 제43항에 있어서,The method of claim 43, 상기 신규 데이터베이스는 상기 데이터 구조에 관한 상기 정보를 이용하여 최적화되는The new database is optimized using the information about the data structure. 방법.Way. 제43항에 있어서,The method of claim 43, 상기 제1 데이터 소스는 데이터베이스인The first data source is a database 방법.Way. 제43항에 있어서,The method of claim 43, 상기 신규 데이터베이스의 구조를 결정할 때에, 적어도 부분적으로, 사용되는 유저로부터의 정보를 요청하는 단계Requesting information from a user to be used, at least in part, when determining the structure of the new database 를 더 포함하는 방법.How to include more. 제47항에 있어서,The method of claim 47, 상기 요청 단계는 다이얼로그 박스(dialog box)를 디스플레이하는 단계를 포함하는The requesting step includes displaying a dialog box. 방법.Way. 제47항에 있어서,The method of claim 47, 상기 요청 단계는 선택(choice) 리스트를 디스플레이하는 단계를 포함하는The requesting step includes displaying a choice list. 방법.Way. 제43항에 있어서,The method of claim 43, 상기 신규 데이터베이스를 형성하는 단계 후에, 상기 신규 데이터베이스를 실장하는(populating) 단계After forming the new database, populating the new database. 를 더 포함하는 방법.How to include more. 제41항에 있어서,The method of claim 41, wherein 데이터 구조에 관한 상기 정보는 상기 계정 부분 중 적어도 일부의 식별자를 포함하는The information about the data structure includes an identifier of at least some of the account portions. 방법.Way. 제41항에 있어서,The method of claim 41, wherein 데이터 구조에 관한 상기 정보는 상기 제1 데이터 소스에 저장된 질의를 포함하는The information about the data structure includes a query stored at the first data source. 방법.Way. 제42항에 있어서,The method of claim 42, wherein 상기 데이터 리포지터리를 생성하는 단계는 상기 제1 데이터 소스의 데이터 구조에 관한 정보를 얻기 위해 컴퓨터를 이용하는 단계 이전에 수행되는Generating the data repository is performed prior to using a computer to obtain information regarding the data structure of the first data source. 방법.Way.
KR1019980705075A 1995-12-30 1996-12-20 Data retrieval method and apparatus with multiple source capability KR100538547B1 (en)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US58206295A 1995-12-30 1995-12-30
US8/582,062 1995-12-30
US08/582,062 1995-12-30
US8/593,118 1996-02-01
US08/593,118 1996-02-01
US08/593,118 US5802511A (en) 1996-01-02 1996-02-01 Data retrieval method and apparatus with multiple source capability

Publications (2)

Publication Number Publication Date
KR19990076947A KR19990076947A (en) 1999-10-25
KR100538547B1 true KR100538547B1 (en) 2006-02-28

Family

ID=27078483

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980705075A KR100538547B1 (en) 1995-12-30 1996-12-20 Data retrieval method and apparatus with multiple source capability

Country Status (8)

Country Link
EP (1) EP0954777A4 (en)
KR (1) KR100538547B1 (en)
CN (1) CN1163821C (en)
AU (1) AU729275B2 (en)
CA (1) CA2240663C (en)
HK (1) HK1018328A1 (en)
IL (1) IL125129A0 (en)
WO (1) WO1997024658A1 (en)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999027556A2 (en) 1997-11-20 1999-06-03 Xacct Technologies, Inc. Network accounting and billing system and method
JPH11353384A (en) * 1998-06-10 1999-12-24 Nec Corp Method and device for evaluating environmental load
US6198811B1 (en) * 1998-07-12 2001-03-06 Bellsouth Intellectual Property Corporation Systems and methods for extracting switch data
FI106684B (en) * 1998-12-09 2001-03-15 Nokia Networks Oy System and procedure for optimizing data collection
US6957255B1 (en) 1999-06-28 2005-10-18 Amdocs (Israel) Ltd. Method and apparatus for session reconstruction and accounting involving VoIP calls
US6963912B1 (en) 1999-06-28 2005-11-08 Xacct Technologies, Ltd. Method and apparatus for session reconstruction
KR100658299B1 (en) * 1999-12-07 2006-12-14 주식회사 케이티 Method for monitoring telecommunication network performance based on web corresponding to change database structure
US7565311B2 (en) 1999-12-16 2009-07-21 Sumitomo Mitsui Banking Corporation Conversion engine and financial reporting system using the conversion engine
US20030065670A1 (en) * 2001-04-25 2003-04-03 Michel Bisson Personalization server unified user profile
US20040153382A1 (en) * 2003-01-31 2004-08-05 Richard Boccuzzi System and method for determining discrepancies in a communications system
US7558799B2 (en) * 2004-06-01 2009-07-07 Microsoft Corporation Method, system, and apparatus for discovering and connecting to data sources
KR100602138B1 (en) * 2005-01-03 2006-07-19 국방과학연구소 Integrated development business modeling and trash treathment method for ram-lsa-tm
CN102298621B (en) * 2006-02-22 2013-11-06 王东 System for obtaining page user focus degree PageFocus by method for aggregating and displaying same source information search engine based on focus degree
CN101025737B (en) * 2006-02-22 2011-08-17 王东 Attention degree based same source information search engine aggregation display method
CN102314460B (en) * 2010-07-07 2014-05-14 阿里巴巴集团控股有限公司 Data analysis method and system and servers
CN103914460B (en) * 2012-12-31 2017-10-10 北京中交兴路信息科技有限公司 Data distributing method and the subscription device based on data distribution
CN106294498A (en) * 2015-06-09 2017-01-04 阿里巴巴集团控股有限公司 A kind of data processing method and equipment

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5475836A (en) * 1987-04-01 1995-12-12 Lotus Development Corporation Interface for providing access to external data sources/sinks
US5522066A (en) * 1992-04-16 1996-05-28 Industrial Technology Research Institute Interface for accessing multiple records stored in different file system formats
US5627996A (en) * 1992-08-19 1997-05-06 At&T Method and apparatus for accessing the same computer file using different file name formats
US5446880A (en) * 1992-08-31 1995-08-29 At&T Corp. Database communication system that provides automatic format translation and transmission of records when the owner identified for the record is changed
GB2283588A (en) * 1993-11-02 1995-05-10 Signview Developments Limited A process control data processing apparatus

Also Published As

Publication number Publication date
HK1018328A1 (en) 1999-12-17
CA2240663C (en) 2004-06-08
IL125129A0 (en) 1999-01-26
EP0954777A1 (en) 1999-11-10
AU1339897A (en) 1997-07-28
EP0954777A4 (en) 2002-05-08
CN1163821C (en) 2004-08-25
CN1207186A (en) 1999-02-03
AU729275B2 (en) 2001-02-01
CA2240663A1 (en) 1997-07-10
KR19990076947A (en) 1999-10-25
WO1997024658A1 (en) 1997-07-10

Similar Documents

Publication Publication Date Title
US6026392A (en) Data retrieval method and apparatus with multiple source capability
US6023694A (en) Data retrieval method and apparatus with multiple source capability
US6631382B1 (en) Data retrieval method and apparatus with multiple source capability
US6625617B2 (en) Modularized data retrieval method and apparatus with multiple source capability
US6785689B1 (en) Consolidation of multiple source content schemas into a single target content schema
KR100538547B1 (en) Data retrieval method and apparatus with multiple source capability
US7925658B2 (en) Methods and apparatus for mapping a hierarchical data structure to a flat data structure for use in generating a report
US7117215B1 (en) Method and apparatus for transporting data for data warehousing applications that incorporates analytic data interface
US6212524B1 (en) Method and apparatus for creating and populating a datamart
US6161103A (en) Method and apparatus for creating aggregates for use in a datamart
US7013307B2 (en) System for organizing an annotation structure and for querying data and annotations
US6189004B1 (en) Method and apparatus for creating a datamart and for creating a query structure for the datamart
US8010905B2 (en) Open model ingestion for master data management
US7739224B1 (en) Method and system for creating a well-formed database using semantic definitions
US20030154192A1 (en) Optimized storage for measurement data
US20030105811A1 (en) Networked data stores for measurement data
KR20050061597A (en) System and method for generating reports for a versioned database
US7461076B1 (en) Method and apparatus for creating a well-formed database system using a computer
US20030061195A1 (en) Technical data management (TDM) framework for TDM applications
EP1634192B1 (en) Data processing system and method for application programs in a data warehouse
US20070255730A1 (en) Data requirements methodology
CA2414230C (en) Computer method and device for transporting data
AU772658B2 (en) Data retrieval method and apparatus with multiple source capability
MXPA00012346A (en) Data retrieval method and apparatus with multiple source capability
AU2004200749A1 (en) Data retrieval method and apparatus with multiple source capability

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
E902 Notification of reason for refusal
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20101122

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee