aboutsummaryrefslogblamecommitdiffstats
path: root/README.org
blob: 7f69d667b71ee9c753685c5b41f731d71faf027c (plain) (tree)
1
2
3
4
5
                                 

       

                            









                                                                                                                                                                                                                                                                                                                                                                                                       


                                                           
#+TITLE: Sakura Relational Engine

* About
This is a relational engine.

* Glossary
** Conceptual model
A piece of the world of discourse. In a project to design a map of Scotland, this would be Scotland itself in reality alongside the business rules in natural language.
** Relation
A cartesian product of primitive domains (integer, natural, rational, etc) with a membership criteria over an intension (collection of business rules)
** Ephemeral Relation
We can ephemeral relations that relations that have its values generated on demand. They are catalogued on the database as normal relations, but act based on a generator function. In SQL, they would be views, but here they are much else, they are algebraic artifacts that come out of any relational operation, eg.: R2 <- project {field1, field2} R1. R2 in this case is an ephemeral relation.
** Provenance
From where an attribute comes from in a generated relation (ephemeral). For example, if a join occurs and blends the attributes from two different relations, the base relations are references on the new generated ephemeral relation as to identify its origins. This is what enables "updatable views", since we always know the source of an attribute.
** Lineage
What operation produced an attribute. A join, project, etc.
** Entity Group
** Entity Type