KR20080057273A - 데이터로의 역계층적 접근 - Google Patents

데이터로의 역계층적 접근 Download PDF

Info

Publication number
KR20080057273A
KR20080057273A KR1020087008762A KR20087008762A KR20080057273A KR 20080057273 A KR20080057273 A KR 20080057273A KR 1020087008762 A KR1020087008762 A KR 1020087008762A KR 20087008762 A KR20087008762 A KR 20087008762A KR 20080057273 A KR20080057273 A KR 20080057273A
Authority
KR
South Korea
Prior art keywords
data
definition
child
parent
search
Prior art date
Application number
KR1020087008762A
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 KR20080057273A publication Critical patent/KR20080057273A/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
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

데이터는 저장될 수 있고 검색은 자식 레벨의 데이터에서 시작하며, 필요에 따라 부모 데이터 및 조부모 데이터로 진행될 수 있다.
자식 데이터, 부모 데이터, 역계층적 방식, 검색, 합치

Description

데이터로의 역계층적 접근{INVERSE HIERARCHICAL APPROACH TO DATA}
사용자의 컴퓨터 사용량이 증가함에 따라, 데이터 생성량이 증가하고 있다. 이들 데이터를 어떻게 효율적으로 저장하고 검색할지가 과제가 되었다. 데이터 저장 장치를 더 효율적이고 이해가 쉽도록 만드는 것을 돕는 다양한 모델들이 만들어져 왔다. 예를 들어, 트리와 같은 형식으로 데이트를 저장하는 것을 들 수 있는데, 여기서는 멀리 떨어진 분기에 있는 특정 데이터만이 필요할 때에도 데이터 검색시 트리 전체의 검색을 수반할 수도 있다.
데이터 및 데이터 정의가 저장될 수 있고 검색은 자식 레벨의 데이터에서 시작하며, 필요에 따라 부모 데이터 및 조부모 데이터로 진행될 수 있다. 정의는 자식 데이터에 먼저 적용될 수 있고 만일 정의가 적절하다면, 그 후 부모 데이터에 적용되고, 정의가 부적절하면, 부모 데이터에 적용되지 않는다. 유사하게, 자식 데이터는 먼저 검색되고 만일 합치(match)가 발견되면, 부모 데이터 또한 검색된다. 나아가, 상향식(top-down) 및 하향식(bottom-up) 검색이 조합되어 원하는 결과를 획득할 수 있다. 데이터는 고객 관계 관리 데이터일 수 있고 데이터는 XML 포맷으로 저장될 수 있다.
도 1은 본 발명에 따라 동작할 수 있는 컴퓨팅 시스템의 블록도.
도 2는 본 발명에 따른 방법을 따르는 흐름도를 도시하는 도면.
도 3은 데이터 저장 장치의 계층적 트리를 도시하는 도면.
비록 이하의 내용이 다수의 서로 다른 실시예에 대한 상세한 설명을 상술하고 있지만, 본 발명의 법적 범위는 본 명세서의 끝에 기술되는 청구항의 문구에 의하여 정의됨을 이해하여야할 것이다. 가능한 실시예를 모두 기술하는 것은 불가능하지 않더라도 비현실적이기 때문에 실시예에 대한 기술은 단지 예시적인 것으로 해석되어야하고 가능한 실시예를 모두 기술한 것으로 해석되어서는 안 된다. 청구 범위의 범주를 벗어나지 않는 범위에서 현재 기술 또는 본 발명의 출원일 이후에 개발된 기술 중 하나를 이용하여 다수의 대안적인 실시예가 구현될 수 있다.
특히 용어가 "본 명세서에서 사용되는 경우, 이로써 용어 '____'(은)는 여기서....을(를) 의미하는 것으로 정의된다.."와 같은 문장 또는 유사한 문장으로 본 명세서에서 명시적으로 정의되지 않는 한, 명시적으로든 묵시적으로든, 그것의 통상적 의미 또는 정상적인 의미 이상을 넘어서 그 용어의 의미를 한정할 의도가 없음을 이해하여야 하고, 이러한 용어가 (청구 범위의 문구를 제외하고는) 본 명세서의 임의의 부분에 기술된 임의의 문장에 기초하여 범위를 한정하는 것으로 해석되어서는 안 된다. 본 명세서 끝의 청구 범위 내에서 기술된 임의의 용어가 단일한 의미로 일관성 있는 방식으로 언급된 것은 단지 독자를 혼동시키지않기 위한 명료성을 목적으로 한 것이지, 그러한 청구 범위 용어를 함축적으로 또는 다른 방법으 로 그 단일한 의미로 제한하고자 하는 것은 아니다. 결국, 청구 범위의 구성 요소가 어떤 구성도 언급하지 않은 채 "수단" 이라는 용어를 사용하고 기능을 설명하여 정의되어 있지 않은 한, 청구항의 임의의 구성 요소의 범위를 미국 특허법 제112조의 단락 6을 적용하여 해석하고자 하는 것이 아니다.
도 1은 본 발명의 방법 및 장치의 단계가 구현될 적합한 컴퓨팅 시스템 환경(100)의 일례를 도시하고 있다. 컴퓨팅 시스템 환경(100)은 적합한 컴퓨팅 환경의 일례에 불과하며, 본 발명의 장치의 방법의 용도 또는 기능성의 범위에 관해 어떤 제한을 암시하고자 하는 것이 아니다. 컴퓨팅 환경(100)이 예시적인 운영 환경(100)에 도시된 컴포넌트들 중 임의의 하나 또는 그 컴포넌트들의 임의의 조합과 관련하여 어떠한 의존성 또는 요구사항도 갖는 것으로 해석되어서도 안 된다.
본 발명의 방법 및 장치의 단계는 많은 기타 범용 또는 특수 목적의 컴퓨팅 시스템 환경 또는 구성에서 동작할 수 있다. 본 발명의 방법 또는 장치와 함께 사용하는 데 적합할 수 있는 잘 알려진 컴퓨팅 시스템, 환경 및/또는 구성의 예로는 퍼스널 컴퓨터, 서버 컴퓨터, 핸드-헬드 또는 랩톱 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 시스템, 셋톱 박스, 프로그램가능한 가전제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상기 시스템들이나 장치들 중 임의의 것을 포함하는 분산 컴퓨팅 환경, 기타 등등이 있지만 이에 제한되는 것은 아니다.
본 발명의 방법 및 장치의 단계는 일반적으로 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능 명령어와 관련하여 기술될 것이다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 개체, 컴포넌트, 데이터 구조 등을 포함한다. 방법 및 장치는 또한 통신 네트워크를 통해 연결되어 있는 원격 처리 장치들에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 메모리 저장 장치를 비롯한 로컬 및 원격 컴퓨터 저장 매체 양쪽에 위치할 수 있다.
도 1과 관련하여, 본 발명의 방법 및 장치의 단계를 구현하는 예시적인 시스템은 컴퓨터(110) 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터(110)의 컴포넌트들은 처리 장치(120), 시스템 메모리(130), 및 시스템 메모리를 비롯한 각종 시스템 컴포넌트들을 처리 장치(120)에 연결시키는 시스템 버스(121)를 포함하지만 이에 제한되는 것은 아니다. 시스템 버스(121)는 메모리 버스 또는 메모리 컨트롤러, 주변 장치 버스 및 각종 버스 아키텍처 중 임의의 것을 이용하는 로컬 버스를 비롯한 몇몇 유형의 버스 구조 중 어느 것이라도 될 수 있다. 예로서, 이러한 아키텍처는 ISA(industry standard architecture) 버스, MCA(micro channel architecture) 버스, EISA(Enhanced ISA) 버스, VESA(video electronics standard association) 로컬 버스, 그리고 메자닌 버스(mezzanine bus)로도 알려진 PCI(peripheral component interconnect) 버스 등을 포함하지만 이에 제한되는 것은 아니다.
컴퓨터(110)는 통상적으로 각종 컴퓨터 판독가능 매체를 포함한다. 컴퓨터(110)에 의해 액세스 가능한 매체는 그 어떤 것이든지 컴퓨터 판독가능 매체가 될 수 있고, 이러한 컴퓨터 판독가능 매체는 휘발성 및 비휘발성 매체, 착탈 가능 및 착탈 불가능 매체를 포함한다. 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함하지만 이에 제한되는 것은 아니다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보를 저장하는 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 착탈 가능 및 착탈 불가능 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광 디스크 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 컴퓨터(110)에 의해 액세스되고 원하는 정보를 저장할 수 있는 임의의 기타 매체를 포함하지만 이에 제한되는 것은 아니다. 통신 매체는 통상적으로 반송파(carrier wave) 또는 기타 전송 메커니즘(transport mechanism)과 같은 변조된 데이터 신호(modulated data signal)로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터 등을 구현하고, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는, 신호 내에 정보를 인코딩하도록 그 신호의 특성들 중 하나 이상을 설정 또는 변경시킨 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 직접 배선된 접속(direct-wired connection)과 같은 유선 매체, 그리고 음향, RF, 적외선, 기타 무선 매체와 같은 무선 매체를 포함한다. 상술된 매체들의 모든 조합들 또한, 컴퓨터 판독가능 매체의 영역 안에 포함되는 것으로 한다.
시스템 메모리(130)는 판독 전용 메모리(ROM)(131) 및 랜덤 액세스 메모리(RAM)(132)와 같은 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 시동 중과 같은 때에, 컴퓨터(110) 내의 구성요소들 사이의 정보 전송을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템(BIOS)(133)은 통상적으로 ROM(131)에 저장되어 있다. RAM(132)에는 통상적으로 처리 장치(120)가 즉시 이용할 수 있고, 또는 현재 동작시키고 있는 데이터 및/또는 프로그램 모듈을 포함한다. 예로서, 도 1이 운영 체제(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136) 및 프로그램 데이터(137)를 도시하고 있지만 이에 제한되는 것은 아니다.
컴퓨터(110)는 또한 기타 착탈 가능/착탈 불가능, 휘발성/비휘발성 컴퓨터 저장매체를 포함한다. 단지 예로서, 도 1은 착탈 불가능·비휘발성 자기 매체에 기록을 하거나 그로부터 판독을 하는 하드 디스크 드라이브(141), 착탈 가능·비휘발성 자기 디스크(152)에 기록을 하거나 그로부터 판독을 하는 자기 디스크 드라이브(151), CD-ROM 또는 기타 광 매체 등의 착탈 가능·비휘발성 광 디스크(156)에 기록을 하거나 그로부터 판독을 하는 광 디스크 드라이브(155)를 도시한다. 예시적인 운영 환경에서 사용될 수 있는 기타 착탈 가능/착탈 불가능, 휘발성/비휘발성 컴퓨터 기억 매체로는 자기 테이프 카세트, 플래시 메모리 카드, DVD, 디지털 비디오 테이프, 고체 상태(solid state) RAM, 고체 상태 ROM 등이 있지만 이에 제한되는 것은 아니다. 하드 디스크 드라이브(141)는 통상적으로 인터페이스(140)와 같은 착탈 불가능 메모리 인터페이스를 통해 시스템 버스(121)에 접속되고, 자기 디스크 드라이브(151) 및 광 디스크 드라이브(155)는 통상적으로 인터페이스(150)와 같은 착탈 가능 메모리 인터페이스에 의해 시스템 버스(121)에 접속된다.
위에서 설명되고 도 1에 도시된 드라이브들 및 이들과 관련된 컴퓨터 저장 매체에는, 컴퓨터(110)에 대한 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 기타 데이터가 저장된다. 도 1에서, 예를 들어, 하드 디스크 드라이브(141)는 운영 체제(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146), 및 프로그램 데이터(147)를 저장하는 것으로 도시되어 있다. 여기서 주의할 점은 이들 컴포넌트가 운영 체제(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136), 및 프로그램 데이터(137)와 동일하거나 그와 다를 수 있다는 것이다. 이와 관련해, 운영 체제(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146) 및 프로그램 데이터(147)에 다른 번호가 부여되어 있다는 것은 적어도 이들이 다른 사본(copy)이라는 것을 나타내기 위한 것이다. 사용자는 키보드(162) 및 일반적으로 마우스, 트랙볼(trackball) 또는 터치 패드로 지칭되는 포인팅 장치(161) 등의 입력 장치를 통해 명령 및 정보를 컴퓨터(110)에 입력할 수 있다. 다른 입력 장치(도시 생략)로는 마이크, 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 포함할 수 있다. 이들 및 기타 입력 장치는 종종 시스템 버스에 결합된 사용자 입력 인터페이스(160)를 통해 처리 장치(120)에 접속되지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus) 등의 다른 인터페이스 및 버스 구조에 의해 접속될 수도 있다. 모니터(191) 또는 다른 유형의 디스플레이 장치도 비디오 인터페이스(190) 등의 인터페이스를 통해 시스템 버스(121)에 접속될 수 있다. 모니터 외에, 컴퓨터는 스피커(197) 및 프린터(196) 등의 기타 주변 출력 장치를 포함할 수 있고, 이들은 주변장치 출력 인터페이스(195)를 통해 접속될 수 있다.
컴퓨터(110)는 원격 컴퓨터(180)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 사용하여 네트워크화된 환경에서 동작할 수 있다. 비록 도 1에는 메모리 저장 장치(181) 만이 도시되었지만, 원격 컴퓨터(180)는 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치 또는 기타 통상의 네트워크 노드일 수 있고, 통상적으로 컴퓨터(110)와 관련하여 상술된 구성요소들의 대부분 또는 그 전부를 포함한다. 도 1에 도시된 논리적 접속으로는 LAN(171) 및 WAN(173)이 있지만, 기타 네트워크를 포함할 수도 있다. 이러한 네트워킹 환경은 사무실, 전사적 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷, 및 인터넷에서 일반적인 것이다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 네트워크 인터페이스 또는 어댑터(170)를 통해 LAN(171)에 접속된다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 통상적으로 인터넷과 같은 WAN(173)을 통해 통신을 설정하기 위한 모뎀(172) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(172)은 사용자 입력 인터페이스(160) 또는 기타 적절한 메커니즘을 통해 시스템 버스(121)에 접속된다. 네트워크화된 환경에서, 컴퓨터(110) 또는 그의 일부와 관련하여 기술된 프로그램 모듈은 원격 메모리 저장 장치에 저장될 수 있다. 예로서, 도 1은 원격 애플리케이션 프로그램(185)이 메모리 장치(181)에 있는 것으로 도시하고 있지만 이에 제한되는 것은 아니다. 도시된 네트워크 접속은 예시적인 것이며 이 컴퓨터들 사이에 통신 링크를 설정하는 기타 수단이 사용될 수 있다는 것을 이해할 것이다.
도 2는 본 발명에 따른 역계층적 방식으로 데이터를 정의하는 방법의 흐름도를 도시하는 도면이다. 블록(210)에서, 본 방법은 역계층적 방식으로 데이터를 저장할 수 있다. 역계층적 방식으로 저장된 데이터를 시각화하는 일반적인 방법으로 한 개의 부모 데이터가 최상부에 위치하고 자식 데이터가 그 아래에 배치되는 것을 생각할 수 있다. 도 3은 이런 방법의 예일 수 있다. 자식 데이터는 부모 데이터의 특성을 상속하고 추가적인 특성을 가질 수 있으며 자식들 간에는 추가적인 특성이 동일하지 않을 수 있다. 게다가, 자식 데이터는 자식 데이터를 가져서, 부모 데이터를 "조부모 데이터(320, 도 3)"로 만들 수 있으며 모든 부모 데이터(310) 및 자식 데이터(315)가 조부모 데이터(305)의 특성을 가질 수 있도록 할 수 있다. 혼돈스러울 수 있으나, 만일 부모 데이터가 그 자신의 부모 데이터를 가지면, 자식 데이터로 분류될 수 있다. 도 3의 예에서, 미국 특허청 회사(USPTO frims; 320)는 마샬, 게슈타인 & 보룬 법률회사(Marshall, Gerstein & Borun LLP; 322) 및 헌톤 & 윌리엄스사(Hunton & Williams; 324)에게는 부모 데이터일 수 있지만, 미국 법률회사(US law firm; 340)에게는 자식 데이터일 수 있다.
블록(220)에서, 본 방법은 데이터의 정의를 허용한다. 정의는 각각의 데이터에 추가되는 또 다른 요소일 수 있다. 예를 들어, 만일 저장될 데이터가 미국 특허청(USPTO; 320, 도 3)에 대하여 업무를 수행하는 회사에 관한 데이터라면, 제1 정의는 회사의 전화 번호(325)가 될 수 있고, 제2 정의는 회사의 고객 번호(330)가 될 수 있고, 제3 정의는 예컨대 파산법과 같은 그 회사가 정통한 기타 업무 분야(335)일 수 있다.
블록(230)에서, 본 방법은 이 정의를 원하는 자식 데이터에 적용할 수 있다. 예를 들어, 미국 특허청을 상대로 업무를 수행하는 회사를 살펴볼 때, 만일 정의가 그 회사가 정통한 기타 업무 분야라면, 많은 미국 특허청 특허 회사가 기타 업무 분야(350)를 가지고 있지 않는 반면에, 몇몇은 기타 업무 분야(355)를 가지고 있을 것이다. 따라서, 이 정의는 모든 회사에 적용되지는 않을 것이다. 또 다른 예로서, 만일 정의가 등록 특허 변호사에 대한 고객 번호라면, 미국 특허청을 상대로 업무를 수행하는 모든 회사는 등록 특허 변호사를 보유하고 있어야 한다.
블록(240)에서, 만일 정의가 자식 데이터(315, 도 3)에 적용되면, 그 정의는 그 부모 데이터(310)에 적용될 수 있다. 예를 들어, 만일 자식 데이터가 미국 특허청을 상대로 업무를 수행하는 회사(320)이고 부모 데이터는 미국 내의 모든 법률회사(340)이라면, 자식 데이터(미국 특허청을 상대로 업무를 수행하는 회사(320))는 전화 번호(325)를 가지고 있어야 한다. 게다가, 미국 내의 모든 법률회사(340)는 전화 번호(345)를 가져서 자식 데이터(320)의 전화 번호가 부모 데이터(미국 내의 모든 법률회사; 340)에도 적용될 수 있다.
블록(250)에서, 만일 정의가 부모 데이터에 적합하지 않다면, 그 정의는 그 부모 데이터에 적용되지 않을 수 있다. 예를 들어, 미국 특허청을 상대로 업무를 수행하는 회사의 자식 데이터가 미국 특허청 고객 번호(330, 도 3)라고 하자. 놀랄 만큼 많은 미국 법률회사의 수를 고려하면, 미국 내에서 미국 특허청을 상대로 업무를 수행하지 않는 회사의 수는 상당히 클 것이다. 따라서, 이 회사들은 미국 특허청 고객 번호(330)를 가지지 않을 수 있고, 자식(미국 특허청 회사; 320)의 고 객 번호 정의는 모든 부모(미국 내의 법률회사; 340)에 적용되지 않을 수도 있다.
블록(260)에서, 정의가 원하는 자식 데이터에 먼저 적용될 수 있다. 예를 들어, 미국 법률회사가 부모이고(340, 도 3), 미국 특허청 회사가 자식인(320, 도 3) 예시에서, 정의가 미국 특허청 회사(320)에 먼저 적용된다. 데이터 정의는 복수의 사전 정의된 데이터 정의로부터 선택될 수 있거나 또는 새로운 데이터 정의를 생성하는 것이 허용될 수 있다. 데이터 정의는 부모 데이터의 몇몇 자식 데이터에 적용되고 부모 데이터의 다른 자식 데이터에는 적용되지 않을 수 있다. 예를 들어, 만일 부모가 미국 법률회사(340)이고 자식이 미국 특허청 회사(320)였다면, 정의가 미국 특허청 생명공학 회사에 대한 것일 때, 모든 미국 특허청 회사(320)가 생명공학 회사는 아닐 것이다. 도 3의 예에서, 마샬, 게슈타인 & 보룬 법률회사(322)는 잘 알려진 생명공학 업무 분야를 보유하고 있는 반면에, 헌톤 & 윌리암스사(324)는 그렇지 않다. 따라서, 모든 미국 특허청 회사(320)가 부모 미국 법률회사(340)의 자식이더라도, 모든 자식(미국 특허청 회사; 320)이 생명공학 업무를 하는 것이 아니고 생명공학 정의를 가지지 않을 수 있으므로 이 정의가 모든 부모에 적용되지 않을 수도 있다.
블록(270)에서, 본 방법은 자식 데이터(315, 도 3)를 검색하는 것에 의해 검색을 시작함으로써 데이터를 검색할 수 있다. 전체 내용은 서로 다른 데이터 검색 방식에 대해 기술한다. 이 경우, 검색은 자식 데이터(315)에서 시작한다. 만일 복수 레벨의 데이터가, 즉, 증조부모 데이터, 조부모 데이터, 부모 데이터 및 자식 데이터가 존재한다면, 본 방법은 아마 자식 레벨 데이터(315)일 최저 레벨 데이터 에서 시작될 것이다.
블록(280)에서, 만일 자식 데이터(315)의 검색에서 합치가 나오면, 그 다음 합치하는 자식 데이터의 부모 데이터가 검색될 수 있다. 몇몇 부모는 자식과 동일한 정의를 가질 수 있으므로, 가능한 모든 합치가 발견되는 것을 보장하기 위해 부모가 검색될 것이다. 복수 레벨의 데이터가 있는 경우, 어떤 합치도 발견되지 않을 때까지, 검색은 하층부(자식 315)로부터 최상층부(305)까지 계층 구조를 따라 "올라가는" 것을 계속할 것이다. 예를 들어, 만일 자식 데이터(315)의 검색에서 합치가 나오지 않으면, 검색을 중단하고 결과 없음을 반환할 수 있으며, 만일 부모 데이터(310)의 검색에서 합치가 나오지 않으면, 검색을 중단하고 합치하는 자식 데이터(315)를 반환할 수 있다.
고객 관계 관리(customer relationship management: CRM) 파일이 복잡해지고 데이터 소유권에 관한 문제가 다수 존재할 수 있음에 따라, 본 방법은 CRM에 유효할 수 있다. 최저 레벨의 데이터를 검색함으로써, 데이터의 소유권은 정확한 레벨에 설정될 수 있다. 종래의 시스템에서는, 실제로 몇몇 자식 데이터가 타인의 소유일 때도 전체 트리는 특정인의 소유로 라벨이 붙여질 수 있었고, 타인 소유의 자식 데이터를 추가적으로 제외하는 것이 요구되었다. 일 예로서, "고객의 데이터"는 고객 레코드 및 그 고객 레코드의 모든 자식 레코드(예: 주문, 신용 카드 구매, 서비스 내역(service incidents))를 포함할 것이다. 그러나, 본래 구분되어 있다 하더라도, 추가적인 요구 사항 때문에 결과 데이터를 더 걸러내야만 할 수도 있다. 예를 들어, 만일 휴면 고객을 아카이브하면(archive), 이전 3개월 동안 활동이 없 었던 고객은 모든 자식 레코드와 함께 아카이브될 수 있다. 그러나, 소정의 회계 목적 때문에 신용 카드 구매 기록을 일 년 동안 유지하는 것이 요구될 수 있으므로, 아카이브되는 고객 데이터 세트는 고객 레코드 및 그것의, 일 년 이내의 신용 카드 구매 기록을 제외한, 모든 하부 객체(sub-object)로 정의될 수 있다. 추가적인 요구사항(예를 들어, 주문은 30일 동안 보관되어야 한다, 서비스 내역은 아카이브되면 안 된다, 사업 레코드를 아카이브할 때에는 이런 요구 사항들이 모두 충족되어야 한다, 등)이 추가됨(extrapolated)에 따라, 계층 구조 기반 데이터 세트를 하향식으로 정의하는 것이 복잡해지고, 반복적이고, 분산화되는 것을 볼 수 있다.
본 발명에 기술된 바와 같이 계층 구조를 정의하는 것에 대한 상향식 접근은 추가적인 기준을 재사용 가능하고 집중화된 방법으로 더 수월하게 정의하는 것을 가능하게 한다. 이 접근은 계층 구조 특징을 부모가 아닌 하부 객체의 정의 내의 조항으로 나타낸다. 상기의 예에서, 유지되는 신용 카드 구매는 1년 이내의 구매로 정의되거나, 아카이브된 사업 레코드의 자식이라면 90일 미만 경과 구매로 정의될 것이다. 관련 고객 레코드의 정의는 신용 카드 구매를 표시하지 않는다.
상향식 방법론에 추가로, 보다 정교한 검색에 몇몇 하향식 방법론 또한 추가될 수 있다. 때때로, 하향식 방법론은 모든 결과가 포착되는 것을 보장하는데 유용하다. 예를 들어, C는 "연락처(Contact)" 객체이고 B의 자식이며 A의 손자이다. 사용자는 연락처 객체에 대한 몇몇 선택 기준을 가질 수 있는데, "시애틀 내에 있는 연락처"라고 하자. 역계층 구조, 즉 상향식 접근은 "'다운로드된' 계정의 자식"과 같은 몇몇 추가적인 기준을 설정하는 것에 의해 사용자가 위계 구조 A 및 B ("계정(Account)" 객체들이라고 하자)를 참작하는 것을 허용한다. 선택 기준은 결국 "시애틀 내에 있는 연락처 또는 다운로드된 계정의 자식인 연락처"가 될 수 있다. 그 결과, 사용자는 계정의 기준을 연락처의 기준과 분리할 수 있고 계정 기준을 충족하며 계정의 자식인 임의의 연락처를 연락처 기준에 특정할 수 있다. 이 아이디어를 개념화하는 또 다른 방법은 계층 구조의 제1 레벨에 대한 한 세트의 기준 및 계층 구조의 제2 레벨에 대한 또 다른 세트의 기준을 가지는 것이다. 이전의 예에서는, 계정 기준은 계정 레벨에서 계정이 다운로드된 것이길 요구하고, 연락처 기준은 연락처 레벨에서 연락처가 시애틀 내에 있을 것을 요구한다.
또한, 계층 구조 내의 어떤 연결은 단지 그 계층 내의 연결이라는 것 때문에 무조건 기준에 일치하게 될 수 있다. 예를 들어, A는 "계정" 객체, B는 "연락처" 객체 그리고 C는 "판매 주문" 객체라고 한다. A는 계정에 대한 기준에 합치하지만, B는 연락처에 대한 기준에 합치하지 않는다고 하자. "판매 주문"에 대한 기준이 "'다운로드된' 계정의 자식일 것"이라는 조건을 포함한다고 하자. 그 기준에 기초하면, 판매 주문(C)은 합치할 것이다. B는 A와 C간의 연결이라는 주어진 조건에 따라, 결과적으로 B는 무조건 합치된다.
데이터는 데이터베이스에 저장될 수 있다. 본 방법은 사실상 임의의 데이터베이스 상에서 동작할 수 있기 때문에, 특정 데이터베이스 포맷, 브랜드 또는 제조사가 고려되지 않는다. XML 포맷이 본 방법에 적합할 수 있는 내장된 계층 구조를 포함하고 있기 때문에 데이터가 XML 포맷으로 저장될 때 본 방법이 적용 가능할 수 있다.
본 방법은 또한 이전에 설명한 바와 같이 유형의(tangible) 컴퓨터 판독가능 매체와 같은 컴퓨터 판독 가능 매체 상에 저장되는 컴퓨터 실행가능 명령어로서 저장될 수 있다. 그 외에도, 본 방법은 컴퓨터 시스템의 일부분일 수 있다. 도 1에 도시된 컴퓨터 시스템은 메모리, 프로세서, 입력 장치 및 출력 장치를 가질 수 있고, 프로세서는 본 방법을 실행하기 위한 컴퓨터 명령을 실행하도록 적용될 수 있다.
비록 이상의 내용이 다수의 서로 다른 실시예에 대한 상세한 설명을 상술하고 있지만, 본 발명의 법적 범위는 본 명세서의 끝에 기술되는 청구항의 문구에 의하여 정의됨을 이해하여야할 것이다. 가능한 실시예를 모두 기술하는 것은 불가능하지 않더라도 비현실적이기 때문에 실시예에 대한 기술은 단지 예시적인 것으로 해석되어야하고 가능한 실시예를 모두 기술한 것으로 해석되어서는 안 된다. 청구 범위의 범주를 벗어나지 않는 범위에서 현재 기술 또는 본 발명의 출원일 이후에 개발된 기술 중 하나를 이용하여 다수의 대안적인 실시예가 구현될 수 있다.
그러므로, 본 발명의 사상과 범주를 벗어나지 않으면서 여기서 기술되고 설명된 기법과 구조에 다수의 수정 및 변형이 가해질 수 있다. 따라서, 여기에 기술된 방법 및 장치는 단지 예시적인 것일 뿐이고, 본 발명의 특허 청구 범위를 제한하지 않는다.

