W3C의 X쿼리 언어 표준
상태바
W3C의 X쿼리 언어 표준
  • 데이터넷
  • 승인 2007.04.24 00:00
  • 댓글 0
이 기사를 공유합니다

데이터베이스 관리의 역동적 변화 ‘기폭제’
아직 미성숙 … ‘배치 방법·채택 시기’ 신중해야

W3C에서 심의 중인 X쿼리(Xquery) 1.0 표준은 XML 프로세싱을 관계형 데이터베이스 관리 시스템 속으로 한층 더 깊게 가져가 준다. 하지만 X쿼리는 또한 아직 다 성숙하지 못했으며, 제한적이기도 하다. X쿼리에 대해 반드시 알고 넘어가야 할 것들을 정리했다.

W3C의 X쿼리 언어 표준은 데이터베이스 관리에서의 역동적인 변화를 위한 기폭제라고 할 수 있다. 즉 이것은 기업이 보다 폭넓은 데이터와 표준을 액세스, 분석 및 관리하도록 관계형 시스템을 발전시켜 나갈 수 있게 해줄 것이다.
W3C의 X쿼리를 후원하는 곳들로는 데이터다이렉트 테크놀로지스(DataDirect Technologies, 프로그레스 소프트웨어 소속), IBM, 마이크로소프트, 그리고 오라클 등이 포함된다.

XML 데이터 가치 향상에 큰 영향
정보 설계자들은 XML 스키마를 채택할 때 X쿼리를 배치하는 방법에 대해 신중한 선택을 함으로써 기존의 관계형 시스템이 혼란에 빠지는 일이 없게 해야 한다. 그리고 X쿼리는 아직은 미성숙하지만 XML 데이터로부터 가치를 뽑아내는 데 분명 큰 영향을 미치고 있다.
W3C의 X쿼리 1.0은 지난 11월 제안 권고안 상태로 이동했으며, 덕분에 XML 데이터 질의에 대한 SQL식 접근 방식이 공식적 인가를 받게 될 가능성이 더욱 높아졌다.
진화하는 표준에서 볼 수 있듯이 X쿼리에 대한 지원은 주류 제품에서 제자리를 찾아가고 있다. 예를 들어 IBM의 DB2 버전은 X쿼리를 혼성 서버의 일부로서 이행하고 있다. 그리고 오라클은 데이터베이스 개발자에게 XML 질의 안에 XML을 임베딩하거나, X쿼리 표준을 채택할 수 있는 선택권을 주고 있다. 이러한 발전은 XML 데이터의 잠재적 가치에 중요한 변화가 생겼음을 대변한다.
X쿼리는 본질적으로 관계형 업체들이 XML 프로세싱을 자신들의 데이터베이스 엔진 안으로 보다 깊숙이 가져갈 수 있게 해준다. 그러면 관계형 DBMS는 옵티마이저(optimizer) 가 사용하는 XML 인덱스를 만들 수 있기 때문에 시스템은 SQL과 같은 효율성을 갖고 XML 데이터에 대조해 질의를 수행할 수 있다.
X쿼리는 또한 계층식 아키텍처에서 중요하게 사용될 수 있다. 즉 데이터베이스와 미들웨어 업체들은 X쿼리를 이용해 아중 이기종 소스들로부터 XML이나 SQL 데이터에 접근할 수 있다.
하지만 X쿼리는 아직 XML 데이터로 읽기 전용 액세스를 제공할 정도로밖에 성숙하지 못했다. 물론 이후에는 업데이트와 다른 기능들이 추가될 것이다. 그리고 X쿼리는 SQL과 달리 애널리틱스(analytics)와 BI(Business Intelligence)를 지원할 준비가 전혀 되지 않았다.

