2011-12-05 3 views
4

저는 웹 페이지에서 사용되는 텍스트를 저장하는 두 가지 솔루션을 고려해야 할 과제를 수행하고 있습니다. 시나리오 : 한 강의에는 하나의 웹 페이지가 있고 한 강의에는 여러 강의가 있습니다.관계형 데이터베이스 대신 XmlType을 사용해야하는 이유는 무엇입니까?

첫 번째 대안은 정상적인 관계형 데이터베이스입니다.이 중 하나는 정상입니다.

다른 대안은 두 개의 "일반"속성과 Oracle의 XmlType이있는 테이블입니다. 이 XML 파일에서 하나의 주제에 대한 모든 데이터가 저장됩니다. 따라서 XML 파일에는 여러 강의 데이터가 포함됩니다. 대안 # 2에 찬반 양론이 필요합니다. # 1 대신 다른 # 2 사용을 고려해야하는 이유는 무엇입니까 ??

+1

좋은 질문입니다. 나는 이유를 생각할 수 없다. 그러나 나는 XML에 대한 합리적인 증오를 가지고있다. – Ben

답변

0

첫 번째 대안으로 웹 페이지를 저장하는 열에 LOB 데이터 형식을 사용해야합니다. VARCHAR2을 사용하면 서식이 느슨해집니다.

XMLTYPE 컬럼의 두 번째 대안에서는 LOB/CLOB 스토리지를 선택하거나 오브젝트 관계형 테이블 및 뷰로 분리하도록 선택할 수 있습니다. XMLTYPE은 외부 파일에 저장되지 않습니다.

두 번째 방법은 XPath 표현식을 사용하여 XML 문서를 검색하고 XML 태그를 인덱싱하는 기능을 제공합니다. 따라서 이것은 첫 번째 대안보다 더 강력합니다.

+0

Oracle 11g부터'XMLTYPE' 열에'BINARY' 저장소를 사용할 수 있습니다. 지금은 기본 저장소 옵션이라고 생각합니다. – wweicker

0

XML로 데이터를 저장하는 유일한 이유는 XML로 데이터를 받고 "stuff"의 하나의 연속 컨테이너로 취급하고자하는 경우입니다. XML 쿼리를 시도하는 것은 모든 멋진 오라클 기능을 사용하는 기능에 관계없이 때로는 어려운 문제입니다. 나는 해냈다.하지만 performace 페널티는 거칠거나 인덱스를 얻기 위해 농구를 뛰어 넘어야한다. 약간의 관점에 대한

, 나는에 조엘를 참조거야이 하나 Back to Basics - Joel on Software

0

나는 (내 머리 위로 떨어져) 생각할 수있는 몇 가지 이유 :

  1. 하는 경우 데이터는 본질적으로 관계형이 아니라 오히려 계층적이고 불규칙하므로 XML을 데이터를 테이블 구조로 강제 변환하는 것보다 더 적합한 저장 옵션이 될 수 있습니다.

  2. 데이터를 XML로 저장하면 XHMTL로 변환하여 표시하기가 더 쉽습니다.

  3. XML 형식을 사용하는 제작 시스템에서 데이터를 가져와 편집해야하는 경우이를 XML로 저장하고 소비하여 상당한 양의 데이터 변환을 저장합니다.

각 강의는 응용 프로그램에서 별도의 "페이지"인 점을 감안, 그러나, 하나에 모두 저장하는 대신 별도의 XML "버킷"로 각각 강연을 분할 나에게 더 의미가 보인다 XML 조각.

관련 문제