KR20020062310A - 데이타베이스 작동 방법 및 장치 - Google Patents
데이타베이스 작동 방법 및 장치 Download PDFInfo
- Publication number
- KR20020062310A KR20020062310A KR1020027006694A KR20027006694A KR20020062310A KR 20020062310 A KR20020062310 A KR 20020062310A KR 1020027006694 A KR1020027006694 A KR 1020027006694A KR 20027006694 A KR20027006694 A KR 20027006694A KR 20020062310 A KR20020062310 A KR 20020062310A
- Authority
- KR
- South Korea
- Prior art keywords
- service
- results
- sql
- query
- terms
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2452—Query translation
- G06F16/24528—Standardisation; Simplification
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99932—Access augmentation or optimizing
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
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
데이타베이스 서비스 조회 처리방법이 제공된다. 한 실시예에서, 본 방법은서비스 조회를 접수하는 것(104), 항들의 합을 얻기 위하여 서비스 조회에 논리 법칙을 적용하는 것(105, 106), 하나 또는 그 이상의 별개의 SQL 명령어로써 각 항들의 값을 구하는 것, 그리고 각각 별개의 SQL 명령어를 실행하는 것을 포함한다.
바람직하게는, 항들의 합이 NOT연산자들을 제거하기 위하여 예를 들면 부울 논리를 이용하여 부가적으로 확장된다.
Description
관련 기술분야 시스템에 대한 향상된 성능 및 특히 속도, 성능 및/또는 정확도 특성에 있어서의 향상된 성능을 가지는 시스템을 제공하기 위하여 필요한 진행이 있음이 고려된다. 확실히, 유저는 지속적으로 속도, 성능 및 정확도에 있어서의 끊임없이 증가하는 향상을 추구하는것 같다.
데이타베이스에 있어서 수십만 또는 심지어는 수백만의 엔트리를 가지는 것도 이상한 것이 아니다. 가령 서비스 디렉토리 같은 수많은 엔트리를 저장하는 데 시스템을 사용하는 응용의 유저는 그러한 응용의 수행(실행)이 종종 늦다고 불평한다. 통상적인 불평은 만약 그런 큰 데이타베이스에서 검색이 수행된다면, 결과를 제공하는데 수초, 수분 또는 수시간이 걸린다는 것이다. 유저의 관점에서, 이런종류의 지연은 짜증난다고 생각된다. 유저는 데이타베이스 시스템 작동에 있어서 존재하더라도, 거의 없는 지연을 가지기를 바란다.
이런 성능 부족 또는 속도 부족에 대한 인식은 검색 명령어/서비스를 실행할 때 특히 현저하다. 본질적으로, 문제점은 검색명령어/ 서비스를 실행함에 있어서 응용이 가령 복잡한 X.500 디렉토리 서비스 조회와 같은 복잡한 디렉토리 조회를 취해야 하고, 그 조회를 SQL 명령어로 매핑해야 한다는 것이다. 수행되는 SQL은 테이블 디자인에 기초하고, 이러한 테이블은 변화데이타(metadata)를 사용한다. 비록 조회를 매핑하는 단계가 가능하더라도, 통상적으로 매핑은 복잡하거나 비교적 복잡한 SQL 표현을 생성하여 데이타베이스 응용에 의하여 수행된다. 일반적으로, SQL명령어가 복잡할수록, 성능은 더욱 느려진다. 그럼에도 불구하고, 유저는 시스템이 더 높은 성능을 나타내는 방법으로 수행되는 명령어/서비스를 원한다.
성능문제를 악화시키는 것의 일부는, 변화데이타 디자인에 있어서, 테이블이 매우 커지는 경향이 있다는 것이다. 테이블이 커질수록, 응용의 인식되는 성능은 더욱 느려진다. 또한, 테이블이 크고 복잡한 검색이 수많은 큰 테이블과 결합하면 인식되는 성능문제는 더욱 악화된다.
이 문제를 설명하기 위하여, 예제는 비교적 복잡한 X.500을 SQL로 매핑하는것에 대해 기술될 것이다. 매핑과 관련된 문제는 X.500와 LDAP가 AND, OR 및 NOT를 포함하는 검색어를 기본적으로 제공한다는 것이다. SQL 또한 AND, OR 및 NOT를 포함하는 검색어를 제공한다. 복잡한 SQL표현은 하나 또는 그이상의 결합 및/또는 부선택문(SUBSELECT)을 가질 수 있다. 수많은 결합 및/또는 부선택문이 존재할때, 검색은 계산하는 데 비교적 긴 시간이 걸릴 수 있다. SQL 검색을 쓰는 수많은 방법이 존재하며, 만약 단지 결합만을 포함하고 부선택문을 포함하지 않으면 종종 "단순(flattened)"검색이라고 호칭된다.
비교적 간단한 예제의 관점에서 설명이 행해질 것이다. 도 1을 보면, LDAP기호를 사용한 X.500 whghl에 대한 검색이 식(101)으로 표현된다. 검색예제는 이름=릭, 성=하비를 찾기 위하여 필터를 사용한다. 그림은 검색 테이블(102) 및 참고를 위해 속성 테이블(103)도 보여준다. 속성 지정자(AID) 번호 3은 이름(common name, cn)에 대한 것이고, AID 번호 4는 성(surname, sn)에 대한 것이라고 가정하자. 검색 테이블에는 수많은 속성지정자들이 존재한다. '릭 하비' 엔트리는 이름 '릭'에 해당하는 AID(속성지정자) 3을 가진 EID(엔트리지정자) 101이고 또한 EID 101은 표준화된 값으로 '하비'를 가진다. '존 스미스'에 대한 테이블에서 또다른 AID 3이 존재하며, '존'은 EID 200을 가지고 '스미스'는 EID 200을가진다. 릭 AND 하비에 대한 검색을 함에 있어, 검색은 AID = 3, 노름(norm) = 릭, 그리고 AID = 4, 노름 = 하비인 모든 객체(EID)를 찾으려 시도할 것이다.
그래서, 본래, 검색은 엔트리 '릭'과 '하비'를 선택하기를 원한다.
이런 검색을 하는 한가지 방법은 부선택문(또는 내포된 조회)을 사용하는 것이다. 이를 위하여 필요한 SQL은:
Select EID from search
Where AID=3 AND NORM='릭'
AND EID IN
(select EID from SEARCH where AID = 4 AND NORM='HARVEY')
이런 내포된 조회에 있어서 괄호안에 있는 절은 부선택문이다. 부선택문은 AID = 4 및 노름 = 하비에 따라서 값이 구해지고 EID의 결과 리스트가 저장된다. 그때 외부절은 되돌려진 EID 리스트가 이전에 저장된 EID의 리스트에도 있는 AID = 4 및 노름 = 하비에 따라서 값을 구한다.
부 선택문에서의 문제는 만약 많고 많은 '하비'가 있다면, 광대한 집합이 구축될 것이며 많은 '릭'은 존재하지 않아서 이런 조회는 한쪽으로 기울것이고 계산하는 데 오랜 시간이 걸릴 수 있다.
이런 검색을 하는 또 다른 방법은 결합(또는 단순조회)을 이용하는 것이다. 이런 결합을 위하여 필요한 SQL은:
Select S1.EID from search S1, search S2
Where S1.AID=3 AND S1.NORM='릭'
AND S2.AID=4 AND S2.NORM='하비'
AND S1.EID=S2.EID
결과는 만약 테이블 S1이 백만개의 엔트리를 가지고, 테이블 S2가 백만개의 엔트리를 가지면, 검색은 테이블이 결합될 때 광대한 조합의 엔트리에 대하여 수행될 수 있다. 볼 수 있는 바와 같이, 심지어는 아주 간단한 검색/명령어에 대하여도 응용의 수행은 비교적 큰 데이타베이스에 있어서는 심하게 줄어들 수 있다. 그러나, 통상적으로 조회에 있어 결합버전이 부선택문보다 더 빠를 것이다.
부-선택문은 결합에 상응하고, 사실 많은 선행기술분야의 데이타베이스 응용은 부-선택문을 결합으로 변환시킨다. 그러나, 이는 만약 한단계 이상의 내포가 있거나 절이 매우 복잡하다면 매우 어려워질 수 있다.
추가 예제로 이제는 'NOT'명령어를 포함하는 검색이 논의될 것이다. 다시 말해서, 본 예제에서 필터가 '등가가 아닌(not equal)'을 요구할 것이다. 우리는 성은 릭이고 ,이름은 하비가 아닌 '릭' NOT '하비'를 찾고있다.
SQL에 있어서, 내포된 조회는 다음과 같을 것이다:
Select EID from search
Where AID=3 AND NORM='RICK'
AND EID NOT IN
(select EID from search where AID=4 AND NORM='하비')
상기 조회의 단순한 버전은 외부 결합과 함께 수행될 수 있다. 외부 결합은 매우 복잡하고 비교적 수행이 느린것으로 생각된다. 본 검색에 대한 외부 결합은 다음과 같은 것일 것이다:
SELECT S1.EID FROM
(SEARCH S1 LEFT JOIN SEARCH S2
ON S1.EID=S2.EID
AND S2.AID=4)
Where S1.AID=3
AND S1.NORM='릭'
AND(S2.NORM<>'하비')
다시, 상기 예제는 '릭'에 대한 그리고 '하비'가 아닌것에 대한 비교적 단순한 검색와 관련된다; 다시말해서, 집합'A'를 포함하고 집합'B'를 포함하지 않는 집합의 검색 즉, A.!B와 관련된다.
만약 보다 복잡한 검색을 포함하는 검색을 보면, 가령
A.(B+C.!D), ..............................................식 201
본 조회에 대한 SQL은 다음과 같을 것이다(요약하여):
SELECT'A'
AND EID IN
(SELECT 'B' OR
(SELECT 'C' AND EID NOT IN
(SELECT 'D')))
상기 조회는 단지 결합을 포함하는 식으로 단순화하기가 매우 복잡함을 주의하라. 또한, "!D"는 "NOT D"를 의미함을 주의하라.
본 응용은 데이타베이스에 관련되며, 특정적으로 관련 데이타베이스 및 RDBMS(관련 데이타베이스 관리 시스템, Relatinal Database Management System) 수행에 관련된다. 또한 본 응용은 예를 들면 X.500 서비스 디렉토리 및 LDAP 서비스 디렉토리와 같은, 디렉토리 서비스를 제공하기 위하여 사용되는 데이타베이스 또는 시스템에 관련된다.
본 응용의 바람직한 실시예는 첨부한 도면을 참고하여 기술될 것이다.:
도 1은 데이타베이스 검색의 배경기술 예제의 설명;
도 2는 본 응용에 따른 일반적인 방법의 개략적인 설명;
도 2a는 항의 값을 구하는 보다 상세한 방법의 개략적인 설명;
도 2b는 NOT 항의 값을 구하는 보다 상세한 방법의 개략적인 설명; 그리고
도 3은 본 응용의 방법을 설명하는데 사용된 방정식의 도식적인 설명
본 응용은, 제 1 특징에 있어서, 디렉토리 서비스 조회 처리방법을 제공한다. 한 실시예에서, 본 방법은 서비스 조회를 받는것, 항들의 합을 얻기 위하여 서비스 조회에 논리 법칙(즉, 드모르간 이론)을 적용하는 것, 하나 또는 그이상의 별개의 SQL 명령어로써 각 항들의 값을 구하는 것, 그리고 각각 별개의 SQL 명령어를 실행하는 것을 포함한다. 항들의 합은 부가적으로 NOT 연산자를 제거하기 위하여 확장될 수 있으며, 부울논리등을 사용한다.
추가적 특징에 있어, 본 응용은 별개의 SQL 명령어를 실행함에 있어서, 감산(減算)으로 확장될 수 있는 NOT를 제공한다. 디렉토리 서비스 배열 및 본 응용을 수행하기 위한 데이타베이스 또한 심사숙고된다. 원칙적으로, 본 응용은 조회를 일단의 더 작거나 더 단순한 SQL 조회로 감소시키는 것에 의해 복잡한 조회를 단순화시킨다. 이는 알려진 논리 법칙(즉, 드모르간 이론)을 적용하여 검색 필터를 항들의 집합으로 확장시킴으로써. 만약 항이 NOT를 포함한다면, NOT를 포함하는 항은 부정항들의 합으로 확장될 수 있다. 조회의 성능은 그러한 확장으로부터 일련의 개별적 SQL 명령어를 처리함으로써 향상된다. 최종 결과는 중복된 SQL 결과를 무시하는 방법으로 각각의 개별적 SQL 명령어의 결과를 조합함으로써 얻어진다. 하나의 형식에 있어서, 하나의 항은 AND연산자들의 집합일 수 있다. 게다가, 명령어의 크기와 시간한계는 크기 또는 시간 한계가 발생할 때 계산의 처리를 정지함으로써 향상된다.
본 응용은 그 여러특징에 있어서 수많은 스텝을 포함한다. 다음의 설명에서 그러한 스텝들의 실시예를 제공할 것이다.
도 2를 참고하면, 본 응용에 대한 발명의 개요를 볼 수 있다. 본 응용은 디렉토리 서비스 조회 처리 방법 및 장치와 관련된다. 본질에 있어서, 조회는 스텝(104)에 의해서 표현된 것 처럼 접수된다. 조회는 스텝(105)에 표현된 것처럼 논리식으로 표현된다. 논리식은 스텝(106)에서 항의 합을 포함하는 식으로 확장된다. 각 확장된 항은 스텝(107)에서 개별적으로 값이 구해져서 결과는 중복되는 것은 무시되어져 스텝(108)에서 합해지고, 스텝(109)은 본 응용 과정의 끝을 보여준다.
각 항의 값을 구하는 스텝(107)은 도 2a에서 추가로 설명된다. 스텝(106)(도2)으로부터, 스텝(110)은 항이 NOT 연산자를 포함하는지 여부를 결정한다. 만약 항이 NOT 연산자를 포함하면, 항은 스텝(111)에서 계산되며, 이는 도 2b를 참고하여 보다 자세히 기술될 것이다. 만약 항이 NOT 연산자를 포함하지 않는다면, 항은 스텝(112)에서 SQL로 변환되며, SQL은 스텝(113)에서 실행된다. 스텝(114)는 중복에 대하여 실행된 SQL의 결과를 테스트한다. 만약 결과가 중복되면, 결과는 스텝(115)에서 무시된다. 만약 결과가 중복되지 않는다면, 결과는 스텝(108)(도 2)으로 진행한다.
NOT항을 계산하는 스텝(111)은 도 2b에 추가적으로 설명된다. 스텝(110)으로부터, NOT항을 포함하는 항은 확장되어, 긍정 및/또는 부정항으로 귀착된다. 그 다음 도 2b에 설명된 과정은 스텝(117)에서 긍정항에 대한 것과, 부정항에 대한 것으로 분기한다. 스텝(118)에서 긍정항이 실행된다. 스텝(120)은 스텝(118)의 결과를 중복되는가에 대하여 테스트한다. 만약 결과가 중복된다면, 그것은 무시된다(스텝 122). 스텝(119)에서, 부정항이 실행된다. 스텝(121)은 스텝(119)의 결과를 중복되는가에 대하여 테스트한다. 만약 결과가 중복된다면, 그것은 무시된다(스텝 122). 긍정 및 부정항 양쪽은, 각각이 중복되지 않는다면, 스텝(123)에서 감산된다. 감산의 결과는 스텝(114)(도 2a)으로 진행된다.
본 응용의 방법에 대한 추가적인 설명은 이제 아래 예제를 참조하여 제공된다.
예 1
조회를 식으로 표현하기
서비스 조회는 수학적인 방법으로 방정식으로써 표현될 수 있다. 서비스 조회를 방정식으로 표현하는 것이 필수적이지는 않으나, 방정식을 참고하는 본 응용의 방법을 예시하기 위하여 본 발명을 설명하는 데 도움이 된다.
식 201은 일반적인 서비스 조회를 표현한다:
A(B+C.!D)................................................식 201
알려진 논리 법칙을 이용하여 식을 확장하기
설명을 목적으로, 서비스 조회를 표현하기 위한 식을 확장하기 위하여, 알려진 논리 법칙이 서비스 조회에 적용된다.
알려진 법칙을 이용하여, 식 201은 항의 합을 호출하는 것을 생성하기 위하여 확장될 수 있다.
∑terms= A.B+A.C.!D.............................................식 202
항의 합은 서비스 조회, 즉, 서비스 조회를 표현하는 수식을 AND 연산자의 OR 식으로써 표현한다. 이것이 단순한 항의 합을 호출할 수 있게 하는 것이다.
항의 합은 추가적인 최적화를 위한 수많은 기회를 제공한다.
1. 항을 단순화할 기회
2. 시간 또는 크기한계가 가해지면 처리를 중단할 기회
3. 임의의 순서로 항을 계산할 기회
4. 감산을 이용하여 NOT를 계산할 기회
알려진 변환기법을 이용하여 식 201은 SQL 명령어로 변환될 수 있고, 일견하여, 이는 AND, OR 및 NOT연산자를 사용하여 SQL 명령어의 내포된 집합으로 변성될 수 있다. 수많은 열 테이블에서, 가령 식 201에 표현된 검색 명령어 같은 명령어를 실행하는데는 수 시간이 걸릴 수 있다.
본 응용은 내포된 SQL 명령어를 회피함으로써 알려진 번역 기법에 대하여 향상된 성능을 제공한다. 내포된 명령어들은 서비스 조회 즉, 식 201을 항의 집합으로 표현하여 식을 단순화함으로써 제거된다. 다음에 각 항은 영 또는 그 이상의 결합(들) 연산자를 포함하는 단순 조회로 변환된다. 이런 방법으로, 비교적 긴 표현식(예를 들면 식 201)은 수많은 더 작은 명령어(또는 식)로 변환될 수 있고, 그 각각은 단순화된다. 단순화된 그리고 더 작은 명령어(또는 식)은 복잡한 조회보다 훨씬 더 빠르게 실행되며 그래서 성능을 향상시킨다. 부가하여, 추가적인 성능향상을 위하여, 데이타베이스는 단순항을 계산하거나 처리하는 최상의 기법을 선택할 수 있도록 조정될 수 있다.
확장식으로부터 각 합산항을 개별적으로 계산하기
본 응용에 따른 방법은 또한 단순화된 식으로부터 OR 연산자를 제거함으로써 데이타베이스 조회 성능을 향상시킬 수 있다. OR 연산자는 개별적 SQL 명령어로 각 항을 계산함으로써 항의 합에서 제거될 수 있다. 본 응용은 중복을 무시하는 반면 부분적 결과를 모두 합산함으로써 부분적 결과 모두로부터 완전한 결과를 수립할 수 있다. 실질적으로, OR가 수행하고 있는 합산이 본 응용에 의해서 수행되고 있다. 추가적 최적화의 기회가 아래에 기술된다.
서비스 조회를 표현하는 복잡한 식을 단순화하기 위하여 알려진 논리 법칙(즉, 드모르간의 법칙)을 적용함으로써, OR연산자는 맨위로 밀려졌고 AND연산자는 OR연산자 맨아래로 밀려졌다. 다시말해, 서비스 조회를 표현하는 비교적 복잡한 식에 있어서, 안에 있는 내포된 OR연산자는 바깥으로 곱해져서 즉 확장되어서, 맨위로 '튀어나온다'. 그 다음, 본 응용에 따른 방법은 각 항을 개별적으로 처리(계산)함으로써 OR 연산자를 제거할 수 있다. 이런 방법으로, 비교적 복잡한 식, 예를 들면 식 201은 바깥으로 확장될 수 있고 개별적으로 실행되어서 내포된 SQL OR 연산 수행 장애를 회피한다.
확장된 식으로부터 NOT 연산자를 포함하는 항을 계산하기
하나 또는 그 이상의 NOT연산자를 가진 항이 단순화되려면, 본 응용에 따른 방법은 항을 NOT 연산자가 없는 식으로 다시쓴다.
예를 들면, 항 A.!B는 A.(1-B)로써 표현될 수 있고, A-AB로 쓰여질 수 있다. 본 표현은 더이상 NOT연산자를 포함하지 않는다.
또다른 예로써, 서비스 조회가 아래의 식 203으로 표현된다면
A.C.!D .......................................................식 203
부울 논리는 식 또는 항의 합을 추가로 확장하기 위하여 사용될 수 있어서, 식 203은 다음과 같이 표현될 수 있다:
A.C-A.C.D ....................................................식 204
식 203의 확장된 형태는 더이상 NOT 연산자를 포함하지 않는다.
SQL을 지원하는 데이타베이스는 감산 연산자를 제공하지 않을 수도 있음을 주의하여야 한다. 그러한 경우에 항의 합을 상기에 기술된 것처럼 처리하는 것에 있어서 문제가 발생할 수 있다. 감산을 처리(또는 계산)하기 위하여, 본 응용에 따른 방법은: 목록에 모든 긍정항을 모은다; 또다른 목록에 모든 부정항을 모은다; 그리고 다음에 중복되는 것을 무시하는 반면 긍정항 목록 및 부정항 목록을 뺀다.
위에서 언급한 감산과정에 대한 대안은 목록에 모든 부정항을 모으는 것이며, 또다른 목록에 모든 긍정항을 모으는 과정에서 부정 목록에 없는 항만을 취하는 것이다. 결과적으로 이 긍정 목록은 감산된 결과를 가질 것이다.
더 높은 차수의 감산으로부터 하나이상의 NOT연산자를 가지는 항을 계산하기
식 205는 고차 감산을 가진 서비스 조회를 표현한다:
A.!B.!C ...................................................... 식 205
여기서 "!B"는 "NOT B"이고 "!C"는 "NOT C"이다.
식 205는 다음과같이 추가적으로 확장될 수 있다:
A(1-B).(1-C) ................................................. 식 206
A(1-C-B+B.C) ................................................. 식 207
A-A.C-A.B+A.B.C .............................................. 식 208
식 208은 중복된 또는 오버랩된 결과를 무시하거나 제거하기 위하여 추가적으로 처리(계산)될 수 있는데: A 연산은 긍정 목록을 제공한다; AC 연산은 부정 목록을 제공한다; 그리고 AB 연산 또한 부정 목록을 제공한다. 감산을 계산하기 위하여, 상기한 감산 계산은 식 208로부터 유래하는 목록의 관점에서 사용될 수 있다. 목록은 다른 순서 또는 병렬로, 즉 위에서 언급한 최적화에 따라서 계산될 수 있음을 주의하여야 한다.
중복된 결과를 무시함으로써 항 A.B.C.을 계산할 필요가 없다. 수학적 원리를 참조하면, A.B 및 A.C의 감산은 실제로 A.B.C.를 두번 빼며, 이는 중복 결과이다.
도 3을 보고, 수학적 의미에서, A.!B.!C를 계산하고 있다면, A 전부의 값을 구하고, 다음 AC를 빼고, 다음 AB를 뺄 수 있다. 그러나 이는 도식적으로 우리가 ABC를 두번 뺀 것을 의미한다(AB 감산에서 한번, AC 감산에서 한번). 이는 수학적으로 ABC가 다시 더해지는 이유이다. 그러나, 본 응용에 있어서, 서비스 조회를 수행함에 있어서, 결과는 리스트되며, AC와 AB는 중첩된 부분인 ABC를 가지는 것이 실현된다. 이런 오버랩은 ABC에 의해 구해진 결과가 이미 AC 및 AB에서 리스트되었고 그러므로 그들이 다시 리스트될 필요가 없기 때문에 중복으로 생각된다. 뿐만 아니라 항 ABC는 리스트되지 않기 때문에 계산될 필요가 없다(수학적 설명에서의 경우처럼 내부에 다시 더해진다). 이런 각 연산들 A, AC, AB는 그둘 중 일부가 AND 연산자를 포함하며, 부 선택문의 도움 없이 개별적으로 값을 구할 수 있고 단순화될 수 있다.
A.!B.!C는 차수 3의 항이나, 차수 2의 항 이하를 포함하는 A-AC-AB에 의해서 계산될 수 있다. 그러므로 감산 목록을 이용한 수행은 매우 효율적이며 향상된 데이타베이스 조회 성능으로 귀착된다고 간주된다.
본 응용에 따른 방법은 일반적으로 데이타베이스 서비스 조회 계산/실행에 적용될 수 있음은 명백하다. 본 응용은 여기에 개시된 실시예에 국한되어서는 안되며, 여기에 참조된 식은 설명의 목적으로 사용된다. 명백히, 본 응용에서 기술된 발명은 다른 단순하거나 복잡한 방정시에 의해서 표현되건 그렇지 않건간에, 많은 다른 서비스 조회에 관하여 이용될 수 있다.
Claims (13)
- 서비스 조회를 접수하는 것,항들의 합을 얻기 위하여 서비스 조회에 논리 법칙을 적용하는 것,별개의 SQL 명령어로써 각 항들의 값을 구하는 것, 그리고각각 별개의 SQL 명령어를 실행하는 것을 포함하여 구성되는 데이타서비스 조회 처리방법.
- 제 1 항에 있어서, NOT 연산자를 제거하기 위하여 각 항을 확장하는 것을 추가로 포함하는 데이타서비스 조회 처리방법.
- 제 2 항에 있어서, 항의 합이 부울논리를 이용하여 확장되는 것을 특징으로 하는 데이타서비스 조회 처리방법.
- 제 1 항에 있어서, 서비스 조회가 X.500 또는 LDAP 서비스 조회인 데이타서비스 조회 처리방법.
- 제 1 항에 있어서, 서비스 조회가 검색 서비스 조회인 데이타서비스 조회 처리방법.
- 함수를 표현하는 SQL명령어를 결정하는 것;제 1 리스트에서 감산된 SQL명령어의 결과를 리스트하는 것, 제 2 리스트에서 감산되지 않은 SQL명령어의 결과를 리스트하는 것; 그리고이전에 리스트된 감산되거나 감산되지 않은 결과들과 중복되는 결과를 리스트하지 않는 것;을 포함하여 구성되는 데이타베이스 서비스 조회 처리방법.
- 제 6 항에 있어서, 서비스 조회가 X.500 또는 LDAP 조회인 데이타서비스 조회 처리방법.
- 제 6 항에 있어서, 서비스 조회가 검색 서비스 조회인 데이타서비스 조회 처리방법.
- 복수의 테이블을 사용하고, 각 테이블은 복수의 열과 행을 가지고, 임의의 데이타를 저장하는 데이타베이스, 그리고항의 합을 얻기 위하여 서비스 조회에 논리 법칙을 적용하는 것, 각 SQL 명령어로써 각 항의 값을 구하는 것, 각 개별적 SQL 명령어를 수행하는 것에 의한 서비스 조회 처리방법을 포함하여 구성되는 디렉토리 서비스 배열.
- 제 9 항에 있어서, X.500 또는 LDAP 서비스를 수행하기 위한 수단을 추가로 포함하여 구성되는 디렉토리 서비스 배열.
- 복수의 테이블을 사용하고, 각 테이블은 복수의 열과 행을 가지고, 임의의 데이타를 저장하는 데이타베이스, 그리고함수를 표현하는 SQL명령어를 결정하는 것, 제 1 리스트에서 감산된 SQL 명령어의 결과를 리스트하는 것, 그리고 이전에 리스트된 감산되거나 감산되지 아니한 결과와 중복되는 결과를 리스트 하지 않는 것에 의한 서비스 조회 처리수단을 포함하여 구성되는 디렉토리 서비스 배열.
- 제 11 항에 있어서, X.500 또는 LDAP 서비스를 수행하기 위한 수단을 추가로 포함하여 구성되는 디렉토리 서비스 배열.
- 서비스 조회를 식으로 변환하는 것;식을 수많은 더 작은 식으로 단순화하는 것으로, 그 각각의 더 작은 식은 단순화될 수 있는 것;각각의 더 작은 식을 단순화하는 것; 그리고각각의 단순화된 식을 실행하는 것으로 구성되는 데이타베이스 서비스 조회 처리방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AUPQ4284A AUPQ428499A0 (en) | 1999-11-26 | 1999-11-26 | A method and apparatus for operating a data base |
AUPQ4284 | 1999-11-26 | ||
PCT/US2000/032123 WO2001039045A1 (en) | 1999-11-26 | 2000-11-24 | A method and apparatus for operating a database |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20020062310A true KR20020062310A (ko) | 2002-07-25 |
Family
ID=3818426
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020027006694A KR20020062310A (ko) | 1999-11-26 | 2000-11-24 | 데이타베이스 작동 방법 및 장치 |
Country Status (11)
Country | Link |
---|---|
US (1) | US7617183B1 (ko) |
EP (1) | EP1234256A4 (ko) |
JP (1) | JP2003515819A (ko) |
KR (1) | KR20020062310A (ko) |
CN (1) | CN1264105C (ko) |
AU (1) | AUPQ428499A0 (ko) |
BR (1) | BR0015912A (ko) |
CA (1) | CA2396453A1 (ko) |
IL (1) | IL149761A0 (ko) |
WO (1) | WO2001039045A1 (ko) |
ZA (1) | ZA200203961B (ko) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8065338B2 (en) * | 1995-08-30 | 2011-11-22 | Computer Associates Think, Inc. | Directory searching methods and systems |
US20050222996A1 (en) * | 2004-03-30 | 2005-10-06 | Oracle International Corporation | Managing event-condition-action rules in a database system |
US20080051989A1 (en) * | 2006-08-25 | 2008-02-28 | Microsoft Corporation | Filtering of data layered on mapping applications |
US8661023B1 (en) | 2012-08-01 | 2014-02-25 | Google Inc. | Optimizing search query logic to speed retrieval |
CN103744888A (zh) * | 2013-12-23 | 2014-04-23 | 新浪网技术(中国)有限公司 | 反垃圾邮件网关查询数据库的方法和系统 |
US10437883B2 (en) * | 2015-11-24 | 2019-10-08 | Cisco Technology, Inc. | Efficient graph database traversal |
US10515075B2 (en) | 2017-05-15 | 2019-12-24 | Microsoft Technology Licensing, Llc | Method for optimization of imperative code executing inside a relational database engine |
Family Cites Families (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4914571A (en) | 1987-06-15 | 1990-04-03 | International Business Machines Corporation | Locating resources in computer networks |
US5218699A (en) | 1989-08-24 | 1993-06-08 | International Business Machines Corporation | Remote procedure calls in heterogeneous systems |
AU631276B2 (en) | 1989-12-22 | 1992-11-19 | Bull Hn Information Systems Inc. | Name resolution in a directory database |
US5117349A (en) | 1990-03-27 | 1992-05-26 | Sun Microsystems, Inc. | User extensible, language sensitive database system |
US5291583A (en) | 1990-12-14 | 1994-03-01 | Racal-Datacom, Inc. | Automatic storage of persistent ASN.1 objects in a relational schema |
US5317742A (en) | 1991-06-21 | 1994-05-31 | Racal-Datacom, Inc. | Dynamic translation of network management primitives to queries to a database |
US5388255A (en) | 1991-12-19 | 1995-02-07 | Wang Laboratories, Inc. | System for updating local views from a global database using time stamps to determine when a change has occurred |
US5414812A (en) | 1992-03-27 | 1995-05-09 | International Business Machines Corporation | System for using object-oriented hierarchical representation to implement a configuration database for a layered computer network communications subsystem |
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 |
US5442690A (en) | 1992-08-25 | 1995-08-15 | Bell Communications Research, Inc. | Telecommunication service record structure and method of execution |
JPH0820982B2 (ja) | 1992-11-12 | 1996-03-04 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピュータ・アプリケーションプログラム収納体の項目をフィルタ処理する方法 |
US5491817A (en) | 1993-05-25 | 1996-02-13 | Bell Communications Research Inc. | Linking system and method for accessing directory information about an object in one context when information in another context is known |
US5548726A (en) | 1993-12-17 | 1996-08-20 | Taligeni, Inc. | System for activating new service in client server network by reconfiguring the multilayer network protocol stack dynamically within the server node |
US5659725A (en) | 1994-06-06 | 1997-08-19 | Lucent Technologies Inc. | Query optimization by predicate move-around |
US5758144A (en) | 1994-06-24 | 1998-05-26 | International Business Machines Corporation | Database execution cost and system performance estimator |
US5664172A (en) | 1994-07-19 | 1997-09-02 | Oracle Corporation | Range-based query optimizer |
JPH10505690A (ja) | 1994-09-01 | 1998-06-02 | データクラフト テクノロジーズ プロプライエタリー リミテッド | X.500システムおよび方法 |
US7315860B1 (en) | 1994-09-01 | 2008-01-01 | Computer Associates Think, Inc. | Directory service system and method with tolerance for data entry storage and output |
DE69528749T2 (de) | 1995-02-17 | 2003-09-18 | International Business Machines Corp., Armonk | Objektorientierte Programmierschnittstelle zur Entwicklung und zur Ausführung einer Netzwerkverwaltungsapplikation auf einer Netzwerkkommunikationsinfrastruktur |
US5649182A (en) | 1995-03-17 | 1997-07-15 | Reitz; Carl A. | Apparatus and method for organizing timeline data |
EP0823092A1 (en) | 1995-04-24 | 1998-02-11 | Aspect Development, Inc. | Modeling of object-oriented database structures, translation to relational database structures, and dynamic searches thereon |
US5634053A (en) * | 1995-08-29 | 1997-05-27 | Hughes Aircraft Company | Federated information management (FIM) system and method for providing data site filtering and translation for heterogeneous databases |
US8065338B2 (en) | 1995-08-30 | 2011-11-22 | Computer Associates Think, Inc. | Directory searching methods and systems |
US5692181A (en) | 1995-10-12 | 1997-11-25 | Ncr Corporation | System and method for generating reports from a computer database |
US5794232A (en) | 1996-03-15 | 1998-08-11 | Novell, Inc. | Catalog services for distributed directories |
US5953716A (en) * | 1996-05-30 | 1999-09-14 | Massachusetts Inst Technology | Querying heterogeneous data sources distributed over a network using context interchange |
US5745900A (en) | 1996-08-09 | 1998-04-28 | Digital Equipment Corporation | Method for indexing duplicate database records using a full-record fingerprint |
US5987446A (en) * | 1996-11-12 | 1999-11-16 | U.S. West, Inc. | Searching large collections of text using multiple search engines concurrently |
US5878415A (en) | 1997-03-20 | 1999-03-02 | Novell, Inc. | Controlling access to objects in a hierarchical database |
US6003050A (en) | 1997-04-02 | 1999-12-14 | Microsoft Corporation | Method for integrating a virtual machine with input method editors |
US6122627A (en) * | 1997-05-09 | 2000-09-19 | International Business Machines Corporation | System, method, and program for object building in queries over object views |
US5806061A (en) | 1997-05-20 | 1998-09-08 | Hewlett-Packard Company | Method for cost-based optimization over multimeida repositories |
US7631012B2 (en) | 1997-05-22 | 2009-12-08 | Computer Associates Think, Inc. | System and method of operating a database |
US6236997B1 (en) | 1997-06-23 | 2001-05-22 | Oracle Corporation | Apparatus and method for accessing foreign databases in a heterogeneous database system |
US5864840A (en) | 1997-06-30 | 1999-01-26 | International Business Machines Corporation | Evaluation of existential and universal subquery in a relational database management system for increased efficiency |
US6112198A (en) * | 1997-06-30 | 2000-08-29 | International Business Machines Corporation | Optimization of data repartitioning during parallel query optimization |
US6016499A (en) | 1997-07-21 | 2000-01-18 | Novell, Inc. | System and method for accessing a directory services respository |
US6112304A (en) | 1997-08-27 | 2000-08-29 | Zipsoft, Inc. | Distributed computing architecture |
GB2329044B (en) | 1997-09-05 | 2002-10-09 | Ibm | Data retrieval system |
US6195653B1 (en) | 1997-10-14 | 2001-02-27 | International Business Machines Corporation | System and method for selectively preparing customized reports of query explain data |
US6044442A (en) | 1997-11-21 | 2000-03-28 | International Business Machines Corporation | External partitioning of an automated data storage library into multiple virtual libraries for access by a plurality of hosts |
US6009422A (en) * | 1997-11-26 | 1999-12-28 | International Business Machines Corporation | System and method for query translation/semantic translation using generalized query language |
US6016497A (en) | 1997-12-24 | 2000-01-18 | Microsoft Corporation | Methods and system for storing and accessing embedded information in object-relational databases |
US6192405B1 (en) | 1998-01-23 | 2001-02-20 | Novell, Inc. | Method and apparatus for acquiring authorized access to resources in a distributed system |
US6085188A (en) * | 1998-03-30 | 2000-07-04 | International Business Machines Corporation | Method of hierarchical LDAP searching with relational tables |
US6115703A (en) | 1998-05-11 | 2000-09-05 | International Business Machines Corporation | Two-level caching system for prepared SQL statements in a relational database management system |
US6119129A (en) | 1998-05-14 | 2000-09-12 | Sun Microsystems, Inc. | Multi-threaded journaling in a configuration database |
US6356892B1 (en) * | 1998-09-24 | 2002-03-12 | International Business Machines Corporation | Efficient implementation of lightweight directory access protocol (LDAP) search queries with structured query language (SQL) |
US6199062B1 (en) | 1998-11-19 | 2001-03-06 | International Business Machines Corporation | Reverse string indexing in a relational database for wildcard searching |
KR100288140B1 (ko) | 1998-12-07 | 2001-05-02 | 이계철 | 이기종 데이터베이스 관리 시스템에 접근 가능한 연결 제공 시스템 및 그 방법 |
US6370522B1 (en) | 1999-03-18 | 2002-04-09 | Oracle Corporation | Method and mechanism for extending native optimization in a database system |
GB9915465D0 (en) | 1999-07-02 | 1999-09-01 | Lenzie Robert S | Identified preferred indexes for databases |
US6879990B1 (en) | 2000-04-28 | 2005-04-12 | Institute For Scientific Information, Inc. | System for identifying potential licensees of a source patent portfolio |
-
1999
- 1999-11-26 AU AUPQ4284A patent/AUPQ428499A0/en not_active Abandoned
-
2000
- 2000-11-24 CN CNB008161925A patent/CN1264105C/zh not_active Expired - Fee Related
- 2000-11-24 WO PCT/US2000/032123 patent/WO2001039045A1/en active IP Right Grant
- 2000-11-24 CA CA002396453A patent/CA2396453A1/en not_active Abandoned
- 2000-11-24 JP JP2001540639A patent/JP2003515819A/ja active Pending
- 2000-11-24 BR BR0015912-3A patent/BR0015912A/pt not_active IP Right Cessation
- 2000-11-24 US US09/721,806 patent/US7617183B1/en not_active Expired - Lifetime
- 2000-11-24 EP EP00980695A patent/EP1234256A4/en not_active Ceased
- 2000-11-24 KR KR1020027006694A patent/KR20020062310A/ko not_active Application Discontinuation
- 2000-11-24 IL IL14976100A patent/IL149761A0/xx unknown
-
2002
- 2002-05-17 ZA ZA200203961A patent/ZA200203961B/en unknown
Also Published As
Publication number | Publication date |
---|---|
EP1234256A1 (en) | 2002-08-28 |
EP1234256A4 (en) | 2003-05-21 |
CN1264105C (zh) | 2006-07-12 |
CA2396453A1 (en) | 2001-05-31 |
WO2001039045A1 (en) | 2001-05-31 |
IL149761A0 (en) | 2002-11-10 |
CN1399748A (zh) | 2003-02-26 |
JP2003515819A (ja) | 2003-05-07 |
AUPQ428499A0 (en) | 1999-12-23 |
ZA200203961B (en) | 2003-05-19 |
BR0015912A (pt) | 2002-08-06 |
US7617183B1 (en) | 2009-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Korth et al. | System/U: a database system based on the universal relation assumption | |
US7631012B2 (en) | System and method of operating a database | |
Sayyadian et al. | Efficient keyword search across heterogeneous relational databases | |
US5551031A (en) | Program storage device and computer program product for outer join operations using responsibility regions assigned to inner tables in a relational database | |
US6216123B1 (en) | Method and system for rapid retrieval in a full text indexing system | |
US20060036633A1 (en) | System for indexing ontology-based semantic matching operators in a relational database system | |
JP2002163290A (ja) | クエリ最適化のためのコストに基づく具体化ビューの選択 | |
JP2004520633A (ja) | 属性又はキー値を選択的に利用することによりクエリ生成を最適化する方法と装置 | |
KR20020062310A (ko) | 데이타베이스 작동 방법 및 장치 | |
Bernstein et al. | Imprecise RDQL: towards generic retrieval in ontologies using similarity joins | |
EP1883021A1 (en) | Virtual pair algorithm for outer join resolution | |
CN115563148A (zh) | 数据库查询方法和装置 | |
Neelam et al. | Expressive Reasoning Graph Store: A Unified Framework for Managing RDF and Property Graph Databases | |
KR20040005937A (ko) | 데이터베이스를 운영하는 시스템 및 방법 | |
Hartig | Linked Data Query Processing Based on Link Traversal. | |
AU781799B2 (en) | A method and apparatus for operating a database | |
US20050076007A1 (en) | Structured query language table merging | |
Monge et al. | Integrating external information sources to guide Worldwide Web Information Retrieval | |
KR100541531B1 (ko) | 객체 지향 디비엠에스에서 경로식의 부질의 변환을 통한 질의 처리 방법 | |
Nassopoulos | Deducing Basic Graph Patterns from Logs of Linked Data Providers | |
JP2502262B2 (ja) | ネットワ―クデ―タベ―スアクセス方法 | |
Yerneni | Mediated query processing over autonomous data sources | |
Bassiouni | A logic for handling time in temporal databases | |
Taniar et al. | Parallel double sort-merge algorithm for object-oriented collection join queries | |
Bajaj | Integrating Multilingual Database Operators in PostgreSQL |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |