The Theory of Relational Databases (1983)
web.cecs.pdx.edu
web.cecs.pdx.edu
I haven't read all of this yet, but I figure someone out there will find it helpful. My personal use of this textbook is for constraint-programming, which is closely related to the Relational Theory used in relational databases.
Example (from the Introduction):
One of the major advantages of the relational model is its uniformity. All data
is viewed as being stored in tables, with each row in the table having the same
format. Each row in the table summarizes some object or relationship in the
real world. Whether the corresponding entities in the real world actually
possess the uniformity the relational model ascribes to them is a question
that the user of the model must answer. It is a question of the suitability of
the model for the application at hand.
Whether or not the relational model is appropriate for a particular set of
data shall not concern us. There are plenty of instances where the model is
appropriate, and we always assume we are dealing with such instances.It displaced the earlier paradigm of hierarchical data model, which derived more or less from physical media (eg punch cards).
The relational model is not well suited to uncertain data, as a row in a table is generally interpreted as a true proposition. For statistical data sets, analytical processing may be better served by array/tensor models (which also exhibit uniformity).
An outer join is an outer product, and you have the null value. I've never seen anyone use real tensors outside of physical simulations, but then again relational databases don't use real relationships either.
Relational databases really are based on the set theoretic concepts of relations and functional dependency.
True, but the proposition does not necessarily indicate a certain fact about the world. It might be e.g. measurement or observation or opinion or guess or whatever. The proposition is just that the measurement, guess or opinion is this.
Bayesian networks are able to do similar things from uncertain data.
Arrays/tensors and (relational) tables can be thought of as alternative ways to represent a set with this major difference:
o [Relational table] Each column is an axis. A row is point.
o [Arrays] Each dimension is an axis. A cell is a point.
This is why it is wrong to interpret a table with a two-dimensional array - their data have completely different semantics.
The success of a (data) model depends on its ability to represent and manipulate relationships in a simple and natural way.
There exist of course other uniform ways to represent data, for example, using functions (and operations with functions). But many of them have been developed under the umbrella of the relational model even though they have little to do with the relational principles.
https://en.wikipedia.org/wiki/Hypergraph
For those unfamiliar with hypergraphs, they are very similar to classical graphs. Except hyperedges may connect more than two vertices together. (While normal graph edges normally only connect two vertices together) Therefore, you have to draw regions to represent hyperedges.
A Hypercube is a 4-dimensional cube. A hypergraph is a graph with 3 (or more) vertices per edge, instead 2-vertices. Finally, a "Hypercardioid" is a cardioid, except in 3 dimensions (instead of the typical 2-dimensions).
(Note that the book was written before PDF existed.)