2011-01-09 2 views
1

내 응용 프로그램이 다른 공급 업체의 XML 데이터를 사용합니다. 모든 공급 업체는 서로 다른 xml 형식/스키마를 가지고 있으며 이러한 XML에서 다양한 데이터를 검색하려면 사용자 지정 쿼리가 필요합니다.XML 데이터베이스 평가

처음에는 RDBMS 접근 방식으로 시작했습니다. 여기서 벤더에서 특정 XML을 검색 한 후 XML을 구문 분석/쿼리하고 일부 테이블에서 데이터를 쓰게됩니다 (Woodstock StAX 파서 사용). 그러나 RDBMS (고정 스키마)의 본질 때문에 다른 공급 업체의 모든 XML 형식을 지원할 수는 없으며, 그렇다고해도 계층 적 XML을 RDBMS 고정 스키마 관계형 데이터로 "정규화"해야합니다.

공급 업체의 xml/데이터는 매일 자주 업데이트되며 크기는 몇 kbs에서 최대 50MB 데이터 파일까지 다양합니다.

다양한 NXD (원시 XML 데이터베이스), eXist-db, Sedna, BaseX 및 MonetDB를 다음 단계로 평가하여 이것이 내 용도인지 확인합니다.

이 중 일부를 해결하는 방법에 대한 실질적인 조언을 제공해 줄 수 있습니까? 또는 다른 형식/스키마의 많은 XML 데이터를 처리하는 유사한 시스템을 구축했습니다. 여기

내가 대답하려고 핵심 XML 요구 사항은 다음과 같습니다

  • 는 여러 소스에서 여러 XML 데이터 파일을 처리합니다. XML은 공급 업체마다 다릅니다.
  • 전체 문서뿐만 아니라 DB에있는 기존 XML의 일부 필드에 대한 XML 업데이트.
  • 특정 공급 업체에서 제공하는지 여부를 식별하고 이에 따라 쿼리를 실행하십시오.
  • XPath/XQuery를 사용하여이 xml을 쿼리하여 데이터를 읽으면 일반 뷰에서 사용자에게 표시 할 수 있습니다.

감사합니다. Subhro.

답변

0

통합 도구로 SQL Server Integration Services (SSIS)와 함께 SQL Server를 데이터베이스로 사용합니다.

SQL Server는 기본적으로 XML 열 형식을 지원합니다. XML이 스키마 또는 스키마 집합을 따르도록 요구할 수 있으며 XQuery를 사용하여 XML을 처리 할 수 ​​있습니다. 동시에, 벤더에서 벤더까지 동일한 XML 부분을 테이블로 분해 할 수 있습니다.

또한 XML 인덱스로 XML을 인덱싱 할 수 있으므로 쿼리 속도가 빨라집니다.

SSIS는 다른 디스크 드롭 또는 FTP 또는 웹 서비스를 통해 다른 XML 파일을 수집하는 데 사용할 수 있으며 추가 사전 처리를 사용하거나 사용하지 않고 데이터베이스로 처리 할 수 ​​있습니다. 예를 들어, 다른 XML 형식을 어느 정도 합리화하여 나머지 데이터 (또는 전체 문서)를 후속 쿼리에 대해 동일한 데이터베이스에 저장하면서 대부분의 데이터를 일반 관계형 테이블에 보관할 수 있습니다.

OBTW, SSIS는 SQL Server에서 무료입니다.

2

SQL 서버와 같은 하이브리드 데이터베이스가 아닌 기본 XML 데이터베이스를 사용하는 것이 옳다고 생각합니다.하이브리드 데이터베이스는 많은 작업을 수행하기 때문에 XQuery 및 XQuery 업데이트의 준수 구현과 같은 핵심 XML 기능을 제공하는 데 더 오래 걸리는 경우가 많습니다. 데이터 저장 방식이 너무 다양하기 때문에 개발자를 통제하기 어려울 수 있습니다.

여기에 진짜 문제가있는 제품은 무엇입니까? 데이터베이스 제품을 평가하는 것은 비용이 많이 드는 프로세스이며, 의미있는 응답을 얻기에 충분할 정도로 철저히 수행하면 잘못된 선택을하는 것보다 비용이 많이들 것입니다. 데이터베이스 프로젝트가 실패하면 데이터베이스 소프트웨어가 부족하기 때문에 일반적으로 아니지만, 선택한 데이터베이스 소프트웨어를 최대한 활용할 수있는 기술과 경험이 부족하기 때문에 일반적으로 실패했습니다. 그래서 내가 말할 수있는 것은, 당신이 사용할 수있는 스킬을 기반으로 한 제품을 선택하는 것입니다.