Relational Model

Interfacing CEDA to a conventional RDBMS

CEDA has primarily been designed to support the writing of data. It supports collaborative data entry by many users.

A conventional RDBMS is better suited to certain forms of read-only data processing, e.g. adhoc queries, data mining, data reporting and presentation.

For that reason it is often appropriate to use a hybrid system. CEDA is well suited to efficiently pushing data into an RDBMS. This is straightforward because it is possible to process notifications of all changes to the data in the database, whether from local or remote users.

Another consideration is the partitioning of the data (an important notion in CEDA). It doesn't make sense to replicate all data everywhere, that doesn't scale.

Musings on the Relational Model

The Relational Model is of central importance to data management.

Relaxing constraints on the base relvars serves two purposes. It allows for concurrent data entry of relations using Operational Transformation - mainly because it promotes independently updatable variables, and it addresses the view update problem which is considered in the context of alternative representations (possreps) of the information recorded in the database.

Maximising orthogonality of information suggests the idea of nested relational databases.

Every non-empty relation has a unique prime Cartesian factorisation.

The following documents are mostly drafts in various stages of completion. Someone observed that "they give a flavour of a burst of enthusiasm, a stretch of hard work, and then left incomplete". This is perfectly true!

2011-08-23 Untyped Relational Theory.doc provides a formalism of untyped relations. It is simpler and easier to define and investigate the properties of the relational algebra operations when there are no attribute types in the model. The idea is that relation-types are types of untyped-relation-values. There is no need to put attribute types "into" the relation values when they are already available in the static type of a relation-valued expression that denotes an untyped-relation-value. There is no problem recording the extension of a predicate with untyped-relation-values, including when the extension is empty. Note that it would be worthwhile covering extension, aggregation, grouping, packing, recursion etc. It would be good to provide a proof of the correspondence between the algebra and the calculus. Relation-types relate to type systems of programming languages, which I'd treat as a separate topic for a separation of concerns. By their very nature tuple types and relation types mean discussing parametric polymorphism.

2013-11-11 Simple RM.doc provides a summary of the formalism.

2011-09-15 Nested Data Models.docx is concerned with the question of a maximal partition of the information in a database into orthogonal parts. This means having as many variables as possible which can be updated independently (with an emphasis on relvars and encompassing both base and derived relvars).

2013-02-21 Type Systems.doc concerns a formalism of some the ideas of Chris Date and Hugh Darwen expressed in The Third Manifesto, particularly their Inheritance Model which could be described as subtype as subset and where the types form a lattice.

2013-11-15 Proposal for type system.doc is another formalism of type systems.