upvote
My (amateur) take. CDB model (based on functions) has three advantages over RDB model (based on relations):

1. Easier modelling sum types (inheritance) due to duality.

2. Better handling of null due to labelled null.

3. Better foundation of elementary types (they're just another table ids). (Column stores often do that already, if your question is about storage.)

reply
While the relational model is claimed to be based on relations, the vast majority of the "relations" used in practice are functions, not general relations.

A general relation exists only between the columns of a table that are included in a multi-column primary key.

All columns that are not part of the primary key are functions of the primary key.

Most tables used in practice use a single column as the primary key, which is frequently just a number or a UUID. Most databases contain only tables that are functions, without any table that contains general relations.

The most frequently used kinds of joins are just function compositions.

reply
While it is true on the schema level, it is not true at the query level.

The most frequently used kind of join is a general relation.

[1] https://github.com/agirish/tpcds/blob/master/query1.sql

Query 1 from TPC-DS creates a multi-column relation by using GROUP BY. Which relation is then partially constrained by different columns from different tables.

reply