Understanding relations

database-designrelational-theory

Since english is not my first language i find hard to understand this paragraph that i'm reading from "Database Fundamentals" book.

enter image description here

enter image description here

I'm trying to figure out, in practice, real world, what this really means.

Best Answer

English is not the easiest language in the world to describe mathematical concepts and their relationship to the real world. For a few years, I taught short courses in database design and programming in Spanish, even though Spanish is not my first language. But there were a few concepts that came across more clearly in Spanish than they did in English.

The first thing you need to understand is that the relational data model was pretty much invented by one person, Ed Codd in 1970, and he based the data model on the mathematics of relations. A great deal of the terminology is derived from terminology of mathematical relations, although there are subtle differences between mathematical relations and relations in the relational data model.

The second thing you need to understand is that "relation" and "relationship" are two different words with two different underlying concepts, even though there is a huge overlap between the two. The word "relationship" tends to be used in ER modeling, and refers to an association between two or more entities in the real world. These entities may be of different types or of the same type.

The third thing you need to understand is that you understand the subject matter through analysis but you come up with a relational model by design. The difference between analysing the data and designing the database is often not clear even for many English speakers.

When you convert an E-R model into a relational model, both the Entities and the Relationships get expressed as relations. so the difference between the Es and the Rs becomes almost moot as you make progress towards the eventual construction.

I apologize if this is too vague, but you'll have to clarify your question if you want more specific answers.