CXquery 를 이용한 스트림 데이터 쿼리 프로세싱

13
CXquery 를 를를를 를를를 를를를 를를 를를를를 Database LAB M.S. 3 김김김

description

CXquery 를 이용한 스트림 데이터 쿼리 프로세싱. Database LAB M.S. 3 김소라. Contents. 1. Introduction 2. 동기 3. 시스템 구조 4. 실험결과 5. 결론. Introduction. What is “ CXquery ” ? 문서 구조에 대한 지식 없이 질의할 수 있는 XML 질의 언어 데이터 검색시 , XPath 와 달리 데이터가 있는 경로까지 명시를 하지 않음 질의 시 , 데이터 이름과 값만을 사용 - PowerPoint PPT Presentation

Transcript of CXquery 를 이용한 스트림 데이터 쿼리 프로세싱

Page 1: CXquery 를 이용한  스트림 데이터 쿼리 프로세싱

CXquery 를 이용한 스트림 데이터 쿼리 프로세싱

Database LABM.S. 3김소라

Page 2: CXquery 를 이용한  스트림 데이터 쿼리 프로세싱

Contents

1. Introduction 2. 동기 3. 시스템 구조 4. 실험결과 5. 결론

Page 3: CXquery 를 이용한  스트림 데이터 쿼리 프로세싱

Introduction

What is “CXquery”? 문서 구조에 대한 지식 없이 질의할 수 있는 XML 질의

언어 데이터 검색시 , XPath 와 달리 데이터가 있는 경로까지

명시를 하지 않음 질의 시 , 데이터 이름과 값만을 사용 XML 문서의 DTD 를 알지 못하더라도 사용자는 원하는

데이터를 얻을 수 있다 . 표현 방식 :

데이터 이름 = 데이터 값

Page 4: CXquery 를 이용한  스트림 데이터 쿼리 프로세싱

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”

Page 5: CXquery 를 이용한  스트림 데이터 쿼리 프로세싱

동기 (cont’)

웹 환경에서 스트리밍 XML 쿼리 XML 쿼리를 위해 사용자는 데이터의 경로를 모두 알아야

함 수집되는 데이터 , 문서 작성자에 따라 상이한 DTD 의 X

ML 문서 생김

실시간으로 수많은 다른 구조의 XML 을 다루는 웹 환경에서 문서의 구조를 고려하지 않아도 원하는 문서를 검색할 수 있는 CXquery 의 질의 표현과 질의 처리 기법을 이용한다 .

Page 6: CXquery 를 이용한  스트림 데이터 쿼리 프로세싱

동기 (cont’)

XML (Publish-subscribe) 기반의 쿼리 프로세싱 시스템NiagaraCQ, OpenCQ, XFilter, YFilter … OpenCQ(1999 년 ) NiagaraCQ(2000 년 ) XFilter(2000 년 ) YFilter(2003 년 )

Page 7: CXquery 를 이용한  스트림 데이터 쿼리 프로세싱

동기

YFilter : 쿼리 프로세싱 시스템으로 YFilter 선택 XML 기반의 쿼리 프로세싱 시스템 중 시스템 update 및 연구가

활발 predicate 에 대한 처리도 제공 XPath 기반으로 , 적용하려는 CXquery 에 적당 설치가 쉽다 .

Page 8: CXquery 를 이용한  스트림 데이터 쿼리 프로세싱

System Architecture(con’t)

1. 사용자가 xml 문서 , 데이터 이름을 시스템에 인풋2. 시스템이 DTD 파악 , DTD 패스파일이 있는지 체크 .3. 패스파일이 없으면 패스파일 생성4. 패스파일이 있으면 데이터 이름이 들어간 패스들을 찾아냄5. 그 패스들을 바탕으로 필터링

11

3

2

4

5

Page 9: CXquery 를 이용한  스트림 데이터 쿼리 프로세싱

샘플 데이터 – 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>

Page 10: CXquery 를 이용한  스트림 데이터 쿼리 프로세싱

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)>

Page 11: CXquery 를 이용한  스트림 데이터 쿼리 프로세싱

Module2 – Data Path Selector

쿼리 파일

Page 12: CXquery 를 이용한  스트림 데이터 쿼리 프로세싱

실험결과

Page 13: CXquery 를 이용한  스트림 데이터 쿼리 프로세싱

Conclusion

현재 , 웹 환경에서는 매우 다양한 종류의 XML 문서가 존재하게 된다 .

이 경우 사용자가 문서의 구조에 대해서 알아야만 질의할 수 있다 .

이 시스템은… 상이한 XML DTD 를 가진 문서에 대해 질의 가능 사용자는 그 구조에 대해서 알지 못하더라도 , 질의하고자 하는

데이터 이름만 가지고 질의