McGill University
School of Computer Science

Computer Science COMP 612 (Fall term)
Database Programming Principles

Instructor: T. H. Merrett

"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, Aldat, 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 topics.

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 Information Systems

COMP 612                                                    Database Programming Principles

                            COURSE SUMMARY

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