A relation on two sets A and B is defined as the subset of the cartesian product A X B = {(a,b), a $in$ A and b $in$ B}.

A database is also a relation and each entry is an ordered tuple respecting the cartesian product.

Now, interchanging the rows and the columns of a database does not change it. I can understand that a relation is just a set of tuples (called as row) so the order of elements in a set does not matter and hence row interchange will not pose a problem. But column interchange conflicts with the idea that a particular entry of the database is an ordered tuple.

So, attributes are used to tackle this problem. This is what I was told (verbatim):

Example table:

Name Roll No.

Alex 2

Fred 5

Nate 7

=> Fix a set **C** also called the index set ( here it can be {1,2} or {Name, Roll No.} )

=> Consider:: **{A _{ i} | i $in$ C}**, A

_{ i}is the “type” of the attribute i (here that is A

_{ 1}= String and A

_{ 2}= Integer).

=> **The cartesian product**: $Pi$_{ i} A_{ i} is seen as the collection of functions **f : C $to$ $cup$ _{ i} A _{ i}** such that

**f ( i ) $in$ A**

_{ i}

I was told that this definition of the cartesian product will allow us not to worry about the position of the column ‘Name’, etc. But I did not understand why. I would appreciate any kind of help and I apologize in advance for bad/incorrect formatting.