본 발명에 따라 전술한 기술적 과제는, 분산된 정보 데이터베이스에 대한 스키마 생성 방법에 있어서, 데이터베이스에 대한 명세언어 문서를 파싱하여 메타 정보를 생성하는 단계; 데이터베이스가 지역 데이터베이스인 경우, 파싱된 각 항목에 대하여 지역 스키마를 생성하는 단계; 및 데이터베이스가 지역 데이터베이스가 아닌 경우, 입력받은 질의를 파싱하고 리턴 절의 각 항목에 대하여 전역 스키마를 생성하는 단계를 포함하는 것을 특징으로 하는 스키마 생성 방법에 의해 달성된다.
또한, 상기 메타 정보는, 데이터베이스를 관리하기 위한 정보로서, URL, 데이터베이스 이름, 타입 또는 이들의 조합을 포함하는 것이 바람직하다.
또한, 상기 지역 스키마를 생성하는 단계는, 파싱된 각 항목에 대하여 링크가 존재하는 경우 그 유효성을 검사하는 단계; 파싱된 각 항목에 대하여 데이터 항 목을 스키마 엘리먼트로 변환하는 단계; KEY 및/또는 SEARCH 오퍼레이션을 검색 엘리먼트로 변환하는 단계; 및 제약조건을 나타내는 CONSTRAINT를 매핑정보로 변환하는 단계를 포함하는 것이 바람직하다.
또한, 상기 전역 스키마를 생성하는 단계는, 파싱된 리턴 절의 각 항목에 대하여 데이터 항목의 유효성을 검사하고 이를 스키마 엘리먼트로 변환하는 단계; 및 제약 조건을 나타내는 CONSTRAINT를 확장하여 전역 스키마와 매핑 정보로 변환하는 단계를 포함하는 것이 바람직하다.
또한, 상기 스키마 엘리먼트는 하위에 스키마 엘리먼트를 내포할 수 있는 복합 타입 엘리먼트로 표현하는 것이 바람직하다.
한편, 본 발명의 다른 분야에 따르면 전술한 기술적 과제는, 분산된 정보 데이터베이스를 이용한 정보 통합 시스템에 있어서, 사용자로부터 원하는 정보에 대한 질의를 입력받아 분산된 각 정보 데이터베이스에 대한 지역 질의로 세분화하는 질의 처리부; 세분화된 지역 질의를 실행하고 질의 실행 결과를 질의 처리부에 전달하는 적어도 하나의 랩퍼를 관리하는 랩퍼 관리부; 및 정보 데이터베이스에 대한 명세언어 문서를 파싱하여 메타 정보를 생성하며, 정보 데이터베이스가 지역 데이터베이스인 경우 파싱된 각 항목에 대하여 지역 스키마를 생성하고, 정보 데이터베이스가 지역 데이터베이스가 아닌 경우 입력받은 질의를 파싱하고 리턴 절의 각 항목에 대하여 전역 스키마를 생성하는 스키마 관리부를 포함하는 것을 특징으로 하는 정보 통합 시스템에 의해 달성된다.
이하에서는 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설 명한다.
본 발명은 기존의 랩퍼-중재자 기반 데이터 통합 방법에 대하여 생물정보 데이터베이스가 가지는 특성을 반영하여 기능을 특화한 랩퍼-중재자 기반 데이터 통합 방법의 확장 모델이다. 직관적인 명세언어를 이용하여 지역 데이터베이스를 기술하고, 통합 뷰를 생성하기 위하여 지역 데이터베이스를 제약하고 병합하는 조건을 기술할 수 있다.
인터넷 상의 생물정보 자원들은 규칙적인 패턴을 가지는 반구조화된 형태로 기술되며, 이러한 패턴들은 정규 표현식(regular expression)으로 표현될 수 있다. 본 발명에서 사용되는 명세언어는 생물정보 자원에 대한 추출 규칙을 정의하기 위하여 W3C 표준안의 정규 표현식을 지원한다. 따라서, 생물정보를 기술하는 데 융통성 있게 활용될 수 있다.
생물 정보 데이터베이스는 이종 데이터베이스들간의 연계성이 일반 데이터베이스에 비해 높아 하나의 지역 데이터베이스에서 2개 이상의 지역 데이터베이스를 참조하는 경우가 빈번하다. 본 발명에 따른 생물정보 통합 시스템은 지역 데이터베이스에 포함된 다른 데이터베이스로의 참조를 위한 링크 개념을 도입하여 연관된 데이터베이스에 대하여도 한번의 요청으로 통합된 뷰를 제공할 수 있다.
또한, 본 발명에 따른 생물정보 통합 시스템은, 데이터베이스 통합을 위하여 지역 데이터베이스에 저장된 데이터가 통합된 장소에 물리적으로 이동하는 것이 아니라, 각 지역 데이터베이스의 내용을 가상적으로 통합한 뷰(view)를 제공한다. 사용자는 제공되는 통합 뷰를 통해서 원하는 데이터를 질의(Query)한다. 이를 위 해서는 각 지역 데이터베이스와 직접 인터페이스 되는 자료 저장소인 랩퍼(wrapper)가 필요하다. 즉, 랩퍼는 명세언어를 사용하여 선언하며 이를 컴파일 하여 얻어진다. 이러한 랩퍼는 그 명세에 따라 대상 생물정보 데이터베이스에 대한 구조 및 타 생물정보와의 관련성 정보를 인식하고, 대상 생물정보검색 시스템이 제공하는 모든 연산을 파악한다. 이를 기반으로 랩퍼는 대상 생물정보 데이터베이스에게 요구되는 각종 정보를 추출하고 이에 대한 각종 메타 정보들을 제공하는 역할을 한다. 랩퍼는 지역 데이터베이스에 대응하여 하나씩 존재하며, 지역 데이터베이스의 내용을 생물정보 통합 시스템에 전달함으로써 통합 뷰를 구성할 정보를 제공한다. 또한, 랩퍼는 사용자로부터 받은 질의를 지역 데이터베이스에 전달하고 그 질의 결과를 생물정보 통합 시스템에 전달한다.
이때, 랩퍼가 생물정보 통합 시스템에 지역 데이터베이스의 내용을 전달하기 위하여 각 지역 데이터베이스마다 상이한 명세를 하나의 중립적인 데이터베이스의 구조를 나타내는 스키마(schema)로 변환할 필요가 있다. 이를 위하여 본 발명에서는 W3C 표준안의 권고에 따라 XML 스키마를 이용한다. 또한, 사용자가 원하는 XML 뷰를 정의하기 위해 전술한 명세언어와 W3C 표준안의 권고에 따른 XQuery를 이용한다. 명세언어와 XQuery를 이용한 통합 뷰에 대한 정의가 이루어 지면, 이로부터 가상의 XML 스키마가 생성된다. 따라서, 본 발명에서는 명세언어로 기술된 데이터베이스 또는 뷰를 XML 스키마로 변환하는 방법 및 장치를 제공한다.
보다 구체적으로, 도 1은 본 발명에 따른 생물정보 통합 시스템의 개요도이다.
도 1을 참조하면, 생물정보 통합 시스템은 질의 처리부(10), 스키마 관리부(20) 및 랩퍼 관리부(30)를 구비한다. 그밖에 복수의 이종 데이터베이스에 대한 랩퍼(32)가 포함된다. 각 랩퍼들은 네트워크를 통해 다양한 이종의 지역 데이터베이스들(42 내지 46)과 연결된다.
사용자 인터페이스(도시하지 않음)를 통해 통합 모델에 대한 사용자의 질의가 입력되면, 질의 처리부(10)가 XQuery 질의를 분석하여 지역 질의로 세분화한 후, 지역 데이터베이스에 대한 데이터 추출을 담당하는 각 랩퍼(32)에게 질의를 전달한다. 각 랩퍼(32)는 다양한 지역 데이터베이스들(42 내지 46)에 대해 질의를 실행하고, 질의 수행 결과 XML 형태의 질의 처리 결과 문서를 질의 처리부(10)에 전달한다. 질의 처리부(10)는 각 랩퍼로부터 생성된 질의 처리 결과를 통합하여 사용자에게 제시한다.
사용자는 후술하는 명세언어를 이용하여 특정 데이터베이스로부터 추출할 데이터 항목들을 정의하고, 이들에 대한 제약 조건(constraint)을 기술할 수 있다. 명세언어 문서가 작성되면 스키마 관리부(20)는 해당 데이터베이스에 대한 지역 스키마(local schema) 또는 전역 스키마(global schema)와 매핑 정보를 생성한다. 지역 스키마는 단일 데이터베이스에 대한 데이터의 명세를 말하고, 전역 스키마는 복수의 지역 데이터베이스들의 특정 항목들을 제약하여 생성한 통합된 뷰에 대한 명세를 말한다. 매핑정보는 스키마에 대한 제약조건이 기술될 경우 생성되며 전역 스키마가 참조한 지역 스키마에 대한 참조 조건 또는 지역 스키마 내의 자체 제약 조건이 포함된다.
도 2는 본 발명에 따른 명세언어로 기술된 데이터베이스의 스키마를 생성하는 방법을 도시한 전체 흐름 도이다.
도 2를 참조하면, 사용자는 사용 목적에 따라 명세언어로 단일 데이터베이스에 대한 지역 스키마(local schema)를 기술하거나, 또는 2개 이상의 단일 데이터베이스를 참조하여 전역 스키마(global schema)를 기술할 수 있다. 스키마는 명세언어 문서에 기술된 TYPE에 따라 전역 스키마 또는 지역 스키마로 구분된다. 명세언어 문서가 입력되면 스키마 관리기(20)에 포함되는 명세언어 파서가 명세언어 문서를 파싱(102 단계)하고, 파싱된 정보를 해석하여 메타정보를 기록한다(104 단계). 이후 명세언어의 타입 정보에 따라 지역스키마 생성과정과 전역스키마 생성과정으로 분리되어 처리된다(106 단계).
보다 구체적으로, 도 3은 도 2에 도시된 지역 스키마(L)를 생성하는 방법을 도시한 상세 흐름 도이다. 또한, 도 6은 명세언어 문서를 스키마로 변환하는 일 예를 도시한 도면이다.
먼저 도 6을 참조하면, 지역스키마를 위한 명세언어 문서(400)에는 402 내지 406과 같이 XML 스키마(450)의 엘리먼트로 변환될 데이터 항목들이 추출 규칙과 함께 기술되어 있다. 명세언어 문서의 각 항목들은 후술하는 변환 규칙에 따라 XML 스키마의 엘리먼트들로 변환된다. 특히, 406과 같이 다른 데이터베이스로의 참조가 포함된 엘리먼트에 대해서는 XML 스키마의 link 속성(attribute)을 추가로 생성한다. 또한, 전술한 바와 같이 각 데이터 항목을 XML 스키마의 엘리먼트로 변환한 후, 오퍼레이션 기술부에 대한 변환을 수행한다. 이때, 데이터에 대한 제약 조건 을 기술하는 CONSTRAINTS가 존재할 경우, 변환된 데이터 항목 중 CONSTRAINTS의 return 이하에 기술된 일부 항목만을 지역 스키마에 반영한다. 반영된 제약 조건은 XML 문서 형태로 매핑정보(24)에 저장된다. CONSTRAINTS는 XQuery의 형태로 기술된다.
이상의 지역 스키마 변환 방법을 도 3을 참조하여 요약하면, 전술한 102 단계 및 104 단계를 통해 생성된 파스 트리(parse tree)의 각 항목에 대하여, 다른 데이터베이스로의 참조가 포함된 LINK 항목이 존재하는지 여부를 확인한다(112 단계). 만약, LINK 항목이 존재하면, LINK의 유효성(validity)을 검사하고(114 단계), LINK 항목을 XML 스키마의 엘리먼트로 변환한다(116 단계). 다음으로, 오퍼레이션 기술에 해당하는 KEY 또는 SEARCH 항목을 XML 스키마의 해당 엘리먼트로 변환한다(120 단계). 또한, 제약조건을 기술하는 CONSTRAINTS 항목이 존재하면(122 단계), Where 절 이하에 기술된 조건에 부합하는 데이터에 대하여 CONSTRAINTS의 return 이하에 기술된 일부 데이터 항목만을 지역 스키마에 반영한다(126 단계). 반영된 제약 조건은 XML 문서 형태로 매핑 정보(124)에 저장된다. 명세언어 문서에 포함된 각 항목들이 구체적으로 어떻게 XML 스키마로 변환되는지에 대한 규칙은 후술한다.
한편, 도 4는 도 2에 도시된 전역 스키마(G)를 생성하는 방법을 도시한 상세 흐름 도이다.
도 4를 참조하면, 전역 스키마를 위한 명세언어 문서는 CONSTRIANTS 위주로 기술된다. CONSTRIANTS의 XQuery를 파싱하여(130 단계), For 절에 참조된 데이터 베이스에 대해 Where절에 기술된 제약조건에 만족하는 데이터들을 Return절에 정의된 데이터 항목들로 구성하도록 한다. 이때 For 절에서 참조하는 데이터베이스는 이미 지역 스키마 혹은 전역 스키마로 등록되어 있어야 한다. 이와 같이 참조하는 데이터베이스에 대한 유효성 검사가 끝나면(142 단계), 명세언어 문서의 각 데이터 항목을 XML 스키마의 엘리먼트들로 변환한다(144 단계). 이때, 도 6의 452에 도시된 바와 같이, 변환 시 참조한 지역스키마 정보의 유지를 위해 별도의 속성 필드들을 추가로 유지한다. 한편, 참조한 데이터베이스에 대한 제약조건이 매핑정보(152)에 저장되어 있을 경우 현재의 Where 절 이하의 조건과 병합하여 매핑 정보(152)에 저장한다. 매핑 정보는 제약 조건의 통합과 참조 데이터베이스에 대한 참조 조건이 기술되며, 매핑정보는 사용자 질의를 각 랩퍼에 대한 지역 질의로 분할할 때 참조된다.
이하에서는 전술한 스키마 생성 장치 및 스키마 생성 방법에 기초하여 보다 구체적으로 명세언어 문서에 포함된 각 항목들이 구체적으로 어떻게 XML 스키마로 변환되는지에 대한 규칙을 상세히 설명한다.
도 5는 본 발명에 따른 명세언어 문서를 스키마로 변환하는 규칙을 설명하기 위한 참고도 이다.
도 5 및 도 6을 참조하면, 명세언어 문서는 크게 메타 정보부(302)와, 데이터부(304) 및 오퍼레이션부(306)로 구분된다. 메타 정보부(302)는, URL과 데이터베이스 이름, 타입 등 데이터베이스를 유지관리 하기 위해 필요한 정보가 포함된다. 데이터부(304)는, XML 스키마에 포함될 데이터 항목들과 이들의 추출 규칙을 정의한다. 오퍼레이션부(306)는, 실제 소스 데이터베이스에서 데이터의 유일성을 보장하기 위해 검색의 기준이 되는 KEY와, KEY 이외의 검색을 위해 필요한 인자들을 정의하는 SEARCH, 그리고 제약조건을 기술하는 CONSTRAINTS 및 타 데이터베이스에 대한 참조를 명시하는 LINK가 정의된다.
본 발명에서는 XML 스키마에서 지원하는 단일타입 엘리먼트(Simpletype element) 이외에 복합타입 엘리먼트(Complextype element)의 기술 방법도 제공한다. 복합타입 엘리먼트는 하위에 엘리먼트를 가지는 복합 데이터의 구조성을 정의한다. 예를 들면, 도 6의 404가 복합 엘리먼트에 해당한다. 그밖에도 XML 스키마 문법에서 지원하는 엘리먼트의 nillable, min, maxOccurs, facet 속성을 지원하는 표현법을 제공한다. 또한, link는 참조 대상 데이터베이스 이름과 대상 데이터베이스의 키 값을 디폴트값으로 가진다.
도 6은 명세언어 문서를 스키마로 변환하는 일 예를 도시한 도면이다.
도 6을 참조하면, 도 5에서 상술한 변환 규칙에 따라 명세언어 문서(400)를 XML 스키마(450)로 변환하는 예가 도시된다.
VAR는 명세언어 문서에서 사용될 변수를 정의한다. 소스 데이터베이스의 명세언어 문서에서 처리대상이 되는 컨텐츠를 임시 변수에 저장한 후 그 변수에 적절한 처리를 가하여 데이터 항목들을 생성하는데 이용한다.
또한, 복합타입 엘리먼트를 제외한 모든 엘리먼트와 속성은 데이터 타입(type)을 가진다(404). 데이터 타입은 데이터의 표현범위를 제한하기 위해 사용되며, XML 스키마에서 사용 가능한 integer, double, string, date, boolean 타입을 기본으로 제공한다.
도 3의 전역스키마 생성 방법에서 상술한 바와 같이, 각 엘리먼트는 해당 엘리먼트의 근원을 표시하기 위해 source와 state라는 속성을 가진다(452). source 속성은 해당 엘리먼트가 어떤 데이터베이스를 기초로 하여 작성되었는지에 대한 정보를 가지며, state 속성은 엘리먼트의 신규성 및 기존 엘리먼트의 재사용성 여부에 대한 정보를 가진다. 이 정보는 전역스키마를 위한 데이터 수집 시 참조할 지역스키마를 찾는데 활용된다.
한편, KEY는 소스 데이터베이스에 대한 기본 검색 조건을 기술한다(408). KEY로 정의된 항목은 소스 데이터베이스에서 데이터의 유일성을 보장하는 기본 항목으로 하나의 KEY 값에 대해 단일 데이터가 검색된다. KEY의 QUERY(412)는 KEY를 이용한 검색방법, 즉 검색주소를 의미한다. 실제 랩퍼(32)에서 해당 KEY를 가지고 검색할 때 QUERY의 주소를 참조하여 검색결과를 획득한다.
또한, SEARCH는 KEY 이외의 검색 조건을 기술한다(410). 일반적인 생물정보 데이터베이스의 경우 KEY 이외의 검색이 가능하도록 구성되어 있는데, KEY를 제외한 다른 검색 기준이 되는 것들을 PARAMETER로 정의하여 사용할 수 있다. 각 PARAMETER는 옵션으로 DEFAULT 값과 NOT NULL을 정의할 수 있다(414). NOT NULL은 반드시 입력해야 하는 값을 말하여, DEFAULT는 사용자가 값을 입력하지 않았을 경우 기본적으로 사용될 값을 가리킨다. SEARCH의 TARGET 항목(416)은 SEARCH 검색 후 추출될 데이터를 처리할 또 다른 랩퍼에 대한 명세를 가리킨다. 기본 키 이외의 검색의 경우 1개 이상의 데이터들이 리스트 형태로 나열되는데, 리스트에서 다 시 스키마에 기술된 데이터 형태로 추출하기 위한 규칙이 TARGET에 정의된 랩퍼에서 수행된다.
도 7은 랩퍼의 추출 결과의 일 예를 도시한 도면이다.
도 7을 참조하면, 지역 스키마에 대한 랩퍼의 실제 데이터 추출 결과를 예시한다. 500은 GenBank 지역 스키마에 대한 추출 예이고, 550은 Taxonomy 지역 스키마에 대한 추출 예이다. 전술한 도 6의 406에서 organism 엘리먼트에 LINK를 정의한 결과가 도 7의 502에 도시된다. Homo Sapiens 데이터는 Taxonomy 데이터베이스에 KEY가 9606으로 정의되어 있으며, 실제 Taxonomy 데이터베이스를 KEY로 검색한 결과가 550과 같이 도시된다. 552에 도시된 예처럼 LINK는 다른 데이터베이스 이외에 자신의 데이터베이스를 지시할 수도 있다.
한편, 본 발명에 따른 스키마 생성 방법은 컴퓨터 프로그램으로 작성 가능하다. 상기 프로그램을 구성하는 코드들 및 코드 세그먼트들은 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 또한, 상기 프로그램은 컴퓨터가 읽을 수 있는 정보저장매체(computer readable media)에 저장되고, 컴퓨터에 의하여 읽혀지고 실행됨으로써 스키마 생성 방법을 구현한다. 상기 정보저장매체는 자기 기록매체, 광 기록매체, 및 캐리어 웨이브 매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관 점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.