12,141 research outputs found
Incremental Relational Lenses
Lenses are a popular approach to bidirectional transformations, a
generalisation of the view update problem in databases, in which we wish to
make changes to source tables to effect a desired change on a view. However,
perhaps surprisingly, lenses have seldom actually been used to implement
updatable views in databases. Bohannon, Pierce and Vaughan proposed an approach
to updatable views called relational lenses, but to the best of our knowledge
this proposal has not been implemented or evaluated to date. We propose
incremental relational lenses, that equip relational lenses with
change-propagating semantics that map small changes to the view to
(potentially) small changes to the source tables. We also present a
language-integrated implementation of relational lenses and a detailed
experimental evaluation, showing orders of magnitude improvement over the
non-incremental approach. Our work shows that relational lenses can be used to
support expressive and efficient view updates at the language level, without
relying on updatable view support from the underlying database.Comment: To appear, ICFP 201
Language-Integrated Updatable Views
Relational lenses are a modern approach to the view update problem in relational databases. As introduced by Bohannon et al. [5], relational lenses allow the definition of updatable views by the composition of lenses performing individual transformations. Horn et al. [20] provided the first implementation of incremental relational lenses, which demonstrated that relational lenses can be implemented efficiently by propagating changes to the database rather than replacing the entire database state.
However, neither approach proposes a concrete language design; consequently, it is unclear how to integrate lenses into a general-purpose programming language, or how to check that lenses satisfy the well-formedness conditions needed for predictable behaviour. In this paper, we propose the first full account of relational lenses in a functional programming language, by extending the Links web programming language. We provide support for higher-order predicates, and provide the first account of typechecking relational lenses which is amenable to implementation. We prove the soundness of our typing rules, and illustrate our approach by implementing a curation interface for a scientific database application
Language integrated relational lenses
Relational databases are ubiquitous. Such monolithic databases accumulate large
amounts of data, yet applications typically only work on small portions of the data
at a time. A subset of the database defined as a computation on the underlying
tables is called a view. Querying views is helpful, but it is also desirable to update
them and have these changes be applied to the underlying database. This view
update problem has been the subject of much previous work before, but support
by database servers is limited and only rarely available.
Lenses are a popular approach to bidirectional transformations, a generalization
of the view update problem in databases to arbitrary data. However, perhaps surprisingly, lenses have seldom actually been used to implement updatable views in
databases. Bohannon, Pierce and Vaughan propose an approach to updatable views called relational lenses. However, to the best of our knowledge this
proposal has not been implemented or evaluated prior to the work reported in
this thesis.
This thesis proposes programming language support for relational lenses. Language integrated relational lenses support expressive and efficient view updates,
without relying on updatable view support from the database server. By integrating relational lenses into the programming language, application development
becomes easier and less error-prone, avoiding the impedance mismatch of having
two programming languages. Integrating relational lenses into the language poses
additional challenges. As defined by Bohannon et al. relational lenses completely
recompute the database, making them inefficient as the database scales. The
other challenge is that some parts of the well-formedness conditions are too general for implementation. Bohannon et al. specify predicates using possibly infinite
abstract sets and define the type checking rules using relational algebra.
Incremental relational lenses equip relational lenses with change-propagating semantics that map small changes to the view into (potentially) small changes
to the source tables. We prove that our incremental semantics are functionally
equivalent to the non-incremental semantics, and our experimental results show
orders of magnitude improvement over the non-incremental approach. This thesis introduces a concrete predicate syntax and shows how the required checks
are performed on these predicates and show that they satisfy the abstract predicate specifications. We discuss trade-offs between static predicates that are fully
known at compile time vs dynamic predicates that are only known during execution and introduce hybrid predicates taking inspiration from both approaches.
This thesis adapts the typing rules for relational lenses from sequential composition to a functional style of sub-expressions. We prove that any well-typed
functional relational lens expression can derive a well-typed sequential lens.
We use these additions to relational lenses as the foundation for two practical implementations: an extension of the Links functional language and a library written
in Haskell. The second implementation demonstrates how type-level computation can be used to implement relational lenses without changes to the compiler.
These two implementations attest to the possibility of turning relational lenses
into a practical language feature
Bidirectional Transformation "bx" (Dagstuhl Seminar 11031)
Bidirectional transformations bx are a mechanism for maintaining the
consistency of two (or more) related sources of information. Researchers from
many different areas of computer science including databases (DB), graph
transformations (GT), software engineering (SE), and programming languages (PL)
are actively investigating the use of bx to solve a diverse set of
problems. Although researchers have been actively working on bidirectional
transformations in the above mentioned communities for many years already, there
has been very little cross-discipline interaction and cooperation so far. The
purpose of a first International Meeting on Bidirectional Transformations (GRACE-BX), held in December 2008 near Tokyo, was therefore to bring together international elites, promising young researchers, and leading practitioners to share problems, discuss solutions, and open a dialogue towards understanding the common underpinnings of bx in all these areas. While the GRACE-BX meeting provided a starting point for exchanging ideas in different communities and confirmed our believe that there is a considerable overlap of studied problems and developed solutions in the identified communities, the Dagstuhl Seminar 11031 on ``Bidirectional Transformations\u27\u27 also aimed at providing a place for working together to define a common vocabulary of terms and desirable properties of bidirectional transformations, develop a suite of
benchmarks, solve some challenging problems, and launch joint efforts to form a
living bx community of cooperating experts across the identified
subdisciplines. This report documents the program and the outcomes of Dagstuhl
Seminar 11031 with abstracts of tutorials, working groups, and presentations on
specific research topics
Designing effective contracts within the buyer-seller context: a DEMATEL and ANP study
This study examines the factors that contribute to effective contract design within the context of buyer-seller relationship. Research streams on contract factors, supply chain factors, environmental factors, and competitive factors were reviewed to arrive at 18 contract factors. A hybrid model of Decision-Making Trial and Evaluation Laboratory (DEMATEL) and Analytic Hierarchy Process (ANP) analysed empirical data collected from 17 experts to weight the importance of contract factors. It was found that most important factors are, in order of significance: policies, supplier technology, force majeure, formality, relationship learning, buyer power, legal actions, liquidated damages, supplier power and partnership
- âŠ