The Relational Model (RM) involves relations which are sets of tuples that record the extensions of predicates about the world. It is a good idea to emphasise the recording of events.
A database based on the relational model is called a relational database. It was first described by Edgar Codd [] in his paper A Relational Model of Data for Large Shared Data Banks in 1969 while working at IBM.
A relational database is regarded as making a proposition about the world, called the database proposition.
It is much simpler and easier to define tuples, relations and the operations on them without regard for a type system. The relational theory definitions are wonderfully simple and elegant when shown on one page. Of course it's still possible to define types of tuples and relations, so nothing is lost.
There are many additional relational operations which can be defined.
By Codd's theorem there is a direct correspondence between expressions of the relational algebra and expressions of the relational calculus. That means the relational algebra is equivalent in expressive power.
The RM is grounded in first order logic and has no equal at dealing with collections of facts in database systems. There is nothing better than the relational algebra / predicate calculus for expressing queries, integrity constraints, updates and views on collections of facts.
The most natural way to apply the RM is to use many simple predicates.
Ideally a programming language supports parameterised tuple and relation types as first class citizens
Logical independence allows for applications that access a relational database to be immunised from DB schema changes.
Integrity constraints tend to increase the complexity of update operations. A popular solution is to use compensating actions. However this is regarded as an anti-pattern, it seems better to impose constraints indirectly. As an example, key constraints can be dealt with in this way.
Imposing constraints indirectly solves many view update problems, such as an insert into a restriction, projection views or join views.
See musings on the Relational Model.