실제 애플리케이션
회사들은 SOAP(Simple Object Accss Protocol) 메시지, 역동적 웹 사이트, 데이터베이스 퍼블리싱, 그리고 보고서 생성용으로 XML을 역동적으로 만들 필요가 있을 때 X쿼리를 사용하기 시작하고 있다. 예를 들어 데이터다이렉트 테크노롤지즈는 고객 중 한 곳에서는 데이터다이렉트의 X쿼리 드라이버를 이용해 세일즈포스닷컴(Salesforce.com)과 오라클 데이터베이스의 고객 데이터를 통합해 어도비의 PDF 포맷으로 제안서를 만들고 있다고 말했다. 그리고 초대형 MXL 파일을 질의하는 데 이 회사의 X쿼리 드라이버를 사용하는 고객도 있다고 한다.
IBM은 X쿼리 시장에서 그 활동이 매우 두드러진다. 최초의 SQL 언어를 고안했던 IBM의 펠로우, 돈 챔벌레인은 X쿼리의 전조격인 ‘퀼트(Quilt)’의 공동 설계자이기도 하다(데이터 다이렉터의 조나단 로비와 오라클의 다니엘라 플로리스큐가 함께 했다). IBM의 XML 지원은 간단한 데이터 유형 익스텐더에서부터 메시지 대기열에 있는 프로세싱 XML용으로 저장된 프로시저와 기타 기능들에까지 발전했다.
그리고 DB2 9의 ‘퓨어XML(pureXML)’ 이니셔티브는 IBM의 DB2 디벨로퍼 워크벤치(Developer Workbench)에 X쿼리 기능성을 가져다 주었다. 예를 들어 비주얼 X쿼리 빌더(Visual XQuery Builder)는 개발자들이 마법사를 이용해 XML 질의를 만들고 실행할 수 있게 해준다.
오라클도 IBM과 비슷한 길을 걷고 있다. 이 회사는 네이티브 XML 데이터 스토리지를 제공한(2001년 9i 릴리즈에서) 최초의 주요 업체였으며, 그 이후로 XML DB 기술(현재 10g 릴리즈 내 사양)을 개발해 왔다.
오라클 데이터베이스에 저장된 XML 데이터로 액세스하는 데 있어 개발자들에게는 SQL 질의 안에 XML을 임베딩하거나, X쿼리 표준을 사용할 수 있는 선택권이 있다. 오라클은 XML 데이터를 관계형 테이블 스트럭처로, 계약서 같은 문서의 스트럭처가 보존이 되는 보다 문서 중심적인 패러다임으로 ‘슈레딩(shredding)’ 즉 분해(decomposing)한다.
마이크로소프트의 SQL 서버는 몇 가지 형태의 XML 프로세싱을 지원하고 있으며, 다음 두 번의 릴리즈를 통해 X쿼리 지원을 늘려갈 계획이다. 마이크로소프트의 X쿼리 지원은 IBM이나 오라클 것 만큼 좋지 못하지만, 그 보다도 이 회사는 윈도 플랫폼 전체에서 X쿼리와 XML 지원을 이행하는 데 있어 더 많은 개선의 여지를 갖고 있다. 올해 조직들은 프론트엔드에서 X쿼리를 지원하게 될 오피스 2007의 오픈 XML 포맷(Open XML Formats)을 주시해야 할 것이다.
이들 뿐 아니라 X쿼리 지원에서 두곽을 드러내고 있는 중소기업들도 있다. 예를 들어 선도적인 XML 데이터베이스 전문 업체로 마크로직(Mark Logic)이 있다. 이 회사는 자사의 마크로직 서버(MarkLogic Server)에서 발빠르게 X쿼리를 이행했으며, 이것은 데이터의 효율적인 질의를 가능하게 했다.