Claims (20)

  1. 자식 데이터가 부모 데이터를 가지는 계층적 방식으로 데이터를 저장하는 단계;
    상기 데이터의 정의를 허용하는 단계;
    상기 정의를 상기 원하는 자식 데이터에 적용하는 단계;
    만일 상기 정의가 상기 부모 데이터에 적합하면, 상기 정의를 상기 부모 데이터에 적용하는 단계; 및
    만일 상기 정의가 상기 부모 데이터에 적합하지 않으면, 상기 정의를 상기 부모 데이터에 적용하지 않는 단계
    를 포함하는, 데이터를 역계층적으로 정의하는 방법.
  2. 제1항에 있어서,
    상기 정의를 상기 원하는 자식 데이터에 맨 처음 적용하는 단계를 더 포함하는, 데이터를 역계층적으로 정의하는 방법.
  3. 제1항에 있어서,
    사전 정의된 복수의 데이터 정의로부터 상기 데이터 정의를 선택하는 단계를 더 포함하는, 데이터를 역계층적으로 정의하는 방법.
  4. 제1항에 있어서,
    새로운 데이터 정의의 생성을 허용하는 단계를 더 포함하는, 데이터를 역계층적으로 정의하는 방법.
  5. 제1항에 있어서,
    상기 부모 데이터의 몇몇 자식 데이터에 상기 정의가 적용되는 것을 허용하고 상기 부모 데이터의 다른 자식 데이터에는 상기 정의를 적용하지 않는 단계를 더 포함하는, 데이터를 역계층적으로 정의하는 방법.
  6. 제1항에 있어서,
    상기 자식 데이터를 검색하는 것에 의해 검색을 시작함으로써 상기 데이터를 검색하는 단계를 더 포함하는, 데이터를 역계층적으로 정의하는 방법.
  7. 제6항에 있어서,
    만일 상기 자식 데이터의 검색에서 합치가 나오면, 상기 합치하는 자식 데이터의 상기 부모 데이터를 검색하는 단계를 더 포함하는, 데이터를 역계층적으로 정의하는 방법.
  8. 제6항에 있어서,
    만일 상기 자식 데이터의 검색에서 합치가 나오지 않으면, 상기 검색을 중단 하는 단계를 더 포함하는, 데이터를 역계층적으로 정의하는 방법.
  9. 제8항에 있어서,
    상기 검색의 결과로서, 결과 없음을 반환하는 단계를 더 포함하는, 데이터를 역계층적으로 정의하는 방법.
  10. 제6항에 있어서,
    만일 상기 부모 데이터의 검색에서 합치가 나오지 않으면, 상기 검색을 중단하는 단계를 더 포함하는, 데이터를 역계층적으로 정의하는 방법.
  11. 제10항에 있어서,
    상기 합치하는 자식 데이터를 반환하는 단계를 더 포함하는, 데이터를 역계층적으로 정의하는 방법.
  12. 제1항에 있어서,
    상기 데이터를 데이터베이스에 저장하는 단계를 더 포함하는, 데이터를 역계층적으로 정의하는 방법.
  13. 제1항에 있어서,
    상기 데이터를 XML 포맷으로 저장하는 단계를 더 포함하는, 데이터를 역계층 적으로 정의하는 방법.
  14. 제1항에 있어서,
    상기 데이터를 데이터베이스에 XML 포맷으로 저장하는 단계를 더 포함하는, 데이터를 역계층적으로 정의하는 방법.
  15. 제1항에 있어서,
    상기 저장된 데이터는 고객 관계 관리 데이터인, 데이터를 역계층적으로 정의하는 방법.
  16. 데이터를 역계층적 방식으로 정의하기 위한 컴퓨터 실행가능 명령어를 포함하는 유형의(tangible) 컴퓨터 판독가능 매체로서,
    자식 데이터가 부모 데이터를 가지는 계층적 방식으로 데이터를 저장하는 단계;
    상기 데이터의 정의를 허용하는 단계;
    상기 원하는 자식 데이터에 상기 정의를 적용하는 단계;
    만일 상기 정의가 상기 부모 데이터에 적합하면, 상기 정의를 상기 부모 데이터에 적용하는 단계;
    만일 상기 정의가 상기 부모 데이터에 적합하지 않으면, 상기 정의를 상기 부모 데이터에 적용하지 않는 단계; 및
    상기 부모 데이터의 몇몇 자식 데이터에 상기 정의가 적용되는 것을 허용하고 상기 부모 데이터의 다른 자식 데이터에는 상기 정의를 적용하지 않는 단계
    를 수행하기 위한 컴퓨터 실행가능 명령어를 포함하는 유형의 컴퓨터 판독가능 매체.
  17. 제16항에 있어서,
    상기 자식 데이터를 검색하는 것에 의해 검색을 시작함으로써 상기 데이터를 검색하는 단계;
    만일 상기 자식 데이터의 검색에서 합치가 나오면, 상기 합치하는 자식 데이터의 상기 부모 데이터를 검색하는 단계;
    만일 상기 자식 데이터의 검색에서 합치가 나오지 않으면, 상기 검색을 중단하는 단계; 및
    만일 상기 부모 데이터의 검색에서 합치가 나오지 않으면, 상기 검색을 중단하는 단계
    를 수행하기 위한 명령어를 포함하는 컴퓨터 실행가능 명령어를 더 포함하는 유형의 컴퓨터 판독가능 매체.
  18. 제16항에 있어서,
    고객 관계 데이터를 상기 데이터로서 저장하는 단계;
    상기 고객 관계 데이터를 데이터베이스에 저장하는 단계; 및
    상기 데이터를 XML 포맷으로 저장하는 단계
    를 수행하기 위한 명령어를 포함하는 컴퓨터 실행가능 명령어를 더 포함하는 유형의 컴퓨터 판독가능 매체.
  19. 메모리, 프로세서, 입력 장치 및 출력 장치를 포함하는 컴퓨터 시스템으로서,
    상기 프로세서는 데이터를 역계층적 방식으로 정의하기 위한 컴퓨터 명령어를 수행하도록 구성되었고,
    상기 컴퓨터 실행 가능 명령어는,
    자식 데이터가 부모 데이터를 가지는 계층적 방식으로 데이터를 저장하는 단계;
    상기 데이터의 정의를 허용하는 단계;
    상기 정의를 상기 원하는 자식 데이터에 적용하는 단계;
    만일 상기 정의가 상기 부모 데이터에 적합하면, 상기 정의를 상기 부모 데이터에 적용하는 단계;
    만일 상기 정의가 상기 부모 데이터에 적합하지 않으면, 상기 정의를 상기 부모 데이터에 적용하지 않는 단계;
    제1 부모 데이터의 몇몇 자식 데이터에 상기 정의가 적용되는 것을 허용하고 상기 제1 부모 데이터의 다른 자식 데이터에는 상기 정의를 적용하지 않는 단계;
    상기 자식 데이터를 검색하는 것에 의해 검색을 시작함으로써 상기 데이터를 검색하는 단계;
    만일 상기 자식 데이터의 검색에서 합치가 나오면, 상기 합치하는 자식 데이터의 상기 부모 데이터를 검색하는 단계;
    만일 상기 자식 데이터의 검색에서 합치가 나오지 않으면, 상기 검색을 중단하는 단계; 및
    만일 상기 부모 데이터의 검색에서 합치가 나오지 않으면, 상기 검색을 중단하는 단계
    를 수행하기 위한 명령어를 포함하는 컴퓨터 시스템.
  20. 제19항에 있어서,
    고객 관계 데이터를 상기 데이터로서 저장하는 단계;
    상기 고객 관계 데이터를 데이터베이스에 저장하는 단계; 및
    상기 데이터를 XML 포맷으로 저장하는 단계
    를 수행하기 위한 명령어를 더 포함하는 컴퓨터 시스템.
