A relation (AKA a table) is a set of rows. A row is a sequence of fixed length fields (AKA columns or attributes). A column is uniquely identified within the relation by a name. A row is uniquely identified within the relation by the values of it's primary key. The default primary key, which is a non-strict subset of the columns of the table.
A secondary key is a non-strict subset of the columns of any table that correspond to the primary key of another table.
A relation differs from a SpreadSheet in that the rows and columns are unordered.
SQL set-oriented is a language designed to build, maintain and query such DataBases. Because of the very clean mapping of tables and rows into set theory a large number of properties about relational databases have been proved in a mathematical sense and automatic query optimisation is now a standard option on many high-end relational databases. There are also formal proofs of correctness for a number of results in for locking relational databases at various levels of granularity, permitting parallel access.
These aren't very good explainations, but I didn't want to cut and paste. There are very large number of books and websites on relational database design.