관계형 표준들
X쿼리는 제임스 클락과 XSL 워크그룹에서 만든 W3C 언어인 XSLT(Extensible Stylesheet Language Transformations)와 같은 관계형 표준들이 가득한 연못에서 사는 큰 물고기라 할 수 있다. XSLT와 X쿼리간에는 얼마간 중복되는 부분이 있긴 하지만, XSLT가 문서를 XML나 다른 포맷으로 변형하는 데 쓰이는 스타일 시트 언어로 만들어진 반면, X쿼리의 임무는 XML 데이터용이 아니라 SQL이 하는 일을 복제하는 것이다.
X쿼리에 대한 W3C 표준 작업과 함께 또 하나 중요하게 부상하고 있는 표준으로 JSR(Java Specification Request) 225, 즉 XQJ(XQuery API for Java)가 있다. IBM과 오라클이 후원하는 JSR 225는 JDBC(Java Database Connectivity)가 관계형 데이터베이스를 액세스, 질의 및 업데이트했던 것과 상당 부분 같은 방식으로 XML 데이터 액세스를 위한 표준 방안을 제공할 것이다.
SOA(Service-Oriented Architecture) 방안도 또한 XML에 의존하고 있다. 따라서 RDBMS 업체들이 XML이 지배하는 세상과 끈을 유지하려고 발빠르게 움직이고 있는 것도 놀랄 일은 아니다. X쿼리 표준은 모두에게 중요하기 때문에, 그 발전은 SQL을 포함한 다른 업계 표준보다 무리없이 진행될 것이다.
하지만 데이터 소스들간의 구분은 언제나 존재할 것이며, 데이터베이스 및 미들웨어 업체들은 각 데이트 소스용의 API를 학습 및 이행하고 많은 프로시저 코드를 만들어야 하는 XML 데이터 통합에 대한 개발자의 부담을 덜어 줄 수 있을 경우 성공을 거두게 될 것이다.
현재로서 X쿼리의 가장 큰 약점은 복잡한 게 아니라 바로 성숙하지 못했다는 점이다. 이것은 XML 데이터에 읽기 전용 액세스를 제공하며, 애널리틱스와 BI 지원이 부족하다. 하지만 업데이트 및 기타 기능들이 향후 추가될 전망이며, 검색 엔진의 인기가 높아짐에 따라 풀 텍스트 검색에 대해 보다 정밀한 제어를 주는 익스텐션을 제공하는 방향으로 빌드아웃이 가속화될 것이다.

X쿼리와 SQL
X쿼리에 대한 논의에서 SQL을 언급하지 않고 넘어갈 수는 없다. SQL은 관계형 테이블로 조직화된 데이터를 액세스 및 조작할 수 있다. 정규화(nomalization), 주 핵심 관계, 그리고 인덱스에 따라 SQL 질의가 효율성을 가져다 줄 데이터가 결정된다.
XML은 데이터를 노출시킴으로써 이것이 재활용될 수 있게 하는 데 대한 것이다. 문서와 문서 부분들간의 계급과 순차적 관계도 또한 중요하며, 따라서 X쿼리 기능은 SQL과는 다른 작동을 지원해야 한다. 이를 가능하게 하기 위해서는 X쿼리와 XSLT 워크그룹에서 직무를 구분해야 한다. 이들간 경쟁이 발전을 저해할 수 있기 때문이다.
X쿼리는 결코 SQL을 대신하지 못할 것인데, 그 이유는 대부분의 비즈니스 데이터가 관계형 모델을 통해 저장 및 액세스 되는 데 대해 완전히 만족하고 있기 때문이다. X쿼리는 성장하는 XML 문서의 세계와, 이런 데이터 소스의 상호교환을 통한 협업과 콘텐츠에 초점을 두고 있다. 업체들은 이런 용도에 맞는 기술을 제공하지 못할 경우 관련성이 사라진다는 사실을 잘 알고 있다.
하지만 RDBMS 업체들이 SQL과 같이 초 단위 아래의 응답 시간으로 X쿼리와 XML 기능성을 전달할 수 있을지 여부는 아직 불확실하다. 이들이 이러한 성능을 제공하지 못할 경우에 고객은 자신들의 XML 데이터 관리 문제를 전용 솔루션이나 맞춤 제작된 솔루션, 혹은 미들웨어 지향형 솔루션으로 해결하려 할 것이다.

요점 정리
약속 W3C의 X쿼리 언어 표준은 데이터베이스 관리에 있어 극적인 변화를 가져다 줄 수 있는 기폭제라고 할 수 있다. 즉 이것은 기업에서 보다 폭넓은 데이터와 정보를 액세스,분석 및 관리하도록 관계형 시스템을 발전시킬 수 있게 해준다.
참여 업체들 W3C의 X쿼리를 후원하고 있는 업체들로는 데이터다이렉트테크놀로지스(프로그레스 소프트웨어 소속), IBM, 마이크로소프트 및 오라클 등이 있다.
전망 정보 설계자는 기존의 관계형 시스템이 혼돈 상태에 빠지지 않도록 X쿼리를 어떻게 배치할지, 그리고 언제 XML 스키마를 채택할지에 대해 신중히 선택해야 한다. 그리고 X쿼리는 아직 미성숙하긴 하지만 XML 데이터로부터 가치를 확보하는 데 있어 분명 큰 영향을 미칠 것이다.


댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.