KR1020087008762A 2005-10-12 2006-10-10 데이터로의 역계층적 접근 KR20080057273A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/248,348 2005-10-12
US11/248,348 US20070118495A1 (en) 2005-10-12 2005-10-12 Inverse hierarchical approach to data

Publications (1)

Publication Number Publication Date
KR20080057273A true KR20080057273A (ko) 2008-06-24

Family

ID=37962826

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087008762A KR20080057273A (ko) 2005-10-12 2006-10-10 데이터로의 역계층적 접근

Country Status (4)

Country Link
US (1) US20070118495A1 (ko)
KR (1) KR20080057273A (ko)
CN (1) CN101283358A (ko)
WO (1) WO2007047422A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090178143A1 (en) * 2008-01-07 2009-07-09 Diginome, Inc. Method and System for Embedding Information in Computer Data

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5412804A (en) * 1992-04-30 1995-05-02 Oracle Corporation Extending the semantics of the outer join operator for un-nesting queries to a data base
US5619692A (en) * 1995-02-17 1997-04-08 International Business Machines Corporation Semantic optimization of query order requirements using order detection by normalization in a query compiler system
US5694591A (en) * 1995-05-02 1997-12-02 Hewlett Packard Company Reducing query response time using tree balancing
US5903892A (en) * 1996-05-24 1999-05-11 Magnifi, Inc. Indexing of media content on a network
US6609120B1 (en) * 1998-03-05 2003-08-19 American Management Systems, Inc. Decision management system which automatically searches for strategy components in a strategy
US6138117A (en) * 1998-04-29 2000-10-24 International Business Machines Corporation Method and system for mining long patterns from databases
US6263345B1 (en) * 1998-09-28 2001-07-17 Compaq Computers, Corporation Histogram synthesis modeler for a database query optimizer
IL127889A0 (en) * 1998-12-31 1999-10-28 Almondnet Ltd A method for transacting an advertisement transfer
US6662184B1 (en) * 1999-09-23 2003-12-09 International Business Machines Corporation Lock-free wild card search data structure and method
US6516337B1 (en) * 1999-10-14 2003-02-04 Arcessa, Inc. Sending to a central indexing site meta data or signatures from objects on a computer network
KR100345277B1 (ko) * 1999-11-02 2002-07-19 (주)한국지식웨어 Xml 문서의 논리적인 구조정보 추출기
KR20000023961A (ko) * 1999-12-22 2000-05-06 김정태 정보 모델링방법 및 데이터베이스 검색시스템
US6941510B1 (en) * 2000-06-06 2005-09-06 Groove Networks, Inc. Method and apparatus for efficient management of XML documents
US20030167197A1 (en) * 2000-06-30 2003-09-04 Walker Information Customer relationship measurement and management system and method
US6836890B1 (en) * 2000-11-01 2004-12-28 Seebeyond Techonogy Corporation Methods and systems for message translation and parsing of data structures in a distributed component architecture
US20020129342A1 (en) * 2001-03-07 2002-09-12 David Kil Data mining apparatus and method with user interface based ground-truth tool and user algorithms
US6665663B2 (en) * 2001-03-15 2003-12-16 International Business Machines Corporation Outerjoin and antijoin reordering using extended eligibility lists
US20030212654A1 (en) * 2002-01-25 2003-11-13 Harper Jonathan E. Data integration system and method for presenting 360° customer views
US7203701B1 (en) * 2002-02-20 2007-04-10 Trilogy Development Group, Inc. System and method for an interface to provide visualization and navigation of a directed graph
US7590618B2 (en) * 2002-03-25 2009-09-15 Hewlett-Packard Development Company, L.P. System and method for providing location profile data for network nodes
US7721202B2 (en) * 2002-08-16 2010-05-18 Open Invention Network, Llc XML streaming transformer
AU2002953384A0 (en) * 2002-12-16 2003-01-09 Canon Kabushiki Kaisha Method and apparatus for image metadata entry
US7873645B2 (en) * 2003-09-05 2011-01-18 Oracle International Corporation Method and mechanism for handling arbitrarily-sized XML in SQL operator tree
US7350198B2 (en) * 2003-09-09 2008-03-25 Sap Aktiengesellschaft Creating and checking runtime data types
US7496571B2 (en) * 2004-09-30 2009-02-24 Alcatel-Lucent Usa Inc. Method for performing information-preserving DTD schema embeddings

Also Published As

Publication number Publication date
CN101283358A (zh) 2008-10-08
WO2007047422A1 (en) 2007-04-26
US20070118495A1 (en) 2007-05-24

Similar Documents

Publication Publication Date Title
US11157855B2 (en) Robotics process automation platform
Bouman et al. Pentaho solutions
US20130117232A1 (en) Snapshots of database models
Johns Information management for health professions
US7984115B2 (en) Extensible application platform
US8260813B2 (en) Flexible data archival using a model-driven approach
JP2009540461A (ja) 宣言型管理フレームワーク(declarativemanagementframework)
WO2012079230A1 (en) Intelligent code differencing using code clone detection
US8407235B2 (en) Exposing and using metadata and meta-metadata
Ellison et al. Evaluating cloud database migration options using workload models
CN101416143A (zh) 基于许可的用户界面变形
Connell et al. Object-oriented rapid prototyping
US20160062764A1 (en) Software component configuration identification
US10936637B2 (en) Associating insights with data
US20150081744A1 (en) Metadata model repository
Deepa et al. An analysis on version control systems
CN111190905A (zh) 数据库表格处理方法、装置及电子设备
US8370830B2 (en) Data only solution package
US20210406788A1 (en) Automatic risk assessment
Weisinger Alfresco 3 records management
KR20080057273A (ko) 데이터로의 역계층적 접근
CN104285221A (zh) 对跨各内容源的内容的高效原地保留
Haselden et al. Microsoft SQL server 2005 integration services
CN111273956B (zh) 一种程序模块加载方法、装置、设备及存储介质
Walters et al. Beginning SQL Server 2012 Administration

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid