Title: Managing Multiversion Documents
1Managing Multiversion Documents Historical
Databases a Unified Solution Based on XML
- Fusheng Wang
- Siemens Corporate Research
- Carlo Zaniolo, Xin Zhou and Hyun J. Moon
- University of California, Los Angeles
2Web Documents Version Management
- ltspec tstart 20000703 tend99991231gt
- ltw3c-doctype IsAttr yes tstart20000703
tend20010627gt cr lt/w3c-doctypegt - ltw3c-doctype IsAttr yes tstart20010627
tend99991231gt rec lt/w3c-doctypegt - ltstatus IsAttr yes tstart20000703
tend20010627gt final lt/statusgt - ltheader tstart20000703 tend99991231gt
- lttitle tstart20000703 tend99991231gt XML
Linking Language (XLink)lt/titlegt - ltversion tstart20000703 tend99991231gt
Version 1.0lt/versiongt - ltw3c-designation tstart20000703
tend20010627gt WD-xlink-20000703
lt/w3c-designationgt - ltw3c-designation tstart20010627
tend99991231gtREC-xlink-20010627
lt/w3c-designationgt
ltspec w3c-doctypecr statusfinalgt
ltheadergt  lttitlegtXML Linking Language
(XLink)lt/titlegt  ltversiongtVersion
1.0lt/versiongt  ltw3c-designationgtWD-xlink-20000
703 lt/w3c-designationgt
Xlink Spec (Snapshot 1)
ltspec w3c-doctyperecgt ltheadergt  lttitlegtXML
Linking Language (XLink)lt/titlegt Â
ltversiongtVersion 1.0lt/versiongt Â
ltw3c-designationgtREC-xlink-20010627
lt/w3c-designationgt
Xlink Spec (Snapshot 2)
V-Document
3ICAP (Incorporating Change Management into
Archival Process)
- Store Version history of an XML document as a new
XML document, where - for each element, vstart, vend attributes are
added to timestamp its validity period - temporally grouped model
- Complete history built from versions using XDIFF
- Support powerful historical queries by XQuery
- Example retrieve the history of Introduction
section
for intro in doc ("v-xlinks.xml")/spec/body/div1
head"Introduction" return intro
4Relational DB Temporal Information Management
- Timestamped tuples (projection without
coalescing)
Temporally grouped history (projection with
coalescing)
5XML Representation of RDB/XML Document History
- ltemployees tstart"1995-01-01" tend"1996-12-31"gt
- ltemployee tstart"1995-01-01" tend"1996-12-31"gt
- ltempno tstart"1995-01-01" tend"1996-12-31"gt100
03lt/empnogt - ltname tstart"1995-01-01" tend"1996-12-31"gtBoblt
/namegt - ltsalary tstart"1995-01-01" tend"1995-05-31"gt60
000lt/salarygt - ltsalary tstart"1995-06-01" tend"1996-12-31"gt70
000lt/salarygt - lttitle tstart"1995-01-01" tend"1995-09-30"gtEng
ineerlt/titlegt - lttitle tstart"1995-10-01" tend"1996-01-31"gtSr
Engineerlt/titlegt - lttitle tstart"1996-02-01" tend"1996-12-31"gtTec
h Leaderlt/titlegt - ltdept tstart"1995-01-01" tend"1995-09-30"gtQAlt/
deptgt - ltdept tstart"1995-10-01" tend"1996-12-31"gtRDlt/
deptgt - ltDOB tstart"1995-01-01" tend"1996-12-31"gt1945-
04-09lt/DOBgt - lt/employeegt
- lt!-- More --gt
- lt/employeesgt
6ArchIS (Archival Information System) the
Architecture
A R C H I S
Temporal XML Data
H-views H-documents SQL/XML
Temporal XML Queries
H-tables
Active Rules/ update logs
7ArchIS the Benefits
- Expressive temporal representations and data
models using current standards - Powerful languages for temporal queries using
only current standards (and temporal functions) - Indexing, clustering and query optimization
techniques for efficient query support - Significant performance benefits w.r.t native
XML DBs, XML extensions in RDBMS, XTABLES ..
8Mapping Temporal XQuery to SQL/XML
- Temporal projection retrieve the salary history
of Bob
element salary_history for s in
doc("employees.xml")/
employees/employee/nameBob/salary return
s
select XMLElement (Name "salaryhistory",
XMLAgg (XMLElement (Name as "salary",
XMLAttributes (S.tstart as tstart,
S.tend as "tend"), S.salary))) from
employee_salary as S, employee_name as N where
N.id S.id and N.name 'Bob' group by N.id
9Performance Study Query Performance
Q1,Q2 snapshot Q3,Q4 history Q5 temporal
slicing Q6 temporal join
10Conclusion
- Temporal DBMS in standard XML/XQuery
- Transaction time, valid time and bitemporal
- Temporally grouped data model
- Uniform approach applicable to
- General Web/XML documents for content management
and archiving - Relational database temporal information
management - Best performance by mapping to SQL/XML