iBATIS 탄생 철학 iBATIS 란 ? 설치와 설정 매핑 구문으로 작업하기 쿼리가 아닌 (non-query) 구문 실행하기 고급 쿼리 기법 트랜잭션
CXquery 를 이용한 스트림 데이터 쿼리 프로세싱
-
Upload
griffith-torres -
Category
Documents
-
view
46 -
download
0
description
Transcript of CXquery 를 이용한 스트림 데이터 쿼리 프로세싱
CXquery 를 이용한 스트림 데이터 쿼리 프로세싱
Database LABM.S. 3김소라
Contents
1. Introduction 2. 동기 3. 시스템 구조 4. 실험결과 5. 결론
Introduction
What is “CXquery”? 문서 구조에 대한 지식 없이 질의할 수 있는 XML 질의
언어 데이터 검색시 , XPath 와 달리 데이터가 있는 경로까지
명시를 하지 않음 질의 시 , 데이터 이름과 값만을 사용 XML 문서의 DTD 를 알지 못하더라도 사용자는 원하는
데이터를 얻을 수 있다 . 표현 방식 :
데이터 이름 = 데이터 값
Introduction
<?xml version='1.0' encoding='euc-kr'?><!DOCTYPE stocks SYSTEM "stock_case2.dtd"><stocks> <stock stock_id="005930"> <date>2005-04-26</date> <time>15:50</time> <company name="SAMSUNG ELECTRONICS" home_a
ddr="http://www.sec.co.kr/
<field>electronics</field <found_year>1969</found_year> <ceo>JONG-YONG YOON</ceo> <root>SAMSUNG</root> </company>
<trades><amount>187,546</amount>
<trade1> <pe
r>6.94</per> <pes>67,899</pes> <foreign_rate>54.11</foreign_rate>
</trade1>
<trade2><comparing>-3500</comparing><previous_rate>-0.74</previous_rate> </trade2>
<value><price>471,000</price><standard>474,500</standard>
<up_price>545,000</up_price><down_price>403,500</down_price><current_price>474,500</current_price
<high_price>474,500</high_price><low_price>471,000</low_price> </value> </trades> </stock> <stock> ….</stock></stocks>
기존의 질의 방식 (XPath):
/stocks/stock/company[root=“SAMSUNG”]
CXquery 방식 :
root=“SAMSUNG”
동기 (cont’)
웹 환경에서 스트리밍 XML 쿼리 XML 쿼리를 위해 사용자는 데이터의 경로를 모두 알아야
함 수집되는 데이터 , 문서 작성자에 따라 상이한 DTD 의 X
ML 문서 생김
실시간으로 수많은 다른 구조의 XML 을 다루는 웹 환경에서 문서의 구조를 고려하지 않아도 원하는 문서를 검색할 수 있는 CXquery 의 질의 표현과 질의 처리 기법을 이용한다 .
동기 (cont’)
XML (Publish-subscribe) 기반의 쿼리 프로세싱 시스템NiagaraCQ, OpenCQ, XFilter, YFilter … OpenCQ(1999 년 ) NiagaraCQ(2000 년 ) XFilter(2000 년 ) YFilter(2003 년 )
동기
YFilter : 쿼리 프로세싱 시스템으로 YFilter 선택 XML 기반의 쿼리 프로세싱 시스템 중 시스템 update 및 연구가
활발 predicate 에 대한 처리도 제공 XPath 기반으로 , 적용하려는 CXquery 에 적당 설치가 쉽다 .
System Architecture(con’t)
1. 사용자가 xml 문서 , 데이터 이름을 시스템에 인풋2. 시스템이 DTD 파악 , DTD 패스파일이 있는지 체크 .3. 패스파일이 없으면 패스파일 생성4. 패스파일이 있으면 데이터 이름이 들어간 패스들을 찾아냄5. 그 패스들을 바탕으로 필터링
11
3
2
4
5
샘플 데이터 – stock_0426_1550.xml<?xml version='1.0' encoding='euc-kr'?><!DOCTYPE stocks SYSTEM "stock_case2.dtd"><stocks> <stock stock_id="005930"> <date>2005-04-26</date> <time>15:50</time> <company name="SAMSUNG ELECTRONICS" home_addr="http://www.sec.co.kr/"> <field>electronics</field> <found_year>1969</found_year> <ceo>JONG-YONG YOON</ceo> <root>SAMSUNG</root> </company> <trades> <amount>187,546</amount> <trade1> <per>6.94</per> <pes>67,899</pes> <foreign_rate>54.11</foreign_rate> </trade1> <trade2> <comparing>-3500</comparing> <previous_rate>-0.74</previous_rate> </trade2> <value> <price>471,000</price> <standard>474,500</standard> <up_price>545,000</up_price> <down_price>403,500</down_price> <current_price>474,500</current_price> <high_price>474,500</high_price> <low_price>471,000</low_price> </value> </trades> </stock>……</stocks>
Module1 – Path Generator
<?xml version='1.0' encoding='euc-kr'?> <!ELEMENT stocks (stock)*> <!ELEMENT stock (date, time, company, trades)> <!ATTLIST stock stock_id CDATA #REQUIRED>
<!ELEMENT date (#PCDATA)> <!ELEMENT time (#PCDATA)> <!ELEMENT company (field, found_year, ceo, root)> <!ATTLIST company name CDATA #REQUIRED> <!ATTLIST company home_addr CDATA #REQUIRED>
<!ELEMENT field (#PCDATA)> <!ELEMENT found_year (#PCDATA)> <!ELEMENT ceo (#PCDATA)> <!ELEMENT root (#PCDATA)>
<!ELEMENT trades (amount, trade1, trade2, value)> <!ELEMENT amount (#PCDATA)> <!ELEMENT trade1 (per, pes, foreign_rate)> <!ELEMENT per (#PCDATA)> <!ELEMENT pes (#PCDATA)> <!ELEMENT foreign_rate (#PCDATA)>
<!ELEMENT trade2 (comparing, previous_rate)><!ELEMENT comparing (#PCDATA)><!ELEMENT previous_rate (#PCDATA)>
<!ELEMENT value (price, standard, up_price, down_price, current_price, high_price, low_price)><!ELEMENT price (#PCDATA)><!ELEMENT standard (#PCDATA)><!ELEMENT up_price (#PCDATA)><!ELEMENT down_price (#PCDATA)><!ELEMENT current_price (#PCDATA)><!ELEMENT high_price (#PCDATA)><!ELEMENT low_price (#PCDATA)>
Module2 – Data Path Selector
쿼리 파일
실험결과
Conclusion
현재 , 웹 환경에서는 매우 다양한 종류의 XML 문서가 존재하게 된다 .
이 경우 사용자가 문서의 구조에 대해서 알아야만 질의할 수 있다 .
이 시스템은… 상이한 XML DTD 를 가진 문서에 대해 질의 가능 사용자는 그 구조에 대해서 알지 못하더라도 , 질의하고자 하는
데이터 이름만 가지고 질의