KR20170121272A - 데이터 쿼리 관리 - Google Patents

데이터 쿼리 관리 Download PDF

Info

Publication number
KR20170121272A
KR20170121272A KR1020177027578A KR20177027578A KR20170121272A KR 20170121272 A KR20170121272 A KR 20170121272A KR 1020177027578 A KR1020177027578 A KR 1020177027578A KR 20177027578 A KR20177027578 A KR 20177027578A KR 20170121272 A KR20170121272 A KR 20170121272A
Authority
KR
South Korea
Prior art keywords
query
data
computer
data source
database
Prior art date
Application number
KR1020177027578A
Other languages
English (en)
Other versions
KR101877481B1 (ko
Inventor
이안 스켓쳐
글렌 존 알린
요셉 스케핑튼 3 홀리
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 KR20170121272A publication Critical patent/KR20170121272A/ko
Application granted granted Critical
Publication of KR101877481B1 publication Critical patent/KR101877481B1/ko

Links

Images

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/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • G06F17/30463
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • 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
    • 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/24Querying
    • G06F16/242Query formulation
    • G06F16/2425Iterative querying; Query formulation based on the results of a preceding query
    • 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/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • 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/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • G06F16/244Grouping and aggregation
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation
    • G06F16/24522Translation of natural language queries to structured queries
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2465Query processing support for facilitating data mining operations in structured databases
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3325Reformulation based on results of preceding query
    • G06F16/3326Reformulation based on results of preceding query using relevance feedback from the user, e.g. relevance feedback on documents, documents sets, document terms or passages
    • G06F16/3328Reformulation based on results of preceding query using relevance feedback from the user, e.g. relevance feedback on documents, documents sets, document terms or passages using graphical result space presentation or visualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/73Querying
    • G06F16/732Query formulation
    • G06F16/7343Query language or query format
    • G06F17/30194
    • G06F17/30289
    • G06F17/30395
    • G06F17/30651

Abstract

데이터베이스 쿼리를 수신하는 과정, 데이터 요소를 포함하는 데이터 기억부 내에 데이터베이스 테이블(324a, 324b, 324c) 등의 데이터 소스(102)에 관한 정보를 수신하는 과정, 데이터 소스를 나타내는 포맷화된 데이터 편성을 포함하고 데이터 소스의 데이터 요소를 포함하지 않는, 데이터 소스의 구조적 표현(334)을 생성하는 과정, 및 구조적 표현과 데이터베이스 쿼리를, 쿼리 플랜(314)을 생성할 수 있는 플랜 생성기(318)에 제공하는 과정을 포함하는 방법을 제공한다. 또한, 플랜 생성기(318)로부터, 데이터베이스 테이블(324a, 324b, 324c) 등의 데이터 소스(102)에서 데이터베이스 쿼리를 실행하기 위한 동작을 나타내는 쿼리 플랜(314)을 수신하는 과정, 및 쿼리 플랜으로부터 데이터플로우 그래프(312)를 생성하는 과정을 포함하는 방법을 제공한다.

Description

데이터 쿼리 관리{MANAGING DATA QUERIES}
본 개시는 데이터 쿼리를 관리하는 것에 관한 것이다.
데이터는 데이터베이스 내에 기억될 수 있으며 데이터베이스 테이블 등의 다양한 형태로 배치될 수 있다. 데이터베이스 테이블은 공통의 주제 또는 목적을 갖는 일련의 데이터를 포함할 수 있다. 데이터베이스 테이블의 배치는 데이터베이스 규칙에 의해 정의될 수 있으며, 다수의 데이터베이스 테이블은 유사 또는 동일한 배치를 가질 수 있다. 또한, 데이터베이스의 콘텐츠 및 이와 관련된 데이터베이스 테이블은 데이터가 조정, 추가 또는 삭제되는 시간 동안 변경될 수 있다. 데이터를 데이터베이스에 전송하고 데이터를 데이터베이스로부터 전송받기 위해 그리고 데이터베이스 내의 데이터를 조작하기 위해 여러 기술이 사용될 수 있다.
하나의 관점으로서, 일반적으로, 데이터 관리 시스템(data management system)이 사용하기 위한 데이터베이스 쿼리(database query)를 제공하는 방법은, 데이터베이스 쿼리를 수신하는 단계; 데이터 요소(data element)를 포함하는 데이터베이스 테이블 등의 데이터 소스(data source)에 관한 정보를 데이터 기억부(data storage)로부터 수신하는 단계; 데이터 소스를 나타내는 포맷화된 데이터 편성(formatted data organization)을 포함하고 데이터 소스의 데이터 요소를 포함하지 않는, 데이터 소스의 구조적 표현(structural representation)을 생성하는 단계; 및 구조적 표현과 데이터베이스 쿼리를, 데이터 소스에서 데이터베이스 쿼리를 실행하기 위한 동작을 나타내는 쿼리 플랜(query plan)을 생성할 수 있는 플랜 생성기(plan generator)에 제공하는 단계를 포함한다.
관점은 이하의 특징들 중 하나 이상을 포함할 수 있다.
데이터베이스 쿼리는 구조화 쿼리 언어(SQL: Structured Query Language) 쿼리를 포함한다.
데이터 소스의 구조적 표현을 생성하는 단계는, 데이터 소스 내의 데이터 구조로부터 데이터 타입(data type)을 판정하는 단계; 및 데이터 타입을 구조적 표현 내의 대응하는 데이터 구조에 할당(assign)하는 단계를 포함한다.
데이터 소스의 구조적 표현을 생성하는 단계는, 데이터 소스 내의 데이터 요소의 데이터 기억부 크기(data storage size)를 판정하는 단계; 및 계산된 데이터 기억부 크기를 상기 구조적 표현에 할당하는 단계를 포함한다.
데이터 소스에 관한 정보를 수신하는 단계는, 데이터 소스 레지스트리(data source registry)에 기초하여 데이터 소스를 식별(identify)하는 단계를 포함한다.
데이터 소스 레지스트리에는 데이터 포맷, 키(key), 및 데이터 소스의 인덱스(index)가 포함되어 있다.
하나의 관점으로서, 일반적으로, 데이터베이스 쿼리(database query)를 표현하는 데이터플로우 그래프(dataflow graph)를 생성하는 방법은, 데이터 소스에서 데이터베이스 쿼리를 실행하기 위한 동작을 나타내는 쿼리 플랜(query plan)을, 플랜 생성기(plan generator)로부터 수신하는 단계; 및 쿼리 플랜으로부터 데이터플로우 그래프를 생성하는 단계를 포함하며, 데이터플로우 그래프는 쿼리 플랜에 의해 표현된 하나 이상의 동작을 나타내는 하나 이상의 노드(node)와, 쿼리 플랜과 관련된 하나 이상의 데이터플로우를 나타내는 하나 이상의 링크(link)를 포함한다.
관점은 이하의 특징들 중 하나 이상을 포함할 수 있다.
데이터베이스 쿼리는 구조화 쿼리 언어(SQL: Structured Query Language) 쿼리를 포함한다.
데이터플로우 그래프는, 하나 이상의 입력 데이터세트로부터 데이터의 흐름을 수신하는 하나 이상의 노드; 및 하나 이상의 출력 데이터세트에 데이터의 흐름을 제공하는 하나 이상의 노드를 포함한다.
본 방법은 데이터 소스를 데이터플로우 그래프에 제공하는 단계; 및 데이터플로우 그래프를 실행시키는 단계를 더 포함한다.
본 방법은, 데이터플로우 그래프로부터 상기 데이터플로우 쿼리의 출력을 수신하는 단계를 더 포함한다.
플랜 생성기는 쿼리 옵티마이저(query optimizer)를 포함한다.
데이터플로우 그래프의 사양(specification)을 생성하는 단계는 데이터플로우 그래프의 성분에 상기 쿼리 플랜의 쿼리 동작을 매핑하는 단계를 포함한다.
쿼리 플랜은 데이터베이스 쿼리 내에 파라미터의 데이터 타입을 포함한다.
데이터베이스 쿼리는 실행가능 함수(executable function)에 대한 참조(reference)를 포함하며, 데이터플로우 그래프의 사양에는 상기 실행가능 함수를 나타내는 성분이 포함되어 있다.
하나의 관점으로서, 일반적으로, 데이터베이스 쿼리(database query)를 나타내는 데이터플로우 그래프를 생성하는 방법은, SQL 쿼리를 수신하는 단계; 데이터 요소(data element)를 포함하는 데이터 소스(data source)에 관한 정보를 데이터 기억부(data storage)로부터 수신하는 단계; 데이터 소스를 나타내는 포맷화된 데이터 편성(formatted data organization)을 포함하고 데이터 소스의 데이터 요소를 포함하지 않는, 데이터 소스의 구조적 표현을 생성하는 단계; 및 구조적 표현과 SQL 쿼리를, 데이터 소스에서 SQL 쿼리를 실행하기 위한 동작을 나타내는 쿼리 플랜(query plan)을 생성할 수 있는 플랜 생성기(plan generator)에 제공하는 단계; 플랜 생성기로부터 쿼리 플랜을 수신하는 단계; 및 쿼리 플랜으로부터 데이터플로우 그래프를 생성하는 단계를 포함하며, 데이터플로우 그래프는 쿼리 플랜에 의해 표현된 하나 이상의 동작을 나타내는 하나 이상의 노드와, 쿼리 플랜과 관련된 하나 이상의 데이터플로우를 나타내는 하나 이상의 링크를 포함한다.
하나의 관점으로서, 일반적으로, 데이터 관리 시스템(data management system)이 사용하기 위한 데이터베이스 쿼리(database query)를 제공하는 시스템은, 데이터 요소(data element)를 포함하는 데이터 소스(data source)에 관한 정보를 포함하는 데이터 기억부(data storage); 및 컴퓨터 시스템을 포함하며, 컴퓨터 시스템은, 데이터베이스 쿼리를 수신하고; 데이터 소스를 나타내는 포맷화된 데이터 편성(formatted data organization)을 포함하고 데이터 소스의 데이터 요소를 포함하지 않는, 상기 데이터 소스의 구조적 표현을 생성하고; 구조적 표현과 데이터베이스 쿼리를, 데이터 소스에서 상기 데이터베이스 쿼리를 실행하기 위한 동작을 나타내는 쿼리 플랜(query plan)을 생성할 수 있는 플랜 생성기(plan generator)에 제공하도록 구성된다.
하나의 관점으로서, 일반적으로, 데이터베이스 쿼리를 나타내는 데이터플로우 그래프를 생성하는 시스템으로서, 상기 시스템은 컴퓨터 시스템을 포함하며, 상기 컴퓨터 시스템은, 데이터 소스에서 데이터베이스 쿼리를 실행하기 위한 동작을 나타내는 쿼리 플랜(query plan)을, 플랜 생성기(plan generator)로부터 수신하고; 및 쿼리 플랜으로부터, 쿼리 플랜에 의해 표현된 하나 이상의 동작을 나타내는 하나 이상의 노드(node)와, 쿼리 플랜과 관련된 하나 이상의 데이터플로우를 나타내는 하나 이상의 링크(link)를 포함하는 데이터플로우 그래프를 생성하도록 구성된다.
하나의 관점으로서, 일반적으로, 데이터 관리 시스템(data management system)이 사용하기 위한 데이터베이스 쿼리(database query)를 제공하는 시스템은, 데이터 요소(data element)를 포함하는 데이터 소스(data source)에 관한 정보를 기억하기 위한 수단; 및 데이터베이스 쿼리를 처리하기 위한 수단을 포함하며, 상기 처리는, 데이터베이스 쿼리를 수신하는 과정; 데이터 소스를 나타내는 포맷화된 데이터 편성(formatted data organization)을 포함하고 데이터 소스의 데이터 요소를 포함하지 않는, 데이터 소스의 구조적 표현을 생성하는 과정; 및 구조적 표현과 데이터베이스 쿼리를, 데이터 소스에서 데이터베이스 쿼리를 실행하기 위한 동작을 나타내는 쿼리 플랜(query plan)을 생성할 수 있는 플랜 생성기(plan generator)에 제공하는 과정을 포함한다.
하나의 관점으로서, 일반적으로, 데이터베이스 쿼리를 나타내는 데이터플로우 그래프를 생성하는 시스템은, 쿼리 플랜을 처리하기 위한 수단을 포함하며, 상기 처리는, 데이터 소스에서 데이터베이스 쿼리를 실행하기 위한 동작을 나타내는 쿼리 플랜(query plan)을, 플랜 생성기(plan generator)로부터 수신하는 과정; 및 쿼리 플랜으로부터, 쿼리 플랜에 의해 표현된 하나 이상의 동작을 나타내는 하나 이상의 노드(node)와, 쿼리 플랜과 관련된 하나 이상의 데이터플로우를 나타내는 하나 이상의 링크(link)를 포함하는 데이터플로우 그래프를 생성하는 과정을 포함한다.
하나의 관점으로서, 일반적으로, 데이터 관리 시스템(data management system)이 사용하기 위한 데이터베이스 쿼리(database query)를 제공하기 위한 컴퓨터 프로그램을 기억하는 컴퓨터로 판독가능한 매체로서, 상기 컴퓨터 프로그램은, 컴퓨터로 하여금, 데이터베이스 쿼리를 수신하도록 하고; 데이터 요소(data element)를 포함하는 데이터 소스(data source)에 관한 정보를 데이터 기억부(data storage)로부터 수신하도록 하며; 데이터 소스를 나타내는 포맷화된 데이터 편성(formatted data organization)을 포함하고 데이터 소스의 데이터 요소를 포함하지 않는, 데이터 소스의 구조적 표현을 생성하도록 하며; 구조적 표현과 데이터베이스 쿼리를, 데이터 소스에서 데이터베이스 쿼리를 실행하기 위한 동작을 나타내는 쿼리 플랜(query plan)을 생성할 수 있는 플랜 생성기(plan generator)에 제공하도록 하는 명령어를 포함한다.
하나의 관점으로서, 일반적으로, 데이터베이스 쿼리를 나타내는 데이터플로우 그래프를 생성하기 위한 컴퓨터 프로그램을 기억하는 컴퓨터로 판독가능한 매체로서, 상기 컴퓨터 프로그램은, 컴퓨터로 하여금, 데이터 소스에서 데이터베이스 쿼리를 실행하기 위한 동작을 나타내는 쿼리 플랜(query plan)을, 플랜 생성기(plan generator)로부터 수신하도록 하고; 쿼리 플랜으로부터, 쿼리 플랜에 의해 표현된 하나 이상의 동작을 나타내는 하나 이상의 노드(node)와, 쿼리 플랜과 관련된 하나 이상의 데이터플로우를 나타내는 하나 이상의 링크(link)를 포함하는 데이터플로우 그래프를 생성하도록 하는 명령어를 포함한다.
도 1은 데이터플로우 그래프의 블록도이다.
도 2는 데이터베이스 쿼리 및 데이터플로우 그래프를 나타낸다.
도 3은 데이터베이스 시스템 및 관련 구성성분을 개략적으로 나타낸다.
도 4는 데이터플로우 그래프의 실행을 나타낸다.
도 5는 데이터베이스 테이블과 데이터베이스 테이블의 구조적 표현이다.
도 6은 실행 함수를 각각 포함하는 데이터베이스 쿼리 및 데이터플로우 그래프를 나타낸다.
도 7 및 도 8은 데이터베이스 시스템의 동작에 대한 플로차트이다.
1. 데이터베이스, 쿼리, 및 그래프
데이터베이스 관리 시스템은 하나 이상의 데이터 소스에 기억된 데이터를 취급한다. 이러한 데이터 소스는 행과 열 등의 데이터 구조로 구성되는 데이터의 집합이 될 수 있는 데이터베이스 테이블 등의 하나 이상의 형태를 가질 수 있다. 그중 하나의 구성으로서, 각각의 행은 데이터의 레코드를 나타내고, 각각의 열은 각 행 내의 필드를 나타낸다.
데이터베이스 내에 포함된 정보는 데이터베이스 쿼리(database query)를 사용하여 액세스 및 처리(예를 들어, 수정)될 수 있다. 데이터베이스 쿼리는 데이터베이스 콘텐츠의 서브세트과 해당 서브세트 내의 데이터가 취해야 할 동작을 설명하는 명령어의 집합이다. 예를 들어, 일부 데이터베이스 시스템은 구조화 쿼리 언어(SQL: Structured Query Language) 등의 전용의 데이터베이스 쿼리 언어로 작성된 데이터베이스 쿼리를 실행한다. 이러한 데이터베이스 시스템에서, SQL 쿼리는 데이터베이스의 콘텐츠를 조작하기 위한 기본적인 도구이다.
일례로, 데이터베이스 쿼리 등의 계산은 그래픽 표현(graphical representation) 내의 데이터베이스 관리 시스템과 관련되어 있다. 예를 들어, 데이터는 데이터플로우(dataflow)라고 부르는 동작의 집합을 거치는 것으로 표현될 수 있다. 하나의 구성으로서, 데이터플로우는 지향 그래프(directed graph)에 의해 제공될 수 있는데, 이 지향 그래프에서는, 계산의 성분이 그래프의 정점(vertex) 및 그래프의 링크(아크, 에지)에 대응하는 성분들 사이의 데이터플로우와 관련되어 있다. 그래프는 모듈식의 엔티티(modular entity)이며, 다른 모듈러 그래프에 접속되거나 이에 조합될 수 있다. 그래프는 하나 이상의 다른 그래프로 이루어질 수 있으며, 특정의 그래프는 더 큰 그래프 내의 성분이 될 수 있다. 그래픽 개발 환경(GDE: graphical development environment)은 실행 그래프를 특정하고 그래프 성분의 파라미터를 정의하기 위한 사용자 인터페이스를 제공한다. 이러한 그래프 기반의 계산을 구현하는 시스템이 "EXECUTING-COMPUTATIONS EXPRESSED AS GRAPHS"란 명칭의 미국특허 5,966,072호에 개시되어 있으며, 그 전체 내용을 본원에 참조에 의해 원용한다.
도 1을 참조하면, 예를 들어, 데이터플로우 그래프(101)는 데이터플로우 그래프(101)의 실행 성분(104a-104j)에 의해 처리할 데이터의 집합을 제공하는 입력 성분(102)을 포함한다. 일례로, 입력 성분(102)은 데이터 시스템과 관련된 데이터 레코드(data record) 또는 트랜잭션 처리 시스템과 관련된 트랜잭션(transaction)을 포함할 수 있는 데이터 소스이다. 데이터 레코드는 데이터베이스 테이블 등의 여러 형태로 기억될 수 있다. 실행 성분(104a-104j)은 전체 데이터플로우 그래프(101)에 의해 정해지는 해당 계산 부분과 관련된다. 작업 요소(예를 들어, 데이터 집합 또는 데이터 테이블 중의 각각의 데이터 레코드)를 성분의 하나 이상의 입력 포트에 입력하고, 성분의 하나 이상의 출력 포트로부터 작업 요소(예를 들어, 입력 작업 요소, 또는 입력 작업 요소의 처리가 완료된 버전)를 출력한다. 데이터플로우 그래프(101)에서, 성분(104e, 104g, 104j)으로부터 출력되는 작업 요소는 출력 데이터 성분(102a-102c)에 기억된다.
일부 그래프 기반의 데이터베이스 시스템은 데이터베이스 쿼리를 처리하는 데에 사용된다. 예를 들어, 데이터베이스 쿼리를 하나 이상의 데이터베이스 테이블에 사용해서, 데이터플로우 내의 처리를 위한 데이터베이스 테이블 콘텐츠의 식별된 서브세트를 추출할 수 있다. 일례로, 그래프 기반의 데이터베이스 시스템은 데이터베이스 쿼리를 데이터플로우 그래프의 형태로 수용 및 실행한다. 다른 데이터베이스 시스템은 다른 유형의 데이터베이스 쿼리를 사용할 수 있다.
일례로, 하나 이상의 데이터베이스 테이블을 SQL을 사용하는 데이터베이스 시스템으로부터 그래프 기반의 데이터베이스 시스템으로 이동시킨다. SQL을 사용하는 데이터베이스 시스템은 그래프 기반의 데이터베이스 시스템과 호환되지 않는 이미 작성된 많은 SQL 쿼리를 가지고 있을 수 있다. 일례로, SQL 쿼리는 그래프 기반의 데이터베이스 시스템과 호환가능한 데이터베이스 쿼리로 변환될 수 있다.
도 2는 SQL로 작성된 데이터베이스 쿼리(200)의 예를 나타낸다. 이 데이터베이스 쿼리(200)는 그래프 기반의 데이터베이스 관리 시스템에 의해 관리되는 데이터베이스 테이블(202, 204)을 동작시키기 위한 것이다. 그래프 기반의 데이터베이스 관리 시스템은 데이터베이스 테이블(202, 204) 내의 데이터를 인식할 수 있는데, 데이터베이스 테이블이 그래프 기반의 데이터베이스 관리 시스템 고유의 포맷이기 때문이다. 데이터베이스 테이블(202, 204)은 다른 데이터베이스 테이블로부터 취득된 데이터를 포함할 수 있으며, 예를 들어 데이터베이스 테이블은 SQL 쿼리를 인식하고 데이터플로우 그래프를 사용하지 않는 데이터베이스 시스템으로부터 생긴 것이다.
그러나, 그래프 기반의 데이터베이스 관리 시스템은 SQL 쿼리를 처리하기 위한 내장 기능을 갖기 않기 때문에, 그래프 기반의 데이터베이스 쿼리를 작성해서 SQL 데이터베이스 쿼리(200)를 모방(emulate)한다. 그래프 기반의 데이터베이스 쿼리는 그래프 기반의 데이터베이스 시스템에 의해 인식될 수 있다. 예를 들어, 데이터베이스 쿼리(200)는 SQL 쿼리로부터 데이터플로우 그래프(208)로 변환(206)될 수 있다. 데이터플로우 그래프(208)는 이들을 입력으로서 수용함으로써 데이터베이스 테이블(202, 204)에 대해 동작하고, 데이터베이스 쿼리(200)의 실행 결과를 출력으로서 제공한다.
2. 쿼리 플랜
일부 데이터베이스 시스템은 쿼리 플랜(query plan)("설명 플랜"이라고도 함)에 기초하여 SQL 쿼리 등의 데이터베이스 쿼리를 실행한다. 쿼리 플랜은 데이터베이스 쿼리가 실행되는 경우에 수행될 수 있는 데이터베이스 동작의 설명이다. 쿼리 플랜은 동작 또는 다른 일련의 동작의 다른 배열이 동일한 결과를 달성하는 경우에도, 데이터베이스 동작의 한가지 가능한 배열을 설명할 수 있다.
이러한 쿼리 플랜을 제공하기 위해, 데이터베이스 시스템은 쿼리 플랜 생성기["쿼리 플래너"(query planner)라고도 함]를 포함할 수 있다. 예를 들어, 쿼리 플랜 생성기는 데이터베이스 쿼리가 실행되는 경우에 쿼리 플랜을 생성할 수 있거나, 쿼리 플랜 생성기는 쿼리를 실행하는 것과 관련된 어떠한 결정이 이루어지기 전에 쿼리 플랜을 생성할 수 있다.
일례로, 데이터베이스 동작은 동등한 출력을 제공하면서 여러 지시로 실행될 수 있다. 이와 같이, 쿼리 플랜 생성기는 최적의 쿼리 플랜을 판정하는 기능을 가질 수 있다. 예를 들어, 최적의 쿼리 플랜은 최소 시간 내에 데이터베이스 쿼리를 실행하는, 데이터 기억 공간 등의 최소량의 데이터베이스 리소스를 사용하는, 또는 데이터베이스 시스템에 의해 식별된 제한 내에서 데이터베이스 쿼리를 달성하기 위한 데이터베이스 동작의 배열을 설명하는 쿼리 플랜이 될 수 있다. 쿼리 플랜 생성기의 최적 쿼리 플랜을 판정하기 위한 기능은 많은 가능한 쿼리 플랜을 등급화하는 기능을 포함할 수 있으며, 가능한 쿼리 플랜을 최적의 또는 효과적인 구성으로 재배치하는 기능도 포함할 수 있다.
단일의 데이터베이스 쿼리는 여러 번 실행될 수 있으며, 각각의 실행은 고유의 최적 쿼리 플랜을 가질 수 있다. 예를 들어, 데이터베이스 테이블 내의 데이터는 데이터베이스 쿼리의 2개의 실행 사이에서 변경될 수 있다. 이 예에서, 데이터베이스 쿼리의 제1 실행에 대해 생성된 쿼리 플랜 내에 설명된 동작은 제1 실행 동안보다 데이터베이스 쿼리의 제2 실행 동안에 더 적은 또는 더 많은 실행 시간을 필요로 할 수 있다. 이 경우, 상이한 동작 배치가 데이터베이스 쿼리의 제2 실행, 예를 들어, 동일한 동작의 상이한 배열, 또는 상이한 동작의 배열에 더 적합할 수 있다. 데이터베이스 쿼리의 제2 실행에 대해 최적화된 쿼리 플랜은 데이터베이스 테이블의 순간 상태를 고려하여 해당 실행을 위해 생성될 수 있다.
3. 시스템 개요
쿼리 플랜 생성기는 SQL 쿼리 등의 다른 종류의 데이터베이스 쿼리를 모방하는 그래프 기반의 데이터베이스 쿼리를 생성하는 데에 사용될 수 있다. 도 3은 데이터베이스 관리 컴퓨터 시스템(304)에서의 실행을 위한 데이터베이스 쿼리(302)를 제공하기 위한 데이터베이스 쿼리 관리 시스템(300)을 나타낸다. 데이터베이스 관리 컴퓨터 시스템(304)은 데이터플로우 그래프로서 구현된 데이터베이스 동작을 취급하는 그래프 실행 엔진(graph execution engine)(306)을 포함한다. 데이터베이스 쿼리 관리 시스템(300)은 데이터플로우 그래프에 의해 실행될 동작의 설명으로부터 데이터플로우 그래프(312)를 구축할 수 있는 그래프 생성 엔진(graph generation engine)(310)을 갖는 그래프 생성 컴퓨터 시스템(308)을 포함한다. 예를 들어, 동작의 설명은 쿼리 플랜(314)이 될 수 있다.
데이터베이스 쿼리 관리 시스템(300)은 쿼리 플랜 생성기(318)를 실행하는 쿼리 플랜 컴퓨터 시스템(316)을 포함한다. 쿼리 플랜 생성기(318)는 데이터베이스 쿼리로부터 쿼리 플랜을 생성하는 임의의 쿼리 플랜 생성기가 될 수 있으며, 데이터플로우 그래프 또는 그래프 생성과 관련된 임의의 기능을 갖도록 설계될 필요는 없다. 또한, 데이터베이스 쿼리 관리 시스템(300)은 데이터 기억 장치(예를 들어, 하드 드라이브, 광 디스크 등) 내에 데이터베이스(322)를 가지며, 하나 이상의 데이터베이스 테이블(324a, 324b, 324c)을 포함하는 데이터베이스 컴퓨터 시스템(320)을 포함한다.
데이터베이스 관리 컴퓨터 시스템(304), 그래프 생성 컴퓨터 시스템(308), 쿼리 플랜 컴퓨터 시스템(316) 및 데이터베이스 컴퓨터 시스템(320)에 대한 별개의 컴퓨터 시스템이 도시되어 있지만, 이들 컴퓨터 시스템의 둘 이상이 동일한 컴퓨터 시스템 또는 동일한 컴퓨터 시스템의 구성요소가 될 수 있다. 이들 컴퓨터 시스템은 모두 이들 각각의 실행가능한 성분을 실행하기 위한 하나 이상의 프로세서 및 하나 이상의 데이터 기억 시스템을 갖는다. 컴퓨터 시스템은 근거리 통신망(LAN), 광대역 통신망(WAN), 인터넷 등의 통신망 등의 컴퓨터 네트워크 또는 다른 종류의 컴퓨터 네트워크를 사용하여 서로 접속될 수 있다.
하나 이상의 데이터베이스 쿼리(302)로부터 데이터플로우 그래프(312)의 생성을 나타내기 위해, 데이터베이스 쿼리 및 데이터베이스 테이블(326)이 데이터플로우 그래프의 실행 이전에 그래프 생성 컴퓨터 시스템(308)에 의해 수신 및 처리된다. 그래프 생성 컴퓨터 시스템(308)은 데이터베이스 컴퓨터 시스템(320)으로부터 데이터베이스 테이블(326)을 수신한다.
데이터베이스 테이블(326)은 임의의 여러 형태를 가질 수 있다. 예를 들어, 데이터베이스 테이블(326)은 상관적인 데이터베이스 테이블, 부분적인 데이터베이스 테이블, 플랫 파일, 또는 다른 종류의 데이터 파일이나 데이터 파일의 집합이 될 수 있다. 일례로, 데이터베이스 테이블(326)은 데이터베이스 테이블에 관한 메타데이터 또는 데이터베이스 테이블의 설명 등의 데이터베이스 테이블에 관한 정보의 형태로 수신될 수 있다.
일례로, 데이터베이스 테이블(326)은 데이터베이스 컴퓨터 시스템(320)과 관련된 또는 그래프 생성 컴퓨터 시스템(308)에 다른 방식으로 액세스 가능한 데이터 레지스트리(data registry)에 의해 식별될 수 있다. 데이터 레지스트리는 데이터베이스 테이블(326)과 관련된 데이터 파일 로케이션, 데이터베이스 테이블과 관련된 주요 키 및 인덱스 정보를 포함할 수 있는 룩업 파일 카탈로그의 형태가 될 수 있다. 데이터 레지스트리는 여러 종류의 데이터베이스 테이블을 위한 데이터 포맷에 관한 정보를 제공할 수 있다. 또한, 데이터 레지스트리는 데이터베이스 데이터플로우 그래프(312)가 테이블을 액세스할 수 있는 방법에 관한 정보도 제공할 수 있다.
그래프 생성 컴퓨터 시스템(308)은 데이터베이스 테이블(326)에 적용될 데이터베이스 쿼리(302)를 수신한다. 예를 들어, 데이터베이스 쿼리는 SQL 쿼리가 될 수 있다. 데이터베이스 쿼리(302)는 임의의 개수의 가능한 소스로부터 수신될 수 있다. 예를 들어, 데이터베이스 쿼리(302)는 사용자(330)가 데이터베이스 쿼리를 입력한 사용자 인터페이스(328)로부터 수신될 수 있다. 일례로, 데이터베이스 쿼리(302)는 데이터 기억 장치로부터 수신되거나, 인터넷 등의 컴퓨터 네트워크로부터 수신되거나, 또는 다른 이전에 수신한 데이터베이스 쿼리에 기초하여 생성된다.
일례로, 그래프 생성 컴퓨터 시스템(308)은 데이터베이스 테이블(326)에 관한 정보로부터 생성된, 쿼리 플랜 컴퓨터 시스템(316)에 대한 데이터베이스 테이블(326)의 버전을 제공한다[화살표(332)로 나타냄]. 예를 들어, 쿼리 플랜 컴퓨터 시스템(316)에 제공된 데이터베이스 테이블(326)의 버전은 데이터베이스 테이블보다 더 작은 크기인 데이터베이스 테이블의 구조적 표현(334)이 될 수 있기 때문에, 더 적은 수의 계산 리소스를 처리하도록 요구하게 된다. 데이터베이스 테이블(326)의 구조적 표현(334)은 데이터베이스 테이블에 관한 정보를 포함할 수 있지만, 데이터베이스 테이블의 일부 또는 모든 데이터를 포함하지 않을 수 있다. 예를 들어, 데이터베이스 테이블(326)의 구조적 표현(334)은 데이터베이스 테이블의 열, 행 또는 필드 등의, 데이터베이스 테이블의 포맷을 반영하는 포맷을 포함할 수 있다. 데이터베이스 테이블(326)의 구조적 표현(334)은 데이터베이스 테이블 내의 요소의 데이터 기억부 크기, 또는 데이터베이스 테이블 내의 요소의 데이터 타입 등과 같은 데이터에 관한 정보를 포함할 수 있다.
그래프 생성 컴퓨터 시스템은 데이터베이스 테이블(326)의 구조적 표현(334) 및 데이터베이스 쿼리(302)를 쿼리 플랜 컴퓨터 시스템(316)에 제공한다[화살표(332)로 나타냄]. 쿼리 플랜 컴퓨터 시스템(316)은 데이터베이스 테이블(326)에서 데이터베이스 쿼리(302)를 실생하기 위해 최적화된 쿼리 플랜을 생성하는 쿼리 플랜 생성기(318)를 실행한다. 데이터베이스 테이블(326)의 구조적 표현(334)은 데이터베이스 테이블(326) 자체에 의해 제공되는 것과 같이 쿼리 플랜 생성기(318)에 의해 사용되는 동일 정보, 예를 들어 데이터 크기, 데이터 타입 및 데이터베이스 테이블 내에 포함된 데이터에 관한 다른 정보를 제공한다. 일례로, 데이터베이스 테이블(326)의 구조적 표현(334)은 데이터 조사 및 검색을 최적화하기 위해 사용되는 데이터 요소의 인덱스를 포함한다. 쿼리 플랜 생성기(318)는 색인된 데이터베이스 테이블(326)로부터 데이터 요소를 식별 및 검색하는 속도를 계산하기 위해 인덱스를 사용할 수 있다.
그래프 생성 컴퓨터 시스템(308)은 쿼리 플랜 컴퓨터 시스템(316)으로부터 쿼리 플랜(314)을 수신한다. 쿼리 플랜(314)은 데이터베이스 테이블(326)에서 데이터베이스 쿼리(302)를 실행하기 위해 사용될 수 있는 데이터베이스 동작의 배열을 설명한다. 예를 들어, 쿼리 플랜(314) 내의 동작은 데이터플로우 그래프(312)의 노드에 대응할 수 있다. 쿼리 플랜(314)은 쿼리 플랜 내의 동작에 의해 사용되는 데이터 타입에 관한 정보를 포함할 수 있다. 예를 들어, 쿼리 플랜 내의 동작은 파라미터를 가질 수 있으며, 파라미터의 데이터 타입은 쿼리 플랜 내에 기재되어 있을 수 있다.
쿼리 플랜(314)은, 생성되면, 그래프 생성 엔진(310)에 의해 데이터플로우 그래프(312) 생성을 위한 그래프 생성 컴퓨터 시스템(308)에 제공된다. 그래프 생성 엔진(310)은 쿼리 플랜(314)에 대응하는 데이터플로우 그래프(312)를 출력한다. 일례로, 데이터플로우 그래프(312)는 쿼리 플랜 내에 기재된 동작을 나타내는 노드와 동작들 간의 데이터의 흐름을 나타내는 노드 링크를 갖는다. 데이터플로우 그래프(312)는 실행을 위한 데이터베이스 쿼리를 제공하는 경우마다 생성될 수 있기 때문에, 그래프 생성 엔진(310)은 데이터베이스 쿼리를 실행하기 위해 실시간 요청에 충분히 신속하게 응답하도록 데이터플로우 그래프를 생성할 수 있다. 일례로, 그래프 생성 엔진(310)은 1초 이내에 쿼리 플랜으로부터 데이터플로우 그래프를 생성할 수 있다.
그래프 생성 컴퓨터 시스템(308)은 그래프 생성 엔진(316)에 의해 생성된 데이터플로우 그래프(312)를 데이터베이스 관리 컴퓨터 시스템(304)에 제공한다[화살표(336)로 나타냄]. 일례로, 그래프 생성 컴퓨터 시스템(308)은 데이터베이스 관리 컴퓨터 시스템이 사용하기 위한 데이터베이스 테이블(326)을 준비하고, 준비한 데이터베이스 테이블(338)을 제공한다. 예를 들어, 그래프 생성 컴퓨터 시스템(308)은 그래프 생성 컴퓨터 시스템(308)에 의해 사용되는 포맷으로부터 데이터베이스 관리 컴퓨터 시스템(304)에 의해 사용되는 포맷으로 데이터베이스 테이블을 변환할 수 있다.
데이터베이스 관리 컴퓨터 시스템(304)에 제공되면, 데이터플로우 그래프(312)가 실행을 위해 준비된다. 도 4에 나타낸 바와 같이, 데이터베이스 관리 컴퓨터 시스템(304)은 데이터플로우 그래프(312)의 동작을 실행하고, 데이터베이스 쿼리의 결과(402)를 생성하기 위해 데이터베이스 테이블(326)을 사용할 수 있다. 데이터베이스 관리 컴퓨터 시스템(304)은 데이터베이스 테이블(326)을 데이터플로우 그래프(312)의 하나 이상의 노드(404a, 404b, 404c)에 제공하고, 그래프 실행 엔진(306)을 사용하여 데이터플로우 그래프를 실행한다. 그래프 실행 엔진(306)은 기본이 되는 데이터베이스 쿼리를 실행하기 위한 데이터베이스 동작에 대응하는, 데이터플로우 그래프(312)의 노드(404a, 404b, 404c)에 의해 표현된 동작을 수행한다. 또한, 노드 사이의 링크(408a, 408b, 408c)는 데이터베이스 테이블이 처리됨에 따라 데이터베이스 동작들 사이에서의 데이터의 흐름을 나타낸다. 데이터플로우 그래프(312)는 데이터베이스 쿼리의 결과(402)를 출력한다.
4. 구조적 표현
도 5는 데이터베이스 테이블(500)의 예와 데이터베이스 테이블의 구조적 표현(502)[데이터베이스 테이블로부터 어떠한 데이터도 포함하지 않음]의 예를 나타낸다. 데이터베이스 테이블(500)의 열(504a-504i)은 유사한 또는 상이한 타입의 데이터를 포함할 수 있다. 데이터베이스 테이블(500)의 행(508a-508e)은 각 열에 대응하는 필드를 포함한다. 행의 각각의 필드는 대응하는 열의 데이터 타입(예를 들어, 문자열, 정수, 부동 소수점 등)의 데이터 요소(510a, 510b, 510c)를 포함한다. 또한, 행(508a-508e)은 고유의 데이터 기억부 크기(51a-512e)를 갖는다. 예를 들어, 데이터 기억부 크기(51a-512e)는 행의 데이터 요소에 의해 사용되는 기억 공간의 양이 될 수 있는데, 이러한 행이 메모리 등의 데이터 기억부 내에 위치하는 경우에 그렇다.
데이터베이스 테이블(500)의 구조적 표현(502)[도 3에 나타낸 바와 같이 그래프 생성 컴퓨터 시스템(308)에 의해 생성됨]은 데이터베이스 테이블과 동일한 열(514a-514i)을 가지며, 데이터 타입을 원래의 열(504a-504i)과 동일하다. 데이터베이스 테이블(500)의 구조적 표현(502)은 데이터베이스 테이블의 행(508a-508e)에 대응하는 행(518a-518e)을 갖는다. 그러나, 행(518a-518e)은 데이터베이스 테이블(500)의 데이터 요소(510a 510b, 510c)를 포함하지 않는다. 행(518a-518e)은 데이터 기억부 크기 값(520a-520e)과 관련되어 있다. 데이터베이스 테이블(500) 내의 행의 데이터 기억부 크기(512a-512e)는 데이터 요소(510a, 510b, 510c)의 데이터 기억부 크기로부터 계산될 수 있지만, 행(518a-518e)의 데이터 기억부 크기 값(520a-520e)은 데이터베이스 테이블의 구조적 표현(502) 내의 각각의 행과 나란하게 기억된 데이터 요소가 될 수 있다. 데이터베이스 테이블(500)의 구조적 표현(502)의 전체적인 데이터 기억부 크기는 데이터베이스 테이블의 전체적인 데이터 기억부 크기의 적은 부분이 될 수 있는데, 이는 데이터베이스 테이블의 구조적 표현의 필드(522a, 522b, 522c)가 데이터베이스 테이블의 필드로부터 데이터 요소(510a, 510b, 510c)가 없기 때문이다. 일례로, 데이터베이스 테이블(500)의 구조적 표현(502)은 데이터베이스 테이블로부터 일부의 데이터 요소를 유지할 수 있는데, 예를 들면 데이터베이스 테이블의 구조적 표현이 데이터베이스 테이블의 구조, 구성 또는 포맷에서 사용되는 키 값(524, 526)에 대응하는 데이터 요소 등의 데이터 요소를 유지할 수 있기 때문이다. 일례로, 데이터베이스 테이블(500)의 구조적 표현(502)은 데이터 검색에 사용되는 정보를 제공하는 인덱스 또는 다른 데이터 구조를 포함할 수 있다. 일례로, 데이터베이스 테이블(500)의 구조적 표현(502)은 데이터베이스 테이블 내에 포함된 데이터에 관한 다른 통계치를 포함할 수 있다.
5. 함수 호출
도 6에 나타낸 바와 같이, 커스톰 그래프 함수(custom graph function)(602)는 데이터베이스 쿼리(604) 내에 내장될 수 있다. 예를 들어, 커스톰 그래프 함수(602)는 데이터플로우 그래프의 실행 동안 데이터플로우 그래프(606)가 실행할 수 있는 동작을 나타낸다. 커스톰 그래프 함수(602)는 데이터베이스 쿼리(604)의 콘텍스트 내의 어떠한 기능도 갖지 않을 수 있으며, 생성된 데이터플로우 그래프(606)로 전달될 데이터베이스 쿼리 내에 위치된다. 예를 들어, 커스톰 그래프 함수(602)는 데이터플로우 그래프로 변환하기 위한 그러나 기존의 데이터베이스 쿼리의 교체 또는 증분 부분을 제공하기 위해 데이터베이스 쿼리(604)에 추가될 수 있다. 또한, 쿼리 플랜 생성기는 커스톰 그래프 함수(602)의 기능에 관한 정보를 갖지 않을 수 있다. 커스톰 그래프 함수(602)는 데이터베이스 쿼리(604)의 언어 내의 등가의 함수를 갖지 않는 함수가 될 수 있다. 일례로, 쿼리 플랜 생성기는 커스톰 그래프 함수(602)에 대한 입력 데이터 타입 또는 출력 데이터 타입을 알 수 있다. 데이터플로우 그래프(606)가 생성되면(608), 커스톰 그래프 함수(602)는 데이터플로우 그래프의 노드(610)로서 작용할 수 있다.
일례로, 커스톰 그래프 함수(602)는 전용 또는 커스터마이즈 포맷의 데이터를 액세스하기 위해 사용되는 함수, 정규의 표현 또는 패턴 매칭 표현을 실행하기 위해 사용되는 함수, 또는 사용자, 예를 들어 데이터베이스 관리 컴퓨터 시스템의 사용자에 의해 구현되는 함수가 될 수 있다.
6. 동작 흐름
도 7은 그래프 생성 컴퓨터 시스템(308)의 동작(도 3 참조)의 예를 나타내는 플로차트(700)이다. 단계 702에서, 그래프 생성 컴퓨터 시스템은, 예를 들어 사용자 인터페이스 또는 데이터 기억부로부터 데이터베이스 쿼리를 수신한다. 단계 704에서, 그래프 생성 컴퓨터 시스템은 데이터베이스 시스템의 데이터베이스로부터 데이터베이스 테이블에 관한 정보를 수신한다. 예를 들어, 그래프 생성 컴퓨터 시스템은 데이터 기억부로부터 데이터베이스 테이블 자체를 수신하거나, 데이터베이스 테이블에 관한 메타데이터를 수신하거나, 사용자 인터페이스에서 사용자에 의해 입력되는 데이터베이스 테이블에 관한 정보를 수신할 수 있다. 단계 706에서, 그래프 생성 컴퓨터 시스템은 데이터베이스 테이블을 반영하지만 데이터베이스 테이블의 데이터가 없는 포맷화된 데이터 편성을 포함하는 데이터베이스 테이블의 구조적 표현을 생성한다. 단계 708에서, 그래프 생성 컴퓨터 시스템은 데이터베이스 테이블의 구조적 표현과 데이터베이스 쿼리를 쿼리 플랜 컴퓨터 시스템에 제공해서 쿼리 플랜 생성기에 의해 사용되도록 한다. 단계 710에서, 그래프 생성 컴퓨터 시스템은 쿼리 플랜 생성기에 의해 생성된 쿼리 플랜을 쿼리 플랜 컴퓨터 시스템으로부터 수신한다. 단계 712에서, 그래프 생성 컴퓨터 시스템은 쿼리 플랜 내에 기술된 동작에 기초하여 쿼리 플랜으로부터 데이터플로우 그래프를 생성하기 위해 그래프 생성 엔진을 사용한다. 단계 714에서, 그래프 생성 컴퓨터 시스템은 데이터플로우 그래프를 제공하여 실행(예를 들어, 데이터베이스 관리 시스템의 그래프 실행 엔진에 의해)되도록 한다.
도 8은 그래프 생성 컴퓨터 시스템(308)의 동작(도 3 참조)의 예를 나타내는 플로차트(800)이다. 단계 802에서, 그래프 생성 컴퓨터 시스템은 데이터베이스 테이블에 관한 정보, 데이터 기억부 또는 사용자 인터페이스로부터 미리 수신된 데이터베이스 테이블, 또는 데이터베이스 테이블을 기술하는 메타데이터를 수신할 수 있다. 단계 804에서, 그래프 생성 컴퓨터 시스템은 수신한 데이터베이스 테이블의 동일 열 및 행 포맷을 갖는 새로운 데이터베이스 테이블을 생성한다. 단계 806에서, 그래프 생성 컴퓨터 시스템은 데이터베이스 테이블이 열로부터 데이터 타입을 실행함으로써, 수신한 데이터베이스 테이블과 관련된 데이터 타입을 식별한다. 단계 808에서, 그래프 생성 컴퓨터 시스템은 새로운 데이터베이스 테이블의 열에 동일한 데이터 타입을 할당한다. 단계 810에서, 그래프 생성 컴퓨터 시스템은 수신한 데이터베이스 테이블의 행의 데이터 요소의 데이터 기억부 크기 등과 같은, 수신한 데이터베이스 테이블에 관한 데이터 통계치를 계산한다. 단계 812에서, 그래프 생성 컴퓨터 시스템은 수신한 데이터베이스 테이블의 구조적 표현으로 기능하는, 새로운 데이터베이스 테이블에, 계산된 데이터 통계치를 할당한다.
상기 설명한 데이터베이스 쿼리 관리 방법은 소프트웨어를 이용하여 컴퓨터에서 실행하여 구현될 수 있다. 예를 들어, 소프트웨어는 하나 이상의 프로그램 또는 프로그램 가능한 컴퓨터 시스템에서 실행되는 하나 이상의 컴퓨터 프로그램의 절차를 형성한다. 이러한 컴퓨터 시스템(분산형, 클라이언트/서버형, 또는 그리드형의 다양한 구조가 가능함)은 하나 이상의 프로세서, 하나 이상의 데이터 기억 시스템(휘발성 및 불휘발성 메모리 및/또는 기억 요소), 하나 이상의 입력 장치 또는 포트, 하나 이상의 출력 장치 또는 포트를 포함한다. 소프트웨어는 프로그램 중의 하나 이상의 모듈을 형성할 수 있으며, 계산 그래프의 구성 및 설계에 관련된 다른 서비스를 제공할 수 있다. 그래프의 노드 및 요소는 데이터 판독가능 매체에 기억된 데이터 구조 또는 데이터 레포지토리 내에 기억된 데이터 모델에 부합되는 다른 데이터 구조로서 구현될 수 있다.
소프트웨어는 범용 또는 전용 프로그램가능한 컴퓨터에 의해 판독가능한 CD-ROM 등의 기억 매체에 제공되거나 네트워크의 통신 매체를 통해(전파 신호로 부호화된 상태로) 컴퓨터에 제공될 수 있다. 모든 기능은 전용의 컴퓨터에서 수행되거나, 코프로세서 등의 전용 하드웨어를 사용하여 수행될 수 있다. 소프트웨어는 소프트웨어에 의해 특정된 계산의 여러 부분이 여러 컴퓨터에 의해 수행되는 분산형으로 구현될 수 있다. 이러한 컴퓨터 프로그램은 범용 또는 전용의 프로그램가능한 컴퓨터에 의해 판독가능한 기억 매체 또는 기억 장치(예를 들어, 고체 메모리 또는 매체, 또는 자기나 광 매체)에 기억되거나 이에 다운로드되는 것이 바람직하며, 본원에 개시된 과정을 수행하기 위해 컴퓨터 시스템에 의해 기억 매체 또는 장치가 판독될 때에 컴퓨터를 구성 및 동작시킨다. 본 발명의 시스템은 컴퓨터 프로그램에 의해 구성된, 컴퓨터로 판독가능한 기억 매체로서 구현되는 것으로 간주될 수 있으며, 기억 매체는 본원에 개시된 기능을 수행하도록 특정 및 미리 정해진 방식으로 컴퓨터 시스템을 동작시키도록 구성된다.
본 발명의 여러 실시예를 개시하였지만, 본 발명의 범위를 벗어남이 없이 다양한 많은 변형이 가능하다는 것을 알 수 있을 것이다. 예를 들어, 상기 설명한 단계 중의 일부는 순서에 의존하지 않으며, 개시된 것과 다른 순서로 수행될 수 있다.
상기 설명은 예시에 불과하며 본 발명의 범위를 제한하기 위한 것이 아니고, 청구범위에 의해서 정의된다는 것을 알 수 있을 것이다. 예를 들어, 상기 설명한 많은 기능 단계는 전체적인 처리에 실질적으로 영향을 주지 않으면서 다른 순서로 수행될 수 있다. 다른 실시예도 청구범위의 기술적 범위 내에 포함된다.

Claims (51)

  1. 쿼리를 실행하기 위한 컴퓨터-구현 방법으로서,
    상관적인 데이터베이스에 적용가능한 쿼리 언어에 따라 표현되는 쿼리에 대응하는 쿼리 플랜을 수신하는 단계 - 상기 쿼리 플랜은 상관적인 데이터베이스를 관리하는 시스템에 의해 수행되는 하나 이상의 단계의 기술을 포함함 ―;
    실행되는 적어도 하나의 동작을 나타내면서 상기 쿼리 플랜에 의해 기술된 단계에 기초하여 선택된 적어도 하나의 동작을 수행하도록 실행가능한 프로그램 코드를 호출하기 위해 실행 시스템에 의해 사용되는 정보와 연관되는 제1 노드를 포함하는 데이터플로우 그래프를 인스턴스화하는(instantiate) 데이터 구조를 생성하는 단계;
    데이터 소스로부터 데이터를 수신하는 단계; 및
    상기 데이터 소스의 데이터를 기억하는 상관적인 데이터베이스를 관리하는 시스템과 상이한 실행 시스템에서, 상기 데이터플로우 그래프에 기초하는 프로그램 코드를 실행하는 단계
    를 포함하고,
    상기 프로그램 코드를 실행하는 단계에 의해 상기 쿼리의 결과를 제공하게 되는,
    쿼리를 실행하기 위한 컴퓨터-구현 방법.
  2. 제1항에 있어서,
    상기 데이터 소스는 상관적인 데이터베이스 테이블을 포함하는, 쿼리를 실행하기 위한 컴퓨터-구현 방법.
  3. 제1항에 있어서,
    상기 데이터 소스는 상관적인 데이터베이스 테이블 이외의 데이터의 부분을 포함하는, 쿼리를 실행하기 위한 컴퓨터-구현 방법.
  4. 제1항에 있어서,
    상기 데이터 소스는 플랫 파일을 포함하는, 쿼리를 실행하기 위한 컴퓨터-구현 방법.
  5. 제1항에 있어서,
    상기 쿼리는 SQL(Structured Query Language) 쿼리를 포함하는, 쿼리를 실행하기 위한 컴퓨터-구현 방법.
  6. 제1항에 있어서,
    상기 쿼리에 기초하여 쿼리 플래너에 대한 요청을 생성하는 단계, 및 상기 쿼리 플래너에게 상기 요청을 제공하는 단계를 더 포함하는, 쿼리를 실행하기 위한 컴퓨터-구현 방법.
  7. 제6항에 있어서,
    상기 쿼리에 기초하여 쿼리 플래너에 대한 요청을 생성하는 단계는,
    상기 데이터 소스의 구조적 표현(structural representation)을 생성하는 단계 ― 상기 구조적 표현이 상기 데이터 소스를 반영하는 포맷화된 데이터 편성(formatted data organization)을 포함하고 상기 데이터 소스의 데이터를 포함하지 않음 ―; 및
    상기 쿼리 플래너에 대한 요청 내에 상기 구조적 표현을 포함시키는 단계를 포함하는, 쿼리를 실행하기 위한 컴퓨터-구현 방법.
  8. 제1항에 있어서,
    상기 데이터 구조는 상기 실행 시스템에 의해 생성되는, 쿼리를 실행하기 위한 컴퓨터-구현 방법.
  9. 제1항에 있어서,
    상기 데이터 구조는 실행 시스템과 상이한 시스템에 의해 생성되는, 쿼리를 실행하기 위한 컴퓨터-구현 방법.
  10. 제1항에 있어서,
    상기 데이터플로우 그래프는 입력 데이터로서 데이터플로우 그래프의 제2 노드의 동작에 제공되는 제1 노드의 동작의 출력 데이터를 나타내는 하나 이상의 링크를 포함하는, 쿼리를 실행하기 위한 컴퓨터-구현 방법.
  11. 쿼리를 실행하기 위한 시스템으로서,
    상관적인 데이터베이스에 적용가능한 쿼리 언어에 따라 표현되는 쿼리에 대응하는 쿼리 플랜을 수신하는 단계 - 상기 쿼리 플랜은 상관적인 데이터베이스를 관리하는 시스템에 의해 수행되는 하나 이상의 단계의 기술을 포함함 ―;
    실행되는 적어도 하나의 동작을 나타내면서, 상기 쿼리 플랜에 의해 기술된 단계에 기초하여 선택된 적어도 하나의 동작을 수행하도록 실행가능한 프로그램 코드를 호출하기 위해 실행 시스템에 의해 사용되는 정보와 연관되는 제1 노드를 포함하는 데이터플로우 그래프를 인스턴스화하는 데이터 구조를 생성하는 단계;
    데이터 소스로부터 데이터를 수신하는 단계; 및
    상기 데이터 소스의 데이터를 기억하는 상관적인 데이터베이스를 관리하는 시스템과 상이한 실행 시스템에서, 상기 데이터플로우 그래프에 기초하는 프로그램 코드를 실행하는 단계
    를 포함하는 동작을 위해 구성되는 컴퓨터 시스템을 포함하고,
    상기 프로그램 코드를 실행하는 단계에 의해 상기 쿼리의 결과를 제공하게 되는,
    쿼리를 실행하기 위한 시스템.
  12. 제11항에 있어서,
    상기 데이터 소스는 상관적인 데이터베이스 테이블을 포함하는, 쿼리를 실행하기 위한 시스템.
  13. 제11항에 있어서,
    상기 데이터 소스는 상관적인 데이터베이스 테이블 이외의 데이터의 부분을 포함하는, 쿼리를 실행하기 위한 시스템.
  14. 제11항에 있어서,
    상기 데이터 소스는 플랫 파일을 포함하는, 쿼리를 실행하기 위한 시스템.
  15. 제11항에 있어서,
    상기 쿼리는 SQL 쿼리를 포함하는, 쿼리를 실행하기 위한 시스템.
  16. 제11항에 있어서,
    상기 동작은 상기 쿼리에 기초하여 쿼리 플래너에 대한 요청을 생성하는 단계, 및 상기 쿼리 플래너에게 상기 요청을 제공하는 단계를 더 포함하는, 쿼리를 실행하기 위한 시스템.
  17. 제16항에 있어서,
    상기 쿼리에 기초하여 쿼리 플래너에 대한 요청을 생성하는 단계는,
    상기 데이터 소스의 구조적 표현을 생성하는 단계 ― 상기 구조적 표현이 상기 데이터 소스를 반영하는 포맷화된 데이터 편성을 포함하고 상기 데이터 소스의 데이터를 포함하지 않음 ―; 및
    상기 쿼리 플래너에 대한 요청 내에 상기 구조적 표현을 포함시키는 단계를 포함하는, 쿼리를 실행하기 위한 시스템.
  18. 제11항에 있어서,
    상기 데이터 구조는 상기 실행 시스템에 의해 생성되는, 쿼리를 실행하기 위한 시스템.
  19. 제11항에 있어서,
    상기 데이터 구조는 실행 시스템과 상이한 시스템에 의해 생성되는, 쿼리를 실행하기 위한 시스템.
  20. 제11항에 있어서,
    상기 데이터플로우 그래프는 입력 데이터로서 데이터플로우 그래프의 제2 노드의 동작에 제공되는 제1 노드의 동작의 출력 데이터를 나타내는 하나 이상의 링크를 포함하는, 쿼리를 실행하기 위한 시스템.
  21. 컴퓨터로 하여금 쿼리를 실행하도록 하는 명령어를 포함하는 컴퓨터 프로그램이 저장된 컴퓨터-판독가능 저장 디바이스로서,
    상기 명령어는
    상관적인 데이터베이스에 적용가능한 쿼리 언어에 따라 표현되는 쿼리에 대응하는 쿼리 플랜을 수신하는 단계 - 상기 쿼리 플랜은 상관적인 데이터베이스를 관리하는 시스템에 의해 수행되는 하나 이상의 단계의 기술을 포함함 ―;
    실행되는 적어도 하나의 동작을 나타내면서 상기 쿼리 플랜에 의해 기술된 단계에 기초하여 선택된 적어도 하나의 동작을 수행하도록 실행가능한 프로그램 코드를 호출하기 위해 실행 시스템에 의해 사용되는 정보와 연관되는 제1 노드를 포함하는 데이터플로우 그래프를 인스턴스화하는 데이터 구조를 생성하는 단계;
    데이터 소스로부터 데이터를 수신하는 단계; 및
    상기 데이터 소스의 데이터를 기억하는 상관적인 데이터베이스를 관리하는 시스템과 상이한 실행 시스템에서, 상기 데이터플로우 그래프에 기초하는 프로그램 코드를 실행하는 단계
    를 포함하는 동작을 하도록 하고,
    상기 프로그램 코드를 실행하는 단계에 의해 상기 쿼리의 결과를 제공하게 되는,
    컴퓨터로 하여금 쿼리를 실행하도록 하는 명령어를 포함하는 컴퓨터 프로그램이 저장된 컴퓨터-판독가능 저장 디바이스.
  22. 제21항에 있어서,
    상기 데이터 소스는 상관적인 데이터베이스 테이블을 포함하는, 컴퓨터로 하여금 쿼리를 실행하도록 하는 명령어를 포함하는 컴퓨터 프로그램이 저장된 컴퓨터-판독가능 저장 디바이스.
  23. 제21항에 있어서,
    상기 데이터 소스는 상관적인 데이터베이스 테이블 이외의 데이터의 부분을 포함하는, 컴퓨터로 하여금 쿼리를 실행하도록 하는 명령어를 포함하는 컴퓨터 프로그램이 저장된 컴퓨터-판독가능 저장 디바이스.
  24. 제21항에 있어서,
    상기 데이터 소스는 플랫 파일을 포함하는, 컴퓨터로 하여금 쿼리를 실행하도록 하는 명령어를 포함하는 컴퓨터 프로그램이 저장된 컴퓨터-판독가능 저장 디바이스.
  25. 제21항에 있어서,
    상기 쿼리는 SQL 쿼리를 포함하는, 컴퓨터로 하여금 쿼리를 실행하도록 하는 명령어를 포함하는 컴퓨터 프로그램이 저장된 컴퓨터-판독가능 저장 디바이스.
  26. 제21항에 있어서,
    상기 동작은
    상기 쿼리에 기초하여 쿼리 플래너에 대한 요청을 생성하는 단계, 및 상기 쿼리 플래너에게 상기 요청을 제공하는 단계를 더 포함하는, 컴퓨터로 하여금 쿼리를 실행하도록 하는 명령어를 포함하는 컴퓨터 프로그램이 저장된 컴퓨터-판독가능 저장 디바이스.
  27. 제26항에 있어서,
    상기 쿼리에 기초하여 쿼리 플래너에 대한 요청을 생성하는 단계는,
    상기 데이터 소스의 구조적 표현(structural representation)을 생성하는 단계 ― 상기 구조적 표현이 상기 데이터 소스를 반영하는 포맷화된 데이터 편성(formatted data organization)을 포함하고 상기 데이터 소스의 데이터를 포함하지 않음 ―; 및
    상기 쿼리 플래너에 대한 요청 내에 상기 구조적 표현을 포함시키는 단계를 포함하는, 컴퓨터로 하여금 쿼리를 실행하도록 하는 명령어를 포함하는 컴퓨터 프로그램이 저장된 컴퓨터-판독가능 저장 디바이스.
  28. 제21항에 있어서,
    상기 데이터 구조는 상기 실행 시스템에 의해 생성되는, 컴퓨터로 하여금 쿼리를 실행하도록 하는 명령어를 포함하는 컴퓨터 프로그램이 저장된 컴퓨터-판독가능 저장 디바이스.
  29. 제21항에 있어서,
    상기 데이터 구조는 실행 시스템과 상이한 시스템에 의해 생성되는, 컴퓨터로 하여금 쿼리를 실행하도록 하는 명령어를 포함하는 컴퓨터 프로그램이 저장된 컴퓨터-판독가능 저장 디바이스.
  30. 제21항에 있어서,
    상기 데이터플로우 그래프는 입력 데이터로서 데이터플로우 그래프의 제2 노드의 동작에 제공되는 제1 노드의 동작의 출력 데이터를 나타내는 하나 이상의 링크를 포함하는, 컴퓨터로 하여금 쿼리를 실행하도록 하는 명령어를 포함하는 컴퓨터 프로그램이 저장된 컴퓨터-판독가능 저장 디바이스.
  31. 쿼리를 실행하기 위한 컴퓨터-구현 방법으로서,
    데이터 소스의 데이터의 구조적 표현을 생성하는 단계 - 상기 구조적 표현이 상기 데이터 소스를 반영하는 포맷화된 데이터 편성을 포함하고 상기 데이터 소스의 적어도 일부의 데이터를 포함하지 않음 ―;
    상기 쿼리에 기초하여 쿼리 플래너에 대한 요청을 생성하는 단계 - 상기 요청은 상기 쿼리 플래너에게, 상기 쿼리에 기초하여 쿼리 플랜을 생성하고, 상기 구조적 표현을 데이터로서 제공하여 상기 쿼리에 의해 동작되도록 지시하는 것임 -;
    상기 쿼리 플래너로부터, 상관적인 데이터베이스에 적용가능한 쿼리 언어에 따라 표현되는 쿼리에 대응하는 쿼리 플랜을 수신하는 단계 - 상기 쿼리 플랜은 상관적인 데이터베이스를 관리하는 시스템에 의해 수행되는 하나 이상의 단계의 기술을 포함함 ―;
    상기 쿼리 플랜에 기초하여 컴퓨터 프로그램을 생성하는 단계; 및
    상기 쿼리의 결과를 제공하도록 상기 컴퓨터 프로그램을 실행하는 단계
    를 포함하는,
    쿼리를 실행하기 위한 컴퓨터-구현 방법.
  32. 제31항에 있어서,
    상기 데이터 소스는 상관적인 데이터베이스 테이블을 포함하는, 쿼리를 실행하기 위한 컴퓨터-구현 방법.
  33. 제31항에 있어서,
    상기 데이터 소스는 상관적인 데이터베이스 테이블 이외의 데이터의 부분을 포함하는, 쿼리를 실행하기 위한 컴퓨터-구현 방법.
  34. 제31항에 있어서,
    상기 데이터 소스는 플랫 파일을 포함하는, 쿼리를 실행하기 위한 컴퓨터-구현 방법.
  35. 제31항에 있어서,
    상기 쿼리는 SQL 쿼리를 포함하는, 쿼리를 실행하기 위한 컴퓨터-구현 방법.
  36. 제31항에 있어서,
    상기 컴퓨터 프로그램이 데이터플로우 그래프를 포함하는, 쿼리를 실행하기 위한 컴퓨터-구현 방법.
  37. 제36항에 있어서,
    상기 데이터플로우 그래프는, 실행되는 적어도 하나의 동작을 나타내면서 상기 쿼리 플랜에 의해 기술된 단계에 기초하여 선택된 적어도 하나의 동작을 수행하도록 실행가능한 프로그램 코드를 호출하기 위해 실행 시스템에 의해 사용되는 정보와 연관되는 제1 노드를 포함하는, 쿼리를 실행하기 위한 컴퓨터-구현 방법.
  38. 쿼리를 실행하기 위한 시스템으로서,
    데이터 소스의 데이터의 구조적 표현을 생성하는 단계 - 상기 구조적 표현이 상기 데이터 소스를 반영하는 포맷화된 데이터 편성을 포함하고 상기 데이터 소스의 적어도 일부의 데이터를 포함하지 않음 ―;
    상기 쿼리에 기초하여 쿼리 플래너에 대한 요청을 생성하는 단계 - 상기 요청은 상기 쿼리 플래너에게, 상기 쿼리에 기초하여 쿼리 플랜을 생성하고, 상기 구조적 표현을 데이터로서 제공하여 상기 쿼리에 의해 동작되도록 지시하는 것임 -;
    상기 쿼리 플래너로부터, 상관적인 데이터베이스에 적용가능한 쿼리 언어에 따라 표현되는 쿼리에 대응하는 쿼리 플랜을 수신하는 단계 - 상기 쿼리 플랜은 상관적인 데이터베이스를 관리하는 시스템에 의해 수행되는 하나 이상의 단계의 기술을 포함함 ―;
    상기 쿼리 플랜에 기초하여 컴퓨터 프로그램을 생성하는 단계; 및
    상기 쿼리의 결과를 제공하도록 상기 컴퓨터 프로그램을 실행하는 단계
    를 포함하는 동작을 위해 구성되는 하나 이상의 컴퓨터 프로세서를 포함하는,
    쿼리를 실행하기 위한 시스템.
  39. 제38항에 있어서,
    상기 데이터 소스는 상관적인 데이터베이스 테이블을 포함하는, 쿼리를 실행하기 위한 시스템.
  40. 제38항에 있어서,
    상기 데이터 소스는 상관적인 데이터베이스 테이블 이외의 데이터의 부분을 포함하는, 쿼리를 실행하기 위한 시스템.
  41. 제38항에 있어서,
    상기 데이터 소스는 플랫 파일을 포함하는, 쿼리를 실행하기 위한 시스템.
  42. 제38항에 있어서,
    상기 쿼리는 SQL 쿼리를 포함하는, 쿼리를 실행하기 위한 시스템.
  43. 제38항에 있어서,
    상기 컴퓨터 프로그램이 데이터플로우 그래프를 포함하는, 쿼리를 실행하기 위한 시스템.
  44. 제43항에 있어서,
    상기 데이터플로우 그래프는, 실행되는 적어도 하나의 동작을 나타내면서 상기 쿼리 플랜에 의해 기술된 단계에 기초하여 선택된 적어도 하나의 동작을 수행하도록 실행가능한 프로그램 코드를 호출하기 위해 실행 시스템에 의해 사용되는 정보와 연관되는 제1 노드를 포함하는, 쿼리를 실행하기 위한 시스템.
  45. 컴퓨터로 하여금 쿼리를 실행하도록 하는 명령어를 포함하는 컴퓨터 프로그램이 저장된 컴퓨터-판독가능 저장 디바이스로서,
    상기 명령어는
    데이터 소스의 데이터의 구조적 표현을 생성하는 단계 - 상기 구조적 표현이 상기 데이터 소스를 반영하는 포맷화된 데이터 편성을 포함하고 상기 데이터 소스의 적어도 일부의 데이터를 포함하지 않음 ―;
    상기 쿼리에 기초하여 쿼리 플래너에 대한 요청을 생성하는 단계 - 상기 요청은 상기 쿼리 플래너에게, 상기 쿼리에 기초하여 쿼리 플랜을 생성하고, 상기 구조적 표현을 데이터로서 제공하여 상기 쿼리에 의해 동작되도록 지시하는 것임 -;
    상기 쿼리 플래너로부터, 상관적인 데이터베이스에 적용가능한 쿼리 언어에 따라 표현되는 쿼리에 대응하는 쿼리 플랜을 수신하는 단계 - 상기 쿼리 플랜은 상관적인 데이터베이스를 관리하는 시스템에 의해 수행되는 하나 이상의 단계의 기술을 포함함 ―;
    상기 쿼리 플랜에 기초하여 컴퓨터 프로그램을 생성하는 단계; 및
    상기 쿼리의 결과를 제공하도록 상기 컴퓨터 프로그램을 실행하는 단계
    를 포함하는 동작을 하도록 하는,
    컴퓨터로 하여금 쿼리를 실행하도록 하는 명령어를 포함하는 컴퓨터 프로그램이 저장된 컴퓨터-판독가능 저장 디바이스.
  46. 제45항에 있어서,
    상기 데이터 소스는 상관적인 데이터베이스 테이블을 포함하는, 컴퓨터로 하여금 쿼리를 실행하도록 하는 명령어를 포함하는 컴퓨터 프로그램이 저장된 컴퓨터-판독가능 저장 디바이스.
  47. 제45항에 있어서,
    상기 데이터 소스는 상관적인 데이터베이스 테이블 이외의 데이터의 부분을 포함하는, 컴퓨터로 하여금 쿼리를 실행하도록 하는 명령어를 포함하는 컴퓨터 프로그램이 저장된 컴퓨터-판독가능 저장 디바이스.
  48. 제45항에 있어서,
    상기 데이터 소스는 플랫 파일을 포함하는, 컴퓨터로 하여금 쿼리를 실행하도록 하는 명령어를 포함하는 컴퓨터 프로그램이 저장된 컴퓨터-판독가능 저장 디바이스.
  49. 제45항에 있어서,
    상기 쿼리는 SQL 쿼리를 포함하는, 컴퓨터로 하여금 쿼리를 실행하도록 하는 명령어를 포함하는 컴퓨터 프로그램이 저장된 컴퓨터-판독가능 저장 디바이스.
  50. 제45항에 있어서,
    상기 컴퓨터 프로그램이 데이터플로우 그래프를 포함하는, 컴퓨터로 하여금 쿼리를 실행하도록 하는 명령어를 포함하는 컴퓨터 프로그램이 저장된 컴퓨터-판독가능 저장 디바이스.
  51. 제50항에 있어서,
    상기 데이터플로우 그래프는, 실행되는 적어도 하나의 동작을 나타내면서 상기 쿼리 플랜에 의해 기술된 단계에 기초하여 선택된 적어도 하나의 동작을 수행하도록 실행가능한 프로그램 코드를 호출하기 위해 실행 시스템에 의해 사용되는 정보와 연관되는 제1 노드를 포함하는, 컴퓨터로 하여금 쿼리를 실행하도록 하는 명령어를 포함하는 컴퓨터 프로그램이 저장된 컴퓨터-판독가능 저장 디바이스.
KR1020177027578A 2010-01-15 2011-01-14 데이터 쿼리 관리 KR101877481B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/688,316 US9665620B2 (en) 2010-01-15 2010-01-15 Managing data queries
US12/688,316 2010-01-15
PCT/US2011/021260 WO2011088293A1 (en) 2010-01-15 2011-01-14 Managing data queries

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020127018891A Division KR101784785B1 (ko) 2010-01-15 2011-01-14 데이터 쿼리 관리

Publications (2)

Publication Number Publication Date
KR20170121272A true KR20170121272A (ko) 2017-11-01
KR101877481B1 KR101877481B1 (ko) 2018-07-11

Family

ID=43755268

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020127018891A KR101784785B1 (ko) 2010-01-15 2011-01-14 데이터 쿼리 관리
KR1020177027578A KR101877481B1 (ko) 2010-01-15 2011-01-14 데이터 쿼리 관리

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020127018891A KR101784785B1 (ko) 2010-01-15 2011-01-14 데이터 쿼리 관리

Country Status (9)

Country Link
US (2) US9665620B2 (ko)
EP (2) EP3324311A1 (ko)
JP (4) JP2013517574A (ko)
KR (2) KR101784785B1 (ko)
CN (2) CN106055584B (ko)
AU (3) AU2011205787B2 (ko)
CA (1) CA2786042C (ko)
HK (1) HK1255489A1 (ko)
WO (1) WO2011088293A1 (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9665620B2 (en) 2010-01-15 2017-05-30 Ab Initio Technology Llc Managing data queries
JP6338579B2 (ja) * 2012-07-24 2018-06-06 アビニシオ テクノロジー エルエルシー データモデルにおけるエンティティのマッピング
AU2014360308B2 (en) 2013-12-05 2018-11-29 Ab Initio Technology Llc Managing interfaces for dataflow graphs composed of sub-graphs
EP3373134B1 (en) 2013-12-06 2020-07-22 Ab Initio Technology LLC Source code translation
CN103729471B (zh) * 2014-01-21 2017-03-08 华为软件技术有限公司 数据库查询方法和装置
CN106104591B (zh) 2014-03-14 2019-12-17 起元科技有限公司 映射带键实体的属性
US10437819B2 (en) 2014-11-14 2019-10-08 Ab Initio Technology Llc Processing queries containing a union-type operation
US10417281B2 (en) * 2015-02-18 2019-09-17 Ab Initio Technology Llc Querying a data source on a network
CN106156162A (zh) * 2015-04-15 2016-11-23 阿里巴巴集团控股有限公司 数据库查询量统计方法和设备
US10210236B2 (en) 2015-11-23 2019-02-19 Ab Initio Technology Llc Storing and retrieving data of a data cube
WO2017112654A2 (en) 2015-12-21 2017-06-29 Ab Initio Technology Llc Sub-graph interface generation
EP3475845A1 (en) 2016-06-23 2019-05-01 Schneider Electric USA Inc. Contextual-characteristic data driven sequential federated query methods for distributed systems
CN106446170A (zh) * 2016-09-27 2017-02-22 努比亚技术有限公司 数据查询方法及装置
US11016973B2 (en) * 2016-11-29 2021-05-25 Sap Se Query plan execution engine
CN110612513B (zh) * 2017-03-29 2024-01-30 起元技术有限责任公司 用于使用可变级并行执行数据处理操作的系统和方法
US11354348B2 (en) * 2017-06-29 2022-06-07 Microsoft Technology Licensing, Llc Optimized record placement in graph database
CN107480287A (zh) * 2017-08-25 2017-12-15 成都优力德新能源有限公司 基于云计算的数据集成装置
CN110471888A (zh) * 2018-05-09 2019-11-19 株式会社日立制作所 一种自动收集数据的方法、装置、介质、设备及系统
CN109299094A (zh) * 2018-09-18 2019-02-01 深圳壹账通智能科技有限公司 数据表处理方法、装置、计算机设备和存储介质
CN109614400A (zh) * 2018-11-30 2019-04-12 深圳前海微众银行股份有限公司 失败任务的影响及溯源分析方法、装置、设备及存储介质
US11327970B1 (en) 2019-03-25 2022-05-10 Amazon Technologies, Inc. Context dependent execution time prediction for redirecting queries
US11308100B2 (en) 2019-06-25 2022-04-19 Amazon Technologies, Inc. Dynamically assigning queries to secondary query processing resources
US11093223B2 (en) 2019-07-18 2021-08-17 Ab Initio Technology Llc Automatically converting a program written in a procedural programming language into a dataflow graph and related systems and methods
CN110472068B (zh) * 2019-08-20 2020-04-24 星环信息科技(上海)有限公司 基于异构分布式知识图谱的大数据处理方法、设备及介质
CN111143397B (zh) * 2019-12-10 2021-04-13 跬云(上海)信息科技有限公司 混合数据查询方法及装置、存储介质
CN111209309B (zh) * 2020-01-13 2023-03-10 腾讯科技(深圳)有限公司 数据流图处理结果确定方法、装置、设备及存储介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000250798A (ja) * 1999-03-01 2000-09-14 Nippon Steel Corp データ管理システム及びコンピュータ読み取り可能な記録媒体
KR20010075552A (ko) * 1998-10-02 2001-08-09 포만 제프리 엘 네트워크 협동 대화 서비스를 제공하기 위한 시스템 및 방법
JP2003505766A (ja) * 1999-07-20 2003-02-12 コンピュータ アソシエイツ シンク,インコーポレイテッド クエリー最適化プラン用インデックスに対する変化の効果を観察するためのデータベースシステム
JP2003099441A (ja) * 2001-09-21 2003-04-04 Hitachi Ltd データ検索手順探索方法
JP2006236360A (ja) * 1999-01-13 2006-09-07 Ab Initio Software Corp スクリプト駆動ツールの並列処理アプリケーション
KR20090012243A (ko) * 2006-05-19 2009-02-02 마이크로소프트 코포레이션 검색에 의한 주석달기를 위한 컴퓨터 판독가능 저장 매체, 컴퓨터 구현 방법, 및 컴퓨팅 장치
US20100153409A1 (en) * 2008-12-12 2010-06-17 Joshi Mahesh V Computer-Implemented Systems And Methods For Providing Paginated Search Results From A Database
KR101009924B1 (ko) * 2010-06-25 2011-01-20 한국과학기술정보연구원 온톨로지 스키마와 결합된 개체명 사전 및 마이닝 규칙을 이용한 개체명 사전 또는 마이닝 규칙 데이터베이스 갱신 장치 및 방법
KR20110068137A (ko) * 2009-12-15 2011-06-22 한국전자통신연구원 개체명 사전 구축 시스템 및 구축 방법
KR20110094179A (ko) * 2008-10-24 2011-08-22 야후! 인크. 시각적 주석에 기초하여 검색 결과를 모으는 것에 의한 디지털 이미지 검색
KR101255957B1 (ko) * 2011-12-09 2013-04-24 포항공과대학교 산학협력단 개체명 태깅 방법 및 장치

Family Cites Families (172)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4586137A (en) 1982-10-18 1986-04-29 Dresser Industries, Inc. Method for generating variable well logging data composites
JPH01108638A (ja) 1987-10-21 1989-04-25 Hitachi Ltd 並列化コンパイル方式
JP2738692B2 (ja) 1988-01-29 1998-04-08 株式会社日立製作所 並列化コンパイル方法
JPH0267682A (ja) 1988-09-02 1990-03-07 Hitachi Ltd データベースシステム
US5072371A (en) 1989-03-01 1991-12-10 The United States Of America As Represented By The United States Department Of Energy Method for simultaneous overlapped communications between neighboring processors in a multiple
US5121494A (en) 1989-10-05 1992-06-09 Ibm Corporation Joining two database relations on a common field in a parallel relational database field
US5367619A (en) 1990-04-27 1994-11-22 Eaton Corporation Electronic data entry system employing an expert system to facilitate generation of electronic data forms with complex interrelationships between fields and subforms
US5347639A (en) 1991-07-15 1994-09-13 International Business Machines Corporation Self-parallelizing computer system and method
US5632022A (en) 1991-11-13 1997-05-20 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Encyclopedia of software components
US5313584A (en) 1991-11-25 1994-05-17 Unisys Corporation Multiple I/O processor system
FR2696853B1 (fr) 1992-10-12 1994-12-23 Bull Sa Procédé d'aide à l'optimisation d'une requête d'un système de gestion, de base de données relationnel et procédé d'analyse syntaxique en résultant.
JPH05257709A (ja) 1992-03-16 1993-10-08 Hitachi Ltd 並列化判別方法およびそれを用いた並列化支援方法
US5412806A (en) 1992-08-20 1995-05-02 Hewlett-Packard Company Calibration of logical cost formulae for queries in a heterogeneous DBMS using synthetic database
US5432940A (en) 1992-11-02 1995-07-11 Borland International, Inc. System and methods for improved computer-based training
US5574898A (en) 1993-01-08 1996-11-12 Atria Software, Inc. Dynamic software version auditor which monitors a process to provide a list of objects that are accessed
US5446915A (en) 1993-05-25 1995-08-29 Intel Corporation Parallel processing system virtual connection method and apparatus with protection and flow control
US5475842A (en) 1993-08-11 1995-12-12 Xerox Corporation Method of compilation optimization using an N-dimensional template for relocated and replicated alignment of arrays in data-parallel programs for reduced data communication during execution
JPH0765032A (ja) 1993-08-27 1995-03-10 Toshiba Corp データベース言語変換機能を持つ情報処理システム
US5600833A (en) 1993-09-17 1997-02-04 Digital Equipment Corp. Attribute portion based document retrieval system with system query language interface
JP4050339B2 (ja) 1994-04-28 2008-02-20 株式会社東芝 並行プログラム作成支援装置及び並行プログラム作成方法並びに並行プログラム実行装置
US5588150A (en) 1994-09-29 1996-12-24 International Business Machines Corporation Push down optimization in a distributed, multi-database system
US5768564A (en) 1994-10-07 1998-06-16 Tandem Computers Incorporated Method and apparatus for translating source code from one high-level computer language to another
FI98690C (fi) 1994-10-18 1997-07-25 Nokia Telecommunications Oy Menetelmä alueryhmäpuhelun muodostamiseksi matkaviestinjärjestelmässä ja matkaviestinjärjestelmä
US5734886A (en) 1994-11-16 1998-03-31 Lucent Technologies Inc. Database dependency resolution method and system for identifying related data files
FI98973C (fi) 1994-11-22 1997-09-10 Nokia Telecommunications Oy Menetelmä ryhmätietojen ylläpitämiseksi matkaviestinjärjestelmässä ja matkaviestinjärjestelmä
US5546576A (en) * 1995-02-17 1996-08-13 International Business Machines Corporation Query optimizer system that detects and prevents mutating table violations of database integrity in a query before execution plan generation
US5619692A (en) 1995-02-17 1997-04-08 International Business Machines Corporation Semantic optimization of query order requirements using order detection by normalization in a query compiler system
FI100215B (fi) 1995-03-17 1997-10-15 Nokia Telecommunications Oy Matkaviestijärjestelmän tilaajatietojen päivittäminen
US5706509A (en) 1995-04-28 1998-01-06 Intel Corporation Application independent record level synchronization
US5678044A (en) 1995-06-02 1997-10-14 Electronic Data Systems Corporation System and method for improved rehosting of software systems
US5682537A (en) 1995-08-31 1997-10-28 Unisys Corporation Object lock management system with improved local lock management and global deadlock detection in a parallel data processing system
US5819021A (en) 1995-12-11 1998-10-06 Ab Initio Software Corporation Overpartitioning system and method for increasing checkpoints in component-based parallel applications
US5712971A (en) 1995-12-11 1998-01-27 Ab Initio Software Corporation Methods and systems for reconstructing the state of a computation
US5909681A (en) 1996-03-25 1999-06-01 Torrent Systems, Inc. Computer system and computerized method for partitioning data for parallel processing
US6311265B1 (en) 1996-03-25 2001-10-30 Torrent Systems, Inc. Apparatuses and methods for programming parallel computers
JPH09319757A (ja) 1996-05-29 1997-12-12 N T T Data Tsushin Kk 情報検索システム
US5799149A (en) 1996-06-17 1998-08-25 International Business Machines Corporation System partitioning for massively parallel processors
US5870743A (en) 1996-06-24 1999-02-09 Oracle Corporation Method and apparatus for parallelizing operations that create a table
US5966072A (en) 1996-07-02 1999-10-12 Ab Initio Software Corporation Executing computations expressed as graphs
JP4533974B2 (ja) 1996-08-01 2010-09-01 康 清木 異種データベース統合システム
JPH1091494A (ja) 1996-09-19 1998-04-10 Hitachi Ltd データベース操作プログラムの変換方法および変換装置
JPH10232875A (ja) 1997-02-19 1998-09-02 Hitachi Ltd データベース管理方法および並列データベース管理システム
US6330008B1 (en) 1997-02-24 2001-12-11 Torrent Systems, Inc. Apparatuses and methods for monitoring performance of parallel computing
US5999729A (en) 1997-03-06 1999-12-07 Continuum Software, Inc. System and method for developing computer programs for execution on parallel processing systems
US5956074A (en) 1997-03-11 1999-09-21 Sclafani; Peter J. Cable television return display unit
JP3155991B2 (ja) 1997-04-09 2001-04-16 日本アイ・ビー・エム株式会社 集約演算実行方法及びコンピュータ・システム
US5956704A (en) * 1997-06-05 1999-09-21 Oracle Corporation Method and apparatus for parallelizing operations that insert data into an existing data container
US6092062A (en) * 1997-06-30 2000-07-18 International Business Machines Corporation Relational database query optimization to perform query evaluation plan, pruning based on the partition properties
US6077313A (en) 1997-10-22 2000-06-20 Microsoft Corporation Type partitioned dataflow analyses
US6295518B1 (en) 1997-12-09 2001-09-25 Mci Communications Corporation System and method for emulating telecommunications network devices
US6266804B1 (en) 1997-12-23 2001-07-24 Ab Initio Software Corporation Method for analyzing capacity of parallel processing systems
US6625593B1 (en) * 1998-06-29 2003-09-23 International Business Machines Corporation Parallel query optimization strategies for replicated and partitioned tables
US6205465B1 (en) 1998-07-22 2001-03-20 Cisco Technology, Inc. Component extensible parallel execution of multiple threads assembled from program components specified with partial inter-component sequence information
US6453464B1 (en) 1998-09-03 2002-09-17 Legacyj. Corp., Inc. Method and apparatus for converting COBOL to Java
US6339769B1 (en) 1998-09-14 2002-01-15 International Business Machines Corporation Query optimization by transparently altering properties of relational tables using materialized views
US6378126B2 (en) 1998-09-29 2002-04-23 International Business Machines Corporation Compilation of embedded language statements in a source code program
JP2000148699A (ja) 1998-11-06 2000-05-30 Nec Corp ネットワークマネージメントシステム
JP4406944B2 (ja) * 1998-11-11 2010-02-03 株式会社日立製作所 計算機システム及び問合せに対する処理分散システム
US7080062B1 (en) * 1999-05-18 2006-07-18 International Business Machines Corporation Optimizing database queries using query execution plans derived from automatic summary table determining cost based queries
JP4552242B2 (ja) 1999-10-06 2010-09-29 株式会社日立製作所 仮想表インタフェースと該インタフェースを用いた問合せ処理システム及び方法
US6615203B1 (en) 1999-12-17 2003-09-02 International Business Machines Corporation Method, computer program product, and system for pushdown analysis during query plan generation
JP3795289B2 (ja) 2000-02-07 2006-07-12 日本電信電話株式会社 データベースの実行制御装置
US6947934B1 (en) * 2000-02-16 2005-09-20 International Business Machines Corporation Aggregate predicates and search in a database management system
JP4483034B2 (ja) 2000-06-06 2010-06-16 株式会社日立製作所 異種データソース統合アクセス方法
US7164422B1 (en) 2000-07-28 2007-01-16 Ab Initio Software Corporation Parameterized graphs with conditional components
US6785668B1 (en) 2000-11-28 2004-08-31 Sas Institute Inc. System and method for data flow analysis of complex data filters
JP4543563B2 (ja) * 2001-02-28 2010-09-15 株式会社日立製作所 統合データベースシステムにおける問合せ最適化方法
US7418441B2 (en) 2001-02-28 2008-08-26 International Business Machines Corporation Data loading from a remote data source record by record
US8412746B2 (en) 2001-05-25 2013-04-02 International Business Machines Corporation Method and system for federated querying of data sources
US6877000B2 (en) 2001-08-22 2005-04-05 International Business Machines Corporation Tool for converting SQL queries into portable ODBC
US6725212B2 (en) * 2001-08-31 2004-04-20 International Business Machines Corporation Platform-independent method and system for graphically presenting the evaluation of a query in a database management system
US6915290B2 (en) 2001-12-11 2005-07-05 International Business Machines Corporation Database query optimization apparatus and method that represents queries as graphs
US7409474B2 (en) 2002-06-27 2008-08-05 Broadcom Corporation Method and system for rate adaptation
US7167850B2 (en) 2002-10-10 2007-01-23 Ab Initio Software Corporation Startup and control of graph-based computation
US7953891B2 (en) * 2003-03-18 2011-05-31 Microsoft Corporation Systems and methods for scheduling data flow execution based on an arbitrary graph describing the desired data flow
CA2429910A1 (en) 2003-05-27 2004-11-27 Cognos Incorporated System and method of query transformation
US7249120B2 (en) * 2003-06-27 2007-07-24 Microsoft Corporation Method and apparatus for selecting candidate statistics to estimate the selectivity value of the conditional selectivity expression in optimize queries based on a set of predicates that each reference a set of relational database tables
US20050038788A1 (en) 2003-08-14 2005-02-17 International Business Machines Corporation Annotation security to prevent the divulgence of sensitive information
US7664730B2 (en) * 2003-09-06 2010-02-16 Oracle International Corporation Method and system for implementing a SQL profile
US7702610B2 (en) 2003-09-19 2010-04-20 Netezza Corporation Performing sequence analysis as a multipart plan storing intermediate results as a relation
US7165063B2 (en) * 2003-11-19 2007-01-16 International Business Machines Corporation Context quantifier transformation in XML query rewrite
US7133861B2 (en) * 2003-12-04 2006-11-07 International Business Machines Corporation Query access plan rebuilds
US7310637B2 (en) 2004-05-05 2007-12-18 International Business Machines Corporation Dynamic database access via standard query language and abstraction technology
US7930432B2 (en) * 2004-05-24 2011-04-19 Microsoft Corporation Systems and methods for distributing a workplan for data flow execution based on an arbitrary graph describing the desired data flow
US20060047696A1 (en) 2004-08-24 2006-03-02 Microsoft Corporation Partially materialized views
CN100518079C (zh) 2004-09-30 2009-07-22 北京航空航天大学 分布式性能数据采集方法
US7899833B2 (en) 2004-11-02 2011-03-01 Ab Initio Technology Llc Managing related data objects
US7461052B2 (en) 2004-12-06 2008-12-02 International Business Machines Corporation Abstract query plan
US7890532B2 (en) 2004-12-15 2011-02-15 Microsoft Corporation Complex data access
US7359922B2 (en) * 2004-12-22 2008-04-15 Ianywhere Solutions, Inc. Database system and methodology for generalized order optimization
US20060265362A1 (en) 2005-05-18 2006-11-23 Content Analyst Company, Llc Federated queries and combined text and relational data
US7856523B2 (en) 2005-06-01 2010-12-21 Microsoft Corporation Random Access Memory (RAM) based Content Addressable Memory (CAM) management
CA2519604C (en) 2005-06-23 2011-07-12 Cognos Incorporated Master-detail provider and method of providing master-detail functionality
US8935273B2 (en) 2005-06-23 2015-01-13 International Business Machines Corporation Method of processing and decomposing a multidimensional query against a relational data source
US7877350B2 (en) 2005-06-27 2011-01-25 Ab Initio Technology Llc Managing metadata for graph-based computations
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
WO2007006143A1 (en) 2005-07-13 2007-01-18 The Hospital For Sick Children Compositions and methods for detecting transformed cells
CA2519010A1 (en) 2005-09-13 2007-03-13 Cognos Incorporated Query framework system and method
CA2519001A1 (en) 2005-09-13 2007-03-13 Cognos Incorporated System and method of data agnostic business intelligence query
US20070067274A1 (en) 2005-09-16 2007-03-22 International Business Machines Corporation Hybrid push-down/pull-up of unions with expensive operations in a federated query processor
US7464084B2 (en) 2006-01-30 2008-12-09 International Business Machines Corporation Method for performing an inexact query transformation in a heterogeneous environment
US7945562B2 (en) 2006-03-15 2011-05-17 Oracle International Corporation Join predicate push-down optimizations
US7870556B2 (en) 2006-05-16 2011-01-11 Ab Initio Technology Llc Managing computing resources in graph-based computations
CN101501687B (zh) * 2006-06-01 2013-02-13 梅迪尔雷夫默斯特尔和雷夫通信与信息技术Oeg公司 控制关系数据库系统的方法
WO2008021953A2 (en) 2006-08-10 2008-02-21 Ab Initio Software Llc Distributing services in graph-based computations
JP4872529B2 (ja) 2006-08-22 2012-02-08 株式会社日立製作所 リバースエンジニアリング支援方法
WO2008024917A2 (en) 2006-08-23 2008-02-28 Innovative Solution, Inc. Efficient search result update mechanism
TWI348139B (en) 2006-08-24 2011-09-01 Wintek Corp A lcd scan lines driving method
JP2008084028A (ja) 2006-09-27 2008-04-10 Toshiba Corp データベース検索システムおよびデータベース検索方法
JP2008158664A (ja) 2006-12-21 2008-07-10 Sony Corp 通信システム、サーバ、通信端末及び通信方法
US8069129B2 (en) 2007-04-10 2011-11-29 Ab Initio Technology Llc Editing and compiling business rules
US8122088B2 (en) 2007-06-28 2012-02-21 International Business Machines Corporation Adding personal note capabilities to text exchange clients
EP2026479A1 (de) 2007-08-17 2009-02-18 Leica Geosystems AG Transimpedanzverstärkerschaltung für einen Photodetektor
US20100005077A1 (en) * 2008-07-07 2010-01-07 Kickfire, Inc. Methods and systems for generating query plans that are compatible for execution in hardware
US9424315B2 (en) 2007-08-27 2016-08-23 Teradata Us, Inc. Methods and systems for run-time scheduling database operations that are executed in hardware
KR101572599B1 (ko) 2007-09-20 2015-11-27 아브 이니티오 테크놀로지 엘엘시 그래프에 기초한 연산에서 데이터 흐름을 관리하는 방법 및 시스템
US7673065B2 (en) 2007-10-20 2010-03-02 Oracle International Corporation Support for sharing computation between aggregations in a data stream management system
US8527976B2 (en) 2007-11-14 2013-09-03 Nec Laboratories America, Inc. System and method for generating error traces for concurrency bugs
CN101436192B (zh) 2007-11-16 2011-03-16 国际商业机器公司 用于优化针对垂直存储式数据库的查询的方法和设备
US9165032B2 (en) 2007-11-21 2015-10-20 Hewlett-Packard Development Company, L.P. Allocation of resources for concurrent query execution via adaptive segmentation
US8429601B2 (en) * 2007-11-29 2013-04-23 Red Hat, Inc. Code completion for object relational mapping query language (OQL) queries
US20090198703A1 (en) 2008-01-31 2009-08-06 Hewlett-Packard Development Company, L.P. Intelligent data storage system
WO2009108782A1 (en) 2008-02-26 2009-09-03 Ab Initio Software Llc Graphic representations of data relationships
US7933916B2 (en) * 2008-02-28 2011-04-26 Microsoft Corporation Querying nonSQL data stores with a SQL-style language
US8537160B2 (en) * 2008-03-05 2013-09-17 Microsoft Corporation Generating distributed dataflow graphs
JP2009217405A (ja) 2008-03-07 2009-09-24 Nec Corp ジョブネットワーク自動生成方式及びプログラム
US8538985B2 (en) 2008-03-11 2013-09-17 International Business Machines Corporation Efficient processing of queries in federated database systems
EP2261885A4 (en) 2008-04-11 2011-08-24 Sharp Kk DISPLAY DEVICE AND DISPLAY DEVICE CONTROL METHOD
US7974967B2 (en) 2008-04-15 2011-07-05 Sap Ag Hybrid database system using runtime reconfigurable hardware
KR20100135789A (ko) 2008-04-16 2010-12-27 인터내셔널 비지네스 머신즈 코포레이션 질의 처리 시각화 시스템 및 방법과 컴퓨터 프로그램 제품
US20100057695A1 (en) * 2008-08-28 2010-03-04 Microsoft Corporation Post-processing search results on a client computer
US7917463B2 (en) 2008-10-10 2011-03-29 Business.Com, Inc. System and method for data warehousing and analytics on a distributed file system
US20100121868A1 (en) 2008-11-07 2010-05-13 Yann Le Biannic Converting a database query to a multi-dimensional expression query
US9218209B2 (en) 2008-12-31 2015-12-22 Pivotal Software, Inc. Apparatus and method for parallel processing of a query
US8666966B2 (en) 2009-01-30 2014-03-04 Hewlett-Packard Development Company, L.P. Providing parallel result streams for database queries
JP4659888B2 (ja) 2009-02-13 2011-03-30 株式会社日立製作所 データベース処理システム、計算機及びデータベース処理方法
CA2750279C (en) 2009-02-13 2019-03-26 Ab Initio Technology Llc Managing task execution
US20100241893A1 (en) 2009-03-18 2010-09-23 Eric Friedman Interpretation and execution of a customizable database request using an extensible computer process and an available computing environment
US8392398B2 (en) * 2009-07-29 2013-03-05 International Business Machines Corporation Query optimization over graph data streams
US9477778B2 (en) 2009-08-21 2016-10-25 Oracle International Corporation XML query optimization with order analysis of XML schema
US9064047B2 (en) 2009-09-24 2015-06-23 International Business Machines Corporation Parallel processing of ETL jobs involving extensible markup language documents
US8620903B2 (en) 2009-11-04 2013-12-31 Nec Laboratories America, Inc. Database distribution system and methods for scale-out applications
US8326797B2 (en) 2009-11-11 2012-12-04 International Business Machines Corporation Supporting set-level slice and dice in data warehouses
US8688683B2 (en) 2009-11-30 2014-04-01 Business Objects Software Ltd. Query plan reformulation
US9665620B2 (en) 2010-01-15 2017-05-30 Ab Initio Technology Llc Managing data queries
US8204903B2 (en) 2010-02-16 2012-06-19 Microsoft Corporation Expressing and executing semantic queries within a relational database
US9286370B2 (en) 2010-02-24 2016-03-15 International Business Machines Corporation Viewing a dimensional cube as a virtual data source
US8555265B2 (en) 2010-05-04 2013-10-08 Google Inc. Parallel processing of data
US9495427B2 (en) 2010-06-04 2016-11-15 Yale University Processing of data using a database system in communication with a data processing framework
CN103069385B (zh) 2010-06-15 2016-12-28 起元技术有限责任公司 用于动态加载基于图的计算的系统和方法
JP5536568B2 (ja) 2010-07-01 2014-07-02 インターナショナル・ビジネス・マシーンズ・コーポレーション トランザクションを集約して処理する方法、システム、およびプログラム
US8326821B2 (en) 2010-08-25 2012-12-04 International Business Machines Corporation Transforming relational queries into stream processing
JP5199317B2 (ja) 2010-08-25 2013-05-15 株式会社日立製作所 データベース処理方法、データベース処理システム及びデータベースサーバ
US9128983B2 (en) 2010-10-13 2015-09-08 Aol Inc. Systems and methods for query optimization
US8850574B1 (en) 2011-02-28 2014-09-30 Google Inc. Safe self-modifying code
US20120246158A1 (en) 2011-03-25 2012-09-27 Microsoft Corporation Co-range partition for query plan optimization and data-parallel programming model
US9116955B2 (en) 2011-05-02 2015-08-25 Ab Initio Technology Llc Managing data queries
US8782081B2 (en) 2011-05-11 2014-07-15 Google Inc. Query template definition and transformation
US8898145B2 (en) 2011-06-15 2014-11-25 Microsoft Corporation Query optimization techniques for business intelligence systems
US8635206B2 (en) 2011-06-30 2014-01-21 International Business Machines Corporation Database query optimization
US9449030B2 (en) 2011-06-30 2016-09-20 International Business Machines Corporation Method for native program to inherit same transaction content when invoked by primary program running in separate environment
JP5357286B2 (ja) 2011-09-21 2013-12-04 前田建設工業株式会社 情報処理装置、情報処理方法、およびプログラム
US9177022B2 (en) 2011-11-02 2015-11-03 Microsoft Technology Licensing, Llc User pipeline configuration for rule-based query transformation, generation and result display
US9183302B1 (en) 2012-03-23 2015-11-10 The Mathworks, Inc. Creating a technical computing environment (TCE)-based search engine
JP5835084B2 (ja) 2012-05-02 2015-12-24 富士通株式会社 クエリ統合方法、クエリ統合プログラム、および統合コンポーネント生成装置
US9182957B2 (en) 2012-07-10 2015-11-10 Loring Craymer Method and system for automated improvement of parallelism in program compilation
JP6338579B2 (ja) 2012-07-24 2018-06-06 アビニシオ テクノロジー エルエルシー データモデルにおけるエンティティのマッピング
US9342557B2 (en) 2013-03-13 2016-05-17 Cloudera, Inc. Low latency query engine for Apache Hadoop
US9135301B2 (en) 2013-03-14 2015-09-15 Oracle International Corporation Pushdown of sorting and set operations (union, intersection, minus) to a large number of low-power cores in a heterogeneous system
US9633104B2 (en) 2013-05-03 2017-04-25 Sas Institute Inc. Methods and systems to operate on group-by sets with high cardinality
US10417281B2 (en) 2015-02-18 2019-09-17 Ab Initio Technology Llc Querying a data source on a network

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010075552A (ko) * 1998-10-02 2001-08-09 포만 제프리 엘 네트워크 협동 대화 서비스를 제공하기 위한 시스템 및 방법
JP2006236360A (ja) * 1999-01-13 2006-09-07 Ab Initio Software Corp スクリプト駆動ツールの並列処理アプリケーション
JP2000250798A (ja) * 1999-03-01 2000-09-14 Nippon Steel Corp データ管理システム及びコンピュータ読み取り可能な記録媒体
JP2003505766A (ja) * 1999-07-20 2003-02-12 コンピュータ アソシエイツ シンク,インコーポレイテッド クエリー最適化プラン用インデックスに対する変化の効果を観察するためのデータベースシステム
JP2003099441A (ja) * 2001-09-21 2003-04-04 Hitachi Ltd データ検索手順探索方法
KR20090012243A (ko) * 2006-05-19 2009-02-02 마이크로소프트 코포레이션 검색에 의한 주석달기를 위한 컴퓨터 판독가능 저장 매체, 컴퓨터 구현 방법, 및 컴퓨팅 장치
KR20110094179A (ko) * 2008-10-24 2011-08-22 야후! 인크. 시각적 주석에 기초하여 검색 결과를 모으는 것에 의한 디지털 이미지 검색
US20100153409A1 (en) * 2008-12-12 2010-06-17 Joshi Mahesh V Computer-Implemented Systems And Methods For Providing Paginated Search Results From A Database
US8489622B2 (en) * 2008-12-12 2013-07-16 Sas Institute Inc. Computer-implemented systems and methods for providing paginated search results from a database
KR20110068137A (ko) * 2009-12-15 2011-06-22 한국전자통신연구원 개체명 사전 구축 시스템 및 구축 방법
KR101009924B1 (ko) * 2010-06-25 2011-01-20 한국과학기술정보연구원 온톨로지 스키마와 결합된 개체명 사전 및 마이닝 규칙을 이용한 개체명 사전 또는 마이닝 규칙 데이터베이스 갱신 장치 및 방법
KR101255957B1 (ko) * 2011-12-09 2013-04-24 포항공과대학교 산학협력단 개체명 태깅 방법 및 장치

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Vanja et al., Optimizing Queries in Distributed and Composable Mediators, COOPERATIVE INFORMATION SYSTEMS, pp.291-302, 1999. *
Vanja et al., Optimizing Queries in Distributed and Composable Mediators, COOPERATIVE INFORMATION SYSTEMS, pp.291-302, 1999. 1부. *

Also Published As

Publication number Publication date
CN102822819A (zh) 2012-12-12
AU2017202501A1 (en) 2017-05-04
US11593369B2 (en) 2023-02-28
CN102822819B (zh) 2016-05-11
JP6216423B2 (ja) 2017-10-18
US9665620B2 (en) 2017-05-30
CA2786042A1 (en) 2011-07-21
WO2011088293A1 (en) 2011-07-21
KR20120106827A (ko) 2012-09-26
AU2016202098B2 (en) 2017-02-23
EP2524328A1 (en) 2012-11-21
JP2017016677A (ja) 2017-01-19
JP6000415B2 (ja) 2016-09-28
CN106055584B (zh) 2019-07-16
AU2011205787A1 (en) 2012-07-12
JP2017220268A (ja) 2017-12-14
KR101877481B1 (ko) 2018-07-11
CA2786042C (en) 2019-03-19
US20170228426A1 (en) 2017-08-10
AU2017202501B2 (en) 2018-11-22
JP6578333B2 (ja) 2019-09-18
KR101784785B1 (ko) 2017-10-12
EP3324311A1 (en) 2018-05-23
AU2011205787B2 (en) 2016-02-18
AU2016202098A1 (en) 2016-04-28
JP2015212968A (ja) 2015-11-26
US20110179014A1 (en) 2011-07-21
HK1255489A1 (zh) 2019-08-16
CN106055584A (zh) 2016-10-26
JP2013517574A (ja) 2013-05-16

Similar Documents

Publication Publication Date Title
KR101877481B1 (ko) 데이터 쿼리 관리
KR101915591B1 (ko) 데이터 질의 관리
AU2017202899B2 (en) Managing data queries

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant