Coming from a MySQL background I’ve been wondering for some time why a table is actually called a relation in postgresql. Does it have to do with the SQL:2008 ISO/ANSI standard? Because it confused the hell out of me and colleagues on the first few encounters with postgres.
I’m asking because knowing the reasoning behind it might clear up some things or might make the adoption a little easier.
This originates from terminology used by academics, rather than that used by software engineers. You will find this occurs much with PostgreSQL and their documentation leaves you frequently in need of a technical dictionary if you are unfamiliar with it.
The formal language for databases is referred to as “Relational algebra”.
As mentioned by mark bannister, this link may be helpful for terminology:
http://en.wikipedia.org/wiki/Relational_databases#Terminology
Edit
To be clear on what I mean by this:
SQL is a standard that was written by industry (Oracle had a big part in it). SQL does not mention relational algebra, indeed its origin was a language designed to be be easily human readable rather algebraic.
Relational algebra is in general the domain of the academic world and is not commonly used by the engineering world.
Posgresql community has greater ties with the academic community than other implementations and it seems that they chose their terminology from relational algebra rather than copying the engineers. Some might argue that this is in error since PostgreSQL is a SQL database management system, rather than a relational database management system.