This course is designed for students seeking to learn basic relational database concepts and want to learn how to perform SQL queries.
Although this course is accessible to students who are new to relational databases, some database experience is helpful.
This course is designed for the Linux, Windows, and Macintosh platforms, as long as the database the student uses is SQL-compliant.
The screenshots are from the Windows platform.
This course will look at Structured Query Language, or SQL as it is usually abbreviated. SQL works with a database to create the database and to insert and extract data. Therefore, it is essential to understand the theory and concepts behind database systems
. Hence, this course also covers database theory and database design, so that you are equipped to create an effective database.
The SQL code in this course reflects the modern SQL standards set by organizations such as the (ANSI) American National Standards Institute
and the International Standards Organization (ISO).
While standards are great, what is available for practical use is what really counts. This course, then, concentrates on the sort of SQL supported by most modern database systems.
You should that find most of the code runs with little or no modification on most database systems released within the last six or seven years.
A relational approach to SQL: That isthe theme of this course. Of course, to treat such a topic
adequately, I need to cover relational issues as well as issues of SQL. While this remark obviously applies to the book as a whole, it applies to this first two modules with special force.
As a consequence, this module has comparatively little to say about SQL as such. What I want to do is review material that for the most part I hope you already know. My intent is to establish a point of departure, to lay some
groundwork on which the rest of the course can build. But even though I hope you are familiar with most of what I
have to say in this module, I would like to suggest not to skip it. You need to know what you need to know, in particular, you need to be sure you have the prerequisites needed to understand the material to come in later chapters.
In fact I would like to recommend that throughout the course you not skip the discussion of some topic just because you think you are familiar with that topic already.
For example, are you absolutely sure you know what a key is, in relational terms?
Relational model is much misunderstood
Professionals in any discipline need to know the foundations of their field. So if you are a database professional, you need to know the relational model
because the relational model is the foundation (or a large part of the foundation, at any rate) of the database field in particular.
Now, every course in database management does at least pay lip service to the idea of teaching the relational model, but most of that teaching seems to be done inadequately.
Certainly the model is not well understood in the database community at large. Here are some possible reasons for this state of affairs:
- The model is taught in a vacuum. That is, for beginners at least, it is hard to see the relevance of the material, or it is hard to understand the problems it is meant to solve, or both.
- The instructors themselves do not fully understand or appreciate the significance of the material.
- Perhaps most likely in practice, the model is not taught at all the SQL language, or some specific
dialect of that language, such as the Oracle dialect, is taught instead.