數奇雜記  

20070618 평면과 구조문서, 멧돼지
 2007년 6월 18일 (월요일) 화창하게 맑음. 올들어 가장 더운 것 같다. 

평면구조의 테이블과 구조문서

KRISTAL의 기본적인 문서 저장구조는 평면(plain)이다. 문서내의 각 항목들은 섹션(section)이라고 이름붙여졌고 이들간의 관계는 물리적으로는 없다. 이에 대한 해석은 데이터베이스 관리자들이 할 일이다. 그런데 점차적으로 사용자의 참여가 증가하면서 문서-문서 또는 문서-항목 간의 관계가 발생하는 구조적 문제점들이 나타나고 있다.

예를 들어 게시판이나 뉴스의 댓글은 해당 문서에 종속적인 즉 구조적인 관계를 지니게 된다. 저장엔진의 입장에서는 몇개의 댓글이 발생할 알 수 없으므로 어느 정도의 영역을 댓글에 할당해야 할 지, 그보다는 근본적으로 이러한 문서를 구조적으로 저장할 수 있을 지의 문제는 해결하기가 참 어려워 보인다.

댓글의 경우 가장 현실적인 해결방안은 별도의 댓글테이블을 생성하여 여기에 댓글을 쌓아가면서 부모 테이블과의 관계를 2차 열쇠글 정도로 연결하는 것으로 보인다. 이러한 시스템은 관리자가 테이블간의 관계를 임의로 생성하고 이를 응용프로그램 수준에서 연결해야 하므로 인터페이스가 복잡해질 가능성이 있다. 시스템의 하부 구조에서 이를 간단하게 해결해 줄 수 있는 방법이 없을까?

간단한 대안으로 단일 섹션에 대한 XML 적용을 생각해보았다. 예를 들어 "댓글" 섹션이 필요하고 댓글에는 "이름", "전자우편", "접속 IP", "댓글 내용", "날짜", "암호" 등을 저장하기로 한다면 이를 XML로 저장하는 것이다. 데이터베이스 스키마에서 다음과 같은 외부 XML DTD를 불러들일 수 있게 하면 어떨까? (이 섹션의 이름은 일단은 XMLSection이라고 하자.)

<!DOCTYPE COMMENTS [ <!ELEMENT COMMENTS (COMMENT*)> <!ELEMENT COMMENT (이름, 댓글)> <!ELEMENT 이름 (#PCDATA)> <!ELEMENT 댓글 (#PCDATA)> <!ATTLIST 이름 전자우편 CDATA #REQUIRED> <!ATTLIST 이름 접속IP CDATA #IMPLIED> <!ATTLIST 댓글 날짜 CDATA #IMPLIED> <!ATTLIST 댓글 암호 CDATA #REQUIRED> ]>

위의 COMMENTS DTD를 적용한 XML 문서는 COMMENT들이 복수개 출현할 수 있다. "이름"이나 "댓글" 등은 XML 태그가 출현하지 않도록 적절하게 조절해야 한다. 그리고 DB 스키마에서 엘리먼트나 속성을 적절한 색인타입으로 색인할 수 있도록 하면 될 것 같다. 예를 들자면 다음과 같이 스키마를 지정한다.

<XMLSection name="COMMENTS" data-type="KSTRING"> <IndexElement name="이름" index-type="INDEX_BY_TOKEN" /> <IndexElement name="댓글" index-type="INDEX_BY_MA" /> <IndexAttriute element="댓글" attribute="날짜" index-type="INDEX_AS_IS" /> </XMLSection>

COMMENTS 섹션의 XML 문서에서 "이름"과 "댓글", 댓글의 "날짜" 속성을 추출하여 지정된 방식으로 색인한 후에 뭉뚱그려서 색인을 하면 되지 않을까? 조금 더 발전시킨다면 색인을 세분화하여 "COMMENTS.이름", "COMMENTS.댓글", "COMMENTS.댓글.날짜" 등으로 세분화할 수 있는 방법도 있을 것 같다.


멧돼지의 습격?

논을 헤집으며 먹이를 찾는 멧돼지 두마리 ( 출처: MBC ) 

경상북도 칠곡군 가산면의 한 논에서 멧돼지 두 마리가 논을 완전히 헤집으면서 먹이를 찾고 있는 모습이다. 이 논의 주인에게는 너무 미안한 말이지만 이런 소식을 들을 때마다 나는 기분이 좋다. 멧돼지, 고라니 등의 초식동물이 돌아왔으니 이제는 늑대 가 돌아와도 될 기초가 쌓여진 것이라고 보기 때문이다. 더 나아가서는 표범 이나 호랑이 가 살아도 굶어죽지는 않을 것 같다. 우리 생태계가 포식자만 돌아온다면 예전의 생태 피라미드를 다시 만들 수 있는 기회가 있을 것 같아서 기쁘다. 농부 아저씨에게는 죄송한 말이군... 농사를 짓는 분들에게는 전기 울타리 같은 정부 차원의 지원책이 있었으면 좋긴 하겠다...

문의나 조언은 메일로... | 저작권처음으로