This course will address the principles of building applications using database management systems. An emphasis will be placed on concepts of database modeling, design, query formulation, and transaction processing, and on the application of those concepts in a project.
The exams, which determine most of the course grade, will be theoretical in nature. There will also be a substantial project. For the project, we will use a commercial DBMS (Oracle) and an application server (Orion). The host languages used in the class will be Java (students may use other languages for their project).
The topics included here have a substantial overlap with the graduate course CSC540. If you are a graduate student or are planning to enroll in our graduate program or are pursuing a joint BS/MS degree, please take CSC540 instead.
Please review my course policies.
The course is organized into three main modules: database modeling and design, query formulation, and transaction processing. The topics are introduced in this order to facilitate their application in the course project. For this reason, we don't follow the textbook order.
The following are the main topics along with their corresponding chapters of the textbook. The indicated class times are approximate estimates.
Some of the topics are important but are either quite straightforward or not a main focus of this course. These topics are identified as self-study topics above. Your knowledge of them will be evaluated through homework assignments or as part of your project. The self-study topics won't directly be covered in any exam, but they may have indirect connections in some cases.
You will be responsible for learning how to develop web-based interfaces for your project. You are encouraged to collaborate and share knowledge about interfaces.
There will be a lot of work - please plan to spend about 11-13 hours for this course (outside of class) each week. However, grades are based not on the amount of work performed but on understanding demonstrated through course work.
The following are the nominal weights for various components of the course. Please review my policy statement to understand how I assign grades.
Component | Points |
---|---|
Exams | 60% |
Homework | 5% |
Participation | 5% |
Course project | 30% |
The following are the prerequisites. From long experience, I have learned that the material in CSC 226, in particular, is essential for this course.
Students failing to meet the prerequisites will be dropped administratively. If you don't have the prerequisites, please drop yourself to avoid losing an opportunity to take an alternative course. However, if you have taken the prerequisite courses, but are not comfortable with their contents, be warned!
Here is a (partial) list of topics that will be assumed: elementary set theory, relations, partial orders, functions, concept of a theorem, propositional logic, predicate logic. These topics are covered in CSC 226: Applied Discrete Mathematics. You may review Chapters 1 to 6 from the following book, which is sometimes used as the CSC 226 textbook: