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.
Students successfully completing the course,
will demonstrate understanding of (among other skills and knowledge):
- domain data modeling. starting with a problem domain,
how to design a data model that is faithful to the properties and constraints of the domain.
the model will be represented using entity-relationship diagrams.
- relation schema. how to convert a data model as E/R diagram
into a relation schema
with an awareness of relevant functional dependencies
and how to normalize the relation schema into one of several standard forms.
- database schema. how to create tables in a relational database
based on a relation schema and how to populate those tables with data.
how to write triggers and functions.
- query data. how to use SQL to query the information that resides in a data base.
- web-based application. how to design and implement
a web-based application interface to a database.
- Required text:
A First Course in Database Systems
(third edition), by Jeffrey D. Ullman & Jennifer Widom.
Prentice Hall. (2008).
- Download and install a client for PostgreSQL.
Naturally, you are welcome to install the entire PostgreSQL system locally on your own machine.
However, this is not required as you will be able to access our PostgreSQL server using your client.
- Documentation for PostgreSQL can be
found at PostgreSQL.org.
- Time and place: Mondays & Wednesdays, 3:15-5:05pm; Winter Hall 212
- Professor: Wayne Iba
- Office: Winter Hall room 308, Mathematics/Computer Science wing
- Email: Iba at Westmont dot edu
- Phone: 805-565-6799
- Office Hourse: see my teaching page
- Course Syllabus
- Class schedule appears on Canvas