Headline

A Technology:LogicBlox-based implementation with a modular data model

Motivation

This implementation refactors Contribution:basicLb to slice up schema and instance. That is, there are separate transactions for companies, departments, employees, and managers so that the schema and the instance are incrementally enhanced. It is important here that each incremental step enhances both schema and instance in the same transaction. In particular, the addition of a constraint that each company must have a manager cannot be committed with actually assigning managers to all existing departments in the same transaction. Such tedious modularization of the data model is practically of limited use, but it shows some extensibility characteristics of Technology:LogicBlox.

Architecture

When compared to Contribution:basicLb, the schema and the instance are broken down into several "transactions" as presented in subdirectory "data". These transactions are represented as .lb files instead .logic files because declarations and deltas are to be combined in the transactions. Thus, the implementation consists of these files:

  • data/companies.lb: schema and instance slice for companies
  • data/departments.lb: schema and instance slice for departments
  • data/employees.lb: schema and instance slice for employees
  • data/managers.lb: schema and instance slice for managers
  • total.logic: the query for totaling salaries
  • cut.logic: the delta for cutting salaries
  • Makefile: script for running the implementation
  • baseline: baseline for regression testing

Usage

Tested with Technology:LogicBlox 3.7.

Run "make" for a self-testing illustration.


There are no revisions for this page.

User contributions

    This user never has never made submissions.

    User edits

    Syntax for editing wiki

    For you are available next options:

    will make text bold.

    will make text italic.

    will make text underlined.

    will make text striked.

    will allow you to paste code headline into the page.

    will allow you to link into the page.

    will allow you to paste code with syntax highlight into the page. You will need to define used programming language.

    will allow you to paste image into the page.

    is list with bullets.

    is list with numbers.

    will allow your to insert slideshare presentation into the page. You need to copy link to presentation and insert it as parameter in this tag.

    will allow your to insert youtube video into the page. You need to copy link to youtube page with video and insert it as parameter in this tag.

    will allow your to insert code snippets from @worker.

    Syntax for editing wiki

    For you are available next options:

    will make text bold.

    will make text italic.

    will make text underlined.

    will make text striked.

    will allow you to paste code headline into the page.

    will allow you to link into the page.

    will allow you to paste code with syntax highlight into the page. You will need to define used programming language.

    will allow you to paste image into the page.

    is list with bullets.

    is list with numbers.

    will allow your to insert slideshare presentation into the page. You need to copy link to presentation and insert it as parameter in this tag.

    will allow your to insert youtube video into the page. You need to copy link to youtube page with video and insert it as parameter in this tag.

    will allow your to insert code snippets from @worker.