Binary Table

Created on Feb. 23, 2013, 12:58 p.m. by Hevok & updated by Hevok on May 2, 2013, 5:20 p.m.

Binary Tables are Vertically Partitioned Tables providing a Table for each single Property and then for each Property sum up each Subject and Object that are related to this Property. This is simple and can be done by machines and no intelligent or smart Clustering is required. This form support multi-valued Properties and there are no NULLs in it. If there is no property to a given Subject or Object, then there is no row in the Table. One only needs to read the Attributes that are really need with results in less I/O. It also provides excellent Performance when one has only a small number of Properties. It is fast if one wants to access only a specific Property, because then one knows which Table to access. However if one has a Query with an unbounded Property, then one has to access properly all Tables that are in the Database which is of course very expensive.

  • for each unique Property create a two column Table
  • Use ID based encoding for efficiency
  • Pros:
    • supports multi-value Properties
    • No NULLs
    • Read only needed attributes (i.e. less I/O)
    • No clustering
    • Excellent performance (if number of Properties is small, Queries with bounded Properties)
  • Cons:

    • Expensive inserts
    • Bad performance (large number of properties, Queries with unbounded Properties)
  • Different physical storage models for Relational DBs

  • Row Based Storage
    • Tuples (i.e. DB records) are stored consecutively
    • Entire row needs to be read even if few Attributes are projected
  • Column Based Storage
    • Read columns relevant to the Query -> Projection is free
    • Inserts are expensive
hex-codes.gif

Tags: architecture, storage, database, format, data
Categories: Tutorial
Parent: Storing RDF Data

Update entry (Admin) | See changes

Comment on This Data Unit