The introduction lectures tries and identifies the specific requirements of a database application. These requirements (e.g., management of large and homogeneous collections of structured data) motivate the rest of the syllabus, while their initial discussion in class allows to introduce the basic concepts and to give the elementary definitions (e.g., hierarchy of storage, transaction).
Design is covered in a series of lectures that present and discuss data models in general, logical modeling with the relational data model, conceptual modeling with the entity-relationship model and as normalization with functional dependencies (second, third and Boyce-Codd normal forms). In these lectures and in the associated assignments and tutorials, the importance of physical and knowledge independence is emphasized. The importance of integrity constraints is underlined both in practice (SQL data definition language) and in theory (functional dependencies theory and normalization).
A primer in SQL programming is given as soon as the semester’s schedule allows. Then a series of lectures iteratively deepen the knowledge and understanding of SQL queries by studying not only SQL data manipulation advanced constructs but also the theoretical query languages domain relational calculus, t-uple relational calculus and algebra (thus highlighting the spectrum of choices for writing queries in SQL).
Transactions, stored procedures, triggers as well as the connectivity of SQL with programming language are also studied for the effective implementation of applications.
The Relational Model
Logic and Calculus
T-uple Relational Calculus (TRC)
Domain Relational Calculus (DRC)
Data Definition Language
Data Manipulation Language
SQL and Programming Languages
Entities and Relationships
Mapping from ER diagrams to Relational Schema
Anomalies and Decomposition