xml db 두번째 문의

hun98의 이미지

기존에 관계형 db로 만들어진 자바 app을 xmldb로 포팅하려 합니다.
테이블은 약 50개정도 이고..
데이타의 중복을 최대한 배재하도록 정규화 되어 있는 상태입니다.

excelon이라는 xmldb를 받아서 테스트해보니..(펑키님의 답처럼)
관계형 table
A B C 라는 필드에
1 2 3
4 5 6

xmldb는
<?XML 어쩌구>
<SALES>
..<ROW = "1">
....<A>1</A>
....<B>2</B>
....<C>3</C>
..</ROW>
..<ROW = "2">
....<A>4</A>
....<B>5</B>
....<C>6</C>
..</ROW>
</SALES>
이렇게 저장하더라구요...

이시점에서 무지 궁금한점이 있는데...

1. 결합 인덱스를 지원하느냐 하는점
- 하나의 필드에 대해서는 인덱스를 적용할 수 있다고 나오는데..
관계형 데이타 베이스 처럼 여러 필드로 인덱스를 구성하는 결합인덱스를
지원하느냐는 문제
( 데이타가 많아지고 검색조건이 여러개가 복합적인 경우가 많음 )
XSQL(Xquery)을 이용하면 된다고 하던데.. 믿을 만한건지 궁금...

2. 두개의 테이블 ( 부서코드:dept, 사원정보: emp ) 이 있으면..
관계형 데이타베이스에서는 emp 테이블에서는 부서정보테이블의 부서 코드
만 가지고 있어서.. 부서명이 변경되더라도 부서테이블의 부서명만 업데이트 하면 되는데..
조회시에는 조인을 해서 조회하고..
xmldb는 이런 경우(대부분의 경우겠지만) 어떻게 모델링을 하는지 궁금
(관계형 db 장점교육받을때. 파일이랑 비교하는거 같네요)

<만약 xmldb도 관계형 처럼 정규화 한다면..>
3. 2번질문이랑 중복되는거 같은데...
무결성 체크가 가능한지 궁금하네요...
fk, pk등

4. 조인 질의가 가능한지 궁금...

5. 쿼리플랜을 통한 질의 최적화가 가능한지...

<정규화 하지 않는다면>
6. 코드성 테이블의 업데이트시 데이타 테이블의 코드값은 어덯게 처리하는지
(설마 일일이 찾아가서 수정하는건 아니겠지요?)

펑키의 이미지

아이구 콕! 찝어서 저를 지목해주시니 빠저나갈 구멍이 없네요. 대충 대답해드리고 빠질려고 했는데.. 제가 excelon을 다운로드 받아서 한번 주욱 살펴본후 다시 대답해 드리겠습니다.

제가 XML은 무척 관심이 만은데 데이터형으로서가 아니라 환경 국성으로입니다. 즉, INI 파일을 대체하거나 윈도우즈 FORM을 대체하는 형식이거든요. 그래서 DB쪽도 그렇게 잘 알지는 못합니다. 하여간 빨리 되돌아 오겠습니다. 그럼 다운로드 받으러 후다닥~~~

펑키의 이미지

다운로드 받을려고 갔는데 다운로드 페이지가 그것은 없고 메시지큐 제품들만 걸려있어서 포기했습니다. 그래서 제가 상상으로만 한번 대답을 해보겠습니다.

먼저 XSQL의 경우에는 보통 RDB쪽에서 이러한 종류의 XML엔진을 탑재한 상황의 예입니다. 즉, DB엔진에 접근하기전에 XML 아답터 형식으로 존재하고 또 빼 내올때도 마찬가지입니다. 즉, 클라이언트 입장에서 보면 자신이 원하는 데이터 형식을 그대로 RDB에 매핑이 가능하고 원하는 형태로 가져올수 있다는 장점입니다.

이 경우 인덱스라던지 여타 데이터들은 기존의 DB형태로 저장이 됩니다. excelon이라는것은 다운로드 받아 보지 못하고 브로셔형태의 정보를 대충 (5분정도)읽어 보면 데이터의 저장 형태가 XML형태입니다. 그런데 제 생각에는 데이터가 저장은 XML형태로 되지만 그 아답터가 반드시 존재하는것 같습니다. 즉, 저장만 XML 파일 형태이지 DB 엔진은 존재하는것 같습니다.

XML자체만 가지고 인덱싱을 한다는것은 엔진의 측면에서는 손해보는것이 훨씬 만을겁니다. 즉, 인덱싱 파일은 별도로 존재하던지 인덱싱 데몬이 별도로 떠 있어서 파일을 관리하지 않을까 생각됩니다.

따라서 이러한 데몬들이 DOM형태의 관리를 지향하고 있지 않을까 하는 추측정도만 하고 있습니다. 그곳의 내용을 보면 캐싱 기능이 다르다고 하는데 제 생각에는 캐싱은 일반 상용 RDB들의 캐싱이 더 뛰어나지 않을까 생각됩니다.

전체적으로 제가 XML DB라는 그 제품에 문외한이어서 정확한 대답을 못해드립니다. 죄송합니다. 그런데 RDB에서 XML 핸들을 어렵지 안게 할수 있는것 같은데 왜 옮기실려고 하는지 궁금합니다. 어떠한 장점이 있는지 저에게도 좀 알려 주세요.

하여튼 죄송하게 되었습니다. 아무래도 다른분의 도움이 필요한듯 합니다. 도와주세요~~

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.