KR101784785B1 - 데이터 쿼리 관리 - Google Patents
데이터 쿼리 관리 Download PDFInfo
- Publication number
- KR101784785B1 KR101784785B1 KR1020127018891A KR20127018891A KR101784785B1 KR 101784785 B1 KR101784785 B1 KR 101784785B1 KR 1020127018891 A KR1020127018891 A KR 1020127018891A KR 20127018891 A KR20127018891 A KR 20127018891A KR 101784785 B1 KR101784785 B1 KR 101784785B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- query
- data source
- computer
- database
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24542—Plan optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2425—Iterative querying; Query formulation based on the results of a preceding query
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
- G06F16/244—Grouping and aggregation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2452—Query translation
- G06F16/24522—Translation of natural language queries to structured queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2465—Query processing support for facilitating data mining operations in structured databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3325—Reformulation based on results of preceding query
- G06F16/3326—Reformulation 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/3328—Reformulation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/70—Information retrieval; Database structures therefor; File system structures therefor of video data
- G06F16/73—Querying
- G06F16/732—Query formulation
- G06F16/7343—Query language or query format
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Operations Research (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Fuzzy Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Artificial Intelligence (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
데이터베이스 쿼리를 수신하는 과정, 데이터 요소를 포함하는 데이터 기억부 내에 데이터베이스 테이블(324a, 324b, 324c) 등의 데이터 소스(102)에 관한 정보를 수신하는 과정, 데이터 소스를 나타내는 포맷화된 데이터 편성을 포함하고 데이터 소스의 데이터 요소를 포함하지 않는, 데이터 소스의 구조적 표현(334)을 생성하는 과정, 및 구조적 표현과 데이터베이스 쿼리를, 쿼리 플랜(314)을 생성할 수 있는 플랜 생성기(318)에 제공하는 과정을 포함하는 방법을 제공한다. 또한, 플랜 생성기(318)로부터, 데이터베이스 테이블(324a, 324b, 324c) 등의 데이터 소스(102)에서 데이터베이스 쿼리를 실행하기 위한 동작을 나타내는 쿼리 플랜(314)을 수신하는 과정, 및 쿼리 플랜으로부터 데이터플로우 그래프(312)를 생성하는 과정을 포함하는 방법을 제공한다.
Description
본 개시는 데이터 쿼리를 관리하는 것에 관한 것이다.
데이터는 데이터베이스 내에 기억될 수 있으며 데이터베이스 테이블 등의 다양한 형태로 배치될 수 있다. 데이터베이스 테이블은 공통의 주제 또는 목적을 갖는 일련의 데이터를 포함할 수 있다. 데이터베이스 테이블의 배치는 데이터베이스 규칙에 의해 정의될 수 있으며, 다수의 데이터베이스 테이블은 유사 또는 동일한 배치를 가질 수 있다. 또한, 데이터베이스의 콘텐츠 및 이와 관련된 데이터베이스 테이블은 데이터가 조정, 추가 또는 삭제되는 시간 동안 변경될 수 있다. 데이터를 데이터베이스에 전송하고 데이터를 데이터베이스로부터 전송받기 위해 그리고 데이터베이스 내의 데이터를 조작하기 위해 여러 기술이 사용될 수 있다.
하나의 관점으로서, 일반적으로, 데이터 관리 시스템(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은 데이터베이스 시스템의 동작에 대한 플로차트이다.
도 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 (50)
- 데이터 소스로부터의 데이터에 대한 동작을 위한 컴퓨터-구현 방법으로서,
상기 데이터는 데이터 소스의 유형의 비일시적 컴퓨터-판독가능 매체에 기억되고,
상기 동작은 상관적인 데이터베이스에 적용가능한 쿼리 언어에 따라 표현되는 쿼리에 기초하고, 상관적인 데이터베이스를 관리하는 시스템과 상이한 실행 시스템에서 쿼리의 실행을 포함하고,
상기 실행은:
쿼리를 수신하는 단계;
상기 쿼리에 기초하여 데이터 소스를 식별하는 단계;
상기 데이터 소스의 데이터를 기억하는 상관적인 데이터베이스를 관리하는 시스템과 상이한 요청 시스템을 식별하는 단계;
상기 요청 시스템에 의해, 상기 쿼리에 기초하여 쿼리 플래너(query planner)에 대한 요청을 생성하는 단계;
상기 요청 시스템에 의해, 상기 쿼리 플래너에 상기 요청을 제공하는 단계;
상기 요청에 기초하여 상기 쿼리 플래너에 의해 생성된 쿼리 플랜을 수신하는 단계 ― 상기 쿼리 플랜은 상관적인 데이터베이스를 관리하는 시스템에 의해 수행되는 하나 이상의 단계의 기술을 포함함 ―;
실행되는 하나 이상의 동작을 나타내고, 동작을 수행하도록 실행가능한 프로그램 코드를 호출하기 위해 실행 시스템에 의해 사용되는 정보와 연관되고, 상기 프로그램 코드에 이용가능한 데이터를 형성하기 위해 실행 시스템에 의해 사용되는 정보와 연관되는 제1 노드로서, 상기 동작은 상기 쿼리 플랜에 의해 기술된 단계에 기초하여 선택되는, 제1 노드,
입력 데이터로서 데이터플로우 그래프의 제2 노드의 동작에 제공되는 제1 노드의 동작의 출력 데이터를 나타내는 하나 이상의 링크, 및
상기 쿼리 플랜에 의해 기술된 임의의 단계에 기초하여 선택된 동작 이외에 실행되는 동작을 나타내는 제3 노드
를 포함하는 데이터플로우 그래프를 인스턴스화하는(instantiate) 데이터 구조를 생성하는 단계;
상기 데이터 소스로부터 데이터를 수신하는 단계;
상기 데이터 소스의 데이터를 기억하는 상관적인 데이터베이스를 관리하는 시스템과 상이한 실행 시스템을 식별하는 단계; 및
식별된 실행 시스템에서, 상기 데이터플로우 그래프에 기초하는 프로그램 코드를 실행하는 단계
를 포함하는,
데이터 소스로부터의 데이터에 대한 동작을 위한 컴퓨터-구현 방법. - 삭제
- 제1항에 있어서,
상기 제3 노드는 상기 데이터플로우 그래프를 제2 데이터플로우 그래프의 노드에 링크하고, 상기 제2 데이터플로우 그래프는 상기 쿼리 플랜에 의해 기술된 임의의 단계에 기초하여 선택된 동작 이외에 실행되는 동작을 인스턴스화하는 하나 이상의 노드를 포함하는, 데이터 소스로부터의 데이터에 대한 동작을 위한 컴퓨터-구현 방법. - 제1항에 있어서,
상기 데이터 소스는 상관적인 데이터베이스 테이블을 포함하는, 데이터 소스로부터의 데이터에 대한 동작을 위한 컴퓨터-구현 방법. - 제1항에 있어서,
상기 데이터 소스는 상관적인 데이터베이스 테이블 이외의 데이터의 부분을 포함하는, 데이터 소스로부터의 데이터에 대한 동작을 위한 컴퓨터-구현 방법. - 제1항에 있어서,
상기 데이터 소스는 플랫 파일을 포함하는, 데이터 소스로부터의 데이터에 대한 동작을 위한 컴퓨터-구현 방법. - 제1항에 있어서,
상기 쿼리는 SQL(Structured Query Language) 쿼리를 포함하는, 데이터 소스로부터의 데이터에 대한 동작을 위한 컴퓨터-구현 방법. - 제1항에 있어서,
상기 데이터플로우 그래프에 기초하는 프로그램 코드로부터 상기 쿼리의 결과를 수신하는 단계를 포함하는, 데이터 소스로부터의 데이터에 대한 동작을 위한 컴퓨터-구현 방법. - 제1항에 있어서,
쿼리 플랜 생성기는 쿼리 옵티마이저(query optimizer)를 포함하는, 데이터 소스로부터의 데이터에 대한 동작을 위한 컴퓨터-구현 방법. - 제1항에 있어서,
상기 쿼리 플랜은 상기 쿼리 내에 파라미터의 데이터 타입을 포함하는, 데이터 소스로부터의 데이터에 대한 동작을 위한 컴퓨터-구현 방법. - 제1항에 있어서,
상기 쿼리는 실행가능 함수(executable function)에 대한 참조(reference)를 포함하며, 상기 데이터플로우 그래프는 상기 실행가능 함수를 나타내는 노드를 포함하는, 데이터 소스로부터의 데이터에 대한 동작을 위한 컴퓨터-구현 방법. - 제1항에 있어서,
상기 쿼리에 기초하여 쿼리 플래너에 대한 요청을 생성하는 단계는,
상기 데이터 소스의 구조적 표현(structural representation)을 생성하는 단계 ― 상기 구조적 표현이 상기 데이터 소스를 반영하는 포맷화된 데이터 편성(formatted data organization)을 포함하고 상기 데이터 소스의 데이터를 포함하지 않음 ―; 및
상기 쿼리 플래너에 대한 요청 내에 상기 구조적 표현을 포함시키는 단계를 포함하는, 데이터 소스로부터의 데이터에 대한 동작을 위한 컴퓨터-구현 방법. - 제1항에 있어서,
상기 데이터 구조는 식별된 실행 시스템에 의해 생성되는, 데이터 소스로부터의 데이터에 대한 동작을 위한 컴퓨터-구현 방법. - 제1항에 있어서,
상기 데이터 구조는 식별된 실행 시스템과 상이한 시스템에 의해 생성되는, 데이터 소스로부터의 데이터에 대한 동작을 위한 컴퓨터-구현 방법. - 데이터 소스로부터의 데이터에 대한 동작을 위해 하나 이상의 프로세서를 포함하는 시스템으로서,
상기 데이터는 데이터 소스의 유형의 비일시적 컴퓨터-판독가능 매체에 기억되고,
상기 동작은 상관적인 데이터베이스에 적용가능한 쿼리 언어에 따라 표현되는 쿼리에 기초하고, 상관적인 데이터베이스를 관리하는 시스템과 상이한 실행 시스템에서 쿼리의 실행을 포함하고,
상기 시스템은,
컴퓨터 시스템, 요청 시스템 및 실행 시스템
을 포함하고,
상기 컴퓨터 시스템은,
쿼리를 수신하고;
상기 쿼리에 기초하여 데이터 소스를 식별하고;
상기 데이터 소스의 데이터를 기억하는 상관적인 데이터베이스를 관리하는 시스템과 상이한 요청 시스템을 식별하고;
상기 요청 시스템에 의해, 상기 쿼리에 기초하여 쿼리 플래너에 대한 요청을 생성하고;
상기 요청 시스템에 의해, 상기 쿼리 플래너에 상기 요청을 제공하고;
상기 요청에 기초하여 상기 쿼리 플래너에 의해 생성된 쿼리 플랜을 수신하고 ― 상기 쿼리 플랜은 상관적인 데이터베이스를 관리하는 시스템에 의해 수행되는 하나 이상의 단계의 기술을 포함함 ―;
실행되는 하나 이상의 동작을 나타내고, 동작을 수행하도록 실행가능한 프로그램 코드를 호출하기 위해 실행 시스템에 의해 사용되는 정보와 연관되고, 상기 프로그램 코드에 이용가능한 데이터를 형성하기 위해 실행 시스템에 의해 사용되는 정보와 연관되는 제1 노드로서, 상기 동작은 상기 쿼리 플랜에 의해 기술된 단계에 기초하여 선택되는, 제1 노드,
입력 데이터로서 데이터플로우 그래프의 제2 노드의 동작에 제공되는 제1 노드의 동작의 출력 데이터를 나타내는 하나 이상의 링크, 및
상기 쿼리 플랜에 의해 기술된 임의의 단계에 기초하여 선택된 동작 이외에 실행되는 동작을 나타내는 제3 노드
를 포함하는 데이터플로우 그래프를 인스턴스화하는 데이터 구조를 생성하고;
상기 데이터 소스로부터 데이터를 수신하고;
상기 데이터 소스의 데이터를 기억하는 상관적인 데이터베이스를 관리하는 시스템과 상이한 실행 시스템을 식별하고;
식별된 실행 시스템에 상기 데이터플로우 그래프에 기초하는 프로그램 코드를 제공하기 위해 구성되고,
상기 요청 시스템은 상기 데이터 소스의 데이터를 기억하는 상관적인 데이터베이스를 관리하는 시스템과 상이하며, 상기 쿼리 플래너에 대한 요청을 생성하고 제공하도록 구성되고,
상기 실행 시스템은 상기 데이터 소스의 데이터를 기억하는 상관적인 데이터베이스를 관리하는 시스템과 상이하며, 상기 프로그램 코드를 수신하고 실행하도록 구성되는,
데이터 소스로부터의 데이터에 대한 동작을 위해 하나 이상의 프로세서를 포함하는 시스템. - 컴퓨터로 하여금 데이터 소스로부터의 데이터에 대한 동작을 하게 하는 명령어를 포함하는 컴퓨터 프로그램을 기억하는 컴퓨터-판독가능 저장 디바이스로서,
상기 데이터는 데이터 소스의 유형의 비일시적 컴퓨터-판독가능 매체에 기억되고,
상기 동작은 상관적인 데이터베이스에 적용가능한 쿼리 언어에 따라 표현되는 쿼리에 기초하고, 상관적인 데이터베이스를 관리하는 시스템과 상이한 실행 시스템에서 쿼리의 실행을 포함하고,
상기 실행은:
쿼리를 수신하는 단계;
상기 쿼리에 기초하여 데이터 소스를 식별하는 단계;
상기 데이터 소스의 데이터를 기억하는 상관적인 데이터베이스를 관리하는 시스템과 상이한 요청 시스템을 식별하는 단계;
상기 요청 시스템에 의해, 상기 쿼리에 기초하여 쿼리 플래너에 대한 요청을 생성하는 단계;
상기 요청 시스템에 의해, 상기 쿼리 플래너에 상기 요청을 제공하는 단계;
상기 요청에 기초하여 상기 쿼리 플래너에 의해 생성된 쿼리 플랜을 수신하는 단계 ― 상기 쿼리 플랜은 상관적인 데이터베이스를 관리하는 시스템에 의해 수행되는 하나 이상의 단계의 기술을 포함함 ―;
실행되는 하나 이상의 동작을 나타내고, 동작을 수행하도록 실행가능한 프로그램 코드를 호출하기 위해 실행 시스템에 의해 사용되는 정보와 연관되고, 상기 프로그램 코드에 이용가능한 데이터를 형성하기 위해 실행 시스템에 의해 사용되는 정보와 연관되는 제1 노드로서, 상기 동작은 상기 쿼리 플랜에 의해 기술된 단계에 기초하여 선택되는, 제1 노드,
입력 데이터로서 데이터플로우 그래프의 제2 노드의 동작에 제공되는 제1 노드의 동작의 출력 데이터를 나타내는 하나 이상의 링크, 및
상기 쿼리 플랜에 의해 기술된 임의의 단계에 기초하여 선택된 동작 이외에 실행되는 동작을 나타내는 제3 노드
를 포함하는 데이터플로우 그래프를 인스턴스화하는 데이터 구조를 생성하는 단계;
상기 데이터 소스로부터 데이터를 수신하는 단계;
상기 데이터 소스의 데이터를 기억하는 상관적인 데이터베이스를 관리하는 시스템과 상이한 실행 시스템을 식별하는 단계; 및
상기 데이터플로우 그래프에 기초하는 프로그램 코드를 식별된 실행 시스템에 제공하는 단계
를 포함하는,
컴퓨터로 하여금 데이터 소스로부터의 데이터에 대한 동작을 하게 하는 명령어를 포함하는 컴퓨터 프로그램을 기억하는 컴퓨터-판독가능 저장 디바이스. - 데이터 소스로부터의 데이터에 대한 동작을 위해 하나 이상의 프로세서를 포함하는 시스템으로서,
상기 데이터는 데이터 소스의 유형의 비일시적 컴퓨터-판독가능 매체에 기억되고,
상기 동작은 상관적인 데이터베이스에 적용가능한 쿼리 언어에 따라 표현되는 쿼리에 기초하고, 상관적인 데이터베이스를 관리하는 시스템과 상이한 실행 시스템에서 쿼리의 실행을 포함하고,
상기 시스템은,
쿼리를 수신하고;
상기 쿼리에 기초하여 데이터 소스를 식별하고;
상기 데이터 소스의 데이터를 기억하는 상관적인 데이터베이스를 관리하는 시스템과 상이한 요청 시스템을 식별하고;
상기 요청 시스템에 의해, 상기 쿼리에 기초하여 쿼리 플래너에 대한 요청을 생성하고;
상기 요청 시스템에 의해, 상기 쿼리 플래너에 상기 요청을 제공하고;
상기 요청에 기초하여 상기 쿼리 플래너에 의해 생성된 쿼리 플랜을 수신하고 ― 상기 쿼리 플랜은 상관적인 데이터베이스를 관리하는 시스템에 의해 수행되는 하나 이상의 단계의 기술을 포함함 ―;
실행되는 하나 이상의 동작을 나타내고, 동작을 수행하도록 실행가능한 프로그램 코드를 호출하기 위해 실행 시스템에 의해 사용되는 정보와 연관되고, 상기 프로그램 코드에 이용가능한 데이터를 형성하기 위해 실행 시스템에 의해 사용되는 정보와 연관되는 제1 노드로서, 상기 동작은 상기 쿼리 플랜에 의해 기술된 단계에 기초하여 선택되는, 제1 노드,
입력 데이터로서 데이터플로우 그래프의 제2 노드의 동작에 제공되는 제1 노드의 동작의 출력 데이터를 나타내는 하나 이상의 링크, 및
상기 쿼리 플랜에 의해 기술된 임의의 단계에 기초하여 선택된 동작 이외에 실행되는 동작을 나타내는 제3 노드
를 포함하는 데이터플로우 그래프를 인스턴스화하는 데이터 구조를 생성하고;
상기 데이터 소스로부터 데이터를 수신하고;
상기 데이터 소스의 데이터를 기억하는 상관적인 데이터베이스를 관리하는 시스템과 상이한 실행 시스템을 식별하고;
식별된 실행 시스템에 상기 데이터플로우 그래프에 기초하는 프로그램 코드를 제공하기 위한 수단, 그리고
상기 프로그램 코드를 수신하고 상기 프로그램 코드를 실행하기 위한 수단
을 포함하는,
데이터 소스로부터의 데이터에 대한 동작을 위해 하나 이상의 프로세서를 포함하는 시스템. - 삭제
- 제15항에 있어서,
상기 제3 노드는 상기 데이터플로우 그래프를 제2 데이터플로우 그래프의 노드에 링크하고, 상기 제2 데이터플로우 그래프는 상기 쿼리 플랜에 의해 기술된 임의의 단계에 기초하여 선택된 동작 이외에 실행되는 동작을 인스턴스화하는 하나 이상의 노드를 포함하는, 데이터 소스로부터의 데이터에 대한 동작을 위해 하나 이상의 프로세서를 포함하는 시스템. - 제15항에 있어서,
상기 데이터 소스는 상관적인 데이터베이스 테이블을 포함하는, 데이터 소스로부터의 데이터에 대한 동작을 위해 하나 이상의 프로세서를 포함하는 시스템. - 제15항에 있어서,
상기 데이터 소스는 상관적인 데이터베이스 테이블 이외의 데이터의 부분을 포함하는, 데이터 소스로부터의 데이터에 대한 동작을 위해 하나 이상의 프로세서를 포함하는 시스템. - 제15항에 있어서,
상기 데이터 소스는 플랫 파일을 포함하는, 데이터 소스로부터의 데이터에 대한 동작을 위해 하나 이상의 프로세서를 포함하는 시스템. - 제15항에 있어서,
상기 쿼리는 SQL 쿼리를 포함하는, 데이터 소스로부터의 데이터에 대한 동작을 위해 하나 이상의 프로세서를 포함하는 시스템. - 제15항에 있어서,
상기 컴퓨터 시스템은 상기 데이터플로우 그래프에 기초하는 프로그램 코드로부터 상기 쿼리의 결과를 수신하기 위해 구성되는, 데이터 소스로부터의 데이터에 대한 동작을 위해 하나 이상의 프로세서를 포함하는 시스템. - 제15항에 있어서,
쿼리 플랜 생성기는 쿼리 옵티마이저를 포함하는, 데이터 소스로부터의 데이터에 대한 동작을 위해 하나 이상의 프로세서를 포함하는 시스템. - 제15항에 있어서,
상기 쿼리 플랜은 상기 쿼리 내에 파라미터의 데이터 타입을 포함하는, 데이터 소스로부터의 데이터에 대한 동작을 위해 하나 이상의 프로세서를 포함하는 시스템. - 제15항에 있어서,
상기 쿼리는 실행가능 함수에 대한 참조를 포함하며, 상기 데이터플로우 그래프는 상기 실행가능 함수를 나타내는 노드를 포함하는, 데이터 소스로부터의 데이터에 대한 동작을 위해 하나 이상의 프로세서를 포함하는 시스템. - 제15항에 있어서,
상기 쿼리에 기초하여 쿼리 플래너에 대한 요청을 생성하는 것은,
상기 데이터 소스의 구조적 표현을 생성하는 것 ― 상기 구조적 표현이 상기 데이터 소스를 반영하는 포맷화된 데이터 편성을 포함하고 상기 데이터 소스의 데이터를 포함하지 않음 ―; 및
상기 쿼리 플래너에 대한 요청 내에 상기 구조적 표현을 포함시키는 것을 포함하는, 데이터 소스로부터의 데이터에 대한 동작을 위해 하나 이상의 프로세서를 포함하는 시스템. - 제15항에 있어서,
상기 데이터 구조는 식별된 실행 시스템에 의해 생성되는, 데이터 소스로부터의 데이터에 대한 동작을 위해 하나 이상의 프로세서를 포함하는 시스템. - 제15항에 있어서,
상기 데이터 구조는 식별된 실행 시스템과 상이한 시스템에 의해 생성되는, 데이터 소스로부터의 데이터에 대한 동작을 위해 하나 이상의 프로세서를 포함하는 시스템. - 삭제
- 제16항에 있어서,
상기 제3 노드는 상기 데이터플로우 그래프를 제2 데이터플로우 그래프의 노드에 링크하고, 상기 제2 데이터플로우 그래프는 상기 쿼리 플랜에 의해 기술된 임의의 단계에 기초하여 선택된 동작 이외에 실행되는 동작을 인스턴스화하는 하나 이상의 노드를 포함하는, 컴퓨터로 하여금 데이터 소스로부터의 데이터에 대한 동작을 하게 하는 명령어를 포함하는 컴퓨터 프로그램을 기억하는 컴퓨터-판독가능 저장 디바이스. - 제16항에 있어서,
상기 데이터 소스는 상관적인 데이터베이스 테이블을 포함하는, 컴퓨터로 하여금 데이터 소스로부터의 데이터에 대한 동작을 하게 하는 명령어를 포함하는 컴퓨터 프로그램을 기억하는 컴퓨터-판독가능 저장 디바이스. - 제16항에 있어서,
상기 데이터 소스는 상관적인 데이터베이스 테이블 이외의 데이터의 부분을 포함하는, 컴퓨터로 하여금 데이터 소스로부터의 데이터에 대한 동작을 하게 하는 명령어를 포함하는 컴퓨터 프로그램을 기억하는 컴퓨터-판독가능 저장 디바이스. - 제16항에 있어서,
상기 데이터 소스는 플랫 파일을 포함하는, 컴퓨터로 하여금 데이터 소스로부터의 데이터에 대한 동작을 하게 하는 명령어를 포함하는 컴퓨터 프로그램을 기억하는 컴퓨터-판독가능 저장 디바이스. - 제16항에 있어서,
상기 쿼리는 SQL 쿼리를 포함하는, 컴퓨터로 하여금 데이터 소스로부터의 데이터에 대한 동작을 하게 하는 명령어를 포함하는 컴퓨터 프로그램을 기억하는 컴퓨터-판독가능 저장 디바이스. - 제16항에 있어서,
상기 데이터플로우 그래프에 기초하는 프로그램 코드로부터 상기 쿼리의 결과를 수신하는 단계를 포함하는, 컴퓨터로 하여금 데이터 소스로부터의 데이터에 대한 동작을 하게 하는 명령어를 포함하는 컴퓨터 프로그램을 기억하는 컴퓨터-판독가능 저장 디바이스. - 제16항에 있어서,
쿼리 플랜 생성기는 쿼리 옵티마이저를 포함하는, 컴퓨터로 하여금 데이터 소스로부터의 데이터에 대한 동작을 하게 하는 명령어를 포함하는 컴퓨터 프로그램을 기억하는 컴퓨터-판독가능 저장 디바이스. - 제16항에 있어서,
상기 쿼리 플랜은 상기 쿼리 내에 파라미터의 데이터 타입을 포함하는, 컴퓨터로 하여금 데이터 소스로부터의 데이터에 대한 동작을 하게 하는 명령어를 포함하는 컴퓨터 프로그램을 기억하는 컴퓨터-판독가능 저장 디바이스. - 제16항에 있어서,
상기 쿼리는 실행가능 함수에 대한 참조를 포함하며, 상기 데이터플로우 그래프는 상기 실행가능 함수를 나타내는 노드를 포함하는, 컴퓨터로 하여금 데이터 소스로부터의 데이터에 대한 동작을 하게 하는 명령어를 포함하는 컴퓨터 프로그램을 기억하는 컴퓨터-판독가능 저장 디바이스. - 제16항에 있어서,
상기 쿼리에 기초하여 쿼리 플래너에 대한 요청을 생성하는 단계는,
상기 데이터 소스의 구조적 표현을 생성하는 단계 ― 상기 구조적 표현이 상기 데이터 소스를 반영하는 포맷화된 데이터 편성을 포함하고 상기 데이터 소스의 데이터를 포함하지 않음 ―; 및
상기 쿼리 플래너에 대한 요청 내에 상기 구조적 표현을 포함시키는 단계를 포함하는, 컴퓨터로 하여금 데이터 소스로부터의 데이터에 대한 동작을 하게 하는 명령어를 포함하는 컴퓨터 프로그램을 기억하는 컴퓨터-판독가능 저장 디바이스. - 제16항에 있어서,
상기 데이터 구조는 식별된 실행 시스템에 의해 생성되는, 컴퓨터로 하여금 데이터 소스로부터의 데이터에 대한 동작을 하게 하는 명령어를 포함하는 컴퓨터 프로그램을 기억하는 컴퓨터-판독가능 저장 디바이스. - 제16항에 있어서,
상기 데이터 구조는 식별된 실행 시스템과 상이한 시스템에 의해 생성되는, 컴퓨터로 하여금 데이터 소스로부터의 데이터에 대한 동작을 하게 하는 명령어를 포함하는 컴퓨터 프로그램을 기억하는 컴퓨터-판독가능 저장 디바이스. - 제1항에 있어서,
상기 실행 시스템과 상기 요청 시스템은 동일한 시스템인 것인, 데이터 소스로부터의 데이터에 대한 동작을 위한 컴퓨터-구현 방법. - 제1항에 있어서,
상기 실행 시스템과 상기 요청 시스템은 상이한 시스템인 것인, 데이터 소스로부터의 데이터에 대한 동작을 위한 컴퓨터-구현 방법. - 제15항에 있어서,
상기 실행 시스템과 상기 요청 시스템은 동일한 시스템인 것인, 데이터 소스로부터의 데이터에 대한 동작을 위해 하나 이상의 프로세서를 포함하는 시스템. - 제15항에 있어서,
상기 실행 시스템과 상기 요청 시스템은 상이한 시스템인 것인, 데이터 소스로부터의 데이터에 대한 동작을 위해 하나 이상의 프로세서를 포함하는 시스템. - 제16항에 있어서,
상기 실행 시스템과 상기 요청 시스템은 동일한 시스템인 것인, 컴퓨터로 하여금 데이터 소스로부터의 데이터에 대한 동작을 하게 하는 명령어를 포함하는 컴퓨터 프로그램을 기억하는 컴퓨터-판독가능 저장 디바이스. - 제16항에 있어서,
상기 실행 시스템과 상기 요청 시스템은 상이한 시스템인 것인, 컴퓨터로 하여금 데이터 소스로부터의 데이터에 대한 동작을 하게 하는 명령어를 포함하는 컴퓨터 프로그램을 기억하는 컴퓨터-판독가능 저장 디바이스. - 데이터 소스로부터의 데이터에 대한 동작 방법으로서,
상기 데이터는 데이터 소스의 유형의 비일시적 컴퓨터-판독가능 매체에 기억되고,
상기 동작은 상관적인 데이터베이스에 적용가능한 쿼리 언어에 따라 표현되는 쿼리에 기초하고, 상관적인 데이터베이스를 관리하는 시스템과 상이한 실행 시스템에서 쿼리의 실행을 포함하고,
상기 실행은:
쿼리를 수신하는 단계;
상기 쿼리에 기초하여 데이터 소스를 식별하는 단계;
상기 데이터 소스의 데이터를 기억하는 상관적인 데이터베이스를 관리하는 시스템과 상이한 요청 시스템을 식별하는 단계;
상기 데이터 소스의 데이터의 구조적 표현을 생성하는 단계 ― 상기 구조적 표현이 상기 데이터 소스를 반영하는 포맷화된 데이터 편성을 포함하고 상기 데이터 소스의 데이터의 적어도 일부를 포함하지 않음 ―;
상기 쿼리에 기초하여 쿼리 플래너에 대한 요청을 생성하는 단계 ― 상기 요청은 상기 쿼리 플래너가 상기 쿼리에 기초하여 쿼리 플랜을 생성하도록 지시하고 상기 구조적 표현을 상기 쿼리에 따라 작동되는 데이터로서 제공함 ―;
상기 쿼리 플래너에 상기 요청을 제공하는 단계;
상기 요청에 기초하여 상기 쿼리 플래너에 의해 생성된 쿼리 플랜을 수신하는 단계 ― 상기 쿼리 플랜은 상관적인 데이터베이스를 관리하는 시스템에 의해 수행되는 하나 이상의 단계의 기술을 포함함 ―;
실행되는 하나 이상의 동작을 나타내고, 동작을 수행하도록 실행가능한 프로그램 코드를 호출하기 위해 실행 시스템에 의해 사용되는 정보와 연관되고, 상기 프로그램 코드에 이용가능한 데이터를 형성하기 위해 실행 시스템에 의해 사용되는 정보와 연관되는 제1 노드로서, 상기 동작은 상기 쿼리 플랜에 의해 기술된 단계에 기초하여 선택되는, 제1 노드,
입력 데이터로서 데이터플로우 그래프의 제2 노드의 동작에 제공되는 제1 노드의 동작의 출력 데이터를 나타내는 하나 이상의 링크, 및
상기 쿼리 플랜에 의해 기술된 임의의 단계에 기초하여 선택된 동작 이외에 실행되는 동작을 나타내는 제3 노드
를 포함하는 데이터플로우 그래프를 인스턴스화하는 데이터 구조를 생성하는 단계;
상기 데이터 소스로부터 데이터를 수신하는 단계; 및
식별된 실행 시스템에서, 상기 데이터플로우 그래프에 기초하는 프로그램 코드를 실행하는 단계
를 포함하는,
데이터 소스로부터의 데이터에 대한 동작 방법.
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 Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177027578A Division KR101877481B1 (ko) | 2010-01-15 | 2011-01-14 | 데이터 쿼리 관리 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120106827A KR20120106827A (ko) | 2012-09-26 |
KR101784785B1 true KR101784785B1 (ko) | 2017-10-12 |
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 After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177027578A KR101877481B1 (ko) | 2010-01-15 | 2011-01-14 | 데이터 쿼리 관리 |
Country Status (9)
Country | Link |
---|---|
US (2) | US9665620B2 (ko) |
EP (2) | EP2524328A1 (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 (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9665620B2 (en) | 2010-01-15 | 2017-05-30 | Ab Initio Technology Llc | Managing data queries |
US9251225B2 (en) | 2012-07-24 | 2016-02-02 | Ab Initio Technology Llc | Mapping entities in data models |
WO2015085152A1 (en) | 2013-12-05 | 2015-06-11 | Ab Initio Technology Llc | Managing interfaces for dataflow graphs composed of sub-graphs |
CA3092699C (en) | 2013-12-06 | 2023-07-25 | Ab Initio Technology Llc | Source code translation |
CN103729471B (zh) * | 2014-01-21 | 2017-03-08 | 华为软件技术有限公司 | 数据库查询方法和装置 |
US10191863B2 (en) | 2014-03-14 | 2019-01-29 | Ab Initio Technology Llc | Mapping attributes of keyed entities |
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 |
AU2016377516B2 (en) | 2015-12-21 | 2020-01-30 | Ab Initio Technology Llc | Sub-graph interface generation |
WO2017223464A1 (en) * | 2016-06-23 | 2017-12-28 | 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 | 株式会社日立制作所 | 一种自动收集数据的方法、装置、介质、设备及系统 |
US12013856B2 (en) * | 2018-08-13 | 2024-06-18 | Amazon Technologies, Inc. | Burst performance of database queries according to query size |
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 (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 | スクリプト駆動ツールの並列処理アプリケーション |
Family Cites Families (180)
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 |
US5712971A (en) | 1995-12-11 | 1998-01-27 | Ab Initio Software Corporation | Methods and systems for reconstructing the state of a computation |
US5819021A (en) | 1995-12-11 | 1998-10-06 | Ab Initio Software Corporation | Overpartitioning system and method for increasing checkpoints in component-based parallel applications |
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 |
CN1151488C (zh) * | 1998-10-02 | 2004-05-26 | 国际商业机器公司 | 通过一般分层对象进行有效语音导航的结构框架 |
JP2000148699A (ja) | 1998-11-06 | 2000-05-30 | Nec Corp | ネットワークマネージメントシステム |
JP4406944B2 (ja) * | 1998-11-11 | 2010-02-03 | 株式会社日立製作所 | 計算機システム及び問合せに対する処理分散システム |
JP4794709B2 (ja) * | 1999-03-01 | 2011-10-19 | 新日鉄ソリューションズ株式会社 | データ管理システム及びコンピュータ読み取り可能な記録媒体 |
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 |
US7805411B2 (en) * | 2003-09-06 | 2010-09-28 | Oracle International Corporation | Auto-tuning SQL statements |
WO2005029280A2 (en) | 2003-09-19 | 2005-03-31 | 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 |
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 |
CA2519604C (en) | 2005-06-23 | 2011-07-12 | Cognos Incorporated | Master-detail provider and method of providing master-detail functionality |
US7716630B2 (en) | 2005-06-27 | 2010-05-11 | Ab Initio Technology Llc | Managing parameters for graph-based computations |
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 |
WO2007006143A1 (en) | 2005-07-13 | 2007-01-18 | The Hospital For Sick Children | Compositions and methods for detecting transformed cells |
CA2519001A1 (en) | 2005-09-13 | 2007-03-13 | Cognos Incorporated | System and method of data agnostic business intelligence query |
CA2519010A1 (en) | 2005-09-13 | 2007-03-13 | Cognos Incorporated | Query framework system and method |
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 |
US8341112B2 (en) * | 2006-05-19 | 2012-12-25 | Microsoft Corporation | Annotation by search |
EP2021951B1 (de) * | 2006-06-01 | 2010-09-01 | mediareif Möstl & Reif Kommunikations- und Informationstechnologien OEG | Verfahren zum steuern eines relationalen datenbanksystems |
EP2050013A4 (en) | 2006-08-10 | 2010-01-06 | Ab Initio Software Llc | DISTRIBUTION SERVICES IN DIAGRAM-BASED CALCULATIONS |
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 |
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 |
US20100005077A1 (en) * | 2008-07-07 | 2010-01-07 | Kickfire, Inc. | Methods and systems for generating query plans that are compatible for execution in hardware |
EP2191362B1 (en) | 2007-09-20 | 2015-08-19 | Ab Initio Technology LLC | Managing data flows in graph-based computations |
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 |
EP2260404A4 (en) | 2008-02-26 | 2016-03-30 | Ab Initio Technology Llc | GRAPHICAL PRESENTATIONS 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 |
US7962500B2 (en) * | 2008-10-24 | 2011-06-14 | Yahoo! Inc. | Digital image retrieval by aggregating search results based on visual annotations |
US20100121868A1 (en) | 2008-11-07 | 2010-05-13 | Yann Le Biannic | Converting a database query to a multi-dimensional expression query |
US8489622B2 (en) * | 2008-12-12 | 2013-07-16 | Sas Institute Inc. | Computer-implemented systems and methods for providing paginated search results from a database |
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 | 株式会社日立製作所 | データベース処理システム、計算機及びデータベース処理方法 |
KR20150038758A (ko) | 2009-02-13 | 2015-04-08 | 아브 이니티오 테크놀로지 엘엘시 | 태스크 실행 관리 |
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 |
KR101302563B1 (ko) * | 2009-12-15 | 2013-09-02 | 한국전자통신연구원 | 개체명 사전 구축 시스템 및 구축 방법 |
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 |
EP2583168B1 (en) | 2010-06-15 | 2017-11-08 | Ab Initio Technology LLC | Dynamically loading graph-based computations |
KR101009924B1 (ko) * | 2010-06-25 | 2011-01-20 | 한국과학기술정보연구원 | 온톨로지 스키마와 결합된 개체명 사전 및 마이닝 규칙을 이용한 개체명 사전 또는 마이닝 규칙 데이터베이스 갱신 장치 및 방법 |
JP5536568B2 (ja) | 2010-07-01 | 2014-07-02 | インターナショナル・ビジネス・マシーンズ・コーポレーション | トランザクションを集約して処理する方法、システム、およびプログラム |
JP5199317B2 (ja) | 2010-08-25 | 2013-05-15 | 株式会社日立製作所 | データベース処理方法、データベース処理システム及びデータベースサーバ |
US8326821B2 (en) | 2010-08-25 | 2012-12-04 | International Business Machines Corporation | Transforming relational queries into stream processing |
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 |
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 |
US8635206B2 (en) | 2011-06-30 | 2014-01-21 | International Business Machines Corporation | Database query optimization |
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 |
KR101255957B1 (ko) * | 2011-12-09 | 2013-04-24 | 포항공과대학교 산학협력단 | 개체명 태깅 방법 및 장치 |
US9317551B1 (en) | 2012-03-23 | 2016-04-19 | The Mathworks, Inc. | Transforming a search query into a format understood by 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 |
US9251225B2 (en) | 2012-07-24 | 2016-02-02 | Ab Initio Technology Llc | Mapping entities in data models |
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 |
-
2010
- 2010-01-15 US US12/688,316 patent/US9665620B2/en active Active
-
2011
- 2011-01-14 CA CA2786042A patent/CA2786042C/en active Active
- 2011-01-14 EP EP11702533A patent/EP2524328A1/en not_active Ceased
- 2011-01-14 KR KR1020127018891A patent/KR101784785B1/ko active IP Right Grant
- 2011-01-14 WO PCT/US2011/021260 patent/WO2011088293A1/en active Application Filing
- 2011-01-14 AU AU2011205787A patent/AU2011205787B2/en active Active
- 2011-01-14 CN CN201610342187.2A patent/CN106055584B/zh active Active
- 2011-01-14 KR KR1020177027578A patent/KR101877481B1/ko active IP Right Grant
- 2011-01-14 JP JP2012549105A patent/JP2013517574A/ja active Pending
- 2011-01-14 EP EP17202770.8A patent/EP3324311A1/en not_active Ceased
- 2011-01-14 CN CN201180014176.7A patent/CN102822819B/zh active Active
-
2015
- 2015-07-08 JP JP2015137280A patent/JP6000415B2/ja active Active
-
2016
- 2016-04-04 AU AU2016202098A patent/AU2016202098B2/en active Active
- 2016-08-30 JP JP2016167897A patent/JP6216423B2/ja active Active
-
2017
- 2017-04-18 AU AU2017202501A patent/AU2017202501B2/en active Active
- 2017-04-25 US US15/496,891 patent/US11593369B2/en active Active
- 2017-09-22 JP JP2017182015A patent/JP6578333B2/ja active Active
-
2018
- 2018-11-16 HK HK18114672.6A patent/HK1255489A1/zh unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006236360A (ja) | 1999-01-13 | 2006-09-07 | Ab Initio Software Corp | スクリプト駆動ツールの並列処理アプリケーション |
JP2003505766A (ja) | 1999-07-20 | 2003-02-12 | コンピュータ アソシエイツ シンク,インコーポレイテッド | クエリー最適化プラン用インデックスに対する変化の効果を観察するためのデータベースシステム |
JP2003099441A (ja) | 2001-09-21 | 2003-04-04 | Hitachi Ltd | データ検索手順探索方法 |
Non-Patent Citations (1)
Title |
---|
Vanja et al., Optimizing Queries in Distributed and Composable Mediators, COOPERATIVE INFORMATION SYSTEMS, pp.291-302, 1999.* |
Also Published As
Publication number | Publication date |
---|---|
JP2015212968A (ja) | 2015-11-26 |
US11593369B2 (en) | 2023-02-28 |
US9665620B2 (en) | 2017-05-30 |
AU2011205787B2 (en) | 2016-02-18 |
CA2786042A1 (en) | 2011-07-21 |
EP3324311A1 (en) | 2018-05-23 |
CA2786042C (en) | 2019-03-19 |
AU2017202501A1 (en) | 2017-05-04 |
CN106055584A (zh) | 2016-10-26 |
JP6578333B2 (ja) | 2019-09-18 |
US20110179014A1 (en) | 2011-07-21 |
CN106055584B (zh) | 2019-07-16 |
AU2016202098A1 (en) | 2016-04-28 |
US20170228426A1 (en) | 2017-08-10 |
WO2011088293A1 (en) | 2011-07-21 |
KR101877481B1 (ko) | 2018-07-11 |
AU2016202098B2 (en) | 2017-02-23 |
AU2011205787A1 (en) | 2012-07-12 |
JP2017016677A (ja) | 2017-01-19 |
JP2017220268A (ja) | 2017-12-14 |
EP2524328A1 (en) | 2012-11-21 |
HK1255489A1 (zh) | 2019-08-16 |
KR20170121272A (ko) | 2017-11-01 |
CN102822819A (zh) | 2012-12-12 |
KR20120106827A (ko) | 2012-09-26 |
JP2013517574A (ja) | 2013-05-16 |
JP6000415B2 (ja) | 2016-09-28 |
AU2017202501B2 (en) | 2018-11-22 |
JP6216423B2 (ja) | 2017-10-18 |
CN102822819B (zh) | 2016-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101784785B1 (ko) | 데이터 쿼리 관리 | |
KR101915591B1 (ko) | 데이터 질의 관리 | |
KR102330547B1 (ko) | 보고 생성 방법 | |
AU2015221560B2 (en) | Managing data queries |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |