Fall 2013


Most applications written today rely on direct interaction with a relational database. If you end up working in the software industry you will almost certainly be querying, populating, maintaining or designing a database. In many of those cases, you will be saddled with choices made by developers and users who did not understand the principles of data modeling and database design. This course introduces the student to those principles and the structured query language (SQL).

Beyond learning the theory behind database systems, we will be doing projects and smaller assignments using PostgreSQL, an industrial-strength relational database management system. You will access PostgreSQL on one of the department servers via your preferred database client (although I recommend psql). Detailed instructions will be given in class. By default, you must access the database from an on-campus address. You are welcome (and encouraged) to install and use PostgreSQL on your own machines but assigments and projects must be completed on the designated system.

The effort needed for the individual database project will probably be roughly evenly divided between database design, SQL coding, data collection and massaging, and web interface coding. Conventional wisdom suggests that you select a project topic about which you are personally interested. The project will be much more fun this way and you will probably learn more.

Course Materials