KR100659889B1 - 데이터 액세스 방법, 기록매체 및 컴퓨터 - Google Patents

데이터 액세스 방법, 기록매체 및 컴퓨터 Download PDF

Info

Publication number
KR100659889B1
KR100659889B1 KR1020047015134A KR20047015134A KR100659889B1 KR 100659889 B1 KR100659889 B1 KR 100659889B1 KR 1020047015134 A KR1020047015134 A KR 1020047015134A KR 20047015134 A KR20047015134 A KR 20047015134A KR 100659889 B1 KR100659889 B1 KR 100659889B1
Authority
KR
South Korea
Prior art keywords
data
query
physical
access method
access
Prior art date
Application number
KR1020047015134A
Other languages
English (en)
Other versions
KR20040102053A (ko
Inventor
데팅거리차드딘
스티븐즈리차드요셉
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20040102053A publication Critical patent/KR20040102053A/ko
Application granted granted Critical
Publication of KR100659889B1 publication Critical patent/KR100659889B1/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/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed 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/2452Query translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99934Query formulation, input preparation, or translation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 일반적으로 데이터가 물리적으로 표현되는 특정한 방식에 관계없이 데이터에 액세스하기 위한 시스템, 방법 및 제품에 관한 것이다. 일실시예에서, 데이터 리포지터리 추상화층은 데이터 표현의 특정한 방식과 관계없이 하위 데이터 리포지터리의 논리적 뷰를 제공한다. 일실시예에서, 데이터 리포지터리 추상화층은 데이터에 액세스하는 방법 및 리포지터리 내의 데이터의 위치를 지정한다. 질의 추상화층이 또한 제공되며, 데이터 리포지터리 추상화층에 기초한다. 런타임 컴포넌트는 추상 질의를 특정 물리적 데이터 표현에 대해 사용될 수 있는 형태로변환한다.

Description

데이터 액세스 방법, 기록매체 및 컴퓨터{A METHOD, COMPUTER PROGRAM AND COMPUTER FOR ACCESSING DATA IN AN ENVIRONMENT OF MULTIPLE DATA REPOSITORIES}
본 발명은 복수의 데이터 리포지터리(repository)의 환경에서 데이터를 액세스하기 위한 컴퓨터 프로그램 및 컴퓨터에 관한 것이다.
데이터베이스는 컴퓨터화된 정보 저장 및 검색 시스템이다. 관계형 데이터베이스 관리 시스템(relational database management system)은 데이터를 저장하고 검색하는 관계 기법(relational technique)을 사용하는 컴퓨터 데이터베이스 관리 시스템(DBMS)이다. 가장 일반적인 유형의 데이터베이스는 관계형 데이터베이스, 즉 데이터가 다수의 상이한 방식으로 재편되어 액세스될 수 있도록 규정되는 관계형 데이터베이스(tubular database)이다.
DBMS에서는 특정 구조에 관계없이, 요청 개체(requesting entity)(예를 들면, 애플리케이션, 운영 시스템 또는 사용자)가 데이터베이스 액세스 요청을 발행함으로써 지정된 데이터베이스에 대한 액세스를 요구한다. 이러한 요청은, 예를 들면 단순 카탈로그 룩업 요청(simple catalog lookup request) 또는 데이터베이스 내의 지정된 기록을 판독, 변경 및 추가하도록 동작하는 트랜잭션 및 트랜잭션들의 조합을 포함할 수도 있다. 이들 요청은 SQL(Structured Query Language)과 같은 고수준 질의어(high-level query language)를 이용하여 이루어진다. 예를 들면, SQL은 IBM(International Business Machines) DB2, 마이크로소프트의 SQL 서버와 같은 데이터베이스 및 오라클(Oracle), 사이베이스(Sybase) 및 컴퓨터 어소시에이츠(Computer Associates)로부터의 데이터베이스 제품으로부터 정보를 수집하고 갱신하기 위해 대화식 질의(interactive query)를 하는데 사용된다. "질의(query)"라는 용어는 저장된 데이터베이스로부터 데이터를 검색하기 위한 커맨드 세트를 지칭한다. 질의는 프로그래머 및 프로그램이 데이터의 위치를 선택하고, 삽입하고, 갱신하고 찾아내도록 하는 등의 커맨드 언어의 형태를 취한다.
일반적으로 데이터 마이닝(data mining) 및 데이터 질의 애플리케이션이 직면하는 문제들 중 하나는 소정의 데이터베이스 스키마(database schema)(예를 들면, 관계형 데이터베이스 스키마)와의 밀접한 관계이다. 이 관계는 대응하는 하위 데이터베이스 스키마(underlying database schema)에 변화가 발생하는 경우에 애플리케이션을 지원하기 어렵게 한다. 또한, 애플리케이션의 다른 하위 데이터 표현(underlying data representation)으로의 이동이 금지된다. 오늘날의 환경에서는, 이러한 문제점은 대체로 애플리케이션이 SQL에 대해 갖고 있는 의존성(reliance)에 기인하며, 이는 관계 모델(relational model)이 질의되는 정보를 표현하는데 사용된다고 가정한다. 또한, 특정 데이터베이스 테이블, 컬럼 및 관계가 SQL 질의 표현 내에서 참조되기 때문에, 주어진 SQL 질의는 특정 관계 스키마에 의존한다. 이들 제한 때문에, 다수의 문제점이 발생한다.
한 문제점은 하위 관계 데이터 모델에서의 변경(change)이 대응 애플리케이션이 구축되는 SQL 기반(foundation)에 변경을 요구한다는 것이다. 따라서, 애플리케이션 설계자는 애플리케이션의 유지(maintenance)를 회피하기 위해 하위 데이터 모델을 먼저 변경시켜야 하거나 또는 하위 관계 모델 내의 변화를 반영하도록 애플리케이션을 변경시켜야 한다. 다른 문제점은 다수의 관계 데이터 모델과 함께 작업하도록 애플리케이션을 확장하면 각각의 고유 관계 스키마에 의한 고유 SQL 요건을 반영하기 위해 별도의 애플리케이션의 버전이 요구된다는 것이다. 또 다른 문제점은 SQL이 관계 시스템과 함께 사용하도록 설계되기 때문에, 다른 데이터 표현과 함께 작업하도록 애플리케이션이 발전된다는 것이다. 애플리케이션을 XML과 같은 다른 데이터 표현을 지원하도록 확장하면, 비-SQL(non-SQL) 데이터 액세스 방법을 사용하기 위해 애플리케이션의 데이터 관리층을 재기입할 것이 요구된다.
전술한 문제점을 해결하기 위해 사용된 전형적인 방법은 소프트웨어의 캡슐화(software encapsulation)이다. 소프트웨어의 캡슐화는 특정 하위 데이터 표현에 대한 액세스 방법을 캡슐화하기 위해 소프트웨어 인터페이스 또는 컴포넌트(component)를 사용하는 것을 포함한다. 그 일례는 JavaTM 2 Enterprise Edition(J2EE) suite of technologies의 컴포넌트인 Enterprise JavaBeanTM(EJB) 명 세서에 나타나 있다. EJB의 경우에, 약간의 개체는 이 정보에 액세스하는데 사용될 수 있는 애플리케이션 프로그램 인터페이스(API) 세트를 노출하면서 소정의 데이터 세트를 캡슐화한다. 이것은 새로운 데이터 세트가 액세스될 때마다 또는 새로운 데이터 액세스 패턴이 희망될 때, (새로운 개체 EJB의 형태로) 소프트웨어가 기록될 것을 요구하는 고도로 특화된 방법이다. EJB 모델은 또한 하위 물리적 데이터 모델의 재편성에 반응하거나 또는 다른 데이터 표현을 지원하도록 코드 갱신, 애플리케이션 구축 및 전개 사이클을 요구한다. EJB 프로그래밍은 또한 보다 진보된 자바(Java) 프로그래밍 기술이 포함되므로 특화된 기술을 요구한다. 따라서, EJB 방법 및 기타 유사한 방법은, 발전하는 물리적 데이터 모델에 액세스하는 범용질의 애플리케이션을 관리하는데 다소 유연하지 않고 비용이 많이 든다. (자바 및 모든 자바 기반의 상표는 미국, 다른 나라 또는 둘 모두의 선 마이크로시스템즈사의 상표이다.)
이종의 데이터 표현을 액세스하는데 있어서의 문제점 외에, 오늘날의 환경은 데이터가 흔히 고도로 분산되어 있다는 사실 때문에 복잡해진다. 인터넷과 같은 편재형 기반 구조(pervasive infrastructure)는 사용자가 액세스 가능하게 되어 있어야 하는 데이터 소스의 호스트를 포함한다. 지역화된 균질화된 데이터를 다루는 종래의 솔루션은 더 이상 존립할 수 없고, 분산된 이종 데이터를 다루는 개발 솔루션들은 각각의 데이터 소스의 위치를 알아야 하고 이들 솔루션이 각각의 상이한 유형의 데이터 표현을 처리하기 위해 고유 로직(소프트웨어)을 제공해야 하기 때문에 문제가 있다. 그 결과, (웨어하우스를 사용하는 애플리케이션에 의해 요구된 모든 정보를 포함하는 데이터 웨어하우스를 제공하는 것과 같은) 종래의 솔루션은 소비되는 데이터의 위치 또는 표현의 변화에 쉽게 적응하지 못하고, 상이한 데이터 토폴로지(topology)로 작업하도록 쉽게 전환될 수 없다. 데이터 웨어하우스는 또한 부가적인 공개적으로 이용가능한 정보에 의해 웨어하우스의 내용을 확장할 필요가 있을 때 문제가 있다. 어떤 경우에는, 외부 데이터 소스가 매우 클 수도 있고 변경될 수도 있다. 소정의 데이터 웨어하우스 내에 그러한 데이터의 국지 복사(local copy)를 유지하는 데에는 비용이 많이 들 수 있다.
따라서, 하위 물리적 데이터가 표현되는 특정 방식에 한정되지 않는 개선된 보다 유연한 데이터 액세스 방법이 요망된다.
본 발명의 일측면에 따르면, 복수의 데이터 리포지터리의 환경에서 데이터에 액세스하는 방법에 있어서, 요청 개체로부터 상기 요청 개체의 질의 내역(query specification)에 따라서 추상 질의를 수신하는 단계 -상기 질의 내역은 상기 추상 질의의 복수의 논리 필드에 대한 정의를 제공함- 와, 각각의 물리적 개체 및 상기 각각의 물리적 개체에 대한 위치에 액세스하는 방법을 정의함으로써 상기 논리 필드를 상기 데이터의 물리적 개체에 맵핑시키는 액세스 방법에 따라서, 상기 추상 질의를 상기 데이터의 특정 물리적 데이터 표현과 부합하는 질의로 변환시키는 단계를 포함하는 데이터 액세스 방법이 제공된다.
이 방법은 물론 컴퓨터 소프트웨어를 이용하여 수행될 수 있다.
바람직하게는, 데이터 구성 및 질의 추상화를 통해 분산된 데이터 소스의 통합 및 원격 데이터 액세스를 위한 방법, 컴퓨터 프로그램 및 컴퓨터가 제공된다.
본 발명은 바람직하게는 데이터가 물리적으로 표현되는 특정 방법과 관계없이 데이터를 액세스하는 방법, 컴퓨터 및 컴퓨터 프로그램에 관한 것이다. 바람직하게는, 애플리케이션에 의해 사용될 수 있는 다양한 분산된 데이터 소스를 표현하고 이들 데이터 소스에 포함된 정보를 액세스 및/또는 갱신하기 위해 애플리케이션에 의해 사용된 질의를 나타내도록 추상화층(abstraction layer)이 제공된다. 런타임 컴포넌트는 바람직하게는 추상 질의를, 데이터 리포지터리 추상화 컴포넌트(추상화 층들 중 하나)에 포함된 정보를 이용하여 하나 이상의 데이터 리포지터리에 대한 구체적인 데이터 요청으로 분해하는 것을 담당한다.
본 발명의 일실시예는 특정 물리적 데이터 표현을 갖는 데이터에 액세스하는 방법을 제공한다. 이 방법은 요청 개체에 대하여, 추상 질의를 정의하는 복수의 논리 필드를 포함하는 질의 내역을 제공하는 단계와, 복수의 논리 필드를 데이터의 물리적 개체에 맵핑시키는 데이터 리포지터리 추상화를 제공하는 단계를 포함한다. 일실시예에서, 데이터 리포지터리 추상화는 각각의 논리 필드에 대하여, 데이터의 물리적 개체의 위치를 정의하는 적어도 하나의 로케이터(locator) 및 데이터의 물리적 개체에 액세스하는 메카니즘을 정의하는 액세스 방법을 포함한다.
본 발명의 일실시예는 프로세서와, 적어도 (i) 복수의 논리 필드를 포함하는 추상 질의에 대한 정의를 제공하는 질의 내역(query specification)을 포함하는 요청 개체와, (ⅱ) 상기 논리 필드를 데이터의 물리적 개체로 맵핑하는 맵핑 규칙을 포함하는 데이터 리포지터리 추상화 컴포넌트(abstraction component) -상기 맵핑 규칙은 상기 추상 질의의 상기 논리 필드의 적어도 일부 각각에 대한 위치 내역을 포함하고, 각각의 상기 위치 내역은 액세스될 물리적 개체를 포함하는 데이터 소스의 위치를 지정함- 와, (ⅲ) 상기 추상 질의를 상기 맵핑 규칙에 따라서 상기 데이터의 물리적 개체와 부합하는 질의로 변환하는 런타임 컴포넌트(runtime component)를 포함하는 메모리를 포함하는 컴퓨터를 제공한다.
본 발명의 다른 측면에 따르면, 적어도 (i) 복수의 논리 필드를 포함하는 추상 질의에 대한 정의를 제공하는 질의 내역(query specification)과, (ⅱ) 상기 논리 필드를 데이터의 물리적 개체로 맵핑하는 맵핑 규칙을 포함하는 데이터 리포지터리 추상화 컴포넌트(abstraction component) -상기 맵핑 규칙은 상기 추상 질의의 상기 논리 필드의 적어도 일부 각각에 대한 위치 내역을 포함하고, 각각의 상기 위치 내역은 액세스될 물리적 개체를 포함하는 데이터 소스의 위치를 지정함- 와, (ⅲ) 상기 추상 질의를 상기 맵핑 규칙에 따라서 상기 데이터의 물리적 개체와 부합하는 질의로 변환하는 런타임 컴포넌트(runtime component)를 포함하는 메모리와, 상기 메모리의 컨텐츠를 실행하도록 구성된 프로세서를 포함하는 컴퓨터가 제공된다.
본 발명의 일실시예에 따르면, 복수의 데이터 리포지터리의 환경에서 데이터에 액세스하는 방법으로서, 요청 개체에 대하여 추상 질의를 정의하는 복수의 논리 필드를 포함하는 질의 내역을 제공하는 단계와, 각각의 복수의 논리 필드에 대하여 적어도 데이터 및 데이터의 위치에 액세스하는 방법을 지정하는 액세스 방법을 제공하는 단계를 포함하는 액세스 방법이 제공된다.
바람직하게는, 이 방법은 질의 내역에 따라서 개체를 요청함으로써 추상 질의를 발행하는 단계와, 추상 질의를 데이터의 특정 물리적 데이터 표현과 부합하는 질의로 변환시키는 단계와, 복수의 논리 필드 중 특정 논리 필드를 위한 데이터의 물리적 개체에 대한 액세스 방법에서 위치에 의해 지정된 데이터 리포지터리에 액세스하는 단계를 포함한다.
바람직하게는 특정 물리적 데이터 표현과 부합하는 질의는 SQL 질의, XML 질의 및 절차적 요청 중 하나이다.
바람직하게는 추상 질의를 특정 물리적 데이터 표현과 부합하는 질의로 변환하는 것은 액세스 방법 유형에 따라서 그룹화된 서브 질의로 분할하는 단계를 포함한다.
바람직하게는, 액세스 방법 유형은 SQL 질의 유형, XML 질의 유형 및 절차적 요청 유형을 포함하는 그룹으로부터 선택된다.
바람직한 실시예에 따르면, 복수의 데이터 리포지터리의 환경에서 데이터에 액세스하는 방법으로서, 요청 개체에 의해 요청 개체의 질의 내역에 따라서 추상 질의를 발행하는 단계 -질의 내역은 추상 질의의 복수의 논리 필드에 대한 정의를 제공함- 와, 각각의 물리적 개체 및 각 물리적 개체에 대한 위치에 액세스하는 방법을 정의함으로써 논리 필드를 데이터의 물리적 개체에 맵핑시키는 액세스 방법에 따라서 추상 질의를 데이터의 특정 물리적 데이터 표현과 부합하는 질의로 변환시키는 단계를 포함하는 데이터 액세스 방법이 제공된다.
바람직하게는, 복수의 논리 필드의 특정 논리 필드에 대한 데이터의 물리적 개체에 대한 위치에 의해 지정된 데이터 리포지터리가 액세스될 수 있다.
바람직하게는, 추상 질의는 적어도 하나의 선택 기준 및 결과의 내역을 포함한다.
바람직하게는, 이 방법은 복수의 논리 필드 중 특정 논리 필드를 위한 데이터의 물리적 개체에 대하여, 데이터의 물리적 개체가 논리 캐시 내에 위치하는 지의 여부를 판정하는 단계와, 데이터의 물리적 개체가 논리 캐시 내에 위치하지 않는 경우에 데이터의 물리적 개체에 대한 액세스 방법에서 위치에 의해 지정된 데이터 리포지터리에 액세스하는 단계를 포함한다.
바람직하게는, 추상 질의를 특정 물리적 데이터 표현과 부합하는 질의로 변환시키는 것은 추상 질의를 액세스 방법 유형에 따라서 그룹화된 서브 질의로 분할하는 단계를 포함한다.
바람직하게는, 액세스 방법 유형은 SQL 질의 유형, XML 질의 유형 및 절차적 요청 유형을 포함하는 그룹으로부터 선택된다.
본 발명의 바람직한 실시예에 따르면, 프로세서에 의해 실행될 때 복수의 데이터 리포지터리의 환경에서 데이터에 액세스하는 동작을 수행하는 프로그램을 포함하는 컴퓨터 판독가능한 기록매체로서, 요청 엔티티에 대한 질의 내역 -이 질의 내역은 추상 질의를 정의하기 위한 복수의 논리 필드를 포함함- 와, 데이터의 물리적 개체 및 상기 물리적 개체에 액세스하는 방법으로 전달되는 복수의 파라미터에 액세스하는 방법을 각각 정의하는 각각의 논리 필드에 대한 액세스 방법을 포함하되, 적어도 하나의 파라미터는 물리적 개체를 포함하는 데이터 소스의 위치를 지정하는 위치 파라미터인 기록매체가 제공된다.
요청 개체는 예를 들어 애플리케이션일 수도 있다.
바람직하게는, 복수의 액세스 방법은 각각 데이터의 각각의 물리적 개체의 위치 및 특정 물리적 표현을 정의한다.
바람직하게는, 이 동작은 질의 내역에 따라서 요청 개체에 의해 추상 질의를 발행하는 단계와, 추상 질의를 특정 물리적 데이터 표현과 부합하는 질의로 변환시키는 단계와, 복수의 논리 필드의 특정 논리 필드에 대한 데이터의 물리적 개체에 대한 위치에 의해 지정된 데이터 피포지터리에 액세스하는 단계를 포함한다.
본 발명의 바람직한 실시예에 따르면, 프로세서에 의해 실행될 때, 특정 물리적 데이터 표현을 갖는 데이터에 액세스하는 동작을 수행하는 컴퓨터 판독가능한 기록매체로서, 상기 동작은 요청 개체에 의해 쵸청 개체의 질의 내역에 따라서 추상 질의를 발행하는 단계 -질의 내역은 추상 질의의 논리 필드에 대한 정의를 제공함- 와, 각각의 물리적 개체에 대하여 적어도 물리적 개체 및 물리적 개체의 위치를 정의함으로써 데이터의 물리적 개체에 논리 필드를 맵핑시키는 액세스 방법에 따라서 추상 질의를 데이터의 특정 물리적 데이터 표현과 부합하는 질의로 변환시키는 단계를 포함하는 기록매체가 제공된다.
본 발명의 바람직한 실시예에 따르면, 적어도 (ⅰ)복수의 논리 필드를 포함하는 추상 질의에 대한 정의를 제공하는 질의 내역을 포함하는 요청 개체와, (ⅱ) 논리 필드를 데이터의 물리적 개체에 맵핑시키는 맵핑 규칙을 포함하는 데이터 리포지터리 추상화 컴포넌트 -상기 맵핑 규칙은 추상 질의의 논리 필드의 적어도 일부 각각에 대해 위치 내역을 포함하고, 각각의 위치 내역은 액세스될 물리적 개체를 포함하는 데이터 소스의 위치를 지정함- 와, 추상 질의를 맵핑 룰에 따라서 데이터의 물리적 개체와 부합하는 질의로 변환하는 런타임 컴포넌트를 포함하는 메모리와, 메모리의 내용을 실행하도록 구성된 프로세서를 포함하는 컴퓨터가 제공된다.
바람직하게는 각각의 로케이션에 의해 지정된 데이터 소스의 제 1 부분이 원격(remote)이다.
도 1은 본 발명의 바람직한 실시예에 따라서 이용되는 컴퓨터 시스템을 도시한 도면.
도 2a는 소프트웨어 컴포넌트의 관계도.
도 2b는 추상 질의(abstract query) 및 관계 데이터 액세스를 위한 데이터 리포지터리 추상화 컴포넌트의 일실시예를 도시한 도면.
도 3은 본 발명의 일실시예에 따른 런타임 컴포넌트(runtime component)의 동작을 도시한 흐름도.
도 4는 본 발명의 일실시예에 따른 런타임 컴포넌트의 동작의 흐름도.
도 5는 다수의 데이터 소스가 액세스 가능한 소프트웨어 컴포넌트의 관계도.
도 6은 복수의 논리 필드를 포함하는 추상 질의(602)를 도시한 도면.
도 7은 관계 액세스 방법(relational access method)으로 형성된 데이터 리포지터리 추상화 컴포넌트의 필드 내역(field specification)을 도시한 도면.
도 8은 절차적 액세스 방법으로 형성된 데이터 리포지터리 추상화 컴포넌트의 필드 내역을 도시한 도면.
이하, 첨부한 도면을 참고하여, 예를 통해 본 발명의 바람직한 실시예를 설명한다.
본 발명은 일반적으로 데이터가 물리적으로 표현되는 특정 방식과 관계없이 데이터를 액세스하기 위한 시스템, 방법 및 제품에 관한 것이다. 데이터는 복수의 상이한 데이터 소스를 포함할 수도 있다.
일실시예에서, 데이터 리포지터리 추상화층은 데이터 표현의 특정 방식에 관계없는 하나 이상의 하위 데이터 리포지터리의 논리 뷰를 제공한다. 복수의 데이터 소스가 제공되는 경우, 데이터 리포지터리 추상화 층의 인스턴스는 액세스될 데이터의 위치를 식별하는 위치 내역으로 구성된다. 질의 리포지터리 추상화층이 또한 제공되는데, 이 질의 리포지터리 추상화층은 데이터 리포지터리 추상화층에 기초한다. 런타임 컴포넌트는 (질의 추상화층에 따라서 구성된)추상 질의를 특정 물리적 데이터 표현에 대해 사용될 수 있는 형태로 변환한다.
본 발명의 일실시예는, 예를 들어 도 1 및 이하에 개시된 컴퓨터 시스템 (100)과 같은 컴퓨터 시스템에 의해 사용되는 프로그램 제품으로서 구현된다. 프로그램 제품의 프로그램은 (본 명세서에 개시된 방법을 포함하는)실시예들의 기능을 규정하며 다수의 신호 포함 매체(signal-bearing media) 상에 포함될 수 있다. 예시적인 신호 포함 매체는 (i) 기록 가능하지 않은 저장 매체(예를 들면, CD-ROM 드라이브에 의해 판독 가능한 CD-ROM 디스크와 같은 컴퓨터 내의 판독 전용 메모리 디바이스) 상에 영구 저장된 정보와, (ⅱ) 기록 가능한 매체(예를 들면, 디스켓 드라이브 내의 플로피 디스크 또는 하드디스크 드라이브) 상에 저장된 변경 가능한 정보와, (ⅲ) 무선 통신을 포함하여, 컴퓨터 또는 전화망과 같은 통신 매체를 통해 컴퓨터로 운반된 정보를 포함하지만 이에 한정되지는 않는다. 마지막 실시예는 인터넷 및 기타 네트워크로부터 다운로드된 정보를 포함한다.
일반적으로, 본 발명의 실시예를 구현하기 위해 실행된 루틴은 운영체제의 일부 또는 특정 애플리케이션, 컴포넌트, 프로그램, 모듈, 객체 또는 인스트럭션 시퀀스일 수 있다. 바람직한 실시예의 소프트웨어는 통상, 원시 컴퓨터에 의해 기계 판독 가능한 포맷으로 변환되어 실행 가능한 인스트럭션으로 되는 다수의 인스트럭션으로 이루어진다. 또한, 프로그램은 프로그램에 국지적으로 존재하거나 또는 메모리 또는 저장 장치에서 발견되는 변수들 및 데이터 구조들로 이루어진다. 그러나, 이하에서의 임의의 특별한 명명(nomenclature)은 단순히 편의를 위해 사용되며, 따라서 본 발명은 그러한 명명에 의해 식별 및/또는 암시된 특정 애플리케이션에서만 사용하도록 제한되지 않는다는 점에 유의하라.
환경의 물리적 뷰(PHYSICAL VIEW OF ENVIRONMENT)
도 1은 본 발명의 실시예가 구현될 수 있는 네트워크화된 시스템(100)의 블록도이다. 일반적으로, 네트워크화된 시스템(100)은 클라이언트(예를 들면, 사용자) 컴퓨터(102)(세 개의 이러한 클라이언트 컴퓨터(102)가 도시되어 있음) 및 적어도 하나의 서버(104)(하나의 그러한 서버(104)가 도시되어 있음)를 포함한다. 클라이언트 컴퓨터(102) 및 서버 컴퓨터(104)는 네트워크(126)를 통해 연결된다. 일반적으로, 네트워크(126)는 LAN(local area network) 및/또는 WAN(wide area network)일 수도 있다. 일특정 실시예에서, 네트워크(126)는 인터넷이다.
클라이언트 컴퓨터(102)는 버스(126)를 통해 메모리(112)에 접속된 CPU(Central Processing Unit)(110), 저장 장치(114), 입력 장치(116), 출력 장치(119) 및 네트워크 인터페이스 장치(118)를 포함한다. 입력 장치(116)는 클라이언트 컴퓨터(102)에 입력을 제공하는 어떠한 장치일 수도 있다. 예를 들면, 키보드, 키패드, 광 팬(light pen), 터치 스크린, 트랙볼(track-ball) 또는 음성 인식 장치, 오디오/비디오 플레이어 등이 사용될 수 있다. 출력 장치(119)는 출력을 사용자에게, 예를 들어 임의의 종래의 디스플레이 스크린에 제공하는 어떠한 장치일 수도 있다. 출력 장치(119)는 입력 장치(116)와 별도로 도시되어 있지만, 출력 장치(119)와 입력 장치(116)는 결합될 수 있다. 예를 들면, 통합 터치 스크린을 구비한 디스플레이 스크린, 통합 키보드를 구비한 디스플레이 또는 텍스트 음성 변환기와 결합된 음성 인식 장치가 사용될 수 있다.
네트워크 인터페이스 장치(118)는 네트워크(126)를 통해 클라이언트 컴퓨터 (102)와 서버 컴퓨터(104) 사이에 네트워크 통신을 허용하도록 구성된 어떠한 입구/출구 장치일 수도 있다. 예를 들면, 네트워크 인터페이스 장치(118)는 네트워크 어댑터 또는 다른 네트워크 인터페이스 카드(NIC)일 수도 있다.
저장 장치(114)는 DASD(Direct Access Storage Device)가 바람직하다. 저장 장치는 하나의 장치로서 도시되어 있지만, 고정식 디스크 드라이브, 플로피 디스크 드라이브, 테이프 드라이브, 이동식 메모리 카드 또는 광학 저장 장치와 같은 고정형 및/또는 이동형 저장 장치의 조합일 수 있다. 메모리(112) 및 저장 장치(114)는 다수의 제 1 및 제 2 저장 장치에 걸쳐 있는 하나의 가상 어드레스 공간의 일부일 수 있다.
메모리(112)는 본 발명의 바람직한 실시예의 데이터 구조 및 프로그래밍을 수용할 정도로 충분히 큰 랜덤 액세스 메모리가 바람직하다. 메모리(112)는 하나의 개체로서 도시되어 있지만, 메모리(112)는 사실 복수의 모듈을 포함할 수도 있고, 메모리(112)는 고속 레지스터 및 캐시로부터 저속이지만 대형인 DRAM 칩까지 다수의 레벨에 존재할 수도 있다.
예를 들면, 메모리(112)는 운영 체제(124)를 포함한다. 바람직한 운영 체제의 예로는 리눅스(Linux) 및 마이크로소프트의 윈도우즈(Windows®)가 있다. 보다 일반적으로는, 본 명세서에 개시한 기능을 지원하는 임의의 운영 체제가 사용될 수도 있다.
메모리(112)는 또한 브라우저 프로그램(122)을 포함하는데, 이 프로그램(122)은 CPU(110) 상에서 실행될 때, 다양한 서버(104)들 사이에서 항해하여 하나 이상의 서버들(104)에서 네트워크 어드레스를 찾아내는 것을 지원한다. 일실시예에서, 브라우저 프로그램(12)은 사용자로 하여금 HTML(Hyper Text Markup Language) 정보를 디스플레이하도록 하는 웹 기반형 GUI(Graphical User Interface)를 포함한다. 그러나, 보다 일반적으로는 브라우저 프로그램(122)은 서버 컴퓨터(104)로부터 전송된 정보를 렌더링(rendering)할 수 있는 임의의 GUI 기반의 프로그램일 수도 있다.
서버 컴퓨터(104)는 클라이언트 컴퓨터(102)와 유사한 방식으로 물리적으로 구성된다. 따라서, 서버 컴퓨터(104)는 일반적으로 버스(136)에 의해 서로 결합된 CPU(130), 메모리(132) 및 저장 장치(134)를 포함하는 것으로 도시되어 있다. 메모리(132)는 서버 컴퓨터(104) 상에 위치하는, 본 발명의 바람직한 실시예의 프로그래밍 및 데이터 구조를 보유할 정도로 충분히 큰 랜덤 액세스 메모리일 수도 있다.
서버 컴퓨터(104)는 일반적으로 메모리(132)에 상주하는 것으로 도시되어 있는 운영체제(138)의 제어 하에 있다. 운영체제(138)의 예로는 IBM® OS/400®, UNIX®, Microsoft® Windows® 등이 있다. 보다 일반적으로는, 본 명세서에 개시된 기능들을 지원할 수 있는 임의의 운영체제가 사용될 수도 있다. (IBM 및 OS/400은 미국, 미국, 다른 나라 또는 둘 모두의 인터네셔널 비지네스 머신즈의 상표이고, UNIX는 미국과 다른 나라의 오픈 그룹(Open Group)의 등록 상표이며, Microsoft 및 Windows는 미국, 다른 나라 또는 둘 모두의 마이크로소프트사의 상표이다).
메모리(132)는 하나 이상의 애플리케이션(140) 및 추상 질의 인터페이스(146)를 더 포함한다. 애플리케이션(140) 및 추상 질의 인터페이스(146)는 컴퓨터 시스템(100) 내의 다양한 메모리 및 저장 장치 내의 여러 시간에 상주하는 복수의 인스트럭션을 포함하는 소프트웨어 제품이다. 서버(104) 내의 하나 이상의 프로세서(130)에 의해 판독되어 실행될 때, 애플리케이션(140) 및 추상 질의 인터페이스(146)는 컴퓨터 시스템(100)으로 하여금 본 발명의 바람직한 실시예의 다양한 특징들을 구현하는 단계 또는 요소들을 실행하는데 필요한 단계를 수행하도록 한다. 애플리케이션(140)(보다 일반적으로는, 운영 시스템(138) 및 최고 수준에서의 사용자를 포함하는 임의의 요청 개체)은 데이터베이스에 대한 질의를 발행한다. 질의는, 예를 들면 총괄해서 데이터베이스(156, 157)라고 하는 로컬 데이터베이스(1561,...,156N) 및 원격 데이터베이스(1571,...,157N)에 대해 발행될 수도 있다. 예를 들면, 데이터베이스(156)는 저장 장치(134) 내에 데이터베이스 관리 시스템(DBMS)(154)의 일부로서 도시되어 있다. 보다 일반적으로는, 본 명세서에 사용된 "데이터베이스"란 용어는 특정한 물리적 표현에 관계없이 임의의 데이터의 집합을 지칭한다. 예를 들면, 데이터베이스(156, 157)는 관계 스키마(SQL 질의에 의해 액세스 가능함) 또는 XML 스키마(XML 질의에 의해 액세스 가능함)에 따라서 조직될 수도 있다. 그러나, 본 발명은 특정한 스키마에 한정되지 않으며, 현재는 알려져 있지 않은 스키마로 확장될 것으로 예상된다. 본 명세서에서 사용된 "스키마(schema)"란 용어는 일반적으로 데이터의 특정한 배열을 지칭한다.
일실시예에서, 애플리케이션(140)에 의해 발행된 질의는 각각의 애플리케이션(140)에 포함된 애플리케이션 질의 내역(142)에 따라서 정의된다. 애플리케이션(140)에 의해 발행된 질의는 사전 정의되거나(즉, 애플리케이션(140)의 일부로서 하드 부호화되거나) 또는 입력(예를 들면, 사용자 입력)에 응답하여 발생될 수도 있다. 각각의 경우에, 질의(본 명세서에서 "추상 질의"로 지칭됨)는 추상 질의 인터페이스(146)에 의해 정의된 논리 필드를 사용하여 작성된다. 특히, 추상 질의에 사용된 논리 필드는 추상 질의 인터페이스(146)의 데이터 리포지터리 추상화 컴포넌트(148)에 의해 정의된다. 추상 질의는 추상 질의를 하나 이상의 데이터베이스(156-157)에 포함된 데이터의 물리적 표현과 부합하는 형태로 변환시키는 런타임 컴포넌트(150)에 의해 실행된다. 애플리케이션 질의 내역(142) 및 추상 질의 인터페이스(146)는 도 2a 및 2b를 참조하여 추가로 설명된다.
일실시예에서, 질의 요소는 GUI(graphical user interface)를 통해 사용자에 의해 지정된다. GUI의 컨텐츠는 애플리케이션(140)에 의해 발생된다. 일특정 실시예에서, GUI 컨텐츠는 브라우저 프로그램(122)을 구비한 클라이언트 컴퓨터 시스템(102) 상에서 렌더링될 수도 있는 HTML(hypertext markup language) 컨텐츠이다. 따라서, 메모리(132)는 클라이언트 컴퓨터(102)로부터의 서비스 요청에 적응된 http(Hypertext Transfer Protocol) 서버 프로세스(138)를 포함한다. 예를 들면, 프로세스(138)는 예를 들어 서버에 위치하는 데이터베이스(156)에 액세스하는 것에 대한 요청에 응답할 수도 있다. 데이터베이스(156-157)로부터의 데이터에 대한 인입 클라이언트 요청은 애플리케이션(140)을 호출한다. 애플리케이션(140)은 프로 세서(130)에 의해 실행될 때, 서버 컴퓨터(104)로 하여금 데이터베이스(156-157)에 액세스하는 것을 포함하여 본 발명의 바람직한 실시예의 다양한 측면들을 구현하는 단계들 또는 요소들을 수행하게 한다. 일실시예에서, 애플리케이션(140)은 GUI 요소들을 구축하도록 구성된 복수의 서브렛(servlet)을 포함하는데, 이들은 그 다음에 브라우저 프로그램(122)에 의해 랜더링된다. 원격 데이터베이스(157)가 애플리케이션(140)을 통해 액세스되는 경우에, 데이터 리포지터리 추상화 컴포넌트(148)는 검색될 데이터를 포함하는 데이터베이스를 식별하는 위치 내역에 의해 구성된다. 이 실시예는 아래에 보다 상세히 설명된다.
도 1은 네트워크로 연결된 클라이언트 컴퓨터(102)와 서버 컴퓨터(104)에 대한 단지 하나의 하드웨어/소프트웨어 구성을 도시한 것이다. 본 발명의 실시예는 컴퓨터 시스템이 복잡한 멀티유저 컴퓨팅 장치인 지, 단일 사용자 워크스테이션인 지, 또는 자체 비휘발성 저장 장치를 갖고 있지 않은 네트워크 장치인 지에 관계없이, 어떠한 동등한 하드웨어 구성에도 적용될 수 있다. 또한, HTML을 포함하는 특정 마크업 언어(markup language)로 참조가 이루어지지만, 본 발명은 특정 언어, 표준 또는 버전에 한정되지 않는다. 따라서, 당업자라면, 본 발명이 다른 마크업 언어 및 비 마크업(non-markup) 언어에 적응될 수 있으며, 본 발명이 또한 특정 마크업 언어의 장래의 변경 및 현재 알려져 있지 않은 다른 언어에 대해서도 적응될 수 있다는 것을 알 수 있을 것이다. 마찬가지로, 도 1에 도시된 http 서버 프로세스(138)는 단순히 예시일 뿐이며, 임의의 기지의 프로토콜 및 미지의 프로토콜을 지원하도록 적응된 다른 실시예들을 예상할 수 있다.
환경의 논리/런타임 뷰(LOGICAL/RUNTIME VIEW OF ENVIRONMENT)
도 2a-2b는 바람직한 실시예에 따른 본 발명의 복수의 상호 관련된 컴포넌트들을 도시한 것이다. 요청 개체(예를 들면, 애플리케이션들(140) 중 하나)는 요청 개체의 각 애플리케이션 질의 내역(142)에 의해 정의된 질의(202)를 발행한다. 그 결과의 질의(202)는 일반적으로 본 명세서에서 "추상 질의(abstract query)"로 지칭되는데, 그 이유는 질의가 데이터베이스(156-157) 내의 하위 물리적 데이터 개체를 직접 참조하기보다는 추상화(즉, 논리) 필드에 따라서 구성되기 때문이다. 그 결과, 추상 질의는 사용된 특정 하위 데이터 표현과 관계없이 정의될 수도 있다. 일실시예에서, 애플리케이션 질의 내역(142)은 데이터 선택을 위한 기준(선택 기준(204)) 및 선택 기준(204)에 기초하여 반환되는 필드의 명시적인 내역(반환 데이터 내역(206))을 모두 포함한다.
애플리케이션 질의 내역(142)에 의해 지정되고 추상 질의(202)를 구성하는데 사용된 논리 필드는 데이터 리포지터리 추상화 컴포넌트(148)에 의해 정의된다. 일반적으로 데이터 리포지터리 추상화 컴포넌트(148)는 데이터 선택을 위한 기준을 제시하고 질의 동작으로부터 반환된 결과의 데이터의 형태를 제시하기 위해 애플리케이션(140)에 의해 발행된 질의(예를 들면, 추상 질의(202)) 내에서 사용될 수 있는 논리 필드 세트로서 정보를 제공한다. 논리 필드는 데이터베이스(156-157)에서 사용되는 하위 데이터 표현과 독립적으로 정의되며, 따라서 형성되는 질의는 하위 데이터 표현에 느슨하게 결합되도록 형성될 수 있다.
일반적으로, 데이터 리포지터리 추상화 컴포넌트(148)는 총칭하여 필드 내역(208)이라고 하는 복수의 필드 내역(2081, 2082, 2083, 2084 및 2085(예로서 5개가 도시되어 있음))을 포함한다. 특히, 필드 내역은 추상 질의의 구성에 이용할 수 있는 각각의 논리 필드에 제공된다. 각각의 필드 내역은 논리 필드명(2101, 2102, 2103, 2104 및 2105)(총괄하여 필드명(210)) 및 관련 액세스 방법(2121, 2122, 2123, 2124 및 2125)(총괄하여 액세스 방법(212))을 포함한다. 액세스 방법은 논리 필드명을 데이터베이스(예를 들면, 데이터베이스들(156) 중 하나) 내의 특정 물리적 데이터 표현과 관련시킨다(즉, 맵핑시킨다). 도면에는, XML 데이터 표현(2141) 및 관련 데이터 표현(2142)의 두 표현이 도시되어 있다. 그러나, 물리적 데이터 표현(214N)은 기지의 혹은 미지의 임의의 다른 데이터 표현이 고려됨을 나타낸다.
지원되는 상이한 유형의 논리 필드의 수에 따라서 임의의 수의 액세스 방법이 고려된다. 일실시예에서, 단순 필드들(simple fields), 필터링된 필드들 및 작성된 필드들(composed fields)에 대한 액세스 방법이 제공된다. 필드 내역(2081, 2082 및 2085)은 단순 필드 액세스 방법(2121, 2122 및 212 5)을 각각 예시한다. 단순 필드는 하위 물리적 데이터 표현(예를 들면, 소정의 데이터베이스 테이블 및 컬럼에 맵핑된 필드) 내의 특정 개체에 직접 맵핑된다. 실례로서, 도 2b에 도시된 단순 필드 액세스 방법(2121)은 논리 필드명(2101("FirstName"))을 "contact" 명칭의 테이블 내의 "f_name" 명칭의 컬럼에 맵핑시킨다. 필드 내역(2083)은 필터링된 필드 액세스 방법(2123)을 예시한다. 필터링된 필드는 관련된 물리적 개체를 식별하고 물리적 데이터 표현 내의 항목들 또는 특정 서브셋을 정의하는데 사용된 규칙을 제공한다. 필터링된 필드 액세스 방법(2123)이 논리 필드명(2103)("AnytownLastName")을 "contact" 테이블 내의 "1_name" 컬럼 내의 물리적 개체에 맵핑하고, Anytown의 도시 내의 개인에 대한 필터를 정의하는 일례가 도 2b에 제공되어 있다. 필터링된 필드의 다른 예로는 ZIP 코드의 물리적 표현으로 맵핑되고 데이터를 뉴욕주에 대해 정의된 ZIP 코드들로만 한정하는 뉴욕 ZIP 코드 필드가 있다. 필드 내역(2084)은 작성된 필드 액세스 방법(2124)을 예시한다. 작성된 액세스 방법은 액세스 방법의 정의의 일부로서 공급된 표현을 사용하여 하나 이상의 물리적 필드로부터 논리 필드를 계산한다. 이런 방식으로, 하위 데이터 표현에 존재하지 않는 정보가 계산될 수도 있다. 도 2b에 도시된 예에서, 작성된 필드 액세스 방법(2123)은 논리 필드명(2103) "AgeInDecades"를 "AgeInYears/10"에 맵핑시킨다. 다른 예로는 판매 가격 필드에 판매세율을 곱하여 작성되는 판매세 필드이다.
하위 데이터의 임의의 소정의 데이터 유형(예를 들면, 날짜, 십진수 등)에 대한 포맷이 변할 수도 있는 것으로 예상된다. 따라서, 일실시예에서, 필드 내역(208)은 하위 데이터의 포맷을 반영하는 유형 속성을 포함한다. 그러나, 다른 실시예에서는, 필드 내역(208)의 데이터 포맷이 관련된 하위 물리적 데이터와 상이하며, 이 경우에 액세스 방법은 요청 개체에 의해 추측된 적절한 포맷으로 데이터를 반환하는 것을 담당한다. 따라서 액세스 방법은 바람직하게는 데이터의 어떠한 포맷이 예상되는 지(즉, 논리 필드에 따라서), 그리고 하위 물리적 데이터의 실제 포맷을 알아야 한다. 그러면, 액세스 방법은 논리 필드의 포맷으로 하위 물리적 데이터를 변환시킬 수 있다.
예를 들면, 도 2에 도시된 데이터 리포지터리 추상화 컴포넌트(148)의 필드 내역(208)은 관계 데이터 표현(2142)으로 표현된 데이터에 맵핑된 논리 필드를 나타낸다. 그러나, 데이터 리포지터리 추상화 컴포넌트(148)의 다른 인스턴스는 논리 필드를 XML과 같은 다른 물리적 데이터 표현으로 맵핑한다. 또한, 일실시예에서, 데이터 리포지터리 추상화 컴포넌트(148)는 절차적 데이터 표현에 대한 액세스 방법으로 구성된다. 이러한 데이터 리포지터리 추상화 컴포넌트(148)의 일실시예는 도 9와 관련하여 후술한다.
도 2에 도시된 추상 질의에 대응하는 예시적인 추상 질의가 아래의 표 Ⅰ에 도시되어 있다. 실례로서, 데이터리포지터리 추상화(148)는 XML을 사용하여 정의된다. 그러나, 유리하다면 어떠한 다른 언어도 사용될 수 있다.
표 I - 질의 예
Figure 112004043464425-pct00001
실례로서, 표 Ⅰ에 도시된 추상 질의는 선택 기준을 포함하는 선택 내역(라인 005 내지 014) 및 결과 내역(라인 015 내지 019)을 포함한다. 일실시예에서, 선택 기준은 필드명(논리 필드에 대한), 비교 연산자(=, >, < 등) 및 값의 표현(필드가 비교되는 것)으로 이루어진다. 일실시예에서, 결과 내역은 질의 실행의 결과로서 반환되는 추상화 필드의 리스트이다. 추상 질의 내의 결과 내역은 필드명 및 정렬 기준(sort criteria)으로 이루어질 수도 있다.
표 Ⅰ의 추상 질의에 대응하는 데이터 리포지터리 추상화 컴포넌트(148)의 예가 아래의 표 Ⅱ에 도시되어 있다. 실례로서, 데이터 리포지터리 추상화 컴포넌트(148)는 XML을 사용하여 정의된다. 그러나, 유리하다면 어떠한 다른 언어도 사용될 수 있다.
표 Ⅱ - 데이터 리포지터리 추상화 예
Figure 112004043464425-pct00002
도 3은 런타임 컴포넌트(150)의 동작의 일례를 예시하는 런타임 방법(300)을 도시한 것이다. 방법(300)은 런타임 컴포넌트(150)가 추상 질의(예를 들면, 도 2에 도시된 추상 질의(202))의 예를 입력으로서 수신할 때, 단계 302에서 시작한다. 단계 304에서 런타임 컴포넌트(150)는 추상 질의의 예를 판독하여 구문 분석하며, 개별 선택 기준 및 원하는 결과 필드를 찾아낸다. 단계 306에서, 런타임 컴포넌트(150)는 추상 질의 내에 존재하는 각각의 질의 선택 기준 문장(statement)을 처리하여 구체적 질의(Concrete Query)의 데이터 선택부를 구축하기 위한 루프(단계 306, 308, 310, 312를 포함함)를 시작한다. 일실시예에서, 선택 기준은 필드명(논리 필드에 있어서), 비교 연산자(=, >, < 등) 및 값의 표현(필드가 비교되는 것)으로 이루어진다. 단계 308에서, 런타임 컴포넌트(150)는 추상 질의의 선택 기준으로부터 필드명을 사용하여 데이터 리포지터리 추상화 (148) 내의 필드의 정의를 조사한다. 전술한 바와 같이, 필드의 정의는 필드와 관련된 물리적 데이터를 액세스하는데 사용된 액세스 방법의 정의를 포함한다. 그 다음에 런타임 컴포넌트(150)는 처리되는 논리 필드에 대한 구체적 질의 기여(Concrete Query Contribution)를 구축한다(310). 본 명세서에 정의된 바와 같이, 구체적 질의 기여는 현재의 논리 필드에 기초하여 데이터 선택을 수행하도록 사용되는 구체적 질의의 일부이다. 구체적 질의는 SQL 및 XML 질의와 같은 언어로 표현된 질의이고, 소정의 물리적 데이터 리포지터리(예를 들면, 관계형 데이터베이스 또는 XML 리포지터리)의 데이터와 부합한다. 따라서, 구체적 질의는 도 1에 도시된 데이터베이스(156-157)에 의해 표현된 물리적 데이터 리포지터리로부터 데이터를 찾아내고 검색하는데 사용된다. 현재의 필드에 대해 발생된 구체적 질의 기여는 그 다음에 구체적 질의문(Concrete Query Statement)에 추가된다. 그 다음에 방법(300)은 단계 306으로 돌아가서 추상 질의의 다음 필드에 대한 처리를 시작한다. 따라서, 단계 306에서 시작된 프로세스는 추상 질의 내의 각각의 데이터 선택 필드에 대해 반복되며, 이에 따라 부가적인 컨텐츠를 최종 질의에 제공하는 것이 이루어진다.
구체적 질의의 데이터 선택부를 구축한 후에, 런타임 컴포넌트(150)는 질의 실행의 결과로서 반환되는 정보를 식별한다. 전술한 바와 같이, 일실시예에서, 추상 질의는, 본 명세서에서 결과 내역(result specification)이라고 지칭되는 질의 실행의 결과로서 반환되는 추상화 필드의 리스트를 정의한다. 추상 질의 내의 결과 내역은 필드명 및 정렬 기준으로 이루어질 수도 있다. 따라서, 방법(300)은 결과 필드 정의를 발생되는 구체적 질의에 추가하기 위해 단계 314에서 루프(단계 314, 316, 318, 320에 의해 정의된)로 진입한다. 단계 316에서, 런타임 컴포넌트(150)는 데이터 리포지터리 추상화(148) 내의 결과 필드명(추상 질의 의 결과 내역으로부터)을 조사하고, 그 다음에 데이터 리포지터리 내역(148)으로부터 결과 필드 정의(Result Field definition)를 검색하여 현재의 논리 결과 필드에 대해 반환될 데이터의 물리적 위치를 식별한다. 런타임 컴포넌트(150)는 이에 따라 논리 결과 필드에 대한 (반환될 데이터의 물리적 위치를 식별하는 구체적 질의의) 구체적 질의 기여를 구축한다(단계 318). 그 다음에 단계 320에서, 구체적 질의 기여가 구체적 질의문에 추가된다. 추상 질의 내의 각각의 결과 내역이 처리되면, 단계 322에서 질의가 실행된다.
단계 310 및 318에 따른 논리 필드에 대한 구체적 질의 기여를 구축하는 방법(400)의 일실시예는 도 4를 참조하여 설명한다. 단계 402에서, 방법(400)은 현재의 논리 필드와 관련된 액세스 방법이 단순 액세스 방법인 지의 여부를 질의한다. 만약 단순 액세스 방법이라면, 구체적 질의 기여는 물리적 데이터 위치 정보에 기초하여 구축되고(단계 404), 그 다음에 전술한 방법(300)에 따라서 프로세싱이 계속된다. 그렇지 않으면, 프로세싱은 단계 406으로 진행하여 현재의 논리 필드와 관련된 액세스 방법이 필터링된 액세스 방법인 지의 여부를 질의한다. 만약 그렇다면, 구체적 질의 기여는 일부 물리적 데이터 개체에 대한 물리적 데이터 위치 정보에 기초하여 구축된다(단계 408). 단계 410에서, 구체적 질의 기여는 물리적 데이터 개체와 관련된 서브셋 데이터에 사용된 부가적인 로직(필터 선택)에 의해 확장된다. 그 다음에 프로세싱은 전술한 방법(300)에 따라서 계속된다.
액세스 방법이 필터링된 액세스 방법이 아니면, 프로세싱은 단계 406으로부터, 액세스 방법이 작성된 액세스 방법인 지를 방법(400)이 질의하는 단계 412로 진행한다. 액세스 방법이 작성된 액세스 방법이면, 단계 414에서 작성된 필드 표현 내의 각각의 서브 필드 참조(sub-field reference)에 대한 물리적 데이터 위치가 파악되어 검색된다. 단계 416에서, 작성된 필드 표현의 물리적 필드 위치 정보는 작성된 필드 표현의 논리적 필드 참조로 대체되며, 이에 따라 구체적 질의 기여가 발생된다. 그 다음에 프로세싱은 전술한 방법(300)에 따라 계속된다.
액세스 방법이 작성된 액세스 방법이 아니면, 프로세싱은 단계 412로부터 단계 418로 진행한다. 단계 418은 본 발명의 실시예로서 예상되는 임의의 다른 액세스 방법 유형을 나타낸다. 그러나, 실시예들은 모든 이용가능한 액세스 방법들보다 적은 방법이 구현될 것으로 예상된다. 예를 들면, 특정 실시예에서 모든 단순 액세스 방법이 이용된다. 다른 실시예에서는, 단순 액세스 방법 및 필터링된 액세스 방법만이 이용된다.
전술한 바와 같이, 논리 필드가 하위 물리적 데이터와 상이한 데이터 포맷을 지정하면, 데이터 변환을 수행하는 것이 필요할 수도 있다. 일실시예에서, 방법(400)에 따라서 논리 필드에 대한 구체적 질의 기여를 구축할 때, 각각의 액세스 방법에 대해 최초 변환이 수행된다. 예를 들면, 단계 404, 408 및 416의 일부로서 또는 그 직후에 변환이 수행될 수도 있다. 단계 322에서 질의가 실행된 후에 물리적 데이터의 포맷으로부터 논리적 필드의 포맷으로의 후속 변환이 수행된다. 물론, 논리적 필드 정의의 포맷이 하위 물리적 데이터와 동일하면, 아무런 변환도 필 요치 않다.
데이터 리포지터리 추상화 컴포넌트의 다른 실시예
일실시예에서, 상이한 단일 데이터 리포지터리 추상화 컴포넌트(148)가 각각의 개별 물리적 데이터 표현(214)에 제공된다(도 2a 및 2b 참조). 다른 실시예에서는, 단일 데이터 리포지터리 추상화 컴포넌트(148)가 둘 이상의 물리적 데이터 표현(214)에 대한 필드 내역(관련 액세스 방법을 갖는)을 포함한다. 또 다른 실시예에서는, 다수의 데이터 리포지터리 추상화 컴포넌트(148)가 제공되는데, 여기서 각각의 데이터 리포지터리 추상화 컴포넌트(148)는 동일한 하위 물리적 데이터(하나 이상의 물리적 데이터 표현(214)을 포함할 수도 있음)의 상이한 부분을 나타낸다. 이런 방식으로, 애플리케이션에 노출된 하위 데이터의 특정 부분이 각 데이터 리포지터리 추상화 컴포넌트(148)에 의해 결정되는 동일한 하위 데이터를 액세스하기 위해, 단일 애플리케이션(140)이 다수의 사용자에 의해 사용될 수도 있다. 이 실시예는 IBM 사에 양도된 발명의 명칭이 "DYNAMIC END USER SPECIFIC CUSTOMIZATION OF AN APPLICATION'S PHYSICAL DATA LAYER THROUGH A DATA REPOSITORY ABSTRACTION LAYER"인 계류중인 미국 특허 출원(Attorney Docket ROC920020088)에 보다 상세히 설명되어 있다.
어떠한 경우든, 데이터 리포지터리 추상화 컴포넌트(148)는 논리 필드를 물리적 데이터에 맵핑시키는 적어도 하나의 액세스 방법을 포함한다(또는 관련된다). 이 목적을 위하여, 전술한 실시예에서, 액세스 방법은 논리 필드에 대응하는 데이 터의 물리적 표현을 찾아내어 처리하는 수단을 설명한다.
일실시예에서, 데이터 리포지터리 추상화 컴포넌트(148)는 로컬(local) 및 또는 네트워크 환경에 걸쳐서 분산될 수 있는 복수의 데이터 소스의 설명을 포함하도록 확장된다. 데이터 소스는 다수의 상이한 데이터 표현 및 데이터 액세스 기법을 이용할 수 있다. 일실시예에서, 이것은 데이터를 액세스하는데 사용된 방법 외에, 논리 필드와 관련된 데이터의 위치를 정의하는 위치 내역으로 데이터 리포지터리 추상화 컴포넌트(148)의 액세스 방법을 구성함으로써 이루어진다.
도 5는 복수의 데이터 소스(리포지터리)(502)를 갖는 환경(500)의 논리/실행 뷰를 도시하고 있으며, 이러한 환경에서 데이터 리포지터리 추상화 컴포넌트(148)의 동작의 일실시예를 나타낸다. 데이터 리포지터리 추상화 컴포넌트(148)를 통해 액세스되는 데이터 소스(502)는 로컬, 리모트 또는 둘 다일 수 있다. 일실시예에서, 데이터 소스(502)는 도 1에 도시된 데이터베이스(156-157)를 나타낸다. 일반적으로, 데이터 리포지터리 추상화 컴포넌트(148)는 전술한 실시예들과 유사하게 구성된다. 이와 같이, 데이터 리포지터리 추상화 컴포넌트(148)는 논리 필드 정의 및 논리 필드 정의에 대한 관련된 액세스 방법을 갖는다. 그러나, 단일 데이터 소스만이 액세스되는 다른 실시예와는 대조적으로, 액세스 방법은 이제 물리적 표현 내역 외에 위치 내역으로 구성된다. 위치 내역은 액세스되는 데이터(즉, 논리 필드 정의와 관련된 데이터)가 위치하는 위치(즉, 데이터 소스)를 나타낸다. 그러나, 일실시예에서, 위치 내역 없이 로컬 데이터 소스에 대한 디폴트를 나타내는 일부 액세스 방법이 구성될 수도 있는 것으로 예상된다.
일반적으로, 도 5는 애플리케이션(140), 추상 질의 내역(142)(여기서는 애플리케이션 질의 내역으로도 지칭됨), 데이터 리포지터리 추상화 컴포넌트(148)(논리 필드를 액세스 방법에 맵핑하는데 사용됨) 및 추상 질의를 질의되는 물리적 정보를 포함하는 데이터 리포지터리(502)에 의해 지원된 하나 이상의 데이터 액세스 요청으로 변환시키는 것을 담당하는 런타임 컴포넌트(150)를 나타낸다. 전술한 일부 실시예들과는 대조적으로, 도 5의 데이터 리포지터리 추상화 컴포넌트(148) 및 런타임 컴포넌트(150)는 다수의 로컬 및/또는 원격 물리적 데이터 리포지터리(502)(여기서는 로컬/원격 데이터 소스(502)로도 지칭됨)에 걸쳐서 분산될 수도 있고 복수의 질의 기반 및 절차 기반의 인터페이스를 통해 액세스될 수도 있는 관련 데이터를 갖는 논리 필드의 정의 및 질의를 지원하도록 구성된다.
이 목적을 위하여, 애플리케이션(140)은 물리적 위치 또는 관련된 실제 데이터의 표현이 아니라, 논리 필드에 기초하여 질의 선택 및/또는 갱신 로직을 포함하는 추상 질의 내역(142)에 의해 데이터 요건을 정의한다. 데이터 리포지터리 추상화 컴포넌트(148)는 로컬 필드 정의(504) 및 각 로컬 필드에 대한 액세스 방법(506)을 포함한다. 논리 필드 정의(504)는 애플리케이션(140)에 의해 사용하는데 이용가능한 논리 필드를 나타낸다. 일측면에서, 데이터 리포지터리 추상화 컴포넌트(148)는 애플리케이션(140)에 의해 사용하는데 이용가능한 정보를 관리한다. 새로운 로컬 또는 원격 데이터 소스에서 제공된 새로운 논리 필드의 추가는 애플리케이션에 의해 사용하는데 이용가능하게 된다. 각각의 액세스 방법(506)은 논리 필드와 로컬/원격 데이터 소스(502) 내에서의 그 논리 필드의 물리적 표현 사이의 맵핑을 정의한다. 이 관계는 도 6을 참조하면 이해할 수 있을 것이다.
도 6은 복수의 논리 필드(6041,...,604N)(총괄하여 논리 필드(604))를 포함하는 예시적인 추상 질의(602)를 나타낸다. 각각의 논리 필드(604)는 특정 데이터 리포지터리 추상화 컴포넌트(148)의 정의에 의해 액세스 방법(6081,...,608N)(총괄하여 액세스 방법(608))과 관련된다(라인 606으로 표시됨). 액세스 방법(608) 내의 물리적 표현 정보는 사용될 액세스 방법의 명칭(여기서는 "F1에 대한 액세스 방법, "F2에 대한 액세스 방법" 등으로 표현됨) 및 명명된 액세스 방법으로 전달되며 논리 필드와 관련된 물리적 데이터에 액세스하는 방법을 나타내는 복수의 파라미터를 포함한다. 일반적으로, 이러한 파라미터는 로케이터 파라미터(locator parameter)(6101,...,610N)(총칭하여 로케이터 파라미터(610), 여기서는 위치 내역이라고도 함) 및 데이터에 액세스하는데 필요한 다른 액세스 파라미터를 포함한다. 소정의 데이터 리포지터리 추상화 컴포넌트 예는 복수의 로컬 및 원격 물리적 데이터 리포지터리에 의해 관리되는 정보를 나타낼 수도 있다.
데이터 리포지터리 추상화 컴포넌트의 예가 위치 내역 및 데이터를 액세스하는데 필요한 다른 액세스 파라미터로 구성될 수도 있는 예시적인 실시예가 도 7 및 8에 도시되어 있다. 먼저 도 7에는, 관계 액세스 방법으로 구성된 데이터 리포지터리 추상화 컴포넌트의 필드 내역(700)이 도시되어 있다. 필드 내역(700)은 필드명(702) "CreditRatingDescription"에 의해 식별된 특정 로직 필드에 특유하며, 관련 액세스 방법을 갖는다. 관련 액세스 방법명(704)은 액세스 방법이 논리 필드가 하위 논리 데이터 표현 내의 특정 개체에 직접 맵핑되는 단순 필드 액세스 방법이고 데이터가 멀리 떨어져서 위치하는 것임을 나타내는 "Simple-remote"이다. 이 경우에, 논리 필드는 소정의 데이터베이스 테이블 "credit_t" 및 컬럼 "desc"로 맵핑된다. "URL"은 물리적 데이터의 위치를 지정하는 위치 내역(로케이터 파라미터)이다. 이 경우에, "URL"은 사용할 JDBC 드라이버의 식별자, 데이터(remotesystem.abc.com)를 갖고 있는 원격 시스템명 및 데이터(creditschema)를 포함하는 데이터베이스 스키마를 포함한다. "JDBC Driver"는 이 유형의 원격 데이터베이스로의 SQL 액세스를 구현하는 자바 클래스의 명칭이다.
도 8에는, 절차적 액세스 방법으로 구성된 데이터 리포지터리 추상화 컴포넌트의 필드 내역(800)이 도시되어 있다. 필드 내역(800)은 필드명(802) "CreditRating"에 식별된 특정 논리 필드에 특유하며, 관련 액세스 방법을 갖는다. 관련 액세스 방법명(804)은 액세스 방법이 절차적 액세스 방법임을 나타내는 "procedural"이다. "Service Spec"은 액세스할 웹서비스에 대한 WSDL(Web Services description Language) 정의이다. WSDL은 웹 서비스에 대한 표준 인터페이스 정의어이다. 웹 서비스는 통신을 위한 확립된 웹 기반 구조를 이용하여, 그리고 호출 애플리케이션 및 호출되는 웹 서비스 사이에서 지나가는 정보를 표현하기 위해 XML과 같은 표준 데이터 표현 기법을 이용하여 소프트웨어 애플리케이션을 호출하는데 사용된 표준 방법이다. "Service Name"은 "Service Spec" 내에서 정의된 가능한 서비스들의 집합으로부터 액세스되는 웹 서비스의 명칭이다. "Port Name"은 "Service Name" 내에 정의된 가능한 포트명의 집합으로부터 액세스되는 서 비스에 대한 포트명이다. 포트는 서비스에 대한 네트워크 어드레스를 정의한다. "Operation"은 "동작(operations)"으로 지칭된 둘 이상의 기능을 지원할 수 있는 웹 서비스를 호출하는 동작명이다. "Input"은 웹 서비스를 호출할 때 요구된 입력이다. 이 경우에, 마지막 명칭 값이 서비스에 대한 입력으로서 제공된다. "Output"은 이 논리 필드와 관련되는 출력 데이터 항목이다. 서비스는 이들이 호출될 때 여러 부분의 출력을 반환할 수도 있다. 따라서, "Output"은 현재의 논리 필드와 관련되는 출력 데이터의 부분을 정의한다.
절차적 액세스 방법의 경우에, 로컬 데이터에 대한 데이터 리포지터리 추상화 컴포넌트의 필드 내역은 원격 데이터를 액세스하기 위한 도 8에 도시된 필드 내역(800)과 실질적으로 동일하게 보일 수도 있다. 유일한 차이는 참조된 WSDL 문서가 로컬 서버를 다시 가리키는 URL을 갖는 로컬 경우에 서비스가 실행된다는 것이다.
다시 도 5를 참조하여, 런타임 컴포넌트(150)의 동작의 일실시예를 설명한다. 일반적으로, 런타임 컴포넌트는 추상 질의에 기초하여 실행가능한 질의를 구축하여 실행하는 것을 담당한다. 이 목적을 위하여, 블록(510)에서, 런타임 컴포넌트(150)는 추상 질의를 구문 분석하고, 데이터 리포지터리 추상화 컴포넌트(148)를 사용하여 하나 이상의 논리 필드에 대한 참조를 이들의 대응하는 물리적 위치 및 액세스 방법(총괄하여 여기서는 액세스 방법(506)이라 함)에 맵핑시킨다. 일실시예에서, 런타임 컴포넌트(150)는 전체 물리적 데이터 질의 요건을 동일한 액세스 방법을 사용하는 동일한 물리적 자원에 대한 액세스를 나타내는 그룹들("서브-질의(sub-queries)"(514)라고 함)로 분할한다(블록(512)). 그 다음에 "서브-질의"가 실행된다(블록(516)). 각각의 서브-질의(514)로부터의 결과는 집합적인 질의 결과(520)가 애플리케이션(140)으로 반환되기 전에 결합되어 정상화된다(블록(518)). 일측면에서, 이 질의 분할 방법은 멀티-CPU 하드웨어 아키텍처를 이용하여 런타임 컴포넌트(150)가 다수의 서브-질의를 동시에 실행하도록 허용한다.
일실시예에서, 런타임 컴포넌트(150)는 또한 로컬 데이터 캐시(522)를 관리한다. 로컬 데이터 캐시(522)는 어떠한 논리 필드에 대해 검색된 데이터를 포함하며, 후속 질의 동안 캐시가 인에이블될 때 데이터 리포지터리 추상화 컴포넌트 내에서 식별된 논리 필드의 룩업을 위한 제 1 선택으로서 사용된다. 캐시 방식(cashed fashion)으로 유리하게 관리되는 논리 필드는 그 값이 비교적 정적인 필드 및/또는 액세스에 대해 큰 오버헤드를 초래하는 필드이다(일부 정보가 페이-퍼-유즈 모델(pay-per-use model)에서 관리된다고 가정하면, 오버헤드는 데이터를 페치하는데 요구된 시간 또는 데이터를 액세스하는 비용으로 측정된다).
다양한 실시예에서, 종래 기술에 비해 많은 이점이 제공된다. 일측면에서, 애플리케이션 질의 내역과 하위 데이터 표현 사이에 루스 결합(loose coupling)을 정의함으로써 이점들이 바람직하게 얻어진다. SQL이 사용되는 경우에서와 같이, 특정 테이블, 컬럼 및 관계 정보로 애플리테이션을 인코딩하기 보다는, 애플리케이션은 실행시에 특정한 물리적 데이터 표현에 제한되는 보다 추상적인 형식으로 데이터 질의 요건을 정의한다. 루스 질의-데이터 결합은 바람직하게는, 하위 데이터 표현이 수정되거나 또는 요청 개체가, 요청 개체가 개발되었을 때 사용된 것보다 완전히 새로운 물리적 데이터와 함께 사용되는 경우에도 요청 개체(예를 들면, 애플리케이션)가 기능할 수 있도록 한다. 소정의 물리적 데이터 표현이 수정되거나 재구성되는 경우에, 대응하는 데이터 리포지터리 추상화는 바람직하게는 하위 물리적 데이터 모델에 만들어진 변화를 반영하도록 갱신된다. 동일한 논리 필드 세트가 질의에 의한 사용에 대해 이용가능하며, 단순히 물리적 데이터 모델 내의 상이한 개체 또는 위치에 구속되어 있다. 그 결과, 추상 질의 인터페이스에 기록된 요청 개체는, 대응하는 물리적 데이터 모델에 큰 변화가 발생하더라도, 그 기능을 변경하지 않은 채로 유지한다. 요청 개체가, 요청 개체가 개발되었을 때 사용된 것 외의 완전히 새로운 물리적 데이터 표현에 의해 사용되는 경우, 그 새로운 데이터 모델은 동일한 기술(예를 들면, 상관 데이터베이스)을 사용하여, 그러나 정보를 명명하고 조직하는 상이한 전략(예를 들면 상이한 스키마)에 따라 구현될 수도 있다. 새로운 스키마는 단순한 필터링되어 구성된 필드 액세스 방법 기술을 사용하여 애플리케이션에 의해 요구된 논리 필드의 집합에 맵핑될 수도 있는 어떠한 정보이다. 한편, 새로운 물리적 표현은 유사한 정보를 표현하기 위한 다른 기술을 사용할 수도 있다(예를 들면, 관계형 데이터베이스 시스템에 대하여 XML 기반의 데이터 리포지터리의 사용). 어느 경우든, 추상 질의 인터페이스를 사용하기 위해 기록된 기존의 요청 개체들은, 질의 내에서 참조된 필드들을 새로운 물리적 데이터 모델 내의 위치 및 물리적 표현과 맵핑시키는 교번 데이터 리포지터리 추상화의 제공에 의해, 새로운 물리적 데이터 표현을 사용하도록 쉽게 이동할 수 있다.
다른 측면에서는, 애플리케이션 뷸더(builder) 및 엔드 유저에 대한 사용 편 의성이 용이해진다. 하위 데이터 리포지터리 내의 논리 필드를 나타내기 위해 추상화층을 사용하면 애플리케이션 개발자들이 하위 데이터 표현의 세부사항에 대한 걱정없이 핵심 애플리케이션 데이터 요건에 집중할 수 있다. 그 결과, 애플리케이션을 개발하는 동안에, 생산성이 높아지고 에러율이 감소한다. 엔드 유저에 있어서는, 데이터 리포지터리 추상화가, 적절한 데이터는 보여주고 소정의 질의를 개발하는 특정 계층의 엔드 유저에 의해 필요치 않은 중요하지 않은 컨텐츠는 숨기면서 데이터 필터링 메터니즘을 제공하는 것이 바람직하다.
또한, 다수의 데이터 소스가 유익하게 사용될 수 있다. 위치 내역을 갖는 데이터 리포지터리 추상화 컴포넌트를 구성함으로써, 데이터 자원이 로컬이든 원격이든, 다수의 데이터 소스가 바람직하게 액세스될 수 있다. 이런 방식으로, 오늘날 분산 환경을 이용할 수 있는 기반 구조가 제공된다.
이 모델을 구현하는 방법은 포함된 데이터의 위치 또는 표현에 관계없이, 그 정보 요건을 나타내기 위한 제공된 추상 질의 내역을 사용한다. 질의에 표시된 각각의 논리 정보 조각에 액세스하는데 사용된 위치 및 방법을 결정하기 위해 데이터 리포지터리 추상화 컴포넌트를 사용하는 런타임 컴포넌트에 질의가 제출된다. 일실시예에서, 런타임 컴포넌트는 또한 데이터 캐시에 액세스하기 위해 전술한 데이터 캐싱 기능을 포함한다.
이 모델은 바람직하게는 상기 방법이 상기 방법에 의해 사용된 데이터의 물리적 위치 또는 표현에 관계없이 개발되도록 허용하여 상기 방법이 다수의 상이한 데이터 토폴로지로 쉽게 전개할 수 있도록 하며, 데이터가 시간에 대하여 재위치하거나 또는 재편성되는 경우에, 상기 방법이 기능할 수 있도록 한다. 바람직하게는, 이 방법은 또한 부가적인 정보를 이용하기 위한 방법을 확장하는 작업을 단순화한다. 확장은 추상 질의 레벨에서 이루어지며, 액세스되는 새로운 데이터의 위치 또는 표현에 고유한 소프트웨어의 추가를 요구하지 않는다. 이 방법은 바람직하게는 참조되는 각각의 데이터 항목의 위치 및 액세스하는데 사용된 특정 방법과 독립적인 소프트웨어 애플리케이션에 대한 공통 데이터 액세스 방법을 제공한다. 추상 질의를 통해 액세스된 물리적 데이터는 상관적으로(기존의 관계형 데이터베이스 시스템에서), 계층적으로(XML과 같이) 또는 기타 물리적 데이터 표현 모델로 표현될 수도 있다. SQL 및 XQuery와 같은 기존의 데이터 질의 방법에 기초한 데이터 액세스 방법 및 웹 서비스 호출(예를 들면, SOAP를 사용하여) 또는 HTTP 요청을 통한 데이터의 검색과 같은 프로그램 액세스를 포함하는 방법을 포함하여 다수의 데이터 액세스 방법이 또한 지원된다.
본 명세서에서 특정한 값, 정의, 프로그래밍 언어 및 예들에 대한 임의의 참조부호는 단지 예시를 위한 것임에 유의하라. 따라서, 본 발명은 임의의 특정 실례 및 예들에 한정되지 않는다. 또한, 본 발명의 특징들을 선택 동작(SELECTION operation)들에 대해 설명하였지만, 바람직하게는, ADD, MODIFY, INSERT, DELETE 등과 같은 잘 알려진 동작을 포함하는 다른 입력/출력 동작이 고려된다. 물론, 어떠한 액세스 방법은 특정 액세스 방법을 이용하는 필드를 이용하여 정의될 수 있는 추상 질의 기능의 유형에 제한을 둘 수도 있다. 예를 들면, 작성된 액세스 방법을 포함하는 필드는 MODIFY, INSERT 및 DELETE의 존립할 수 있는 타겟이 아니다.

Claims (14)

  1. 복수의 데이터 리포지터리의 환경에서 데이터에 액세스하는 방법에 있어서,
    컴퓨터에 의해
    요청 개체(requesting entity)로부터 상기 요청 개체의 질의 내역(query specification)에 따라서 추상 질의(abstract query)를 수신하는 동작 -상기 질의 내역은 상기 추상 질의의 복수의 논리 필드 각각에 대한 정의를 포함하는 데이터 추상화 모델에 대한 인터페이스를 제공하고, 각 논리 필드의 각각의 정의는 (i) 상기 각각의 물리적 개체에 액세스하는 방법과, (ii) 상기 각각의 물리적 개체의 위치를 정의함으로써, 상기 논리 필드를 상기 데이터의 각각의 물리적 개체에 맵핑시키는 액세스 방법을 정의하며, 각각의 액세스 방법은 액세스될 상기 데이터의 특정한 물리적 데이터 표현에 따른 소정의 유형임- 과,
    상기 추상 질의를 상기 액세스 방법에 따라서 상기 데이터의 특정한 물리적 데이터 표현에 부합하는 질의로 변환하는 동작
    을 수행하는 단계를 포함하되,
    상기 추상 질의를 상기 특정한 물리적 데이터 표현에 부합하는 질의로 변환하는 동작은 상기 추상 질의를 상기 액세스 방법 유형에 따라서 그룹화된 서브 질의(sub-query)로 분할하는 동작을 포함하는
    데이터 액세스 방법.
  2. 제 1 항에 있어서,
    상기 컴퓨터에 의한 동작은 상기 복수의 논리 필드의 특정 논리 필드에 대한 상기 데이터의 물리적 개체의 위치에 의해 지정된 데이터 리포지터리에 액세스하는 동작을 더 포함하는
    데이터 액세스 방법.
  3. 제 1 항에 있어서,
    상기 추상 질의는 적어도 하나의 선택 기준 및 결과 내역을 포함하는
    데이터 액세스 방법.
  4. 제 1 항에 있어서,
    상기 변환 동작은
    상기 복수의 논리 필드의 특정 논리 필드에 대한 상기 데이터의 물리적 개체에 대하여, 상기 데이터의 상기 물리적 개체가 로컬 캐시 내에 위치하는 지의 여부를 판정하는 동작과,
    상기 데이터의 물리적 개체가 로컬 캐시 내에 위치하지 않는 경우에, 상기 데이터의 물리적 개체에 대한 상기 액세스 방법으로 상기 위치에 의해 지정된 데이터 리포지터리에 액세스하도록 구성된 상기 질의의 질의 언어를 생성하는 동작을 더 포함하는
    데이터 액세스 방법.
  5. 제 1 항 내지 4 항 중 어느 한 항의 방법을 수행하는 컴퓨터 프로그램을 포함하는 컴퓨터 판독 가능한 기록매체.
  6. 적어도
    i) 복수의 논리 필드를 포함하는 추상 질의에 대한 정의를 제공하는 질의 내역을 포함하는 요청 개체와,
    (ii) 상기 논리 필드를 데이터의 물리적 개체에 맵핑시키는 맵핑 규칙을 포함하는 데이터 리포지터리 추상화 컴포넌트와,
    (iii) 상기 추상 질의를 상기 맵핑 규칙에 따라서 데이터의 상기 물리적 개체의 각각의 특정한 물리적 데이터 표현에 부합하는 질의로 변환시키는 런타임 컴포넌트
    를 포함하는 메모리와,
    상기 메모리의 컨텐츠를 실행하도록 구성된 프로세서를 포함하되,
    상기 맵핑 규칙은 (a) 상기 추상 질의의 논리 필드의 적어도 일부의 각각에 대한 위치 내역 -각각의 상기 위치 내역은 액세스될 물리적 개체를 포함하는 데이터 소스의 위치를 지정함- 과, (b) 액세스될 상기 각각의 물리적 개체에 액세스하는 방법을 각각 정의하는 액세스 방법 -각각의 상기 액세스 방법은 액세스될 상기 데이터의 특정한 물리적 데이터 표현에 따른 소정의 유형임- 을 포함하고,
    상기 변환은 상기 액세스 방법 유형에 따라서 상기 추상 질의를 그룹화된 서브 질의로 분할하는 것을 포함하는
    컴퓨터.
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 복수의 데이터 리포지터리의 환경에서 데이터에 액세스하는 방법에 있어서,
    컴퓨터에 의해
    추상 질의를 규정하는 복수의 논리 필드를 포함하는 데이터 추상화 모델을 제공하는 동작과,
    상기 복수의 논리 필드 각각에 대하여, 적어도 상기 데이터에 액세스하는 방법 및 상기 데이터의 위치를 지정하는 액세스 방법 -각각의 액세스 방법은 액세스될 상기 데이터의 특정한 물리적 데이터 표현에 따른 소정의 유형임- 을 제공하는 동작과,
    요청 개체로부터 상기 데이터 추상화 모델에 대한 인터페이스를 제공하는 질의 내역에 따라서 구성된 상기 추상 질의를 수신하는 동작과,
    상기 추상 질의를 상기 데이터의 특정한 물리적 데이터 표현에 부합하는 질의로 변환하는 동작 -상기 추상 질의를 변환하는 동작은 상기 액세스 방법의 유형에 따라서 그룹화된 서브 질의로 분할하는 동작을 포함함- 과,
    상기 복수의 논리 필드의 특정 논리 필드에 대한 데이터의 물리적 개체에 대한 액세스 방법으로 상기 위치에 의해 지정된 데이터 리포지터리에 액세스하는 동작
    을 수행하는 단계를 포함하는
    데이터 액세스 방법.
  12. 제 11 항에 있어서,
    상기 특정한 물리적 데이터 표현에 부합하는 질의는 SQL 질의, XML 질의 및 절차적 요청 중 하나인
    데이터 액세스 방법.
  13. 제 1 항 또는 11 항에 있어서,
    상기 액세스 방법의 유형은 SQL 질의, XML 질의 및 절차적 요청을 포함하는 그룹으로부터 선택되는
    데이터 액세스 방법.
  14. 제 6 항에 있어서,
    상기 각각의 위치 지정에 의해 지정된 상기 데이터 소스의 제 1 부분은 로컬(local)이고, 제 2 부분은 리모트(remote)인
    컴퓨터.
KR1020047015134A 2002-04-25 2003-04-17 데이터 액세스 방법, 기록매체 및 컴퓨터 KR100659889B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/131,984 2002-04-25
US10/131,984 US6954748B2 (en) 2002-04-25 2002-04-25 Remote data access and integration of distributed data sources through data schema and query abstraction
PCT/GB2003/001674 WO2003091829A2 (en) 2002-04-25 2003-04-17 A method, computer program and computer for accessing data in an environment of multiple data repositories

Publications (2)

Publication Number Publication Date
KR20040102053A KR20040102053A (ko) 2004-12-03
KR100659889B1 true KR100659889B1 (ko) 2006-12-20

Family

ID=29268750

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047015134A KR100659889B1 (ko) 2002-04-25 2003-04-17 데이터 액세스 방법, 기록매체 및 컴퓨터

Country Status (7)

Country Link
US (1) US6954748B2 (ko)
JP (1) JP2005524138A (ko)
KR (1) KR100659889B1 (ko)
CN (1) CN1647080B (ko)
AU (1) AU2003229917A1 (ko)
CA (1) CA2483963C (ko)
WO (1) WO2003091829A2 (ko)

Families Citing this family (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080250003A1 (en) * 2002-02-26 2008-10-09 Dettinger Richard D Peer to peer (p2p) concept query abstraction model augmentation with federated access only elements
US8375046B2 (en) * 2002-02-26 2013-02-12 International Business Machines Corporation Peer to peer (P2P) federated concept queries
US9031924B2 (en) * 2002-02-26 2015-05-12 International Business Machines Corporation Query conditions having filtered fields within a data abstraction environment
US9043365B2 (en) * 2002-02-26 2015-05-26 International Business Machines Corporation Peer to peer (P2P) federated concept queries
US8086568B2 (en) * 2002-02-26 2011-12-27 International Business Machines Corporation Peer to peer (P2P) concept query notification of available query augmentation within query results
US8458200B2 (en) * 2002-02-26 2013-06-04 International Business Machines Corporation Processing query conditions having filtered fields within a data abstraction environment
US8244702B2 (en) * 2002-02-26 2012-08-14 International Business Machines Corporation Modification of a data repository based on an abstract data representation
US6996558B2 (en) 2002-02-26 2006-02-07 International Business Machines Corporation Application portability and extensibility through database schema and query abstraction
US7398263B2 (en) * 2002-02-26 2008-07-08 International Business Machines Corporation Sequenced modification of multiple entities based on an abstract data representation
US7698441B2 (en) * 2002-10-03 2010-04-13 International Business Machines Corporation Intelligent use of user data to pre-emptively prevent execution of a query violating access controls
US7734646B2 (en) * 2003-01-29 2010-06-08 International Business Machines Corporation Data model simplification through field fallout
US7418600B2 (en) * 2003-03-13 2008-08-26 International Business Machines Corporation Secure database access through partial encryption
US7574423B2 (en) * 2003-03-20 2009-08-11 International Business Machines Corporation Partial data model exposure through client side caching
US8577908B2 (en) * 2003-03-20 2013-11-05 International Business Machines Corporation Automatic lock management in an abstract database
US7991788B2 (en) * 2003-03-27 2011-08-02 International Business Machines Corporation Abstract data model filters
US7054877B2 (en) * 2003-03-31 2006-05-30 International Business Machines Corporation Dealing with composite data through data model entities
US7340480B2 (en) * 2003-05-08 2008-03-04 International Business Machines Corporation Iterative data analysis enabled through query result abstraction
EP1482418A1 (en) * 2003-05-28 2004-12-01 Sap Ag A data processing method and system
US20040254916A1 (en) * 2003-06-12 2004-12-16 International Business Machines Corporation Data query schema based on conceptual context
US7383255B2 (en) * 2003-06-23 2008-06-03 Microsoft Corporation Common query runtime system and application programming interface
US7085757B2 (en) * 2003-07-11 2006-08-01 International Business Machines Corporation Abstract data linking and joining interface
US8239400B2 (en) * 2003-08-21 2012-08-07 International Business Machines Corporation Annotation of query components
US7899843B2 (en) * 2003-09-19 2011-03-01 International Business Machines Corporation Expanding the scope of an annotation to an entity level
US7593929B2 (en) * 2003-10-22 2009-09-22 International Business Machines Corporation Context sensitive term expansion with dynamic term expansion
US7617196B2 (en) 2003-10-22 2009-11-10 International Business Machines Corporation Context-sensitive term expansion with multiple levels of expansion
US8458215B2 (en) * 2003-11-24 2013-06-04 International Business Machines Corporation Dynamic functional module availability
US7149731B2 (en) * 2003-11-26 2006-12-12 International Business Machines Corporation Methods, systems and articles of manufacture for abstract query building with selectability of aggregation operations and grouping
US7900133B2 (en) 2003-12-09 2011-03-01 International Business Machines Corporation Annotation structure type determination
US7310637B2 (en) * 2004-05-05 2007-12-18 International Business Machines Corporation Dynamic database access via standard query language and abstraction technology
US20060004735A1 (en) * 2004-06-03 2006-01-05 International Business Machines Corporation Abstract classification field specification
US8224872B2 (en) * 2004-06-25 2012-07-17 International Business Machines Corporation Automated data model extension through data crawler approach
US7599924B2 (en) * 2004-06-25 2009-10-06 International Business Machines Corporation Relationship management in a data abstraction model
US7461066B2 (en) * 2004-06-29 2008-12-02 International Business Machines Corporation Techniques for sharing persistently stored query results between multiple users
EP1638336A1 (en) 2004-09-17 2006-03-22 Korea Electronics Technology Institute Method for providing requested fields by get-data operation in TV-Anytime metadata service
US8041728B2 (en) * 2004-09-30 2011-10-18 International Business Machines Corporation Utilization of display profiles with abstract queries
US20060074873A1 (en) * 2004-09-30 2006-04-06 International Business Machines Corporation Extending data access and analysis capabilities via abstract, polymorphic functions
US8055683B2 (en) * 2004-10-14 2011-11-08 International Business Machines Corporation Management of relationships between database tables
US8090739B2 (en) * 2004-10-14 2012-01-03 International Business Machines Corporation Utilization of logical fields with conditional modifiers in abstract queries
US8548985B2 (en) * 2004-10-29 2013-10-01 International Business Machines Corporation Method and process of query optimization to a given environment via specific abstraction layer domain knowledge
US7539668B2 (en) * 2004-11-30 2009-05-26 International Business Machines Corporation System and method for sorting data records contained in a query result based on suitability score
US20060116999A1 (en) * 2004-11-30 2006-06-01 International Business Machines Corporation Sequential stepwise query condition building
US20060116983A1 (en) * 2004-11-30 2006-06-01 International Business Machines Corporation System and method for ordering query results
US7461052B2 (en) * 2004-12-06 2008-12-02 International Business Machines Corporation Abstract query plan
US7480648B2 (en) * 2004-12-06 2009-01-20 International Business Machines Corporation Research rapidity and efficiency improvement by analysis of research artifact similarity
US8131744B2 (en) * 2004-12-17 2012-03-06 International Business Machines Corporation Well organized query result sets
US7333981B2 (en) * 2004-12-17 2008-02-19 International Business Machines Corporation Transformation of a physical query into an abstract query
US8112459B2 (en) * 2004-12-17 2012-02-07 International Business Machines Corporation Creating a logical table from multiple differently formatted physical tables having different access methods
US7321895B2 (en) * 2005-01-14 2008-01-22 International Business Machines Corporation Timeline condition support for an abstract database
US8122012B2 (en) 2005-01-14 2012-02-21 International Business Machines Corporation Abstract record timeline rendering/display
US7624097B2 (en) * 2005-01-14 2009-11-24 International Business Machines Corporation Abstract records
US7363297B2 (en) * 2005-01-20 2008-04-22 International Business Machines Corporation Utilization of logical fields with conditional constraints in abstract queries
US8095553B2 (en) * 2005-03-17 2012-01-10 International Business Machines Corporation Sequence support operators for an abstract database
US9311367B2 (en) * 2005-03-30 2016-04-12 Hewlett-Packard Development Company, L.P. Database extension structure
US8285739B2 (en) * 2005-07-28 2012-10-09 International Business Machines Corporation System and method for identifying qualifying data records from underlying databases
US7403937B2 (en) * 2005-08-31 2008-07-22 International Business Machines Corporation Abstractly mapped physical data fields
EP1932342A4 (en) * 2005-09-05 2013-04-10 Korea Electronics Telecomm METHOD AND DEVICE FOR PROVIDING SERVICE INFORMATION BY USING INQUIRY AND VIEW IN A DIGITAL DATA BROADCAST RECEIVER
US8285736B2 (en) * 2005-09-14 2012-10-09 International Business Machines Corporation Disabling query conditions in an abstract query environment
US8321441B2 (en) * 2005-09-14 2012-11-27 International Business Machines Corporation Disabling subsets of query conditions in an abstract query environment
US9679031B2 (en) 2005-09-14 2017-06-13 International Business Machines Corporation Composing abstract queries for delegated user roles
US7440945B2 (en) 2005-11-10 2008-10-21 International Business Machines Corporation Dynamic discovery of abstract rule set required inputs
US7444332B2 (en) 2005-11-10 2008-10-28 International Business Machines Corporation Strict validation of inference rule based on abstraction environment
US7472116B2 (en) * 2005-12-22 2008-12-30 International Business Machines Corporation Method for filtering query results using model entity limitations
US7774355B2 (en) 2006-01-05 2010-08-10 International Business Machines Corporation Dynamic authorization based on focus data
WO2007083371A1 (ja) 2006-01-18 2007-07-26 Fujitsu Limited データ統合装置、方法、プログラムを記録した記録媒体
US7680767B2 (en) * 2006-03-23 2010-03-16 Microsoft Corporation Mapping architecture with incremental view maintenance
US20080016047A1 (en) * 2006-07-12 2008-01-17 Dettinger Richard D System and method for creating and populating dynamic, just in time, database tables
US8949933B2 (en) * 2006-08-15 2015-02-03 International Business Machines Corporation Centralized management of technical records across an enterprise
CN100547591C (zh) * 2006-11-24 2009-10-07 北京神舟航天软件技术有限公司 应用层调用基于关系数据库的数据库抽象层的方法
ITRM20070161A1 (it) * 2007-03-27 2008-09-28 Uni Del Salento Metodo e formalismo per inviare istruzioni a database distribuiti realizzato mediante programma per computer
US8856094B2 (en) * 2007-05-08 2014-10-07 Digital River, Inc. Remote segmentation system and method
US20090182718A1 (en) * 2007-05-08 2009-07-16 Digital River, Inc. Remote Segmentation System and Method Applied To A Segmentation Data Mart
US8140557B2 (en) 2007-05-15 2012-03-20 International Business Machines Corporation Ontological translation of abstract rules
US8219654B2 (en) * 2007-05-17 2012-07-10 Microsoft Corporation Highly available central controller to store and enforce valid state transitions of distributed components
US7840585B2 (en) * 2007-06-12 2010-11-23 Microsoft Corporation DISCOSQL: distributed processing of structured queries
US8204906B2 (en) * 2007-07-13 2012-06-19 International Business Machines Corporation Abstraction based audit and security log model for increased role and security enforcement
US8468212B2 (en) 2007-08-08 2013-06-18 Silicon Image, Inc. Network repository for metadata
US7856448B2 (en) * 2008-02-14 2010-12-21 International Business Machines Corporation Access control decision method and system
US8321438B1 (en) * 2008-06-18 2012-11-27 Bank Of America Corporation Integration layer for a data repository
CN101685449B (zh) * 2008-09-26 2012-07-11 国际商业机器公司 一种用于连接多个异构分布式数据库中的表的方法和系统
US8266170B2 (en) 2010-04-26 2012-09-11 International Business Machines Corporation Peer to peer (P2P) missing fields and field valuation feedback
EP2564306A4 (en) * 2010-04-27 2017-04-26 Cornell University System and methods for mapping and searching objects in multidimensional space
US8583699B2 (en) 2010-04-30 2013-11-12 International Business Machines Corporation Web service discovery via data abstraction model augmented by field relationship identification
US8275806B2 (en) 2010-04-30 2012-09-25 International Business Machines Corporation Web service discovery via data abstraction model and condition creation
US8949280B2 (en) 2010-04-30 2015-02-03 International Business Machines Corporation Web service discovery via data abstraction model with input assistance
US8250113B2 (en) 2010-04-30 2012-08-21 International Business Machines Corporation Web service discovery via data abstraction model
US8321451B2 (en) 2010-04-30 2012-11-27 International Business Machines Corporation Automatic web service discovery and information retrieval via data abstraction model
US8725857B2 (en) * 2010-10-27 2014-05-13 Rolta International, Inc. Dynamic query services and methods
CN102609421B (zh) * 2011-01-24 2013-11-13 阿里巴巴集团控股有限公司 数据查询方法及装置
CN102945264B (zh) * 2012-10-24 2017-02-15 浪潮通用软件有限公司 智能启用分布式事务的方法
US10963426B1 (en) 2013-02-25 2021-03-30 EMC IP Holding Company LLC Method of providing access controls and permissions over relational data stored in a hadoop file system
US9753980B1 (en) 2013-02-25 2017-09-05 EMC IP Holding Company LLC M X N dispatching in large scale distributed system
US9244656B2 (en) * 2013-03-26 2016-01-26 Sap Se Integrated development environment for heterogeneous client/server environments
CN103605788A (zh) * 2013-12-03 2014-02-26 上海浦东物流云计算有限公司 数据处理方法及系统、客户端及存储引擎
KR102177190B1 (ko) * 2014-06-30 2020-11-10 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 유연한 스키마를 사용한 데이터 관리
US9158786B1 (en) 2014-10-01 2015-10-13 Bertram Capital Management, Llc Database selection system and method to automatically adjust a database schema based on an input data
CN104679889A (zh) * 2015-03-17 2015-06-03 浪潮集团有限公司 一种面向大数据处理的数据存储方法和装置
CN104731911A (zh) * 2015-03-24 2015-06-24 浪潮集团有限公司 一种数据表与实体类的动态映射及转换方法
CN106919607B (zh) * 2015-12-25 2020-09-08 华为技术有限公司 一种数据访问方法、装置及系统

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5121494A (en) * 1989-10-05 1992-06-09 Ibm Corporation Joining two database relations on a common field in a parallel relational database field
US5742806A (en) 1994-01-31 1998-04-21 Sun Microsystems, Inc. Apparatus and method for decomposing database queries for database management system including multiprocessor digital data processing system
US5943666A (en) * 1997-09-15 1999-08-24 International Business Machines Corporation Method and apparatus for optimizing queries across heterogeneous databases
US5918232A (en) * 1997-11-26 1999-06-29 Whitelight Systems, Inc. Multidimensional domain modeling method and system
US6725227B1 (en) 1998-10-02 2004-04-20 Nec Corporation Advanced web bookmark database system
US20010016843A1 (en) * 1999-02-08 2001-08-23 Todd Olson Method and apparatus for accessing data
US20020123984A1 (en) * 1999-08-23 2002-09-05 Naveen Prakash Dynamic query of server applications
CA2281331A1 (en) * 1999-09-03 2001-03-03 Cognos Incorporated Database management system
US6934712B2 (en) 2000-03-21 2005-08-23 International Business Machines Corporation Tagging XML query results over relational DBMSs
US7437349B2 (en) * 2002-05-10 2008-10-14 International Business Machines Corporation Adaptive probabilistic query expansion
US6928554B2 (en) 2002-10-31 2005-08-09 International Business Machines Corporation Method of query return data analysis for early warning indicators of possible security exposures

Also Published As

Publication number Publication date
KR20040102053A (ko) 2004-12-03
CA2483963A1 (en) 2003-11-06
US20030208458A1 (en) 2003-11-06
WO2003091829A3 (en) 2004-03-04
US6954748B2 (en) 2005-10-11
AU2003229917A1 (en) 2003-11-10
WO2003091829A2 (en) 2003-11-06
CN1647080B (zh) 2010-04-14
CN1647080A (zh) 2005-07-27
JP2005524138A (ja) 2005-08-11
CA2483963C (en) 2010-11-16

Similar Documents

Publication Publication Date Title
KR100659889B1 (ko) 데이터 액세스 방법, 기록매체 및 컴퓨터
US7096229B2 (en) Dynamic content generation/regeneration for a database schema abstraction
US7827159B2 (en) Automated data model extension through data crawler approach
US6928431B2 (en) Dynamic end user specific customization of an application&#39;s physical data layer through a data repository abstraction layer
US7689551B2 (en) Iterative data analysis enabled through query result abstraction
US8244702B2 (en) Modification of a data repository based on an abstract data representation
KR100843651B1 (ko) 추상적 데이터베이스에서의 규칙 애플리케이션 관리
JP3437849B2 (ja) オブジェクト指向プログラミングを支援するデータベース管理システム及び方法
JP4716729B2 (ja) データに関するセキュリティを提供する方法、及びそのコンピュータ・プログラム
US8086647B2 (en) Sequenced modification of multiple entities based on an abstract data representation
US7158969B2 (en) Iterative data analysis process via query result augmentation and result data feedback
US20080319969A1 (en) Query conditions having filtered fields within a data abstraction environment
US8433729B2 (en) Method and system for automatically generating a communication interface
US8577908B2 (en) Automatic lock management in an abstract database
US20060047710A1 (en) Globalized database system and method for accessing the same
US7089232B2 (en) Method of synchronizing distributed but interconnected data repositories
US20060074873A1 (en) Extending data access and analysis capabilities via abstract, polymorphic functions

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20101109

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee