KR20070049590A - 데이터베이스 액세스 장치, 시스템 및 방법 - Google Patents

데이터베이스 액세스 장치, 시스템 및 방법 Download PDF

Info

Publication number
KR20070049590A
KR20070049590A KR1020060110007A KR20060110007A KR20070049590A KR 20070049590 A KR20070049590 A KR 20070049590A KR 1020060110007 A KR1020060110007 A KR 1020060110007A KR 20060110007 A KR20060110007 A KR 20060110007A KR 20070049590 A KR20070049590 A KR 20070049590A
Authority
KR
South Korea
Prior art keywords
attribute
name
list
request
database
Prior art date
Application number
KR1020060110007A
Other languages
English (en)
Inventor
브라이언 폴 도일
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20070049590A publication Critical patent/KR20070049590A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions

Abstract

데이터베이스를 액세스하는 장치, 시스템 및 방법이 개시된다. 요구 속성 모듈은 요구 블록에서 수신된 데이터 값 이름에 대해 속성 데이터베이스로부터 요구 속성 리스트를 구성하며, 요구 블록은 타깃 데이터베이스로의 조회이고 타깃 데이터베이스용의 질의문으로 포맷되지 않은 것이다. 요구 속성 리스트는 데이터 값 이름을 속성 이름 및 스키마 이름에 연관시킨다. 스키마 이름 모듈은 스키마 이름 리스트에 포함되어 있지 않은 스키마 이름에 응답하여, 요구 속성 리스트로부터의 스키마 이름을 스키마 이름 리스트에 추가한다. 속성 이름 모듈은 속성 이름 리스트에 포함되어 있지 않은 속성 이름에 응답하여, 요구 속성 리스트로부터의 속성 이름을 속성 이름 리스트에 추가한다. 질의 구축 모듈은 스키마 이름 리스트 및 속성 이름 리스트로부터 타깃 데이터 베이스에 관련된 질의문을 구축한다.

Description

