This course gives an introduction to relational database systems, logical database design, E-R models, formal relational query languages, SQL, functional dependencies, normalization, other commercial languages, and data warehouses.
In Hugh Dempster Pavilion 310
In Hugh Dempster Pavilion 301
Ramakrishnan and Gehrke. Database Management Systems, 3rd Edition, McGraw-Hill, 2003. The 2nd edition is also fine. A copy of the textbook is on reserve for short-term (2 hour loan) at the Library Reserve Room in the Irving Barber building and the ICICS/CS Reading Room.
iClicker or i-clicker + response device (Available at the UBC Bookstore)
If you want additional reference material, any book on relational database systems that has been published in the past few years should be fine.
Either (a) CPSC 221 or (b) all of CPSC 260, EECE 320 and one of CPSC 210, CPSC 211, EECE 309.
Your performance in the class will be based on a number of activities. Final grades will be calculated as follows:
To pass the course, you must obtain a 50% overall mark, and pass the final exam. I reserve the right to change this scheme at any time, though I do not anticipate doing so.
Clicker marks will be based on both participation and correctly answering questions. To receive full credit, you must participate in and correctly answer to at least 90% of the exercises over the term. Note that the goal of this policy is to cover cases where you are absent or forget your clicker, so there are no "excused absences" from the clicker questions. However, if you will be absent for long periods of time, please come and talk to me.
The required project will be completed in groups of 4. For this project you decide the application domain based on data that you have or find interesting. Building a full database application from scratch allows you to control the process; instead of having the pieces decided for you, you must make all of the decisions by yourself. Part of this process is that you will see how design decisions made at the beginning will affect your final project. You will be graded based on the result of a demo, a group report, a personal report, and meeting of intermediate deadlines. You should expect most (though not all) of the programming to be required in the project rather than in the homeworks. The project will either be conducted using Java/JDBC, or using web design and PHP. More info can be found on the project page.
There will be two midterms and a final examination. Each exam will be closed book.
No late projects will be accepted without a valid reason, such as illness. If you think you have a valid reason, please contact the instructor directly. Because you can earn 100% even if you miss some, we typically do not accept excuses for missed clicker exercises. (That said, if you have concerns, please talk to us!)
We believe that you will learn at least as much from each other as you will learn from the teaching staff. Therefore, we want to encourage collaboration without compromising a fair grading scheme (as described in the department's policy on collaboration).
In most instances, you can collaborate as much as you want with whomever you want subject to three restrictions:
The exceptions to this rule are:
Finally, use common sense. For example, carefully memorizing someone else's SQL query and then regurgitating it an hour later is still plagiarism and cheating.
We will use Oracle as our database Management System (DBMS). It is hosted by the Computer Science department. The command line interface to Oracle is called SQL*Plus. For programming assignments, most people will probably use Java/JDBC or PHP to interface with the DBMS. You may also use MYSQL as your DBMS in your project. Make sure everyone in your group is ok with this choice, as we're not going to have a tutorial session on MYSQL.
Problems with Connect itself should be directed to help@itservices.ubc.ca. Problems with undergrad accounts and servers should be directed to help@ugrad.cs.ubc.ca. Use hardware@ugrad.cs.ubc.ca to report hardware problems.
Slides and other course materials are based on previous materials from others, especially the authors of the book (Raghu Ramakrishnan and Johannes Gehrke), Hassan Khosravi, Rachel Pottinger, Phil Bernstein, Alon Halevy, Ed Knorr, Laks Lakshmanan, Raymond Ng, George Tsiknis, and Steve Wolfman. Thanks, folks.