After you have completed all the course lessons, you will complete a course project.
The course project involves finding out which customers have purchased a particular product from a company.
The course project was designed to allow you to demonstrate your understanding of the concepts taught in the course.
SQL is a special-purpose programming language designed for managing data held in a relational database management system (RDBMS).
Originally based upon relational algebra and tuple relational calculus, SQL consists of a data definition language and a data manipulation language.
The scope of SQL includes data insert, select, update and delete, schema creation and modification, and data access control. SQL also includes procedural elements.
SQL was one of the first commercial languages for Edgar F. Codd's relational model.
Codd's Twelve Rules
Despite not entirely adhering to the relational model as described by Codd, it became the most widely used database language.
You probably noticed right away, in that bullet list of relational issues in the previous section, that I used the formal terms relation, tuple and attribute. SQL does not use these terms, of
course it uses the more user friendly terms 1) table, 2) row, and 3) column instead. And I am generally sympathetic to the idea of using more user friendly terms, if they can help make the ideas more palatable.
In the case at hand, however, it seems to me that, regrettably, they do not make the ideas more palatable and instead them.
The truth is, a relation is not a table, a tuple is not a row, and an attribute is not a column. And while it might be acceptable to pretend otherwise in informal contexts,
I often would argue that it is acceptable only if we all understand that the more user friendly terms are just an approximation to the truth and fail overall to capture the essence of what is really going on.
To put it another way: If you do understand the true state of affairs, then judicious use of the user friendly terms
can be a good idea;
but in order to learn and appreciate that true state of affairs in the first place, you really do need to come to grips with the formal terms.
In this course, therefore, I will tend to use those formal terms (at least when I am talking about the relational model as opposed to SQL),
and I will give precise definitions for them at the relevant juncture. In SQL contexts, by contrast, I will use SQL's own terms.