陶承恺 Chengkai Tao tck@live.cn RDF Stores S. Sakr and G. A. Naymat. Relational Processing of RDF Queries: A Survey. SIGMOD Record, 38:23-28, June 2010. 11/21/2018 1:08:05 PM
Classification Based on relational databases Native RDF stores User RDF Database File systems (In-memory) Relational database management systems (RDBMSs) have repeatedly shown that they are very efficient, scalable and successful in hosting types of data which have formerly not been anticipated to be stored inside relational databases Native: Sesame, Jena TDB 11/21/2018 1:08:05 PM Classification
Relational RDF Stores • Vertical (triple) table stores • Horizontal (binary) table stores • Property (n-ary) table stores 11/21/2018 1:08:05 PM Relational RDF Stores
Each RDF triple is stored directly in a three-column table (s, p, o) 11/21/2018 1:08:05 PM Vertical table stores
Advantage: Simple 11/21/2018 1:08:05 PM Vertical table stores
Vertical table stores Disadvantage: Join Example: retrieve the web page of the author of a survey paper with the title ”Querying RDF Data” join cost is a major portion of the total processing time 11/21/2018 1:08:05 PM Vertical table stores
Vertical table stores Improvement B-tree Index: CREATE INDEX Plan generation: RDF-specific statistical synopses Select T3.Object From Triples as T1, Triples as T2, Triples as T3, Triples as T4 Where T1.Predicate=“publicationType” and T1.Object=“Survey Paper” and T2.predicate=“hasTitle” and T2.Object=“Querying RDF Data” and T3.Predicate=“webPage” and T1.subject=T2.subject and T4.subject=T1.subject and T4.Predicate=“authoredBy” and T4.Object = T3.Subject Materialized index: storage increase Exhaustive or as needed a standard problem in database systems selectivity estimation has a huge impact on plan generation 11/21/2018 1:08:05 PM Vertical table stores
Horizontal table stores RDF triples are modeled as one horizontal table or into a set of vertically partitioned binary tables (one table for each RDF property) 11/21/2018 1:08:05 PM Horizontal table stores
Horizontal table stores Advantage Straightforward table creation Efficient when predicate is specified 11/21/2018 1:08:05 PM Horizontal table stores
Horizontal table stores Disadvantage: dependent Number of properties Query type 11/21/2018 1:08:05 PM Horizontal table stores
Horizontal table stores Improvement Column-store: Improved bandwidth utilization and data compression 11/21/2018 1:08:05 PM Horizontal table stores
Horizontal table stores Lefteris Sidirourgos , Romulo Goncalves , Martin Kersten , Niels Nes , Stefan Manegold, Column-store support for RDF data management: not all swans are white, Proceedings of the VLDB Endowment, v.1 n.2, August 2008 This paper reports on the results of an independent evalu- ation of the techniques presented in the VLDB 2007 paper “Scalable Semantic Web Data Management Using Vertical Partitioning”, authored by D. Abadi, A. Marcus, S. R. Mad- den, and K. Hollenbach [1]. 11/21/2018 1:08:05 PM Horizontal table stores
multiple RDF properties are modeled as n-ary table columns for the same subject applications typically have access patterns in which certain subjects and/or properties are accessed together 11/21/2018 1:08:05 PM Property table stores
Property table stores Advantage Similar to relational database Best performance 11/21/2018 1:08:05 PM Property table stores
Property table stores Disadvantage Complex algorithm Highly dependent on algorithm, data… 11/21/2018 1:08:05 PM Property table stores
Performance Comparison A comparison between the alternative relational RDF storage techniques in terms of their query performance (in milliseconds) TS=Triple Store, BS=Binary Store, RS=Relational Store, PS=Property Store Dataset=DBLP, Queries=SP2Bench, RDB=DB2 Hooran MahmoudiNasab , Sherif Sakr, An experimental evaluation of relational RDF storage and querying techniques, Proceedings of the 15th international conference on Database systems for advanced applications, April 01-04, 2010, Tsukuba, Japan 11/21/2018 1:08:05 PM Performance Comparison
Property table stores How to create the tables? Specified by user Subject-Property Matrix Materialized Join Views an auxiliary structure exploited by an RDBMS optimizer n-way join = m-properties + (n – m) joins. Eugene Inseok Chong , Souripriya Das , George Eadon , Jagannathan Srinivasan, An efficient SQL-based RDF querying scheme, Proceedings of the 31st international conference on Very large data bases, August 30-September 02, 2005, Trondheim, Norway 11/21/2018 1:08:05 PM Property table stores
Property table stores How to create the tables? Data mining RDF graph or query log Subject-property co-occurrence pattern discovery or query pattern discovery Applied to schema design or caching strategies to improve performance L. Ding, K. Wilkinson, C. Sayers, H. Kuno, Application-Specific Schema Design for Storing Large RDF Datasets, Proc. of the 1st International Workshop on Practical and Scalable Semantic Systems, pp. 15--28, 2003. 11/21/2018 1:08:05 PM Property table stores
Property table stores Apriori 7 subjects, 4 properties {1,2,3,4}, {1,2}, {2,3,4}, {2,3}, {1,2,4}, {3,4}, and {2,4} min support=3 Property Support 1 3 2 6 4 5 Property Support {1,2} 3 {1,3} 1 {1,4} 2 {2,3} 6 {2,4} 4 {3,4} 5 Property Support {1,2,3} 1 {1,2,4} 2 {1,3,4} {2,3,4} 11/21/2018 1:08:05 PM Property table stores
Property table stores How to create the tables? Vertical Partitioning A set of properties P = {P1,P2, ...,Pn} to a set of fragments F = {F1, F2, ..., Fx} Exploit the affinity matrix Cluster using Bond Energy Algorithm 11/21/2018 1:08:05 PM Property table stores
Property table stores How to create the tables? Vertical Partitioning select the top K attributes with the highest total access number 11/21/2018 1:08:05 PM Property table stores
Property table stores How to create the tables? Vertical Partitioning 11/21/2018 1:08:05 PM Property table stores
Property table stores How to create the tables? Vertical Partitioning 11/21/2018 1:08:05 PM Property table stores
Property table stores How to create the tables? Vertical Partitioning 11/21/2018 1:08:05 PM Property table stores
Property table stores How to create the tables? Vertical Partitioning Partitioning: Z = (QU ∗ QL) − QI2 11/21/2018 1:08:05 PM Property table stores
Property table stores How to create the tables? Exploit RDF Schema data … 11/21/2018 1:08:05 PM Property table stores
Thanks! 11/21/2018 1:08:05 PM