syllabus.htm
Computer Science 311
Databases
Spring, 2006
Me:
|
Office Hours:
|
Course Description:
This is a course on the theory and practice of dababase management. It gives a practical introduction to database creation and SQL programming, as well as a detailed treatment of the algorithms and data structures used in any database system. By the end of the course you should be able to market yourself as a database programmer.
Textbooks:
Database Systems: The Complete Book by Garcia-Molina, Ullman and Widom
Grading
We will have have two kinds of assignments. The course includes a semester-long project in which you will define, implement, add data to, and create an interface for a database of your choice. This project will be divided into 5 major assignments. You may do this project individually or in pairs; if you start working in a pair I expect you to continue in the same pair throughout the semester. There will be also some additional assignments: exercises in SQL and problems from the text.
Database material lends itself nicely to exams. We will have a midterm exam the week prior to Spring Break, and a final exam at the time determined by the Registrar.
Here is how the individual grades will determine your grade for the semester:
Homework (including individual pieces of the project) 25%
Midterm 15%
Final 25%
Project 35%
The Honor Code
I expect you to do homework not connected to the project on your own. You may discuss the homework in detail with anyone else, but the final writeup of each problem should be your own work. If you work in a pair for the project you may collaborate in any way you wish with your team member. If you work on your own all coding and data entry must be your own. Exams, of course, must be taken entirely on your own with no discussion with anyone else.
Course Outline
This is a rough outline, which I probably won't stick to. It should give you at least an idea of what we will be doing in the course.
Week: Topics: Text:2/6 - 2/10 Introduction to Databases. The E/R model Chapters 1, 2 2/13 - 2/17 Intro to Oracle and SQL. More on the E/R model Section 6.1, Stanford notes. Chapter 2 2/20 - 2/24 The Relational model Chapter 3 2/27 - 3/3 Normal Forms Chapter 3 3/6 - 3/10 Designing Relational DBs Chapter 4 3/13 - 3/17 Relational Algebra Chapter 5 3/20 - 3/24 SQL joins and products
Midterm exam
Chapter 6 3/27 - 3/31 SPRING BREAK 4/3 - 4/7 Constraints and Views in SQL Chapter 7 4/10 - 4/14 PL/SQL and JDBC Chapter 8 4/17 - 4/21 Transactions and Security in SQL Chapter 8 4/24 - 4/28 O-O and Logical query languages Chapters 9,10 5/1 - 5/5 Indexing Chapter 13 5/8 - 5/12 Other data structures
Student presentations
Chapter 13 Final Exam: Saturday, May 20, 7 PM
The project
Project 1: E/R design for your application
Project 2: Relational schema and table creation for your application
Project 3: Data collection and entry for your application. Typical queries
Project 4: Creation/implementation of views and constraints for your application
Project 5: Interactive front-end for your application
The project will be on the last day of classes, May 12. During the last week of classes each person or team will make a presentation on their project, showing the design, Oracle implmentation, and what you can of the front-end -- you can draw pictures if it isn't ready to demo.