관계형 데이터베이스에서 XML 데이터 생성하기

때로는 다른 사람이 만든 예시를 따라가는 것이 프로젝트를 빠르게 시작하는 좋은 방법일 수 있습니다. 하지만 단점은 더 나은, 더 효율적인 해결책을 놓칠 수 있다는 것입니다. 최근에 게시한 "클라우드 환경에서의 XML" 관련 글에서, 우리는 DatabaseSpy를 사용하여 로컬 MySQL 데이터베이스와 아마존 관계형 데이터베이스 서비스(클라우드)에 연결했습니다. 아래와 같이 SQL SELECT 문에서 Concat() 함수를 사용하여 XML 형식의 출력을 비-XML 데이터로부터 생성했습니다.

저희의 SELECT 문은 MySQL 문서에 나와 있는 XML 지원 관련 예제를 참고하여 작성되었습니다. 이제 이 문장이 해결하려고 하는 문제에 대해 좀 더 자세히 살펴보겠습니다. 위와 같이 표시된 DatabaseSpy 결과 테이블을 복사하여 XMLSpy의 편집 창에 붙여넣을 수 있지만, 결과 테이블 자체만으로는 올바른 XML 문서를 만들 수 없습니다. 다음 기준에 따라 완벽하게 구성되려면 W3C의 정의, XML 문서는 반드시 루트(최상위) 요소를 포함해야 합니다. 다른 모든 요소와 논리적 구조는 반드시 최상위 요소 안에 포함되어야 합니다. 루트 요소는 XML 콘텐츠 전체를 감싸는 래퍼 역할을 한다고 생각할 수 있습니다. 이는 원래 결과에서 각 줄을 요소가 감싸는 방식과 유사합니다. 관계형 데이터에서 XML을 생성하는 더 나은 방법 우리는 결과를 수동으로 편집하여 루트 요소를 추가할 필요가 없으며, 이미 복잡한 SQL 쿼리에 루트 요소를 추가하기 위해 쿼리를 수정할 필요도 없습니다. DatabaseSpy를 사용하면 도시 정보 테이블과 같이 일반적인 데이터를 포함하는 데이터베이스 테이블에서 잘 구성된 XML 문서를 쉽게 추출할 수 있습니다. 데이터베이스 스파이의 내보내기 대화 상자에서 출력 형식을 XML 구조로 선택하고, 데이터베이스 계층 구조에서 "cities" 테이블을 선택한 다음, 대상 위치로 XMLSpy를 지정할 수 있습니다. 내보내기 대화 상자 하단의 미리보기 섹션에서는 테이블의 내용을 미리 확인할 수 있습니다.

"내보내기" 버튼을 클릭하면 DatabaseSpy는 테이블의 열 이름에서 파생된 XML 요소 이름으로 관계형 데이터를 포맷하고, 생성된 결과를 XMLSpy로 직접 전송합니다. 아래 스크린샷은 XMLSpy에서 확인되는 파일의 일부입니다. 하단의 "메시지" 창은 파일이 올바른 형식으로 작성되었음을 확인합니다.

DatabaseSpy는 루트 요소 를 제공하고, 데이터베이스 테이블의 컬럼 데이터 유형을 설명하는 주석을 추가했습니다. 또한, 우리는 복잡한 Concat() 함수를 사용하는 SQL 문을 직접 작성할 필요가 없었습니다. 이 글은 앞서 설명한 Concat() 함수의 출력을 완성하기 위한 루트 요소의 간단한 요구 사항을 해결하기 위해 시작되었습니다. 실제 프로젝트에서 관계형 데이터베이스를 XML로 변환해야 하는 경우, 요구 사항은 훨씬 더 복잡할 가능성이 높습니다.

Altova XMLSpy Altova XMLSpy는 널리 사용되는 모든 데이터베이스에 직접 연결되어 XML 기술과 관계형 데이터를 함께 사용할 수 있도록 지원합니다. XMLSpy를 사용하면 데이터베이스 구조에서 XML 스키마를 쉽게 생성하거나, XML 스키마에서 데이터베이스 스키마를 생성할 수 있습니다. 또한, XMLSpy는 데이터베이스에 직접 저장된 XML 데이터를 위한 고급 편집기 및 디버거를 제공하며, Microsoft SQL Server, IBM DB2, Oracle 데이터베이스에서 XML 기능을 위한 특화된 지원도 제공합니다. 정보 교환을 위한 XML 기반 표준을 더 많은 산업 분야에서 채택하고 발전함에 따라, 기존 데이터베이스에 저장된 데이터를 XML 형식으로 변환해야 하는 경우가 많습니다. Altova MapForce 이 기능은 데이터베이스에 연결하여 관계형 데이터를 XML 스키마와 호환되도록 매핑하고 변환할 수 있도록 지원합니다.

맵핑 기능을 사용하여 일회성 데이터 변환을 수행할 수 있으며, 맵핑 설정을 저장해두었다가 나중에 다시 열어 다른 변환을 수행할 수도 있습니다. 또한, 반복적인 변환이 필요한 경우, MapForce에게 맵핑 설정을 기반으로 로열티가 없는 소스 코드를 생성하도록 지시하여 이를 자체 프로젝트에 포함시킬 수 있습니다.

Altova 도구들이 관계형 데이터베이스에서 얼마나 잘 형식화된 XML을 생성하는지 직접 확인하고 싶으시다면, Altova MissionKit의 무료 체험판을 다운로드하여 사용해 보세요.