KR101213798B1 - 복합 데이터 액세스 - Google Patents

복합 데이터 액세스 Download PDF

Info

Publication number
KR101213798B1
KR101213798B1 KR1020050101096A KR20050101096A KR101213798B1 KR 101213798 B1 KR101213798 B1 KR 101213798B1 KR 1020050101096 A KR1020050101096 A KR 1020050101096A KR 20050101096 A KR20050101096 A KR 20050101096A KR 101213798 B1 KR101213798 B1 KR 101213798B1
Authority
KR
South Korea
Prior art keywords
data
query
existing concept
scalar
composite
Prior art date
Application number
KR1020050101096A
Other languages
English (en)
Other versions
KR20060067812A (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 KR20060067812A publication Critical patent/KR20060067812A/ko
Application granted granted Critical
Publication of KR101213798B1 publication Critical patent/KR101213798B1/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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • 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
    • 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/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Abstract

테이블 형태의 복합 데이터가 개념 테이블에 추가될 수 있게 해주는, 개념 테이블의 복합 데이터의 다양한 양상들을 구현하는 방법들, 시스템들 및 컴퓨터 판독 가능 매체들이 기술된다. 복합 데이터는 다수의 데이터 테이블의 스칼라 값들로 매핑할 수 있다. 복합 데이터는 데이터 모델링 방법들을 통해 입력되고, 커서링 방법을 통해 액세스되며, 질의 확장 방법을 통해 질의될 수도 있다.
데이터 테이블, 데이터 모델링 모듈, 질의 확장 모듈, 커서링 모듈, 사용자 인터페이스

Description

복합 데이터 액세스{Complex data access}
도 1은 본 발명의 실시예가 구현될 수도 있는 데이터베이스 환경을 도시한 도면.
도 2는 본 발명의 실시예가 구현될 수도 있는 적합한 컴퓨팅 시스템 환경의 일례를 도시한 도면.
도 3은 본 발명의 한 실시예에 존재하는 모듈들을 도시한 도면.
도 4는 본 발명의 한 실시예에 따라 실행되는 오퍼레이션들의 플로우챠트.
도 5는 본 발명의 한 실시예에 따라 실행되는 오퍼레이션들의 플로우챠트.
도 6은 본 발명의 한 실시예에 따라 실행되는 오퍼레이션들의 플로우챠트.
도 7은 본 발명의 한 실시예에 따라 실행되는 오퍼레이션들의 플로우챠트.
<도면의 주요 부분에 대한 부호의 설명>
200 : 컴퓨팅 시스템 302 : 사용자 인터페이스
304 : 데이터 모델링 모듈 306 : 질의 확장 모듈
308 : 커서링 모듈 310 : 데이터 테이블
본 발명은 일반적으로 소프트웨어 애플리케이션 분야에 관한 것이다. 특히, 본 발명은 데이터베이스와 같이 데이터를 저장하고 데이터를 보고하는 소프트웨어 애플리케이션에 관한 것이다. 또한, 본 발명의 양상들은 상기 소프트웨어 애플리케이션에서 데이터를 저장 및 질의하는 것에 관한 것이다.
대량의 데이터를 관리하기 위해, 스프레드시트 및 데이터베이스 애플리케이션과 같은 컴퓨터 소프트웨어 애플리케이션들이 로지컬 방식으로 데이터를 조직 및 저장하도록 개발되어 왔다. 전형적인 스프레드시트 및 데이터베이스 애플리케이션들은 다수의 정보 레코드들을 포함하는데, 각각의 레코드는 선정된 수의 필드들을 포함한다. 데이터베이스 문맥에서, 데이터베이스 관리 시스템은 통상 데이터베이스를 보다 간단하게 조작하기 위해 소프트웨어 툴들을 제공하는데 사용된다. 일례의 데이터베이스 관리 시스템들은 무엇보다 마이크로소프트® 액세스 및 마이크로소프트® SQL 서버를 포함한다. 데이터베이스는 일반적으로 사용자들이 스프레드시트들에서 유용하지 않은 복합 데이터 상호 관계들을 설정할 수 있게 해주는데, 이는 힘은 강력해지지만 데이터베이스 애플리케이션들을 마스터하려는 새로운 사용자들에는 훨씬 어렵다.
전형적인 데이터베이스 관리 시스템은 데이터를 추가, 변경 또는 삭제하는 기능, 필터를 사용해서 데이터를 질의하는 기능, 및 데이터베이스에서 레코드들을 보고하는 기능을 사용자에게 제공한다. 데이터베이스의 데이터는 통상 행들 및 열들로 표현된다. 필드는 행 및 열의 교차점이다. 일반적으로, 임의의 소정의 필드는 싱글 스칼라 데이터 값만을 포함할 수도 있다. 데이터 질의들은 통상 SQL(Structured Query Language)와 같은 질의어 형태를 취한다. 이러한 질의들은 국부적으로 유지된 데이터에 대해 실행되거나, 실행을 위해 데이터베이스 서버에 제공될 수도 있다.
몇몇 경우들에, 데이터베이스는 값들의 플랫 테이블이 아닌 데이터의 계층을 포함할 수도 있다. 예를 들어, 발행 추적 애플리케이션에서, 각각의 발행은 하나 이상의 사람들에게 할당될 수도 있다. 따라서, 사용자는 다중 링크 테이블들을 사용해서 상기 계층 타입을 모델링하고, 다중 테이블들로부터 데이터를 결합하는 비교적 복잡한 질의들을 사용해서 테이블들을 질의해야만 한다. 특히, 하나의 발행 테이블이 있을 수도 있으며, 발행이 할당될 수 있는 모든 가능한 사람들을 포함하는 다른 사람 테이블, 및 발행들이 사람들에게 할당되는 접합 테이블이 있을 수도 있다. 테이블 계층을 셋업하는 것은 성가신 일일 수 있으며 사용자를 혼란하게 할 수 있다. 특히, 데이터베이스 애플리케이션을 처음 사용하는 사용자에게 혼란을 줄 수 있다. 이러한 계층에 대한 질의는 유사하게, 다중 테이블 질의들의 복잡한 속성으로 인해, 문제가 될 수 있다. 사용자가 질의어에 대한 지식이 부족한 경우, 특히 그러하다.
여타 사항들을 고려해서, 본 발명이 달성되었다.
본 발명에 따르면, 복합 데이터를 개념 테이블에 추가하기 위한 컴퓨터 구현 방법 및 컴퓨터 판독 가능 매체가 제공된다. 개념 테이블은 적어도 하나의 복합 데이터 타입을 포함하는 테이블이다. 복합 데이터 타입은 단일의 새로운 데이터 타입을 형성하기 위해 함께 "그룹화"된 하나 이상의 스칼라 열들 및/또는 다른 복합 타입들이다. 먼저, 복합 데이터 타입을 테이블에 추가하라는 신호가 수신된다. 하나 이상의 데이터 테이블들이 생성된다. 또한, 하나 이상의 데이터 테이블들에 대한 링크들이 개념 테이블에서 생성된다.
다른 양상들에 따라, 본 발명은 개념 테이블로 데이터를 모델링하기 위한 컴퓨터 구현 방법 및 컴퓨터 판독 가능 매체와 관련된다. 먼저, 하나 이상의 데이터 값들을 저장하라는 신호가 수신된다. 개념 테이블의 구조가 분석되며, 하나 이상의 데이터 테이블들에 대한 하나 이상의 매핑들이 결정된다. 마지막으로, 데이터는 하나 이상의 데이터 테이블들에 저장된다.
또 다른 양상들에 따라, 본 발명은 개념 테이블의 질의의 확장을 위한 컴퓨터 구현 방법 및 컴퓨터 판독 가능 매체와 관련된다. 먼저, 개념 테이블의 질의가 수신된다. 그 후, 개념 테이블의 구조가 분석되며, 하나 이상의 확장 규칙들이 질의에 적용된다. 마지막으로, 확장 질의가 발행된다.
또 다른 양상들에 따라, 본 발명은 개념 테이블에서의 커서링을 위한 컴퓨터 구현 방법 및 컴퓨터 판독 가능 매체와 관련된다. 먼저, 개념 테이블의 복합 데이터에 액세스하라는 신호가 수신된다. 복합 데이터와 관련된 하나 이상의 매핑들이 판독된다. 마지막으로, 하나 이상의 데이터 테이블들로부터의 스칼라 데이터가 매핑들을 사용해서 판독된다.
또 다른 양상들에 따라, 본 발명은 개념 테이블 모델링을 위한 시스템과 관련된다. 데이터 모델링 모듈은 테이블에 복합 데이터를 추가하고, 복합 데이터를 하나 이상의 데이터 테이블들에 저장한다. 질의 확장 모듈은 하나 이상의 데이터 질의들을 포함하도록 개념 테이블 질의들을 확장한다. 커서링 모듈은 개념 테이블에서 복합 데이터를 검색한다.
본 발명은 컴퓨터 프로세스로서, 컴퓨팅 시스템으로서, 또는 컴퓨터 프로그램 제품 또는 컴퓨터 판독 가능 매체와 같은 제조자의 아티클로서 구현될 수도 있다. 컴퓨터 판독 가능 매체는 컴퓨터 시스템에 의해 판독될 수 있으며 컴퓨터 프로세스를 실행하기 위한 명령들로 컴퓨터 프로그램을 인코드하는 컴퓨터 기억 매체일 수도 있다. 컴퓨터 프로그램 판독 가능 매체는 또한 컴퓨팅 시스템에 의해 판독될 수 있으며 컴퓨터 프로세스를 실행하기 위한 명령들로 컴퓨터 프로그램을 인코드하는 반송파로 전파된 신호일 수도 있다.
본 발명을 특화하는 여타 다른 특징들 및 장점들은 이하의 상세한 설명 및 관련 도면들을 판독할 때 더욱 명백해질 것이다.
도 1은 데이터베이스 관리 시스템 내의 제품 주문 데이터베이스의 테이블 뷰(102)의 스크린샷을 도시한다. 테이블(102)은 데이터의 다수의 행들 및 열들로 구성된 테이블을 포함한다. 데이터의 각각의 행은 일반적으로 싱글 데이터 레코드를 포함한다. 일반적으로, 데이터베이스의 데이터의 각각의 열은 동질 타입의 데이터 요소들을 포함하는 것으로 기대될 수 있다. 예를 들어, 주문 ID 열(104)은 수치 포맷의 데이터 요소들을 포함하고, 고객 열(106)은 영숫자 스트링 형태의 데이터를 포함하며, 주문일 열(108)은 날짜 포맷의 데이터를 포함한다. 싱글 레코드의 주문 ID 열은 해당 레코드의 주문 ID 필드에 대응한다. 따라서, 필드들의 집합은 열을 포함할 수도 있다. 본 기술 분야에 숙련된 자들은 다수의 다른 타입들의 데이터가 데이터베이스에서 유지될 수 있으며, 데이터베이스 관리 시스템 내의 테이블을 사용해서 디스플레이될 수 있음을 알 것이다. 본 발명은 데이터의 복합 계층이 간단한 데이터베이스 테이블(데이터베이스 테이블(102)과 외관상 유사하지만, 구조적으로 상이함)의 개념을 사용해서 모델링되게 해서, 다수의 테이블들에 걸친 정교한 질의들을 형성하고 데이터를 보고 조작하기 위해 다수의 테이블들 사이를 넘나드는 사용자의 부담을 경감시킨다.
본 발명이 컴퓨터 시스템으로서 구현될 수도 있다는 가정 하에, 본 발명의 실시예들이 구현될 수도 있는 적합한 컴퓨팅 시스템 환경의 일례를 도시하기 위해 도 2가 제공된다. 가장 기본적인 구성에서, 시스템(200)은 적어도 하나의 프로세싱 유닛(202) 및 메모리(204)를 포함한다. 컴퓨팅 디바이스의 정확한 구성 및 타입에 따라, 메모리(204)는 휘발성(예를 들어, RAM), 비휘발성(예를 들어, ROM, 플래시 메모리 등), 또는 상기 메모리들의 몇몇 결합물일 수도 있다. 가장 기본적인 구성은 도 2에 점선(206)으로 도시되어 있다.
메모리(204) 외에, 시스템은 적어도 하나의 다른 형태의 컴퓨터 판독 가능 매체를 포함할 수도 있다. 컴퓨터 판독 가능 매체는 시스템(200)에 의해 액세스될 수 있는 임의의 유효 매체일 수 있다. 예를 들어, 컴퓨터 판독 가능 매체는 컴퓨터 기억 매체 및 통신 매체를 포함할 수도 있는데, 이들로만 제한되지는 않는다.
컴퓨터 기억 매체는 컴퓨터 판독 가능 명령들, 데이터 구조, 프로그램 모듈 들, 또는 다른 데이터와 같은 정보를 기억하기 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 제거 가능 및 제거 불가능 매체들을 포함한다. 메모리(204), 제거 가능 스토리지(208) 및 제거 불가능 스토리지(210)는 모두 컴퓨터 기억 매체의 일례들이다. 컴퓨터 기억 매체는 RAM, ROM, EEPROM, 플래시 메모리, 다른 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 다른 광 스토리지, 자기 카셋트, 자기 테이프, 자기 디스크 스토리지, 다른 자기 기억 장치, 또는 시스템(200)에 의해 액세스될 수 있으며 희망 정보를 기억하는데 사용될 수 있는 임의의 다른 매체들을 포함하는데, 이들로만 제한되지는 않는다. 임의의 컴퓨터 기억 매체는 시스템(200)의 파트일 수도 있다.
시스템(200)은 시스템이 다른 디바이스들과 통신할 수 있게 해주는 통신 커넥션(들)(212)을 포함할 수도 있다. 통신 커넥션(들)(212)은 통신 매체의 일례이다. 통신 매체들은 통상 컴퓨터 판독 가능 명령들, 데이터 구조, 프로그램 모듈들, 또는 반송파 또는 다른 전송 메카니즘과 같은 변조된 데이터 신호로 된 다른 데이터를 포함하며, 임의의 정보 전달 매체들을 포함한다. 용어 "변조된 데이터 신호"는 정보를 신호로 인코드하는 방식으로 변경되거나 설정된 특징들 중 하나 이상의 특징들을 갖는 신호를 의미한다. 제한의 의미가 아니라 일례로서, 통신 매체는 유선망 또는 다이렉트-와이어드 커넥션과 같은 유선 매체, 및 음향, RF, 적외선, 및 다른 무선 매체와 같은 무선 매체들을 포함한다. 본 명세서에서 사용된 컴퓨터 판독 가능 매체라는 용어는 기억 매체 및 통신 매체를 모두 포함한다.
한 실시예에 따라, 시스템(200)은 입력 장치(들)(214) 및/또는 출력 장치( 들)(216)와 같은 주변 장치들을 포함한다. 일례의 입력 장치들(214)은 키보드, 컴퓨터 마우스, 펜 또는 스타일러스, 음성 입력 장치, 촉각 입력 장치 등을 포함하는데, 이들로만 제한되지는 않는다. 일례의 출력 장치(들)(216)는 디스플레이, 스피커, 프린터와 같은 장치들을 포함하는데, 이들로만 제한되지는 않는다. 본 발명에서는, 디스플레이가 주요 출력 장치이다. 상기 장치들 각각은 본 기술 분야에서 공지된 것으로 본 명세서에서는 상세히 기술되지 않는다.
컴퓨팅 환경을 염두에 두고, 이하의 도면들은 본 발명의 다양한 실시예들을 구현하는 프로세스들을 구현하기 위해 실행되는 로지컬 오퍼레이션들을 참조해서 기술된다. 로지컬 오퍼레이션들은 (1) 컴퓨팅 시스템에서 실행되는 컴퓨터 구현 단계 시퀀스 또는 프로그램 모듈들로서 및/또는 (2) 컴퓨팅 시스템 내의 상호 연결 기계 논리 회로들 또는 회로 모듈들로서 구현된다. 구현은 본 발명을 구현하는 컴퓨팅 시스템의 실행 요구 사항들에 따른 선택 사항이다. 따라서, 본 발명의 실시예들을 구성하는 로지컬 오퍼레이션들은 다양하게 오퍼레이션, 구조적 디바이스, 액션 또는 모듈과 관련된다. 본 기술 분야에 숙련된 자들은 오퍼레이션, 구조적 디바이스, 액션 및 모듈이 소프트웨어, 펌웨어, 특별 목적 디지털 로직, 및 첨부된 청구항들에 기재된 본 발명의 원리 및 범위 내에 속한 임의의 결합으로 구현될 수도 있음을 알 것이다.
도 3은 본 발명의 한 실시예에 따른 모듈들을 도시한다. 사용자 인터페이스 모듈은 사용자들이 데이터를 뷰, 갱신, 질의 및 조작할 수 있게 해준다. 데이터 모델링 모듈(304), 질의 확장 모듈(306), 및 커서 모델링 모듈(308)과의 사용자 상 호 작용은 사용자 인터페이스 모듈(302)을 통해 달성된다. 이처럼, 상기 모듈들(304, 306, 308)로부터의 데이터는 사용자 인터페이스 모듈(302)을 통해 디스플레이된다.
사용자 인터페이스 모듈(302)은 데이터 모델링 모듈(304)에 테이블 계층 파라미터들을 전달하고, 또한, 다른 테이블 정의 또는 변경으로 사용자를 돕기 위해 데이터 모델링 모듈(304)로부터 피드백을 수신할 수도 있다. 사용자 인터페이스 모듈(302)은 사용자가 제공한 질의들을 질의 확장 모듈(306)에 전달하고, 질의 확장 모듈(306)로부터 질의 결과들을 수신한다. 사용자 인터페이스 모듈(302)은 데이터 검색을 위해 커서링 모듈(308)에 데이터에 대한 사용자로부터의 요청들을 전달하고, 커서링 모듈(308)로부터 검색된 데이터를 수신한다.
한 실시예에서, 사용자 인터페이스 모듈(302)은 디스플레이에서 하나 이상의 모듈들(304, 306,308)로부터 리턴된 데이터를 직접 렌더링한다. 다른 실시예에서, 사용자 인터페이스 모듈(302)은 디스플레이를 갱신하기 위해 API(Application Programming Interface)를 사용한다.
데이터 모델링 모듈(304)은 개념 테이블의 생성 및 변경을 허용한다. 개념 테이블은 복합 데이터 뿐만 아니라 다른 테이블 형태의 (스칼라가 아닌) 복합 데이터를 포함할 수도 있는 데이터 테이블이다. 데이터 테이블은 통상 스칼라 데이터만을 포함하며, 숫자, 영숫자 스트링, 분수 등을 포함할 수도 있다. 복합 데이터는 중첩된 테이블들의 추가 레벨들을 자체 포함할 수도 있는 하나 이상의 중첩 테이블들을 포함할 수도 있다. 개념 테이블은 이러한 다수의 계층 관련 테이블들을 임의로 포함할 수 있다. 개념 테이블의 소정의 필드는 다른 테이블의 필드에 물리적으로 매핑될 수도 있다. 또한, 물리적 매핑 및 결과들은 전체적으로 사용자에게 명백할 수도 있다. 데이터 모델링 모듈(304)은 사용자 인터페이스 모듈(302)로부터 개념 테이블에 대해 사용자가 지정한 파라미터들을 수신할 수도 있다.
한 실시예에서, 개념 테이블은 스칼라 데이터를 포함하는 하나 이상의 데이터 테이블들로서 저장된다. 개념 테이블에만 존재하는 스칼라 데이터 값들은 비매핑 스칼라 값들을 위해 특별히 할당된 데이터 테이블에 저장된다. 데이터 테이블에 물리적으로 매핑되는 하나 이상의 데이터 값들은 이러한 데이터 값들이 해당 데이터 테이블(310)에 물리적으로 저장되도록 데이터 모델링 모듈(304)에 의해 "슈레딩된다(shredded)". 그 결과, 사용자는 싱글 개념 테이블만 처리하면 되고, 저장을 위해 개념 테이블을 다수의 계층 테이블들로 번역하는 복잡성은 사용자에게 투명하다. 유사하게, 슈레딩(shredding)의 구현은 데이터베이스 기억 엔진 또는 데이터베이스 질의 프로세서에 임의의 추가 복잡성을 반드시 포함할 필요가 없다.
한 실시예에서, 개념 테이블의 데이터 값들은 복합 열이 테이블에 추가될 때 적합한 데이터 테이블들에 슈레딩된다. 다른 실시예에서, 개념 테이블의 데이터 값들은 저장 커맨드가 사용자로부터 수신될 때 적합한 데이터 테이블들에 슈레딩된다. 또 다른 실시예에서, 개념 테이블의 데이터 값들은 값 변경이 검출될 때마다 적합한 데이터 테이블들에 슈레딩된다.
질의 확장 모듈(306)은 사용자 인터페이스 모듈(302)로부터 개념 테이블 질의를 수신하고 개념 테이블의 계층적 구조를 근거로 질의를 확장한다. 한 실시예 에서, 질의 확장 모듈(306)은 개발자에 의해 정의된 규칙 집합을 사용해서 개념 테이블의 계층적 구조를 근거로 질의를 확장한다. 질의 확장 규칙들의 일례의 집합은 표 1 내지 표 12에 후술된다.
다른 실시예에서, 질의 확장 모듈(306)은 관련 데이터 테이블들의 부집합을 함께 싱글 데이터 테이블로 결합(joining)함으로써(데이터베이스 기술 분야의 결합(combining)과 유사함) 질의를 확장한다. 또 다른 실시예에서, 질의 확장 모듈(306)은 관련성과 무관하게 개념 테이블에 의해 링크된 모든 데이터 테이블들(310)을 함께 싱글 데이터 테이블로 결합함으로써 질의를 확장하고, 그 후, 싱글 데이터 테이블에서 개념 테이블 질의를 실행한다.
한 실시예에서, 질의 확장 모듈(306)은 데이터 테이블(310)에서 직접 질의를 실행한다. 다른 실시예에서, 질의 확장 모듈(306)은 실행을 위해 데이터베이스 서버에 확장된 질의를 제공한다. 상기 실시예는 질의 프로세서 또는 데이터베이스 서버에 대한 임의의 변경을 반드시 요구하지는 않는다.
커서링 모듈(308)은 개념 테이블의 판독 및 항해를 가능케 한다. 개념 테이블을 오픈하라는 신호가 사용자 인터페이스(302)를 통해 수신될 때, 커서링 모듈(308)은 존재하는 데이터 테이블에 대한 임의의 매핑들을 분석한다. 상기 데이터 테이블들로부터의 스칼라 데이터 값들은 매핑들을 사용해서 검색되고, 스칼라 데이터 값들은 디스플레이를 위해 사용자 인터페이스(302)로부터 리턴된다.
사용자가 데이터 테이블을 포함하는 개념 테이블 필드를 선택하면, 필드의 테이블 매핑이 참조된다. 매핑된 데이터 테이블의 스냅샷이 취해지며, 결과들은 개념 테이블에 디스플레이된다. 한 실시예에서, 매핑된 데이터 테이블은 편집에 대해 로크되어서, 콘텐츠가 변경될 수 없다. 다른 실시예에서, 매핑된 데이터 테이블은 로크되지 않으며, 대신, 매핑된 데이터 테이블은 갱신을 위해 정기적으로 체크되어서 디스플레이된 개념 테이블에 전달된다.
본 기술 분야에 숙련된 자들은 도 3과 관련해서 기술된 일례의 실시예들이 데이터 테이블들을 포함할 수도 있는 개념 테이블을 포함하며, 임의의 다수의 인디렉션(indirection) 레벨들이 청구된 발명의 범위 내에서 사용될 수도 있다. 예를 들어, 개념 테이블은 또 다른 개념 테이블들을 자체 포함할 수도 있는 하나 이상의 개념 테이블들을 포함할 수도 있다. 이러한 상황에서, 무한 루프, 즉, 무한 수의 인디렉션 레벨들을 야기하는 개념 테이블 (간접적 또는 직접적) 자체 참조를 방지해야만 한다.
한 실시예에서, 데이터 모델링 모듈(304)은 자동으로 데이터 스토어들을 실행할 수도 있다. 이는 임의의 소정의 데이터 스토어에서, 모든 데이터 테이블들이 갱신되거나 전혀 갱신되지 않음을 의미한다. 데이터 테이블들이 번역 상태에 있는 동안 데이터를 판독하는 것은 방지될 수도 있다. 원자 데이터 테이블 기록들이 세마포어, 파일 로킹, 또는 본 기술 분야에 공지된 다른 방법을 통해 실행될 수도 있으며, 추가로 롤백(하나 이상의 미결정 기록들을 취소)을 구현할 수도 있다.
도 4는 개념 테이블이 생성되는 본 발명의 한 실시예에 따른 플로우챠트를 도시한다. 수신 오퍼레이션(402)은 현존 테이블 또는 개념 테이블에 복합 데이터 타입을 추가하라는 신호를 사용자로부터 수신한다. 상기 신호는 자동 컴퓨터 프로 세스 또는 다른 입력 소스로부터 사용자 인터페이스를 통해 사용자로부터 수신될 수도 있다. 이러한 수신은 적어도 하나의 데이터 테이블을 생성하는 생성 오퍼레이션(404)을 트리거한다.
생성 오퍼레이션(404)은 복합 데이터와 관련된 임의의 스칼라 값들을 포함하는 적어도 하나의 데이터 테이블을 생성한다. 복합 데이터 필드에 입력된 데이터는 개념 테이블이 저장될 때 대응 데이터 테이블에 슈레딩될 것이다. 한 실시예에서, 생성된 각각의 데이터 테이블은 하나 이상의 데이터베이스 파일들의 형태를 취한다. 다른 실시예에서, 각각의 생성 데이터 테이블은 하나 이상의 데이터베이스 파일들 내에서 데이터 구조 형태를 취한다. 또 다른 실시예에서, 생성 오퍼레이션(404)은 또한 각각의 생성 데이터 테이블 내에서 디폴트 값으로 하나 이상의 스칼라 값들을 초기화한다. 적합한 데이터 테이블이 이미 존재하는 한 실시예에서, 생성 오퍼레이션(404)은 생략될 수도 있으며 데이터 테이블은 간단히 링크될 수도 있다.
생성 오퍼레이션(404)에 이어, 링크 오퍼레이션(406)은 생성 오퍼레이션(404)에 의해 생성된 하나 이상의 데이터 테이블들에 대응해서, 개념 테이블에 하나 이상의 링크들을 추가한다. 링크는 복합 데이터 필드가 커서링(도 3과 관련해서 상술되고 도 7과 관련해서 후술됨)을 통해 선택될 때 데이터 테이블의 위치를 정하는데 사용될 수도 있다. 링크는 또한 복합 데이터 필드 내의 스칼라 값이 추가되거나 변경될 때(도 3과 관련해서 상술됨) 데이터 테이블의 위치를 찾는데 사용될 수도 있다.
결정 오퍼레이션(408)은 추가 테이블들이 복합 데이터를 수용할 것을 요청받았는지를 결정한다. 보다 많은 테이블들이 필요하면, 흐름은 다시 생성 오퍼레이션(404)으로 분기한다. 테이블들이 더 필요하지 않으면, 흐름은 종료(410)로 분기한다.
종료(410)에 도달하면, 복합 데이터는 커서링(도 3과 관련해서 상술되고 도 7과 관련해서 후술됨)을 사용해서 뷰 또는 조작될 수 있으며, 슈레딩(도 3과 관련해서 상술되고 도 5와 관련해서 후술됨)을 통해 저장될 수도 있다.
한 실시예에서, 현존 데이터 테이블은 개념 테이블로 삽입될 수도 있다. 이러한 실시예에서, 검증 오퍼레이션(도시되지 않음)이 데이터 테이블의 존재를 검증하며, 생성 오퍼레이션(404)이 생략된다.
도 5는 개념 테이블로부터의 데이터가 슈레딩되며 하나 이상의 대응 데이터 테이블에 저장되는 본 발명의 한 실시예에 따른 플로우챠트를 도시한다.
수신 오퍼레이션(502)은 개념 테이블과 관련된 하나 이상의 복합 데이터 값들을 저장하라는 신호를 수신한다. 상기 신호는 데이터베이스 관리 애플리케이션 내에서 데이터를 명확하게 저장하는 사용자의 결과일 수도 있다. 대안으로, 상기 신호는 변경된 데이터를 동기화하는 자동 프로세스로부터 수신될 수도 있다. 수신 오퍼레이션(502)에 의한 신호 수신은 분석 오퍼레이션(504)을 트리거한다.
분석 오퍼레이션(504)은 복합 데이터 값들이 저장된 개념 테이블을 분석하고, 개념 테이블의 구조를 결정한다. 구조적 데이터를 근거로, 결정 오퍼레이션(506)은 데이터 테이블의 로케이션들에 대한 하나 이상의 매핑들을 결정한다. 상 기 매핑들은 데이터 테이블 좌표 집합, 데이터 테이블을 포함하는 메모리 로케이션에 대한 포인터, 데이터 테이블 파일 네임, 유일한 레코드 식별 번호, 또는 데이터가 처리될 수 있는 다른 수단 형태 또는 임의의 결합 형태일 수 있다.
저장 오퍼레이션(508)은 상기 매핑들을 사용해서 데이터 값의 각각의 데이터로 개념 테이블로부터의 하나 이상의 데이터 값들을 저장하며, 이 때에, 개념 테이블 데이터는 성공적으로 슈레딩되었다. 데이터는 후에 커서링(도 3과 관련해서 상술되고 도 7과 관련해서 후술됨)을 통해 "언슈레딩(unshredded)"될 수도 있다. 한 실시예에서, 저장 오퍼레이션(508)은 데이터 스토어들을 자동으로 실행한다. 다른른 실시예에서, 저장 오퍼레이션(508)은 불완전한 스토어들을 롤백할 수 있다.
도 6은 개념 테이블의 질의가 슈레딩된 데이터를 프로세스하기 위해 확장되는 본 발명의 한 실시예에 따른 플로우챠트를 도시한다. 수신 오퍼레이션(602)은 개념 테이블의 질의를 수신한다. 한 실시예에서, 질의는 사용자에 의해 텍스트 형태로 입력될 수도 있다. 다른 실시예에서, 상기 질의는 그래픽 사용자 인터페이스를 사용해서 전체적으로 또는 부분적으로 구성될 수도 있다. 또 다른 실시예에서, 상기 질의는 컴퓨터에 의해 자동으로 생성될 수도 있다.
분석 오퍼레이션(604)은 복합 데이터가 질의되는 개념 테이블을 분석하며, 데이터 테이블에 대한 임의의 관련 매핑과 함께 개념 테이블의 구조를 결정한다. 상기 매핑들은 임의의 수개의 상이한 형태들(도 5와 관련해서 상술됨)을 취할 수도 있다.
결정 오퍼레이션(606)은 임의의 규칙들이 질의에 적합하며 상기 규칙들이 확 장을 요청하는지를 결정하기 위해 확장 규칙 집합과 관련해서 분석 오퍼레이션(604)으로부터의 구조적 데이터 및 매핑들을 사용한다. 규칙들이 질의에 적합하지 않으면, 또는 적합한 규칙이 확장이 완전함을 나타내면, 흐름은 발행 오퍼레이션(610)으로 분기한다. 하나 이상의 규칙들이 질의에 적합하면, 흐름은 적용 오퍼레이션(608)으로 분기한다.
하나 이상의 확장 규칙들이 질의에 적용되기에 적합하면, 적용 오퍼레이션(608)은 상기 규칙들에 따라 질의를 확장한다. 한 실시예에서, 적용 오퍼레이션은 질의를 확장하는 파트로서 새로운 질의를 생성할 수도 있다. 몇몇 질의 확장 규칙들은 표 1 내지 표 12에 후술되며, 데이터를 평가하기 전에 데이터 테이블들을 함께 결합하는 JOIN과 같은 SQL 용어들을 사용하는 확장을 포함한다. 본 기술 분야에 숙련된 자들은 결정 오퍼레이션(606) 및 적용 오퍼레이션(608)이 질의가 충분히 확장되어서 발행 오퍼레이션(610)에 의해 발행될 준비가 되기 전에 반복해서 발생할 수도 있음을 알 것이다. 하나 보다 많은 규칙이 다양한 순서들로 적용될 수 있으며, 단일 규칙이 질의의 확장에서 한번 이상 적용될 수도 있다. 질의의 증가 확장을 구현하는 실시예에서, 질의 확장 규칙들이 서로 직교로 유지되어서, 비교적 간단히 유지될 수도 있다. 질의의 증가 확장을 실행하는 실시예에서, 데이터 구조는 증가 확장 규칙 애플리케이션의 중간 결과들을 저장할 필요가 있을 수도 있다. 다른 실시예에서, 다수의 질의 확장 규칙들이 적용 오퍼레이션(608)에 의해 적용될 수도 있다.
발행 오퍼레이션(610)은 결정 오퍼레이션(606) 및 적용 오퍼레이션(608)에 의해 확장된 질의를 발행한다. 한 실시예에서, 발행 오퍼레이션(610)은 데이터베이스 데이터를 직접 질의한다. 다른 실시예에서, 발행 오퍼레이션(610)은 질의를 데이터베이스 서버에 송신한다.
도 7은 커서링이 슈레딩된 개념 테이블로부터 데이터가 검색되게 해주는 본 발명의 한 실시예에 따른 플로우챠트를 도시한다. 수신 오퍼레이션(702)은 개념 테이블의 복합 데이터를 오픈하라는 신호를 수신한다. 상기 신호는 디스플레이돼야만 하는 복합 데이터를 포함하는 현존 개념 테이블을 오픈하는 사용자로부터 야기될 수도 있으며, 복합 데이터를 포함하는 개념 테이블 필드에 커서를 이동시키는 사용자로부터, 또는 다른 사용자 생성 또는 컴퓨터 생성 입력들을 통해 야기될 수도 있다.
판독 오퍼레이션(704)은 개념 테이블과 관련된 데이터 테이블들의 로케이션들에 대한 하나 이상의 매핑들을 판독한다. 상술된 바와 같이, 상기 매핑들은 다양한 형태들을 취할 수도 있다. 검색 오퍼레이션(706)은 매핑된 데이터 테이블에 의해 지시된 데이터 테이블들로부터 스칼라 데이터 값들을 검색한다. 검색 오퍼레이션(706)에 의해 검색된 스칼라 값들은 개념 테이블을 차지하는데 사용되며, 이는 디스플레이 오퍼레이션(708)에 의해 디스플레이된다.
디스플레이 오퍼레이션(708)은 검색 오퍼레이션(706)에 의해 검색된 스칼라 값들을 포함하는 개념 테이블을 디스플레이한다. 디스플레이 오퍼레이션(708)은 한 실시예에서 스크린에서 개념 테이블을 직접 렌더링할 수도 있으며, 다른 실시예에서 렌더링을 실행하기 위해 API들에 의존할 수도 있으며, 또 다른 실시예들에서 본 기술 분야에 숙련된 자들에게 공지된 데이터를 디스플레이하기 위한 다른 방법들을 사용할 수도 있다.
본 기술 분야에 숙련된 자들은 본 명세서에서 청구된 실시예들이 복합 데이터 타입들을 사용하는 데이터베이스 및 스프레드시트 애플리케이션들의 문맥 뿐만 아니라 마이크로소프트® Sharepoint와 같은 협동 서비스 수트들의 문맥에서 사용될 수도 있음을 알 것이다. 상기 수트들은 다수의 값들(예를 들면, 다중 선택, 첨부 파일 등)을 포함하는 자신의 복합 데이터 타입들을 구현할 수도 있다. 상기 복합 데이터 타입들은 본 명세서에 기술된 일례의 실시예들과 매우 동일하게 핸들될 수도 있다.
한 특정 실시예에서, SQL 질의 확장 규칙 집합이 질의 확장 모듈(306)(도 3)에 의해 또한 결정 오퍼레이션(606) 및 적용 오퍼레이션(608)(도 6)에 의해 사용된다. 수개의 일례의 SQL 질의 확장 규칙 집합이 표 1 내지 표 11에 기재된다. 상기 규칙들은 다양한 복잡성 상황들을 다룬다. 일례(표 1)에서, 비교적 간단한 SELECT 질의가 확장된다. 간단한 SELECT 질의는 그룹 또는 집합을 갖지 않는 질의로서 정의된다. 복합 스칼라 필드들에 대한 제한이 없을 때, 부모 테이블만이 확장 질의에서 참조될 필요가 있다. 질의의 WHERE 구의 복합 스칼라에 대한 제한이 있을 때, 테이블과 복합 데이터 타입 간의 결합이 실행돼야만 한다(기본 일례에 대해서 표 1을 참조). WHERE 구의 필터들이 테이블의 복합 열 대신 복합 데이터 타입을 참조하기 위해 필요할 때 변경돼야만 한다. SELECT 구의 필드들은 적합한 테이블 참조들을 사용해서 유사하게 변경돼야만 한다. 복합 스칼라의 결합이 테이블 과 다른 테이블 사이에서 실행돼야만 할 때, 확장 질의는 부모 테이블과 복합 테이블을 결합하기 위해 부질의를 포함할 것이다(기본 일례를 위해 도 4 참조). NOT은 비확장 질의의 WHERE 구에 나타나면, NOT은 [Table].[Complex Column]NOT IN(SELECT[Complex Column]FROM[Table]JOIN[Flat Table]ON[Table].[Complex Column] = [Flat Table].[Foreign Key]WHERE[Flat Table].[Complex Scalar]=value)로 번역될 것이다.
표 4 내지 표 11은 집합들을 갖는 질의들에 대한 확장 규칙들을 도시한다. 이러한 규칙 하나는 복합 타입들의 집합들이 테이블과 복합 데이터 타입의 LEFT JOIN에 대해 실행된다는 것이다. 다른 규칙은 비확장 질의의 상이한 복합 타입들의 집합들이 있을 때, 각각의 집합이 부질의를 사용해서 계산된다는 것이다. 또한, HAVING 구(표 10)의 발생은 외부 질의의 WHERE 구로 변환된다. HAVING 구가 집합 SELECT 리스트에서 참조되지 않는 복합 타입을 참조하면, 새로운 질의가 테이블 및 복합 타입을 결합하기 위해 생성될 수도 있다.
<표 1>
복합 스칼라의 일례의 필터
Figure 112005060846238-pat00001
<표 2>
다수의 복합 스칼라들의 일례의 필터
Figure 112005060846238-pat00002
<표 3>
복합 스칼라에서 결합할 때의 일례의 부질의들
Figure 112005060846238-pat00003
<표 4>
복합 타입의 일례의 집합
Figure 112005060846238-pat00004
<표 5>
동일한 복합 스칼라에 대한 제한을 갖는 복합 타입의 집합
Figure 112005060846238-pat00005
<표 6>
상이한 복합 스칼라에 대한 제한을 갖는 복합 타입의 일례의 집합
Figure 112005060846238-pat00006
<표 7>
복합 스칼라 1 및 복합 스칼라 2에 대한 제한을 갖는 일례의 집합 복합 타입 1
Figure 112005060846238-pat00007
<표 8>
복합 타입 1 및 복합 타입 2의 일례의 집합
Figure 112005060846238-pat00008
<표 9>
복합 스칼라 1 및 복합 스칼라 2에 대한 제한을 갖는 복합 타입 1 및 복합 타입 2의 일례의 집합들
Figure 112005060846238-pat00009
<표 10>
HAVING 구의 일례의 복합 타입
Figure 112005060846238-pat00010
<표 11>
HAVING 구의 복합 타입 1 및 복합 타입 2의 일례의 집합들
Figure 112005060846238-pat00011
상술된 다양한 실시들은 단지 일례로서 제공된 것으로 본 발명을 제한하려는 것은 아니다. 본 기술 분야에 숙련된 자들은 본 명세서에 기술된 일례의 실시예들 및 애플리케이션들 없이 이하의 청구항들에 기재된 본 발명의 원리 및 범위 내에서 본 발명이 다양하게 변경될 수도 있음을 알 것이다.
본 발명에 따르면, 복합 데이터를 개념 테이블에 추가하기 위한 컴퓨터 구현 방법 및 컴퓨터 판독 가능 매체가 제공된다. 개념 테이블은 적어도 하나의 복합 데이터 타입을 포함하는 테이블이다. 복합 데이터 타입은 하나 이상의 스칼라 열들 및/또는 싱글 신 데이터 타입을 형성하기 위해 함께 "그룹화"된 다른 복합 타입 들이다. 먼저, 복합 데이터 타입을 테이블에 추가하라는 신호가 수신된다. 하나 이상의 데이터 테이블들이 생성된다. 또한, 하나 이상의 데이터 테이블들에 대한 링크들이 개념 테이블에서 생성된다.

Claims (18)

  1. 복합 데이터를 현존 개념 테이블(existing conceptual table)에 추가하고 또한 상기 현존 개념 테이블 내의 복합 데이터를 모델링하는, 컴퓨터 구현 방법 -상기 현존 개념 테이블은 스칼라 데이터를 포함하는 하나 이상의 데이터 테이블로서 저장됨- 으로서,
    복합 데이터 타입을 상기 현존 개념 테이블에 추가하라는 명령을 수신하는 단계 -상기 복합 데이터 타입은 하나 이상의 중첩 테이블(nested table)을 포함함-;
    상기 복합 데이터 타입을 추가하라는 명령 수신 시, 상기 복합 데이터 타입과 연관된 스칼라 값을 저장하기 위한 하나 이상의 데이터 테이블을 생성하는 단계;
    상기 복합 데이터 타입과 연관된 스칼라 값을 저장하기 위한 상기 하나 이상의 데이터 테이블에 대응하는 상기 현존 개념 테이블에 대한 하나 이상의 링크를 생성하는 단계;
    상기 현존 개념 테이블과 연관된 제 1 복합 데이터 값을 저장하라는 명령을 수신하는 단계;
    상기 현존 개념 테이블의 구조를 분석하여 상기 현존 개념 테이블의 구조적 데이터를 결정하는 단계;
    상기 구조적 데이터를 사용하여, 상기 복합 데이터 타입과 연관된 스칼라 값을 저장하기 위한 상기 하나 이상의 데이터 테이블 중 제 1 데이터 테이블의 제 1 위치로의 상기 제 1 복합 데이터 값의 제 1 매핑을 결정하는 단계;
    상기 제 1 매핑을 이용하여, 상기 현존 개념 테이블로부터의 상기 제 1 복합 데이터 값을 상기 제 1 데이터 테이블 내의 상기 제 1 위치에 저장하는 단계;
    상기 현존 개념 테이블 내에만 존재하는 스칼라 데이터 값을 저장하라는 명령을 수신하는 단계 -상기 스칼라 데이터 값은 상기 복합 데이터와 연관되지 않음-;
    상기 현존 개념 테이블에만 존재하는 상기 스칼라 데이터 값을 제 2 데이터 테이블에 저장하는 단계 -상기 제 2 데이터 테이블은 하나 이상의 매핑되지 않은 스칼라 데이터 값을 위해 특별히 할당됨-;
    적어도 상기 제 1 복합 데이터 값을 요구하는, 상기 현존 개념 테이블로의 질의(query)를 수신하는 단계;
    하나 이상의 확장 규칙(expansion rule)이 상기 질의에 적용하는데 적합한지 및 상기 하나 이상의 확장 규칙이 확장을 요구하는지의 여부를 판정하는 단계 -상기 판정하는 단계는 상기 구조적 데이터 및 상기 제 1 매핑을 이용함-;
    상기 하나 이상의 확장 규칙이 상기 질의에 적용하기에 적합한 경우, 상기 하나 이상의 확장 규칙을 적용하여 상기 질의를 확장하는 단계;
    상기 질의를 발행하는 단계;
    상기 현존 개념 테이블의 상기 확장된 질의에 응답하여, 상기 하나 이상의 데이터 테이블에 질의하여 상기 제 1 데이터 테이블의 상기 제 1 위치에 저장된 적어도 상기 제 1 복합 데이터 값을 획득하는 단계;
    상기 현존 개념 테이블 내의 제 1 필드의 선택을 수신하는 단계 -상기 제 1 필드는 상기 제 1 데이터 테이블을 포함함-;
    상기 제 1 데이터 테이블로의 상기 제 1 매핑을 참조하는 단계;
    상기 제 1 데이터 테이블의 스냅샷을 얻는 단계;
    상기 제 1 데이터 테이블의 상기 스냅샷의 결과를 상기 현존 개념 테이블에 디스플레이하는 단계를 포함하는
    컴퓨터 구현 방법.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 제1항에 있어서,
    상기 질의에 하나 이상의 확장 규칙들을 적용하는 단계는 증량적으로(incrementally) 실행되는, 컴퓨터 구현 방법.
  7. 제1항에 있어서,
    복수의 상기 하나 이상의 확장 규칙들이 상기 질의의 발행에 적용될 수 있는, 컴퓨터 구현 방법.
  8. 제1항에 있어서,
    상기 질의에 하나 이상의 확장 규칙들을 적용하는 단계는,
    상기 현존 개념 테이블의 모델로 복수의 데이터 테이블들을 결합하는 단계; 및
    상기 현존 개념 테이블의 상기 모델에 상기 질의를 적용하는 단계
    를 포함하는, 컴퓨터 구현 방법.
  9. 제1항에 있어서,
    상기 질의를 발행하는 단계는 상기 질의를 실행을 위해 데이터베이스 서버에 제공하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  10. 제1항에 있어서,
    상기 질의를 발행하는 단계는 상기 현존 개념 테이블, 상기 복합 데이터 및 상기 하나 이상의 데이터 테이블을 갖는 데이터베이스에 직접 액세스하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  11. 삭제
  12. 삭제
  13. 삭제
  14. 현존 개념 테이블 모델링을 위한 컴퓨터 시스템에 있어서,
    적어도 하나의 프로세서와,
    상기 적어도 하나의 프로세서에 결합된 메모리를 포함하며,
    상기 메모리는 상기 적어도 하나의 프로세서에 의해 실행가능한 컴퓨터 프로그램 명령을 포함하고, 또한 상기 컴퓨터 시스템에 의해 액세스가능한 데이터 모델링 모듈, 질의 확장 모듈(query expansion module) 및 커서링 모듈(cursoring module)을 저장하고 있으며,
    상기 데이터 모델링 모듈은
    상기 현존 개념 테이블에 복합 데이터 -상기 복합 데이터는 하나 이상의 중첩 테이블을 포함함- 를 추가하고, 상기 복합 데이터와 연관된 스칼라 값을 상기 추가 복합 데이터에 응답하여 생성된 하나 이상의 데이터 테이블에 저장하며,
    상기 데이터 모델링 모듈은 또한 상기 현존 개념 테이블 내의 상기 복합 데이터를 모델링하기 위해,
    상기 현존 개념 테이블과 연관된 제 1 복합 데이터 값을 저장하라는 명령을 수신하고,
    상기 현존 개념 테이블의 구조를 분석하여 상기 현존 개념 테이블의 구조적 데이터를 결정하며,
    상기 구조적 데이터를 사용하여, 상기 복합 데이터 값과 연관된 스칼라 값을 저장하기 위한 제 1 데이터 테이블의 제 1 위치로의 상기 제 1 복합 데이터 값의 제 1 매핑을 결정하고,
    상기 제 1 매핑을 이용하여, 상기 현존 개념 테이블로부터의 상기 제 1 복합 데이터 값을 상기 제 1 데이터 테이블의 상기 제 1 위치에 저장하며,
    상기 현존 개념 테이블 내에만 존재하는 스칼라 데이터 값 -상기 스칼라 데이터 값은 상기 복합 데이터와 연관되지 않음- 을 저장하라는 명령을 수신하고,
    상기 현존 개념 테이블에만 존재하는 상기 스칼라 데이터 값을 제 2 데이터 테이블 -상기 제 2 데이터 테이블은 하나 이상의 매핑되지 않은 스칼라 데이터 값을 위해 특별히 할당됨- 에 저장하며,
    상기 질의 확장 모듈은
    적어도 상기 제 1 복합 데이터 값을 요구하는, 상기 현존 개념 테이블로의 질의(query)를 수신하고,
    하나 이상의 확장 규칙(expansion rule)이 상기 질의에 적용하는데 적합한지 및 상기 하나 이상의 확장 규칙이 확장을 요구하는지의 여부를 판정 -상기 판정은 상기 구조적 데이터 및 상기 제 1 매핑을 이용함- 하며,
    상기 하나 이상의 확장 규칙이 상기 질의에 적용하기에 적합한 경우, 상기 하나 이상의 확장 규칙을 적용하여 상기 질의를 확장하고,
    상기 질의를 발행하며,
    상기 현존 개념 테이블의 상기 확장된 질의에 응답하여, 상기 하나 이상의 데이터 테이블에 질의하여 상기 제 1 데이터 테이블의 상기 제 1 위치에 저장된 적어도 상기 제 1 복합 데이터 값을 획득하고,
    상기 커서링 모듈은
    상기 현존 개념 테이블 내의 제 1 필드 -상기 제 1 필드는 상기 제 1 데이터 테이블을 포함함- 의 선택을 수신하고,
    상기 제 1 데이터 테이블로의 상기 제 1 매핑을 참조하며,
    상기 제 1 데이터 테이블의 스냅샷을 얻고,
    상기 제 1 데이터 테이블의 상기 스냅샷의 결과를 상기 현존 개념 테이블에 디스플레이하는
    컴퓨터 시스템.
  15. 제14항에 있어서,
    상기 컴퓨터 시스템에 의해 액세스가능하며 상기 커서링 모듈로부터의 결과들을 디스플레이하기 위한 디스플레이 모듈을 더 포함하는, 컴퓨터 시스템.
  16. 제1항 또는 제6항 내지 제10항 중 어느 한 항의 방법을 구현하는 컴퓨터 프로그램이 수록되어 컴퓨터 판독가능한 기록매체.
  17. 삭제
  18. 삭제
KR1020050101096A 2004-12-15 2005-10-26 복합 데이터 액세스 KR101213798B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/013,619 US7890532B2 (en) 2004-12-15 2004-12-15 Complex data access
US11/013,619 2004-12-15

Publications (2)

Publication Number Publication Date
KR20060067812A KR20060067812A (ko) 2006-06-20
KR101213798B1 true KR101213798B1 (ko) 2012-12-20

Family

ID=35559324

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050101096A KR101213798B1 (ko) 2004-12-15 2005-10-26 복합 데이터 액세스

Country Status (10)

Country Link
US (1) US7890532B2 (ko)
EP (1) EP1672540A1 (ko)
JP (1) JP2006172446A (ko)
KR (1) KR101213798B1 (ko)
CN (1) CN1790324B (ko)
AU (1) AU2005225020B2 (ko)
BR (1) BRPI0504995A (ko)
CA (1) CA2526045C (ko)
MX (1) MXPA05012291A (ko)
RU (1) RU2406115C2 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080104498A1 (en) * 2006-10-25 2008-05-01 International Business Machines Corporation Dynamically Merging Columns Within a Table
US9317494B2 (en) * 2007-04-03 2016-04-19 Sap Se Graphical hierarchy conversion
WO2009090437A1 (en) * 2008-01-16 2009-07-23 SZILÁGYI, Zoltàn Database and a method for creating thereof
KR100926336B1 (ko) * 2008-02-29 2009-11-10 나문수 관계 기반 애플리케이션 매핑 방법 및 이를 실현시키기위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체
US8001155B2 (en) * 2008-06-20 2011-08-16 Microsoft Corporation Hierarchically presenting tabular data
US8200668B2 (en) * 2008-06-24 2012-06-12 Microsoft Corporation Scalar representation for a logical group of columns in relational databases
US9665620B2 (en) 2010-01-15 2017-05-30 Ab Initio Technology Llc Managing data queries
US9116955B2 (en) * 2011-05-02 2015-08-25 Ab Initio Technology Llc Managing data queries
US8868545B2 (en) * 2011-12-29 2014-10-21 Teradata Us, Inc. Techniques for optimizing outer joins
AU2014360106B2 (en) 2013-12-06 2019-05-23 Ab Initio Technology Llc Source code translation
US9483545B2 (en) * 2014-05-30 2016-11-01 International Business Machines Corporation Grouping data in a database
US10437819B2 (en) 2014-11-14 2019-10-08 Ab Initio Technology Llc Processing queries containing a union-type operation
US10417281B2 (en) 2015-02-18 2019-09-17 Ab Initio Technology Llc Querying a data source on a network
US11093223B2 (en) 2019-07-18 2021-08-17 Ab Initio Technology Llc Automatically converting a program written in a procedural programming language into a dataflow graph and related systems and methods
CN111930532B (zh) * 2020-07-09 2023-11-17 智盈未来(西安)信息技术有限公司 航电数据集成方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6061690A (en) 1997-10-31 2000-05-09 Oracle Corporation Apparatus and method for storage of object collections in a database system
JP2001056810A (ja) 1999-06-07 2001-02-27 Kawasaki Steel Systems R & D Corp データベースアクセスシステム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0713821A (ja) * 1993-06-29 1995-01-17 Hitachi Software Eng Co Ltd データの編集方法
JP3779431B2 (ja) * 1997-06-13 2006-05-31 富士通株式会社 リレーショナルデータベース管理装置,中間リンクテーブル自動作成処理方法およびプログラム記憶媒体
US6122644A (en) 1998-07-01 2000-09-19 Microsoft Corporation System for halloween protection in a database system
JP3211956B2 (ja) * 1999-08-31 2001-09-25 勲 清水 データベースシステム
US6564203B1 (en) 2000-02-24 2003-05-13 Oracle Corporation Defining instead-of triggers over nested collection columns of views
US6892204B2 (en) 2001-04-16 2005-05-10 Science Applications International Corporation Spatially integrated relational database model with dynamic segmentation (SIR-DBMS)
JP3860992B2 (ja) * 2001-11-09 2006-12-20 株式会社ターボデータラボラトリー データの結合・提示方法、および、データ結合・提示プログラム
US6931391B2 (en) 2002-06-21 2005-08-16 Microsoft Corporation Systems and methods for generating prediction queries
US7152073B2 (en) * 2003-01-30 2006-12-19 Decode Genetics Ehf. Method and system for defining sets by querying relational data using a set definition language
US7433886B2 (en) * 2003-10-24 2008-10-07 Microsoft Corporation SQL language extensions for modifying collection-valued and scalar valued columns in a single statement
RU36541U1 (ru) 2003-12-23 2004-03-10 Григорьев Евгений Александрович Объектно-ориентированная система управления реляционными базами данных

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6061690A (en) 1997-10-31 2000-05-09 Oracle Corporation Apparatus and method for storage of object collections in a database system
JP2001056810A (ja) 1999-06-07 2001-02-27 Kawasaki Steel Systems R & D Corp データベースアクセスシステム

Also Published As

Publication number Publication date
RU2005139141A (ru) 2007-06-20
CA2526045C (en) 2013-03-12
US20060129572A1 (en) 2006-06-15
AU2005225020A1 (en) 2006-05-04
JP2006172446A (ja) 2006-06-29
BRPI0504995A (pt) 2006-09-12
US7890532B2 (en) 2011-02-15
EP1672540A1 (en) 2006-06-21
CN1790324A (zh) 2006-06-21
CN1790324B (zh) 2010-06-16
MXPA05012291A (es) 2006-06-19
AU2005225020B2 (en) 2010-09-30
KR20060067812A (ko) 2006-06-20
RU2406115C2 (ru) 2010-12-10
CA2526045A1 (en) 2006-06-15

Similar Documents

Publication Publication Date Title
KR101213798B1 (ko) 복합 데이터 액세스
US10452768B2 (en) Managing source annotation metadata
AU2020260374B2 (en) Building reports
US5826257A (en) Method and structure for maintaining and utilizing a lookup value associated with a stored database value
US7734619B2 (en) Method of presenting lineage diagrams representing query plans
US7251653B2 (en) Method and system for mapping between logical data and physical data
US7516139B2 (en) Processing of tree data structures
US8010909B1 (en) Derived hierarchy methods and system for definition, visualization and editing of data
US20050289184A1 (en) Relationship management in a data abstraction model
US20060116999A1 (en) Sequential stepwise query condition building
US20050171925A1 (en) System and method for exposing a child list
US20080189308A1 (en) Apparatus and Methods for Displaying and Determining Dependency Relationships Among Subsystems in a Computer Software System
US8341512B2 (en) Method for capturing design-time and run-time formulas associated with a cell
US20070276825A1 (en) Query reuse through recommend parameter flexibility
US20120296942A1 (en) Method and system for implementing efficient updatable relational views over xml data
US20020147725A1 (en) Method and apparatus for database table definition
US8135697B2 (en) Search-friendly templates
US20080086683A1 (en) Reporting engine for object relational networks
US20080184109A1 (en) Generating a relational view for a base model schema
JP2004126680A (ja) Sql隠蔽型データベースアクセス方法及びコンピュータプログラム
CN116868182A (zh) 可操纵逻辑数据集组的数据处理系统
JP2024505238A (ja) 論理データセットグループの操作を伴うデータ処理システム

Legal Events

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

Payment date: 20151118

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161123

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171117

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20181115

Year of fee payment: 7