데이터베이스 액세스 장치, 시스템 및 방법{APPARATUS, SYSTEM, AND METHOD FOR ACCESSING A DATABASE}
도 1은 본 발명의 데이터베이스 시스템의 일 실시예를 설명하는 개략적인 블록도이다.
도 2는 본 발명의 데이터 브로커(data broker)의 일 실시예를 설명하는 개략적인 블록도이다.
도 3은 본 발명의 데이터베이스 액세스 프로세스의 일 실시예를 설명하는 개략적인 블록도이다.
도 4는 본 발명에 따른 서버의 일 실시예를 설명하는 개략적인 블록도이다.
도 5는 본 발명의 데이터베이스 액세스 방법의 일 실시예를 설명하는 개략적인 흐름도이다.
도 6은 본 발명의 질의문 생성(creat query statement) 방법의 일 실시예를 설명하는 개략적인 흐름도이다.
도 7은 본 발명의 질의문 실행(execute query statement) 방법의 일 실시예를 설명하는 개략적인 흐름도이다.
도 8은 본 발명의 질의문 구성(construct query statement) 방법의 일 실시예를 설명하는 개략적인 흐름도이다.
도 9는 본 발명의 속성 데이터베이스 포맷(attribute database format)의 일 실시예를 설명하는 개략적인 블록도이다.
도 10은 본 발명의 요구 속성 리스트(request attribute list)의 일 실시예를 설명하는 개략적인 블록도이다.
도면의 주요 부분에 대한 부호의 설명
105 : 타깃 데이터베이스 110 : 속성 데이터베이스
115 : 타깃 데이터베이스 인터페이스 120 : 데이터 브로커
125 : 유지보수 툴 모듈 130 : 공통 브로커 인터페이스
205 : 요구 속성 모듈 210 : 스키마 이름 모듈
215 : 속성 이름 모듈 220 : 질의 구축 모듈
230 : 질의 실행 모듈 230 : 변환 모듈
310 : 요구 속성 리스트 315 : 스키마 이름 리스트
320 : 속성 이름 리스트
본 발명은 타깃 데이터베이스를 액세스하는 것에 관한 것으로, 더욱 상세하게는 데이터베이스 질의문(database query statement)으로서 포맷되지 않은 조 회(inquiry)를 가지고 타깃 데이터베이스를 액세스하는 것에 관한 것이다.
데이터베이스는 조직이나 개개인의 다량의 정보를 저장하는데 사용된다. 예를 들면, 상업용 데이터베이스는 어떤 조직의 다수의 고객에 대한 고객 기록뿐만 아니라 각 고객에 관련하는 다수의 거래를 저장할 수도 있다. 전형적인 데이터베이스는 다수의 스키마(schema)를 이용하여 조직된다. 예를 들면, 데이터베이스는 하나 이상의 테이블과 하나 이상의 테이블 뷰(views)로서 조직될 수도 있다. 또한, 테이블과 뷰는 본 기술분야에서 통상의 지식을 가진자에게 잘 알려진 하나 이상의 컬럼(column) 혹은 속성(attribute) 및 하나 이상의 로우(row)를 포함할 수도 있다. 데이터베이스의 스키마는 테이블과, 뷰 등을 포함할 수도 있다.
데이터베이스 데이터의 사용자는 종종 데이터베이스 데이터의 부분집합(subset)만을 액세스하고자 한다. 또한 사용자는 선택된 정보를 목표로 하는 편리한 조직 내에 액세스한 부분집합을 구성하고자 할 수도 있는데, 비록 이 편리한 조직이 데이터베이스와 아주 다를 수 있을지라도 그러하다. 사용자는 질의문을 사용하여 데이터베이스 애플리케이션이 타깃 데이터베이스 데이터를 액세스하고 조직하도록 한다. 질의문은 액세스 될 데이터의 부분집합, 액세스한 데이터에 실행할 명령(operation), 및/또는 액세스한 데이터의 출력 조직을 명시할 수도 있다. 질의문의 일 예는 구조화된 질의 언어(structured query language ("SQL")문(statement)이다. 뉴욕, 아몬크 소재의 인터내셔널 비지니스 머신즈 코포레이션 ("IBM")의 DB2M Product Family를 포함하는 다수의 데이터베이스 애플리케이션에 각 종 SQL문의 변경문(variations)들이 사용된다.
질의문은 데이터베이스 애플리케이션과 직접 통신할 수도 있거나 데이터베이스를 액세스하는데 사용된 프로세스에 합체될 수도 있다. 예를 들면, 전력회사에서 사용자가 청구서 프린팅 프로세스를 실행함으로써 데이터베이스로부터 전력 고객의 청구서를 프린트한다. 청구서 프린팅 프로세스는 하나 이상의 SQL문을 사용하여 판독이 용이한 조직에서 미결제 잔액이 있는 현재 고객과 과거 고객의 데이터에 액세스하고, 현재 잔액을 계산하여 각 고객의 이름, 주소, 계좌번호 및 잔액을 프린트한다.
유감스럽게도 데이터베이스 애플리케이션 이외에 많은 다른 소프트웨어 애플리케이션들이 타깃 데이터베이스로의 액세스를 필요로 할 수 있다. 예를 들면, 타깃 데이터베이스에 액세스하는 데에는 C, C++, 자바, 코볼 등으로 작성된 소프트웨어 애플리케이션, 및/또는 확장성 생성 언어("XML") 및 하이퍼텍스트 생성 언어("HTML")와 같은 통신 포맷이 바람직할 수 있다. 그러나, 이들 소프트웨어 애플리케이션과 요구(requests)는 타깃 데이터베이스에 액세스하는데 필요한 질의문을 쉽게 만들기가 불가능할 수도 있다.
전술한 설명으로부터, 타깃 데이터베이스 질의문으로서 포맷되지 않은 요구를 이용하여 타깃 데이터베이스를 액세스하는 장치, 시스템 및 방법이 필요하다. 이러한 장치, 시스템 및 방법은 다수의 소프트웨어 애플리케이션 및 타깃 데이터베이스를 액세스하는 통신 포맷인 것이 유리할 것이다.
본 발명은 현 수준의 기술에 따라, 특히, 전술한 문제에 답하여 개발되었으며, 현재 이용가능한 데이터베이스 액세스 방법으로도 완전히 해결되지 않았던 기술에서 요구된다. 따라서, 본 발명은 본 기술에서 전술한 단점 중 많은 부분을 또는 모두를 극복하는 데이터베이스를 액세스하는 장치, 시스템, 및 방법을 제공하기 위해 개발되었다.
데이터베이스를 액세스하는 장치는 요구 속성 리스트를 구성하고, 스키마 및/또는 테이블 이름을 스키마 이름 리스트에 추가하고, 속성 이름을 속성 이름 리스트에 추가하며, 스키마 이름 리스트 및 속성 이름 리스트로부터 질의문을 구축하는 필요한 단계를 기능적으로 실행하도록 구성된 다수의 모듈을 갖추고 있다. 개시된 실시예에서 이들 모듈은 요구 속성 모듈, 스키마 이름 모듈, 속성 이름 모듈, 및 질의 구축 모듈을 포함한다. 또한, 이 장치는 질의 실행 모듈 및 변환 모듈을 더 포함할 수 있다.
요구 블록은 타깃 데이터베이스로의 조회로서 구성된다. 요구 블록은 데이터 값 이름을 포함하며 타깃 데이터베이스용의 질의문으로서 포맷되어 있지 않다. 요구 속성 모듈은 데이터 값 이름에 대한 요구 속성 리스트를 구성한다. 일 실시예에서, 요구 속성 모듈은 속성 데이터베이스를 이용하여 요구 속성 리스트를 구성한다. 요구 속성 리스트는 속성 데이터베이스로부터 데이터 값 이름을 속성 이름 및 스키마 이름과 연관시킨다.
스키마 이름 모듈은 스키마 이름 리스트에 포함되어 있지 않은 스키마 이름 에 응답하여 요구 속성 리스트로부터의 스키마 이름을 스키마 이름 리스트에 추가한다. 또한, 속성 이름 모듈은 속성 이름 리스트에 포함되어 있지 않은 속성 이름에 응답하여, 요구 속성 리스트로부터의 속성 이름을 속성 이름 리스트에 추가한다.
질의 구축 모듈은 스키마 이름 리스트 및 속성 이름 리스트로부터 타깃 데이터 베이스에 관련된 질의문을 구축한다. 일 실시예에서, 질의문은 SQL문이다. 어느 실시예에서, 질의 구축 모듈은 SQL문을 속성 이름 및 스키마 이름을 이용하는 SELECT문으로 구축한다.
일 실시예에서, 질의 실행 모듈은 질의문을 실행한다. 질의 실행 모듈은 질의문을 타깃 데이터베이스용 데이터베이스 애플리케이션에 제출할 수 있다. 또한, 변환 모듈은 질의문을 실행하여 나온 결과를 요구 블록에 의해 명시된 포맷으로 변환할 수 있다. 애플리케이션은 비록 요구 블록이 질의문으로 포맷되지 않았을지라도 요구 블록에 의해 구현된 조회에 응답하여 타깃 데이터베이스에 액세스한다.
본 발명의 시스템은 또한 데이터베이스를 액세스하도록 제공된다. 이 시스템은 데이터베이스 시스템에서 구현될 수 있다. 특히, 일 실시예에서, 시스템은 타깃 데이터베이스, 속성 데이터베이스, 요구 속성 모듈, 스키마 이름 모듈, 속성 이름 모듈, 질의 구축 모듈, 및 질의 실행 모듈을 포함한다.
데이터베이스는 스키마 및 테이블에 의해 규정된 조직으로 데이터를 저장한다. 예를 들면, 데이터베이스는 하나 이상의 뷰로서 액세스가능한 하나 이상의 테이블로서 조직될 수 있다. 각각의 테이블은 다수의 속성 또는 컬럼 및 로우로서 조직될 수 있다.
속성 데이터베이스는 데이터 값 이름을 속성 이름 및 스키마 이름과 연관시킨다. 예를 들면, 속성 데이터베이스는 데이터 값 이름 "성"을 스키마 이름 "고객"을 갖는 테이블 내 속성 이름 "첫 번째 이름"과 연관시킨다.
소프트웨어 애플리케이션은 요구 블록을 시스템으로 전달할 수 있다. 요구 속성 모듈은 요구 블록에서 수신된 데이터 값 이름에 대한 요구 속성 리스트를 속성 데이터베이스로부터 구성하며, 여기서 요구 블록은 타깃 데이터베이스로의 조회이고 타깃 데이터베이스용의 질의문으로 포맷되지 않은 것이다. 스키마 이름 모듈은 스키마 이름 리스트에 포함되어 있지 않은 스키마 이름에 응답하여 요구 속성 리스트로부터의 스키마 이름을 스키마 이름 리스트에 추가한다. 속성 이름 모듈은 속성 이름 리스트에 포함되어 있지 않은 속성 이름에 응답하여 요구 속성 리스트로부터의 속성 이름을 속성 이름 리스트에 추가한다.
질의 모듈은 스키마 이름 리스트 및 속성 이름 리스트로부터 타깃 데이터 베이스에 관련된 질의문을 구축한다. 실행 모듈은 타깃 데이터베이스를 액세스하여, 질의문을 실행한다. 시스템은 소프트웨어 애플리케이션이 데이터베이스에 액세스하는 것을 허용하여, 요구 블록에 응답해 질의문을 생성하고 실행한다.
본 발명의 방법은 또한 데이터베이스를 액세스하기 위하여 제시된다. 개시된 실시예에서의 방법은 실질적으로 개시된 장치 및 시스템의 동작에 대하여 제시된 기능을 실행하는데 필요한 단계를 포함한다. 일 실시예에서, 본 방법은 요구 속성 리스트를 구축하는 단계, 스키마 이름을 스키마 이름 리스트에 추가하는 단 계, 속성 이름을 속성 이름 리스트에 추가하는 단계, 및 스키마 이름 리스트 및 속성 이름 리스트로부터 질의문을 구축하는 단계를 포함한다.
요구 속성 모듈은 요구 블록에서 수신된 데이터 값 이름에 대해 속성 데이터베이스로부터 요구 속성 리스트를 구성하며, 여기서 요구 블록은 타깃 데이터베이스로의 조회이고 타깃 데이터베이스용의 질의문으로 포맷되지 않은 것이다. 요구 속성 리스트는 속성 데이터베이스로부터의 스키마 이름과 속성 이름을 데이터 값 이름과 연관시킨다. 스키마 이름 모듈은 스키마 이름 리스트에 포함되어 있지 않은 스키마 이름에 응답하여 요구 속성 리스트로부터의 스키마 이름을 스키마 이름 리스트에 추가한다. 속성 이름 모듈은 속성 이름 리스트에 포함되어 있지 않은 속성 이름에 응답하여 요구 속성 리스트로부터의 속성 이름을 속성 이름 리스트에 추가한다. 질의 모듈은 스키마 이름 리스트 및 속성 이름 리스트로부터 타깃 데이터 베이스와 관련된 질의문을 구축한다. 본 방법은 타깃 데이터베이스를 액세스한다.
본 명세서를 통틀어 특징, 장점, 혹은 유사한 말을 참조하는 것은 본 발명으로 실현될 수 있는 모든 특징 및 장점이 본 발명의 한 실시예에 있어야 한다거나 있다는 것을 의미하지 않는다. 그보다는 특징 및 장점을 참조하는 말은 실시예와 함께 기술된 특정한 특징, 장점, 또는 특성이 본 발명의 적어도 한 실시예에 포함되어 있다는 것을 의미한다. 그래서, 본 명세서를 통틀어 특징 및 장점, 그리고 유사한 말은 반드시 그렇지는 않지만 같은 실시예를 참조하여 기술되는 것이다.
더욱이, 본 발명의 개시된 특징, 장점, 및 특성은 적합한 모든 방식으로 하나 이상의 실시예에 조합될 수 있다. 관련 기술에서 통상의 지식을 가진 자에게는 본 발명이 특정 실시예의 하나 이상의 특정한 특징 또는 장점이 없이도 실시될 수 있음이 인식될 것이다. 다른 예를 들면, 본 발명의 모든 실시예에서 제시되지 않을 수도 있는 추가적인 특징 및 장점이 어느 실시예에서는 인식될 수도 있다.
본 발명의 실시예는 데이터베이스 질의문으로 포맷되지 않은 요구 블록에 응답하여 타깃 데이터베이스를 액세스한다. 또한, 본 발명의 실시예는 다수의 논-데이터베이스(non-database) 소프트웨어 애플리케이션이 타깃 데이터베이스를 액세스하게 해준다. 본 발명의 이러한 특징 및 장점은 다음의 설명과 청구범위로부터 자명해질 것이고, 또는 이하에서 설명되는 본 발명의 실시에 의해 알 수 있다.
본 발명의 장점을 쉽게 이해하기 위하여, 위에서 간략히 설명한 본 발명은 첨부한 도면에 예시된 특정 실시예를 참조하여 더욱 상세히 설명될 것이다. 도면들이 본 발명의 전형적인 실시예들만을 묘사한다는 것과 본 발명의 범주를 제한한다는 것으로 간주해서는 안됨을 이해하면서, 본 발명은 첨부 도면을 사용하여 더욱 상세히 기술되고 설명될 것이다.
본 명세서에서 기술된 많은 기능적 유닛은 이들의 구현 자주성을 특별히 강조하기 위하여 모듈이라 지칭한다. 예를 들면, 모듈은 커스텀 VLSI 회로나 게이트 어레이, 로직 칩, 트랜지스터나 다른 개별 구성부품과 같은 상용 기성품(off-the-self) 반도체를 포함하는 하드웨어 회로로 구현될 수도 있다. 모듈은 필드 프로그램 게이트 어레이, 프로그램가능 어레이 로직, 또는 프로그램가능 로직 디바이스 등과 같은 프로그램가능 하드웨어 장치로 구현될 수 있다.
모듈은 각종 유형의 프로세서들이 실행하기 위한 소프트웨어에서 구현될 수 있다. 예를 들면, 실행가능 코드의 식별된 모듈은, 예를 들면, 객체, 절차, 또는 기능으로서 조직될 수 있는 하나 이상의 물리적 또는 논리적 컴퓨터 명령어 블록을 포함할 수 있다. 그럼에도, 실행가능하게 식별된 모듈은 물리적으로 함께 배치될 필요는 없지만, 논리적으로 함께 결합하고 있을 때 그 모듈을 포함하고 그 모듈의 지시된 목적을 성취하는 상이한 위치에 저장된 별개의 명령어를 포함할 수도 있다.
정말로, 실행 코드의 모듈은 단일 명령어, 또는 여러 명령어일 수 있으며, 심지어는 다른 프로그램들 중에 상이한 여러 코드 조각으로 분산되어 있을 수 있으며 여러 메모리 장치들에 걸쳐 분산되어 있을 수도 있다. 유사하게, 연산 데이터는 본 명세서에서는 모듈 내에서 식별되고 예시될 수 있으며 어느 적합한 형태로 구현되고 어느 적합한 데이터 구조의 형태로 조직될 수 있다. 연산 데이터는 단일의 데이터 집합으로 수집될 수 있거나, 혹은 상이한 저장 장치에 걸쳐 포함하고 있는 상이한 저장위치에 걸쳐 분산될 수도 있으며, 적어도 부분적으로는 단지 시스템 또는 네트워크 상의 전자 신호만으로 존재할 수도 있다.
본 명세서를 통틀어 "일 실시예", "실시예", 또는 유사한 말은 실시예와 함께 기술된 특별한 특징, 구조, 혹은 특성이 적어도 본 발명의 일 실시예에 포함된다는 것을 의미한다. 그래서, 본 명세서를 통틀어 구문 "일 실시예에서", "실시예에서", 그리고 그와 유사한 말이 나오면 반드시 그렇지는 않지만, 모두 같은 실시예를 지칭하는 것일 수 있다.
신호를 담고 있는 매체(signal bearing medium)는 신호를 생성할 수 있고, 신호가 발생되게 할 수 있고, 또는 기계에서 판독가능한 명령어의 프로그램을 디지털 처리 장치에서 실행할 수 있게 하는 모든 형태를 가질 수 있다. 신호를 담고 있는 매체는 전송 라인, 콤팩트 디스크, 디지털-비디오 디스크, 자기 테이프, 베르누이 장치(bernoulli drive), 자기 디스크, 펀치 카드, 플래시 메모리, 집적 회로, 또는 기타 디지털 처리 장치 메모리 장치로 구현될 수 있다.
더욱이, 본 발명의 개시된 특징, 구조, 또는 특성은 하나 이상의 실시예에서 어느 적합한 방식으로도 결합될 수 있다. 다음의 설명에서, 본 발명의 실시예의 확실한 이해를 돕기 위하여 프로그래밍, 소프트웨어 모듈, 유저 셀렉션, 네트워크 트랜잭션, 데이터베이스 질의, 데이터베이스 구조, 하드웨어 모듈, 하드웨어 회로, 하드웨어 칩 등의 예들과 같은 많은 특정 세부사항이 제공된다. 그러나, 관련기술에서 통상의 지식을 가진 자에게는 본 발명이 하나 이상의 특정 세부사항 없이도, 또는 다른 방법, 구성성분, 및 물질 등을 가지고도 실시될 수 있음이 인식될 것이다. 다른 예를 들면, 본 발명의 태양이 모호해지는 것을 방지하기 위하여 공지의 구조, 물질 또는 동작이 상세히 도시되거나 설명되지 않는다.
도 1은 본 발명의 데이터베이스 시스템(100)의 일 실시예를 설명하는 개략적인 블록도이다. 시스템(100)은 타깃 데이터베이스(105), 속성 데이터베이스(110), 타깃 데이터베이스 인터페이스(115), 데이터 브로커(data broker)(120), 유지보수 툴 모듈(maintenance tool module)(125), 공통 브로커 인터페이스(130), 하나 이상의 요구 모듈(request module)(135), 하나 이상의 인터페이스 모듈(140) 및 프린트 서버(145)를 포함한다.
타깃 데이터베이스(105)는 본 기술분야에서 통상의 지식을 가진 자에게 잘 알려진 테이블, 뷰, 속성 또는 컬럼, 로우 및 키(key)와 같은 하나 이상의 스키마를 이용하여 조직화된 데이터를 포함한다. 예를 들면, 타깃 데이터베이스(105)는 하나 이상의 테이블로 조직될 수 있다. 각 테이블은 하나 이상의 뷰와 연관될 수 있다. 게다가, 각 테이블은 하나 이상의 속성 또는 컬럼 및 하나 이상의 로우를 포함할 수 있다. 특정한 로우는 그 로우를 식별하는 키를 포함할 수 있다.
타깃 데이터베이스(105)는 타깃 데이터베이스 인터페이스(115)를 이용하여 액세스된다. 타깃 데이터베이스 인터페이스(115)는 IBM으로부터 입수가능한 DB2TM, 캘리포니아, 레드우드 쇼어 소재의 오라클 코포레이션으로부터 입수가능한 Oracle DatabaseTM, 또는 레드몬드 워싱톤 소재의 마이크로소프트 코포레이션으로부터 입수가능한 SQL ServerTM와 같은 데이터베이스 애플리케이션 일 수도 있다.
비록 타깃 데이터베이스 인터페이스(115)가 타깃 데이터베이스(105)로 액세스하는 것을 지원할 지라도, 요구 모듈(135)은 타깃 데이터베이스 인터페이스(115)를 통하여 타깃 데이터베이스(105)에 액세스하지 못할 수 있다. 예를 들면, 제1 요구 모듈(135a)은 프로그래밍 언어 C++로 작성된 소프트웨어 프로그램일 수도 있다. 제1 요구 모듈(135a)은 타깃 데이터베이스 인터페이스(115)를 통하여 타깃 데이터베이스(105)의 데이터를 액세스하는데 적응하기가 쉽지 않거나 용이하지 않을 수도 있다. 게다가, 제3 요구 모듈(135c)은 타깃 데이터베이스(115)를 액세스하는 데 적합하지 않은 XML 요구일 수도 있다. 시스템(100)은 타깃 데이터베이스(105)를 액세스하는 다수의 소프트웨어 애플리케이션 및 통신 포맷을 지원한다.
속성 데이터베이스(110)는 데이터 값 이름을 타깃 데이터베이스(105)의 속성 이름 및 스키마 및/또는 테이블 이름에 연관시킨다. 데이터 값 이름은 요구 모듈(135)이 타깃 데이터베이스(105)를 액세스하는데 사용될 수 있다. 일 실시예에서, 데이터 값 이름은 타깃 데이터베이스(105)의 속성 이름과 연관될 수도 있다. 어떤 실시예에서, 속성 이름은 속성 이름의 포맷과 다른 계층적(hierarchal) 포맷일 수도 있다. 제1 요구 모듈(135a)과 같은 요구 모듈(135)은 데이터 값 이름을 포함하는 조회(inqnuiry)를 제1 인터페이스 모듈(140a)에게 전달할 수 있다. 제1 인터페이스 모듈(140a)은 그 조회를 데이터 값 이름을 포함하는 공통 조회 포맷으로 변환할 수 있다. 공통 브로커 인터페이스(130)는 공통 조회 포맷 조회를 조회 블록으로 변환하고 그 요구 불록을 데이터 브로커(120)에게 전달할 수 있다.
예를 들면, C++ 소프트웨어 프로그램으로 구성된 제1 요구 모듈(135a)은 헤더 문자 스트링(header character string)과 구분문자로 된 문자 스트링으로 구성된 하나 이상의 요구로 포맷된 조회를 전달할 수 있다. 요구 문자 스트링은 데이터 값 이름 "고객_시(customer_city)" 및 키 값 "4719 2699 3288 4218"을 포함할 수도 있다. 여기서 키 값은 계좌 번호이다. 제1 인터페이스 모듈(140a)은 조회를, 각 요구 문자 스트링에 대한 데이터 어레이를 갖는 데이터 어레이들의 링크된 어레이로 변환할 수 있다. 각각의 데이터 어레이는 하나 이상의 데이터 필드를 포함할 수 있다. 제1 인터페이스 모듈(140a)은 데이터 값 이름 "고객_시"를 제1 데 이터 필드에다 그리고 키 값 "4719 2699 3288 4218"을 제2 데이터 필드에다 복사할 수 있다. 공통 브로커 인터페이스(130)는 또한 링크된 데이터 어레이를 요구 블록으로서 포맷하고 그 요구 블록을 데이터 브로커(120)에게 전달할 수 있다.
데이터 브로커(120)는 요구 블록을 이용하여 아래에서 설명되는 방식으로 타깃 데이터베이스(105)를 액세스한다. 또한, 데이터 브로커(120)는 타깃 데이터베이스 액세스의 결과를 수신하고 그 결과를 공통 브로커 인터페이스(130)에게 전달한다. 공통 인터페이스 브로커는 그 결과를 인터페이스 모듈(140)을 통하여 요구 모듈(135)에게 전달할 수 있다.
일 실시예에서, 요구 모듈(135)은 프린트 처리 데이터를 위하여 데이터 브로커(120)를 통해 타깃 데이터베이스(105)를 액세스할 수 있다. 예를 들면, 제1 요구 모듈(135a)은 고객 청구서를 프린트 서버(145)에게서 프린트할 수 있고 타깃 데이터베이스(105)를 액세스하여 고객 청구서 프린트 작업에 필요한 데이터를 검색할 수 있다.
유지보수 툴 모듈(125)은 속성 데이터베이스(110)를 유지시킨다. 예를 들면, 사용자는 유지보수 툴 모듈(125)을 이용하여 데이터 값 이름, 연관된 속성 이름, 및 속성 데이터베이스(110)에 연관된 하나 이상의 스키마 및/또는 테이블 이름을 포함하는 엔트리를 추가할 수 있다. 또한, 사용자는 유지보수 툴 모듈(125)를 이용하여 속성 데이터베이스(110)로의 엔트리를 제거 혹은 변경할 수 있다.
도 2는 본 발명의 데이터 브로커의 일 실시예를 설명하는 개략적인 블록도이다. 데이터 브로커(120)는 도 1의 데이터 브로커이다. 또한, 데이터 브로커(120) 의 설명은 도 1의 구성요소를 참조하며, 같은 참조부호는 같은 구성요소를 지칭한다. 데이터 브로커(120)의 실시예는 요구 속성 모듈(205), 스키마 이름 모듈(210), 속성 이름 모듈(215), 질의 구축 모듈(quary build module)(220), 질의 실행 모듈(225) 및 변환 모듈(230)을 포함한다.
요구 속성 모듈(205)은 데이터 값 이름을 포함하는 요구 블록을 수신한다. 일 실시예에서, 요구 블록은 다수의 데이터 값 이름을 포함한다. 요구 속성 모듈(205)은 도 1의 공통 브로커 인터페이스(130)로부터 요구 블록을 수신할 수 있다. 요구 속성 모듈(205)은 요구 블록의 하나 이상의 데이터 값 이름에 대한 요구 속성 리스트를 구성한다. 일 실시예에서, 요구 속성 모듈(205)은 도 1의 속성 데이터베이스(110)를 이용하여 요구 속성 리스트를 구축한다.
일 실시예에서, 요구 속성 리스트는 연관된 속성 이름 및 하나 이상의 스키마 및/또는 테이블 이름을 갖는 데이터 값 이름을 포함한다. 예를 들면, 도 1에서 예를 들어 설명한 데이터 값 이름 "고객_시" 및 키 값 "4719 2699 3288 4218"은 속성 이름 "시" 및 테이블 이름 "고객"과 연관될 수 있다. 요구 리스트는 구분문자로된 플랫 파일, 또는 데이터 어레이의 링크된 어레이 등으로서 구성될 수 있다.
스키마 이름 모듈(210)은 스키마 이름 리스트에 포함되지 않은 스키마 이름에 응답하여 요구 속성 리스트로부터의 스키마 이름을 스키마 이름 리스트에 추가한다. 스키마 이름 리스트는 타깃 데이터베이스(105)로부터의 데이터 값 이름에 관련하는 데이터를 액세스하는데 필요한 테이블 이름과 같은 하나 이상의 스키마 이름을 포함한다. 스키마 이름 모듈(210)은 스키마 이름의 다중 인스턴 스(instance)가 스키마 이름 리스트에 포함되지 않도록 한다.
속성 이름 모듈(215)은 속성 이름 리스트에 포함되지 않은 속성 이름에 응답하여 속성 이름을 속성 이름 리스트에 추가한다. 속성 이름 리스트는 타깃 데이터베이스(105)로부터 데이터 값 이름에 관련하는 데이터를 액세스하는데 필요한 하나 이상의 속성 이름을 포함한다. 속성 이름 모듈(215)은 속성 이름의 다중 인스턴스가 속성 이름 리스트에 포함되지 않도록 한다.
질의 구축 모듈(220)은 스키마 이름 리스트 및 속성 이름 리스트로부터 타깃 데이터베이스(105)에 관련된 질의문을 구축한다. 일 실시예에서, 질의문은 SQL문이다. 어느 실시예에서, 질의 구축 모듈(220)은 아래에서 설명되는 바와 같이 속성 이름 및 스키마 이름을 이용하는 SELECT문과 같은 SQL문을 구축한다.
일 실시예에서, 질의 실행 모듈(225)은 질의문을 실행한다. 질의 실행 모듈은 그 질의문을 도 1의 데이터베이스 인터페이스 모듈(115)과 같은 타깃 데이터베이스(105) 용 데이터베이스 애플리케이션에 제출(submit)할 수 있다. 또한, 변환 모듈(230)은 아래에서 설명되는 바와 같이 질의문을 실행하여 나온 결과를 요구 블록에 의해 명시된 포맷으로 변환할 수 있다. 비록 요구 블록이 질의문으로 포맷되지 않았을지라도 데이터 브로커(120)는 요구 블록에 의해 구현된 조회에 응답하여 타깃 데이터베이스(105)를 액세스한다.
도 3은 본 발명의 데이터베이스 액세스 프로세스(300)의 일 실시예를 설명하는 개략적인 블록도이다. 프로세스(300)은 도 1의 시스템(100) 및 도 2의 데이터 브로커(120)의 데이터 흐름에 관한 일 실시예를 기술한다. 도 1 및 도 2의 구성요 소들이 참조되며, 같은 참조부호가 같은 구성요소를 지칭하는 것으로 참조된다.
요구 속성 모듈(205)은 요구 블록(305a)을 수신한다. 요구 블록(305a)은 데이터 값 이름을 포함한다. 또한, 요구 블록(305a)은 질의문에 대한 응답으로 리턴된 결과에 대한 명시된 포맷을 포함할 수 있다. 요구 속성 모듈(205)은 요구 속성 리스트(310)를 구축한다. 스키마 이름 모듈(210)은 스키마 이름 리스트(315)에 스키마 이름이 포함되어 있지 않으면 요구 속성 리스트(310)로부터 스키마 이름을 스키마 이름 리스트(315)에 추가하며, 속성 이름 모듈(215)은 속성 이름 리스트(320)에 속성 이름이 포함되어 있지 않으면 속성 이름을 속성 이름 리스트(320)에 추가한다.
질의 구축 모듈(220)은 스키마 이름 리스트(315) 및 속성 이름 리스트(320)로부터 타깃 데이터베이스(105)에 관련된 질의문을 구축한다. 또한, 질의 구축 모듈(220)은 질의문을 요구 블록(305a)에 부가하여(append) 부가 요구 블록(appended request block)(305b)을 형성한다.
일 실시예에서, 질의 실행 모듈(225)은 부가 요구 블록(305b)에 부가 질의문을 실행한다. 질의 실행 모듈(225)은 부가 요구 블록(305b)으로부터 질의문을 타깃 데이터베이스(105)로 지시할 수 있다. 또한, 변환 모듈(230)은 질의문에 응답하여 타깃 데이터베이스(105)로부터의 결과를 수신할 수 있다. 예를 들면, 도 2의 예에서 속성 이름 "시"를 포함하는 질의문은 결과 "턱슨(Tucson)"이라는 결과를 리턴할 수 있다.
변환 모듈(230)은 이 결과를 요구 블록(305a)에 의해 명시된 그리고 부가 요 구 블록(305b)에 포함된 포맷으로 변환할 수 있다. 예를 들면, 변환 모듈(230)은 명시된 포맷에 응답하여 수치 값으로 된 문자 스트링 표현을 디지털 2진 값으로 변환할 수 있다. 일 실시예에서, 변환 모듈(230)은 부가 요구 블록(305b)을 변환된 결과와 같은 결과로 갱신하여 갱신된 요구 블록(350c)를 형성한다.
도 4는 본 발명의 서버(400)의 일 실시예를 설명하는 개략적인 블록도이다. 서버(400)는 프로세서 모듈(405), 캐시 모듈(410), 메모리 모듈(415), 노스 브리지 모듈(north bridge module)(420), 사우스 브리지 모듈(sourth bridge module)(425), 그래픽 모듈(430), 디스플레이 모듈(435), 기본 입/출력 시스템 ("BIOS") 모듈(440), 네트워크 모듈(445), 주변 성분 상호연결 ("PCI") 모듈(460), 및 저장 모듈(465)을 포함한다. 또한, 서버(400)는 저장 장치(470)와 통신하는 것으로 도시된다. 저장 장치(470)는 하드 디스크 드라이브, 또는 저장 서브시스템 등일 수 있다. 도 1 내지 도 3의 구성요소가 참조되며, 같은 참조번호는 같은 구성요소를 지칭한다.
본 명세서에서 구성성분으로서 언급된 프로세서 모듈(405), 캐시 모듈(410), 메모리 모듈(415), 노스 브리지 모듈(420), 사우스 브리지 모듈(425), 그래픽 모듈(430), 디스플레이 모듈(435), BIOS 모듈(440), 네트워크 모듈(445), PCI 모듈(460), 및 저장 모듈(465)은 하나 이상의 반도체 기판 상에 반도체 게이트들로 제조될 수 있다. 각각의 반도체 기판은 회로 카드 상에 장착된 하나 이상의 반도체 장치 내에 패키지 될 수 있다. 구성성분들 간의 연결은 반도체 금속 층, 기판 대 기판 배선, 회로 카드 트레이스, 또는 반도체 장치들을 연결하는 와이어를 통하 여 이루어질 수 있다.
메모리 모듈(415)은 소프트웨어 명령어 및 데이터를 저장한다. 프로세서 모듈(405)은 본 기술분야에서 통상의 지식을 가진 자에게 알려진 것처럼 소프트웨어 명령어를 실행하고 데이터를 조작한다. 일 실시예에서, 메모리 모듈(415)은 도 2의 요구 속성 모듈(205), 스키마 이름 모듈(210), 속성 이름 모듈(215), 질의 구축 모듈(220), 질의 실행 모듈(225), 및 변환 모듈(230)을 구현하는 하나 이상의 소프트웨어 프로세스를 저장하고 프로세서 모듈(405)은 이를 실행한다. 소프트웨어 프로세스는 도 1의 타깃 데이터베이스 인터페이스(115), 유지보수 툴 모듈(125), 공통 브로커 인터페이스(130), 인터페이스 모듈(140), 및 요구 모듈(135)을 구현할 수 있다. 다른 실시예에서, 타깃 데이터베이스 인터페이스(115), 유지보수 툴 모듈(125), 공통 브로커 인터페이스(130), 인터페이스 모듈(140), 및 요구 모듈(135)은 네트워크 모듈(445)을 통하여 요구 속성 모듈(205), 스키마 이름 모듈(210), 속성 이름 모듈(215), 질의 구축 모듈(220), 질의 실행 모듈(225), 유지보수 모듈(230), 및 변환 모듈(230)을 구현하는 소프트웨어 프로세싱과 통신한다.
일 실시예에서, 소프트웨어 프로세스는 네트워크 모듈(445)을 통하여 도 1의 프린트 서버(145)와 통신한다. 네트워크 모듈(445)은 이더넷 인터페이스 등으로 구성될 수 있다. 속성 데이터베이스(110)는 저장 장치(470)에 저장되며 저장 모듈(465)을 통하여 액세스될 수 있다. 또한, 타깃 데이터베이스(105)는 저장 장치(470)에 저장되고 저장 모듈(465)을 통하여 액세스 될 수 있다. 이와 달리, 소프트웨어 프로세스는 네트워크 모듈(445)을 통하여 속성 데이터베이스(110) 및 타 깃 데이터베이스(105)와 통신할 수 있다.
다음의 개략적인 흐름도는 개괄적으로 논리적 흐름도로서 설명된다. 있는 그대로, 도시된 순서와 명칭된 단계는 제시된 방법의 일 실시예를 나타낸다. 예시된 방법과 기능, 논리, 또는 효과에서 한 개 이상의 단계, 그 일부와 동등한 다른 단계와 방법이 인식될 수도 있다. 부가적으로, 이용된 포맷과 부호는 본 방법의 논리적 단계를 설명하는데 제공되며 본 발명의 범주를 제한하지 않는 것임은 물론이다. 비록 흐름도에서 여러가지 화살표 형태와 선 형태가 이용될 수 있을지라도, 이것들은 대응하는 방법의 범주를 제한하지 않음은 물론이다. 정말로, 몇몇 화살표 또는 다른 연결자는 본 방법의 논리적인 흐름만을 나타내는 데 사용된다. 예를 들면, 화살표는 예시된 방법의 나열된 단계들 사이에서 명시되지 않은 대기 또는 모니터 시간을 나타낼 수도 있다. 부가적으로, 특정 방법이 일어나는 순서가 도시된 것처럼 단연코 대응하는 단계의 순서에 해당할 수도 있고 또는 아닐 수도 있다.
도 5는 본 발명의 데이터베이스 액세스 방법(500)의 일 실시예를 설명하는 개략적인 흐름도이다. 방법(500)은 도 1 내지 도 4의 시스템(100), 프로세스(300) 및 장치(200, 400)의 동작에 대하여 위에서 제시한 기능을 실행하는 단계들을 실질적으로 포함한다. 또한, 방법(500)은 도 1 내지 도 4의 구성요소를 참조하며, 같은 참조부호는 같은 구성요소를 지칭한다.
방법(500)이 개시되어, 일 실시예에서 요구 속성 모듈(205)가 요구 블록(305a)을 수신한다(단계 505). 어느 실시예에서, 요구 속성 모듈(205)은 요구 블록(305a)을 인터페이스 모듈(140) 및 공통 브로커 인터페이스(130)를 통하여 요 구 모듈(135)로부터 수신한다(단계 505). 요구 블록(305a)은 타깃 데이터베이스(105)에 관련된 조회로서 구성되지만, 타깃 데이터베이스(105) 용의 질의문으로 포맷되지 않은 것이다. 또한, 요구 블록(305a)은 하나 이상의 데이터 값 이름을 포함하며 데이터 값 이름 마다 하나 이상의 키값을 포함할 수 있다. 요구 블록(305a)은 또한 조회에 응답하여 리턴된 결과에 대한 포맷 상세내역(format specification)을 포함할 수 있다.
일 실시예에서, 요구 속성 모듈(205)은 속성 데이터베이스(110)를 액세스한다 (단계 510). 속성 데이터베이스는 하나 이상의 엔트리를 포함하며, 각각의 엔트리는 데이터 값 이름 , 속성 이름, 및 적어도 하나의 스키마 및/또는 테이블 이름을 포함한다. 요구 속성 모듈(205)은 도 10에서 설명되는 바와 같이 데이터 값 이름 에 대응하는 속성 데이터베이스(100)의 엔트리로부터 요구 속성 리스트(310)를 구성한다(단계 515). 요구 속성 리스트(310)는 데이터 값 이름 , 속성 이름, 및 하나 이상의 스키마 및/또는 테이블 이름을 포함한다. 또한, 요구 속성 리스트(310)는 데이터베이스명을 포함할 수 있다.
스키마 이름 모듈(210), 속성 이름 모듈(215) 및 질의 구축 모듈(220)은 도 6에서 설명되는 바와 같이 타깃 데이터베이스(105)에 관련된 질의문을 생성한다(단계 520). 일 실시예에서, 질의 실행 모듈(225)은 도 7에서 설명되는 바와 같이 질의문을 실행한다(단계 525).
일 실시예에서, 변환 모듈(230)은 질의문으로부터의 결과를 요구 블록(305a)에 의해 명시된 포맷으로 변환한다 (단계 530). 또한, 변환 모듈(230)은 부가 요 구 블록(305b)을 질의문의 변환 결과로 갱신할 수 있다 (단계 535). 예를 들면, 변환 모듈(230)은 변환 결과를 도 3의 부가 요구 블록(305b)과 결부시켜서 갱신된 요구 블록(305c)을 형성한다. 변환 모듈(230)은 또한 갱신된 요구 블록(305c)을 요구 모듈(135)로 리턴할 수도 있다. 방법(500)은 타깃 데이터베이스(105)를 액세스하고 질의문으로 포맷되지 않은 요구 블록(305a)에 응답하여 결과를 리턴한다 (단계 540).
도 6은 본 발명의 질의문 생성(creat query statement) 방법(520)의 일 실시예를 설명하는 개략적인 흐름도이다. 방법(520)은 실질적으로 도 5의 단계(520) 및 도 1 내지 도 4에 개시된 시스템(100), 프로세스(300) 및 장치(200, 400)의 동작에 대하여 제시한 기능을 실행하는 단계를 포함한다. 또한, 방법(520)은 도 1 내지 도 5의 구성요소를 참조하며, 같은 참조부호는 같은 구성요소를 지칭한다.
방법(520)을 시작하여, 일 실시예에서 요구 속성 모듈(205)은 도 5의 단계(505)의 요구 블록(305a)이 유효한지를 판단한다(단계 605). 요구 속성 모듈(205)은 요구 블록(305a)에 포함된 데이터 값 이름에 대응하는 속성 데이터베이스(110)에서 데이터 값 이름을 찾음으로써 요구 블록(305a)이 유효한지를 판단한다(단계 605). 또한, 요구 속성 모듈(205)은 요구 블록(305a)의 구문(syntax) 및 포맷을 체크함으로써 요구 블록(305a)을 유효하게(validate) 한다.
요구 속성 블록(205)이 요구 블록(305a)이 유효하지 않은 것으로 판단하면, 요구 속성 블록(205)은 무효 요구 블록 에러를 요구 블록(305a)에 알려주고(단계 635), 요구 블록(305a)을 도 1의 요구 모듈(135)에게 리턴하며, 방법(520)을 종료 한다. 무효 요구 블록 에러는 요구 블록(305a)이 무효인 이유를 상세히 설명할 수 있다.
요구 속성 모듈(205)이 요구 블록(305a)이 유효인 것으로 판단하면(단계 605), 요구 속성 모듈(205)은 요구 속성 리스트(310)로부터 타깃 데이터베이스(105)의 데이터베이스 이름을 선택하며(단계 615), 스키마 이름 모듈(210), 속성 이름 모듈(215) 및 질의 구축 모듈(220)은 아래에서 설명되는 바와 같이 질의문을 구축한다(단계 620). 질의 구축 모듈(220)은 또한 질의문 구성이 성공인지의 여부를 결정한다(단계 625).
질의 구축 모듈(220)이 질의문 구성이 성공이 아니라고 판단하면(단계 625), 질의 구축 모듈(220)은 질의 구축 에러를 요구 블록(305a)에 전달하고(단계 640), 요구 블록(305a)을 요구 모듈(135)에 리턴하며, 방법(520)을 종료한다. 질의문 구성이 성공이면, 요구 속성 모듈(205)은 요구 속성 리스트(310) 내 마지막 데이터베이스 이름이 액세스되는지를 판단한다(단계 630). 마지막 데이터베이스 이름이 액세스되지 않으면, 요구 속성 모듈(205)은 다음 데이터베이스 이름을 선택한다(단계 615). 마지막 데이터베이스 이름이 액세스되면, 방법(520)을 종료한다.
도 7은 본 발명의 질의문 실행 방법(525)의 일 실시예를 설명하는 개략적인 블록도이다. 방법(525)은 실질적으로 도 5의 단계(525) 및 도 1 내지 도 4에 개시된 시스템(100), 프로세스(300) 및 장치(200, 400)의 동작에 대하여 위에서 제시한 기능을 실행하는데 필요한 단계들을 포함한다. 또한, 방법(525)은 도 1 내지 도 6의 구성요소를 참조하며, 같은 참조부호는 같은 구성요소를 지칭한다.
방법(525)을 시작하며 질의 실행 모듈(220)은 도 5의 단계(520)에서 생성된 질의문에 의해 명시된 타깃 데이터베이스(105)를 선택한다(단계 705). 또한, 질의 실행 모듈(220)은 질의문을 실행한다(단계 710). 일 실시예에서, 질의 실행 모듈(220)은 도 1의 타깃 데이터베이스 인터페이스(115)와 같은 데이터베이스 애플리케이션 프로그램을 이용하여 질의문을 실행한다(단계 710).
일 실시예에서, 질의 실행 모듈(220)은 질의 실행이 성공인지를 판단한다(단계 715). 질의 실행 모듈(220)은 질의 실행의 결과에 응답하여 질의 실행의 성공을 판단할 수 있다(단계 715). 예를 들면, 결과가 에러 메시지이면, 질의 실행 모듈(220)은 질의 실행이 실패임을 판단할 수 있다. 마찬가지로, 결과가 데이터인 경우, 질의 실행 모듈(220)은 질의 실행을 성공으로 판단할 수 있다.
질의 실행 모듈(220)이 질의가 성공이 아니라고 판단하면, 질의 실행 모듈(220)은 질의 실행 에러를 요구 블록(305a)에게 전달하고(단계 730), 요구 블록(305a)을 요구 모듈(135)로 리턴하며, 방법(525)을 종료한다. 질의 실행 모듈(220)이 질의가 성공이라고 판단하면(단계 715), 질의 실행 모듈(220)은 질의문로부터 마지막 데이터베이스 이름이 액세스되는지를 판단한다 (단계 725). 마지막 데이터베이스 이름이 액세스되지 않으면, 질의 실행 모듈(220)은 질의문에 의해 명시된 다음 타깃 데이터베이스(105)를 선택한다(단계 705). 마지막 데이터베이스 이름이 액세스되면, 방법(525)을 종료한다.
도 8은 본 발명의 질의문 구성 방법(620)의 일 실시예를 설명하는 개략적인 흐름도이다. 방법(620)은 실질적으로 도 6의 단계(620) 및 도 1 내지 도 4에 개시 된 시스템(100), 프로세스(300) 및 장치(200, 400)의 동작에 대하여 위에서 제시한 기능을 실행하는데 필요한 단계들을 포함한다. 또한, 방법(620)은 도 1 내지 도 7의 구성요소를 참조하며, 같은 참조부호는 같은 구성요소를 지칭한다.
방법(620)을 시작하여, 일 실시예에서 스키마 이름 모듈(210)은 제1 엔트리와 같은 요구 속성 리스트(310)의 엔트리를 선택한다(단계 805). 또한, 스키마 이름 모듈(210)은 스키마 이름이 스키마 이름 리스트(315)에 포함되어 있지 않으면 요구 속성 리스트(310)의 엔트리로부터 스키마 및/또는 테이블 이름을 스키마 이름 리스트(315)에 추가한다(단계 810). 예를 들면, 스키마 이름 "고객"이 스키마 이름 리스트(315)에 포함되어있지 않으면, 스키마 이름 모듈(210)은 스키마 이름 "고객"을 스키마 이름 리스트(315)에 추가한다(단계 810).
속성 이름 모듈(215)은 속성 이름이 속성 이름 리스트(320)에 있지 않으면 요구 속성 리스트 엔트리로부터의 속성 이름을 추가한다(단계 815). 예를 들면, 속성 "전화"가 속성 이름 리스트(320)에 있지 않으면, 속성 이름 모듈(215)은 속성 이름 "전화"를 속성 이름 리스트(320)에 추가한다(단계 815).
속성 이름 모듈(215)은 엔트리가 요구 속성 리스트(310)의 마지막 엔트리인지를 판단할 수 있다(단계 820). 엔트리가 마지막 엔트리가 아니라면, 스키마 이름 모듈(210)은 요구 속성 리스트(310)의 다음 엔트리를 선택한다(단계 805). 엔트리가 마지막 엔트리이면, 질의 구축 모듈(220)은 스키마 이름 리스트(315) 및 속성 이름 리스트(320)로부터 질의문을 구축한다(단계 825).
일 실시예에서, 질의문은 SQL문이다. 어느 실시예에서, 질의문은 SELECT문 이다. 예를 들면, SELECT문은 "SELECT 속성_이름_1, 속성_이름_2 FROM 스키마_이름;"의 형태일 수 있다. 여기서 "속성_이름_1" 및 "속성_이름_2"는 속성 이름 리스트(320)에 있으며 "스키마_이름"은 스키마 이름 리스트(315)에 있다. 다른 실시예에서, SELECT문은 "스키마_이름_2 = key 인 경우 SELECT 속성_이름_1 FROM 스키마_이름_1;" 의 형태일 수 있다. 여기서, "속성_이름_1"은 속성 이름 리스트(320)에 있으며, "스키마_이름_1" 및 "스키마_이름_2"은 스키마 이름 리스트(315)에 있으며, "key"는 요구 블록(305a)에 포함된 키값이며 요구 속성 리스트(310)에 추가된다. "key"는 "스키마_이름_2"로 식별된 컬럼 내 로우를 명시할 수 있다.
일 실시예에서, 질의 구축 모듈(220)은 질의문을 요구 블록(305a)에 부가하여(단계 830) 부가 요구 블록(305b)을 형성하며 방법(620)을 종료한다. 방법(620)은 타깃 데이터베이스(105)를 액세스하기 위한 질의문을 구성한다.
도 9는 본 발명의 속성 데이터베이스 포맷의 일 실시예를 설명하는 개략적인 블록도이다. 속성 데이터베이스(110)는 도 1의 속성 데이터베이스(110)일 수 있다. 또한, 도 9의 설명은 도 1 내지 도 8의 구성요소를 참조하며, 같은 참조부호는 같은 구성요소를 지칭한다.
속성 데이터베이스(110)는 하나 이상의 엔트리(925)를 포함한다. 각 엔트리(925)는 데이터 값 이름 필드(902), 속성 이름 필드(905), 데이터베이스 이름 필드(910), 제1 스키마 이름 필드(915), 및 제2 스키마 이름 필드(920)를 포함할 수 있다. 일 실시예에서, 제1 스키마 이름 필드(915)는 테이블 이름 또는 뷰 이름을 저장한다. 제2 스키마 이름 필드(920)는 키 컬럼 이름을 저장할 수 있다. 데 이터 값 이름 필드(902)는 데이터 값 이름과 연관된 속성 이름이 여덟 ASCII 문자와 같은 명시된 길이 또는 포맷으로 제한되어 있을지라도 길이, 계층적 이름을 지원할 수 있다. 요구 속성 모듈(220)은 요구 블록(305)으로부터의 데이터 값 이름을 데이터 값 이름 필드(902) 내 데이터 값 이름과 매칭시킴으로써 속성 데이터베이스(110)로부터 엔트리(925)를 선택할 수 있다.
도 10은 본 발명의 요구 속성 리스트의 일 실시예를 설명하는 개략적인 블록도이다. 리스트(310)는 도 3의 요구 속성 데이터베이스(310)일 수 있다. 또한, 도 10의 설명은 도 1 내지 도 9의 구성요소를 참조하며, 같은 참조부호는 같은 구성요소를 지칭한다.
리스트(310)는 하나 이상의 엔트리(1030)를 포함한다. 각 엔트리(1030)는 속성 이름 필드(1005), 데이터베이스 이름 필드(1010), 제1 스키마 이름 필드(1015), 키 컬럼 필드(1020), 및 키 필드(1025)를 포함할 수 있다. 요구 속성 모듈(220)은 도 9의 속성 데이터베이스(110)로부터 선택된 엔트리(925)로부터 요구 속성 리스트(310)를 구성할 수 있다. 일 실시예에서, 요구 속성 모듈(220)은 속성 데이터베이스(110)로부터 선택된 엔트리(925)의 속성 이름 필드(905), 데이터베이스 이름 필드(910), 및 제1 스키마 이름 필드(915)를 요구 속성 리스트(310)의 속성 필드(1005), 데이터베이스 이름 필드(1010), 및 제1 스키마 필드(1015)로 복사한다.
요구 속성 모듈(220)은 또한 요구 블록(305a)으로부터의 키를 요구 속성 리스트(310)의 키 필드(1025)에 부가할 수 있다. 어느 실시예에서, 키 값이 키 필 드(1025)에 있다면, 요구 속성 모듈(220)은 속성 데이터베이스(110)의 제2 스키마 필드(920)를 키 컬럼(1020)에다 복사한다. 제1 엔트리(1025a)는 "19026" 이라는 키(1020a)를 가지고 있는 것으로 도시된다. 질의 구축 모듈(220)은 요구 속성 리스트(310)의 제1 엔트리(1025a)로부터 SQL문 "SELECT Last FROM ACCT_Master WHERE account=19026;" 를 구축할 수 있다(단계 825)
요구 블록(305a)이 키를 포함하고 있지 않다면, 요구 속성 모듈(220)은, 제2 키(1020b) 및 키 컬럼(1015b)에 대하여 묘사된 바와 같이, 키(1020) 및 키 컬럼(1015)에 대한 널(NULL) 값을 삽입할 수 있다. 질의 구축 모듈(220)은 요구 속성 리스트(310)의 제2 엔트리(1025b)로부터 SQL문 "SELECT Bal FROM ACCT_Master;" 를 구축할 수 있다(단계 825).
본 발명의 실시예는 데이터베이스 질의문으로 포맷되지 않은 요구 블록(305a)에 응답하여 타깃 데이터베이스(105)를 액세스한다. 또한, 본 발명의 실시예는 다수의 논-데이터베이스(non-database) 소프트웨어 요구 모듈(135)이 타깃 데이터베이스(135)를 액세스하게 해준다. 본 발명은 본 발명의 사상 또는 본질적 특징을 일탈함이 없이 다른 특정 형태로 구현될 수도 있다. 개시된 실시예는 모든 면에서 예시적인 것일 뿐 제한적인 것은 아니라고 인식될 것이다. 그러므로, 본 발명의 범주는 전술한 설명이라기보다는 첨부한 청구범위로 규정된다. 청구범위의 의미와 등가 범위 내에 속하는 모든 변경이 그의 범주 내에서 받아들여질 것이다.
본 발명에 따르면, 데이터베이스를 액세스하는 장치, 시스템 및 방법을 제공할 수 있다.

Claims (13)

  1. 데이터베이스를 액세스하는 장치에 있어서,
    요구 블록 -상기 요구 블록은 타깃 데이터베이스로의 조회이고 상기 타깃 데이터베이스용의 질의문으로 포맷되지 않음- 에서 수신된 데이터 값 이름에 대한 요구 속성 리스트를 구축하도록 구성된 요구 속성 모듈과,
    스키마 이름 리스트에 포함되어있지 않은 스키마 이름에 응답하여, 상기 요구 속성 리스트로부터의 스키마 이름을 상기 스키마 이름 리스트에 추가하도록 구성된 스키마 이름 모듈과,
    속성 이름 리스트에 포함되어 있지 않은 속성 이름에 응답하여, 상기 요구 속성 리스트로부터의 속성 이름을 상기 속성 이름 리스트에 추가하도록 구성된 속성 이름 모듈과,
    상기 스키마 이름 리스트 및 상기 속성 이름 리스트로부터 타깃 데이터 베이스에 관련된 질의문을 구축하도록 구성된 질의 구축 모듈을 포함하는
    데이터베이스 액세스 장치.
  2. 제 1 항에 있어서,
    상기 요구 속성 모듈은 상기 요구 속성 리스트를 속성 데이터베이스를 이용하여 구축하도록 구성되며,
    상기 속성 데이터베이스는 상기 데이터 값 이름을 상기 속성 이름 및 상기 스키마 이름과 관련시키는
    데이터베이스 액세스 장치.
  3. 제 2 항에 있어서,
    상기 속성 데이터베이스는 다수의 스키마 이름을 상기 속성 이름과 관련시키도록 구성되는
    데이터베이스 액세스 장치.
  4. 제 1 항에 있어서,
    상기 질의문을 실행하도록 구성된 질의 실행 모듈을 더 포함하는
    데이터베이스 액세스 장치.
  5. 제 4 항에 있어서,
    상기 질의문을 실행하여 나온 결과를 상기 요구 블록에 의해 명시된 포맷으로 변환하도록 구성되는 변환 모듈을 더 포함하는
    데이터베이스 액세스 장치.
  6. 제 5 항에 있어서,
    상기 변환 모듈은 상기 요구 블록을 상기 질의문의 변환된 결과로 갱신하도록 구성되는
    데이터베이스 액세스 장치.
  7. 제 1 항에 있어서,
    상기 질의문은 "SQL" (structured query language)문으로 구성되는
    데이터베이스 액세스 장치.
  8. 제 7 항에 있어서,
    상기 SQL문은 워크 플로우 프린트 커맨드(work flow print command)를 더 포함하는
    데이터베이스 액세스 장치.
  9. 데이터베이스를 액세스하는 동작을 실행하는 디지털 프로세싱 장치에 의해 실행가능한 기계판독가능 명령어의 프로그램을 실체적으로 구현하는 컴퓨터 판독가 능한 기록 매체에 있어서,
    상기 동작은,
    요구 블록에서 수신된 데이터 값 이름에 대해 속성 데이터베이스로부터 요구 속성 리스트를 구성하는 단계 -상기 요구 블록은 타깃 데이터베이스로의 조회이고 상기 타깃 데이터베이스용의 질의문으로 포맷되지 않으며, 상기 요구 속성 리스트는 상기 데이터 값 이름을 속성 이름 및 스키마 이름과 관계시킴- 와,
    스키마 이름 리스트에 포함되어 있지 않은 스키마 이름에 응답하여, 상기 요구 속성 리스트로부터의 스키마 이름을 상기 스키마 이름 리스트에 추가하는 단계와,
    속성 이름 리스트에 포함되어 있지 않은 속성 이름에 응답하여 상기 속성 이름을 상기 속성 이름 리스트에 추가하는 단계와,
    상기 스키마 이름 리스트 및 상기 속성 이름 리스트로부터 상기 타깃 데이터 베이스에 관련된 질의문을 구축하는 단계를 포함하는
    컴퓨터 판독가능한 기록 매체.
  10. 데이터베이스를 액세스하는 시스템에 있어서,
    스키마에 의해 규정된 조직으로 데이터를 저장하도록 구성된 타깃 데이터베이스와,
    데이터 값 이름을 상기 타깃 데이터베이스용 속성 이름 및 스키마 이름과 연 관시키도록 구성된 속성 데이터베이스와,
    상기 데이터 값 이름에 대해 상기 속성 데이터베이스로부터 요구 속성 리스트를 구성하도록 구성된 요구 속성 모듈 -상기 데이터 값 이름은 요구 블록에서 수신되며, 상기 요구 블록은 상기 타깃 데이터베이스로의 조회이고 상기 타깃 데이터베이스용의 질의문으로 포맷되어 있지 않으면, 상기 요구 속성 리스트는 상기 데이터 값 이름을 상기 스키마 이름 및 상기 속성 이름과 연관시킴- 과,
    스키마 이름 리스트에 포함되어 있지 않은 스키마 이름에 응답하여, 상기 요구 속성 리스트로부터의 스키마 이름을 상기 스키마 이름 리스트에 추가하도록 구성된 스키마 이름 모듈과,
    속성 이름 리스트에 포함되어 있지 않은 상기 속성 이름에 응답하여, 상기 요구 속성 리스트로부터의 속성 이름을 상기 속성 이름 리스트에 추가하도록 구성된 속성 이름 모듈과,
    상기 스키마 이름 리스트 및 상기 속성 이름 리스트로부터 상기 타깃 데이터 베이스에 관련된 질의문을 구축하도록 구성된 질의 구축 모듈과,
    상기 질의문을 실행하도록 구성된 질의 실행 모듈을 포함하는
    데이터베이스 액세스 시스템.
  11. 제 10 항에 있어서,
    상기 질의문을 실행하여 나온 결과를 변환하고 상기 요구 블록을 상기 질의 문의 변환 결과로 갱신하는 변환 모듈을 더 포함하는
    데이터베이스 액세스 시스템.
  12. 컴퓨터 판독가능 코드를 컴퓨터 시스템에 통합하는 단계를 포함하는 컴퓨터 기반구조(computer infrastructure) 이용 방법에 있어서,
    상기 컴퓨터 시스템과 합쳐진 상기 코드는,
    타깃 데이터베이스로의 조회로서 구성되며 상기 타깃 데이터베이스용의 질의문으로 포맷되지 않은 요구 블록 -상기 요구 블록은 데이터 값 이름을 포함함- 을 수신하는 단계와,
    속성 데이터베이스로부터 상기 데이터 값 이름에 대한 요구 속성 리스트를 구성하는 단계 -상기 속성 데이터베이스는 상기 데이터 값 이름을 속성 이름 및 스키마 이름과 연관시키며, 상기 요구 속성 리스트는 상기 데이터 값 이름을 상기 속성 이름 및 상기 스키마 이름과 연관시킴- 와,
    스키마 이름 리스트에 포함되어 있지 않은 스키마 이름에 응답하여, 상기 요구 속성 리스트로부터의 스키마 이름을 상기 스키마 이름 리스트에 추가하는 단계와,
    속성 이름 리스트에 포함되어 있지 않은 속성 이름에 응답하여, 상기 요구 속성 리스트로부터의 속성 이름을 상기 속성 이름 리스트에 추가하는 단계와,
    상기 스키마 이름 리스트 및 상기 속성 이름 리스트로부터 질의문을 구축하 는 단계와,
    상기 질의문을 실행하는 단계와,
    상기 질의문을 실행하고 나온 결과를 변환하는 단계와,
    상기 요구 블록을 상기 질의문의 변환 결과로 갱신하는 단계와,
    상기 질의문의 변환 결과를 갖는 상기 갱신된 요구 블록을 리턴하는 단계
    를 실행할 수 있는 컴퓨터 기반구조 이용 방법.
  13. 제 12 항에 있어서,
    상기 타깃 데이터베이스에 관련된 조회를 상기 요구 블록으로 변환하는 과정을 더 포함하는
    컴퓨터 기반구조 이용 방법.
KR1020060110007A 2005-11-08 2006-11-08 데이터베이스 액세스 장치, 시스템 및 방법 KR20070049590A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/268,844 US8195649B2 (en) 2005-11-08 2005-11-08 Apparatus, system, and method for accessing a database
US11/268,844 2005-11-08

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020080093967A Division KR100930172B1 (ko) 2005-11-08 2008-09-25 데이터베이스 액세스 장치, 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR20070049590A true KR20070049590A (ko) 2007-05-11

Family

ID=38005020

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020060110007A KR20070049590A (ko) 2005-11-08 2006-11-08 데이터베이스 액세스 장치, 시스템 및 방법
KR1020080093967A KR100930172B1 (ko) 2005-11-08 2008-09-25 데이터베이스 액세스 장치, 시스템 및 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020080093967A KR100930172B1 (ko) 2005-11-08 2008-09-25 데이터베이스 액세스 장치, 시스템 및 방법

Country Status (3)

Country Link
US (2) US8195649B2 (ko)
KR (2) KR20070049590A (ko)
CN (1) CN100524309C (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8239632B2 (en) * 2009-03-12 2012-08-07 At&T Mobility Ii Llc Data caching in consolidated network repository
CN103606037A (zh) * 2013-11-06 2014-02-26 远光软件股份有限公司 一种业务数据的查询配置方法及装置
KR102033395B1 (ko) 2014-11-20 2019-10-18 한국전자통신연구원 심층 자연어 질문 분석 기반 구조화된 지식베이스 질의응답 시스템 및 그 방법
US10073899B2 (en) * 2015-05-18 2018-09-11 Oracle International Corporation Efficient storage using automatic data translation
CN106708864A (zh) * 2015-11-13 2017-05-24 北京国双科技有限公司 基于查询框架的数据查询方法及装置
CN108520745B (zh) * 2018-03-16 2020-10-02 北京云知声信息技术有限公司 设备画像信息的操作方法及装置

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4439837A (en) * 1981-06-16 1984-03-27 Ncr Corporation Non-volatile memory system for intelligent terminals
US5555403A (en) * 1991-11-27 1996-09-10 Business Objects, S.A. Relational database access system using semantically dynamic objects
US5560007A (en) 1993-06-30 1996-09-24 Borland International, Inc. B-tree key-range bit map index optimization of database queries
US5906658A (en) 1996-03-19 1999-05-25 Emc Corporation Message queuing on a data storage system utilizing message queuing in intended recipient's queue
US5778373A (en) 1996-07-15 1998-07-07 At&T Corp Integration of an information server database schema by generating a translation map from exemplary files
US5956698A (en) 1997-07-31 1999-09-21 Xerox Corporation Information broker for printing system
US20030140315A1 (en) 1999-06-07 2003-07-24 Robert Evans Blumberg Print on demand virtual builder
US6738155B1 (en) 1999-07-30 2004-05-18 Banta Corporation System and method of providing publishing and printing services via a communications network
US6598087B1 (en) 1999-09-08 2003-07-22 Ge Capital Commercial Finance, Inc. Methods and apparatus for network-enabled virtual printing
US6694321B1 (en) 1999-09-23 2004-02-17 Affymetrix, Inc. System, method, and product for development and maintenance of database-related software applications
GB9925741D0 (en) 1999-10-30 1999-12-29 Ibm Interaction with database reports
US7051098B2 (en) 2000-05-25 2006-05-23 United States Of America As Represented By The Secretary Of The Navy System for monitoring and reporting performance of hosts and applications and selectively configuring applications in a resource managed system
EP1301889A1 (en) 2000-07-21 2003-04-16 Hewlett-Packard Company Method and apparatus for automated on-line printing service
US6832219B2 (en) * 2002-03-18 2004-12-14 International Business Machines Corporation Method and system for storing and querying of markup based documents in a relational database
US20030182137A1 (en) 2002-03-25 2003-09-25 Whitmarsh Michael D. On-line print brokering system and method
US7921037B2 (en) 2002-04-01 2011-04-05 Hewlett-Packard Development Company, L.P. Personalized messaging determined from detected content
WO2003096147A2 (en) 2002-05-06 2003-11-20 Zoot Enterprises, Inc. System and method of application processing
US7280242B2 (en) 2002-07-09 2007-10-09 Hewlett-Packard Development Company, L.P. Printer control based on media attributes
US20040061729A1 (en) 2002-09-30 2004-04-01 Brett Green System and method for a dynamically modifiable driver interface
US7136941B2 (en) 2002-12-04 2006-11-14 Microsoft Corporation Print management architecture for computing devices having a set of filters functions wherein the functions are prevented from conflicting with one another
CN1282111C (zh) * 2003-05-15 2006-10-25 中兴通讯股份有限公司 一种跨平台数据库查询方法
WO2005041087A2 (en) * 2003-10-28 2005-05-06 Ids Scheer Aktiengesellschaft Systems and methods for acquiring time-dependent data for business process analysis
US20060004693A1 (en) * 2004-05-18 2006-01-05 General Electric Company Graphical user interface for exploring databases
CN100401288C (zh) * 2005-05-30 2008-07-09 北京慧讯信息技术有限公司 分布式数据源数据集成系统及方法

Also Published As

Publication number Publication date
CN100524309C (zh) 2009-08-05
KR20080101825A (ko) 2008-11-21
US20070106652A1 (en) 2007-05-10
CN1963815A (zh) 2007-05-16
US8447773B2 (en) 2013-05-21
US20120197932A1 (en) 2012-08-02
US8195649B2 (en) 2012-06-05
KR100930172B1 (ko) 2009-12-07

Similar Documents

Publication Publication Date Title
US6954748B2 (en) Remote data access and integration of distributed data sources through data schema and query abstraction
US8165989B2 (en) Automated data model extension through data crawler approach
US8131744B2 (en) Well organized query result sets
US9600545B2 (en) Table substitution
US8032544B2 (en) Methods and apparatus for generating dynamic program files based on input queries that facilitate use of persistent query services
US8972433B2 (en) Systems and methods for programmatic generation of database statements
US7769789B2 (en) High performant row-level data manipulation using a data layer interface
US7752213B2 (en) Flexible access of data stored in a database
US20060265385A1 (en) Common interface to access catalog information from heterogeneous databases
US20040260715A1 (en) Object mapping across multiple different data stores
KR100930172B1 (ko) 데이터베이스 액세스 장치, 시스템 및 방법
US20090158251A1 (en) Techniques for query and dml over relational tables using spreadsheet applications
US7953749B2 (en) Providing the timing of the last committed change to a row in a database table
US7406478B2 (en) Flexible handling of datetime XML datatype in a database system
US10997131B1 (en) Using a member attribute to perform a database operation on a computing device
US20070073675A1 (en) Database query translation
US20100293209A1 (en) Batching heterogeneous database commands
US8548985B2 (en) Method and process of query optimization to a given environment via specific abstraction layer domain knowledge
US20040153441A1 (en) Method of synchronizing distributed but interconnected data repositories
US8316013B2 (en) Programmatic retrieval of tabular data within a cell of a query result
US7801856B2 (en) Using XML for flexible replication of complex types
US20240134849A1 (en) Virtual access to parameterized data objects
Lebanon et al. Essential Knowledge: Data Stores
Harris et al. The Lotus DataLens approach to heterogeneous database connectivity

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
A107 Divisional application of patent
AMND Amendment
WITB Written withdrawal of application
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20080901

Effective date: 20081013