1 / 13

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

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

Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CXquery를 이용한 스트림 데이터 쿼리 프로세싱 Database LAB M.S. 3 김소라

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

  3. Introduction • What is “CXquery”? • 문서 구조에 대한 지식 없이 질의할 수 있는 XML 질의 언어 • 데이터 검색시, XPath와 달리 데이터가 있는 경로까지 명시를 하지 않음 • 질의 시, 데이터 이름과 값만을 사용 • XML 문서의 DTD를 알지 못하더라도 사용자는 원하는 데이터를 얻을 수 있다. • 표현 방식 : • 데이터 이름 = 데이터 값

  4. Introduction <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> <?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> 기존의 질의 방식(XPath): /stocks/stock/company[root=“SAMSUNG”] CXquery 방식: root=“SAMSUNG”

  5. 동기(cont’) • 웹 환경에서 스트리밍 XML 쿼리 • XML 쿼리를 위해 사용자는 데이터의 경로를 모두 알아야 함 • 수집되는 데이터, 문서 작성자에 따라 상이한 DTD의 XML문서 생김  실시간으로 수많은 다른 구조의 XML을 다루는 웹 환경에서 문서의 구조를 고려하지 않아도 원하는 문서를 검색할 수 있는 CXquery의 질의 표현과 질의 처리 기법을 이용한다.

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

  7. 동기 • YFilter : 쿼리 프로세싱 시스템으로 YFilter 선택 • XML기반의 쿼리 프로세싱 시스템 중 시스템 update 및 연구가 활발 • predicate에 대한 처리도 제공 • XPath기반으로, 적용하려는 CXquery에 적당 • 설치가 쉽다.

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

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

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

  11. 쿼리 파일 Module2 – Data Path Selector

  12. 실험결과

  13. Conclusion • 현재, 웹 환경에서는 매우 다양한 종류의 XML 문서가 존재하게 된다. • 이 경우 사용자가 문서의 구조에 대해서 알아야만 질의할 수 있다. • 이 시스템은… • 상이한 XML DTD를 가진 문서에 대해 질의 가능 • 사용자는 그 구조에 대해서 알지 못하더라도, 질의하고자 하는 데이터 이름만 가지고 질의

More Related