240 likes | 493 Views
Lore: A Database Management System for XML. 컴퓨터언어연구실 석사2학기 992 COG10 김 혜 진. 목차. Lore 의 소개 Semistructured data OEM Data Model XML 과 OEM Lorel DataGuides Lore 의 system architecture An XML document and its graph 실제 사용 예 Conclusion and Status. Lore 의 소개. Lore
E N D
Lore: A Database Management System forXML 컴퓨터언어연구실 석사2학기 992COG10 김 혜 진
목차 • Lore의 소개 • Semistructured data • OEM • Data Model • XML과 OEM • Lorel • DataGuides • Lore의 system architecture • An XML document and its graph • 실제 사용 예 • Conclusion and Status
Lore의 소개 • Lore • Lightweight Object Repository • A DBMS designed specially for managing semistructured information. • 처음에는 Lightweight라는 말은 Lore에 의해 사용되는 simple object model과, single-user, read-only access를 지원하는 lightweight system 둘 다를 의미하며 사용 (기존의 DBMS를 heavyweight라 표현) • Stanford 대학교에서 4년 전부터 시작. • OEM을 semistructured data model로 삼았다가, 최근 XML이 등장하면서 강한 유사성을 발견하고, XML로도 작업이 가능하도록 migration
Semistructured data • Data가 구조를 가졌다 해도, 그 구조는 traditional database management system에서 요구하는 구조처럼 엄격하거나 일정하거나완벽하지는 않다. • Sources of semistructured data • integration of heterogeneous sources • extraction from World-Wide Web • XML • also calledunstructured data, loosely structured data • self-describing : schema is contained within the data
OEM • OEM: Object Exchange Model • simple nested object model • object들은 label을 통해 self-describing • 정해진 schema는 없다. • Directed labeled graph • node는 object • labeled edge는 object-subobject 관계를 나타냄. • Leaf 부분에서는 atomic value를 갖는다. (integer, real, string, gif, avi, etc.)
An XML document and its graph DBGroup &1 Project <DBGroup> <Member Name=“Smith” Advisor=“m1”> <Age>28</Age> </Member> <Member ID=“m1” Project=“p1”> <Name>Jones</Name> <Advisor>Ullman</Advisor> </Member> <Project ID=“p1” Member=“m1”> <Title>Lore</Title> </Project> </DBGroup> Member {Name=”Smith”, Advisor=“m1”} Member Advisor Project &2 &3 &4 {ID=”m1”, Project=“p1”} {ID=”p1”, Member=“m1”} Title Age Name Advisor &8 &5 &6 &7 Text Text Text Text &9 &10 &11 &12 ”28” ”Jones” ”Ullman” ”Lore”
OEM이 XML과 다른 점 • OEM은 subelement, attribute, IDREF를 섞어 놓음. • OEM은 순서가 없다. • Lore를 통해 ordering을 보존 • OEM은 schema-less: DTD가 없다.
LOREL - The LORE Language • Lore의 query language. • 기본 원리 • No errors • 불규칙하고 불완전한 데이터를 깨끗하게 다룬다. • 사용자는 전체 object 구조를 알 필요가 없다. • OQL의 확장 • class가 없고 엄격한 type-checking을 하지 않음 • 넓은 자동 형 변환(type coercion) • atomic values • 집합과 원소 • heterogeneous sets • very general path expressions
LOREL: Query Examples • Simple example select DBGroup.Member. Name where DBGroup.Member. Office(.Room%|.Cubicle)? like “%252” • declarative update language update p.Member += (select DBGroup.Member where DBGroup.Member. Name = “Clark” ) from DBGroup.Project p where p.Title = “Lore” or p.Title=“Tsimmis”
Lore’s XML Query Language • attribute와 subelement 사이의 구별 • path expression qualifier: subelement; >, attribute;@로 구분 • 비교 • 서로 다른 종류의 비교가 가능. 예) 상수와 attribute 값, element text의 비교 • 범위 한정자 • [2-4,7] 예)select y from DBGroup.Member x, x.Office[1-2] • Order-by clause • 질의 결과가 원래 XML 문서에 기초하여 질의 결과가 순서화 • 변형 및 구조적 결과 • 갱신 • expressive하고 declarative한 질의 언어 지원
DataGuide • semistructured database는 일반적으로 미리 정의된 고정된 schema를 가지고 있지 않다. • DB의 기초를 이루는 간결하고 정확한 구조적 정리 • DataGuide: dynamic structural summary of current DB • database에서의 각 label path가 정확히 DataGuide에서 한번 나타남 • 각 label path는 original database에서 존재하는 graph • Schema의 역할 • database가 변화하면 점진적으로 수용. • 향후 연구: DTD와의 결합 • DTD에 의해 지배되지 않는 부분들에 대해 적당한 곳에 적당한 link와 함께 DataGuide를 만들 수 있다.
Lore의 구조 Applications Textual Interface HTML GUI API Results Lore System Query Compilation Queries Parsing Preprocessing (Lorel to OQL) Query Plan Generator Query Optimizer Data Engine External, Read-only Data Sources Non-Query Requests External Data Manager Object Manager Query Operators Utilities -DataGuide Mgr -Loader -Index Mgr Physical Storage
실행환경 • graphical interface: http://www-db.stanford.edu/lore/demo • The system is a C++ server that communicates to Lore via standard Application Program Interface (API). • textual interface: 5/5/99 Lore Version 5.0 release(Sun OS용) Workstation: Sun의 Ultrasparc 2.6 install (XML로 migrate한 첫번째 version) • 사용한 document: dream.xml Shakespeare's "A Midsummer Night's Dream”
Query example in Lore- Textual Interface • Ultrasparc에서 실행한 결과 화면 [pllab]~/lore/bin >dbcreate dream Database dream created successfully. [pllab]~/lore/bin >dbload dream ../db_files/dream.xml Registering Name: PLAY. File ../db_files/dream.xml loaded successfully. [pllab]~/lore/bin >lore dream LORE: select PLAY.TITLE; XML answer: <TITLE>A Midsummer Night's Dream</TITLE>
Query example in Web- graphical interface(1) • Web 상에서의 Java로 이루어진 DataGuide에서 원하는 element를 선택.
Query example in Web - graphical interface(2) • 관련된 query 설정
Query example in Web - graphical interface(3) • 주어진 조건을 나타내는 화면
Query example in Web - graphical interface(4) • 직접 query를 입력하는 경우
Query example in Web - graphical interface(5) • 주어진 query의 결과 화면
사용한 XML 문서 Shakespeare's "A Midsummer Night's Dream”의 일부 <PLAY> <TITLE>A Midsummer Night's Dream</TITLE> <fm> <p>Text placed in the public domain by Moby Lexical Tools, 1992.</p> <p>SGML markup by Jon Bosak, 1992-1994.</p> <p>XML version by Jon Bosak, 1996-1997.</p> <p>This work may be freely copied and distributed worldwide.</p> </fm> <PERSONAE> <TITLE>Dramatis Personae</TITLE> <PERSONA>THESEUS, Duke of Athens.</PERSONA> <PERSONA>EGEUS, father to Hermia.</PERSONA> <PGROUP> <PERSONA>LYSANDER</PERSONA> <PERSONA>DEMETRIUS</PERSONA> <GRPDESCR>in love with Hermia.</GRPDESCR> </PGROUP>
결론 • XML을 지원하기 위해 Lore의 data model과 질의 언어를 migrate • 문서와 복사본을 저장하고 그 둘 간의 mapping을 유지하면서 database에서 XML 문서의 부분을 그들의 component와 혼합하는 새로운 접근을 고려
참고문헌 • http://www-db.Stanford.edu/lore • R. Goldman, J. McHugh, and J. Widom,” From Semistructured Data to XML: Migrating the Lore Data Model and Query Language,” Proceedings of the 2nd International Workshop on the Web and Databases (WebDB '99), Philadelphia, Pennsylvania, June 1999. • J. McHugh, S. Abiteboul, R. Goldman, D. Quass, and J. Widom, “Lore: A Database Management System for Semistructured Data,” SIGMOD Record, 26(3):54-66, September 1997. • S. Abiteboul, D. Quass, J. McHugh, J. Widom, and J. Wiener, “The Lorel Query Language for Semistructured Data,” International Journal on Digital Libraries, 1(1):68-88, April 1997. • P. Buneman, “Semistructured Data, “ In Proceedings of the 6th ACM SIGACT-SIGMOD-SIGART Symposium on Principles of Database Systems, pages 117-121, Tucson, Arizona, May 1997.
참고문헌 • Dan Suciu, ”From Semistructured Data to XML,” VLDB’99, 1999.