School of Computer Science
Computer Science COMP 612 (Fall term)
Database Programming Principles
Instructor: T. H.
"Database Programming Principles", COMP 612, introduces database programming
with McGill's advanced relational database system, relix.
Relix is the
implementation of the current state of the database programming language,
and contains the extended relational algebra, including recursion, the domain
algebra, nested relations and object instantiation, and computations.
This course is foundational for integrating all aspects of database research and
applications, from conventional administrative systems, spatial and temporal
data (GIS), rule-based and expert systems, data mining, semi-structured data
(XML and related query languages), multimedia, data streams, and similar hot
Database programming: building any database application.
Principles: based on a single, simple, universal framework.
This course gives a comprehensive account of (almost) everything of significance
in databases. To do this in one term we must use a much more powerful framework
than is usually available. This is "Aldat".
The sequel to this course is
COMP 612 Database Programming Principles
Week Topic Asst.
1 Overview of Aldat [PDF slides 1797K]
Java programming; ad-hoc cars database 1
2 Relations [Slides ps 354K pdf 304K] [Exercises ps 140K pdf 69K]
[Text ps 178K pdf 105K] 2
3 Relational algebra [Slides ps 355K pdf 519K] [Exercises ps 193K pdf 85K] 3
[Text ps 281K pdf 235K]
4 relix 4
5 Domain algebra [Slides ps 195K pdf 58K] [Exercises ps 194K pdf 91K] 5
[Text ps 230K pdf 213K]
6 Relational recursion, knowledge and logic [Slides ps 144K ps 135K] 6
QT-selectors [Slides ps 159K ps 207K] [Text ps 126K pdf 125K] 7
7 Updates [Slides ps 105K pdf 94K] [Text ps 127K pdf 125K] 8
9 Applications: text, diagrams
10 Computations [Slides ps 204K pdf 269K] [Exercises ps 100K pdf 36K] 9
11 Nested Relations [Slides ps 106K pdf 52K] [Exercises ps 119K pdf 45K] 10
Semistructured data. [Slides ps 110K pdf 64K]
12 Programming language considerations [Text ps 186K pdf 179]:
object oriented relations [Slides ps 108K pdf 94K]
concurrency and synchronization [Slides ps 127K pdf 105K]
scoping .. multidatabases [Slides ps 119K pdf 90K]
scalars, metadata .. process interaction
transactions and internet databases
(Advanced topics) [Exercises ps 40K pdf 39K]
The links from this web page constitute the text for the course. They are
reasonably complete, but some omissions and errors have been left deliberately,
and will be addressed in the lectures.
Note on plagiarism