KR101983206B1 - 데이터 레코드 선택 - Google Patents

데이터 레코드 선택 Download PDF

Info

Publication number
KR101983206B1
KR101983206B1 KR1020157020312A KR20157020312A KR101983206B1 KR 101983206 B1 KR101983206 B1 KR 101983206B1 KR 1020157020312 A KR1020157020312 A KR 1020157020312A KR 20157020312 A KR20157020312 A KR 20157020312A KR 101983206 B1 KR101983206 B1 KR 101983206B1
Authority
KR
South Korea
Prior art keywords
data
records
record
data records
field
Prior art date
Application number
KR1020157020312A
Other languages
English (en)
Other versions
KR20150112961A (ko
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
Application filed by 아브 이니티오 테크놀로지 엘엘시 filed Critical 아브 이니티오 테크놀로지 엘엘시
Publication of KR20150112961A publication Critical patent/KR20150112961A/ko
Application granted granted Critical
Publication of KR101983206B1 publication Critical patent/KR101983206B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • 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/21Design, administration or maintenance of databases
    • G06F16/217Database tuning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Complex Calculations (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Collating Specific Patterns (AREA)

Abstract

컴퓨터에 의해 구현되는 방법은, 각각의 데이터 레코드가 복수의 데이터 필드를 갖는 복수의 데이터 레코드를 액세스하는 단계를 포함한다. 본 방법은 또한 복수의 데이터 레코드의 적어도 몇몇에 대한 데이터 필드의 하나 이상의 데이터 필드에 대한 값을 분석하는 단계와, 분석하는 단계에 기초하여 복수의 데이터 레코드의 프로파일을 생성하는 단계를 포함한다. 본 방법은 또한 프로파일에 기초하여 적어도 하나의 서브세팅 규칙(subsetting rule)을 포뮬레이트(formulate)하는 단계와, 적어도 하나의 서브세팅 규칙에 기초하여 복수의 데이터 레코드로부터 데이터 레코드의 서브세트를 선택하는 단계를 포함한다.

Description

데이터 레코드 선택{DATA RECORDS SELECTION}
우선권의 주장
본 출원은 2013년 2월 1일자로 출원된 미국 특허 출원 번호 61/759,799 및 2013년 3월 14일자로 출원된 미국 특허 출원 번호 13/827,558을 우선권으로 주장하며, 이들 특허 출원의 전체 내용이 원용에 의해 본 명세서에 통합되어 있다.
본 발명은 데이터 레코드 선택에 관한 것이다.
저장된 데이터 세트는 다양한 특성이(characteristics) 미리 알려져 있지 않은 데이터를 포함하는 경우가 많다. 예컨대, 데이터 세트를 위한 전형적인 값들의 값의 범위, 데이터 세트 내의 상이한 필드들 간의 관계, 또는 상이한 필드에서의 값들 간의 기능적인 의존성이 알려져 있지 않을 수도 있다. 데이터 프로파일링(data profiling))은 이러한 특성을 판정하기 위해 데이터 세트의 소스를 검사하는 것을 수반할 수 있다.
데이터 처리 어플리케이션의 개발 동안, 개발자는 생산 환경의 외측에서 작업하고, 생산 데이터에 대한 액세스를 갖지 못할 수도 있다. 데이터 처리 어플리케이션(본 명세서에서는 "어플리케이션"으로 지칭됨)이 실제 데이터를 이용한 생산에서 적절하게 실행되도록 하기 위해, 어플리케이션의 실행 및 시험 동안 현실적인 데이터(realistic data)가 사용될 수 있다. 어플리케이션은 규칙의 실행이 하나 이상의 변수의 값에 좌우되는 규칙을 포함하는 경우가 많다. 이들 변수는 입력 데이터에 대응하는 입력 변수일 수도 있고, 하나 이상의 입력 변수에 좌우되는 파생 변수(derived variable)일 수도 있고, 또 다른 유형의 변수일 수도 있다. 어플리케이션의 개발 및 시험에 사용되도록 실제 생산 데이터로부터 데이터 레코드의 서브세트가 선택될 수 있다. 이들 데이터 레코드는 일반적으로 어플리케이션에서의 모든 규칙이 실행되도록 하기에 충분한 입력 데이터가 있도록(예컨대, 어플리케이션에서의 완전한 코드 커버리지가 달성되도록) 선택된다.
전반적인 양태에서, 컴퓨터에 의해 구현되는 방법(computer-implemented method)은 각각의 데이터 레코드가 복수의 데이터 필드를 갖는 복수의 데이터 레코드를 액세스하는 단계를 포함한다. 상기 방법은 또한 상기 복수의 데이터 레코드의 적어도 몇몇에 대한 데이터 필드 중 하나 이상의 데이터 필드에 대한 값을 분석하는 단계와, 상기 분석하는 단계에 기초하여 상기 복수의 데이터 레코드의 프로파일을 생성하는 단계를 포함한다. 상기 방법은 또한 상기 프로파일에 기초하여 적어도 하나의 서브세팅 규칙(subsetting rule)을 포뮬레이트(formulate)하는 단계와, 상기 적어도 하나의 서브세팅 규칙에 기초하여 상기 복수의 데이터 레코드로부터 데이터 레코드의 서브세트를 선택하는 단계를 포함한다.
본 발명의 실시예는 이하의 것 중의 하나 이상을 포함할 수 있다.
상기 적어도 하나의 서브세팅 규칙을 포뮬레이트하는 단계는, 제1 데이터 필드의 카디널러티(cardinality)에 기초하여 상기 제1 데이터 필드를 타겟 데이터 필드로서 식별하는 단계를 포함한다. 몇몇 경우에, 상기 타겟 데이터 필드는 상기 복수의 데이터 레코드에서의 별개의 값(distinct value)의 세트를 가지며, 상기 데이터 레코드의 서브세트를 선택하는 단계는 상기 타겟 데이터 필드에 대한 별개의 값의 각각을 갖는 선택된 서브세트에 적어도 하나의 데이터 레코드가 존재하도록 데이터 레코드를 선택하는 단계를 포함한다.
상기 프로파일을 생성하는 단계는, 상기 복수의 데이터 레코드에서의 제1 데이터 필드에 대한 값을 분류하는 단계를 포함한다. 상기 적어도 하나의 서브세팅 규칙을 포뮬레이트하는 단계는, 상기 분류하는 단계에 기초하여 상기 제1 데이터 필드를 타겟 데이터 필드로서 식별하는 단계를 포함한다. 몇몇 경우에, 상기 타겟 필드는 상기 복수의 데이터 레코드에서의 별개의 값의 세트를 가지며, 상기 데이터 레코드의 서브세트를 선택하는 단계는 상기 타겟 데이터 필드에 대한 별개의 값의 각각을 갖는 선택된 서브세트에 적어도 하나의 데이터 레코드가 존재하도록 데이터 레코드를 선택하는 단계를 포함한다.
상기 적어도 하나의 서브세팅 규칙을 포뮬레이트하는 단계는, 제1 타겟 데이터 필드로서의 제1 데이터 필드 및 제2 타겟 데이터 필드로서의 제2 데이터 필드를 식별하는 단계를 포함한다. 몇몇 경우에, 상기 데이터 레코드의 서브세트를 선택하는 단계는, 상기 제1 타겟 데이터 필드를 위한 별개의 값의 제1 세트와 상기 제2 타겟 데이터 필드를 위한 별개의 값의 제2 세트의 조합에 기초하여 데이터 레코드의 서브세트를 선택하는 단계를 포함한다.
상기 프로파일을 생성하는 단계는, 제1 데이터 필드의 값을 통해 관련된 데이터 레코드들 간의 관계를 식별하는 단계를 포함한다. 상기 적어도 하나의 서브세팅 규칙은 상기 관계의 식별(identification)을 포함한다. 몇몇 경우에, 상기 데이터 레코드의 서브세트를 선택하는 단계는, 제1 데이터 레코드를 선택하는 단계와, 상기 서브세팅 규칙에서 식별된 관계를 통해 상기 제1 데이터 레코드에 관련된 하나 이상의 제2 데이터 레코드를 선택하는 단계를 포함한다. 몇몇 경우에, 상기 데이터 레코드들 간의 관계는 데이터 레코드의 제1 세트에서의 데이터 레코드와 데이터 레코드의 제2 세트에서의 데이터 레코드 간의 관계를 포함한다.
상기 프로파일을 생성하는 단계는, 상기 복수의 데이터 레코드의 적어도 몇몇에 대한 의사필드(pseudofield)를 생성하는 단계와, 누적된 값(accumulated value)으로 각각의 대응하는 데이터 레코드에 대한 의사필드를 팝퓰레이트하는 단계를 포함한다. 제1 데이터 레코드에 대한 누적된 값은 상기 제1 데이터 레코드 및 상기 제1 데이터 레코드에 관련된 적어도 하나의 다른 데이터 레코드에 기초하여 결정된다. 상기 제1 데이터 레코드 및 상기 적어도 하나의 다른 데이터 레코드는 제1 데이터 필드의 값을 통해 관련된다. 몇몇 경우에, 상기 방법은 상기 누적된 값을 상기 제1 데이터 레코드의 제2 데이터 필드를 위한 값과 각각의 다른 관련 데이터 레코드에 대한 제2 데이터 필드를 위한 값의 합계에 기초하여 결정하는 단계를 더 포함한다.
상기 방법은 서브세팅 규칙을 수신하는 단계를 더 포함한다.
상기 방법은 상기 데이터 레코드의 선택된 서브세트를 데이터 처리 어플리케이션에 제공하는 단계를 더 포함한다. 몇몇 경우에, 상기 방법은, 데이터 처리 어플리케이션의 결과에 기초하여 제2 서브세팅 규칙을 포뮬레이트하는 단계와, 상기 제2 서브세팅 규칙에 기초하여 데이터 레코드의 제2 서브세트를 선택하는 단계를 더 포함한다.
전반적인 양태에서, 컴퓨터 판독 가능 매체 상에 저장된 소프트웨어는, 컴퓨팅 시스템으로 하여금, 각각의 데이터 레코드가 복수의 데이터 필드를 갖는 복수의 데이터 레코드를 액세스하도록 하는 명령을 포함한다. 상기 소프트웨어는, 컴퓨팅 시스템으로 하여금, 상기 복수의 데이터 레코드의 적어도 몇몇에 대한 데이터 필드 중 하나 이상의 데이터 필드에 대한 값을 분석하도록 하고, 분석에 기초하여 상기 복수의 데이터 레코드의 프로파일을 생성하도록 하는 명령을 포함한다. 상기 소프트웨어는, 컴퓨팅 시스템으로 하여금, 상기 프로파일에 기초하여 적어도 하나의 서브세팅 규칙을 포뮬레이트하고, 상기 적어도 하나의 서브세팅 규칙에 기초하여 상기 복수의 데이터 레코드로부터 데이터 레코드의 서브세트를 선택하도록 하는 명령을 포함한다.
전반적인 양태에서, 컴퓨팅 시스템은, 각각의 데이터 레코드가 복수의 데이터 필드를 갖는 복수의 데이터 레코드를 액세스하도록 구성된 하나 이상의 프로세서를 포함한다. 상기 프로세서는, 상기 복수의 데이터 레코드의 적어도 몇몇에 대한 데이터 필드 중 하나 이상의 데이터 필드에 대한 값을 분석하고, 분석에 기초하여 상기 복수의 데이터 레코드의 프로파일을 생성하도록 구성된다. 또한, 상기 프로세서는, 상기 프로파일에 기초하여 적어도 하나의 서브세팅 규칙을 포뮬레이트하고, 상기 적어도 하나의 서브세팅 규칙에 기초하여 상기 복수의 데이터 레코드로부터 데이터 레코드의 서브세트를 선택하도록 구성된다.
전반적인 양태에서, 컴퓨팅 시스템은, 각각의 데이터 레코드가 복수의 데이터 필드를 갖는 복수의 데이터 레코드를 액세스하기 위한 수단을 포함한다. 상기 컴퓨팅 시스템은, 상기 복수의 데이터 레코드의 적어도 몇몇에 대한 데이터 필드 중 하나 이상의 데이터 필드에 대한 값을 분석하기 위한 수단과, 분석에 기초하여 상기 복수의 데이터 레코드의 프로파일을 생성하기 위한 수단을 포함한다. 또한, 상기 컴퓨팅 시스템은, 상기 프로파일에 기초하여 적어도 하나의 서브세팅 규칙을 포뮬레이트하기 위한 수단과, 상기 적어도 하나의 서브세팅 규칙에 기초하여 상기 복수의 데이터 레코드로부터 데이터 레코드의 서브세트를 선택하기 위한 수단을 포함한다.
전반적인 양태에서, 컴퓨터에 의해 구현되는 방법은, 각각의 데이터 레코드가 복수의 데이터 필드를 갖는 복수의 데이터 레코드를 액세스하는 단계와, 상기 복수의 데이터 레코드로부터 데이터 레코드의 제1 서브세트를 선택하는 단계를 포함한다. 상기 방법은, 상기 데이터 레코드의 제1 서브세트를 복수의 규칙을 구현하는 데이터 처리 어플리케이션에 제공하는 단계와, 상기 규칙 중 적어도 하나의 규칙이 상기 데이터 처리 어플리케이션에 의해 실행된 횟수를 나타내는 리포트를 수신하는 단계를 포함한다. 상기 방법은, 상기 리포트에 기초하여 상기 복수의 데이터 레코드로부터 데이터 레코드의 제2 서브세트를 선택하는 단계를 포함한다.
본 발명의 실시예는 이하의 것 중의 하나 이상을 포함할 수 있다.
상기 방법은, 상기 데이터 레코드의 제2 서브세트를 상기 데이터 처리 어플리케이션에게 제공하는 단계를 더 포함한다.
상기 방법은, 상기 리포트에 기초하여, 상기 데이터 처리 어플리케이션에 의해 실행되지 않은 하나 이상의 규칙을 식별하는 단계를 더 포함한다. 상기 데이터 레코드의 제2 서브세트를 선택하는 단계는, 상기 식별하는 단계에 기초하여 데이터 레코드를 선택하는 단계를 포함한다.
상기 방법은, 상기 리포트에 기초하여, 대응하는 최대 임계 횟수보다 적게 각각 실행된 하나 이상의 규칙을 식별하는 단계를 더 포함한다. 상기 데이터 레코드의 제2 서브세트를 선택하는 단계는, 상기 식별하는 단계에 기초하여 데이터 레코드를 선택하는 단계를 포함한다.
상기 방법은, 상기 리포트에 기초하여, 대응하는 최소 임계 횟수보다 많게 각각 실행된 하나 이상의 규칙을 식별하는 단계를 더 포함한다. 상기 데이터 레코드의 제2 서브세트를 선택하는 단계는, 상기 식별하는 단계에 기초하여 데이터 레코드를 선택하는 단계를 포함한다.
상기 데이터 레코드의 제1 서브세트를 선택하는 단계는, 제1 서브세팅 규칙에 기초하여 데이터 레코드의 제1 서브세트를 선택하는 단계를 포함한다. 몇몇 경우에, 상기 제1 서브세팅 규칙에 기초하여 데이터 레코드의 제1 서브세트를 선택하는 단계는, 서브세트에서의 적어도 하나의 데이터 레코드가 타겟 데이터 필드를 위한 별개의 값의 세트의 각각을 갖도록 데이터 레코드의 제1 서브세트를 선택하는 단계를 포함한다. 몇몇 경우에, 상기 제1 서브세팅 규칙에 기초하여 데이터 레코드의 제1 서브세트를 선택하는 단계는, 제1 데이터 레코드를 선택하는 단계와, 상기 제1 서브세팅 규칙에서 식별된 관계를 통해 상기 제1 데이터 레코드에 관련된 하나 이상의 제2 데이터 레코드를 선택하는 단계를 포함한다. 몇몇 경우에, 상기 데이터 레코드의 제2 서브세트를 선택하는 단계는, 상기 제1 서브세팅 규칙과는 상이한 제2 서브세팅 규칙에 기초하여 데이터 레코드의 제2 서브세트를 선택하는 단계를 포함한다.
상기 리포트는 상기 데이터 처리 어플리케이션의 하나 이상의 규칙의 실행을 트리거하는 변수의 값을 나타내는 데이터를 포함한다. 상기 방법은 상기 변수에 기초하여 타겟 데이터 필드로서의 하나 이상의 데이터 필드를 식별하는 단계를 더 포함하며, 상기 변수는 식별된 하나 이상의 데이터 필드의 변수에 좌우된다.
상기 데이터 레코드의 제2 서브세트는 상기 데이터 레코드의 제1 서브세트를 포함한다.
상기 방법은, 적어도 임계 개수의 규칙이 상기 데이터 처리 어플리케이션에 의해 실행되었다는 것을 상기 리포트가 지시할 때까지, 데이터 레코드의 서브세트를 반복적으로 선택하고, 상기 데이터 레코드의 서브세트를 상기 데이터 처리 어플리케이션에 제공하는 단계를 더 포함한다.
전반적인 양태에서, 컴퓨터 판독 가능 매체 상에 저장된 소프트웨어는 명령을 포함하며, 상기 명령은, 컴퓨팅 시스템으로 하여금, 각각의 데이터 레코드가 복수의 데이터 필드를 갖는 복수의 데이터 레코드를 액세스하고, 상기 복수의 데이터 레코드로부터 데이터 레코드의 제1 서브세트를 선택하도록 한다. 상기 소프트웨어는, 컴퓨팅 시스템으로 하여금, 상기 데이터 레코드의 제1 서브세트를 복수의 규칙을 구현하는 데이터 처리 어플리케이션에 제공하고, 상기 규칙 중 적어도 하나의 규칙이 상기 데이터 처리 어플리케이션에 의해 실행된 횟수를 나타내는 리포트를 수신하도록 하기 위한 명령을 포함한다. 상기 소프트웨어는, 컴퓨팅 시스템으로 하여금, 상기 리포트에 기초하여 상기 복수의 데이터 레코드로부터 데이터 레코드의 제2 서브세트를 선택하도록 하는 명령을 포함한다.
전반적인 양태에서, 컴퓨팅 시스템은 하나 이상의 프로세서를 포함하며, 상기 프로세서는, 각각의 데이터 레코드가 복수의 데이터 필드를 갖는 복수의 데이터 레코드를 액세스하고, 상기 복수의 데이터 레코드로부터 데이터 레코드의 제1 서브세트를 선택하도록 구성된다. 상기 프로세서는, 상기 데이터 레코드의 제1 서브세트를 복수의 규칙을 구현하는 데이터 처리 어플리케이션에 제공하고, 상기 규칙 중 적어도 하나의 규칙이 상기 데이터 처리 어플리케이션에 의해 실행된 횟수를 나타내는 리포트를 수신하도록 구성된다. 상기 프로세서는, 상기 리포트에 기초하여 상기 복수의 데이터 레코드로부터 데이터 레코드의 제2 서브세트를 선택하도록 구성된다.
전반적인 양태에서, 컴퓨팅 시스템은, 각각의 데이터 레코드가 복수의 데이터 필드를 갖는 복수의 데이터 레코드를 액세스하기 위한 수단과, 상기 복수의 데이터 레코드로부터 데이터 레코드의 제1 서브세트를 선택하기 위한 수단을 포함한다. 상기 컴퓨팅 시스템은, 상기 데이터 레코드의 제1 서브세트를 복수의 규칙을 구현하는 데이터 처리 어플리케이션에 제공하기 위한 수단과, 상기 규칙 중 적어도 하나의 규칙이 상기 데이터 처리 어플리케이션에 의해 실행된 횟수를 나타내는 리포트를 수신하기 위한 수단을 포함한다. 상기 컴퓨팅 시스템은, 상기 리포트에 기초하여 상기 복수의 데이터 레코드로부터 데이터 레코드의 제2 서브세트를 선택하기 위한 수단을 포함한다.
본 명세서에 개시된 기술은 이하의 장점 중의 하나 이상을 가질 수 있다. 예컨대, 생산 데이터 레코드의 완전한 세트는 거대(massive)할 수 있으며, 데이터 처리 어플리케이션을 이러한 커다란 세트의 레코드로 시험하는 것은 느리고 실현 불가능할 수 있다. 데이터 처리 어플리케이션의 동작에 관련되는 데이터 레코드의 완전한 세트의 특징을 대표하도록 선택된 데이터 레코드의 서브세트만을 사용함으로써, 철저하고 효율적인 시험이 달성될 수 있다. 어플리케이션의 효과적인 시험을 위한 최소 개수의 데이터 레코드의 정확한 선택은 데이터 레코드의 완전한 세트의 자동화된 프로파일링 분석 및 데이터 처리 어플리케이션의 실행으로부터의 피드백을 통해 달성될 수 있다.
본 발명의 기타 특징 및 장점은 이하의 상세한 설명 및 청구항들로부터 명백하게 된다.
도 1은 데이터 처리 시스템의 블록도를 도시하는 도면이다.
도 2a는 고객 트랜잭션 레코드(customer transaction record)의 일례의 세트의 작은 부분을 도시하는 도면이다.
도 2b는 데모그래픽 레코드(demographic records)의 일례의 세트의 작은 부분을 도시하는 도면이다.
도 3은 타겟 데이터 필드에 기초하여 데이터 레코드의 서브세트를 선택하기 위한 일례의 프로세스의 흐름도를 도시하는 도면이다.
도 4는 데이터 레코드를 선택하기 위한 일례의 프로세스의 흐름도를 도시하는 도면이다.
도 5는 데이터 레코드를 선택하기 위한 또 다른 예의 프로세스의 흐름도를 도시하는 도면이다.
데이터 처리 어플리케이션의 개발 동안, 개발자는 생산 환경의 외측에서 작업하고, 실제 생산 데이터에 대한 액세스를 갖지 못할 수도 있다. 데이터 처리 어플리케이션이 실제 데이터를 이용한 생산에서 적절하게 실행되도록 하기 위해, 어플리케이션의 실행 및 시험 동안 현실적인 데이터가 사용될 수 있다. 어플리케이션은 규칙의 실행이 하나 이상의 변수의 값에 좌우되는(예컨대, 하나 이상의 변수의 값에 의해 트리거되는) 규칙을 구현하는 경우가 많다. 이들 변수는 입력 데이터에 대응하는 입력 변수일 수도 있고, 하나 이상의 입력 변수에 좌우되는 파생 변수(derived variable)일 수도 있고, 또 다른 유형의 변수일 수도 있다. 어플리케이션의 효과적인 검사를 위해, 어플리케이션에서의 모든 논리 규칙이 실행되도록(예컨대, 어플리케이션에서의 완전한 코드 커버리지가 달성되도록) 하기에 충분하여, 이러한 모든 논리 규칙이 적어도 대응하는 최소 횟수로 실행되도록 하거나, 및/또는 모든 논리 규칙이 대응하는 최대 횟수보다 많지 않게 실행되도록 하는 입력 데이터가 제공될 수 있다.
어플리케이션에 제공될 데이터 레코드의 서브세트는 전형적으로 데이터 레코드의 하나 또는 그 이상의 더 큰 세트로부터(예컨대, 실제 생산 데이터의 세트로부터) 선택된다. 서브세트는 서브세팅 규칙(subsetting rule)에 기초하여 선택될 수 있으며, 이러한 서브세팅 규칙은 사용자에 의해 특정되거나, 데이터 레코드의 프로파일링 분석에 기초하여 포뮬레이트되거나, 어플리케이션의 실행으로부터의 피드백에 기초하여 포뮬레이트될 수 있다. 예컨대, 피시험 어플리케이션의 규칙의 일부 또는 전부가 실행되도록 할 수 있는 데이터를 포함하는 데이터 레코드가 서브세트를 위해 선택될 수 있다.
선택된 데이터 레코드는 선택된 데이터 레코드를 입력 데이터로서 사용하여 실행하는 어플리케이션에 제공된다. 어플리케이션은 하나 이상의 규칙을 구현한다. 즉, 어플리케이션에 의해 구현되는 각각의 규칙은 그 규칙에 대한 대응하는 조건 표현(condition expression)이 충족되는 때에는 어플리케이션에 의해 실행될 수 있고, 대응하는 조건 표현이 충족되지 않는다면 어플리케이션에 의해 실행되지 않는다. 규칙은 적어도 조건 표현 및 실행 표현(execution expression)을 포함하는 스페시피케이션에 의해 특정된다. 조건 표현이 충족되는 때에(예컨대, 조건 표현이 참의 결과로 평가되는 때에), 실행 표현이 평가된다. 조건 표현은 하나 이상의 변수의 값에 좌우될 수 있으며(예컨대, 하나 이상의 변수의 값에 의해 트리거될 수 있으며), 이러한 하나 이상의 변수는 입력 데이터에 대응하는 입력 변수일 수도 있고, 하나 이상의 입력 변수에 좌우되는 파생 변수일 수도 있고, 다른 유형의 변수일 수도 있다. 몇몇 예에서, 어플리케이션은 트리거되는 규칙의 전부를 실행한다. 몇몇 예에서, 어플리케이션은 규칙들 중의 몇몇 또는 규칙들 중의 단지 하나(예컨대, 트리거되는 제1 규칙)와 같은 트리거되는 규칙들의 전부보다 적은 규칙을 실행한다. 규칙은 적어도 2007년 4월 10일자로 출원된 미국 특허 제8,069,129호의 컬럼 5의 61라인부터 컬럼 6의 11라인까지에 보다 상세하게 설명되어 있으며, 이 특허의 내용은 그 전체가 원용에 의해 본 명세서에 통합된다.
실행 후에, 어플리케이션의 실행을 나타내는 데이터(예컨대, 실행하였거나 실행하지 않은 어플리케이션에서의 규칙, 어플리케이션에서의 각각의 논리 규칙이 실행된 횟수, 또는 기타 실행 데이터)를 포함하고 있는 리포트가 제공될 수 있다. 리포트에 기초하여, 예컨대 실행되지 않은 규칙을 실행되도록 할 입력 데이터, 특정 논리 규칙을 특정된 횟수로 실행되도록 할 입력 데이터, 또는 또 다른 요구된 실행 결과를 야기할 입력 데이터와 같은 추가의 입력 데이터가 식별될 수 있다. 예컨대 추가의 서브세팅 규칙이 포뮬레이트될 수 있고, 데이터 레코드의 업데이트된 서브세트가 이들 추가의 서브세팅 규칙에 따라 선택될 수 있는 것과 같이, 정정 동작(corrective action)이 실행될 수 있다. 데이터 레코드의 업데이트된 서브세트는 이전에 실행되지 않은 규칙의 일부 또는 전부의 실행을 야기하기에 충분한 데이터 레코드, 규칙의 일부 또는 전부의 실행을 특정된 횟수로 야기하기에 충분한 데이터 레코드, 또는 또 다른 요구된 실행 결과를 초래하기에 충분한 데이터 레코드를 포함할 수 있다.
도 1을 참조하면, 데이터 처리 시스템(100)은 서버(102a) 상에 호스팅된 레코드 선택 서브시스템(102)을 포함한다. 레코드 선택 서브시스템(102)은 데이터 레코드(예컨대, 생산 데이터 레코드)의 하나 이상의 세트로부터 데이터 레코드를 선택한다. 선택된 데이터 레코드는 데이터 처리 어플리케이션(106), 예컨대 시험 또는 개발이 진행중인 어플리케이션에 제공된다. 몇몇 예에서, 어플리케이션(106)은 예컨대 동일한 서버(102a) 상에 호스팅되는 것과 같이 레코드 선택 서브시스템(102)에 대해 근거리에 위치될 수 있다. 몇몇 예에서, 어플리케이션(106)은 예컨대 근거리 데이터 네트워크 또는 광역 데이터 네트워크(118)(예컨대, 인터넷)와 같은 하나 이상의 네트워크를 통해 액세스되는 원격 서버(106a) 상에 호스팅되는 것과 같이 레코드 선택 서브시스템(102)에 대해 원격으로 위치될 수도 있다.
데이터 레코드는 하나 이상의 서버(104a, 104b, 104c, 104d) 및 대응하는 저장 디바이스(108a, 108b, 108c, 108d)에 의해 호스팅된 데이터 소스(104)에 저장된다. 데이터 소스(104)는 데이터베이스(109), 스프레드시트 파일(110), 텍스트 파일(112), 메인프레임에 의해 사용되는 네이티브 포맷 파일(native format file)(114), 또는 또 다른 타입의 데이터 소스와 같은 다양한 데이터 소스의 어떠한 것도 포함할 수 있다. 데이터 소스 중의 하나 이상은 예컨대 동일한 컴퓨터 시스템(예컨대, 서버 102a) 상에 호스팅되는 것과 같이 레코드 선택 서브시스템(102)에 대해 근거리에 위치될 수도 있다. 데이터 소스 중의 하나 이상은 예컨대 네트워크(118), 복수의 네트워크 등을 통해 액세스되는 원격 서버(예컨대, 서버 104a, 104b, 104c, 104d) 상에 호스팅되는 것과 같이 레코드 선택 서브시스템(102)에 대해 원격으로 위치될 수도 있다.
데이터 소스(104)에 저장된 데이터 레코드는 데이터 레코드의 하나 이상의 세트를 포함한다. 예컨대, 데이터 레코드는 고객 트랜잭션 레코드, 고객 데모그래픽 레코드, 파이낸셜 트랜잭션 레코드(financial transaction record), 전화통신 데이터, 또는 기타 타입의 데이터 레코드를 포함할 수 있다. 각각의 데이터 레코드는 하나 이상의 데이터 필드를 가지며, 각각의 데이터 필드는 수치값(numerical value), 알파뉴메릭값(alphanumeric value), 널값(null value) 등과 같은 각각의 데이터 레코드를 위한 특정한 값(그것의 부족)을 갖는다. 예컨대, 고객 트랜잭션 레코드의 세트에서, 각각의 레코드는 고객 식별자, 구입 가격, 트랜잭션 타입 등을 저장하는 데이터 필드를 가질 수 있다.
레코드 선택 서브시스템(102)에서의 서브세팅 모듈(120)은 하나 이상의 서브세팅 규칙에 따라 데이터 소스(104)의 하나 이상에 저장된 데이터 레코드의 하나 이상의 세트로부터 데이터 레코드의 서브세트를 선택하는 것과 같은 다양한 동작을 제공할 수 있다. 서브세팅 규칙은 데이터 레코드의 하나 이상의 세트로부터 데이터 레코드의 서브세트를 선택하는, 컴퓨터에 의해 실행 가능한, 규칙이다. 서브세팅 규칙은 프로파일링 모듈(126)에 의해 생성된 데이터 레코드의 하나 이상의 세트의 프로파일의 분석에 기초하여 서브세팅 모듈(120)에 의해 포뮬레이트될 수 있다. 서브세팅 규칙은 또한 커버리지 분석 모듈(128)에 의해 제공된 어플리케이션의 실행의 결과에 대한 분석에 기초하여(예컨대, 리포트에 기초하여) 서브세팅 모듈(120)에 의해서도 포뮬레이트될 수 있다. 서비세팅 모듈은 예컨대 데이터 레코드 및/또는 피시험 어플리케이션(106)에 대한 사용자의 이해에 기초하여, 사용자 인터페이스(124)를 통해 사용자에 의해 특정될 수도 있다. 서브세팅 규칙은 또한 하드 디스크와 같은 저장 매체로부터 판독될 수도 있거나, 또는 인터넷과 같은 네트워크를 통해 수신될 수도 있다.
다양한 서브세팅 규칙이 가능하며, 단독으로 또는 조합으로 적용될 수 있다. 서브세팅 규칙은 결정성의 것(deterministic)(예컨대, 규칙이 특정한 기준에 부합하는 모든 레코드가 선택되도록 특정할 수 있음)일 수 있거나, 또는 비결정성의 것(non-deterministic)(예컨대, 규칙이 특정 기준에 부합하는 모든 레코드 중의 2개가 랜덤하게 선택되도록 특정할 수 있음)일 수 있다.
몇몇 예에서, 서브세팅 규칙은 하나 이상의 타겟 데이터 필드를 지정하며, 타겟 데이터 필드에 대한 각각의 별개의 값 또는 값 분류(value classification)가 데이터 레코드의 선택된 서브세트의 데이터 레코드 중의 적어도 하나에 포함되도록 특정한다. 서브세팅 모듈(120)은 데이터 레코드의 하나 이상의 세트에서 타겟 데이터 필드를 위한 각각의 별개의 값을 식별하고, 서브세팅 규칙을 충족할 데이터 레코드를 선택한다. 예컨대, 50개의 주(state)의 각각에 대한 별개의 값을 갖는 state 데이터 필드 및 2개의 별개의 값을 갖는 gender 데이터 필드가 타겟 데이터 필드로서 식별될 수 있다. 데이터 레코드는 주에 대한 50개의 값의 각각과 성별에 대한 2개의 값의 각각이 서브세트에서의 적어도 하나의 데이터 레코드에 포함되도록 서브세트를 위해 선택된다.
몇몇 예에서, 서브세팅 규칙은 데이터 레코드의 동일한 세트 내에 있거나 또는 데이터 레코드의 상이한 세트들에 걸쳐있는 데이터 레코드들 간의 관계의 타입을 특정한다. 서브세팅 모듈(120)은 서브세트를 위해 선택된 다른 데이터 레코드와의 이들의 관계에 기초하여 데이터 레코드를 선택한다. 예컨대, 고객 식별자(cust_id) 데이터 필드에 대한 공통적인 값을 공유하는 데이터 레코드가 서브세트를 위해 선택될 수 있다. 필터링과 같은 서브세팅 규칙의 다른 예 또한 가능하다. 몇몇 예에서, 서브세트에 대한 데이터 레코드를 선택하기 위해 서브세팅 규칙의 조합이 사용될 수 있다.
몇몇 예에서, 서브세팅 규칙은 데이터 분석가(data analyst) 또는 어플리케이션 개발자와 같은 사용자에 의해 제공된다. 예컨대, 사용자는 타겟 필드를 식별하거나, 데이터 레코드들 간의 관계를 특정하거나, 또는 서브세팅 규칙을 지시할 수 있다.
몇몇 예에서, 서브세팅 규칙은 프로파일링 모듈(126)에 의해 자동으로 생성된 데이터 레코드의 프로파일의 분석에 기초하여 서브세팅 모듈(120)에 의해 포뮬레이트된다. 프로파일링 모듈(126)은 데이터 레코드의 하나 이상의 세트를 액세스하고, 단일 데이터 세트의 개별 데이터 레코드를 분석함으로써 및/또는 데이터 레코드의 하나의 세트 내의 및/또는 데이터 레코드의 상이한 세트들에 걸쳐서의 데이터 필드들 간의 관계를 분석함으로써 데이터 레코드의 프로파일을 생성할 수 있다.
데이터 레코드의 세트의 프로파일은 데이터 레코드의 세트 내의 데이터의, 예컨대 하나의 필드씩을 기반으로 하는(on a field-by-field basis), 개요(summary)이다. 프로파일은 데이터 레코드 내의 데이터 필드의 하나 이상의 데이터 필드의 카디널러티(cardinality), 데이터 필드의 하나 이상의 데이터 필드에서의 값의 분류, 개개의 데이터 레코드에서의 데이터 필드들 간의 관계, 데이터 레코드들 간의 관계, 또는 데이터 레코드의 세트 내의 데이터를 특징짓는 기타 정보와 같은 데이터 레코드의 세트 내의 데이터를 특징짓는 정보를 포함할 수 있다. 데이터 레코드의 세트의 프로파일은 또한 의사필드(pseudofield)를 특징짓는 정보를 포함할 수 있으며, 이러한 의사필드는, 프로파일링 모듈(126)에 의해 생성되고 관련 데이터 레코드 내의 하나 이상의 데이터 필드에 대한 값의 조작에 의해 결정된 값으로 팝퓰레이트된 데이터 필드이다.
데이터 레코드의 생성된 프로파일에 기초하여, 서브세팅 모듈(120)은 어플리케이션(106)을 위한 양호한 코드 커버리지를 달성하는 데이터 레코드의 서브세트의 선택에 관련될 수 있는 데이터 레코드의 특징을 식별할 수 있다. 예컨대, 데이터 레코드의 프로파일에 기초하여, 서브세팅 모듈(120)은 어플리케이션의 입력 변수 및 파생 변수에 관련될 것 같은 하나 이상의 데이터 필드 또는 데이터 필드의 조합을 식별할 수 있다. 몇몇 경우에, 서브세팅 규칙은 또한 사용자 또는 컴퓨터 저장 매체로부터 수신된 입력에 기초하여 및/또는 어플리케이션(106)의 실행의 결과에 기초하여(예컨대, 커버리지 분석 모듈(128)로부터 수신된 입력에 기초하여) 포뮬레이트될 수 있다.
서브세팅 모듈(120)은 서브세팅 규칙을 특정하기 위해 하나 이상의 타입의 분석을 위한 동작을 수행할 수 있다. 서브세팅 모듈(120)은 예컨대 어느 데이터 필드가 어플리케이션(106)의 변수에 관련이 있을 것 같은지를 판단함으로써와 같이 개개의 데이터 레코드 내의 데이터 필드의 분석에 기초하여 하나 이상의 서브세팅 규칙을 특정할 수 있다. 몇몇 예에서, 서브세팅 모듈(120)은 프로파일에서 지시된 바와 같은 타겟 데이터 필드의 카디널러티(즉, 하나의 세트의 데이터 레코드의 전부에 걸친 데이터 필드에 대한 별개의 값의 개수 또는 값들의 분류)에 기초하여 타겟 데이터 필드를 식별한다. 예컨대, gender 데이터 필드(2개의 카디널러티를 갖는)는 타겟 데이터 필드로서 식별될 수 있는 한편, phone number 데이터 필드(데이터 레코드의 총수 정도의 카디널러티를 갖는)는 타겟 데이터 필드로서 식별되기가 쉽지 않다. 몇몇 예에서, 서브세팅 모듈(120)은 하나 이상의 데이터 필드의 데이터의 조작에서 비롯된 데이터로 팝퓰레이트된 의사필드를 타겟 데이터 필드로서 식별한다. 예컨대, income 데이터 필드의 데이터는 카테고리(예컨대, 높음, 중간 또는 낮음)로 분류될 수 있으며, income 데이터 필드의 분류(inc_range)로 팝퓰레이트된 의사필드는 타겟 데이터 필드로서 식별될 수 있다. 몇몇 예에서, 서브세팅 모듈(120)은 타겟 데이터 필드와 프로파일에서 지시된 것과 같이 동일한 레코드 내의 하나 이상의 다른 데이터 필드 간의 관계에 기초하여 타겟 데이터 필드를 식별한다. 예컨대, 프로파일은 데이터 필드 stateZIP이 독립적이지 않다는 것을 지시할 수 있으며, 이 의존성에 기초하여, 서브세팅 모듈(120)은 이들 데이터 필드 중의 단지 하나를 가능한 타겟 데이터 필드로서 고려할 수 있다. 서브세팅 모듈(120)은 또한 데이터 레코드의 세트 내의 및/또는 프로파일에서 지시된 바와 같은 데이터 레코드의 상이한 세트에 걸친 상이한 데이터 레코드들 간의 관계의 분석에 기초하여 하나 이상의 서브세팅 규칙을 특정할 수 있다. 예컨대, 프로파일은 데이터 레코드가 데이터 필드의 공통적인 값(예컨대, cust_id 데이터 필드의 값)을 통해 연계될 수 있다는 것을 지시할 수 있다. 데이터 레코드의 다른 분석 또한 가능하다.
데이터 레코드의 서브세트가 서브세팅 모듈(120)에 의해 선택되는 때에, 데이터 레코드의 선택된 서브세트를 나타내는 데이터가 피시험 어플리케이션(106)에 제공된다. 예컨대, 데이터 레코드의 선택된 서브세트에 대한 식별자 및 데이터 레코드에 대한 어드레스가 어플리케이션(106)에 제공될 수 있다. 데이터 레코드의 선택된 서브세트를 포함하는 파일 또한 어플리케이션(106)에 제공될 수 있다.
데이터 처리 어플리케이션(106)은 데이터 레코드의 서브세트를 입력 데이터로서 사용하여 실행된다. 실행 후에, 레코드 선택 서브시스템(102)의 커버리지 분석 모듈(128)에게 리포트가 제공된다. 리포트는 또한 사용자(122)에게도 제공될 수 있다. 리포트는 어플리케이션의 실행을 나타내는 데이터(예컨대, 실행하였거나 실행하지 않은 어플리케이션에서의 규칙, 어플리케이션에서의 각각의 논리 규칙이 실행된 횟수, 또는 기타 실행 데이터)를 포함하고 있다. 몇몇 예에서, 리포트는 실행하였거나 실행하지 않은 이들 규칙을 직접 식별한다. 리포트는 또한 각각의 논리 규칙이 실행되었던 횟수, 실행 동안의 어플리케이션의 각각의 변수의 값, 또는 기타 정보와 같은 어플리케이션(106)의 실행에 대한 추가의 정보를 포함할 수 있다.
실행하지 않은 어플리케이션에서의 각각의 논리 규칙에 대해, 커버리지 분석 모듈(128)은 그 논리 규칙에 관련하고 있는 어플리케이션(106)의 하나 이상의 변수를 식별한다. 커버리지 분석 모듈(128)은 리포트에 포함된 데이터(예컨대, 어플리케이션(106)을 통한 데이터의 흐름을 나타내는 데이터)에 기초하여, 어플리케이션에 대한 사전 로딩된 정보에 기초하여 등으로 변수를 식별할 수 있다. 몇몇 경우에, 커버리지 분석 모듈(128)은 또한 논리 규칙을 실행하도록 할 각각의 변수에 대한 값 또는 값의 범위를 식별한다. 입력 데이터 필드와 변수에 대응하는 값 또는 값의 범위는 서브세팅 모듈(120)에 의한 데이터 레코드의 업데이트된 서브세트의 후속 선택에서의 추가의 서브세팅 규칙을 특정하기 위해 식별되고 사용된다.
예컨대, 식별된 변수가 데이터 레코드의 데이터 필드 중의 하나에 직접 대응하는 어플리케이션의 입력 변수이면, 커버리지 분석 모듈(128)은 대응하는 데이터 필드와 데이터 필드를 위한 값 또는 값의 범위를 식별한다. 예컨대, 변수 x가 10보다 크고, 변수 x가 고객 트랜잭션의 양에 대한 데이터를 포함하고 있는 입력 데이터 필드 txn _amt에 대응하는 때에, 어플리케이션(106)에서의 논리 규칙이 실행되면, 커버리지 분석 모듈은 입력 데이터가 txn _amt>10에 해당하는 적어도 하나의 데이터 레코드를 포함하여야 하는 것으로 결정한다. 이 결정(예컨대, txn_amt>10)은 서브세팅 모듈(120)에 제공되고, 서브세팅 모듈은 어플리케이션(106)에 제공된 데이터 레코드의 후속 서브세트가 x>10 논리 규칙을 실행되도록 하기에 충분한 데이터를 포함하도록 추가의 서브세팅 규칙을 특정한다.
예컨대, 식별된 변수가 입력 변수가 아니면(즉, 식별된 변수가 데이터 레코드의 데이터 필드 중의 하나에 직접 대응하지 않으면), 커버리지 분석 모듈(128)의 데이터 리니지 서브모듈(data lineage submodule)(130)은 식별된 변수가 파생되는 입력 변수(들)를 식별하기 위해 어플리케이션(106)의 로직을 통해 변수의 파생을 추적한다. 커버리지 분석 모듈(128)은 그리고나서 대응하는 데이터 필드(들) 및 데이터 필드에 대한 값 또는 값의 범위를 식별한다. 예컨대, 변수 y의 값이 2인 때에 어플리케이션(106)의 논리 규칙이 실행되면, 데이터 리니지 서브모듈(130)은 변수 y가 입력 데이터 필드 gender, inc_rangestate에 대응하는 3개의 입력 변수의 논리 조합으로부터의 어플리케이션의 논리적 단계를 통해 파생된 것으로 결정할 수 있다. 변수 y의 논리적 파생을 후속함으로써, y=2를 야기하는 데이터 필드 gender, inc_rangestate의 값이 결정될 수 있다. 예컨대, 논리 규칙 y=2는 gender = F, inc_range = 높음, 및 state = ME, NH, VT, MA, RI 또는 CT인 때에 충족될 수 있다. 이 결정은 서브세팅 모듈(120)에 제공되며, 서브세팅 모듈은 어플리케이션(106)에 제공된 데이터 레코드의 후속의 서브세트가 y=2 논리 규칙을 실행되도록 하기에 충분한 데이터를 포함하도록 추가의 서브세팅 규칙을 특정한다. 또 다른 예로서, 논리 규칙은 데이터 필드 firstnamelastname에 대응하는 변수의 값이 동일한 때와 같이 2개의 변수의 값이 특별한 관계를 갖는 때에 실행될 수 있다.
몇몇 예에서, 커버리지 분석의 결과 또한 사용자(122)에게 제공된다. 사용자는 추가의 서브세팅 규칙을 서브세팅 모듈(120)에 제공할 수 있거나, 또는 이전에 제공된 서브세팅 규칙을 수정할 수 있다. 사용자는 또한 프로파일링 모듈에게 이전에 제공된 입력을 수정하기 위해 프로파일링 모듈(126)에 추가의 입력을 제공할 수 있다.
몇몇 예에서는, 데이터 레코드의 완전한 세트(들) 조차도 어플리케이션(106)의 논리 규칙을 충족하기에 충분한 데이터를 포함하지 못한다. 예컨대, 어플리케이션(106)은 데이터 필드 income에 대한 값이 5백만 달러보다 큰 때에만 실행되는 논리 규칙을 포함할 수 있다. income>$5,000,000에 해당하는 세트에서 데이터 레코드가 존재하지 않는다면, 그 논리 규칙을 실행되게 할 데이터 레코드의 서브세트가 없을 것이다. 완전한 데이터 세트에서의 이러한 결함(deficiency)을 식별하기 위해, 몇몇 예에서, 어플리케이션은 데이터 레코드의 전부를 입력으로서 이용하여 1회 이상 실행될 수 있다. 그 결과의 리포트는 입력을 위해 선택되는 데이터 레코드의 서브세트에 상관없이 커버될 수 없는 규칙을 식별한다.
서브세팅 모듈(120) 및 프로파일링 모듈(126)의 동작을 도 2a 및 도 2b에 도시된 데이터 레코드의 일례의 세트(200, 252)를 참조하여 설명할 것이다. 도 2a는 고객 트랜잭션 레코드의 세트(200)의 작은 부분의 예이다. 각각의 고객 트랜잭션 레코드(202)는 예컨대 고객 식별자(cust _id)(204a), 트랜잭션 타입(txn_type)(204b), 트랜잭션 양(txn _amt)(204c), 트랜잭션 일자(date)(204d), 및 매장 식별자(store_id)(204e)를 포함한 여러 개의 데이터 필드(204)를 갖는다. 다른 데이터 필드 또한 포함될 수 있다. 도 2b는 데모그래픽 레코드의 세트(250)의 작은 부분의 예이다. 각각의 데모그래픽 레코드(252)는 예컨대 고객 식별자(cust_id)(254a), 고객 주소(address, stae , ZIP)(254b, 254c, 254d), 고객 수입(income)(254e), 및 고객 성별(gender)(254f)을 포함한 여러 개의 데이터 필드(254)를 갖는다. 다른 데이터 필드 또한 포함될 수 있다. 프로파일링 모듈(126) 및 서브세팅 모듈(120)의 동작은 이들 일례의 데이터 세트로 제한되지 않으며, 다른 타입의 데이터 세트에도 유사하게 적용된다.
서브세팅 모듈(120)은 하나 이상의 타입의 서브세팅 규칙에 따라 데이터 레코드의 서브세트를 선택할 수 있다. 몇몇 예의 서브세팅 규칙은 다음과 같다:
필터링 (Filtering) : 몇몇 예에서, 서브세팅 모듈(120)은 필터에 따라 데이터 레코드의 서브세트를 선택한다. 예컨대, 필터는 소정의 데이터 필드에 대한 특정한 값을 갖는 모든 데이터 레코드가 선택되도록 특정할 수 있다. 예컨대, 필터는 state(데이터 필드 254c)="MA"를 갖는 세트(250)로부터의 모든 데모그래픽 레코드가 서브세트에 대해 선택되도록 특정할 수 있다. 필터링은 사용자, 프로파일링 모듈(126), 및/또는 커버리지 분석 모듈(128)에 의해 특정될 수 있다.
몇몇 예에서, 서브세팅 모듈(120)은 데이터 레코드가 소정의 데이터 필드의 값에 기초하여 제거되는 규칙-기반 필터에 따라 데이터 레코드의 서브세트를 선택한다. 예컨대, 필터는 (store_id)(204e)="온라인"에 해당하는 데이터 레코드가 서브세트로부터 제거되도록 특정할 수 있다. 규칙-기반 필터는 사용자(122), 프로파일링 모듈(126), 및/또는 커버리지 분석 모듈(128)에 의해 특정될 수 있다.
타겟 데이터 필드 (Target Data Field) : 몇몇 예에서, 서브세팅 모듈(120)은 하나 이상의 타겟 데이터 필드에 기초하여 데이터 레코드의 서브세트를 선택한다. 타겟 데이터 필드는 예컨대 어플리케이션의 변수에 관련될 가능성이 있는 데이터 필드이다. 예컨대, 고객 트랜잭션 레코드에 대해 동작하는 특정 어플리케이션이 매장 위치에 의한 트랜잭션 타입(즉, 구매 또는 반품)을 추적하면, 어플리케이션의 개발자는 데이터 필드 txn _type(데이터 필드 204c) 및 store_id(데이터 필드 204e)를 타겟 데이터 필드로서 식별할 수 있다. 몇몇 경우에, 서브세팅 모듈(120)은 데이터 레코드의 프로파일에서 식별된 바와 같이 데이터 필드의 카디널러티와 같은 데이터 필드의 특성에 기초하여 타겟 데이터 필드를 식별할 수 있다. 몇몇 경우에, 커버리지 분석 모듈(128)은 어플리케이션의 변수와 데이터 필드 간의 관계에 기초하여 타겟 데이터 필드를 식별할 수 있다. 낮은 카디널러티의 데이터 필드(예컨대, 임계 카디널러티보다 작은 카디널러티를 갖는 데이터 필드)는, 프로파일링 모듈(126)이 데이터 필드의 컨텐츠에 대한 기타 정보를 거의 갖지 않거나 전혀 갖지 않고 그 컨텐츠가 어플리케이션에 어떻게 관련될 수 있다 하더라도, 타겟 데이터 필드로서 식별될 수 있다. 임계 카디널러티는 사용자에 의해 특정될 수도 있고, 또는 프로파일링 모듈에 의해 자동으로 결정될 수도 있다. 예컨대, 데모그래픽 레코드의 세트(350)의 프로파일에 기초하여, 데이터 필드 state는 임계 카디널러티가 적어도 50개로 설정되면 타겟 데이터 필드로서 식별될 수 있다.
도 3은 타겟 데이터 필드에 기초하여 데이터 레코드의 서브세트를 선택하기 위한 일례의 프로세스의 흐름도를 도시하는 도면이다. 예컨대 데이터 레코드의 프로파일에 포함된 정보, 사용자로부터의 정보, 커버리지 분석 모듈(128)로부터의 정보 등에 기초하여, 하나 이상의 타겟 데이터 필드가 식별된다(300). 레코드의 세트에서의 각각의 타겟 데이터 필드에 대한 별개의 값의 세트가 식별된다(302). 데이터 레코드는 각각의 타겟 데이터 필드에 대한 각각의 별개의 값이 서브세트에서의 적어도 하나의 데이터 레코드에 포함되도록 서브세트에 대해 선택된다(304). 일례에서, state 데이터 필드 및 gender 데이터 필드가 데모그래픽 레코드의 세트(250)에 대한 타겟 데이터 필드로서 식별된다. 데이터 레코드의 세트(250)는 state에 대한 50개의 별개의 값 및 gender에 대한 2개의 별개의 값을 식별하기 위해 분석된다. 데이터 레코드는 state에 대한 50개의 값의 각각과 gender에 대한 2개의 값의 각각이 서브세트에서의 적어도 하나의 데이터 레코드에 포함되도록 선택된다. 몇몇 예에서, 서브세팅 규칙은 각각의 타겟 데이터 필드에 대한 각각의 별개의 값이 서브세트에 포함되는 횟수(예컨대, 1회, 10회, 50회 등)를 특정할 수 있다.
타겟 데이터 필드에 기초한 서브세팅은 각각의 데이터 필드의 각각의 값의 모든 조합이 서브세트에서 표현된다는 것을 의미할 필요는 없다. 예컨대, state에 대한 50개의 값의 각각과 gender에 대한 2개의 값의 각각이 포함되는 데이터 레코드의 서브세트는 단지 50개의 데이터 레코드만을 포함할 수도 있다. 몇몇 예에서, 타겟 데이터 필드는 의사필드(예컨대, 아래에 설명되는 바와 같이 프로파일링 모듈에 의해 구축된)와 같은 구축 필드(constructed field)이며, 동일한 레코드 내의 또는 상이한 레코드에 걸쳐있는 하나 이상의 데이터 필드에 좌우된다.
데이터 분류 (Data Classification) : 몇몇 예에서, 데이터 레코드의 서브세트는 데이터 레코드의 하나 이상의 타겟 데이터 필드의 데이터의 분류에 기초하여 선택된다. 예컨대, 서브세팅 규칙은 타겟 데이터 필드를 식별하고, 타겟 데이터 필드의 값이 분류될 수 있는 값의 별개의 범위("빈(bin)")를 특정할 수 있다. 데이터 레코드는 타겟 데이터 필드의 정확한 값보다는 타겟 데이터 필드의 빈에 기초하여 서브세트를 위해 선택된다. 일례에서, 데모그래픽 레코드의 세트(250)에서의 데이터 필드 income은 타겟 데이터 필드로서 식별된다. 3개의 빈이 지정된다: "낮음"(income<$50,000), "중간"($50,000와 $150,000 사이의 income), 및 "높음"(income>$150,000). 서브세트에의 포함을 위한 서브세팅 모듈(120)에 의해 고려된 각각의 데이터 레코드에서의 income 데이터 필드의 값은 낮음, 중간 또는 높음으로서 분류되며, 데이터 레코드는 수입의 3개의 빈의 각각이 서브세트에서의 적어도 하나의 데이터 레코드에 포함되도록 선택된다. 몇몇 예에서, 데이터 필드의 값이 분류되며(예컨대, 프로파일링 모듈에 의해), 각각의 데이터 레코드에 대한 의사필드가 대응하는 분류된 값(예컨대, 데이터 필드 inc_range(256))으로 팝퓰레이트된다. 이들 예에서, 의사필드는 타겟 데이터 필드로서 취급되며, 데이터 레코드는 의사필드에 대한 각각의 별개의 값이 서브세트에서의 적어도 하나의 데이터 레코드에 포함되도록 선택된다. 분류될 데이터 필드, 빈의 개수, 및/또는 각각의 빈에 대한 값의 범위는 사용자(122)에 의해 특정될 수 있거나, 또는 프로파일링 모듈(126) 및/또는 커버리지 분석 모듈(128)에 의해 자동으로 식별될 수 있다.
조합이론 (Combinatorics) : 몇몇 예에서, 데이터 레코드의 서브세트가 2개 이상의 다른 서브세팅 규칙의 조합을 특정할 수 있는 조합이론 규칙에 따라 선택된다. 예컨대, 조합이론 규칙은 2개의 타겟 데이터 필드를 식별할 수 있고, 2개의 타겟 데이터 필드의 각각의 데이터 필드의 모든 값의 모든 가능한 조합이 서브세트에서의 적어도 하나의 데이터 레코드에 포함되도록 특정할 수 있다. 일례의 조합이론 규칙은 데이터 필드 inc_rangegender를 타겟 데이터 필드로서 식별하고, 이들 2개의 데이터 필드의 모든 가능한 조합이 서브세트에 포함되도록 특정할 수 있다. 이 조합이론 규칙을 충족하는 서브세트는 6개의 데이터 레코드(즉, 낮음+여성, 낮음+남성, 중간+여성, 중간+남성, 높음+여성, 높음+남성)을 포함할 것이다. 이와 반대로, 조합이론 규칙 없이도, 타겟 데이터 필드로서의 inc_rangegender의 스페시피케이션이 겨우 3개의 레코드(예컨대, 낮음+여성, 중간+남성, 높음+여성)로 충족될 수 있다. 몇몇 예에서, 서브세팅 규칙은 2개 이상의 타겟 데이터 필드의 조합이론적 조합과 이 조합이론적 조합 외측의 하나 이상의 다른 타겟 데이터 필드를 특정할 수 있다. 예컨대, 서브세팅 규칙은 inc_rangegender를 조합이론적 조합에서 취해질 타겟 데이터 필드로서 특정할 수 있고, 또한 state를 그 조합의 외측의 타겟 데이터 필드로서 특정할 수 있다. 보다 복잡한 조합 또한 가능하다. 타겟 데이터 필드 및 특정한 타입의 조합은 사용자(122)에 의해 특정될 수 있거나, 또는 프로파일링 모듈(126) 및/또는 커버리지 분석 모듈(128)에 의해 자동으로 식별될 수 있다.
데이터 레코드들 간의 관계 (Relationships Among Data Records) : 몇몇 예에서, 데이터 레코드의 서브세트가 데이터 레코드의 세트 내의 또는 데이터 레코드의 상이한 세트들에 걸쳐서의 데이터 레코드들 간의 관계에 따라 선택된다. 서브세팅 규칙은, 하나의 데이터 레코드가 서브세트를 위해 선택되면, 조인 키(join key)를 통해 그 데이터 레코드에 관련되는 다른 데이터 레코드가 또한 서브세트를 위해 선택되도록 조인 키를 특정할 수 있다. 예컨대, 서브세팅 규칙은 데이터 필드 cust _id를 고객 트랜잭션 레코드의 세트(200) 내의 그리고 데모그래픽 레코드의 세트 200과 세트 250 간의 데이터 레코드들을 관련시키는 조인 키로서 식별할 수 있다. 서브세트를 위해 선택되는(예컨대, 또 다른 서브세팅 규칙에 따라) 둘 중의 하나의 세트로부터의 각각의 데이터 레코드에 대해, 선택된 데이터 레코드와 동일한 cust _id에 대한 값을 공유하는 다른 데이터 레코드 또한 서브세트를 위해 선택된다. 관계에 따라 데이터 레코드를 선택함으로써, 서브세트는 예컨대 그 고객에 대한 데모그래픽 레코드뿐만 아니라 특정 고객에 대한 모든 트랜잭션에 대한 데이터 레코드를 포함할 것이다. 이러한 관계는 사용자(122)에 의해 특정될 수 있거나, 또는 프로파일링 모듈(126) 및/또는 커버리지 분석 모듈(128)에 의해 자동으로 식별될 수 있다.
몇몇 예에서, 데이터 레코드들 간의 관계는 데이터 레코드의 하나 이상의 특성에 기초하여 이루어질 수 있다. 예컨대, 대상으로 하는 데이터 레코드(예컨대, 부정 신용 카드 트랜잭션에 대응하는 데이터 레코드)가 식별될 수 있다. 대응하는 서브세팅 규칙은 그리고나서 서브세트가 예컨대 데이터 레코드에서의 다른 경우의 부정을 식별하는데 도움을 주기 위해 대상으로 하는 식별된 데이터 레코드에 유사한 특성을 갖는 50개의 다른 데이터 레코드를 포함하도록 특정할 수 있다.
다른 서브세팅 규칙 또한 특정될 수 있다. 예컨대, 데이터 레코드 카운트가 특정될 수 있다(예컨대, 서브세트가 txn _type="구매"에 해당하는 적어도 100개의 레코드를 포함할 것이다). 통계 파라미터(statistical parameter) 또한 특정될 수 있다(예컨대, 서브세트는 txn _type="구매"에 해당하는 모든 데이터 레코드 및 txn _type="반품"에 해당하는 데이터 레코드의 15%를 포함할 것이다). 수치 파라미터가 특정될 수 있다(예컨대, 서브세트는 데이터 레코드의 세트에서의 백만개의 데이터 레코드 당의 적어도 특정된 개수의 데이터 레코드를 포함할 것이다). 서브세팅 규칙은 사용자(122)에 의해 특정되거나 및/또는 프로파일의 분석(프로파일링 모듈(126)에 의해 생성된) 및/또는 실행의 분석의 결과(커버리지 분석 모듈(128)에 의해 제공된)에 기초하여 서브세팅 모듈(120)에 의해 포뮬레이트될 수 있다.
몇몇 예에서, 복수의 서브세팅 규칙이 데이터 레코드의 세트에 적용될 수 있다. 몇몇 경우에, 이들 복수의 서브세팅 규칙의 적용은 몇몇 데이터 레코드가 서브세트를 위해 복수 회 선택되게 할 수 있다. 서브세트에서 1회보다 많게 나타나는 임의의 데이터 레코드를 제거하기 위해 선택된 데이터 레코드에 중복제거 규칙(deduplication rule)이 적용될 수 있다.
몇몇 예에서, 서브세팅 규칙은 프로파일링 모듈(126)에 의해 생성된 프로파일의 분석에 기초하여 포뮬레이트된다. 프로파일링 모듈(126)은 외측 소스로부터의 입력 없이 또는 사용자(122) 및/또는 커버리지 분석 모듈(128)로부터의 입력으로 데이터 레코드를 분석할 수 있다. 프로파일링 분석의 몇몇 예는 다음과 같다:
카디널러티 (Cardinality) : 몇몇 예에서, 프로파일링 모듈(126)은 데이터 필드의 카디널러티(예컨대, 하나의 세트의 데이터 레코드의 전부에 걸친 데이터 필드에 대한 별개의 값의 개수)를 식별한다. 예컨대, 고객 트랜잭션 레코드의 세트(300)를 프로파일링할 때, 프로파일링 모듈은 낮은 카디널러티(세트(300)의 모든 데이터 레코드에서의 단지 2개의 별개의 값)의 데이터 필드로서의 txn _type를 식별할 수 있다. 데모그래픽 레코드의 세트(350)를 프로파일링할 때, 데이터 필드 state는 임계 카디널러티가 적어도 50으로 설정된다면 카디널러티 50을 갖는 데이터 필드로서 식별될 수 있다. 데이터 필드의 몇몇 또는 전부의 카디널러티는 서브세팅 규칙을 특정하기 위해 서브세팅 모듈(120)에 의해 사용될 수 있다.
분류 (Classification) : 몇몇 예에서, 프로파일링 모듈(126)은 데이터 필드의 데이터를 분류한다. 예컨대, 프로파일링 모듈은 높은 카디널러티 데이터 필드의 값이 분류될 수 있는 별개의 값의 범위("빈")를 식별할 수 있다. 분류된 바와 같이, 데이터 필드는 더 낮은 카디널러티를 가지며, 그러므로 전술한 바와 같이 타겟 데이터 필드로서 식별될 수 있다. 몇몇 경우에, 프로파일링 모듈은 레코드를 분석할 때에 각각의 레코드의 데이터 필드에 대한 값을 분류하지만, 이러한 분류를 저장하지 않는다. 몇몇 경우에, 프로파일링 모듈은 데이터 필드의 값에 대응하는 빈이 저장되는 각각의 레코드에 대한 의사필드를 생성한다. 일례로서, 데모그래픽 레코드의 세트(350)에서의 데이터 필드 income은 높은 카디널러티이다. 프로파일링 모듈은 각각의 레코드에 대한 income 값을 3개의 빈(높음, 중간 또는 낮음) 중의 하나로 분류하고, 카테고리화된 데이터를 저장하기 위해 의사필드 inc_range(356)를 생성한다. 의사필드(356)는 카디널러티 3을 가지며, 이로써 높은 카디널러티 데이터 필드 income가 타겟 데이터 필드로서 식별되지 않을 수도 있는 서브세팅 모듈(120)에 의해 타겟 데이터 필드로서 식별될 수 있다. 몇몇 예에서, 프로파일링 모듈은 높은 카디널러티 데이터 필드가 자동으로 분류될 수 있다는 것을 인지한다. 몇몇 예에서, 사용자는 분류를 위한 데이터 필드를 식별하고, 또한 빈의 개수 및 각각의 빈 내에 들어가는 값의 범위를 특정할 수 있다. 몇몇 예에서, 사용자는 구체적인 데이터 필드를 식별하지 않고서도 분류될 데이터 필드의 특성을 특정한다(예컨대, 사용자는 10과 100 사이의 카디널러티를 갖고 수치값을 갖는 임의의 데이터 필드가 사분위수(quartile)로 카테고리화되도록 특정할 수 있다).
데이터 필드들 간의 관계 (Relationships Among Data Fields) : 몇몇 예에서, 프로파일링 모듈(126)은 단일 데이터 레코드 내의 데이터 필드들 간의 관계를 결정한다. 예컨대, 데이터 레코드 내의 제1 데이터 필드가 각각의 데이터 레코드 내의 제2 데이터 필드에 좌우되면, 제1 데이터 필드와 제2 데이터 필드 중의 하나만이 타겟 데이터 필드로서 고려될 필요가 있다. 예컨대, 데이터 필드 state와 데이터 필드 ZIP은 관련이 있다(즉, ZIP에 대한 값이 state에 대한 값에 좌우된다). 프로파일에서의 이러한 관계의 지시에 기초하여, 서브세팅 모듈(120)은 2개의 관련된 데이터 필드 중의 하나만을 가능한 타겟 데이터 필드로서 고려할 수 있다. 타겟 데이터 필드를 식별함에 있어서 서브세팅 모듈(120)에 의해 데이터 필드들 간의 더욱 복잡한 관계도 식별될 수 있다. 프로파일링 모듈은 예컨대 관련되기가 쉬운 데이터 필드들의 사용자 특정에 의해서와 같이 사용자 입력에 의해 가이드될 수 있다.
데이터 레코드들 간의 관계 (Relationships Among Data Records) : 몇몇 예에서, 프로파일링 모듈(126)은 데이터 레코드의 하나의 세트 내의 또는 데이터 레코드의 상이한 세트들에 걸친 상이한 데이터 레코드들 간의 관계를 결정한다. 예컨대, 프로파일링 모듈은 하나의 세트 내의 몇몇 데이터 레코드가 데이터 필드의 공통적인 값을 통해 연계된다는 것을 인지할 수 있다. 예컨대, 고객 트랜잭션 레코드의 세트(300)는 동일한 고객에 의한 트랜잭션에 대응하는 복수의 데이터 레코드를 포함할 수 있다. 이들 데이터 레코드는 cust _id에 대한 공통적인 값(즉, 조인 키)을 통해 연계된다. 프로파일링 모듈은 또한 제1 세트 내의 제1 데이터 레코드가 데이터 필드의 공통적인 값을 통해 제2 세트 내의 제2 데이터 레코드에 관련된다는 것을 인지할 수 있다. 예컨대, 고객 트랜잭션 레코드의 세트(300)에서의 데이터 레코드는 데이터 필드 cust _id를 통해 데모그래픽 레코드의 세트(350)에서의 데이터 레코드에 연계될 수 있다(즉, 특정한 고객을 위한 트랜잭션 레코드가 그 고객을 위한 데모그래픽 레코드에 연계될 수 있다). 프로파일링 모듈은 예컨대 데이터 레코드를 연계하려고 하는 데이터 필드의 사용자 지정에 의해서와 같이 사용자 입력에 의해 가이드될 수 있다. 프로파일링 모듈은 또한 데이터 레코드의 세트(들)에 연관된 관련 데이터베이스의 스키마(schema)의 분석을 통해 조인 키 또는 다른 관계를 식별하도록 가이드될 수 있다. 몇몇 예에서, 프로파일링 모듈(126)은 데이터 레코드들 간의 관계를 결정하고, 그 관계를 사용자에게 제공하며, 사용자는 그 관계에 대한 정보를 사용하여 서브세팅 모듈(120)에 대한 서브세팅 규칙을 특정할 수 있다.
프로파일에서의 데이터 레코드들 간의 이러한 관계의 지시에 기초하여, 서브세팅 모듈(120)은 조인 키를 서브세팅 규칙의 일부분으로서 특정할 수 있다. 이러한 서브세팅 규칙 하에서, 서브세트에 대해 하나의 데이터 레코드가 선택되면, 조인 키를 통해 그 데이터 레코드에 관련된 다른 데이터 레코드 또한 서브세트를 위해 선택된다(예컨대, 소정의 cust _id를 갖는 하나의 데이터 레코드가 서브세트를 위해 선택되면, 동일한 cust _id를 갖는 다른 데이터 레코드 또한 선택된다).
의사필드 (Pseudofield) : 몇몇 예에서, 프로파일링 모듈(126)은 관련된 데이터 레코드에서의 하나 이상의 데이터 필드에 대한 값의 조작에 의해 결정된 값을 갖는 새로운 의사필드를 생성하고, 의사필드를 타겟 데이터 필드로서 식별한다. 의사필드에 대한 값은 조인 키를 통해 관련되는 데이터 레코드에서의 하나 이상의 데이터 필드에 대한 값들의 조합이어도 된다. 예컨대, 의사필드에 대한 값은 제2 데이터 필드의 공통적인 값을 통해 관련되는 데이터 레코드에 대한 제1 데이터 필드에 대한 모든 값의, 예컨대 합계, 카운트 또는 기타 누적치 등의 누적치와 같은 누적된 값이어도 된다. 의사필드에 대한 값은 또한 누적된 값의 분류이어도 된다. 예컨대, 소정의 고객에 대한 총 트랜잭션 양에 좌우되는 행동을 수행하는 어플리케이션에서의 로직을 어드레스하기 위해, 고객 트랜잭션 레코드의 세트(300)에서 의사필드 total_amt(306)가 생성된다. 소정의 cust _id 값을 갖는 데이터 레코드에 대한 의사필드 total_amt에 대한 값은 그 cust _id 값을 갖는 모든 데이터 레코드에 대한 txn _amt 필드에 대한 값을 합산함으로써 그리고 합계를 3개의 빈(높음, 중간 또는 낮음) 중의 하나로 분류함으로써 결정된다. 그리고나서, 의사필드가 서브세팅 모듈에 의해 타겟 데이터 필드로서 식별될 수 있다.
도 4를 참조하면, 일례의 프로세스에서, 복수의 데이터 레코드가 액세스된다(400). 각각의 데이터 레코드는 복수의 데이터 필드를 갖는다. 복수의 데이터 레코드의 적어도 몇몇에 대한 데이터 필드의 하나 이상에 대한 값이 분석된다(402). 분석에 기초하여 복수의 데이터 레코드의 프로파일이 생성된다(404). 복수의 데이터 레코드의 프로파일은 데이터 레코드의 세트에서의 데이터를 특징짓는 기술하는 정보를 포함한다. 프로파일에 기초하여 적어도 하나의 서브세팅 규칙이 포뮬레이트된다(406). 서브세팅 규칙은 복수의 데이터 레코드로부터의 데이터 레코드의 서브세트가 선택되게 하는 규칙의 스페시피케이션이다. 적어도 하나의 서브세팅 규칙에 기초하여 데이터 레코드의 서브세트가 선택된다(408). 예컨대, 데이터 레코드의 서브세트는 타겟 데이터 필드의 값에 기초하여 및/또는 데이터 필드의 값을 통해 관련되는 데이터 레코드들 간의 관계에 기초하여 선택될 수 있다.
도 5를 참조하면, 또 다른 예의 프로세스에서, 복수의 데이터 레코드가 액세스된다(500). 각각의 데이터 레코드는 복수의 데이터 필드를 갖는다. 복수의 데이터 레코드로부터 데이터 레코드의 제1 서브세트가 선택된다(502). 데이터 레코드의 제1 서브세트는 피시험 어플리케이션과 같은 데이터 처리 어플리케이션에 제공된다(504). 어플리케이션은 다양한 규칙을 구현한다. 데이터 처리 어플리케이션에서의 규칙은 하나 이상의 변수의 값에 실행이 좌우되는(예컨대, 하나 이상의 변수의 값에 의해 실행이 트리거되는) 어플리케이션의 실행 가능 부분이다. 규칙 중의 하나 이상이 데이터 처리 어플리케이션에 의해 실행된 횟수를 지시하는 리포트가 수신된다(506). 리포트에 기초하여, 복수의 데이터 레코드로부터 데이터 레코드의 제2 서브세트가 선택된다(508). 데이터 레코드의 제2 서브세트는 데이터 처리 어플리케이션에 제공된다(510). 예컨대, 제2 서브세트는 이전에 실행되지 않은 규칙이 실행될 수 있도록 또는 어떠한 규칙이 실행될 수 있도록 선택된다.
몇몇 예에서, 프로파일링 모듈(126)에 의해 시행된 프로파일링 분석에 기초하여 새로운 데이터 레코드가 생성될 수 있다. 예컨대, 프로파일링 분석은 데이터 레코드 내의 및 데이터 레코드들 간의 데이터 필드들 간의 관계와 데이터 레코드의 기존의 세트에서의 데이터 필드에 대한 가능한 값의 범위를 알게 해 준다. 데이터 필드 중의 적어도 몇몇이 기존의 데이터 레코드에 대한 정보로부터 계산되거나 결정된 값으로 팝퓰레이트되는 새로운 데이터 레코드가 구성된다. 예컨대 income>$10,000,000를 요구하는 논리 규칙 또는 요구된 값의 전부가 데이터 레코드의 세트에서 표현되지 않은 복수의 데이터 필드의 특정한 값들의 복잡한 조합을 요구하는 논리 규칙과 같은 어플리케이션에서의 특정한 논리 규칙을 실행되게 할 소스 데이터 세트에서의 데이터 레코드가 없는 때에는, 시험 데이터 생성이 사용될 수 있다. 시험 데이터 생성은 또한 원래 데이터 세트의 프로파일에 부합하는 프로파일을 갖는 새로운 데이터 세트를 생성하기 위해서도 사용될 수 있다. 예컨대, 새로운 데이터 세트는 원래 데이터 레코드의 프라이버시(privacy)를 지키기 위해 원래 데이터 세트의 데이터를 랜덤화함으로써 생성될 수 있다.
몇몇 예에서, 전술한 접근법은 UNIX 운영 체제와 같은 적절한 운영 체제의 제어 하에서 하나 이상의 범용 컴퓨터 상에 호스팅될 수 있는 실행 환경에서 구현된다. 예컨대, 실행 환경은 근거리에 위치하거나(예컨대, SMP 컴퓨터와 같은 멀티프로세서 시스템), 또는 근거리에 분포되거나(예컨대, 클러스터 또는 MPP로서 결합된 복수 프로세서), 또는 원격으로 분포되거나(예컨대, 근거리 통신망(LAN) 및/또는 광역 통신망(WAN)을 통해 결합된 복수 프로세서), 또는 이들의 조합으로 이루어지는 복수의 중앙 처리 장치(CPU)를 사용하는 컴퓨터 시스템의 구성을 포함하는 복수-노드 병렬 컴퓨팅 환경을 포함할 수 있다.
몇몇 경우에, 전술한 접근법은 어플리케이션을 정점(vertex)들 간의 직접 링크(작업 요소의 흐름을 표현하는)에 의해 연결된 정점(콤포넌트 또는 데이터세트를 표현하는)을 포함하는 데이터 흐름 그래프로서 개발하기 위한 시스템에 의해 구현된다. 예컨대, 이러한 환경은 "Managing Parameters for Graph-Based Applications"를 발명의 명칭으로 하는 미국 특허 공개 번호 2007/0011668에 더욱 상세하게 설명되어 있으며, 이 공개 특허는 원용에 의해 본 명세서에 통합된다. 이러한 그래프-기반 컴퓨테이션을 실행하기 위한 시스템은 "EXECUTING COMPUTATIONS EXPRESSED AS GRAPHS"를 발명의 명칭으로 하는 미국 특허 제5,566,072호에 설명되어 있으며, 이 특허 또한 원용에 의해 본 명세서에 통합된다. 이 시스템에 따라 이루어진 데이터흐름 그래프는 프로세스들 간에 정보를 이동시키고 프로세스를 위한 실행 순서를 정하기 위해 정보를 그래프 콤포넌트에 의해 표현된 개별 프로세스들 내로 넣고 꺼내기 위한 방법을 제공한다. 이 시스템은 인터프로세스 통신 방법(예컨대, TCP/IP 또는 UNIX 도메인 소켓을 사용하거나 또는 프로세스들 간에 데이터를 주고받기 위해 공유 메모리를 사용할 수 있는 그래프의 링크에 따른 통신 경로)을 선택하는 알고리즘을 포함한다.
전술한 접근법은 컴퓨터 상의 실행을 위한 소프트웨어를 사용하여 구현될 수 있다. 예컨대, 소프트웨어는 하나 이상의 프로세서, 하나 이상의 데이터 저장 시스템(휘발성 및 비휘발성 메모리 및/또는 저장 요소를 포함한), 하나 이상의 입력 디바이스 또는 포트, 및 하나 이상의 출력 디바이스 또는 포트를 각각 포함하는 하나 이상의 프로그래밍된 또는 프로그래머블 컴퓨터 시스템(분산, 클라이언트/서버, 또는 그리드와 같은 다양한 아키텍처로 될 수도 있는) 상에서 실행되는 하나 이상의 컴퓨터 프로그램에서의 프로시저를 형성한다. 소프트웨어는 예컨대 데이터흐름 그래프의 설계 및 구성에 관련된 기타 서비스를 제공하는 대형 프로그램의 하나 이상의 모듈을 형성할 수 있다. 그래프의 노드 및 요소는 컴퓨터 판독 가능 매체에 저장된 데이터 구조 또는 데이터 레포지터리(data repository)에 저장된 데이터 모델을 따르는 다른 조직화된 데이터로서 구현될 수 있다.
소프트웨어는 범용 또는 특별 용도의 프로그래머블 컴퓨터에 의해 판독 가능한 CD-ROM과 같은 저장 매체 상에 제공되거나 또는 네트워크의 통신 매체를 통해 이 소프트웨어가 실행될 컴퓨터의 저장 매체에 전달될(전파 신호로 인코딩될) 수 있다. 기능의 전부가 특별 용도의 컴퓨터 상에서 수행되거나 또는 코프로세서와 같은 특별 용도의 하드웨어를 사용하여 수행될 수 있다. 소프트웨어는 소프트웨어에 의해 특정된 컴퓨테이션의 상이한 부분이 상이한 컴퓨터에 의해 수행되는 분산 방식으로 구현될 수도 있다. 각각의 이러한 컴퓨터 프로그램은 범용 또는 특별 용도의 프로그래머블 컴퓨터에 의해 판독 가능한 저장 매체 또는 장치 상에 저장되거나 다운로드되어, 저장 매체 또는 장치가 본 명세서에 설명된 프로시저를 수행하기 위해 컴퓨터 시스템에 의해 판독되는 때에 컴퓨터를 구성하고 작동하는 것이 바람직하다. 본 발명의 시스템은 또한 컴퓨터 프로그램과 함께 구성된 컴퓨터 판독 가능 저장 매체로서 구현되도록 고려될 수도 있으며, 이와 같이 구성된 저장 매체는 컴퓨터 시스템으로 하여금 본 명세서에 설명된 기능을 수행하기 위해 특정하고 사전에 정해진 방식으로 작동하도록 한다.
본 발명의 다수의 실시예를 설명하였지만, 본 발명의 사상 및 범위에서 벗어나지 않고서도 다양한 수정이 이루어질 수 있다는 것을 이해할 것이다. 예컨대, 전술한 단계들의 몇몇은 순서에 좌우되지 않으며, 그러므로 설명된 것과는 다른 순서로 수행될 수 있다.
전술한 설명은 예시를 목적으로 하는 것이며, 첨부된 청구항들의 범위에 의해 정해지는 본 발명의 범위를 한정하려는 것은 아니라는 것을 이해할 것이다. 예컨대, 전술한 다수의 기능 단계들은 전체적인 프로세싱에 실질적으로 영향을 주지 않고서도 다른 순서로 수행될 수도 있다. 다른 실시예 또한 이하의 청구항들의 범위 내에 있다.

Claims (89)

  1. 데이터 처리 어플리케이션의 시험 도중에 처리 규칙의 실행을 유발하도록 데이터 레코드를 선택하기 위한 컴퓨터 구현 방법으로서,
    데이터 레코드의 제1 세트를 획득하는 단계;
    처리 규칙을 포함하는 데이터 처리 어플리케이션을 이용하여 상기 데이터 레코드의 제1 세트를 처리하는 단계 ― 처리 규칙은 적어도 하나의 입력값에 대해 동작하고 적어도 하나의 출력값을 생성하며, 상기 처리 규칙이 특정한 데이터 레코드의 처리 도중에 상기 데이터 처리 어플리케이션에 의해 실행되는지 여부는 상기 특정 데이터 레코드의 하나 이상의 데이터 필드 각각에 있는 값에 직접적으로 또는 간접적으로 좌우됨 ―;
    상기 처리 규칙이 상기 데이터 레코드의 제1 세트의 처리와 관련하여 실행된 횟수를 나타내는 실행 정보를 수신하는 단계;
    데이터 레코드의 제2 세트를 획득하는 단계;
    상기 제2 세트 내의 각각의 데이터 레코드의 하나 이상의 데이터 필드에 있는 값을 분석하는 단계 ― 분석하는 것은 상기 데이터 레코드의 제2 세트에 대해 하나 이상의 상기 데이터 필드 각각의 프로파일을 생성하는 것을 포함하며, 데이터 필드의 상기 프로파일은 상기 데이터 필드에 있는 값을 특징짓는 것임 ―;
    (i) 생성된 프로파일과 (ii) 상기 처리 규칙이 상기 데이터 레코드의 제1 세트의 처리와 관련하여 실행된 횟수를 나타내는 상기 실행 정보에 기초하여 서브세팅 규칙(subsetting rule)을 획득하는 단계 ― 상기 서브세팅 규칙은 상기 제2 세트 내의 데이터 레코드의 특정한 하나의 데이터 필드를 타겟 데이터 필드로서 식별하는 것을 포함함 ―;
    상기 서브세팅 규칙에 따라 상기 데이터 레코드의 제2 세트로부터 데이터 레코드의 서브세트를 선택하는 단계 ― 상기 데이터 레코드의 서브세트의 선택은 상기 타겟 데이터 필드 내의 값에 기초함 ―; 및
    상기 데이터 처리 어플리케이션을 이용하여 데이터 레코드의 선택된 서브세트를 처리하는 단계를 포함하는, 데이터 레코드를 선택하기 위한 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 서브세팅 규칙을 획득하는 단계는 상기 서브세팅 규칙을 포뮬레이트하는 단계를 포함하되, 상기 데이터 필드 중 하나를 상기 타겟 데이터 필드로서 식별하는 것이 상기 데이터 필드 중 식별된 것의 카디널러티(cardinality)에 기초하여 이루어지는, 데이터 레코드를 선택하기 위한 컴퓨터 구현 방법.
  3. 제2항에 있어서,
    상기 타겟 데이터 필드는 상기 데이터 레코드의 제2 세트 내에서 별개의 값(distinct value)의 세트를 가지며, 상기 데이터 레코드의 서브세트를 선택하는 단계는 상기 타겟 데이터 필드에 대한 별개의 값의 각각을 갖는 선택된 서브세트에 적어도 하나의 데이터 레코드가 존재하도록 데이터 레코드를 선택하는 단계를 포함하는, 데이터 레코드를 선택하기 위한 컴퓨터 구현 방법.
  4. 제1항에 있어서,
    상기 프로파일을 생성하는 단계는, 상기 데이터 레코드의 제2 세트 내의 데이터 레코드의 제1 데이터 필드에 대한 값을 분류하는 단계를 포함하며,
    상기 서브세팅 규칙을 획득하는 단계는 상기 서브세팅 규칙을 포뮬레이트하는 단계를 포함하되, 상기 분류에 기초하여 상기 제1 데이터 필드를 상기 타겟 데이터 필드로서 식별하는 것을 포함하는, 데이터 레코드를 선택하기 위한 컴퓨터 구현 방법.
  5. 제4항에 있어서,
    상기 타겟 데이터 필드는 상기 데이터 레코드의 제2 세트 내의 데이터 레코드의 별개의 값의 세트를 가지며, 상기 데이터 레코드의 서브세트를 선택하는 단계는 상기 타겟 데이터 필드에 대한 별개의 값의 각각을 갖는 선택된 서브세트에 적어도 하나의 데이터 레코드가 존재하도록 데이터 레코드를 선택하는 단계를 포함하는, 데이터 레코드를 선택하기 위한 컴퓨터 구현 방법.
  6. 제1항에 있어서,
    상기 서브세팅 규칙은, 제1 타겟 데이터 필드로서의 제1 데이터 필드 및 제2 타겟 데이터 필드로서의 제2 데이터 필드를 식별하는, 데이터 레코드를 선택하기 위한 컴퓨터 구현 방법.
  7. 제6항에 있어서,
    상기 데이터 레코드의 서브세트를 선택하는 단계는, 상기 제1 타겟 데이터 필드를 위한 별개의 값의 제1 세트와 상기 제2 타겟 데이터 필드를 위한 별개의 값의 제2 세트의 조합에 기초하여 데이터 레코드의 서브세트를 선택하는 단계를 포함하는, 데이터 레코드를 선택하기 위한 컴퓨터 구현 방법.
  8. 제1항에 있어서,
    상기 프로파일을 생성하는 단계는, 제1 데이터 필드의 값을 통해 관련된 상기 데이터 레코드의 제2 세트의 데이터 레코드들 간의 관계를 식별하는 단계를 포함하며,
    적어도 하나의 상기 서브세팅 규칙은 상기 관계의 식별(identification)을 포함하는, 데이터 레코드를 선택하기 위한 컴퓨터 구현 방법.
  9. 제8항에 있어서,
    상기 데이터 레코드의 서브세트를 선택하는 단계는,
    제1 데이터 레코드를 선택하는 단계; 및
    상기 서브세팅 규칙에서 식별된 관계를 통해 상기 제1 데이터 레코드에 관련된 하나 이상의 제2 데이터 레코드를 선택하는 단계
    를 포함하는, 데이터 레코드를 선택하기 위한 컴퓨터 구현 방법.
  10. 제8항에 있어서,
    상기 데이터 레코드들 간의 관계는 상기 데이터 레코드의 제2 세트에서의 데이터 레코드와 데이터 레코드의 제3 세트에서의 데이터 레코드 간의 관계를 포함하는, 데이터 레코드를 선택하기 위한 컴퓨터 구현 방법.
  11. 제1항에 있어서,
    상기 프로파일을 생성하는 단계는,
    상기 데이터 레코드의 제2 세트 내의 데이터 레코드의 적어도 몇몇에 대한 의사필드(pseudofield)를 생성하는 단계; 및
    누적된 값(accumulated value)으로 각각의 대응하는 데이터 레코드에 대한 의사필드를 팝퓰레이트하는 단계로서, 제1 데이터 레코드에 대한 상기 누적된 값은 상기 제1 데이터 레코드 및 상기 제1 데이터 레코드에 관련된 적어도 하나의 다른 데이터 레코드에 기초하여 결정되는, 팝퓰레이트하는 단계를 포함하며,
    상기 제1 데이터 레코드 및 상기 적어도 하나의 다른 데이터 레코드는 제1 데이터 필드의 값을 통해 관련되는,
    데이터 레코드를 선택하기 위한 컴퓨터 구현 방법.
  12. 제11항에 있어서,
    상기 누적된 값을, 상기 제1 데이터 레코드의 제2 데이터 필드를 위한 값과 각각의 다른 관련 데이터 레코드에 대한 제2 데이터 필드를 위한 값의 합계에 기초하여 결정하는 단계를 더 포함하는, 데이터 레코드를 선택하기 위한 컴퓨터 구현 방법.
  13. 제1항에 있어서,
    서브세팅 규칙을 획득하는 단계는 서브세팅 규칙을 수신하는 단계를 포함하는, 데이터 레코드를 선택하기 위한 컴퓨터 구현 방법.
  14. 제1항에 있어서,
    상기 데이터 레코드의 선택된 서브세트를 데이터 처리 어플리케이션에 제공하는 단계를 더 포함하는, 데이터 레코드를 선택하기 위한 컴퓨터 구현 방법.
  15. 제1항에 있어서,
    상기 데이터 처리 어플리케이션에 의한 데이터 레코드의 선택된 서브세트의 처리의 결과에 기초하여 제2 서브세팅 규칙을 포뮬레이트하는 단계; 및
    상기 제2 서브세팅 규칙에 기초하여 데이터 레코드의 제2 서브세트를 선택하는 단계
    를 포함하는, 데이터 레코드를 선택하기 위한 컴퓨터 구현 방법.
  16. 명령을 저장한 비일시적 컴퓨터 판독가능 매체로서, 상기 명령은 컴퓨팅 시스템으로 하여금 데이터 처리 어플리케이션의 시험 도중에 처리 규칙의 실행을 유발하도록 데이터 레코드를 선택하게 하고, 상기 명령은 상기 컴퓨팅 시스템으로 하여금:
    데이터 레코드의 제1 세트를 획득하고;
    처리 규칙을 포함하는 데이터 처리 어플리케이션을 이용하여 상기 데이터 레코드의 제1 세트를 처리하며 ― 처리 규칙은 적어도 하나의 입력값에 대해 동작하고 적어도 하나의 출력값을 생성하며, 상기 처리 규칙이 특정한 데이터 레코드의 처리 도중에 상기 데이터 처리 어플리케이션에 의해 실행되는지 여부는 상기 특정 데이터 레코드의 하나 이상의 데이터 필드 각각에 있는 값에 직접적으로 또는 간접적으로 좌우됨 ―;
    상기 처리 규칙이 상기 데이터 레코드의 제1 세트의 처리와 관련하여 실행된 횟수를 나타내는 실행 정보를 수신하고;
    데이터 레코드의 제2 세트를 획득하며;
    상기 제2 세트 내의 각각의 데이터 레코드의 하나 이상의 데이터 필드에 있는 값을 분석하고 ― 분석하는 것은 상기 데이터 레코드의 제2 세트에 대해 하나 이상의 상기 데이터 필드 각각의 프로파일을 생성하는 것을 포함하며, 데이터 필드의 상기 프로파일은 상기 데이터 필드에 있는 값을 특징짓는 것임 ―;
    (i) 생성된 프로파일과 (ii) 상기 처리 규칙이 상기 데이터 레코드의 제1 세트의 처리와 관련하여 실행된 횟수를 나타내는 상기 실행 정보에 기초하여 서브세팅 규칙을 획득하고 ― 상기 서브세팅 규칙은 상기 제2 세트 내의 데이터 레코드의 특정한 하나의 데이터 필드를 타겟 데이터 필드로서 식별하는 것을 포함함 ―;
    상기 서브세팅 규칙에 따라 상기 데이터 레코드의 제2 세트로부터 데이터 레코드의 서브세트를 선택하고 ― 상기 데이터 레코드의 서브세트의 선택은 상기 타겟 데이터 필드 내의 값에 기초함 ―;
    상기 데이터 처리 어플리케이션을 이용하여 데이터 레코드의 선택된 서브세트를 처리하도록 하는, 명령을 저장한 비일시적 컴퓨터 판독가능 매체.
  17. 데이터 처리 어플리케이션의 시험 도중에 처리 규칙의 실행을 유발하도록 데이터 레코드를 선택하기 위한 컴퓨팅 시스템으로서, 상기 컴퓨팅 시스템은 하나 이상의 프로세서를 포함하며, 상기 프로세서는:
    데이터 레코드의 제1 세트를 획득하고;
    처리 규칙을 포함하는 데이터 처리 어플리케이션을 이용하여 상기 데이터 레코드의 제1 세트를 처리하며 ― 처리 규칙은 적어도 하나의 입력값에 대해 동작하고 적어도 하나의 출력값을 생성하며, 상기 처리 규칙이 특정한 데이터 레코드의 처리 도중에 상기 데이터 처리 어플리케이션에 의해 실행되는지 여부는 상기 특정 데이터 레코드의 하나 이상의 데이터 필드 각각에 있는 값에 직접적으로 또는 간접적으로 좌우됨 ―;
    상기 처리 규칙이 상기 데이터 레코드의 제1 세트의 처리와 관련하여 실행된 횟수를 나타내는 실행 정보를 수신하고;
    데이터 레코드의 제2 세트를 획득하며;
    상기 제2 세트 내의 각각의 데이터 레코드의 하나 이상의 데이터 필드에 있는 값을 분석하고 ― 분석하는 것은 상기 데이터 레코드의 제2 세트에 대해 하나 이상의 상기 데이터 필드 각각의 프로파일을 생성하는 것을 포함하며, 데이터 필드의 상기 프로파일은 상기 데이터 필드에 있는 값을 특징짓는 것임 ―;
    (i) 생성된 프로파일과 (ii) 상기 처리 규칙이 상기 데이터 레코드의 제1 세트의 처리와 관련하여 실행된 횟수를 나타내는 상기 실행 정보에 기초하여 서브세팅 규칙을 획득하고 ― 상기 서브세팅 규칙은 상기 제2 세트 내의 데이터 레코드의 특정한 하나의 데이터 필드를 타겟 데이터 필드로서 식별하는 것을 포함함 ―;
    상기 서브세팅 규칙에 따라 상기 데이터 레코드의 제2 세트로부터 데이터 레코드의 세브세트를 선택하고 ― 상기 데이터 레코드의 서브세트의 선택은 상기 타겟 데이터 필드 내의 값에 기초함 ―;
    상기 데이터 처리 어플리케이션을 이용하여 데이터 레코드의 선택된 서브세트를 처리하도록 구성되는,
    데이터 레코드를 선택하기 위한 컴퓨팅 시스템.
  18. 데이터 처리 어플리케이션의 시험 도중에 처리 규칙의 실행을 유발하도록 데이터 레코드를 선택하기 위한 컴퓨팅 시스템으로서,
    데이터 레코드의 제1 세트를 획득하기 위한 수단;
    처리 규칙을 포함하는 데이터 처리 어플리케이션을 이용하여 상기 데이터 레코드의 제1 세트를 처리하기 위한 수단 ― 처리 규칙은 적어도 하나의 입력값에 대해 동작하고 적어도 하나의 출력값을 생성하며, 상기 처리 규칙이 특정한 데이터 레코드의 처리 도중에 상기 데이터 처리 어플리케이션에 의해 실행되는지 여부는 상기 특정 데이터 레코드의 하나 이상의 데이터 필드 각각에 있는 값에 직접적으로 또는 간접적으로 좌우됨 ―;
    상기 처리 규칙이 상기 데이터 레코드의 제1 세트의 처리와 관련하여 실행된 횟수를 나타내는 실행 정보를 수신하기 위한 수단;
    데이터 레코드의 제2 세트를 획득하기 위한 수단;
    상기 제2 세트 내의 각각의 데이터 레코드의 하나 이상의 데이터 필드에 있는 값을 분석하기 위한 수단 ― 분석하는 것은 상기 데이터 레코드의 제2 세트에 대해 하나 이상의 상기 데이터 필드 각각의 프로파일을 생성하는 것을 포함하며, 데이터 필드의 상기 프로파일은 상기 데이터 필드에 있는 값을 특징짓는 것임 ―;
    (i) 생성된 프로파일과 (ii) 상기 처리 규칙이 상기 데이터 레코드의 제1 세트의 처리와 관련하여 실행된 횟수를 나타내는 상기 실행 정보에 기초하여 서브세팅 규칙을 획득하기 위한 수단 ― 상기 서브세팅 규칙은 상기 제2 세트 내의 데이터 레코드의 특정한 하나의 데이터 필드를 타겟 데이터 필드로서 식별하는 것을 포함함 ―;
    상기 서브세팅 규칙에 따라 상기 데이터 레코드의 제2 세트로부터 데이터 레코드의 세브세트를 선택하기 위한 수단 ― 상기 데이터 레코드의 서브세트의 선택은 상기 타겟 데이터 필드 내의 값에 기초함 ―; 및
    상기 데이터 처리 어플리케이션을 이용하여 데이터 레코드의 선택된 서브세트를 처리하기 위한 수단을 포함하는, 데이터 레코드를 선택하기 위한 컴퓨팅 시스템.
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 제16항에 있어서,
    상기 서브세팅 규칙을 획득하는 것은 상기 서브세팅 규칙을 포뮬레이트하는 것을 포함하되, 상기 데이터 필드 중 하나를 상기 타겟 데이터 필드로서 식별하는 것이 상기 데이터 필드 중 식별된 것의 카디널러티에 기초하여 이루어지는, 명령을 저장한 비일시적 컴퓨터 판독가능 매체.
  35. 제34항에 있어서,
    상기 타겟 데이터 필드는 상기 데이터 레코드의 제2 세트 내에서 별개의 값의 세트를 가지며, 상기 데이터 레코드의 서브세트를 선택하는 것은 상기 타겟 데이터 필드에 대한 별개의 값의 각각을 갖는 선택된 서브세트에 적어도 하나의 데이터 레코드가 존재하도록 데이터 레코드를 선택하는 것을 포함하는, 명령을 저장한 비일시적 컴퓨터 판독가능 매체.
  36. 제16항에 있어서,
    상기 프로파일을 생성하는 것은, 상기 데이터 레코드의 제2 세트 내의 데이터 레코드의 제1 데이터 필드에 대한 값을 분류하는 것을 포함하며,
    상기 서브세팅 규칙을 획득하는 것은 상기 서브세팅 규칙을 포뮬레이트하는 것을 포함하되, 상기 분류에 기초하여 상기 제1 데이터 필드를 상기 타겟 데이터 필드로서 식별하는 것을 포함하는, 명령을 저장한 비일시적 컴퓨터 판독가능 매체.
  37. 제36항에 있어서,
    상기 타겟 데이터 필드는 상기 데이터 레코드의 제2 세트 내의 데이터 레코드의 별개의 값의 세트를 가지며, 상기 데이터 레코드의 서브세트를 선택하는 것은 상기 타겟 데이터 필드에 대한 별개의 값의 각각을 갖는 선택된 서브세트에 적어도 하나의 데이터 레코드가 존재하도록 데이터 레코드를 선택하는 것을 포함하는, 명령을 저장한 비일시적 컴퓨터 판독가능 매체.
  38. 제16항에 있어서,
    상기 서브세팅 규칙은, 제1 타겟 데이터 필드로서의 제1 데이터 필드 및 제2 타겟 데이터 필드로서의 제2 데이터 필드를 식별하는, 명령을 저장한 비일시적 컴퓨터 판독가능 매체.
  39. 제38항에 있어서,
    상기 데이터 레코드의 서브세트를 선택하는 것은, 상기 제1 타겟 데이터 필드를 위한 별개의 값의 제1 세트와 상기 제2 타겟 데이터 필드를 위한 별개의 값의 제2 세트의 조합에 기초하여 데이터 레코드의 서브세트를 선택하는 것을 포함하는, 명령을 저장한 비일시적 컴퓨터 판독가능 매체.
  40. 제16항에 있어서,
    상기 프로파일을 생성하는 것은, 제1 데이터 필드의 값을 통해 관련된 상기 데이터 레코드의 제2 세트의 데이터 레코드들 간의 관계를 식별하는 것을 포함하며,
    적어도 하나의 상기 서브세팅 규칙은 상기 관계의 식별을 포함하는, 명령을 저장한 비일시적 컴퓨터 판독가능 매체.
  41. 제40항에 있어서,
    상기 데이터 레코드의 서브세트를 선택하는 것은,
    제1 데이터 레코드를 선택하는 것; 및
    상기 서브세팅 규칙에서 식별된 관계를 통해 상기 제1 데이터 레코드에 관련된 하나 이상의 제2 데이터 레코드를 선택하는 것을 포함하는, 명령을 저장한 비일시적 컴퓨터 판독가능 매체.
  42. 제16항에 있어서,
    상기 프로파일을 생성하는 것은,
    상기 데이터 레코드의 제2 세트 내의 데이터 레코드의 적어도 몇몇에 대한 의사필드를 생성하는 것; 및
    누적된 값으로 각각의 대응하는 데이터 레코드에 대한 의사필드를 팝퓰레이트하는 것으로서, 제1 데이터 레코드에 대한 상기 누적된 값은 상기 제1 데이터 레코드 및 상기 제1 데이터 레코드에 관련된 적어도 하나의 다른 데이터 레코드에 기초하여 결정되는, 팝퓰레이트하는 것을 포함하며,
    상기 제1 데이터 레코드 및 상기 적어도 하나의 다른 데이터 레코드는 제1 데이터 필드의 값을 통해 관련되는, 명령을 저장한 비일시적 컴퓨터 판독가능 매체.
  43. 제42항에 있어서,
    컴퓨팅 시스템으로 하여금, 상기 누적된 값을, 상기 제1 데이터 레코드의 제2 데이터 필드를 위한 값과 각각의 다른 관련 데이터 레코드에 대한 제2 데이터 필드를 위한 값의 합계에 기초하여 결정하도록 하는 명령을 더 포함하는, 명령을 저장한 비일시적 컴퓨터 판독가능 매체.
  44. 제16항에 있어서,
    컴퓨팅 시스템으로 하여금, 상기 데이터 레코드의 선택된 서브세트를 데이터 처리 어플리케이션에 제공하도록 하는 명령을 더 포함하는, 명령을 저장한 비일시적 컴퓨터 판독가능 매체.
  45. 제16항에 있어서,
    컴퓨팅 시스템으로 하여금:
    상기 데이터 처리 어플리케이션에 의한 데이터 레코드의 선택된 서브세트의 처리의 결과에 기초하여 제2 서브세팅 규칙을 포뮬레이트하고;
    상기 제2 서브세팅 규칙에 기초하여 데이터 레코드의 제2 서브세트를 선택하도록 하는 명령을 더 포함하는, 명령을 저장한 비일시적 컴퓨터 판독가능 매체.
  46. 제17항에 있어서,
    상기 서브세팅 규칙을 획득하는 것은 상기 서브세팅 규칙을 포뮬레이트하는 것을 포함하되, 상기 데이터 필드 중 하나를 상기 타겟 데이터 필드로서 식별하는 것이 상기 데이터 필드 중 식별된 것의 카디널러티에 기초하여 이루어지는, 데이터 레코드를 선택하기 위한 컴퓨팅 시스템.
  47. 제46항에 있어서,
    상기 타겟 데이터 필드는 상기 데이터 레코드의 제2 세트 내에서 별개의 값의 세트를 가지며, 상기 데이터 레코드의 서브세트를 선택하는 것은 상기 타겟 데이터 필드에 대한 별개의 값의 각각을 갖는 선택된 서브세트에 적어도 하나의 데이터 레코드가 존재하도록 데이터 레코드를 선택하는 것을 포함하는, 데이터 레코드를 선택하기 위한 컴퓨팅 시스템.
  48. 제17항에 있어서,
    상기 프로파일을 생성하는 것은, 상기 데이터 레코드의 제2 세트 내의 데이터 레코드의 제1 데이터 필드에 대한 값을 분류하는 것을 포함하며,
    상기 서브세팅 규칙을 획득하는 것은 상기 서브세팅 규칙을 포뮬레이트하는 것을 포함하되, 상기 분류에 기초하여 상기 제1 데이터 필드를 상기 타겟 데이터 필드로서 식별하는 것을 포함하는, 데이터 레코드를 선택하기 위한 컴퓨팅 시스템.
  49. 제48항에 있어서,
    상기 타겟 데이터 필드는 상기 데이터 레코드의 제2 세트 내의 데이터 레코드의 별개의 값의 세트를 가지며, 상기 데이터 레코드의 서브세트를 선택하는 것은 상기 타겟 데이터 필드에 대한 별개의 값의 각각을 갖는 선택된 서브세트에 적어도 하나의 데이터 레코드가 존재하도록 데이터 레코드를 선택하는 것을 포함하는, 데이터 레코드를 선택하기 위한 컴퓨팅 시스템.
  50. 제17항에 있어서,
    상기 서브세팅 규칙은, 제1 타겟 데이터 필드로서의 제1 데이터 필드 및 제2 타겟 데이터 필드로서의 제2 데이터 필드를 식별하는, 데이터 레코드를 선택하기 위한 컴퓨팅 시스템.
  51. 제50항에 있어서,
    상기 데이터 레코드의 서브세트를 선택하는 것은, 상기 제1 타겟 데이터 필드를 위한 별개의 값의 제1 세트와 상기 제2 타겟 데이터 필드를 위한 별개의 값의 제2 세트의 조합에 기초하여 데이터 레코드의 서브세트를 선택하는 것을 포함하는, 데이터 레코드를 선택하기 위한 컴퓨팅 시스템.
  52. 제17항에 있어서,
    상기 프로파일을 생성하는 것은, 제1 데이터 필드의 값을 통해 관련된 상기 데이터 레코드의 제2 세트의 데이터 레코드들 간의 관계를 식별하는 것을 포함하며,
    적어도 하나의 상기 서브세팅 규칙은 상기 관계의 식별을 포함하는, 데이터 레코드를 선택하기 위한 컴퓨팅 시스템.
  53. 제52항에 있어서,
    상기 데이터 레코드의 서브세트를 선택하는 것은,
    제1 데이터 레코드를 선택하는 것; 및
    상기 서브세팅 규칙에서 식별된 관계를 통해 상기 제1 데이터 레코드에 관련된 하나 이상의 제2 데이터 레코드를 선택하는 것을 포함하는, 데이터 레코드를 선택하기 위한 컴퓨팅 시스템.
  54. 제17항에 있어서,
    상기 프로파일을 생성하는 것은,
    상기 데이터 레코드의 제2 세트 내의 데이터 레코드의 적어도 몇몇에 대한 의사필드를 생성하는 것; 및
    누적된 값으로 각각의 대응하는 데이터 레코드에 대한 의사필드를 팝퓰레이트하는 것으로서, 제1 데이터 레코드에 대한 상기 누적된 값은 상기 제1 데이터 레코드 및 상기 제1 데이터 레코드에 관련된 적어도 하나의 다른 데이터 레코드에 기초하여 결정되는, 팝퓰레이트하는 것을 포함하며,
    상기 제1 데이터 레코드 및 상기 적어도 하나의 다른 데이터 레코드는 제1 데이터 필드의 값을 통해 관련되는, 데이터 레코드를 선택하기 위한 컴퓨팅 시스템.
  55. 제54항에 있어서,
    상기 프로세서는, 상기 누적된 값을, 상기 제1 데이터 레코드의 제2 데이터 필드를 위한 값과 각각의 다른 관련 데이터 레코드에 대한 제2 데이터 필드를 위한 값의 합계에 기초하여 결정하도록 더 구성되는, 데이터 레코드를 선택하기 위한 컴퓨팅 시스템.
  56. 제17항에 있어서,
    상기 프로세서는, 상기 데이터 레코드의 선택된 서브세트를 데이터 처리 어플리케이션에 제공하도록 더 구성되는, 데이터 레코드를 선택하기 위한 컴퓨팅 시스템.
  57. 제17항에 있어서,
    상기 프로세서는:
    상기 데이터 처리 어플리케이션에 의한 데이터 레코드의 선택된 서브세트의 처리의 결과에 기초하여 제2 서브세팅 규칙을 포뮬레이트하고;
    상기 제2 서브세팅 규칙에 기초하여 데이터 레코드의 제2 서브세트를 선택하도록 더 구성되는, 데이터 레코드를 선택하기 위한 컴퓨팅 시스템.
  58. 데이터 처리 어플리케이션의 시험 도중에 처리 규칙의 실행을 유발하도록 데이터 레코드를 선택하기 위한 컴퓨터 구현 방법으로서,
    데이터 레코드의 제1 세트를 획득하는 단계;
    적어도 하나의 입력값에 대해 동작하고 적어도 하나의 출력값을 생성하는 처리 규칙을 포함하는 데이터 처리 어플리케이션을 이용하여 상기 데이터 레코드의 제1 세트를 데이터 처리 시스템 내에서 처리하는 단계 ― 상기 처리 규칙이 특정한 데이터 레코드의 처리 도중에 상기 데이터 처리 어플리케이션에 의해 실행되는지 여부는 상기 특정 데이터 레코드의 하나 이상의 데이터 필드 각각에 있는 값에 직접적으로 또는 간접적으로 좌우됨 ―;
    상기 처리 규칙이 상기 데이터 레코드의 제1 세트의 처리와 관련하여 실행된 횟수를 나타내는 실행 정보를 수신하는 단계;
    데이터 레코드의 제2 세트를 획득하는 단계;
    상기 제2 세트 내의 각각의 데이터 레코드의 하나 이상의 데이터 필드에 있는 값을 특징짓는 단계;
    상기 제2 세트 내의 데이터 레코드의 특정한 하나의 데이터 필드를 타겟 데이터 필드로서 식별하는 식별 기준을 결정하는 단계 ― 식별 기준은 (i) 상기 제2 세트 내의 각각의 데이터 레코드의 하나 이상의 데이터 필드에 있는 값을 특징짓는 것과 (ii) 상기 처리 규칙이 상기 데이터 레코드의 제1 세트의 처리와 관련하여 실행된 횟수를 나타내는 상기 실행 정보에 기초하는 것임 ―;
    상기 식별 기준을 적용하여, 상기 타겟 데이터 필드에 있는 값에 기초해 상기 데이터 레코드의 제2 세트로부터 하나 이상의 데이터 레코드를 선택하는 단계; 및
    상기 데이터 처리 어플리케이션을 이용하여, 선택된 하나 이상의 데이터 레코드를 처리하는 단계를 포함하는, 데이터 레코드를 선택하기 위한 컴퓨터 구현 방법.
  59. 제58항에 있어서,
    상기 제2 세트 내의 데이터 레코드의 하나 이상의 데이터 필드 각각의 카디널러티에 기초하여 상기 제2 세트 내의 데이터 레코드의 특정한 하나의 데이터 필드를 타겟 데이터 필드로서 식별하는 것을 포함하는, 데이터 레코드를 선택하기 위한 컴퓨터 구현 방법.
  60. 제59항에 있어서,
    상기 제2 세트 내의 데이터 레코드에 걸쳐 상기 타겟 데이터 필드에 다수의 별개의 값이 존재하며, 상기 데이터 레코드의 제2 세트로부터 하나 이상의 데이터 레코드를 선택하는 것은 상기 타겟 데이터 필드에서 각각의 상기 별개의 값을 갖는 적어도 하나의 데이터 레코드를 선택하는 것을 포함하는, 데이터 레코드를 선택하기 위한 컴퓨터 구현 방법.
  61. 제58항에 있어서,
    상기 타겟 데이터 필드는 제1 타겟 데이터 필드이고, 상기 제2 세트 내의 데이터 레코드의 데이터 필드 중 제2의 특정한 데이터 필드를 제2 타겟 데이터 필드로서 식별하는 것을 포함하는, 데이터 레코드를 선택하기 위한 컴퓨터 구현 방법.
  62. 제61항에 있어서,
    상기 데이터 레코드의 제2 세트로부터 하나 이상의 데이터 레코드를 선택하는 것은 상기 제1 타겟 데이터 필드에 있는 값과 상기 제2 타겟 데이터 필드에 있는 값의 조합에 기초하여 데이터 레코드를 선택하는 것을 포함하는, 데이터 레코드를 선택하기 위한 컴퓨터 구현 방법.
  63. 제62항에 있어서,
    상기 제2 세트 내의 데이터 레코드에 걸쳐 상기 제1 타겟 데이터 필드에 다수의 별개의 값이 존재하고 상기 제2 세트 내의 데이터 레코드에 걸쳐 상기 제2 타겟 데이터 필드에 다수의 별개의 값이 존재하며, 상기 데이터 레코드의 제2 세트로부터 하나 이상의 데이터 레코드를 선택하는 것은 상기 제1 타겟 데이터 필드에 있는 별개의 값과 상기 제2 타겟 데이터 필드에 있는 별개의 값의 조합에 기초하여 데이터 레코드를 선택하는 것을 포함하는, 데이터 레코드를 선택하기 위한 컴퓨터 구현 방법.
  64. 제58항에 있어서,
    하나 이상의 데이터 필드에 있는 값을 특징짓는 것은 상기 데이터 레코드의 제2 세트 내의 둘 이상의 데이터 레코드 사이의 관계를 나타내는 값을 갖는 제1 데이터 필드를 식별하는 것을 포함하는, 데이터 레코드를 선택하기 위한 컴퓨터 구현 방법.
  65. 제64항에 있어서,
    상기 데이터 레코드의 제2 세트로부터 하나 이상의 데이터 레코드를 선택하는 것은: 제1 데이터 레코드를 선택하는 것; 상기 제1 데이터 레코드의 제1 데이터 필드에 있는 값에 기초하여 상기 제1 데이터 레코드와 관련되는 하나 이상의 제2 데이터 레코드를 식별하는 것; 및 상기 하나 이상의 제2 데이터 레코드를 선택하는 것을 포함하는, 데이터 레코드를 선택하기 위한 컴퓨터 구현 방법.
  66. 제64항에 있어서,
    상기 제1 데이터 레코드의 제2 데이터 필드에 있는 값과 상기 제1 데이터 레코드와 관련되는 둘 이상의 데이터 레코드 각각에 대하여 상기 제2 데이터 필드에 있는 값에 기초하여 상기 제1 데이터 레코드에 대한 누적된 값을 결정하는 단계; 상기 제1 데이터 레코드에 대한 새로운 필드를 생성하는 단계; 및 상기 새로운 필드를 상기 누적된 값으로 팝퓰레이트하는 단계를 더 포함하는, 데이터 레코드를 선택하기 위한 컴퓨터 구현 방법.
  67. 제66항에 있어서,
    상기 누적된 값을 결정하는 단계는, 상기 제1 데이터 레코드의 제2 데이터 필드에 있는 값과 상기 제1 데이터 레코드와 관련되는 둘 이상의 데이터 레코드 각각에 대하여 상기 제2 데이터 필드에 있는 값의 합계에 기초하여 상기 누적된 값을 결정하는 단계를 포함하는, 데이터 레코드를 선택하기 위한 컴퓨터 구현 방법.
  68. 제66항에 있어서,
    상기 데이터 레코드의 제2 세트로부터 하나 이상의 데이터 레코드를 선택하는 것은 상기 데이터 레코드의 제2 세트 내의 하나 이상의 데이터 레코드 각각에 대한 상기 새로운 필드 내의 상기 누적된 값에 기초하여 상기 하나 이상의 데이터 레코드를 선택하는 것을 포함하는, 데이터 레코드를 선택하기 위한 컴퓨터 구현 방법.
  69. 데이터 처리 어플리케이션의 시험 도중에 처리 규칙의 실행을 유발하도록 데이터 레코드를 선택하기 위한 시스템으로서, 적어도 하나의 프로세서를 포함하고, 상기 프로세서는:
    데이터 레코드의 제1 세트를 획득하고;
    적어도 하나의 입력값에 대해 동작하고 적어도 하나의 출력값을 생성하는 처리 규칙을 포함하는 데이터 처리 어플리케이션을 이용하여 상기 데이터 레코드의 제1 세트를 데이터 처리 시스템 내에서 처리하며 ― 상기 처리 규칙이 특정한 데이터 레코드의 처리 도중에 상기 데이터 처리 어플리케이션에 의해 실행되는지 여부는 상기 특정 데이터 레코드의 하나 이상의 데이터 필드 각각에 있는 값에 직접적으로 또는 간접적으로 좌우됨 ―;
    상기 처리 규칙이 상기 데이터 레코드의 제1 세트의 처리와 관련하여 실행된 횟수를 나타내는 실행 정보를 수신하고;
    데이터 레코드의 제2 세트를 획득하고;
    상기 제2 세트 내의 각각의 데이터 레코드의 하나 이상의 데이터 필드에 있는 값을 특징짓고;
    상기 제2 세트 내의 데이터 레코드의 특정한 하나의 데이터 필드를 타겟 데이터 필드로서 식별하는 식별 기준을 결정하고 ― 식별 기준은 (i) 상기 제2 세트 내의 각각의 데이터 레코드의 하나 이상의 데이터 필드에 있는 값을 특징짓는 것과 (ii) 상기 처리 규칙이 상기 데이터 레코드의 제1 세트의 처리와 관련하여 실행된 횟수를 나타내는 상기 실행 정보에 기초하는 것임 ―;
    상기 식별 기준을 적용하여, 상기 타겟 데이터 필드에 있는 값에 기초해 상기 데이터 레코드의 제2 세트로부터 하나 이상의 데이터 레코드를 선택하며;
    상기 데이터 처리 어플리케이션을 이용하여, 선택된 하나 이상의 데이터 레코드를 처리하도록 구성되는, 데이터 레코드를 선택하기 위한 시스템.
  70. 제69항에 있어서,
    상기 적어도 하나의 프로세서는, 상기 제2 세트 내의 데이터 레코드의 하나 이상의 데이터 필드 각각의 카디널러티에 기초하여 상기 제2 세트 내의 데이터 레코드의 특정한 하나의 데이터 필드를 타겟 데이터 필드로서 식별하도록 구성되는, 데이터 레코드를 선택하기 위한 시스템.
  71. 제70항에 있어서,
    상기 제2 세트 내의 데이터 레코드에 걸쳐 상기 타겟 데이터 필드에 다수의 별개의 값이 존재하며, 상기 데이터 레코드의 제2 세트로부터 하나 이상의 데이터 레코드를 선택하는 것은 상기 타겟 데이터 필드에서 각각의 상기 별개의 값을 갖는 적어도 하나의 데이터 레코드를 선택하는 것을 포함하는, 데이터 레코드를 선택하기 위한 시스템.
  72. 제69항에 있어서,
    상기 타겟 데이터 필드는 제1 타겟 데이터 필드이고, 상기 적어도 하나의 프로세서는 상기 제2 세트 내의 데이터 레코드의 데이터 필드 중 제2의 특정한 데이터 필드를 제2 타겟 데이터 필드로서 식별하도록 구성되는, 데이터 레코드를 선택하기 위한 시스템.
  73. 제72항에 있어서,
    상기 데이터 레코드의 제2 세트로부터 하나 이상의 데이터 레코드를 선택하는 것은 상기 제1 타겟 데이터 필드에 있는 값과 상기 제2 타겟 데이터 필드에 있는 값의 조합에 기초하여 데이터 레코드를 선택하는 것을 포함하는, 데이터 레코드를 선택하기 위한 시스템.
  74. 제73항에 있어서,
    상기 제2 세트 내의 데이터 레코드에 걸쳐 상기 제1 타겟 데이터 필드에 다수의 별개의 값이 존재하고 상기 제2 세트 내의 데이터 레코드에 걸쳐 상기 제2 타겟 데이터 필드에 다수의 별개의 값이 존재하며, 상기 데이터 레코드의 제2 세트로부터 하나 이상의 데이터 레코드를 선택하는 것은 상기 제1 타겟 데이터 필드에 있는 별개의 값과 상기 제2 타겟 데이터 필드에 있는 별개의 값의 조합에 기초하여 데이터 레코드를 선택하는 것을 포함하는, 데이터 레코드를 선택하기 위한 시스템.
  75. 제69항에 있어서,
    하나 이상의 데이터 필드에 있는 값을 특징짓는 것은 상기 데이터 레코드의 제2 세트 내의 둘 이상의 데이터 레코드 사이의 관계를 나타내는 값을 갖는 제1 데이터 필드를 식별하는 것을 포함하는, 데이터 레코드를 선택하기 위한 시스템.
  76. 제75항에 있어서,
    상기 데이터 레코드의 제2 세트로부터 하나 이상의 데이터 레코드를 선택하는 것은: 제1 데이터 레코드를 선택하는 것; 상기 제1 데이터 레코드의 제1 데이터 필드에 있는 값에 기초하여 상기 제1 데이터 레코드와 관련되는 하나 이상의 제2 데이터 레코드를 식별하는 것; 및 상기 하나 이상의 제2 데이터 레코드를 선택하는 것을 포함하는, 데이터 레코드를 선택하기 위한 시스템.
  77. 제75항에 있어서,
    상기 적어도 하나의 프로세서는, 상기 제1 데이터 레코드의 제2 데이터 필드에 있는 값과 상기 제1 데이터 레코드와 관련되는 둘 이상의 데이터 레코드 각각에 대하여 상기 제2 데이터 필드에 있는 값에 기초하여 상기 제1 데이터 레코드에 대한 누적된 값을 결정하고; 상기 제1 데이터 레코드에 대한 새로운 필드를 생성하며; 상기 새로운 필드를 상기 누적된 값으로 팝퓰레이트하도록 구성되는, 데이터 레코드를 선택하기 위한 시스템.
  78. 제77항에 있어서,
    상기 데이터 레코드의 제2 세트로부터 하나 이상의 데이터 레코드를 선택하는 것은 상기 데이터 레코드의 제2 세트 내의 하나 이상의 데이터 레코드 각각에 대한 상기 새로운 필드 내의 상기 누적된 값에 기초하여 상기 하나 이상의 데이터 레코드를 선택하는 것을 포함하는, 데이터 레코드를 선택하기 위한 시스템.
  79. 명령을 저장한 비일시적 컴퓨터 판독가능 매체로서, 상기 명령은 컴퓨터 시스템으로 하여금 데이터 처리 어플리케이션의 시험 도중에 처리 규칙의 실행을 유발하도록 데이터 레코드를 선택하게 하고, 상기 명령은 상기 컴퓨터 시스템으로 하여금:
    데이터 레코드의 제1 세트를 획득하고;
    적어도 하나의 입력값에 대해 동작하고 적어도 하나의 출력값을 생성하는 처리 규칙을 포함하는 데이터 처리 어플리케이션을 이용하여 상기 데이터 레코드의 제1 세트를 데이터 처리 시스템 내에서 처리하며 ― 상기 처리 규칙이 특정한 데이터 레코드의 처리 도중에 상기 데이터 처리 어플리케이션에 의해 실행되는지 여부는 상기 특정 데이터 레코드의 하나 이상의 데이터 필드 각각에 있는 값에 직접적으로 또는 간접적으로 좌우됨 ―;
    상기 처리 규칙이 상기 데이터 레코드의 제1 세트의 처리와 관련하여 실행된 횟수를 나타내는 실행 정보를 수신하고;
    데이터 레코드의 제2 세트를 획득하고;
    상기 제2 세트 내의 각각의 데이터 레코드의 하나 이상의 데이터 필드에 있는 값을 특징짓고;
    상기 제2 세트 내의 데이터 레코드의 특정한 하나의 데이터 필드를 타겟 데이터 필드로서 식별하는 식별 기준을 결정하고 ― 식별 기준은 (i) 상기 제2 세트 내의 각각의 데이터 레코드의 하나 이상의 데이터 필드에 있는 값을 특징짓는 것과 (ii) 상기 처리 규칙이 상기 데이터 레코드의 제1 세트의 처리와 관련하여 실행된 횟수를 나타내는 상기 실행 정보에 기초하는 것임 ―;
    상기 식별 기준을 적용하여, 상기 타겟 데이터 필드에 있는 값에 기초해 상기 데이터 레코드의 제2 세트로부터 하나 이상의 데이터 레코드를 선택하며;
    상기 데이터 처리 어플리케이션을 이용하여, 선택된 하나 이상의 데이터 레코드를 처리하도록 하는, 명령을 저장한 비일시적 컴퓨터 판독가능 매체.
  80. 제79항에 있어서,
    상기 명령은 상기 컴퓨터 시스템으로 하여금, 상기 제2 세트 내의 데이터 레코드의 하나 이상의 데이터 필드 각각의 카디널러티에 기초하여 상기 제2 세트 내의 데이터 레코드의 특정한 하나의 데이터 필드를 타겟 데이터 필드로서 식별하도록 하는, 명령을 저장한 비일시적 컴퓨터 판독가능 매체.
  81. 제80항에 있어서,
    상기 제2 세트 내의 데이터 레코드에 걸쳐 상기 타겟 데이터 필드에 다수의 별개의 값이 존재하며, 상기 데이터 레코드의 제2 세트로부터 하나 이상의 데이터 레코드를 선택하는 것은 상기 타겟 데이터 필드에서 각각의 상기 별개의 값을 갖는 적어도 하나의 데이터 레코드를 선택하는 것을 포함하는, 명령을 저장한 비일시적 컴퓨터 판독가능 매체.
  82. 제79항에 있어서,
    상기 타겟 데이터 필드는 제1 타겟 데이터 필드이고, 상기 명령은 상기 컴퓨터 시스템으로 하여금, 상기 제2 세트 내의 데이터 레코드의 데이터 필드 중 제2의 특정한 데이터 필드를 제2 타겟 데이터 필드로서 식별하도록 하는, 명령을 저장한 비일시적 컴퓨터 판독가능 매체.
  83. 제82항에 있어서,
    상기 데이터 레코드의 제2 세트로부터 하나 이상의 데이터 레코드를 선택하는 것은 상기 제1 타겟 데이터 필드에 있는 값과 상기 제2 타겟 데이터 필드에 있는 값의 조합에 기초하여 데이터 레코드를 선택하는 것을 포함하는, 명령을 저장한 비일시적 컴퓨터 판독가능 매체.
  84. 제83항에 있어서,
    상기 제2 세트 내의 데이터 레코드에 걸쳐 상기 제1 타겟 데이터 필드에 다수의 별개의 값이 존재하고 상기 제2 세트 내의 데이터 레코드에 걸쳐 상기 제2 타겟 데이터 필드에 다수의 별개의 값이 존재하며, 상기 데이터 레코드의 제2 세트로부터 하나 이상의 데이터 레코드를 선택하는 것은 상기 제1 타겟 데이터 필드에 있는 별개의 값과 상기 제2 타겟 데이터 필드에 있는 별개의 값의 조합에 기초하여 데이터 레코드를 선택하는 것을 포함하는, 명령을 저장한 비일시적 컴퓨터 판독가능 매체.
  85. 제79항에 있어서,
    하나 이상의 데이터 필드에 있는 값을 특징짓는 것은 상기 데이터 레코드의 제2 세트 내의 둘 이상의 데이터 레코드 사이의 관계를 나타내는 값을 갖는 제1 데이터 필드를 식별하는 것을 포함하는, 명령을 저장한 비일시적 컴퓨터 판독가능 매체.
  86. 제85항에 있어서,
    상기 데이터 레코드의 제2 세트로부터 하나 이상의 데이터 레코드를 선택하는 것은: 제1 데이터 레코드를 선택하는 것; 상기 제1 데이터 레코드의 제1 데이터 필드에 있는 값에 기초하여 상기 제1 데이터 레코드와 관련되는 하나 이상의 제2 데이터 레코드를 식별하는 것; 및 상기 하나 이상의 제2 데이터 레코드를 선택하는 것을 포함하는, 명령을 저장한 비일시적 컴퓨터 판독가능 매체.
  87. 제85항에 있어서,
    상기 명령은 상기 컴퓨터 시스템으로 하여금, 상기 제1 데이터 레코드의 제2 데이터 필드에 있는 값과 상기 제1 데이터 레코드와 관련되는 둘 이상의 데이터 레코드 각각에 대하여 상기 제2 데이터 필드에 있는 값에 기초하여 상기 제1 데이터 레코드에 대한 누적된 값을 결정하고; 상기 제1 데이터 레코드에 대한 새로운 필드를 생성하며; 상기 새로운 필드를 상기 누적된 값으로 팝퓰레이트하도록 하는, 명령을 저장한 비일시적 컴퓨터 판독가능 매체.
  88. 제87항에 있어서,
    상기 데이터 레코드의 제2 세트로부터 하나 이상의 데이터 레코드를 선택하는 것은 상기 데이터 레코드의 제2 세트 내의 하나 이상의 데이터 레코드 각각에 대한 상기 새로운 필드 내의 상기 누적된 값에 기초하여 상기 하나 이상의 데이터 레코드를 선택하는 것을 포함하는, 명령을 저장한 비일시적 컴퓨터 판독가능 매체.
  89. 데이터 처리 어플리케이션의 시험 도중에 처리 규칙의 실행을 유발하도록 데이터 레코드를 선택하기 위한 시스템으로서,
    데이터 레코드의 제1 세트를 획득하기 위한 수단;
    적어도 하나의 입력값에 대해 동작하고 적어도 하나의 출력값을 생성하는 처리 규칙을 포함하는 데이터 처리 어플리케이션을 이용하여 상기 데이터 레코드의 제1 세트를 데이터 처리 시스템 내에서 처리하기 위한 수단 ― 상기 처리 규칙이 특정한 데이터 레코드의 처리 도중에 상기 데이터 처리 어플리케이션에 의해 실행되는지 여부는 상기 특정 데이터 레코드의 하나 이상의 데이터 필드 각각에 있는 값에 직접적으로 또는 간접적으로 좌우됨 ―;
    상기 처리 규칙이 상기 데이터 레코드의 제1 세트의 처리와 관련하여 실행된 횟수를 나타내는 실행 정보를 수신하기 위한 수단;
    데이터 레코드의 제2 세트를 획득하기 위한 수단;
    상기 제2 세트 내의 각각의 데이터 레코드의 하나 이상의 데이터 필드에 있는 값을 특징짓기 위한 수단;
    상기 제2 세트 내의 데이터 레코드의 특정한 하나의 데이터 필드를 타겟 데이터 필드로서 식별하는 식별 기준을 결정하기 위한 수단 ― 식별 기준은 (i) 상기 제2 세트 내의 각각의 데이터 레코드의 하나 이상의 데이터 필드에 있는 값을 특징짓는 것과 (ii) 상기 처리 규칙이 상기 데이터 레코드의 제1 세트의 처리와 관련하여 실행된 횟수를 나타내는 상기 실행 정보에 기초하는 것임 ―;
    상기 식별 기준을 적용하여, 상기 타겟 데이터 필드에 있는 값에 기초해 상기 데이터 레코드의 제2 세트로부터 하나 이상의 데이터 레코드를 선택하기 위한 수단; 및
    상기 데이터 처리 어플리케이션을 이용하여, 선택된 하나 이상의 데이터 레코드를 처리하기 위한 수단을 포함하는, 데이터 레코드를 선택하기 위한 시스템.
KR1020157020312A 2013-02-01 2014-01-31 데이터 레코드 선택 KR101983206B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361759799P 2013-02-01 2013-02-01
US61/759,799 2013-02-01
US13/827,558 US9892026B2 (en) 2013-02-01 2013-03-14 Data records selection
US13/827,558 2013-03-14
PCT/US2014/014186 WO2014121092A2 (en) 2013-02-01 2014-01-31 Data records selection

Publications (2)

Publication Number Publication Date
KR20150112961A KR20150112961A (ko) 2015-10-07
KR101983206B1 true KR101983206B1 (ko) 2019-08-28

Family

ID=51260168

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157020312A KR101983206B1 (ko) 2013-02-01 2014-01-31 데이터 레코드 선택

Country Status (10)

Country Link
US (3) US9892026B2 (ko)
EP (1) EP2951736B1 (ko)
JP (1) JP6533746B2 (ko)
KR (1) KR101983206B1 (ko)
CN (2) CN111897804A (ko)
AU (1) AU2014212153B2 (ko)
CA (1) CA2892301C (ko)
HK (1) HK1212479A1 (ko)
SG (2) SG10201807986SA (ko)
WO (1) WO2014121092A2 (ko)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9348499B2 (en) 2008-09-15 2016-05-24 Palantir Technologies, Inc. Sharing objects that rely on local resources with outside servers
US10102398B2 (en) 2009-06-01 2018-10-16 Ab Initio Technology Llc Generating obfuscated data
US8732574B2 (en) 2011-08-25 2014-05-20 Palantir Technologies, Inc. System and method for parameterizing documents for automatic workflow generation
US9348677B2 (en) 2012-10-22 2016-05-24 Palantir Technologies Inc. System and method for batch evaluation programs
US9892026B2 (en) 2013-02-01 2018-02-13 Ab Initio Technology Llc Data records selection
US10140664B2 (en) 2013-03-14 2018-11-27 Palantir Technologies Inc. Resolving similar entities from a transaction database
US8909656B2 (en) 2013-03-15 2014-12-09 Palantir Technologies Inc. Filter chains with associated multipath views for exploring large data sets
US9619538B2 (en) * 2013-03-15 2017-04-11 Teradata Us, Inc. Techniques for data integration
US8868486B2 (en) 2013-03-15 2014-10-21 Palantir Technologies Inc. Time-sensitive cube
US8938686B1 (en) 2013-10-03 2015-01-20 Palantir Technologies Inc. Systems and methods for analyzing performance of an entity
US9105000B1 (en) 2013-12-10 2015-08-11 Palantir Technologies Inc. Aggregating data from a plurality of data sources
CN105917315B (zh) * 2013-12-18 2020-05-01 起元技术有限责任公司 一种用于生成数据记录的内容的方法和计算系统
US11487732B2 (en) 2014-01-16 2022-11-01 Ab Initio Technology Llc Database key identification
US8924429B1 (en) 2014-03-18 2014-12-30 Palantir Technologies Inc. Determining and extracting changed data from a data source
US9836580B2 (en) 2014-03-21 2017-12-05 Palantir Technologies Inc. Provider portal
US20160019251A1 (en) * 2014-07-17 2016-01-21 Lexmark International Technology, SA System and Methods for Efficiently Storing Heterogeneous Data Records Having Low Cardinality
KR102356771B1 (ko) * 2014-09-08 2022-01-27 아브 이니티오 테크놀로지 엘엘시 데이터 구동 테스트 프레임워크
JP6511518B2 (ja) 2014-10-20 2019-05-15 アビニシオ テクノロジー エルエルシー ルールの規定及びデータへの適用
US11302426B1 (en) 2015-01-02 2022-04-12 Palantir Technologies Inc. Unified data interface and system
US10628834B1 (en) 2015-06-16 2020-04-21 Palantir Technologies Inc. Fraud lead detection system for efficiently processing database-stored data and automatically generating natural language explanatory information of system results for display in interactive user interfaces
US9418337B1 (en) 2015-07-21 2016-08-16 Palantir Technologies Inc. Systems and models for data analytics
US9392008B1 (en) 2015-07-23 2016-07-12 Palantir Technologies Inc. Systems and methods for identifying information related to payment card breaches
US9485265B1 (en) * 2015-08-28 2016-11-01 Palantir Technologies Inc. Malicious activity detection system capable of efficiently processing data accessed from databases and generating alerts for display in interactive user interfaces
US10430408B2 (en) 2015-09-24 2019-10-01 International Business Machines Corporation Technology to reduce cost of concatenation for hash array
US10223429B2 (en) 2015-12-01 2019-03-05 Palantir Technologies Inc. Entity data attribution using disparate data sets
US11989096B2 (en) 2015-12-21 2024-05-21 Ab Initio Technology Llc Search and retrieval data processing system for computing near real-time data aggregations
US9792020B1 (en) 2015-12-30 2017-10-17 Palantir Technologies Inc. Systems for collecting, aggregating, and storing data, generating interactive user interfaces for analyzing data, and generating alerts based upon collected data
US10599612B1 (en) * 2016-01-28 2020-03-24 Jpmorgan Chase Bank, N.A. Method and system for federated context collaboration service
US9842338B1 (en) 2016-11-21 2017-12-12 Palantir Technologies Inc. System to identify vulnerable card readers
US11250425B1 (en) 2016-11-30 2022-02-15 Palantir Technologies Inc. Generating a statistic using electronic transaction data
US9886525B1 (en) 2016-12-16 2018-02-06 Palantir Technologies Inc. Data item aggregate probability analysis system
US10728262B1 (en) 2016-12-21 2020-07-28 Palantir Technologies Inc. Context-aware network-based malicious activity warning systems
US10721262B2 (en) 2016-12-28 2020-07-21 Palantir Technologies Inc. Resource-centric network cyber attack warning system
US11216762B1 (en) 2017-07-13 2022-01-04 Palantir Technologies Inc. Automated risk visualization using customer-centric data analysis
US20190050384A1 (en) * 2017-08-08 2019-02-14 Ab Initio Technology Llc Techniques for dynamically defining a data record format
US11068540B2 (en) 2018-01-25 2021-07-20 Ab Initio Technology Llc Techniques for integrating validation results in data profiling and related systems and methods
US10877654B1 (en) 2018-04-03 2020-12-29 Palantir Technologies Inc. Graphical user interfaces for optimizations
US10754946B1 (en) 2018-05-08 2020-08-25 Palantir Technologies Inc. Systems and methods for implementing a machine learning approach to modeling entity behavior
US10891307B2 (en) * 2018-05-31 2021-01-12 Microsoft Technology Licensing, Llc Distributed data synchronization in a distributed computing system
US11119630B1 (en) 2018-06-19 2021-09-14 Palantir Technologies Inc. Artificial intelligence assisted evaluations and user interface for same
CN108959636B (zh) * 2018-07-25 2020-11-03 京东数字科技控股有限公司 数据处理方法、装置、系统、计算机可读介质
US10555191B1 (en) 2019-08-01 2020-02-04 T-Mobile Usa, Inc. Optimum network performance improvement solutions selection systems and methods
CN111290948B (zh) * 2020-01-19 2022-02-22 腾讯科技(深圳)有限公司 测试数据获取方法、装置、计算机设备及可读存储介质
US11343683B2 (en) 2020-04-22 2022-05-24 T-Mobile Usa, Inc. Identification and prioritization of optimum capacity solutions in a telecommunications network
US11064382B1 (en) 2020-05-07 2021-07-13 T-Mobile Usa, Inc. Management of telecommunications network congestion on roadways
US11350289B2 (en) 2020-05-14 2022-05-31 T-Mobile Usa, Inc. Identification of indoor and outdoor traffic usage of customers of a telecommunications network
US11153765B1 (en) 2020-05-15 2021-10-19 T-Mobile Usa, Inc. Capacity planning of telecommunications network by detecting anomalies in site behavior
KR102256814B1 (ko) * 2020-09-10 2021-05-27 주식회사 아미크 목적 데이터 선별 방법 및 시스템
US11714790B2 (en) * 2021-09-30 2023-08-01 Microsoft Technology Licensing, Llc Data unification
CN114860575B (zh) * 2022-03-31 2023-10-03 中国电信股份有限公司 测试数据生成方法及装置、存储介质及电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020105911A1 (en) 1998-11-24 2002-08-08 Parag Pruthi Apparatus and method for collecting and analyzing communications data

Family Cites Families (111)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5179643A (en) 1988-12-23 1993-01-12 Hitachi, Ltd. Method of multi-dimensional analysis and display for a large volume of record information items and a system therefor
JPH032938A (ja) 1989-05-31 1991-01-09 Hitachi Ltd データベース処理方法
FR2698465B1 (fr) 1992-11-20 1995-01-13 Bull Sa Méthode d'extraction de profils de statistiques, utilisation des statistiques créées par la méthode.
JP3079881B2 (ja) 1993-08-10 2000-08-21 三菱自動車工業株式会社 道路交通状況推定方法および車両運転特性制御方法
US5742806A (en) 1994-01-31 1998-04-21 Sun Microsystems, Inc. Apparatus and method for decomposing database queries for database management system including multiprocessor digital data processing system
JP3519126B2 (ja) 1994-07-14 2004-04-12 株式会社リコー 自動レイアウトシステム
US5842200A (en) 1995-03-31 1998-11-24 International Business Machines Corporation System and method for parallel mining of association rules in databases
US6601048B1 (en) 1997-09-12 2003-07-29 Mci Communications Corporation System and method for detecting and managing fraud
US5966072A (en) 1996-07-02 1999-10-12 Ab Initio Software Corporation Executing computations expressed as graphs
US5778373A (en) 1996-07-15 1998-07-07 At&T Corp Integration of an information server database schema by generating a translation map from exemplary files
US6138123A (en) 1996-07-25 2000-10-24 Rathbun; Kyle R. Method for creating and using parallel data structures
JPH1055367A (ja) 1996-08-09 1998-02-24 Hitachi Ltd データ利用システム
US5845285A (en) 1997-01-07 1998-12-01 Klein; Laurence C. Computer system and method of data analysis
US5987453A (en) 1997-04-07 1999-11-16 Informix Software, Inc. Method and apparatus for performing a join query in a database system
US6134560A (en) 1997-12-16 2000-10-17 Kliebhan; Daniel F. Method and apparatus for merging telephone switching office databases
US6826556B1 (en) 1998-10-02 2004-11-30 Ncr Corporation Techniques for deploying analytic models in a parallel
US6959300B1 (en) 1998-12-10 2005-10-25 At&T Corp. Data compression method and apparatus
US6343294B1 (en) 1998-12-15 2002-01-29 International Business Machines Corporation Data file editor for multiple data subsets
US6741995B1 (en) 1999-03-23 2004-05-25 Metaedge Corporation Method for dynamically creating a profile
US6163774A (en) * 1999-05-24 2000-12-19 Platinum Technology Ip, Inc. Method and apparatus for simplified and flexible selection of aggregate and cross product levels for a data warehouse
JP4600847B2 (ja) 1999-06-18 2010-12-22 インターナショナル・ビジネス・マシーンズ・コーポレーション トランザクションの意味規則を用いた連続データストリームのセグメント化および処理
US6801938B1 (en) 1999-06-18 2004-10-05 Torrent Systems, Inc. Segmentation and processing of continuous data streams using transactional semantics
JP3318834B2 (ja) 1999-07-30 2002-08-26 三菱電機株式会社 データファイルシステム及びデータ検索方法
JP3567861B2 (ja) 2000-07-07 2004-09-22 日本電信電話株式会社 情報源所在推定方法及び装置及び情報源所在推定プログラムを格納した記憶媒体
JP4366845B2 (ja) 2000-07-24 2009-11-18 ソニー株式会社 データ処理装置およびデータ処理方法、並びにプログラム提供媒体
US6788302B1 (en) 2000-08-03 2004-09-07 International Business Machines Corporation Partitioning and load balancing graphical shape data for parallel applications
US7039627B1 (en) 2000-12-22 2006-05-02 Nortel Networks Limited Method and apparatus for performing a radix search by selecting one of a valid table and a transition table
US6952693B2 (en) 2001-02-23 2005-10-04 Ran Wolff Distributed mining of association rules
US20020161778A1 (en) 2001-02-24 2002-10-31 Core Integration Partners, Inc. Method and system of data warehousing and building business intelligence using a data storage model
US20020120602A1 (en) 2001-02-28 2002-08-29 Ross Overbeek System, method and computer program product for simultaneous analysis of multiple genomes
CA2349265A1 (en) 2001-05-30 2002-11-30 Andrew Emili Protein expression profile database
US20030033138A1 (en) 2001-07-26 2003-02-13 Srinivas Bangalore Method for partitioning a data set into frequency vectors for clustering
US7130852B2 (en) 2001-07-27 2006-10-31 Silicon Valley Bank Internal security system for a relational database system
AU2002355530A1 (en) 2001-08-03 2003-02-24 John Allen Ananian Personalized interactive digital catalog profiling
US6801903B2 (en) 2001-10-12 2004-10-05 Ncr Corporation Collecting statistics in a database system
US20030140027A1 (en) 2001-12-12 2003-07-24 Jeffrey Huttel Universal Programming Interface to Knowledge Management (UPIKM) database system with integrated XML interface
US7813937B1 (en) 2002-02-15 2010-10-12 Fair Isaac Corporation Consistency modeling of healthcare claims to detect fraud and abuse
US7031969B2 (en) 2002-02-20 2006-04-18 Lawrence Technologies, Llc System and method for identifying relationships between database records
US7386318B2 (en) 2002-03-19 2008-06-10 Pitney Bowes Mapinfo Corporation Location based service provider
US20040083199A1 (en) 2002-08-07 2004-04-29 Govindugari Diwakar R. Method and architecture for data transformation, normalization, profiling, cleansing and validation
US6657568B1 (en) 2002-08-27 2003-12-02 Fmr Corp. Data packing for real-time streaming
US7047230B2 (en) * 2002-09-09 2006-05-16 Lucent Technologies Inc. Distinct sampling system and a method of distinct sampling for optimizing distinct value query estimates
US7043476B2 (en) 2002-10-11 2006-05-09 International Business Machines Corporation Method and apparatus for data mining to discover associations and covariances associated with data
AU2003284118A1 (en) 2002-10-14 2004-05-04 Battelle Memorial Institute Information reservoir
US7698163B2 (en) 2002-11-22 2010-04-13 Accenture Global Services Gmbh Multi-dimensional segmentation for use in a customer interaction
US7403942B1 (en) 2003-02-04 2008-07-22 Seisint, Inc. Method and system for processing data records
US7117222B2 (en) 2003-03-13 2006-10-03 International Business Machines Corporation Pre-formatted column-level caching to improve client performance
US7433861B2 (en) 2003-03-13 2008-10-07 International Business Machines Corporation Byte-code representations of actual data to reduce network traffic in database transactions
US7840664B2 (en) * 2003-05-21 2010-11-23 Ixia Automated characterization of network traffic
US20040249810A1 (en) 2003-06-03 2004-12-09 Microsoft Corporation Small group sampling of data for use in query processing
GB0314591D0 (en) * 2003-06-21 2003-07-30 Ibm Profiling data in a data store
US20060069717A1 (en) 2003-08-27 2006-03-30 Ascential Software Corporation Security service for a services oriented architecture in a data integration platform
US20050240354A1 (en) 2003-08-27 2005-10-27 Ascential Software Corporation Service oriented architecture for an extract function in a data integration platform
US7426520B2 (en) 2003-09-10 2008-09-16 Exeros, Inc. Method and apparatus for semantic discovery and mapping between data sources
CN101271471B (zh) * 2003-09-15 2011-08-17 起元科技有限公司 数据处理方法、软件和数据处理系统
CN102982065B (zh) 2003-09-15 2016-09-21 起元科技有限公司 数据处理方法、数据处理装置及计算机可读存储介质
US7587394B2 (en) 2003-09-23 2009-09-08 International Business Machines Corporation Methods and apparatus for query rewrite with auxiliary attributes in query processing operations
US7149736B2 (en) * 2003-09-26 2006-12-12 Microsoft Corporation Maintaining time-sorted aggregation records representing aggregations of values from multiple database records using multiple partitions
AU2003279999A1 (en) 2003-10-21 2005-06-08 Nielsen Media Research, Inc. Methods and apparatus for fusing databases
US7689542B2 (en) 2004-01-13 2010-03-30 Oracle International Corporation Dynamic return type generation in a database system
US20050177578A1 (en) 2004-02-10 2005-08-11 Chen Yao-Ching S. Efficient type annontation of XML schema-validated XML documents without schema validation
US7376656B2 (en) 2004-02-10 2008-05-20 Microsoft Corporation System and method for providing user defined aggregates in a database system
US8447743B2 (en) 2004-08-17 2013-05-21 International Business Machines Corporation Techniques for processing database queries including user-defined functions
US20060074881A1 (en) 2004-10-02 2006-04-06 Adventnet, Inc. Structure independent searching in disparate databases
US8145642B2 (en) 2004-11-30 2012-03-27 Oracle International Corporation Method and apparatus to support bitmap filtering in a parallel system
US8572018B2 (en) 2005-06-20 2013-10-29 New York University Method, system and software arrangement for reconstructing formal descriptive models of processes from functional/modal data using suitable ontology
US7584205B2 (en) 2005-06-27 2009-09-01 Ab Initio Technology Llc Aggregating data with complex operations
US7716630B2 (en) 2005-06-27 2010-05-11 Ab Initio Technology Llc Managing parameters for graph-based computations
US7774346B2 (en) 2005-08-26 2010-08-10 Oracle International Corporation Indexes that are based on bitmap values and that use summary bitmap values
JP3962417B2 (ja) * 2005-08-31 2007-08-22 インターナショナル・ビジネス・マシーンズ・コーポレーション データベースに対するアクセスを制御するシステム、およびその方法
US20070073721A1 (en) 2005-09-23 2007-03-29 Business Objects, S.A. Apparatus and method for serviced data profiling operations
US8271452B2 (en) 2006-06-12 2012-09-18 Rainstor Limited Method, system, and database archive for enhancing database archiving
US8260910B2 (en) 2006-09-19 2012-09-04 Oracle America, Inc. Method and apparatus for monitoring a data stream to detect a pattern of data elements using bloom filters
NO325864B1 (no) 2006-11-07 2008-08-04 Fast Search & Transfer Asa Fremgangsmåte ved beregning av sammendragsinformasjon og en søkemotor for å støtte og implementere fremgangsmåten
CN101191069B (zh) 2006-11-21 2011-04-27 中国石油化工股份有限公司 石脑油催化裂解制乙烯和丙烯的方法
US8412713B2 (en) 2007-03-06 2013-04-02 Mcafee, Inc. Set function calculation in a database
US8069129B2 (en) 2007-04-10 2011-11-29 Ab Initio Technology Llc Editing and compiling business rules
US7958142B2 (en) 2007-09-20 2011-06-07 Microsoft Corporation User profile aggregation
US20090163183A1 (en) * 2007-10-04 2009-06-25 O'donoghue Hugh Recommendation generation systems, apparatus and methods
US7962486B2 (en) * 2008-01-10 2011-06-14 International Business Machines Corporation Method and system for discovery and modification of data cluster and synonyms
US20090226916A1 (en) 2008-02-01 2009-09-10 Life Technologies Corporation Automated Analysis of DNA Samples
US7912867B2 (en) 2008-02-25 2011-03-22 United Parcel Services Of America, Inc. Systems and methods of profiling data for integration
CN102138139B (zh) * 2008-06-30 2014-12-17 起元技术有限责任公司 基于图的计算中的数据日志记录
US8463739B2 (en) 2008-08-28 2013-06-11 Red Hat, Inc. Systems and methods for generating multi-population statistical measures using middleware
EP2350879A1 (en) 2008-09-19 2011-08-03 Oracle International Corporation Hash join using collaborative parallel filtering in intelligent storage with offloaded bloom filters
US20100114976A1 (en) 2008-10-21 2010-05-06 Castellanos Maria G Method For Database Design
US9251212B2 (en) 2009-03-27 2016-02-02 Business Objects Software Ltd. Profiling in a massive parallel processing environment
US20110029478A1 (en) 2009-05-20 2011-02-03 Broeker Stephen A Stream Star Schema and Nested Binary Tree for Data Stream Analysis
US10102398B2 (en) * 2009-06-01 2018-10-16 Ab Initio Technology Llc Generating obfuscated data
EP2478433A4 (en) 2009-09-16 2016-09-21 Ab Initio Technology Llc MAPPING DATA SET ELEMENTS
CN101661510A (zh) 2009-09-29 2010-03-03 金蝶软件(中国)有限公司 一种数据匹配方法及装置
US8560575B2 (en) 2009-11-12 2013-10-15 Salesforce.Com, Inc. Methods and apparatus for selecting updates to associated records to publish on an information feed in an on-demand database service environment
WO2011060257A1 (en) 2009-11-13 2011-05-19 Ab Initio Technology Llc Managing record format information
EP2524327B1 (en) * 2010-01-13 2017-11-29 Ab Initio Technology LLC Matching metadata sources using rules for characterizing matches
US8396873B2 (en) 2010-03-10 2013-03-12 Emc Corporation Index searching using a bloom filter
US8775447B2 (en) 2010-06-22 2014-07-08 Ab Initio Technology Llc Processing related datasets
US10558705B2 (en) 2010-10-20 2020-02-11 Microsoft Technology Licensing, Llc Low RAM space, high-throughput persistent key-value store using secondary memory
US8296274B2 (en) 2011-01-27 2012-10-23 Leppard Andrew Considering multiple lookups in bloom filter decision making
KR101889120B1 (ko) 2011-01-28 2018-08-16 아브 이니티오 테크놀로지 엘엘시 데이터 패턴 정보 생성
US9275367B2 (en) 2011-05-05 2016-03-01 Aegis Analytical Corporation System for designating, displaying and selecting types of process parameters and product outcome parameters
US8610605B2 (en) 2011-06-17 2013-12-17 Sap Ag Method and system for data compression
US8856085B2 (en) 2011-07-19 2014-10-07 International Business Machines Corporation Automatic consistent sampling for data analysis
US8880880B2 (en) 2011-07-29 2014-11-04 Qualcomm Incorporated Facilitating access control in peer-to-peer overlay networks
US8666919B2 (en) * 2011-07-29 2014-03-04 Accenture Global Services Limited Data quality management for profiling, linking, cleansing and migrating data
CN103176973B (zh) * 2011-12-20 2016-04-20 国际商业机器公司 用于生成数据库的测试工作负载的系统和方法
US8762396B2 (en) 2011-12-22 2014-06-24 Sap Ag Dynamic, hierarchical bloom filters for network data routing
US9336246B2 (en) 2012-02-28 2016-05-10 International Business Machines Corporation Generating composite key relationships between database objects based on sampling
CN102681946B (zh) * 2012-05-11 2015-03-11 龙芯中科技术有限公司 内存访问方法和装置
US11449952B2 (en) * 2012-10-01 2022-09-20 Oracle International Corporation Efficiently modeling database scenarios for later use on live data
US9892026B2 (en) 2013-02-01 2018-02-13 Ab Initio Technology Llc Data records selection
US11487732B2 (en) 2014-01-16 2022-11-01 Ab Initio Technology Llc Database key identification

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020105911A1 (en) 1998-11-24 2002-08-08 Parag Pruthi Apparatus and method for collecting and analyzing communications data

Also Published As

Publication number Publication date
WO2014121092A3 (en) 2014-10-09
HK1212479A1 (en) 2016-06-10
JP2016509308A (ja) 2016-03-24
EP2951736B1 (en) 2019-07-31
US9892026B2 (en) 2018-02-13
US20180165181A1 (en) 2018-06-14
US20190266075A1 (en) 2019-08-29
US11163670B2 (en) 2021-11-02
AU2014212153A1 (en) 2015-06-04
CN105051729B (zh) 2020-09-04
CA2892301A1 (en) 2014-08-07
AU2014212153B2 (en) 2019-06-13
EP2951736A4 (en) 2016-10-05
CN111897804A (zh) 2020-11-06
CN105051729A (zh) 2015-11-11
US20140222752A1 (en) 2014-08-07
JP6533746B2 (ja) 2019-06-19
SG10201807986SA (en) 2018-10-30
CA2892301C (en) 2020-11-03
SG11201504063VA (en) 2015-08-28
US10241900B2 (en) 2019-03-26
KR20150112961A (ko) 2015-10-07
EP2951736A2 (en) 2015-12-09
WO2014121092A2 (en) 2014-08-07

Similar Documents

Publication Publication Date Title
KR101983206B1 (ko) 데이터 레코드 선택
US11475023B2 (en) Impact analysis
Maggi et al. Parallel algorithms for the automated discovery of declarative process models
CN107430611B (zh) 过滤数据沿袭图
US10437701B2 (en) Data generation
CN107251021B (zh) 过滤数据沿袭图
CN115292160B (zh) 应用程序测试
US10162861B2 (en) Method for the analysis of processes
Barb et al. A statistical study of the relevance of lines of code measures in software projects
US8396847B2 (en) System and method to retrieve and analyze data for decision making
Kennedy et al. Jigsaw: Efficient optimization over uncertain enterprise data
US10848384B2 (en) Method for determining parallel process paths in process data
de Souza et al. Integrating an Association Rule Mining Agent in an ERP System: A Proposal and a Computational Scalability Analysis.
Nakuçi Data Generation for the Simulation of Artifact-Centric Processes
Thirumaran et al. Evaluation of change factors for web service change management
McEwan et al. Relationship Estimation Metrics for Binary SoC Data
Sharma et al. Leveraging Big Data Using SAS High Performance Analytic Server

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant