KR100961813B1 - 포커스 데이터에 근거한 동적 인증 - Google Patents

포커스 데이터에 근거한 동적 인증 Download PDF

Info

Publication number
KR100961813B1
KR100961813B1 KR1020070000221A KR20070000221A KR100961813B1 KR 100961813 B1 KR100961813 B1 KR 100961813B1 KR 1020070000221 A KR1020070000221 A KR 1020070000221A KR 20070000221 A KR20070000221 A KR 20070000221A KR 100961813 B1 KR100961813 B1 KR 100961813B1
Authority
KR
South Korea
Prior art keywords
query
database
focus
authentication
data
Prior art date
Application number
KR1020070000221A
Other languages
English (en)
Other versions
KR20070073611A (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 KR20070073611A publication Critical patent/KR20070073611A/ko
Application granted granted Critical
Publication of KR100961813B1 publication Critical patent/KR100961813B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation

Landscapes

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

Abstract

본 발명의 실시예는 데이터베이스 쿼리의 포커스에 기초하여, 데이터베이스 쿼리를 실행할 때 적용할 인증 필터를 선택하기 위한 기구를 제공한다. 소정의 쿼리에 특정된 포커스에 기초하여, 여러 조건들이 데이터베이스 쿼리 처리 동안 데이터베이스 쿼리에 부가된다. 이렇게 행하면 데이터 액세스 요청을 관리하는 데에 있어 유연한 방법을 제공하게 되며, 이 때 쿼리는 많은 다른 관점으로부터 동일한 기초 데이터에 포커스를 둘 수 있다.
Figure R1020070000221
쿼리 포커스, 데이터베이스, 포커스 개체, 인증 필터, 인증 유형, 논리 필드, 모델 개체

Description

포커스 데이터에 근거한 동적 인증{DYNAMIC AUTHORIZATION BASED ON FOCUS DATA}
도 1은 본 발명의 일 실시예에 따른 예시의 컴퓨팅 및 데이터 통신 환경을 설명하는 도면이다.
도 2a는 본 발명의 일 실시예에 따른 기초 물리적 데이터베이스에 대해 구성된 데이터베이스 추상화 모델의 논리도를 나타낸다.
도 2b-2c는 본 발명의 일 실시예에 따른 예시의 추상 쿼리 및 데이터베이스 추상화 모델을 나타낸다.
도 3은 본 발명의 일 실시예에 따라 추상 쿼리로부터 실행 가능한 쿼리를 형성하기 위한 런타임 방법을 나타낸다.
도 4는 본 발명의 일 실시예에 따른 도 3에 나타낸 방법을 이용하여 추상 쿼리로부터 형성된 구체적 쿼리에 하나 이상의 액세스 조건을 부가하기 위한 방법을 설명한다.
<도면의 주요 부분에 대한 간단한 설명>
104 : 네트워크
105 : 클라이언트 시스템
110 : 서버 시스템
112 : 어플리케이션 서버
115 : 인터페이스
114 : 런타임 컴포넌트
118 : 웹 서버
120 : 클라이언트 어플리케이션
122 : 웹 브라우저
148 : 데이터베이스 추상화 모델
201 : 모델 개체
202 : 추상 쿼리
203 : 선택 기준
208 : 논리 필드
본 발명은 일반적으로 컴퓨터 데이터베이스에 관한 것으로, 더욱 특히 데이터베이스 쿼리의 포커스에 기초한 쿼리 결과를 필터링하는 데에 이용되는 데이터 액세스 인증에 관한 것이다.
컴퓨터 데이터베이스는 데이터를 저장, 보유 및 검색하는 데에 이용되는 잘 알려진 시스템이다. 일반적으로, 데이터베이스는 그 컨텐츠가 용이하게 액세스, 관리 및 갱신될 수 있게 구축된 데이터의 집합이다. 오늘날 이용되는 가장 널리 이용되는 유형의 데이터베이스는 테이블들 및 테이블들 간의 관계를 이용하여 데이터를 구축하는 관계형 데이터베이스이다. 예를 들어, 인터내셔널 비지니스 머신즈 인코포레이티드(IBM)사의 RDBMS (관계형 데이터베이스 관리 시스템)의 DB2® 패밀리는 상업적 구현된 정교한 관계형 데이터베이스를 제공한다.
관계형 데이터베이스에서의 테이블은 하나 이상의 컬럼을 포함한다. 각 컬럼은 통상 이름과 데이터 유형 (예를 들어, 정수, 부동소수점, 스트링 등)을 특정하며, 데이터의 공통 요소를 저장하는 데에 이용된다. 예를 들어, 환자와 관련되는 데이터를 저장하는 테이블에서, 각 환자는 "환자 ID" 컬럼에 저장된 환자 식별 번호를 이용하여 참조될 수 있다. 이 테이블의 각 로우의 데이터는 동일한 환자에 관련된 것으로, 일반적으로 "레코드"라 한다. 적어도 하나의 요소를 공통으로 공유하는 테이블 (예를 들어, 환자 ID 컬럼)은 "관련"되었다고 말할 수 있다. 부가하여, 공통의 데이터 요소가 없는 테이블은 이런 요소를 공유하는 다른 테이블을 통해 관련되는 것이다.
관계형 데이터베이스 쿼리는 어느 컬럼의 데이터를 검색할지, 다수의 테이블에서 컬럼을 어떻게 결합할지 또한 쿼리 결과 세트에 포함되는 특정 데이터 레코드에 대해 만족되어야 하는 조건을 특정할 수 있다. 현재 관계형 데이터베이스는 통상 쿼리 언어에 의해 특정되는 포맷으로 조성되는 쿼리를 처리한다. 예를 들어, 폭넓게 이용되는 쿼리 언어 SQL (Structured Query Language)가 오늘날 이용 가능한 실제 모든 데이터베이스에 의해 지원된다. SQL 쿼리는 특정 키워드를 이용하는 하나 이상의 절(clause) 세트의 이용을 필요로 하는 신택스를 이용하여 조성된다. 적당한 SQL 쿼리를 조성하는 것은 사용자가 관계형 데이터베이스의 구조와 컨텐트 (즉, 테이블과 컬럼의 스키마) 뿐만 아니라 SQL 쿼리 언어의 복합 신택스를 이해할 필요가 있다. 이 복합성은 보통의 사용자가 관계형 데이터베이스 쿼리를 조성하는 것을 어렵게 만든다.
따라서, 쿼리 어플리케이션은 데이터베이스 쿼리를 조성하는 프로세스를 간략하게 하도록 개발되었다. 예를 들어, 데이터를 저정하는 데이터베이스에 의해 이용되는 특정 방법의 데이터 표현과는 독립적으로 쿼리되고 있는 데이터의 실질적인 컨텐트를 반영하는 논리 필드를 이용하여 추상 또는 논리적 쿼리를 사용자가 구성할 수 있도록 하는 데이터베이스 추상화 기술이 이용 가능하다. 이러한 어플리케이션을 이용하여, 사용자는 쿼리를 조성하여 이를 데이터베이스 관리 시스템 (DBMS)에 제출한다. 응답시, DBMS는 기초 DBMS (예를 들어, SQL 쿼리)에 의해 실행될 수 있는 실질적 또는 물리적 쿼리를 형성할 수 있다. 따라서, 데이터베이스 추상화 기술은 사용자가 쿼리 언어와 데이터베이스 스키마의 복잡성을 이해할 필요를 없애 준다. 통상적으로, 쿼리 결과는 쿼리에 의해 특정된 조건을 만족하는 로우를 갖는 테이블을 포함한다.
질의될 수 있는 전자 형태로 저장되고 관리되는 데이터의 양이 계속 증가 추세므로, 임의의 사용자가 데이터베이스로부터 어떤 데이터를 액세스할 수 있는지가 최대 관심 영역이다. 데이터베이스에의 액세스를 관리하는 하나의 방법은 하나 이상의 인증 루틴을 데이터베이스 쿼리에 포함될 수 있는 특정 필드와 관련시키는 것이다. 이런 인증 루틴은 쿼리 어플리케이션에 의해 형성된 관계형 쿼리에 절을 추가할 수도 있다. DBMS가 쿼리를 실행할 때, 부가되는 절은 데이터베이스로부터 리턴되는 데이터를 제한하거나 수정할 수 있다. 그러나, 보통 이들 인증 루틴은 하나의 인증 루틴이 보통 소정의 필드와 항상 관련된다는 점에서 정적이다. 따라서, 쿼리의 목적이나 쿼리를 실행하길 원하는 개인과는 상관 없이, 동일한 인증 루틴이 루틴을 포함하는 쿼리에 대해 이용되게 된다.
이 작업이 의도되는 동안, 부당하게 제한적인 경우가 있는 것이 증명되었다. 예를 들어, 동일한 필드가 많은 다른 쿼리에 포함될 수 있지만, 쿼리의 포커스는 서로 다를 수 있다. 따라서, 어떤 경우 소정의 필드에 대한 인증 루틴은 적당한 쿼리 결과로부터의 데이터를 배제할 수 있거나, 최악의 경우에는 쿼리의 포커스에 기초하여 부적당한 쿼리 결과에 데이터를 포함시킬 수도 있다. 따라서, 소정의 데이터베이스 쿼리의 포커스에 따라, 소정의 인증 루틴에 의해 부과되는 제한은 데이터베이스 데이터에 대한 액세스를 제한하고자 동작할 수도 동작하지 않을 수도 있다.
따라서, 쿼리 포커스 데이터에 기초하여 데이터베이스 쿼리 인증 루틴을 유연하며 효율적인 방법으로 관련시키기 위한 필요성이 대두되고 있다.
본 발명의 실시예는 데이터베이스 쿼리의 포커스에 기초하여, 데이터베이스 쿼리를 실행할 때 적용할 인증 루틴을 선택하기 위한 메커니즘을 제공한다. 본 발명의 하나의 실시예는 특정 스키마에 따라 구축되는 데이터베이스의 데이터에 대한 액세스를 관리하기 위한 방법을 포함한다. 본 발명은 쿼리에 대한 포커스를 특정 하는 포커스 개체의 참조를 포함하는 데이터베이스 쿼리를 수신하는 단계를 포함하고, 이 포커스 개체는 복수의 미리 정해진 포커스 개체 중에서 선택되고, 각 포커스 객체는 데이터베이스의 데이터 간의 복수의 데이터 관계에 의해 정의된다. 이 방법은 일반적으로, 참조된 포커스 개체에 기초하여 데이터베이스 쿼리에 적용할 인증 필터를 선택하는 단계 - 이 인증 필터는 여러 포커스 개체에 각각 대응하는 복수의 인증 필터 중에서 선택됨 -, 선택된 인증 필터를 데이터베이스 쿼리에 부가된 하나 이상의 조건을 식별하도록 적용하는 단계, 및 하나 이상의 조건을 포함하도록 데이터베이스 쿼리를 수정하는 단계를 더욱 포함한다.
본 발명의 다른 실시예는 컴퓨터 시스템에서 실행될 때 데이터베이스 쿼리의 포커스에 기초하여 데이터베이스의 데이터에 대한 액세스를 관리하기 위한 동작을 실행하는 프로그램을 포함하는 컴퓨터 기록 가능 매체를 제공한다. 이 동작은 일반적으로, 쿼리에 대한 포커스를 특정하는 포커스 개체에 대한 참조를 포함하는 데이터베이스 쿼리를 수신하는 단계를 포함하고, 이 포커스 개체는 복수의 미리 정해진 포커스 개체 중에서 선택되고, 각 포커스 개체는 데이터베이스 내의 데이터 사이의 복수의 데이터 관계로 정의된다. 이 동작은 일반적으로, 참조된 포커스 개체에 기초하여 데이터베이스 쿼리에 적용할 인증 필터를 선택하는 단계 - 인증 필터는 여러 포커스 개체에 각각 대응하는 복수의 인증 필터 중에서 선택됨 -, 선택된 인증 필터를 데이터베이스 쿼리에 부가된 하나 이상의 조건을 식별하도록 적용하는 단계, 및 하나 이상의 조건을 포함하도록 데이터베이스 쿼리를 수정하는 단계를 더욱 포함한다.
본 발명의 다른 실시예는 프로세서 및 이 프로세서에 의해 실행될 때, 데이터베이스 쿼리의 포커스에 기초하여 데이터베이스 내의 데이터에 대한 액세스를 관리하기 위한 동작을 프로세스가 실행하도록 하는 명령어를 포함하는 어플리케이션을 저장하도록 구성된 프로세스와 메모리를 포함하는 컴퓨팅 디바이스를 제공한다. 이 동작은 일반적으로, 쿼리에 대한 포커스를 특정하는 포커스 개체에 대한 참조를 포함하는 데이터베이스 쿼리를 수신하는 단계를 포함하고, 이 포커스 개체는 복수의 미리 정해진 포커스 개체 중에서 선택되고, 각 포커스 개체는 데이터베이스 내의 데이터 사이의 복수의 데이터 관계로 정의된다. 이 동작은 일반적으로, 참조된 포커스 개체에 기초하여 데이터베이스 쿼리에 적용할 인증 필터를 선택하는 단계 - 인증 필터는 여러 포커스 개체에 각각 대응하는 복수의 인증 필터 중에서 선택됨 -, 선택된 인증 필터를 데이터베이스 쿼리에 부가된 하나 이상의 조건을 식별하도록 적용하는 단계, 및 하나 이상의 조건을 포함하도록 데이터베이스 쿼리를 수정하는 단계를 더욱 포함한다.
상기 언급된 본 발명의 특성들이 이해될 수 있는 방식으로, 상기 간단하게 요약된 더욱 특정된 본 발명의 설명이 첨부한 도면에서 설명된 예시의 실시예를 참조하여 기재된다. 그러나, 첨부한 도면은 본 발명의 일반적인 실시예만을 도시한 것이므로, 본 발명에 대한 영역을 다른 동일한 효력의 실시예에 제한하는 것은 아니다.
본 발명의 실시예는 데이터베이스 쿼리의 포커스에 기초하여 데이터베이스 쿼리를 처리할 때 적용할 인증 루틴을 선택하기 위한 메커니즘을 제공한다. 일반적으로, 쿼리의 포커스는 쿼리되고 있는 데이터에 관한 사용자의 관점을 말한다. 예를 들어, 의사는 특정 환자를 식별하기 위해 데이터를 쿼리하길 원할 수 있지만, 연구원은 특정 환자와는 상관 없이, 관심 있는 일반적이지 않은 패턴의 의학 테스트 결과를 식별하기 위해 쿼리를 조성하길 원할 수 있다. 따라서, 의사에 의해 구성된 쿼리의 포커스는 "환자"이고, 연구원에 의해 구성되는 쿼리의 포커스는 "의학 테스트"나 "리서치"이다. 그러나, 동시에 의사와 연구원 둘 다로부터의 쿼리의 기초 데이터는 동일할 수 있다. 일 실시예에서, 여러 인증 루틴이 이들 사용자에 의해 액세스되는 데이터를 관리하기 위해 의사와 연구원의 쿼리에 적용될 수 있다.
예를 들어, 의사가 고 당도를 갖는 미네소타의 환자를 식별하기 위한 쿼리를 조성하면, 쿼리의 포커스는 혈액 테스트 결과와 환자 위치에 있게 된다. 따라서, 쿼리 포커스는 쿼리가 이 조건을 만족하는 데이터베이스에 나타나는 환자의 표시를 보내야하기 때문에 환자에 있게 된다. 이 쿼리에 대해, 인증 루틴은 개인적 식별 데이터의 발표에 대해 동의한 환자만이 이 결과 세트에 포함되는 것을 확실히 하는 조건을 추가할 수 있다. 그러나, 연구원이 또한 저 혈압을 갖는 고 당도의 환자를 식별하기 위해 쿼리를 조성하면, 쿼리의 포커스는 "의학 테스트"나 "리서치"에 있게 된다. 이 쿼리에 대해, 인증 루틴은 테스트 결과를 품질 조절 기준에 만족하는 것으로 제한한 것과 같은 다른 조건을 포함할 수 있어, 유효 데이터만이 쿼리에 응답하여 제공되는 것을 확실히 한다.
일 실시예에서, 데이터 추상화 모델은 사용자가 데이터베이스 쿼리를 조성하 도록 쿼리 어플리케이션을 제공하는 데에 이용된다. 이하 더욱 상세히 기술되는 바와 같이, 데이터 추상화 모델은 데이터베이스에 의해 이용되는 데이터 표현의 특정 방식 (예를 들어, 관계 스키마)과는 상관 없이, 특정 데이터베이스의 실질적인 컨텐트에 포커스를 둔 쿼리 구축 인터페이스를 제공한다. 부가하여, 데이터 추상화 모델은 여기에서 "모델 개체"로 언급되는 하나 이상의 쿼리 객체를 제공한다. 사용자는 모델 개체를 선택하여 쿼리에 대한 포커스를 식별한다. 쿼리에 대해 특정된 모델 개체에 기초하여, 여러 인증 루틴을 불러와 쿼리에 응답하여 어느 데이터가 액세스되는지를 관리할 수 있다.
데이터 추상화 모델은 직관적으로 사용자에게 데이터를 노출하는 데에 이용되며, 사용자는 기초 저장소 기구에 대한 상세한 이해 없이도 쿼리를 조성 및 제출할 수 있다. 동시에 데이터 액세스 관리가 데이터 추상화 모델에 의해 제공된 여러 다른 모델 개체의 객체에 대해 제공된 인증 루틴에 의해 제공될 수 있다. 본 발명의 실시예가 데이터 추상화 모델의 하나의 가능한 실시예에 관련하여 설명되었지만, 본 발명은 이에만 제한되지 않고, 본 발명은 데이터 추상화 모델에 의존하지 않는 데이터베이스 쿼리 어플리케이션에 적합하다.
더욱, 이하의 설명에서는 본 발명의 실시예가 참조된다. 그러나, 본 발명은 특정하게 기재된 실시예에 제한되는 것이 아니고, 기재된 실시예에 관련되는지에 상관 없이, 다음의 특성 및 요소의 조합이 본 발명을 구현 및 실행한다. 더욱, 여러 실시예에서 본 발명은 종래의 기술 보다 수많은 장점을 제공한다. 본 발명의 실시예가 다른 가능한 해결책과 종래 기술 보다 장점을 제공하지만, 특정한 장점이 소정의 실시예에 의해 성취되는지의 여부가 본 발명의 영역을 제한하지 않는다. 따라서, 다음의 형태, 특성, 실시예 및 장점은 본 발명을 설명하는 것이며 청구범위에서 한정된 것을 제외하고는 청구범위의 요소나 한정 사항으로 생각되지 않는다. 유사하게, "본 발명"의 참조는 여기에 기재된 본 발명의 요지의 일반화로 생각되어서는 안되고 청구범위에서 한정된 것을 제외하고는 청구범위의 요소나 한정 사항으로 생각되어서도 안된다.
본 발명의 일 실시예는 예를 들어, 도 1에서 나타내며 후술되는 컴퓨터 시스템(100) 등의 컴퓨터 시스템에 사용할 프로그램 제품으로 구현된다. 프로그램 제품은 여기에 기재된 실시예 (방법을 포함)의 기능을 정의하며 각종 신호 저장 매체에 포함될 수 있다. 설명적인 신호 저장 매체는 (i) 기록 불가능한 저장 매체 (예를 들어, CD-ROM 드라이브에 의해 판독 가능한 CD-ROM 디스크와 같은 컴퓨터 내의 판독 전용 메모리 디바이스)에 영구 저장되는 정보; (ii) 기록 가능한 저장 매체 (예를 들어, 디스켓 드라이브 또는 하드 디스크 드라이브 내의 플로피 디스크) 상에 저장된 변경 가능한 정보; 및 (iii) 무선 통신을 포함하는 통신 매체 (예를 들어, 컴퓨터나 전화망)를 통해 이송되는 정보를 제한 없이 포함한다. 후자의 실시예는 인터넷이나 그 외 컴퓨터 네트워크를 통해 공유되는 정보를 포함한다. 이런 신호 저장 매체는 본 발명의 방법을 실행하는 컴퓨터 판독 가능 명령어를 실행할 때, 본 발명의 실시예를 나타낸다.
일반적으로, 본 발명의 실시예를 구현하는 소프트웨어 루틴은 운영 시스템의 일부나 특정 어플리케이션, 컴포넌트, 프로그램, 모듈, 객체, 또는 실행 가능 스크립트 등의 명령의 시퀀스의 일부일 수 있다. 이런 소프트웨어 루틴은 통상 컴퓨터 시스템을 이용하여 실행될 수 있는 복수의 명령어를 포함한다. 또한, 프로그램은 메모리 또는 저장 디바이스에 존재하는 변수와 데이터 구조물을 이들의 동작의 일부로 포함한다. 부가하여, 여기 기재된 여러 프로그램은 이들이 구현되는 어플리케이션에 기초하여 식별될 수 있다. 그러나, 당업자라면 이어지는 특정 명명이나 특정 어플리케이션이 본 발명의 설명을 용이하게 하며 특정한 어플리케이션이나 명명으로만 이용하게 본 발명을 제한하고자 하는 것이 아님이 이해될 것이다. 더욱, 여기 개시된 프로그램의 기능은 서로 상호 작용하는 개별의 모듈이나 컴포넌트를 이용한다. 그러나, 당업자라면 여러 다른 실시예들이 각종 방법으로 이런 컴포넌트와 모듈을 조합하거나 합병할 수 있다는 것이 이해될 것이다.
더욱, 여기 기재된 예는 의학 연구 환경을 참조한다. 이들 예는 한 유형의 데이터 환경에 적용되는 바와 같이, 본 발명의 실시예를 설명하기 위한 것이다. 그러나, 본 발명의 기술은 예를 들어, 트랜잭션 환경, 재무 환경, 리서치 환경, 회계 환경, 법무 환경 등을 포함하는 데이터 환경에 대해 고안된다. 도 1-2는 기초 물리적 데이터 표현에 대해 구성되는 데이터베이스 추상화 모델의 실시예를 나타낸다. 도 3-4는 데이터베이스 추상화 모델에 따라 형성되는 추상 쿼리를 처리하기 위한 예시의 방법을 나타낸다.
데이터베이스 추상화 모델: 환경의 물리적 관점
도 1은 클라이언트 서버 컨피규레이션을 이용하는 네트워크화 컴퓨터 시스템 을 도시한다. 클라이언트 컴퓨터 시스템(1051-N)은 네트워크(104)를 통해 다른 시스템과의 네트워크 통신을 가능하게 하는 인터페이스를 포함한다. 네트워크(104)는 클라이언트 시스템(105)과 서버 시스템(110) 둘다가 동일한 일반 위치에 놓이는 근거리 통신망이거나, 인터넷을 통한 네트워크 연결을 포함하여 지리적으로 분산된 시스템 사이의 네트워크 연결일 수 있다. 클라이언트 시스템(105)은 일반적으로 메모리와 저장소 (도시 생략)에 버스에 의해 연결되는 중앙 처리 유닛 (CPU)를 포함한다. 각 클라이언트 시스템(105)은 통상 컴퓨터 하드웨어와 클라이언트 시스템(105) (예를 들어, 리눅스 분산, 마이크로 윈도우 운영 시스템 IBM의 AIX® 또는 OS/400®, FreeBSD 등)에서 실행되는 고위 소프트웨어 어플리케이션 간의 상호 작용을 관리하도록 구성된 운영 시스템을 실행하고 있다. ("리눅스"는 미국이나 그 외 나라에서 리눅스 Torvalds의 등록 상표이다)
서버 시스템(100)은 클라이언트 시스템(105)에 의해 이용되는 것과 유사한 하드웨어 컴포넌트를 포함한다. 따라서, 서버 시스템(110)은 버스 (도시 생략)에 의해 연결되는 CPU, 메모리, 및 저장 장치를 포함한다. 서버 시스템(110)은 또한 운영 시스템 (예를 들어, 리눅스® 디스트리뷰션, 마이크로소프트 윈도우®, IBM의 OS/400® 또는 AIX®, FreeBSD 등)을 실행하고 있다.
그러나, 도 1에 나타낸 환경은 단순히 하나의 컴퓨팅 환경의 일 예이다. 본 발명의 실시예는 컴퓨터 시스템이 고속 네트워크에 의해 연결되는 개별 컴퓨터의 클러스터 등의 다중 사용자 컴퓨터 시스템, 단일 사용자 워크스테이션, 또는 비휘 발성 저장소가 없는 네트워크 어플라이언스인지에 상관 없이 다른 환경을 이용하여 구현될 수 있다. 또한, 도 1에 나타내며 여기에서 설명되는 소프트웨어 어플리케이션은 기존의 컴퓨터 시스템, 예를 들어, 데스크톱 컴퓨터, 서버 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터 등에서 실행되는 컴퓨터 소프트웨어 어플리케이션을 이용하여 구현될 수 있다. 그러나, 여기 기재된 소프트웨어 어플리케이션은 현재 기존의 컴퓨팅 환경이나 프로그래밍 언어에만 제한되지 않으며, 이들이 이용 가능하다면 새로운 컴퓨팅 시스템을 이용하도록 채용될 수도 있다.
일 실시예에서, 사용자는 인터페이스(115)에 의해 제공되는 그래픽 사용자 인터페이스 (GUI)를 이용하여 서버 시스템(110)과 상호 작용한다. 특정 실시예에서, GUI 컨텐트는 웹 브라우저(122)를 이용하여 클라이언트 컴퓨터 시스템(1051)에서 랜더링되는 HTML 문서 (즉, 웹 페이지)를 포함한다. 이 실시예에서, 서버 시스템(110)은 클라이언트 시스템(105)으로부터의 HTTP 요청에 응답하고 클라이언트 시스템(105)에 HTML 문서를 전송하도록 구성되는 하이퍼텍스트 트랜스퍼 프로토콜 (HTTP) 서버(118) (예를 들어, 오픈 소스 아파치 웹서버 프로그램이나 IBM의 웹 스피어® 프로그램 등의 웹 서버)를 포함한다. 웹 페이지 자체는 서버 시스템(110) 상에 저장된 정적 문서이거나 HTTP 요청을 서비스하도록 웹 서버(118)와 상호 작용하는 어플리케이션 서버(112)를 이용하여 동적으로 형성될 수 있다. 다르게, 클라이언트 어플리케이션(120)은 데이터베이스 프론트 엔드, 또는 클라이언트 시스템(105N)에서 실행되는 쿼리 어플리케이션 프로그램을 포함할 수 있다. 웹 브라우 저(122) 및 어플리케이션(120)은 사용자가 추상 쿼리를 조성하고, 이 쿼리를 처리용 런타임 컴포넌트(114)에 제출할 수 있도록 구성된다.
도 1에서 나타낸 바와 같이, 서버 시스템(110)은 런타임 컴포넌트(114), DBMS 서버(116), 및 데이터베이스 추상화 모델(148)를 더 포함한다. 일 실시예에서, 이들 컴포넌트는 서버 시스템(110)에서 실행되는 소프트웨어 어플리케이션을 이용하여 제공된다. DBMS 서버(116)는 데이터베이스(2141-3)를 관리하도록 구성되는 소프트웨어 어플리케이션을 포함한다. 즉, DBMS 서버(116)은 기초 물리적 데이터베이스 시스템과 통신하며, 데이터베이스 추상화 모델(148) 뒤의 물리적 데이터베이스 환경을 관리한다. 사용자는 추상 쿼리를 조성하여 처리용 런타임 컴포넌트(114)에 제출하기 위해 쿼리 인터페이스(115)와 상호 작용한다. 통상, 사용자는 데이터베이스 추상화 모델(148)에 의해 정의된 논리 필드로부터 추상 쿼리를 조성한다. 논리 필드와 액세스 방법은 도 2a-2b를 참조하여 더 상세히 설명한다.
일 실시예에서, 런타임 컴포넌트(114)는 추상 쿼리를 수신하고, 응답시 기초 물리적 데이터베이스(214)의 "해결" 또는 "구체적" 쿼리를 형성하도록 구성된다. 예를 들어, 런타임 컴포넌트(114)는 추상 쿼리로부터 하나 이상의 SQL 쿼리를 형성하도록 구성된다. 런타임 컴포넌트(114)에 의해 형성된 해결 쿼리가 실행용 DBMS 서버(116)에 공급된다. 부가하여, 런타임 컴포넌트(114)는 추상 쿼리의 포커스에 기초하여 부가의 제한이나 조건으로 해결 쿼리를 수정하도록 구성된다.
데이터베이스 추상화 모델: 환경의 논리적 관점
도 2a는 추상화 모델 환경에 의해 제공된 데이터의 논리적 관점 (도 2a의 좌측)과, 데이터를 저장하는 데에 이용되는 기초 물리적 데이터베이스 기구 (도 2의 우측) 간의 관계와 함께 데이터베이스 추상화 모델과 상호 관계된 컴포넌트를 도시한다.
일 실시예에서, 데이터베이스 추상화 모델(148)은 논리 필드(208)와 모델 개체(225)의 세트에 대한 정의를 제공한다. 사용자는 선택 기준(203)과 결과 필드(204)를 특정하여 추상 쿼리(202)를 조성한다. 추상 쿼리(202)는 선택된 모델 개체(201)를 모델 개체(225)의 세트와 식별한다. 최종 쿼리는 이것이 기초 물리적 데이터베이스(214)의 데이터 구조물에 대한 직접적인 참조 보다는 논리 필드(208)를 이용하여 조성되기 때문에 일반적으로 "추상 쿼리"로 불려진다. 모델 개체(225)는 추상 쿼리(202)의 포커스 (예를 들어, "환자", "사람", "피고용인", "테스트", "설비" 등)를 나타내는 데에 이용된다. 부가의 모델 개체(225)의 예는 여기에서 참조로 결합된 "데이터 모델 개체를 통한 합성 데이터의 처리"로 표제되어 2003년 3월 31일자 출원된 일반 양도되어 계류중인 출원 번호 10/403,356에 기재되어 있다.
설명적으로, 추상 쿼리(202)는 추상 쿼리(202)가 "환자" 모델 개체(201)의 인스턴스에 포커스를 둔 것을 나타낸다. 추상 쿼리(202)는 또한 "hemoglobin_test>20"인 환자에 대한 데이터가 추상 쿼리(202)의 처리에 응답하여 검색되는 것을 나타내는 선택 기준(203)을 포함한다. 선택 기준(203)은 논리 필드(208) (이 예에서, "hemoglobin_test 논리 필드)에 대응하는 데이터 값에 대해 평가되는 조건을 특정하여 조성된다. 한 조건에서의 연산자는 =, >, <, >=, 또는 <= 등의 비교 연산자 및 AND, OR 및 NOT 등의 논리 연산자를 포함한다. 결과 필드(204)는 추상 쿼리(202)에 대해 검색된 데이터가 "이름"에 대한 데이터, 및 기초 물리적 데이터베이스에서 선택 기준(203)을 만족하는 데이터를 갖는 "환자" 개체의 각 인스턴스에 대한 "hemoglobin_test" 논리 필드를 보내야 하는 것을 나타낸다.
일 실시예에서, 사용자는 쿼리 구축 인터페이스(115)를 이용하여 추상 쿼리(202)를 조성한다. 인터페이스(115)는 사용자가 논리 필드(208)로부터 추상 쿼리(202)를 조정할 수 있게 하도록 구성된다. 데이터베이스 추상화 모델(148)에서 각 논리 필드(208)의 정의는 액세스 방법을 식별한다. 액세스 방법은 물리적 데이터베이스(214)로부터 데이터를 검색하기 위해 인터페이스(115)와 상호 작용하는 사용자에게 노출되는 데이터의 논리적 관점으로부터 런타임 컴포넌트(114)에 의해 이용되는 데이터의 물리적 관점으로 매핑하는 데에 이용될 수 있다. 따라서, 런타임 컴포넌트(114)는 쿼리에 포함되는 논리 필드에 대한 액세스 방법(208)에 따라 추상 쿼리(202)로부터 해결 쿼리를 형성하여 물리적 데이터베이스(214)로부터 데이터를 검색한다. 예를 들어, 액세스 방법은 기초 물리적 데이터베이스(214)의 데이터 객체를 참조하는 하나 이상의 SQL 절과 같이, 해결 쿼리를 구축하는 데에 이용되는 쿼리 기여를 포함한다.
또한, 논리 필드(208)에 대해 특정된 액세스 방법에 따라서, 런타임 컴포넌트(114)는 많은 다른 기초 저장소 기구의 쿼리를 형성할 수 있다. 예를 들어, 소 정의 논리 필드에 대해, 런타임 컴포넌트는 데이터베이스(2141)로부터 데이터를 쿼리하는 XML 쿼리, 관계형 데이터베이스(2142)의 SQL 쿼리, 또는 "다른" 데이터 표현(2143)을 이용하여 다른 물리적 저장소 기구에 따라 조성되는 쿼리 또는 이들의 조합 (현재 공지되었거나 이후 개발됨)을 형성할 수 있다.
논리 필드 정의(208)에 부가하여, 데이터베이스 추상화 모델(148)은 모델 개체(225), 인증 필터(235) 및 인증 유형(237)에 대한 정의를 포함한다. 상술된 바와 같이, 각 모델 개체(225)는 소정의 추상 쿼리의 포커스를 식별하는 데에 이용된다. 인증 필터(235)는 쿼리에 대해 특정된 특정 모델 개체(225)에 기초하여 (즉, 쿼리 포커스에 기초하여) 쿼리가 어떻게 수정되어야 하는지를 결정하는 데에 이용된다. 인증 유형(237)은 사용자에 의해 제출된 데이터베이스 쿼리에 부가할 특정 쿼리 조건을 제공한다. 예를 들어, 인증 유형은 해결 쿼리에 부가되는 SQL 절을 제공한다. 인증 필터(235)와 인증 유형(237)은 도 2b를 참조하여 이하 더욱 상세히 설명된다. 일 실시예에서, 인증 플러그-인(230)은 인증 필터(235)를 관리하는 데에 이용된다. 예를 들어, 특정 모델 개체(225)의 정의는 특정 모델 개체를 쿼리에 대한 포커스로 특정하는 쿼리가 제출될 때 마다 불러올 인증 플러그-인(230)을 특정한다. 플러그-인 자체는 사용자나 임무에 기초한 기준과 같은 기준에 기초하여, 특정 쿼리에 이용되는 인증 필터(237)를 동적으로 식별하는 데에 구성되는 실행 가능 코드 컴포넌트일 수 있다. 따라서, 인증 플러그-인(230)는 인증 루틴의 적용시 부가되는 유연도를 데이터베이스 쿼리에 제공하는 데에 이용된다. 그러나, 플러그-인(230)의 참조 없이 동작하는 인증 필터(235)를 또한 생각할 수 있다. 에를 들어, 플러그-인(230)을 참조하는 대신에, 인증 필터(235)는 인증 유형(237)의 직접적인 참조를 제공할 수 있다.
도 2b는 본 발명의 일 실시예에 따라 데이터베이스 추상화 모델(148)에 관련한 예시의 추상 쿼리(202)를 나타낸다. 쿼리는 쿼리가 "헤모글로빈" 테스트 값이 "20" 보다 큰 환자 모델 개체(201)의 인스턴스를 검색해야 하는 것을 나타내는 선택 기준(selection criteria : 203)을 포함한다. 추상 쿼리(202)를 이용하여 검색되는 특정 정보는 결과 필드(204)에 의해 특정된다. 이 예에서, 추상 쿼리(202)는 헤모글로빈 테스트에 대한 환자의 이름과 테스트 결과 값을 검색한다. 검색된 실제 데이터는 복수의 테스트로부터의 데이터를 포함한다. 즉, 쿼리 결과는 특정 모델 개체와 쿼리 결과 간의 일 대 다수 관계를 나타낼 수 있다.
추상 쿼리(202)에 대응하는 설명적 추상 쿼리를 아래 테이블 1에서 나타내었다. 이 예에서, 추상 쿼리(202)는 확장 마크업 언어 (XML)를 이용하여 나타낸다. 일 실시예에서, 어플리케이션(115)은 쿼리 구축 인터페이스(115)와 상호 작용하는 사용자에 의해 조성되는 추상 쿼리를 나타내기 위해 XML 문서를 형성하도록 구성된다. 당업자라면 XML이 구성된 텍스트와 정보, 그 외 마크업 언어의 공유를 용이하게 하는 데 이용되는 공지의 마크업 언어인 것이 이해될 것이다.
<테이블 1>
- 추상 쿼리 예 - XML
001 <?xml version="1.0"?>
002 <!--Query string representation:("Hemoglobin_test>20")-->
003 <QueryAbstraction>
004 <Selection>
005 <Condition>
006 <field="Hemoglobin Test" operator="GT" value="20"/>
007 </Condition>
008 </Selection>
009 <Results>
010 <Field name="FirstName"/>
011 <Field name="LastName"/>
012 <Field name="hemoglobin_test"/>
013 </Results>
014 <Entity name="patient">
015 <Field name="data://demographics/PatientID"/>
016 <Usage type="query"/>
017 </EntityField>
018 </Entity>
테이블 1에 나타낸 XML 마크업은 선택 기준(203) (라인 004-008) 및 결과 기준(204) (라인 009-013)을 포함한다. 선택 기준(203)은 필드 이름 (논리 필드용), 비교 연산자 (=, >, <) 및 값 표시 (필드가 무엇과 비교되고 있는지)을 포함한다. 일 실시예에서, 결과 필드(204)는 데이터가 보내져야 하는 논리 필드의 세트를 포함한다. 보내진 실제 데이터는 선택 기준(203)과 일치한다. 라인 13은 사용자에 의해 선택된 모델 개체, 이 예에서는 "환자" 모델 개체를 식별한다. 따라서, 추상 쿼리(202)에 대해 보내진 쿼리 결과는 "환자" 모델 개체의 인스턴스이다. 라인 15은 모델 개체의 인스턴스를 식별하는 데에 이용되는 물리적 데이터베이스(214)의 ID를 나타낸다. 이 경우, "환자" 모델 개체의 인스턴스는 인구 통계 테이블의 "환자 ID" 컬럼으로부터의 값을 이용하여 식별된다.
일단 조성되면, 사용자는 처리용 런타임 컴포넌트(114)로 추상 쿼리를 제출한다. 일 실시예에서, 런타임 컴포넌트(114)는 추상 쿼리 플랜과 같은 추상 쿼리(202)의 중간 표현을 형성하여 추상 쿼리(202)를 처리하도록 구성된다. 추상 쿼리 플랜은 데이터 추상화 모델로부터의 추상 요소와 기초 물리적 데이터베이스에 관한 물리적 요소의 조합으로 조성된다. 예를 들어, 추상 쿼리 플랜은 추상 쿼리에 포함되는 논리 필드의 액세스 방법에 의해 어느 관계형 테이블와 컬럼이 참조되는지를 식별할 수 있다. 런타임 컴포넌트는 기초 물리적 데이터베이스 (예를 들어, SQL 문구)의 물리적 쿼리를 형성하기 위해서 중간 표현을 설명한다. 추상 쿼리 플랜과 쿼리 처리가 또한 여기에서 참조로 언급되고 있는 2004년 12월 6일자 출원된 일련 번호 11/005,418, "추상 쿼리 플랜"으로 표제된 일반 양도된 계류중인 출원에 기재되어 있다. 부가하여, 도 3은 기초 물리적 데이터베이스의 실행 가능 쿼리를 형성하기 위해 추상 쿼리를 처리하기 위한 예시의 방법을 도시한다.
도 2b는 복수의 논리적 필드 사양(2081-5) (예시로 5개로 나타냄)을 포함하는 데이터베이스 추상화 모델(148)의 실시예를 나타낸다. 소정의 논리적 필드 명세(208) (또는 간단하게 논리적 필드)에 포함되는 액세스 방법은 논리적 필드(208)의 기초 관계형 데이터베이스 (예를 들어, 도 2a에 나타낸 데이터베이스(2142)의 테이블와 컬럼에 대한 매핑을 제공한다. 도시된 바와 같이, 각 필드 사양(208)은 논리 필드 이름(2101-5) 및 관련 액세스 방법(2121-5)를 식별한다. 여러 다른 유형의 논리 필드에 따라, 소정 수의 액세스 방법이 데이터베이스 추상화 모델(148)에 의해 지원될 수 있다. 도 2b는 간단한 필드, 필터된 필드, 및 조성 필드에 대한 액세스 방법을 나타낸다. 이들 세 액세스 방법 각각을 이하 기술한다.
간단한 액세스 방법은 기초 물리적 데이터베이스의 특정 개체에 대한 직접적 매핑을 특정한다. 필드 사양(2081, 2082, 및 2083)은 각각 간단한 액세스 방법(2121, 2122, 및 2125)을 제공한다. 관계형 데이터베이스에 대해, 간단한 액세스 방법은 논리 필드를 특정 데이터베이스 테이블와 컬럼에 매핑한다. 예를 들어, 도 2b에 나타낸 간단한 필드 액세스 방법(2121)은 논리 필드 이름(2101) "FirstName"을 "Demographics"로 이름붙힌 테이블에서 "f_name"으로 이름붙힌 컬럼에 매핑한다.
논리 필드 명세(2083)은 필터된 필드 액세스 방법(2133)을 예시화한 것이다. 필터된 액세스 방법은 관련된 물리적 데이터베이스를 식별하며 필터된 필드에 대해 보내져야 하는 기초 데이터베이스 내의 특정 서브세트의 아이템을 한정하는 규칙을 제공한다. 예를 들어, 복수의 여러 의학적 테스트에 대한 테스트 결과를 저장하는 관계형 테이블을 생각해 본다. 각각의 다른 테스트에 대응하는 논리 필드가 정해지며, 각 다른 테스트에 대한 필터는 특정 테스트를 논리 필드와 관련시키는 데에 이용된다. 예를 들어, 논리 필드(2083)는 가정된 "헤모글로빈_테스트"를 나타낸다. 이 필터된 필드(2123)에 대한 액세스 방법은 "Tests" 테스트 테이블의 "Test_Result" 컬럼에 매핑되어 필터 "Test_ID='1243'"을 정의한다. 필터를 만족하는 데이터만이 이 논리 필드에 대해 보내진다. 따라서, 필터된 필드(2083)는 데이터가 기초 물리적 데이터베이스에 표시되는 방법에 대한 묘책을 사용자가 알 필요 없이, 또는 쿼리 구축 프로세스의 일부로 선택 기준을 특정할 필요 없이 더 큰 세트로부터 서브세트의 데이터를 보낸다.
필드 명세(2084)는 조성된 액세스 방법(2124)를 구체화한다. 조성된 액세스 방법은 기초 물리적 데이터베이스로부터 데이터를 검색하고 데이터에 대해 연산을 실행하여 리턴 값을 형성한다. 이런 식으로, 기초 데이터 표현에 직접적으로 존재하지 않는 정보가 연산되어 요청 개체에 제공된다. 예를 들어, 논리 필드 액세스 방법(2124)는 논리 필드 "age"(2084)를 "birthdate"로 붙혀진 다른 논리 필드(2085)로 매핑하는 조성된 액세스 방법을 나타낸다. 다음에, 논리 필드 "birthdate"(2085)는 관계형 데이터베이스(2142)의 인구 통계 테이블의 컬럼에 매핑된다. 이 예에서, "age" 논리 필드(2084)의 데이터는 "birthdate" 논리 필드(2085)를 이용하여 기초 데이터베이스로부터 데이터를 검색하고, 현재 날짜 값을 생일 값으로부터 감하여 논리 필드(2084)에 대해 보내진 에이지 값을 연산하여 연산된다. 다른 예는 이름과 성 논리 필드(2081 및 2082)로 조성되는 "name" 논리 필드 (도시 생략)을 포함한다.
예시로, 도 2b에 나타낸 필드 명세(208)는 관계형 데이터 표현(2142)으로 나타낸 데이터에 매핑된 논리 필드를 나타낸다. 그러나, 다른 인스턴스의 데이터 저장소 추상화 컴포넌트(148) 또는 다른 논리 필드 명세는 다른 물리적 데이터 표현 (예를 들어, 데이터베이스(도 2a에서 나타낸 2141 또는 2143)에 매핑된다. 또한, 일 실시예에서, 데이터베이스 추상화 모델(148)는 집합적으로 특정 물리적 데이터베이스 시스템에 대한 데이터베이스 추상화 모델(148)을 정의하는 모델 개체, 논리 필드, 액세스 방법 및 부가의 메타데이터를 기술하는 XML 문서를 이용하여 컴퓨터 시스템(110)에 저장된다. 그러나, 그 외 저장 기구나 마크업 언어를 또한 생각할 수 있다.
도 2c는 모델 개체 정의(225)를 나타낸다. 나타낸 바와 같이, 정의(225)는 "환자" 모델 개체와 "리서치" 모델 개체에 대한 정의를 포함한다. 인스턴스 ID(215)는 데이터 추상화 모델의 논리적 관점으로부터 기초 데이터베이스(214)의 모델 개체를 나타내는 데이터 값에 매핑하도록 런타임 컴포넌트(114)에 의해 이용된다. 나타낸 바와 같이, 인스턴스 ID(2151)는 여러 다른 인스턴스의 "환자" 모델 개체를 나타내도록 (즉, 다른 환자를 나타내도록) 데이터베이스(214)에 의해 이용되는 값을 나타낸다. 유사하게, 인스턴스 ID(2152)는 여러 다른 인스턴스의 "리서치" 모델 개체를 나타내도록 (즉, 다른 테스트를 나타내도록) 데이터베이스(214)에 의해 이용되는 값을 나타낸다. "환자" 모델 개체와 "리서치" 모델 개체의 설명적 정의를 아래 테이블 2에서 나타내었다. 이 예에서, 모델 개체 정의(225)는 XML을 이용하여 표시되지만, 다른 마크업 언어도 이용될 수 있다.
< 테이블 2>
모델 개체 정의 - XML
001 <Entity name="Patient" authorizationFilter="RoleBased">
002 <EntityField required="Hard">
003 <FieldRef name="data://Demographic/Patient_ID:/>
004 <Usage type="query focus"/>
005 </EntityField>
006 </Entity>
007 <Entity name="Research" authorizationFilter="ResearchType">
008 <EntityField required="Hard">
009 <FieldRef name="data://Tests/Test_ID"/>
010 <Usage type="query focus"/>
011 </EntityField>
012 </Entity>
라인 001 및 007은 각각 "환자"와 "리서치" 모델 개체에 대한 이름을 제공한다. 라인 003과 009는 "환자"와 "리서치" 모델 개체를 기초 데이터베이스의 물리적 위치에 매핑한다. 즉, 이들 라인은 인스턴스 ID(2151 및 2152)를 정의한다. 특히, "환자" 모델 개체의 인스턴스는 "인구 통계" 테이블의 "환자 ID" 컬럼에 기록된 값으로 식별될 수 있다. 유사하게, "테스트" 모델 개체의 인스턴스는 "테스트" 테이블의 "환자 ID" 컬럼에 기록된 값으로 식별될 수 있다.
라인 004와 010은 "리서치"와 "환자" 모델 개체가 소정의 추상 쿼리의 쿼리 포커스를 나타내기 위해 이용 가능한 것을 나타낸다. 따라서, 모델 개체는 추상 쿼리에 대한 포커스 개체로 작용한다. 일 실시예에서, 데이터 추상화 모델(148)은 인증 필터를 각 모델 개체와 관련시킨다. 예를 들어, 테이블 2의 라인 001 및 007은 "RoleBased"와 "ResearchType"의 인증 필터(235)를 "리서치"와 "환자" 모델 개체와 관련시킨다. 그러나, 당업자라면, 다른 실시예들은 여러 데이터 개체를 소정의 쿼리의 포커스를 지정하는 데에 이용되는 포커스 개체로 이용할 수 있다는 것이 이해될 것이다.
모델 개체로 나타나는 포커스로 쿼리를 처리할 때, 인증 필터는 추상 쿼리로부터 형성된 구체적 쿼리에 부가되는 실제 액세스 조건을 식별하기 위해 이용될 수 있다. 따라서, 모델 개체와 인증 필터는 쿼리 포커스에 기초하여 소정의 쿼리에 어느 조건이 부가 결정되는지로부터 게층을 제공하게 된다. 계층의 상부에는 모델 개체에 의해 식별되는 쿼리의 포커스가 있다. 일단 식별되면, 모델 개체와 관련되는 인증 필터는 구체적인 쿼리에 부가되는 실제 조건을 결정하는 데에 이용된다.
상술된 바와 같이, 각 모델 개체(225)는 인증 필터와 관련된다 (예를 들어, 표 II의 라인 001 및 007에 나타낸 인증 필터). "환자"와 "리서치" 모델 개체에 대한 인증 필터(235)에 대한 설명적 정의를 아래 표 III에서 나타내었다. 이 예Dp서, 인증 필터(235)는 XML을 이용하여 표현되지만, 다른 마크업 언어도 가능하다.
<테이블 3>
인증 필터 - XML
001 <Authorization>
002 <AuthorizationFilter name="RoleBased">
003 <Type="class"className="GenerateUserRoleBase">
004 <List>
005 <Value actualVal="DivisionX" authorization="Research"/>
006 <Value actualVal="DivisionY" authorization="Treatment"/>
007 <Value actualVal="DivisionA" authorization="Accounting"/>
008 <Value actualVal="DivisionB" authorization="Educational"/>
009 </List>
010 </Type>
011 </AuthorizationFilter>
012 <AuthorizationFilter name="ResearchType">
013 <Type="class"className="GenerateResearchType">
014 <List>
015 <Value actualVal="DivisionX" authorization="Research"/>
016 <Value actualVal="DivisionY" authorization="Educational"/>
017 </List>
018 </Type>
019 </AuthorizationFilter>
라인 001-011은 "환자" 모델 개체에 대해 특정된 인증 필터에 대응하고, 라인 12-19는 "리서치" 모델 개체에 대해 특정된 인증 필터에 대응한다. 인증 필터(235)의 정의를 모델 개체(225)에 대한 정의로부터 분리함으로써, 다수의 모델 개체는 동일한 인증 필터를 공유할 수 있다. 또한, 이는 모델 개체 정의(225) 및 인증 필터 정의(235)가 서로 독립적으로 수정되는 것을 가능하게 한다. 라인 003 및 013는 각각 "환자"와 "리서치" 모델 개체에 포커스를 둔 쿼리를 처리할 때 불러올 인증 플러그-인(230)을 특정한다.
일 실시예에서, 인증 플러그-인(230)은 인증 유형을 선택하기 위해 이용되는 값을 보내도록 구성된 실행 가능 클래스, 모듈 프로그램 또는 루틴일 수 있다. 예를 들어, 라인 004-009는 "환자" 모델 개체(225)에 대한 인증 필터(235)에 의해 참조되는 "GenerateUserRoleBase" 플러그-인(230)에 대한 네개의 다른 리턴 값을 나타낸다. 이 예에서, 네 개의 리턴 값이 쿼리를 제출한 사용자가 관련되게 되는 "division"을 식별한다고 가정한다. 이에 기초하여, 네 개의 다른 인증 유형 중 하나가 쿼리의 처리시 이용하도록 결정될 수 있다. 이 예에서, "리서치", "치료", "회계", 및 "교육" 인증 유형이 데이터베이스 쿼리를 처리하면서 부가되는 액세스 조건을 선택하는 데에 이용된다. 이 예에 대해 데이터 추상화 모델이 대규모 대학 병원에 의해 이용되고 있다고 가정한다. 따라서, 네 개의 인증 유형은 연구원 (연구 인증 유형), 의사 (치료 인증 유형), 클레임 및 보장 처리 피고용인 (회계 유형) 및 의대생 (학습 센터 인증 유형)에 의해 제출된 "환자" 모델 개체에 대해 포커스를 둔 쿼리에 여러 액세스 제한을 적용하는 데에 이용된다. 따라서, 동일한 세트의 기초 데이터가 쿼리되고 있어도, 또한 동일한 모델 개체 (예를 들어, "환자")가 쿼리되고 있어도, 소정의 쿼리에 대해 이용되는 실제 인증 루틴은 쿼리 마다 다르다. 유사하게, 연구 모델 개체에 대해 라인 012-019에 나타낸 인증 플러그-인(230) 및 값 리스트는 "리서치" 모델 개체에 포커스를 둔 쿼리에 적용될 수 있는 인증 유형을 나타낸다.
일 실시예에서, 인증 유형(237)은 쿼리 처리 동안 쿼리에 부가되는 실제 쿼리 조건을 특정한다. "환자" 모델 개체에 대해 식별된 네 개의 인증 유형에 대한 설명적 정의를 아래 테이블 4에 나타내었다. 이 예에서, 인증 유형(235)은 XML을 이용하여 나타내지만, 다른 마크업 언어도 이용될 수 있다.
<테이블 4>
인증 유형 - XML
001 <AuthType name="research">
002 <Selection>
003 <Condition "where research.consen=true"/>
004 </Selection>
005 </AuthType>
006 <AuthType name="treatment">
007 <Selection>
008 <Condition "where Tests.quality=Valid"/>
009 </Selection>
010 </AuthType>
011 <AuthType name="Accounting">
012 <Selection>
013 <Condition "where Billing.Record=true"/>
014 </Selection>
015 </AuthType>
016 <AuthType name="educational">
017 <Selection>
018 <Condition "where Encounter.Site=Teaching Hospital"/>
019 </Selection>
020 </AuthType>
라인 001-005, 006-010, 011-015 및 016-020은 "리서치", "치료", "회계", 및 "교육" 인증 유형에 대해 부가되는 쿼리 조건을 특정한다. 구체적으로, 라인 003, 008, 013, 및 108의 SQL "where" 절에 의해 특정된 조건은 "역활 기반" 인증 플러그-인(230) (테이블 2의 라인 001에 나타냄)에 의해 식별된 인증 유형에 따라서, "환자" 모델 개체에 포커스를 둔 쿼리에 부가될 수 있는 조건을 제공한다.
이하 도 3을 참조하여, 런타임 컴포넌트(114)를 이용하여 실행 가능한 쿼리를 실행하는 일 실시예를 예시한 설명적 런타임 방법(300)을 나타내었다. 이 방법(300)은 단계 302에서 런타임 컴포넌트(114)가 입력으로 추상 쿼리를 수신할 때 시작된다. 단계 304에서, 런타임 컴포넌트(114)는 개별의 선택 기준 (예를 들어, 선택 기준(203)) 및 원하는 결과 필드 (예를 들어, 결과 필드(204))를 식별하기 위해 추상 쿼리를 판독하여 설명한다.
단계 306에서, 런타임 컴포넌트(114)는 추상 쿼리에 존재하는 각 쿼리 선택 기준 진술을 처리하기 위한 루프 (단계 306, 308, 310 및 312에 의해 지정됨)에 들어가고, 이로 인해 구체적인 쿼리의 데이터 선택 부분을 구축한다. 단계 308에서, 런타임 컴포넌트(114)는 데이터 추상화 모델(148)에서의 필드의 정의를 조사하기 위해 추상 쿼리의 선택 기준으로부터 필드 이름을 이용한다. 상술한 바와 같이, 필드 정의(208)는 필드와 관련된 데이터 구조에 액세스하는 데에 이용되는 액세스 방법의 정의를 포함한다. 단계 310에서, 런타임 컴포넌트(114)는 처리되고 있는 논리 필드(208)에 대한 구체적 쿼리 기여를 구축한다. 여기에서 이용되는 바와 같이, 구체적 쿼리 기여는 현재 논리 필드(208)에 기초하여 데이터 선택을 실행하는 데에 이용되는 구체적 쿼리의 일부이다. 또한, 상술된 바와 같이, 구체적 쿼리는 SQL 및 XML 쿼리와 같은 언어로 표현되는 쿼리이며 소정의 물리적 데이터 저장소의 데이터와 양립한다. 따라서, 구체적 쿼리는 도 2에서 도시된 데이터베이스(214)에 의해 나타낸 물리적 데이터 저장소로부터의 데이터를 위치 지정하여 검색하는 데에 이용된다. 단계 312에서, 현재 필드에 대해 형성된 구체적 쿼리 기여가 구체적 쿼리 진술에 부가된다. 방법(300)은 다음에 단계 306으로 돌아가 추상 쿼리의 다음 필드 처리를 시작한다. 따라서, 단계 306에서 시작된 프로세스는 추상 쿼리의 각 데이터 선택 필드에 대해 반복되고, 이로 인해 구체적 쿼리에 부가의 컨텐트를 기여한다.
구체적 쿼리의 데이터 선택부를 구축한 후에, 런타임 컴포넌트(114)는 쿼리 실행의 결과로 보내진 정보를 식별한다. 상술된 바와 같이, 일 실시예에서, 추상 쿼리는 결과 필드의 리스트, 즉 여기에서 결과 명세로 언급되는 쿼리 실행 결과로 보내지게 되는 논리 필드의 리스트를 정의한다. 상술된 바와 같이, 추상 쿼리의 결과 필드 명세는 필드 이름과 구분 기준으로 이루어진다. 따라서, 방법(300)은 단계 314에서 루프를 시작하여 (단계 314, 316, 318 및 320으로 정의됨) 형성되고 있는 구체적 쿼리에 결과 필드 정의를 부가한다. 단계 316에서, 런타임 컴포넌트(234)는 데이터 추상화 모델(148)에서 (추상 쿼리의 결과 명세로부터) 결과 필드 이름을 조사한 다음에 데이터 추상화 모델(148)로부터 결과 필드 정의를 검색하여 현재 논리 결과 필드에 대해 보내진 데이터의 물리적 위치를 식별한다. 단계 318에서, 런타임 컴포넌트(114)는 논리 결과 필드에 대한 (보내진 데이터의 물리적 위치를 식별하는 구체적 쿼리의) 구체적 쿼리 기여를 구축한다. 단계 320에서, 구체적 쿼리 기여는 구체적 쿼리 진술에 부가된다. 추상 쿼리의 결과 명세 각각이 처리되면, 처리는 단계 322에서 계속된다.
이 단계에서, 런타임 컴포넌트(114)는 처리되고 있는 추상 쿼리의 포커스를 결정하고 구체적 쿼리에 적당한 쿼리 조건을 부가한다. 쿼리 포커스에 기초하여 구체적 쿼리를 수정하는 예시의 방법이 도 4를 참조하여 이하 더욱 상세히 설명된다. 단계 324에서 처리는 계속되며, 이 때 구체적 쿼리가 실행된다. 일단 실행되면, 쿼리 결과의 세트는 단계 322에서 부가된 인증 조건에 의해 제한되는 바와 같이, 요청 개체에 보내진다.
도 4는 본 발명의 일 실시예에 따라 구체적 쿼리에 하나 이상의 인증 조건을 부가하기 위한 방법을 나타낸다. 방법(400)은 단계 402에서 시작하며 이 때 런타임 컴포넌트(114)는 처리되고 있는 쿼리의 포커스를 식별한다. 예를 들어, 런타임 컴포넌트(114)는 처리를 위해 제출된 추상 쿼리의 포커스로서 선택된 모델 개체를 식별한다. 단계 404에서, 런타임 컴포넌트(114)는 단계 402에서 식별되는 쿼리의 포커스에 기초한 인증 필터를 결정한다. 예를 들어, 상기 테이블 2는 "환자"와 "리서치" 모델 개체에 포커스를 둔 쿼리에 대해 이용할 인증 필터를 특정하는 두 예시의 모델 개체 정의를 설명한다.
단계 406에서, 인증 유형이 인증 필터에 기초하여 고정될 수 있는지의 여부에 대해 판정이 행해진다. 고정되면, 단계 410에서 쿼리는 식별된 인증 유형(237)에 대해 특정된 조건에 기초하여 수정된다. 그렇지 않고, 인증 필터(235)가 정확한 인증 유형(237)을 결정하기 위해 플러그-인(230)을 불러오도록 특정하면, 플러그 인이 단계 408에서 실행된다. 정확한 인증 유형(237)이 식별되면, 방법(400)은 단계 410으로 진행하고 구체적 쿼리가 식별된 인증 유형에 대해 특정된 조건을 포함하도록 수정된다. 예를 들어, 상기 표시는 구체적 쿼리에 부가될 수 있는 예시의 인증 유형과 대응하는 쿼리 조건의 세트를 나타낸다. 쿼리가 쿼리 포커스에 기초하여 부가의 조건을 포함하도록 수정된 후에, 쿼리는 쿼리 결과의 세트를 검색하도록 DBMS(214)에 제출된다.
쿼리 포커스에 기초한 (즉, 모델 개체에 기초한) 쿼리 조건을 부가한 것에 부가하여, 인증 조건이 추상 쿼리에 포함되는 논리 필드에 대해 정의된다. 이런 조건은 쿼리의 논리 필드에 또는 그 외 모델 개체에 관련된 것일 수 있다. 예를 들어, 리서치에 이용되는 의학 레코드 데이터를 갖는 인증이 주어지고 몇 가지 헤모글로빈 테스트가 행해진 환자를 생각해 본다. 그러나, 검사시 테스트는 방법이나 샘플 품질에 에러를 포함하는 것으로 확인되므로 포괄적이지 못하다. 좋지 않은 데이터의 이용을 방지하기 위해, 이 로우는 테스트 테이블에서 "무효"로 마크되어 있다.
쿼리 포커스가 "환자"에 대한 것이면, 인증 유형은 조건 "where research_consent=true"를 해결 쿼리에 부가할 수 있다 (상기 테이블 4의 라인 008에서 나타냄). 그러나, 동시에, 헤모글로빈 논리 필드의 정의는 쿼리 포커스와 상관 없이 테스트 결과가 쿼리 결과에 포함되도록 "유효"이어야 하는 것을 특정할 수 있다. 인구 통계 테이블로부터의 컬럼이 테스트 테이블로부터의 컬럼과 결합되면, 다음의 로우가 형성된다:
<테이블 5>
샘플 쿼리 결과
환자 ID 이름 리서치_동의 헤모글로빈 유효성
1001 리안 12 무효
1001 리안 14 무효
1001 리안 12.5 무효
테이블 5에서 나타낸 바와 같이, 처음 세 컬럼은 인구 통계 테이블에서 마지막 두 컬럼은 테스트 테이블에서 끌어낸 데이터를 나타낸다. 두 인증 조건이 이용되면, 어떤 로우도 리서치 인증 "예"와 테스트 품질 "유효" 둘 다를 갖지 않기 때문에 모든 로우가 쿼리 결과의 세트에서 제거된다. 그러나, 이는 쿼리가 "환자"에 포커스를 두어서 원하는 결과가 아닐 수 있다. 이런 경우, "환자" 모델 개체에 대해 특정되지 않은 쿼리 조건은 쿼리 결과로부터 "환자"의 인스턴스를 완전히 제거해서는 안된다. 이 예에서, 무효 테스트 값은 제거되어야 하고, "1001"의 환자 ID로 반영되는 "환자" 모델 개체의 인스턴스는 그렇지 않다. 이 경우, 쿼리 결과는 다음의 테이블에서 나타난 바와 같이 제시된다.
<테이블 6>
필터된 쿼리 결과
환자 ID 이름 리서치 허가 헤모글로빈 유효성
1001 리안 무효 무효
일 실시예에서, 테이블 6에 나타낸 결과는 어느 인증 규칙이 모델 개체에 적용되는지와, 어느 것이 논리 필드의 일부로 포함될 수 있는지를 검사하여 형성될 수 있다. 인증 유형이 쿼리의 포커스에 기초하지 않을 때, 모델 개체의 인스턴스를 제거하지 않고 구체적 쿼리가 쿼리 결과로부터 데이터를 필터하여 수정될 수 있다. 예를 들어, 테이블 6에서 나타낸 바와 같이, "1001"의 환자 ID를 갖는 환자가 포함되지만, 무효 결과가 마스크된다. 따라서, 인증 유형에 기초한 데이터베이스 쿼리에 부가되는 조건은 소정의 쿼리의 포커스에 의해 나타낸 개체의 인스턴스를 제거하지 않고, 쿼리 결과로부터 데이터 값의 마스킹이나 필터링을 초래할 수 있다.
상술된 바와 같이, 본 발명의 실시예는 소정의 쿼리에 대해 식별된 포커스에 기초하여 데이터베이스 레코드의 액세스 요청을 관리하도록 구성되는 쿼리 어플리케이션을 제공한다. 일 실시예에서 사용자는 데이터 추상화 모델에 의해 정의된 모델 개체를 선택하여 쿼리에 대한 포커스를 특정한다. 일 실시예에서, 모델 개체의 정의는 이 모델 개체에 대해 포커스를 둔 쿼리에 부가된 조건을 식별하는 데에 이용되는 인증 필터를 특정할 수 있다. 이렇게 행하는 것이 데이터 액세스 요청을 관리하는 데에 있어 유연한 방법을 제공하고 이 때 쿼리는 많은 다른 관점으로부터 동일한 기초 데이터에 포커스를 둘 수 있다.
따라서, 본 발명의 실시예는 데이터 액세스 관리에 있어 유연한 방법을 제공하며 동일한 데이터가 소정의 쿼리의 포커스에 기초하여 여러 다른 인증 필터를 이용하여 쿼리될 수 있게 한다.
상술한 바는 본 발명의 실시예에 관한 것이지만, 그 외 다른 본 발명의 실시예가 그 기본 영역에서 벗어나지 않고 고안될 수 있으며 이의 영역은 다음 청구범위에 의해 결정되는 것이다.

Claims (10)

  1. 특정 스키마에 따라 구축되는 데이터베이스 내의 데이터의 액세스를 관리하는 방법에 있어서:
    데이터베이스 쿼리에 대한 사용자 선택 포커스를 특정하는 포커스 개체의 참조를 포함하는 상기 데이터베이스 쿼리를 수신하는 단계 - 상기 사용자 선택 포커스는 상기 데이터베이스 쿼리에서 참조되는 임의의 데이터베이스 객체와 독립적이고, 상기 포커스 개체는 복수의 미리 정해진 포커스 개체로부터 선택되며, 상기 포커스 개체는 적어도 하나의 인증 필터를 참조하고, 상기 인증 필터 각각은 상기 데이터베이스 쿼리에 부가될 하나 이상의 데이터베이스 쿼리 조건을 직접 특정하며, 상기 하나 이상의 데이터베이스 쿼리 조건은 상기 데이터베이스에 의해 이용되는 쿼리 언어에 따라 구성됨 - ;
    상기 참조된 포커스 개체에 기초하여, 상기 데이터베이스 쿼리에 포함되는 상기 포커스 개체에 의해 참조되는 하나 이상의 상기 인증 필터로서, 상기 데이터베이스 쿼리에 적용될 상기 인증 필터를 선택하는 단계 - 상기 선택되는 인증 필터는 여러 다른 포커스 개체에 각각 대응하는 복수의 인증 필터 중에서 선택됨 -;
    상기 데이터베이스 쿼리에 부가되는 상기 하나 이상의 데이터베이스 쿼리 조건을 식별하기 위해 상기 선택되는 인증 필터를 검색하는 단계; 및
    상기 하나 이상의 데이터베이스 쿼리 조건을 포함하도록 상기 데이터베이스 쿼리를 수정하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 데이터베이스 쿼리에 부가되는 상기 하나 이상의 조건에 의해 제한되는, 쿼리 결과들의 세트를 검색하기 위하여 상기 데이터베이스 쿼리를 실행하는 단계를 더 포함하는 방법.
  3. 제1항에 있어서,
    상기 인증 필터의 적용은, 인증 유형을 식별하기 위해 상기 인증 필터와 관련된 실행가능한 플러그-인에 대한 호출을 포함하며, 상기 식별된 인증 유형은 상기 데이터베이스 쿼리에 부가하기 위한 특정한 하나 이상의 조건을 지정하는 방법.
  4. 제3항에 있어서,
    상기 실행가능한 플러그-인은 상기 데이터베이스 쿼리를 제출하는 사용자의 식별자, 상기 사용자의 그룹 멤버쉽 및 상기 사용자의 기능적 역할 중 적어도 하나에 기초하여 인증 유형을 결정하는 방법.
  5. 삭제
  6. 제1항에 있어서,
    부가되는 상기 조건은 상기 데이터베이스에 의해 이용되는 쿼리 언어에 따라 구성되는, 데이터베이스 쿼리 요소를 포함하는 방법.
  7. 제1항에 있어서,
    상기 데이터베이스 쿼리는 데이터 추상화 모델에 따라 구성되는 추상 쿼리를 포함하며, 상기 데이터 추상화 모델은 복수의 논리 필드를 정의하고, 논리 필드 각각은 상기 논리 필드에 따라 상기 데이터베이스내의 데이터에 액세스하기 위한 액세스 방법을 지정하며, 상기 데이터 추상화 모델은 복수의 포커스 객체를 정의하며, 사용자는 상기 복수의 포커스 개체로부터 포커스 객체를 선택하여 상기 추상 쿼리에 대한 포커스를 지정하는 방법.
  8. 제7항에 있어서,
    데이터베이스 쿼리를 수정하는 상기 단계는 상기 쿼리 결과들의 세트에 포함되는 데이터를 마스킹하는 단계 -상기 마스킹은 상기 쿼리 결과들의 세트로부터 상기 선택된 포커스 개체의 인스턴스를 제거하지 않음- 를 포함하는 방법.
  9. 프로세서 상에서 실행될 때 특정 스키마에 따라 구축되는 데이터베이스 내의 데이터에 대한 액세스를 관리하는 동작을 수행하는 프로그램을 포함하는 컴퓨터 판독가능 기록매체에 있어서,
    상기 동작은 제1항 내지 제4항, 제6항 내지 제8항 중 어느 한 항에 따른 방법의 각각의 단계를 포함하는 컴퓨터 판독가능 기록매체.
  10. 프로세서; 및
    상기 프로세서에 의해 실행될 때, 특정 스키마에 따라 구축되는 데이터베이스 내의 데이터에 대한 액세스를 관리하는 동작을 수행하도록 구성되는 프로그램이 포함되는 메모리를 포함하는 시스템으로서,
    상기 동작은 제1항 내지 제4항, 제6항 내지 제8항 중 어느 한 항에 따른 방법의 각각의 단계를 포함하는 시스템.
KR1020070000221A 2006-01-05 2007-01-02 포커스 데이터에 근거한 동적 인증 KR100961813B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/326,560 2006-01-05
US11/326,560 US7774355B2 (en) 2006-01-05 2006-01-05 Dynamic authorization based on focus data

Publications (2)

Publication Number Publication Date
KR20070073611A KR20070073611A (ko) 2007-07-10
KR100961813B1 true KR100961813B1 (ko) 2010-06-08

Family

ID=38225824

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070000221A KR100961813B1 (ko) 2006-01-05 2007-01-02 포커스 데이터에 근거한 동적 인증

Country Status (2)

Country Link
US (1) US7774355B2 (ko)
KR (1) KR100961813B1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7801874B2 (en) * 2004-10-22 2010-09-21 Mahle Powertrain Llc Reporting tools
US7356524B2 (en) * 2005-05-13 2008-04-08 Sap Ag Query runtime estimation using statistical query records
US7483889B2 (en) * 2006-12-01 2009-01-27 Cisco Technology, Inc. Instance-based authorization utilizing query augmentation
KR101153969B1 (ko) * 2010-07-15 2012-06-08 (주)소만사 내부 사용자에 의해 개인 정보가 유출되는 것을 방지하기 위한 쿼리 툴 통제 방법 및 그 시스템
US9372891B2 (en) * 2013-12-13 2016-06-21 Red Hat, Inc. System and method for querying hybrid multi data sources
FR3026884B1 (fr) * 2014-10-02 2018-01-12 Immersion Procede et dispositif d'affichage a attracteur d'attention
US9948655B1 (en) * 2016-04-15 2018-04-17 AtScale, Inc. Data access authorization for dynamically generated database structures

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003006194A (ja) 2001-06-22 2003-01-10 Mitsubishi Electric Corp データベースアクセス制御システム

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9105367D0 (en) 1991-03-13 1991-04-24 Univ Strathclyde Computerised information-retrieval database systems
US5734887A (en) 1995-09-29 1998-03-31 International Business Machines Corporation Method and apparatus for logical data access to a physical relational database
US6442543B1 (en) 1997-07-25 2002-08-27 Amazon.Com, Inc. Method and apparatus for changing temporal database information
US6553368B2 (en) 1998-03-03 2003-04-22 Sun Microsystems, Inc. Network directory access mechanism
US6725227B1 (en) 1998-10-02 2004-04-20 Nec Corporation Advanced web bookmark database system
US7281003B2 (en) * 1998-10-05 2007-10-09 Oracle International Corporation Database fine-grained access control
US6581060B1 (en) * 2000-06-21 2003-06-17 International Business Machines Corporation System and method for RDBMS to protect records in accordance with non-RDBMS access control rules
US6757680B1 (en) * 2000-07-03 2004-06-29 International Business Machines Corporation System and method for inheriting access control rules
US7024425B2 (en) 2000-09-07 2006-04-04 Oracle International Corporation Method and apparatus for flexible storage and uniform manipulation of XML data in a relational database system
US6757690B2 (en) * 2001-03-26 2004-06-29 International Business Machines Corporation Method and system for monitoring and securing data access in a database system
US6996558B2 (en) 2002-02-26 2006-02-07 International Business Machines Corporation Application portability and extensibility through database schema and query abstraction
US6928431B2 (en) 2002-04-25 2005-08-09 International Business Machines Corporation Dynamic end user specific customization of an application's physical data layer through a data repository abstraction layer
US6954748B2 (en) 2002-04-25 2005-10-11 International Business Machines Corporation Remote data access and integration of distributed data sources through data schema and query abstraction
US7096229B2 (en) 2002-05-23 2006-08-22 International Business Machines Corporation Dynamic content generation/regeneration for a database schema abstraction
US7240046B2 (en) * 2002-09-04 2007-07-03 International Business Machines Corporation Row-level security in a relational database management system
US20040148278A1 (en) 2003-01-22 2004-07-29 Amir Milo System and method for providing content warehouse
US7054877B2 (en) 2003-03-31 2006-05-30 International Business Machines Corporation Dealing with composite data through data model entities
US7519577B2 (en) 2003-06-23 2009-04-14 Microsoft Corporation Query intermediate language method and system
US7310647B2 (en) * 2003-12-24 2007-12-18 Oracle International Corporation Column masking of tables
US7346617B2 (en) * 2004-01-23 2008-03-18 Oracle International Corporation Multi-table access control
US7461052B2 (en) 2004-12-06 2008-12-02 International Business Machines Corporation Abstract query plan

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003006194A (ja) 2001-06-22 2003-01-10 Mitsubishi Electric Corp データベースアクセス制御システム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
US A1*

Also Published As

Publication number Publication date
US20070156668A1 (en) 2007-07-05
KR20070073611A (ko) 2007-07-10
US7774355B2 (en) 2010-08-10

Similar Documents

Publication Publication Date Title
US7689555B2 (en) Context insensitive model entity searching
US7089235B2 (en) Method for restricting queryable data in an abstract database
US8195647B2 (en) Abstract records
US7302447B2 (en) Virtual columns
US7836078B2 (en) Techniques for managing access to physical data via a data abstraction model
US7606829B2 (en) Model entity operations in query results
US8122012B2 (en) Abstract record timeline rendering/display
US7873631B2 (en) Abstractly mapped physical data fields
US7580949B2 (en) Query conditions on related model entities
US8595231B2 (en) Ruleset generation for multiple entities with multiple data values per attribute
US7836071B2 (en) Displaying relevant abstract database elements
US8370375B2 (en) Method for presenting database query result sets using polymorphic output formats
US8326852B2 (en) Determining query entities for an abstract database from a physical database table
US20060294159A1 (en) Method and process for co-existing versions of standards in an abstract and physical data environment
US20080256047A1 (en) Selecting rules engines for processing abstract rules based on functionality and cost
KR100961813B1 (ko) 포커스 데이터에 근거한 동적 인증
US20080168042A1 (en) Generating summaries for query results based on field definitions
US20060161573A1 (en) Logical record model entity switching
US8090737B2 (en) User dictionary term criteria conditions
US9679031B2 (en) Composing abstract queries for delegated user roles
US20090119277A1 (en) Differentiation of field attributes as value constraining versus record set constraining

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee